README.QNX
author Sam Lantinga <slouken@libsdl.org>
Sat, 23 Aug 2003 23:20:21 +0000
changeset 692 04dd6c6d7c30
parent 663 8bedd6d61642
child 701 aaf3b8af6616
permissions -rw-r--r--
Date: Fri, 15 Aug 2003 09:13:59 +0300
From: "Mike Gorchak"
Subject: Patches for tests and QNX6

Here more fixes for the QNX6 in sdlqnx.diff file:

- Spellchecked README.QNX (thanks to Julian Kinraid)
- Fixed bugs in fullscreen mode: window region wasn't on top by default, so \
it caused some artifacts to be appeared on the screen, prevent window conten\
ts default filler in Photon while in fullscreen mode, it damages the screen.
- Added support for the SDL_VIDEO_WINDOW_POS, SDL_VIDEO_CENTERED env variabl\
es.
- Some minor code restructurization.
slouken@380
     1
README by Mike Gorchak <mike@malva.ua>, <lestat@i.com.ua>
slouken@692
     2
Last changed at 12 Aug 2003.
slouken@663
     3
slouken@692
     4
======================================================================
slouken@663
     5
OpenGL:
slouken@266
     6
slouken@692
     7
    OpenGL works well and is stable, but fullscreen mode has not  been
slouken@692
     8
heavily tested yet.
slouken@692
     9
    If you have QNX RtP version 6.1.0 or above you must  download  the
slouken@692
    10
Photon3D runtime from http://developers.qnx.com or install it from the
slouken@692
    11
public repository or the  public CD, available  with  QNX. OS versions
slouken@692
    12
below 6.1.0 are not supported.
slouken@692
    13
    When creating an OpenGL context, software renderer mode is artifi-
slouken@692
    14
cially selected (QSSL made acceleration  only  for  Voodoo  boards  in
slouken@692
    15
fullscreen mode, sorry but I don't have this board  to  test  OpenGL -
slouken@692
    16
maybe it works or maybe not :)). If you  want  acceleration - you  can
slouken@692
    17
remove one line in the source code: find the  file SDL_ph_video.c  and
slouken@692
    18
remove the following
slouken@279
    19
slouken@663
    20
    OGLAttrib[OGLargc++]=PHOGL_ATTRIB_FORCE_SW;
slouken@663
    21
     
slouken@692
    22
line in the ph_SetupOpenGLContext() function or change the argument to
slouken@692
    23
PHOGL_ATTRIB_FORCE_HW or PHOGL_ATTRIB_FAVOR_HW.
slouken@266
    24
slouken@692
    25
======================================================================
slouken@692
    26
Wheel and multi-button mouses:
slouken@663
    27
slouken@692
    28
    Photon emits  keyboard  events (key up and down)  when  the  mouse
slouken@692
    29
wheel is moved. The key_scan field appears valid, and it contains zero.
slouken@692
    30
That is a basic method of detecting  mouse  wheel events under Photon.
slouken@692
    31
It looks like a hack, but it works for me :) on various PC  configura-
slouken@692
    32
tions.
slouken@663
    33
slouken@692
    34
I've tested it on:
slouken@663
    35
slouken@663
    36
1. Genius Optical NetScroll/+ (1 wheel)
slouken@692
    37
2. A4Tech Optical  GreatEye  WheelMouse,  model: WOP-35. (2 wheels + 2
slouken@692
    38
   additional buttons). The wheel for vertical scrolling works as usu-
slouken@692
    39
   al, but the second wheel for horizontal scrolling emits two sequen-
slouken@692
    40
   tial events up or down, so it can provide faster scrolling than the
slouken@692
    41
   first wheel. Additional buttons don't emit any events, but it looks
slouken@692
    42
   like they're handled by photon in an unusual  way - like  click  to
slouken@692
    43
   front, but works not with any window, looks like bug-o-feature :).
slouken@663
    44
slouken@692
    45
======================================================================
slouken@663
    46
CDROM handling issues:
slouken@663
    47
slouken@692
    48
    Access to CDROM can only be  provided  with  'root'  privileges. I
slouken@692
    49
can't do anything about that, /dev/cd0 has brw------- permissions  and
slouken@692
    50
root:root rights.
slouken@663
    51
slouken@692
    52
======================================================================
slouken@663
    53
Video Overlays:
slouken@663
    54
slouken@692
    55
    Overlays can flicker  during  window  movement,  resizing, etc. It
slouken@692
    56
happens because the photon driver updates the real window contents be-
slouken@692
    57
hind the overlay, then draws the temporary chroma key color  over  the
slouken@692
    58
window contents. It can be done without using the chroma key but  that
slouken@692
    59
causes the overlay to always be on top. So  flickering  during  window
slouken@692
    60
movement is preferred instead.
slouken@692
    61
    Double buffering code is temporarily disabled in the photon driver
slouken@692
    62
code, because on my GF2-MX it can accidentally cause a buffer  switch,
slouken@692
    63
which causes the old frame to show. S3 Savage4 has the  same  problem,
slouken@692
    64
but ATI Rage 128 doesn't. I think it can be fixed later. Current  code
slouken@692
    65
works very well, so maybe double buffering is not needed right now.
slouken@692
    66
    Something strange happens when you try to move the window with the
slouken@692
    67
overlay beyond the left border  of the screen. The  overlay  tries  to
slouken@692
    68
stay at position x=0, but when attempting to move it  a  bit  more  it
slouken@692
    69
jumps to position x=-60 (on GF2-MX, on ATI Rage128 this  value  a  bit
slouken@692
    70
smaller). It's really strange, looks  like  the  overlay  doesn't like
slouken@692
    71
negative coordinates.
slouken@663
    72
slouken@692
    73
=======================================================================
slouken@663
    74
Shared library building:
slouken@663
    75
slouken@692
    76
    A shared library can be built, but before running  the  autogen.sh
slouken@692
    77
script you must manually delete the libtool.m4 stuff from the acinclu-
slouken@692
    78
de.m4 file (it comes after the ESD detection code up to the end of the
slouken@692
    79
file), because the libtool stuff in the acinclude.m4 file is very  old
slouken@692
    80
and doesn't know anything about QNX. Just remove it and run autogen.sh.
slouken@663
    81
slouken@692
    82
======================================================================
slouken@266
    83
Some building issues:
slouken@266
    84
slouken@692
    85
    Feel free to not use the --disable-shared configure option if you'
slouken@692
    86
ve read the above comment about 'Shared  library  building'. Otherwise
slouken@692
    87
this  option  is  strongly  recommended, as  without it the sdl-config
slouken@692
    88
script will be broken.
slouken@663
    89
slouken@692
    90
    Run the configure script without x11 support, e.g.:
slouken@266
    91
slouken@279
    92
    a) for OpenGL support:
slouken@692
    93
    ./configure --prefix=/usr       \
slouken@279
    94
                --disable-video-x11 \
slouken@279
    95
                --disable-shared
slouken@279
    96
slouken@291
    97
    b) without OpenGL support:
slouken@692
    98
    ./configure --prefix=/usr       \
slouken@279
    99
                --disable-video-x11 \
slouken@279
   100
                --disable-shared    \
slouken@279
   101
                --disable-video-opengl
slouken@266
   102
slouken@692
   103
    In the test directory also run the ./configure script without
slouken@692
   104
x11 support, e.g.:
slouken@266
   105
slouken@692
   106
    ./configure  --with-sdl-prefix=/usr            \
slouken@692
   107
                 --with-sdl-exec-prefix=/usr       \
slouken@692
   108
                 --prefix=/usr --without-x