BUGS
author Sam Lantinga <slouken@libsdl.org>
Tue, 11 Sep 2001 19:00:18 +0000
changeset 172 37e3ca9254c7
parent 154 50d2b5305c2c
child 250 74a8f672f2f8
permissions -rw-r--r--
Date: Sat, 8 Sep 2001 04:42:23 +0200
From: Max Horn <max@quendi.de>
Subject: SDL/OSX: Joystick; Better key handling

I just finished implementing improved keyhandling for OS X (in fact
the code should be easily ported to the "normal" MacOS part of SDL, I
just had no chance yet). Works like this:
First init the mapping table statically like before. Them, it queries
the OS for the "official" key table, then iterates over all 127
scancode and gets the associates ascii code. It ignores everythng
below 32 (has to, as it would lead to many problems if we did not...
e.g. both ESC and NUM LOCk produce an ascii code 27 on my keyboard),
and all stuff above 127 is mapped to SDLK_WORLD_* simply in the order
it is encountered.
In addition, caps lock is now working, too.
The code work flawless for me, but since I only have one keyboard, I
may have not encountered some serious problem... but I am pretty
confident that it is better than the old code in most cases.


The joystick driver works fine for me, too. I think it can be added
to CVS already. It would simply be helpful if more people would test
it. Hm, I wonder if Maelstrom or GLTron has Joystick support? That
would be a wonderful test application :)


I also took the liberty of modifying some text files like BUGS,
README.CVS, README.MacOSX (which now contains the OS X docs I long
promised)
slouken@0
     1
slouken@0
     2
All:
slouken@0
     3
	Audio rate conversion is only implemented by multiplying or dividing
slouken@0
     4
	by a power of two.  This is a side-effect of the requirement that the
slouken@0
     5
	raw audio buffer size be a power of two, and can hopefully be fixed.
slouken@0
     6
	This means 8 KHz audio converted to 22 KHz ends up being 16 KHz. :-/
slouken@0
     7
slouken@0
     8
	When the implementation is writing directly to video memory the mouse
slouken@0
     9
	cursor doesn't work properly.  Applications which do this should use
slouken@0
    10
	their own mouse cursor and call SDL_ShowCursor(0) to hide the system
slouken@0
    11
	cursor.
slouken@0
    12
slouken@0
    13
Linux:
slouken@0
    14
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
    15
	It requires handling of keyboard mapping events and using the XIM
slouken@0
    16
	input translation extension.  I will implement it as requested.
slouken@0
    17
	Latin-1 keyboard input works fine.
slouken@0
    18
slouken@27
    19
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
    20
slouken@0
    21
	The AAlib, GGI, and SVGAlib video drivers are not heavily tested.
slouken@0
    22
slouken@0
    23
Win32:
slouken@0
    24
	The MCI driver can't tell if the CD-ROM drive is paused or stopped.
slouken@0
    25
slouken@0
    26
	The SDL_INIT_EVENTTHREAD flag is not supported on Win32
slouken@0
    27
	(Idea: create a separate DirectInput polling thread)
slouken@0
    28
	The main purpose of this flag is for smooth cursor motion in
slouken@0
    29
	fullscreen environments.
slouken@0
    30
slouken@0
    31
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
    32
	This requires the ToUnicode() API which is only implemented on
slouken@0
    33
	Windows NT/2000, not on Windows 95/98.
slouken@0
    34
	Latin-1 keyboard input works fine.
slouken@0
    35
slouken@0
    36
	Joysticks are only supported under the Win32 MultiMedia API,
slouken@0
    37
	DirectInput support is not yet implemented.
slouken@0
    38
slouken@0
    39
BeOS:
slouken@0
    40
	BePPC is not supported, apparently not even by Be Inc.
slouken@0
    41
slouken@0
    42
	SDL_WM_GrabInput() is not implemented.
slouken@0
    43
	Does anyone know how to do this?  SDL_WM_GrabInput() is designed
slouken@0
    44
	to prevent the user from switching input and mouse focus away from
slouken@0
    45
	the SDL application.
slouken@0
    46
