|
Size: 1926
Comment:
|
Size: 1956
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 37: | Line 37: |
| 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. | 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. |
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 currently writing non-SDL code to become better acquainted with the TSF. I will work on this until I feel confident in the use of the TSF and am ready to come up with a minimum C API for SDL (or determine the existing API is adequate).
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.
