X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvideo%2Fomapdss%2Fomapsdl.h;h=12a6f6e49346aa7dd285bdd3dfec0d51078fa1a3;hb=0c7caf2be89c7285aed60c5cb7a5ace9776033ab;hp=b59533e1bce9a3acd1bb8e2e34c06c9af0c45c54;hpb=f641fccb7413775feab03ea268cc503cfb47b9b7;p=sdl_omap.git diff --git a/src/video/omapdss/omapsdl.h b/src/video/omapdss/omapsdl.h index b59533e..12a6f6e 100644 --- a/src/video/omapdss/omapsdl.h +++ b/src/video/omapdss/omapsdl.h @@ -1,5 +1,5 @@ /* - * (C) Gražvydas "notaz" Ignotas, 2010 + * (C) Gražvydas "notaz" Ignotas, 2010-2012 * * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. * See the COPYING file in the top-level directory. @@ -7,8 +7,16 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) -#define err(fmt, ...) fprintf(stderr, "omapsdl: " fmt "\n", ##__VA_ARGS__) -#define not_supported() fprintf(stderr, "omapsdl: %s not supported\n", __FUNCTION__) +#define err(fmt, ...) \ + fprintf(stderr, "omapsdl: " fmt "\n", ##__VA_ARGS__) +#define err_perror(fmt, ...) do { \ + fprintf(stderr, "omapsdl: " fmt ": ", ##__VA_ARGS__); \ + perror(NULL); \ +} while (0) +#define log(fmt, ...) \ + fprintf(stdout, "omapsdl: " fmt "\n", ##__VA_ARGS__) +#define not_supported() \ + fprintf(stderr, "omapsdl: %s not supported\n", __FUNCTION__) #if 0 #define trace(fmt, ...) printf(" %s(" fmt ")\n", __FUNCTION__, ##__VA_ARGS__) #define dbg err @@ -20,11 +28,27 @@ struct SDL_PrivateVideoData { struct vout_fbdev *fbdev; void *saved_layer; - unsigned int oshide_done:1; + /* physical screen size, should match touchscreen */ + int phys_w, phys_h; + /* layer */ + int layer_x, layer_y, layer_w, layer_h; + /* SDL surface borders to hide */ + int border_l, border_r, border_t, border_b; + /* phys -> layer coord multipliers (16.16) */ + int ts_xmul, ts_ymul; + /* misc/config */ + unsigned int xenv_up:1; + unsigned int app_uses_flip:1; + unsigned int cfg_force_vsync:1; + unsigned int cfg_force_doublebuf:1; + unsigned int cfg_no_ts_translate:1; }; -int osdl_video_set_mode(struct SDL_PrivateVideoData *pdata, int width, int height, int bpp); +void *osdl_video_set_mode(struct SDL_PrivateVideoData *pdata, + int border_l, int border_r, int border_t, int border_b, + int width, int height, int bpp, int *doublebuf); void *osdl_video_flip(struct SDL_PrivateVideoData *pdata); +int osdl_video_detect_screen(struct SDL_PrivateVideoData *pdata); void osdl_video_finish(struct SDL_PrivateVideoData *pdata); void omapsdl_input_init(void); @@ -35,11 +59,9 @@ int omapsdl_input_get_events(int timeout_ms, void *cb_arg); void omapsdl_input_finish(void); -void omapsdl_config(void); -void omapsdl_config_from_env(void); +void omapsdl_config(struct SDL_PrivateVideoData *pdata); +void omapsdl_config_from_env(struct SDL_PrivateVideoData *pdata); /* functions for standalone */ void do_clut(void *dest, void *src, unsigned short *pal, int count); -/* config */ -extern int gcfg_force_vsync;