slouken@0
    47
	Continuous relative mouse motion is not implemented.
slouken@0
    48
slouken@0
    49
	Wide UNICODE character input (Kanji, etc.) has not been tested.
slouken@0
    50
	Latin-1 keyboard input works fine.
slouken@0
    51
slouken@0
    52
MacOS:
slouken@0
    53
	Palette handling isn't implemented in windowed mode yet.
slouken@0
    54
slouken@0
    55
	Audio hasn't been extensively tested, in particular the locking
slouken@0
    56
	isn't implemented and mixer routines may not call malloc() or free()
slouken@0
    57
	because they are called at interrupt time.
slouken@0
    58
slouken@0
    59
	SDL_WM_GrabInput() is not implemented.
slouken@0
    60
	Does anyone know how to do this?  SDL_WM_GrabInput() is designed
slouken@0
    61
	to prevent the user from switching input and mouse focus away from
slouken@0
    62
	the SDL application.
slouken@0
    63
slouken@0
    64
	Continuous relative mouse motion is not implemented.
slouken@0
    65
slouken@0
    66
	SDL_AddTimer() and SDL_RemoveTimer() haven't been implemented yet.
slouken@0
    67
slouken@0
    68
	Not all of the keys are properly recognized on the keyboard.
slouken@0
    69
slouken@0
    70
MacOS X:
slouken@172
    71
	CD-ROM functions are not implemented yet.
slouken@0
    72
slouken@172
    73
	Joystick code is not extensively tested yet.
slouken@58
    74
slouken@47
    75
	Window may not close when unsetting video mode and resetting.
slouken@58
    76
slouken@58
    77
	Resizeable windows aren't implemented yet.
slouken@58
    78
slouken@47
    79
	Depth switching for windowed mode isn't implemented yet.
slouken@47
    80
	
slouken@0
    81
	Palette handling isn't implemented in windowed mode yet.
slouken@47
    82
	
slouken@47
    83
	Command-line arguments Dialog is not implemented yet.
slouken@0
    84
slouken@47
    85
	Fullscreen drawing has some artifacts.
slouken@47
    86
	
slouken@47
    87
	Fullscreen window covers *all* other windows - even force quit.
slouken@47
    88
	
slouken@47
    89
	Fullscreen OpenGL for the software renderer is broken.
slouken@0
    90
slouken@47
    91
	Some OpenGL parameters are not accounted for, for example color bits customization.
slouken@47
    92
	
slouken@47
    93
	Getting OpenGL context parameters is not implemented.
slouken@47
    94
	
slouken@47
    95
	Continuous mouse motion perhaps is not as smooth as it should be.
slouken@0
    96
slouken@47
    97
	SDL_WM_GrabInput() is implemented, but it "freezes" the hardware
slouken@47
    98
	cursor in the center of the window/screen.  Also, mouse moved events
slouken@47
    99
	are not generated, and the keyboard cannot be grabbed.
slouken@0
   100
slouken@0
   101
	MacOS X seems to have a broken pthread_cancel() implementation.
slouken@0
   102
slouken@0
   103
FreeBSD:
slouken@0
   104
	pthread_cancel() isn't supported by FreeBSD 3.X, so threads don't
slouken@0
   105
	work on versions of FreeBSD earlier than 4.0.
slouken@0
   106
slouken@0
   107
	The CD-ROM handling doesn't work completely.
slouken@0
   108
slouken@0
   109
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   110
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   111
	input translation extension.  I will implement it as requested.
slouken@0
   112
	Latin-1 keyboard input works fine.
slouken@0
   113
slouken@27
   114
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   115
slouken@0
   116
Solaris:
slouken@0
   117
	The joystick functions are not implemented yet.
slouken@0
   118
slouken@0
   119
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   120
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   121
	input translation extension.  I will implement it as requested.
slouken@0
   122
	Latin-1 keyboard input works fine.
slouken@0
   123
slouken@27
   124
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   125
slouken@0
   126
IRIX:
slouken@0
   127
	The CD-ROM handling doesn't work completely.
slouken@0
   128
