|
1 README.QNX by Mike Gorchak <mike@malva.ua>, <lestat@i.com.ua> |
|
2 Last changed at 24 Apr 2004. |
|
3 |
|
4 ====================================================================== |
|
5 Table of Contents: |
|
6 |
|
7 1. OpenGL. |
|
8 2. Wheel and multi-button mouses. |
|
9 3. CDROM handling issues. |
|
10 4. Hardware video overlays. |
|
11 5. Shared library building. |
|
12 6. Some building issues. |
|
13 7. Environment variables. |
|
14 |
|
15 ====================================================================== |
|
16 1. OpenGL: |
|
17 |
|
18 OpenGL works well and is stable, but fullscreen mode has not been |
|
19 heavily tested yet. |
|
20 If you have QNX RtP version 6.1.0 or above you must download the |
|
21 Photon3D runtime from http://developers.qnx.com or install it from the |
|
22 public repository or from the public CD, available with QNX. OS versi- |
|
23 ons below 6.1.0 are not supported. |
|
24 When creating an OpenGL context, software renderer mode is artifi- |
|
25 cially selected (QSSL made acceleration only for Voodoo boards in |
|
26 fullscreen mode, sorry but I don't have this board to test OpenGL - |
|
27 maybe it works or maybe not :)). If you want acceleration - you can |
|
28 remove one line in the source code: find the file SDL_ph_image.c and |
|
29 remove the following |
|
30 |
|
31 OGLAttrib[OGLargc++]=PHOGL_ATTRIB_FORCE_SW; |
|
32 |
|
33 line in the ph_SetupOpenGLContext() function or change the argument to |
|
34 PHOGL_ATTRIB_FORCE_HW or PHOGL_ATTRIB_FAVOR_HW. |
|
35 |
|
36 ====================================================================== |
|
37 2. Wheel and multi-button mouses: |
|
38 |
|
39 Photon emits keyboard events (key up and down) when the mouse |
|
40 wheel is moved. The key_scan field appears valid, and it contains zero. |
|
41 That is a basic method of detecting mouse wheel events under Photon. |
|
42 It looks like a hack, but it works for me :) on various PC configura- |
|
43 tions. |
|
44 |
|
45 I've tested it on: |
|
46 |
|
47 1. Genius Optical NetScroll/+ PS/2 (1 wheel) |
|
48 2. A4Tech Optical GreatEye WheelMouse PS/2, model: WOP-35. (2 wheels |
|
49 + 2 additional buttons). The wheel for vertical scrolling works as |
|
50 usual, but the second wheel for horizontal scrolling emits two se- |
|
51 quential events up or down, so it can provide faster scrolling than |
|
52 the first wheel. Additional buttons don't emit any events, but it |
|
53 looks like they're handled by photon in an unusual way - like click |
|
54 to front, but works not with any window, looks like a fun bug-o-fe- |
|
55 ature :). |
|
56 |
|
57 ====================================================================== |
|
58 3. CDROM handling issues: |
|
59 |
|
60 Access to CDROM can only be provided with 'root' privileges. I |
|
61 can't do anything about that, /dev/cd0 has brw------- permissions and |
|
62 root:root rights. |
|
63 |
|
64 ====================================================================== |
|
65 4. Hardware video overlays: |
|
66 |
|
67 Overlays can flicker during window movement, resizing, etc. It |
|
68 happens because the photon driver updates the real window contents be- |
|
69 hind the overlay, then draws the temporary chroma key color over the |
|
70 window contents. It can be done without using the chroma key but that |
|
71 causes the overlay to always be on top. So flickering during window |
|
72 movement is preferred instead. |
|
73 Double buffering code is temporarily disabled in the photon driver |
|
74 code, because on my GF2-MX it can accidentally cause a buffer switch, |
|
75 which causes the old frame to show. S3 Savage4 has the same problem, |
|
76 but ATI Rage 128 doesn't. I think it can be fixed later. Current code |
|
77 works very well, so maybe double buffering is not needed right now. |
|
78 Something strange happens when you try to move the window with the |
|
79 overlay beyond the left border of the screen. The overlay tries to |
|
80 stay at position x=0, but when attempting to move it a bit more it |
|
81 jumps to position x=-60 (on GF2-MX, on ATI Rage128 this value a bit |
|
82 smaller). It's really strange, looks like the overlay doesn't like |
|
83 negative coordinates. |
|
84 |
|
85 ======================================================================= |
|
86 5. Shared library building: |
|
87 |
|
88 A shared library can be built, but before running the autogen.sh |
|
89 script you must manually delete the libtool.m4 stuff from the acinclu- |
|
90 de.m4 file (it comes after the ESD detection code up to the end of the |
|
91 file), because the libtool stuff in the acinclude.m4 file was very old |
|
92 in SDL distribution before the version 1.2.7 and doesn't knew anything |
|
93 about QNX. SDL 1.2.7 distribution contains the new libtool.m4 script, |
|
94 but anyway it is broken :), Just remove it, then run "libtoolize |
|
95 --force --copy", delete the file aclocal.m4 if it is exists and after |
|
96 that run the autogen.sh script. SDL 1.2.8 contains fixed libtool.m4, |
|
97 ltmain.sh and config.sub files, so you can just run the autogen.sh |
|
98 script. |
|
99 |
|
100 ====================================================================== |
|
101 6. Some building issues: |
|
102 |
|
103 Feel free to not use the --disable-shared configure option if you' |
|
104 ve read the above comment about 'Shared library building'. Otherwise |
|
105 this option is strongly recommended, as without it the sdl-config |
|
106 script will be broken. |
|
107 |
|
108 Run the configure script without x11 support, e.g.: |
|
109 |
|
110 a) for OpenGL support: |
|
111 ./configure --prefix=/usr \ |
|
112 --disable-video-x11 \ |
|
113 --disable-shared |
|
114 |
|
115 b) without OpenGL support: |
|
116 ./configure --prefix=/usr \ |
|
117 --disable-video-x11 \ |
|
118 --disable-shared \ |
|
119 --disable-video-opengl |
|
120 |
|
121 And of course dont forget to specify --disable-debug, which is on |
|
122 by default, to disable debug and enable the expensive optimizations. |
|
123 |
|
124 In the test directory also run the ./configure script without |
|
125 x11 support, e.g.: |
|
126 |
|
127 ./configure --with-sdl-prefix=/usr \ |
|
128 --with-sdl-exec-prefix=/usr \ |
|
129 --prefix=/usr --without-x |
|
130 |
|
131 ====================================================================== |
|
132 7. Environment variables: |
|
133 |
|
134 Please note that the photon driver is sensible to the following |
|
135 environmental variables: |
|
136 |
|
137 * SDL_PHOTON_FULLSCREEN_REFRESH - this environment variable controls |
|
138 the refresh rate in all fullscreen modes. Be carefull !!! Photon |
|
139 drivers usually do not checking the maximum refresh rate, which video |
|
140 adapter or monitor supports. |
|
141 |
|
142 * SDL_VIDEO_WINDOW_POS - can be set in the "X,Y" format. If X and Y |
|
143 coordinates are bigger than the current desktop resolution, then win- |
|
144 dow positioning across virtual consoles is activated. If X and Y are |
|
145 smaller than the desktop resolution then window positioning in the |
|
146 current console is activated. The word "center" can be used instead of |
|
147 coordinates, it produces the same behavior as SDL_VIDEO_CENTERED |
|
148 environmental variable. |
|
149 |
|
150 * SDL_VIDEO_CENTERED - if this environmental variable exists then the |
|
151 window centering is perfomed in the current virtual console. |
|
152 |
|
153 Notes: The SDL_VIDEO_CENTERED enviromental variable has greater pri- |
|
154 ority than the SDL_VIDEO_WINDOW_POS in case if both variables are sup- |
|
155 plied to the application. |