author Sam Lantinga <>
Thu, 11 May 2006 03:45:55 +0000
changeset 1812 9c882e94b545
parent 1251 86d0d01290ea
child 5894 414b2fa01526
child 6430 48d519500f7e
permissions -rw-r--r--
Fixed bug #208

So, here's a patch with a reimplementation of QZ_SetIcon() that does what I
described above. I apologize for the delay, I've been quite busy in the last
few days.

It appears to work here on 10.4.5 PPC in the limited testing that I've done;
I'll try to test it on 10.3.9 and 10.2.8 as well, but that might take another
week or so. Please test on i386.

Regarding alpha channels, per-surface alpha, and color keys, the same semantics
as for regular blits to an RGB surface should apply (for the final icon
composited onto the dock), unless I made a mistake - except in one pathological
case: if the icon surface has an alpha channel, its SDL_SRCALPHA flag is not
set (i.e. it has been explicitly cleared, since it's on by default for RGBA
surfaces), and it has a color key, plus an explicit mask was specified (instead
of the one autogenerated from the colorkey), then the color-keyed areas appear
black instead of transparent. I found no elegant way of fixing this, was too
lazy to implement the inelegant one, and decided that it isn't worth the effort
(but if someone disagrees, I can do it).
     2 Project files for embedded Visual C++ 3.0, 4.0 and 
     3 Visual Studio 2005 can be found in
     5 SDL supports GAPI and WinDib output for Windows CE.
     7 GAPI driver supports:
     9 - all possible WinCE devices (Pocket PC, Smartphones, HPC)
    10   with different orientations of video memory and resolutions.
    11 - 4, 8 and 16 bpp devices
    12 - special handling of 8bpp on 8bpp devices
    13 - VGA mode, you can even switch between VGA and GAPI in runtime
    14   (between 240x320 and 480x640 for example). On VGA devices you can
    15   use either GAPI or VGA.
    16 - Landscape mode and automatic rotation of buttons and stylus coordinates.
    17   To enable landscape mode make width of video screen bigger than height.
    18   For example: 
    19     SDL_SetVideoMode(320,240,16,SDL_FULLSCREEN)
    20 - WM2005
    21 - SDL_ListModes
    23 NOTE:
    24 There are several SDL features not available in the WinCE port of SDL.
    26 - DirectX is not yet available
    27 - Semaphores are not available
    28 - Joystick support is not available
    29 - CD-ROM control is not available
    31 In addition, there are several features that run in "degraded" mode:
    33 Preprocessor Symbol		Effect
    34 ===================		=================================
    36 SDL_systimer.c:
    37 USE_GETTICKCOUNT		Less accurate values for SDL time functions
    38 USE_SETTIMER			Use only a single marginally accurate timer
    40 SDL_syswm.c:
    41 DISABLE_ICON_SUPPORT		Can't set the runtime window icon
    43 SDL_sysmouse.c:
    44 USE_STATIC_CURSOR		Only the arrow cursor is available
    46 SDL_sysevents.c:
    47 NO_GETKEYBOARDSTATE		Can't get modifier state on keyboard focus
    49 SDL_dibevents.c:
    50 NO_GETKEYBOARDSTATE		Very limited keycode translation
    52 SDL_dibvideo.c:
    53 NO_GETDIBITS			Can't distinguish between 15 bpp and 16 bpp
    54 NO_CHANGEDISPLAYSETTINGS	No fullscreen support
    55 NO_GAMMA_SUPPORT		Gamma correction not available