slouken@0
   129
	The joystick functions are not implemented yet.
slouken@0
   130
slouken@0
   131
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   132
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   133
	input translation extension.  I will implement it as requested.
slouken@0
   134
	Latin-1 keyboard input works fine.
slouken@0
   135
slouken@27
   136
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   137
slouken@0
   138
OpenBSD:  -= NOT YET SUPPORTED =-
slouken@0
   139
	This is reported to work, but I haven't verified this.
slouken@0
   140
slouken@0
   141
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   142
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   143
	input translation extension.  I will implement it as requested.
slouken@0
   144
	Latin-1 keyboard input works fine.
slouken@0
   145
slouken@27
   146
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   147
slouken@0
   148
OSF/Tru64:  -= NOT YET SUPPORTED =-
slouken@0
   149
	The audio functions are not implemented yet.
slouken@0
   150
slouken@0
   151
	Joysticks and CD-ROM functions are not implemented yet.
slouken@0
   152
slouken@0
   153
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   154
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   155
	input translation extension.  I will implement it as requested.
slouken@0
   156
	Latin-1 keyboard input works fine.
slouken@0
   157
slouken@27
   158
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   159
slouken@0
   160
AIX:  -= NOT YET SUPPORTED =-
slouken@0
   161
	This port has only been tested with AIX 4.3.3
slouken@0
   162
slouken@0
   163
	The OpenGL support doesn't work yet.
slouken@0
   164
slouken@0
   165
	The joystick subsystem isn't implemented yet.
slouken@0
   166
slouken@0
   167
	Endian detection doesn't work yet - needs a unique CPP symbol.
slouken@0
   168
slouken@0
   169
	Wide UNICODE character input (Kanji, etc.) is not yet supported.
slouken@0
   170
	It requires handling of keyboard mapping events and using the XIM
slouken@0
   171
	input translation extension.  I will implement it as requested.
slouken@0
   172
	Latin-1 keyboard input works fine.
slouken@0
   173
slouken@27
   174
	The keyboard modifiers are not set to the correct state on startup.
slouken@27
   175
slouken@0
   176
	The AIX port was done by Carsten.Griwodz@KOM.tu-darmstadt.de
slouken@0
   177
	More information on this port is available at:
slouken@0
   178
	http://www.kom.e-technik.tu-darmstadt.de/~griff/SDL/
slouken@0
   179
slouken@0
   180
QNX:  -= NOT YET SUPPORTED =-
slouken@0
   181
	Configuration doesn't work right, Makefiles still need to be
slouken@0
   182
	tweaked (need to add libraries to any apps that use sdl_config
slouken@0
   183
	to figure out what libs they need).
slouken@0
   184
 
slouken@0
   185
	Only static libraries are being made, no shared ones.
slouken@0
   186
 
slouken@0
   187
	The only hardware surface is the primary view surface.
slouken@0
   188
 
slouken@0
   189
	Mouse events don't seem to be working right.
slouken@0
   190
 
slouken@0
   191
	Fullscreen doesn't display correctly.
slouken@0
   192
 
slouken@0
   193
	The software surfaces could use some speed up.
slouken@0
   194
 
slouken@0
   195
	It doesn't look like the OpenGL stuff is there. (did a grep for
slouken@0
   196
	PdCreateOpenGLContext, nothing found).
slouken@0
   197
 
slouken@0
   198
	The mouse cursor doesn't look right.
slouken@0
   199
slouken@0
   200
AmigaOS:  -= NOT YET SUPPORTED =-
slouken@0
   201
	The OpenGL support isn't implemented yet.
slouken@0
   202
slouken@0
   203
	SDL_WM_GrabInput() is not implemented.
slouken@0
   204
	Does anyone know how to do this?  SDL_WM_GrabInput() is designed
slouken@0
   205
	to prevent the user from switching input and mouse focus away from
slouken@0
   206
	the SDL application.
slouken@0
   207
slouken@0
   208
	Continuous relative mouse motion is not implemented.
slouken@0
   209
slouken@0
   210
	The AmigaOS port was done by Gabriele.Greco@galactica.it