| README.QNX by Mike Gorchak <mike@malva.ua>, <lestat@i.com.ua> | 
 | Last changed at 24 Apr 2004. | 
 |  | 
 | ====================================================================== | 
 | Table of Contents: | 
 |  | 
 | 1. OpenGL. | 
 | 2. Wheel and multi-button mouses. | 
 | 3. CDROM handling issues. | 
 | 4. Hardware video overlays. | 
 | 5. Shared library building. | 
 | 6. Some building issues. | 
 | 7. Environment variables. | 
 |  | 
 | ====================================================================== | 
 | 1. OpenGL: | 
 |  | 
 |     OpenGL works well and is stable, but fullscreen mode has not  been | 
 | heavily tested yet. | 
 |     If you have QNX RtP version 6.1.0 or above you must  download  the | 
 | Photon3D runtime from http://developers.qnx.com or install it from the | 
 | public repository or from the public CD, available with QNX. OS versi- | 
 | ons below 6.1.0 are not supported. | 
 |     When creating an OpenGL context, software renderer mode is artifi- | 
 | cially selected (QSSL made acceleration  only  for  Voodoo  boards  in | 
 | fullscreen mode, sorry but I don't have this board  to  test  OpenGL - | 
 | maybe it works or maybe not :)). If you  want  acceleration - you  can | 
 | remove one line in the source code: find the  file SDL_ph_image.c  and | 
 | remove the following | 
 |  | 
 |     OGLAttrib[OGLargc++]=PHOGL_ATTRIB_FORCE_SW; | 
 |       | 
 | line in the ph_SetupOpenGLContext() function or change the argument to | 
 | PHOGL_ATTRIB_FORCE_HW or PHOGL_ATTRIB_FAVOR_HW. | 
 |  | 
 | ====================================================================== | 
 | 2. Wheel and multi-button mouses: | 
 |  | 
 |     Photon emits  keyboard  events (key up and  down)  when the  mouse | 
 | wheel is moved. The key_scan field appears valid, and it contains zero. | 
 | That is a basic method of detecting  mouse  wheel events under Photon. | 
 | It looks like a hack, but it  works for me :) on various PC configura- | 
 | tions. | 
 |  | 
 | I've tested it on: | 
 |  | 
 | 1. Genius Optical NetScroll/+ PS/2 (1 wheel) | 
 | 2. A4Tech Optical GreatEye WheelMouse PS/2,  model: WOP-35.  (2 wheels | 
 |    + 2 additional buttons). The wheel for vertical scrolling  works as | 
 |    usual, but the second wheel for horizontal scrolling emits  two se- | 
 |    quential events up or down, so it can provide faster scrolling than | 
 |    the first wheel. Additional buttons don't emit  any  events, but it | 
 |    looks like they're handled by photon in an unusual way - like click | 
 |    to front, but works not with any window, looks like a fun bug-o-fe- | 
 |    ature :). | 
 |  | 
 | ====================================================================== | 
 | 3. CDROM handling issues: | 
 |  | 
 |     Access to CDROM can only be  provided  with  'root'  privileges. I | 
 | can't do anything about that, /dev/cd0 has brw------- permissions  and | 
 | root:root rights. | 
 |  | 
 | ====================================================================== | 
 | 4. Hardware video overlays: | 
 |  | 
 |     Overlays can flicker  during  window  movement,  resizing, etc. It | 
 | happens because the photon driver updates the real window contents be- | 
 | hind the overlay, then draws the temporary chroma key color  over  the | 
 | window contents. It can be done without using the chroma key but  that | 
 | causes the overlay to always be on top. So  flickering  during  window | 
 | movement is preferred instead. | 
 |     Double buffering code is temporarily disabled in the photon driver | 
 | code, because on my GF2-MX it can accidentally cause a buffer  switch, | 
 | which causes the old frame to show. S3 Savage4 has the  same  problem, | 
 | but ATI Rage 128 doesn't. I think it can be fixed later. Current  code | 
 | works very well, so maybe double buffering is not needed right now. | 
 |     Something strange happens when you try to move the window with the | 
 | overlay beyond the left border  of the screen. The  overlay  tries  to | 
 | stay at position x=0, but when attempting to move it  a  bit  more  it | 
 | jumps to position x=-60 (on GF2-MX, on ATI Rage128 this  value  a  bit | 
 | smaller). It's really strange, looks  like  the  overlay  doesn't like | 
 | negative coordinates. | 
 |  | 
 | ======================================================================= | 
 | 5. Shared library building: | 
 |  | 
 |     A shared library can be built, but before running  the  autogen.sh | 
 | script you must manually delete the libtool.m4 stuff from the acinclu- | 
 | de.m4 file (it comes after the ESD detection code up to the end of the | 
 | file), because the libtool stuff in the acinclude.m4 file was very old | 
 | in SDL distribution before the version 1.2.7 and doesn't knew anything | 
 | about QNX. SDL 1.2.7 distribution contains the  new libtool.m4 script, | 
 | but anyway  it  is  broken :), Just  remove  it, then  run "libtoolize | 
 | --force --copy",  delete the file aclocal.m4 if it is exists and after | 
 | that run the  autogen.sh script. SDL 1.2.8 contains  fixed libtool.m4, | 
 | ltmain.sh and config.sub files, so you  can  just  run  the autogen.sh | 
 | script. | 
 |  | 
 | ====================================================================== | 
 | 6. Some building issues: | 
 |  | 
 |     Feel free to not use the --disable-shared configure option if you' | 
 | ve read the above comment about 'Shared  library  building'. Otherwise | 
 | this  option  is  strongly  recommended, as  without it the sdl-config | 
 | script will be broken. | 
 |  | 
 |     Run the configure script without x11 support, e.g.: | 
 |  | 
 |     a) for OpenGL support: | 
 |     ./configure --prefix=/usr           \ | 
 |                 --disable-video-x11     \ | 
 |                 --disable-shared | 
 |  | 
 |     b) without OpenGL support: | 
 |     ./configure --prefix=/usr           \ | 
 |                 --disable-video-x11     \ | 
 |                 --disable-shared        \ | 
 |                 --disable-video-opengl | 
 |  | 
 |     And of course dont forget to specify --disable-debug, which  is on | 
 | by default, to disable debug and enable the expensive optimizations. | 
 |  | 
 |     In the test directory also run the ./configure script without | 
 | x11 support, e.g.: | 
 |  | 
 |     ./configure  --with-sdl-prefix=/usr            \ | 
 |                  --with-sdl-exec-prefix=/usr       \ | 
 |                  --prefix=/usr --without-x | 
 |  | 
 | ====================================================================== | 
 | 7. Environment variables: | 
 |  | 
 |     Please note that the photon driver  is  sensible to the  following | 
 | environmental variables: | 
 |  | 
 |  * SDL_PHOTON_FULLSCREEN_REFRESH - this environment variable  controls | 
 | the refresh  rate  in  all  fullscreen  modes. Be  carefull !!! Photon | 
 | drivers usually do not checking the maximum  refresh rate, which video | 
 | adapter or monitor supports. | 
 |  | 
 |  * SDL_VIDEO_WINDOW_POS - can be  set in the "X,Y" format.  If X and Y | 
 | coordinates are bigger than the current desktop resolution, then  win- | 
 | dow positioning across  virtual  consoles is activated. If X and Y are | 
 | smaller than the desktop resolution  then  window  positioning  in the | 
 | current console is activated. The word "center" can be used instead of | 
 | coordinates, it  produces  the  same  behavior  as  SDL_VIDEO_CENTERED | 
 | environmental variable. | 
 |  | 
 |  * SDL_VIDEO_CENTERED - if this environmental variable exists then the | 
 | window centering is perfomed in the current virtual console. | 
 |  | 
 | Notes: The SDL_VIDEO_CENTERED enviromental  variable  has greater pri- | 
 | ority than the SDL_VIDEO_WINDOW_POS in case if both variables are sup- | 
 | plied to the application. |