SDL2/BUGS
Sam Lantinga bea3cb1da4 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)

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40173
2001-09-11 19:00:18 +00:00

211 lines
7.2 KiB
Plaintext

All:
Audio rate conversion is only implemented by multiplying or dividing
by a power of two. This is a side-effect of the requirement that the
raw audio buffer size be a power of two, and can hopefully be fixed.
This means 8 KHz audio converted to 22 KHz ends up being 16 KHz. :-/
When the implementation is writing directly to video memory the mouse
cursor doesn't work properly. Applications which do this should use
their own mouse cursor and call SDL_ShowCursor(0) to hide the system
cursor.
Linux:
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
The AAlib, GGI, and SVGAlib video drivers are not heavily tested.
Win32:
The MCI driver can't tell if the CD-ROM drive is paused or stopped.
The SDL_INIT_EVENTTHREAD flag is not supported on Win32
(Idea: create a separate DirectInput polling thread)
The main purpose of this flag is for smooth cursor motion in
fullscreen environments.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
This requires the ToUnicode() API which is only implemented on
Windows NT/2000, not on Windows 95/98.
Latin-1 keyboard input works fine.
Joysticks are only supported under the Win32 MultiMedia API,
DirectInput support is not yet implemented.
BeOS:
BePPC is not supported, apparently not even by Be Inc.
SDL_WM_GrabInput() is not implemented.
Does anyone know how to do this? SDL_WM_GrabInput() is designed
to prevent the user from switching input and mouse focus away from
the SDL application.
Continuous relative mouse motion is not implemented.
Wide UNICODE character input (Kanji, etc.) has not been tested.
Latin-1 keyboard input works fine.
MacOS:
Palette handling isn't implemented in windowed mode yet.
Audio hasn't been extensively tested, in particular the locking
isn't implemented and mixer routines may not call malloc() or free()
because they are called at interrupt time.
SDL_WM_GrabInput() is not implemented.
Does anyone know how to do this? SDL_WM_GrabInput() is designed
to prevent the user from switching input and mouse focus away from
the SDL application.
Continuous relative mouse motion is not implemented.
SDL_AddTimer() and SDL_RemoveTimer() haven't been implemented yet.
Not all of the keys are properly recognized on the keyboard.
MacOS X:
CD-ROM functions are not implemented yet.
Joystick code is not extensively tested yet.
Window may not close when unsetting video mode and resetting.
Resizeable windows aren't implemented yet.
Depth switching for windowed mode isn't implemented yet.
Palette handling isn't implemented in windowed mode yet.
Command-line arguments Dialog is not implemented yet.
Fullscreen drawing has some artifacts.
Fullscreen window covers *all* other windows - even force quit.
Fullscreen OpenGL for the software renderer is broken.
Some OpenGL parameters are not accounted for, for example color bits customization.
Getting OpenGL context parameters is not implemented.
Continuous mouse motion perhaps is not as smooth as it should be.
SDL_WM_GrabInput() is implemented, but it "freezes" the hardware
cursor in the center of the window/screen. Also, mouse moved events
are not generated, and the keyboard cannot be grabbed.
MacOS X seems to have a broken pthread_cancel() implementation.
FreeBSD:
pthread_cancel() isn't supported by FreeBSD 3.X, so threads don't
work on versions of FreeBSD earlier than 4.0.
The CD-ROM handling doesn't work completely.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
Solaris:
The joystick functions are not implemented yet.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
IRIX:
The CD-ROM handling doesn't work completely.
The joystick functions are not implemented yet.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
OpenBSD: -= NOT YET SUPPORTED =-
This is reported to work, but I haven't verified this.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
OSF/Tru64: -= NOT YET SUPPORTED =-
The audio functions are not implemented yet.
Joysticks and CD-ROM functions are not implemented yet.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
AIX: -= NOT YET SUPPORTED =-
This port has only been tested with AIX 4.3.3
The OpenGL support doesn't work yet.
The joystick subsystem isn't implemented yet.
Endian detection doesn't work yet - needs a unique CPP symbol.
Wide UNICODE character input (Kanji, etc.) is not yet supported.
It requires handling of keyboard mapping events and using the XIM
input translation extension. I will implement it as requested.
Latin-1 keyboard input works fine.
The keyboard modifiers are not set to the correct state on startup.
The AIX port was done by Carsten.Griwodz@KOM.tu-darmstadt.de
More information on this port is available at:
http://www.kom.e-technik.tu-darmstadt.de/~griff/SDL/
QNX: -= NOT YET SUPPORTED =-
Configuration doesn't work right, Makefiles still need to be
tweaked (need to add libraries to any apps that use sdl_config
to figure out what libs they need).
Only static libraries are being made, no shared ones.
The only hardware surface is the primary view surface.
Mouse events don't seem to be working right.
Fullscreen doesn't display correctly.
The software surfaces could use some speed up.
It doesn't look like the OpenGL stuff is there. (did a grep for
PdCreateOpenGLContext, nothing found).
The mouse cursor doesn't look right.
AmigaOS: -= NOT YET SUPPORTED =-
The OpenGL support isn't implemented yet.
SDL_WM_GrabInput() is not implemented.
Does anyone know how to do this? SDL_WM_GrabInput() is designed
to prevent the user from switching input and mouse focus away from
the SDL application.
Continuous relative mouse motion is not implemented.
The AmigaOS port was done by Gabriele.Greco@galactica.it