Difference between revisions of "SDL Development"
m |
|||
(33 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | On this page, you will find usefull informations to setup and develop SDL based applications for your Armadeus board. | |
− | + | ==Introduction== | |
− | + | Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. For more informations -> http://www.libsdl.org/ | |
− | and | + | |
− | + | ||
− | + | ==Installation== | |
− | + | ||
+ | * Launch Buildroot configuration | ||
+ | <pre class="host"> | ||
+ | $ make menuconfig | ||
+ | </pre> | ||
+ | and choose SDL package in:<br> | ||
+ | <pre class="config"> | ||
+ | Package Selection for the target ---> | ||
+ | Graphic libraries and applications (graphic/text) ---> | ||
+ | ... | ||
+ | [*] SDL | ||
+ | [*] SDL framebuffer console video driver | ||
+ | ... | ||
+ | </pre> | ||
+ | You can also choose SDL extension packages like SDL_Image; then save your configuration | ||
+ | |||
+ | * Regenerate your rootfs | ||
+ | <pre class="host"> | ||
+ | $ make | ||
+ | </pre> | ||
and reflash it on your board | and reflash it on your board | ||
− | == | + | ==Configuration== |
+ | Our SDL version is using the [[FrameBuffer]] interface and so '''it's very important to have a ''/etc/fb.modes'' file up to date with the framebuffer parameters supported by your configuration''' (otherwise SDL try to use the VESA parameters which may misprogram the i.MX LCD controller). | ||
+ | |||
+ | For example for the Sharp LQ057, ''/etc/fb.modes'' should contain: | ||
+ | mode "320x240-176" | ||
+ | # D: 16.000 MHz, H: 43.836 kHz, V: 176.047 Hz | ||
+ | geometry 320 240 320 240 16 | ||
+ | timings 62500 9 27 0 7 9 2 | ||
+ | rgba 5/11,6/5,5/0,0/0 | ||
+ | endmode | ||
+ | {{Note| ''/etc/fb.modes'' is now automatically generated at first boot of your rootfs by ''/etc/init.d/S01fb'' script.}} | ||
+ | |||
+ | * If you want to update your ''fb.modes'' for your currently running LCD, then do: | ||
+ | <pre class="apf"> | ||
+ | # fbset > /etc/fb.modes | ||
+ | </pre> | ||
+ | |||
+ | ==Adding Tslib (Touchscreen library) support to SDL== | ||
+ | SDL is by default compiled with Tslib support in current Buildroot distribution. You just have to make SDL knows the presence of Tslib when launching your application (assuming you have correct [[Tslib | Tslib envt variables]] set): | ||
+ | <pre class="apf"> | ||
+ | export SDL_MOUSEDRV=TSLIB | ||
+ | export SDL_MOUSEDEV=$TSLIB_TSDEVICE | ||
+ | </pre> | ||
+ | |||
+ | ==Usage== | ||
+ | |||
+ | * Take a look at ''armadeus/target/demos/armanoid/'', ''armadeus/target/demos/backlight_control/'' or ''armadeus/target/demos/input_control/'' sources in your Armadeus view. | ||
+ | * If SDL is complaining because it can't find any mouse (''Unable to init SDL: Unable to open mouse'') then, before launching the program, do: | ||
+ | <pre class="apf"> | ||
+ | # export SDL_NOMOUSE=1 | ||
+ | </pre> | ||
+ | |||
+ | ==Tested SDL applications== | ||
+ | * [[PrBoom]] | ||
+ | * [[Slideshow]] | ||
+ | * Armanoid :-) | ||
+ | * [[SDL Water|Water]] | ||
+ | * [[Exemple_d'application_SDL:_un_lecteur_audio_(Fr)]] [[Image:FrenchFlag.png]] | ||
+ | |||
+ | ==Troubleshots== | ||
+ | * Screen/backlight goes black after SDL launch/exit: [[BackLight|use backlight driver to set backlight to a default value.]] | ||
+ | ==Links== | ||
+ | * [http://www.opentom.org/LibSDL SDL & Tslib page of the OpenTomTom project] | ||
+ | * [http://www.gnurou.org/writing/linuxmag/sdl Tutoriel paru dans Linux Magazine France, entre les numéros 65 et 73.] [[Image:FrenchFlag.png]] | ||
+ | |||
+ | <br> | ||
− | + | [[Category: Software]] | |
+ | [[Category:Graphical User Interface]] | ||
+ | [[Category: SDL]] |
Latest revision as of 19:35, 14 February 2012
On this page, you will find usefull informations to setup and develop SDL based applications for your Armadeus board.
Contents
Introduction
Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. For more informations -> http://www.libsdl.org/
Installation
- Launch Buildroot configuration
$ make menuconfig
and choose SDL package in:
Package Selection for the target ---> Graphic libraries and applications (graphic/text) ---> ... [*] SDL [*] SDL framebuffer console video driver ...
You can also choose SDL extension packages like SDL_Image; then save your configuration
- Regenerate your rootfs
$ make
and reflash it on your board
Configuration
Our SDL version is using the FrameBuffer interface and so it's very important to have a /etc/fb.modes file up to date with the framebuffer parameters supported by your configuration (otherwise SDL try to use the VESA parameters which may misprogram the i.MX LCD controller).
For example for the Sharp LQ057, /etc/fb.modes should contain:
mode "320x240-176" # D: 16.000 MHz, H: 43.836 kHz, V: 176.047 Hz geometry 320 240 320 240 16 timings 62500 9 27 0 7 9 2 rgba 5/11,6/5,5/0,0/0 endmode
Note: /etc/fb.modes is now automatically generated at first boot of your rootfs by /etc/init.d/S01fb script. |
- If you want to update your fb.modes for your currently running LCD, then do:
# fbset > /etc/fb.modes
Adding Tslib (Touchscreen library) support to SDL
SDL is by default compiled with Tslib support in current Buildroot distribution. You just have to make SDL knows the presence of Tslib when launching your application (assuming you have correct Tslib envt variables set):
export SDL_MOUSEDRV=TSLIB export SDL_MOUSEDEV=$TSLIB_TSDEVICE
Usage
- Take a look at armadeus/target/demos/armanoid/, armadeus/target/demos/backlight_control/ or armadeus/target/demos/input_control/ sources in your Armadeus view.
- If SDL is complaining because it can't find any mouse (Unable to init SDL: Unable to open mouse) then, before launching the program, do:
# export SDL_NOMOUSE=1
Tested SDL applications
Troubleshots
- Screen/backlight goes black after SDL launch/exit: use backlight driver to set backlight to a default value.
Links
- SDL & Tslib page of the OpenTomTom project
- Tutoriel paru dans Linux Magazine France, entre les numéros 65 et 73.