slouken@386
|
1 |
|
slouken@386
|
2 |
==============================================================================
|
slouken@386
|
3 |
Using the Simple DirectMedia Layer with Qtopia/OPIE
|
slouken@386
|
4 |
==============================================================================
|
slouken@386
|
5 |
|
slouken@386
|
6 |
==============================================================================
|
slouken@386
|
7 |
I. Setting up the Qtopia development environment.
|
slouken@386
|
8 |
|
slouken@386
|
9 |
This document will not explain how to setup the Qtopia development
|
slouken@386
|
10 |
environment. That is outside the scope of the document. You can read
|
slouken@386
|
11 |
more on this subject in this excellent howto:
|
slouken@386
|
12 |
|
slouken@386
|
13 |
http://www.zauruszone.com/howtos/linux_compiler_setup_howto.html
|
slouken@386
|
14 |
|
slouken@386
|
15 |
==============================================================================
|
slouken@386
|
16 |
II. Building the Simple DirectMedia Layer libraries using the arm
|
slouken@386
|
17 |
cross-compiler
|
slouken@386
|
18 |
|
slouken@386
|
19 |
This is somewhat tricky since the name of the compiler binaries
|
slouken@386
|
20 |
differ from the standard. Also you should disable features not
|
slouken@386
|
21 |
needed. The command below works for me. Note that it's all one
|
slouken@386
|
22 |
line. You can also set the NM, LD etc environment variables
|
slouken@386
|
23 |
separately.
|
slouken@386
|
24 |
|
slouken@386
|
25 |
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --enable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --prefix=/opt/Qtopia/sharp/ arm-unknown-linux-gnu
|
slouken@386
|
26 |
|
slouken@386
|
27 |
One thing to note is that the above configure will include joystick
|
slouken@386
|
28 |
support, even though you can't have joysticks on the Zaurus. The
|
slouken@386
|
29 |
reason for this is to avoid link / compile / runtime errors with
|
slouken@386
|
30 |
applications that have joystick support.
|
slouken@386
|
31 |
|
slouken@386
|
32 |
==============================================================================
|
slouken@386
|
33 |
III. Building the Simple DirectMedia Layer test programs:
|
slouken@386
|
34 |
|
slouken@386
|
35 |
After installing, making sure the correct sdl-config is in your
|
slouken@386
|
36 |
path, run configure like this:
|
slouken@386
|
37 |
|
slouken@386
|
38 |
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ AR=arm-linux-ar ./configure arm-unknown-linux-gnu
|
slouken@386
|
39 |
|
slouken@386
|
40 |
==============================================================================
|
slouken@386
|
41 |
IV. Application porting notes
|
slouken@386
|
42 |
|
slouken@386
|
43 |
One thing I have noticed is that applications sometimes don't exit
|
slouken@386
|
44 |
correctly. Their icon remains in the taskbar and they tend to
|
slouken@386
|
45 |
relaunch themselves automatically. I believe this problem doesn't
|
slouken@386
|
46 |
occur if you exit your application using the exit() method. However,
|
slouken@386
|
47 |
if you end main() with 'return 0;' or so, this seems to happen.
|
slouken@386
|
48 |
|
slouken@386
|
49 |
Also note that when running in landscape mode - i.e requesting a
|
slouken@386
|
50 |
window that is HEIGHT pixels wide and WIDTH pixels high, where WIDTH
|
slouken@386
|
51 |
and HEIGHT normally is 240 and 320 - the image is blitted so that
|
slouken@386
|
52 |
the hardware buttons are on the left side of the display. This might
|
slouken@386
|
53 |
not always be desirable but such is the code today.
|
slouken@386
|
54 |
|
slouken@386
|
55 |
|
slouken@386
|
56 |
==============================================================================
|
slouken@386
|
57 |
V. Enjoy! :)
|
slouken@386
|
58 |
|
slouken@386
|
59 |
If you have a project you'd like me to know about, or want to ask questions,
|
slouken@386
|
60 |
go ahead and join the SDL developer's mailing list by sending e-mail to:
|
slouken@386
|
61 |
|
slouken@386
|
62 |
sdl-request@libsdl.org
|
slouken@386
|
63 |
|
slouken@386
|
64 |
and put "subscribe" into the subject of the message. Or alternatively you
|
slouken@386
|
65 |
can use the web interface:
|
slouken@386
|
66 |
|
slouken@386
|
67 |
http://www.libsdl.org/mailman/listinfo/sdl
|
slouken@386
|
68 |
|
slouken@386
|
69 |
==============================================================================
|
slouken@386
|
70 |
VI. What is supported:
|
slouken@386
|
71 |
|
slouken@386
|
72 |
Keyboard (Sharp Zaurus)
|
slouken@386
|
73 |
Hardware buttons
|
slouken@386
|
74 |
Stylus input (mouse)
|
slouken@386
|
75 |
Video. Allows fullscreen both in portrait mode (up to WIDTHxHEIGHT
|
slouken@386
|
76 |
size window) and in landscape mode (up to HEIGHTxWIDTH).
|
slouken@386
|
77 |
|
slouken@386
|
78 |
All other SDL functionality works like a normal Linux system (threads,
|
slouken@386
|
79 |
audio etc).
|
slouken@386
|
80 |
|
slouken@386
|
81 |
--
|
slouken@386
|
82 |
David Hedbor <david@hedbor.org>
|
slouken@386
|
83 |
http://david.hedbor.org/ http://eongames.com/
|
slouken@386
|
84 |
|