This is a scratch pad for the IME Summer of Code 2010 project, by Daniel Wyatt
The code is available here: http://hg.libsdl.org/SDL-gsoc2010_IME
Contents
Status
I am mostly working on test code for using the TSF in an OpenGL application. The code is in EXCLUDE/GLTSF. I have made minimal changes to SDL itself because I am not familiar enough with the TSF just yet.
Right now, IME input should work in SDL windows but not in fullscreen. I have tested on Windows XP SP3 and Windows 7 (in VirtualBox). I have not implemented the actual SDL text input functions yet.
Documentation
Notes
There are two methods for enabling IME support on Windows:
I aim to use only the TSF in this project.
The TSF comes with Windows XP and newer. For earlier versions of Windows, you must install it separately. I believe the link is: Microsoft Windows Text Services Framework Redist files
TSF
The TSF is the new standard for text input and supports advanced features such as dictation. It is a collection of (many) COM interfaces. Sources for information:
- DirectX SDK Samples (Direct3D/CustomUI, DXUT/Optional)
- Mozilla (mozilla-1.9.2/widgets/src/windows/nsTextStore.cpp)
IMM
The IMM is the old way of doing things. On Windows XP and newer, the IMM is emulated by the TSF behind the scenes. This emulation is not perfect and there are known bugs/problems. One of the problems is that you can not do manual rendering by suppressing the rendering of the IME windows (ISC_* values are ignored). This means it may not be possible to have a fullscreen IME application using only the IMM interfaces.
