Add "scaled" and "pixelperfect" layer sizes.
[sdl_omap.git] / README.OMAP
CommitLineData
371f4cfd 1OMAP specific SDL driver
2by GraÅžvydas "notaz" Ignotas
50339c93 3
4
5About
6-----
7
8This is a quick SDL driver to make use of some OMAP features, namely double
9buffering and hardware scaler.
10
371f4cfd 11Features:
12
13 * hardware scaling support (up and down)
14 * doublebuffering support (can eliminate tearing)
15 * vsync support (can give smooth scrolling if done right)
16 * keymap change with a config file
17 * 16/24/32bpp display support
18 * touchscreen input translation to scaler source image coordinates
19 * screen surface cropping / border removal support
20
21Caveats:
22 * disabled by default (falls back to x11/fbcon SDL drivers) unless
23 SDL_VIDEODRIVER environment variable is set
24 * no windowed mode support, fullscreen only
25 * requires functional DSS2 driver with /dev/fb1 mapped to overlay1 or
26 overlay2 and enough free VRAM available for requested display mode.
50339c93 27
28Although this was created for pandora, there is nothing preventing this to work
29on other OMAP platforms as well (well, nothing intentional at least).
30
31
32Usage / environment
33-------------------
34
35To enable this driver, SDL_VIDEODRIVER environment variable must be set to
36"omapdss". It can be set by calling setenv() in the code, but it's better to
37just set it in launcher script so that it can be changed easily without
38recompiling as needed:
39---
40#!/bin/sh
41export SDL_VIDEODRIVER=omapdss
42./your_program_here
43---
44
45Other environment variables:
5d957fa5 46
50339c93 47SDL_OMAP_LAYER_SIZE:
48 Output layer size. Regardless what you set with SDL_SetVideoMode(), output
455c8c43 49 will be scaled to this size using hardware with zero processing cost.
50 Note: scaling amount range is limited to roughly 1/4x-8x. The exact range
51 depends on various factors like version of the driver or OMAP hardware itself.
52 Valid values:
50339c93 53 "WxH", for example "640x480"
0bb19c41 54 "fullscreen" to cover whole screen.
21e209de
DA
55 "scaled" to upscale the screen proportionally, letterboxing or pillarboxing.
56 "pixelperfect" to upscale by a whole-number factor (e.g. 2x or 3x size).
5d957fa5 57
455c8c43 58SDL_OMAP_BORDER_CUT:
59 This can be used to move parts of SDL surface out of screen, in other
60 words cut borders and zoom in. Format: <left>,<right>,<top>,<bottom>
61 For example, "0,0,16,0" would hide top 16 lines offscreen, making 17th
62 (16th if you count from 0) line the first visible.
63 Note: like for layer size ranges are limited.
64
50339c93 65SDL_OMAP_VSYNC:
5d957fa5 66 Enables waiting for vertical sync on SDL_Flip() calls.
50339c93 67 Set to "1" to enable, "0" to disable.
68
5d957fa5 69SDL_OMAP_DEFAULT_MODE:
70 If the app doesn't specify resolution in SDL_SetVideoMode(), then use this.
71 Should be specified in "WxH" format, for example "640x480".
72
0bb19c41 73SDL_OMAP_FORCE_DOUBLEBUF:
74 This can force double buffering to on, which can help to eliminate tearing.
75 Note that if app isn't updating whole buffer each frame, it will glitch.
76 This is the same as specifying SDL_DOUBLEBUF to SDL_SetVideoMode.
77
5f4b1fd3 78SDL_OMAP_NO_TS_TRANSLATE:
79 Disable automatic touchscreen screen -> layer coordinate translation,
80 return real screen coordinates.
81
e1837b2c 82SDL_OMAP_TS_FORCE_TSLIB:
83 Always use tslib to read touchscreen. Without this, use X events when they
84 are available (this gives external input device support).
85
50339c93 86
87Config file
88-----------
89
90Optionally a file named "omapsdl.cfg" can be created in the game's working
91directory. It has lower priority than environment variables, and has these
92options (only when omapdss driver is active):
93
94# same as SDL_OMAP_VSYNC
95force_vsync = 1/0
96
0bb19c41 97# same as SDL_OMAP_FORCE_DOUBLEBUF
98force_doublebuf = 1/0
99
5f4b1fd3 100# same as SDL_OMAP_NO_TS_TRANSLATE
101no_ts_translate = 1/0
102
e1837b2c 103# same as SDL_OMAP_TS_FORCE_TSLIB
104ts_force_tslib = 1/0
105
50339c93 106# can be used to bind a key to SDL keysym, good for quick ports.
107# Example:
108# bind ev_home = sdlk_space
109bind ev_<evdev_key> = <sdl_key>
110
7b66578c 111
112Source
113------
114
115Available at git://notaz.gp2x.de/~notaz/sdl_omap.git
116