README.QNX
changeset 3083 0bc41e0361d3
parent 886 05c551e5bc64
child 3092 cad1aefa2ed9
     1.1 --- a/README.QNX	Fri Feb 27 09:51:55 2009 +0000
     1.2 +++ b/README.QNX	Tue Mar 03 04:21:51 2009 +0000
     1.3 @@ -1,155 +1,4 @@
     1.4  README.QNX by Mike Gorchak <mike@malva.ua>, <lestat@i.com.ua>
     1.5 -Last changed at 24 Apr 2004.
     1.6 -
     1.7 -======================================================================
     1.8 -Table of Contents:
     1.9 -
    1.10 -1. OpenGL.
    1.11 -2. Wheel and multi-button mouses.
    1.12 -3. CDROM handling issues.
    1.13 -4. Hardware video overlays.
    1.14 -5. Shared library building.
    1.15 -6. Some building issues.
    1.16 -7. Environment variables.
    1.17 -
    1.18 -======================================================================
    1.19 -1. OpenGL:
    1.20 -
    1.21 -    OpenGL works well and is stable, but fullscreen mode has not  been
    1.22 -heavily tested yet.
    1.23 -    If you have QNX RtP version 6.1.0 or above you must  download  the
    1.24 -Photon3D runtime from http://developers.qnx.com or install it from the
    1.25 -public repository or from the public CD, available with QNX. OS versi-
    1.26 -ons below 6.1.0 are not supported.
    1.27 -    When creating an OpenGL context, software renderer mode is artifi-
    1.28 -cially selected (QSSL made acceleration  only  for  Voodoo  boards  in
    1.29 -fullscreen mode, sorry but I don't have this board  to  test  OpenGL -
    1.30 -maybe it works or maybe not :)). If you  want  acceleration - you  can
    1.31 -remove one line in the source code: find the  file SDL_ph_image.c  and
    1.32 -remove the following
    1.33 -
    1.34 -    OGLAttrib[OGLargc++]=PHOGL_ATTRIB_FORCE_SW;
    1.35 -     
    1.36 -line in the ph_SetupOpenGLContext() function or change the argument to
    1.37 -PHOGL_ATTRIB_FORCE_HW or PHOGL_ATTRIB_FAVOR_HW.
    1.38 -
    1.39 -======================================================================
    1.40 -2. Wheel and multi-button mouses:
    1.41 -
    1.42 -    Photon emits  keyboard  events (key up and  down)  when the  mouse
    1.43 -wheel is moved. The key_scan field appears valid, and it contains zero.
    1.44 -That is a basic method of detecting  mouse  wheel events under Photon.
    1.45 -It looks like a hack, but it  works for me :) on various PC configura-
    1.46 -tions.
    1.47 -
    1.48 -I've tested it on:
    1.49 -
    1.50 -1. Genius Optical NetScroll/+ PS/2 (1 wheel)
    1.51 -2. A4Tech Optical GreatEye WheelMouse PS/2,  model: WOP-35.  (2 wheels
    1.52 -   + 2 additional buttons). The wheel for vertical scrolling  works as
    1.53 -   usual, but the second wheel for horizontal scrolling emits  two se-
    1.54 -   quential events up or down, so it can provide faster scrolling than
    1.55 -   the first wheel. Additional buttons don't emit  any  events, but it
    1.56 -   looks like they're handled by photon in an unusual way - like click
    1.57 -   to front, but works not with any window, looks like a fun bug-o-fe-
    1.58 -   ature :).
    1.59 -
    1.60 -======================================================================
    1.61 -3. CDROM handling issues:
    1.62 -
    1.63 -    Access to CDROM can only be  provided  with  'root'  privileges. I
    1.64 -can't do anything about that, /dev/cd0 has brw------- permissions  and
    1.65 -root:root rights.
    1.66 -
    1.67 -======================================================================
    1.68 -4. Hardware video overlays:
    1.69 +Last changed at 02 Mar 2009.
    1.70  
    1.71 -    Overlays can flicker  during  window  movement,  resizing, etc. It
    1.72 -happens because the photon driver updates the real window contents be-
    1.73 -hind the overlay, then draws the temporary chroma key color  over  the
    1.74 -window contents. It can be done without using the chroma key but  that
    1.75 -causes the overlay to always be on top. So  flickering  during  window
    1.76 -movement is preferred instead.
    1.77 -    Double buffering code is temporarily disabled in the photon driver
    1.78 -code, because on my GF2-MX it can accidentally cause a buffer  switch,
    1.79 -which causes the old frame to show. S3 Savage4 has the  same  problem,
    1.80 -but ATI Rage 128 doesn't. I think it can be fixed later. Current  code
    1.81 -works very well, so maybe double buffering is not needed right now.
    1.82 -    Something strange happens when you try to move the window with the
    1.83 -overlay beyond the left border  of the screen. The  overlay  tries  to
    1.84 -stay at position x=0, but when attempting to move it  a  bit  more  it
    1.85 -jumps to position x=-60 (on GF2-MX, on ATI Rage128 this  value  a  bit
    1.86 -smaller). It's really strange, looks  like  the  overlay  doesn't like
    1.87 -negative coordinates.
    1.88 -
    1.89 -=======================================================================
    1.90 -5. Shared library building:
    1.91 -
    1.92 -    A shared library can be built, but before running  the  autogen.sh
    1.93 -script you must manually delete the libtool.m4 stuff from the acinclu-
    1.94 -de.m4 file (it comes after the ESD detection code up to the end of the
    1.95 -file), because the libtool stuff in the acinclude.m4 file was very old
    1.96 -in SDL distribution before the version 1.2.7 and doesn't knew anything
    1.97 -about QNX. SDL 1.2.7 distribution contains the  new libtool.m4 script,
    1.98 -but anyway  it  is  broken :), Just  remove  it, then  run "libtoolize
    1.99 ---force --copy",  delete the file aclocal.m4 if it is exists and after
   1.100 -that run the  autogen.sh script. SDL 1.2.8 contains  fixed libtool.m4,
   1.101 -ltmain.sh and config.sub files, so you  can  just  run  the autogen.sh
   1.102 -script.
   1.103 -
   1.104 -======================================================================
   1.105 -6. Some building issues:
   1.106 -
   1.107 -    Feel free to not use the --disable-shared configure option if you'
   1.108 -ve read the above comment about 'Shared  library  building'. Otherwise
   1.109 -this  option  is  strongly  recommended, as  without it the sdl-config
   1.110 -script will be broken.
   1.111 -
   1.112 -    Run the configure script without x11 support, e.g.:
   1.113 -
   1.114 -    a) for OpenGL support:
   1.115 -    ./configure --prefix=/usr           \
   1.116 -                --disable-video-x11     \
   1.117 -                --disable-shared
   1.118 -
   1.119 -    b) without OpenGL support:
   1.120 -    ./configure --prefix=/usr           \
   1.121 -                --disable-video-x11     \
   1.122 -                --disable-shared        \
   1.123 -                --disable-video-opengl
   1.124 -
   1.125 -    And of course dont forget to specify --disable-debug, which  is on
   1.126 -by default, to disable debug and enable the expensive optimizations.
   1.127 -
   1.128 -    In the test directory also run the ./configure script without
   1.129 -x11 support, e.g.:
   1.130 -
   1.131 -    ./configure  --with-sdl-prefix=/usr            \
   1.132 -                 --with-sdl-exec-prefix=/usr       \
   1.133 -                 --prefix=/usr --without-x
   1.134 -
   1.135 -======================================================================
   1.136 -7. Environment variables:
   1.137 -
   1.138 -    Please note that the photon driver  is  sensible to the  following
   1.139 -environmental variables:
   1.140 -
   1.141 - * SDL_PHOTON_FULLSCREEN_REFRESH - this environment variable  controls
   1.142 -the refresh  rate  in  all  fullscreen  modes. Be  carefull !!! Photon
   1.143 -drivers usually do not checking the maximum  refresh rate, which video
   1.144 -adapter or monitor supports.
   1.145 -
   1.146 - * SDL_VIDEO_WINDOW_POS - can be  set in the "X,Y" format.  If X and Y
   1.147 -coordinates are bigger than the current desktop resolution, then  win-
   1.148 -dow positioning across  virtual  consoles is activated. If X and Y are
   1.149 -smaller than the desktop resolution  then  window  positioning  in the
   1.150 -current console is activated. The word "center" can be used instead of
   1.151 -coordinates, it  produces  the  same  behavior  as  SDL_VIDEO_CENTERED
   1.152 -environmental variable.
   1.153 -
   1.154 - * SDL_VIDEO_CENTERED - if this environmental variable exists then the
   1.155 -window centering is perfomed in the current virtual console.
   1.156 -
   1.157 -Notes: The SDL_VIDEO_CENTERED enviromental  variable  has greater pri-
   1.158 -ority than the SDL_VIDEO_WINDOW_POS in case if both variables are sup-
   1.159 -plied to the application.
   1.160 +QNX Photon and GF drivers are under construction. Please be patient.