annotate src/video/windows/SDL_windowsvideo.h @ 5150:ad50b3db78bd

The rendering functions take a context so it's clear what window they're drawing to. This also potentially opens to the door to multi-threaded rendering in the future.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 01 Feb 2011 19:19:43 -0800
parents 57851a238c8f
children fb424691cfc7
rev   line source
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
1 /*
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
2 SDL - Simple DirectMedia Layer
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
3 Copyright (C) 1997-2010 Sam Lantinga
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
4
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
5 This library is free software; you can redistribute it and/or
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
6 modify it under the terms of the GNU Lesser General Public
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
7 License as published by the Free Software Foundation; either
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
9
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
10 This library is distributed in the hope that it will be useful,
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
13 Lesser General Public License for more details.
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
14
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
15 You should have received a copy of the GNU Lesser General Public
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
16 License along with this library; if not, write to the Free Software
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
18
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
19 Sam Lantinga
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
20 slouken@libsdl.org
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
21 */
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
22 #include "SDL_config.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
23
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
24 #ifndef _SDL_windowsvideo_h
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
25 #define _SDL_windowsvideo_h
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
26
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
27 #include "../SDL_sysvideo.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
28
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
29 #include "../../core/windows/SDL_windows.h"
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
30
5088
c2539ff054c8 Fixed compiling on Windows Mobile SDK 5.0 with Visual Studio 2008
Sam Lantinga <slouken@libsdl.org>
parents: 5083
diff changeset
31 #if defined(_MSC_VER) && !defined(_WIN32_WCE)
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
32 #include <msctf.h>
4893
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
33 #else
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
34 #include "SDL_msctf.h"
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
35 #endif
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
36
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
37 #include <imm.h>
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
38
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
39 #define MAX_CANDLIST 10
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
40 #define MAX_CANDLENGTH 256
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
41
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
42 #if SDL_VIDEO_RENDER_D3D
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
43 //#include <d3d9.h>
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
44 #define D3D_DEBUG_INFO
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
45 #include "d3d9.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
46 #endif
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
47
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
48 #include "SDL_windowsclipboard.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
49 #include "SDL_windowsevents.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
50 #include "SDL_windowsgamma.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
51 #include "SDL_windowskeyboard.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
52 #include "SDL_windowsmodes.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
53 #include "SDL_windowsmouse.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
54 #include "SDL_windowsopengl.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
55 #include "SDL_windowswindow.h"
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
56 #include "SDL_events.h"
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
57 #include "SDL_loadso.h"
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
58
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
59
5142
57851a238c8f Removed more partially functional renderers
Sam Lantinga <slouken@libsdl.org>
parents: 5092
diff changeset
60 enum { RENDER_NONE, RENDER_D3D };
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
61
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
62 #if WINVER < 0x0601
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
63 /* Touch input definitions */
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
64 #define TWF_FINETOUCH 1
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
65 #define TWF_WANTPALM 2
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
66
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
67 #define TOUCHEVENTF_MOVE 0x0001
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
68 #define TOUCHEVENTF_DOWN 0x0002
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
69 #define TOUCHEVENTF_UP 0x0004
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
70
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
71 DECLARE_HANDLE(HTOUCHINPUT);
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
72
5038
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
73 typedef struct _TOUCHINPUT {
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
74 LONG x;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
75 LONG y;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
76 HANDLE hSource;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
77 DWORD dwID;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
78 DWORD dwFlags;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
79 DWORD dwMask;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
80 DWORD dwTime;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
81 ULONG_PTR dwExtraInfo;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
82 DWORD cxContact;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
83 DWORD cyContact;
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
84 } TOUCHINPUT, *PTOUCHINPUT;
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
85
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
86 #endif /* WINVER < 0x0601 */
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
87
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
88 typedef BOOL (*PFNSHFullScreen)(HWND, DWORD);
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
89 typedef void (*PFCoordTransform)(SDL_Window*, POINT*);
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
90
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
91 typedef struct
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
92 {
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
93 void **lpVtbl;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
94 int refcount;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
95 void *data;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
96 } TSFSink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
97
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
98 /* Definition from Win98DDK version of IMM.H */
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
99 typedef struct tagINPUTCONTEXT2 {
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
100 HWND hWnd;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
101 BOOL fOpen;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
102 POINT ptStatusWndPos;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
103 POINT ptSoftKbdPos;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
104 DWORD fdwConversion;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
105 DWORD fdwSentence;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
106 union {
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
107 LOGFONTA A;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
108 LOGFONTW W;
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
109 } lfFont;
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
110 COMPOSITIONFORM cfCompForm;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
111 CANDIDATEFORM cfCandForm[4];
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
112 HIMCC hCompStr;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
113 HIMCC hCandInfo;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
114 HIMCC hGuideLine;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
115 HIMCC hPrivate;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
116 DWORD dwNumMsgBuf;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
117 HIMCC hMsgBuf;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
118 DWORD fdwInit;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
119 DWORD dwReserve[3];
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
120 } INPUTCONTEXT2, *PINPUTCONTEXT2, NEAR *NPINPUTCONTEXT2, FAR *LPINPUTCONTEXT2;
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
121
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
122 /* Private display data */
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
123
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
124 typedef struct SDL_VideoData
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
125 {
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
126 int render;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
127
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
128 #if SDL_VIDEO_RENDER_D3D
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
129 void* d3dDLL;
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
130 IDirect3D9 *d3d;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
131 #endif
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
132 #ifdef _WIN32_WCE
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
133 void* hAygShell;
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
134 PFNSHFullScreen SHFullScreen;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
135 PFCoordTransform CoordTransform;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
136 #endif
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
137
5083
25d4feb7c127 Renamed SDL_keysym to SDL_KeySym
krogoway
parents: 5062
diff changeset
138 const SDL_ScanCode *key_layout;
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
139 DWORD clipboard_count;
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
140
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
141 /* Touch input functions */
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
142 void* userDLL;
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
143 BOOL (WINAPI *CloseTouchInputHandle)( HTOUCHINPUT );
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
144 BOOL (WINAPI *GetTouchInputInfo)( HTOUCHINPUT, UINT, PTOUCHINPUT, int );
5038
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
145 BOOL (WINAPI *RegisterTouchWindow)( HWND, ULONG );
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
146
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
147 SDL_bool ime_com_initialized;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
148 struct ITfThreadMgr *ime_threadmgr;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
149 SDL_bool ime_initialized;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
150 SDL_bool ime_enabled;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
151 SDL_bool ime_available;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
152 HWND ime_hwnd_main;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
153 HWND ime_hwnd_current;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
154 HIMC ime_himc;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
155
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
156 WCHAR ime_composition[SDL_TEXTEDITINGEVENT_TEXT_SIZE];
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
157 WCHAR ime_readingstring[16];
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
158 int ime_cursor;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
159
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
160 SDL_bool ime_candlist;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
161 WCHAR ime_candidates[MAX_CANDLIST][MAX_CANDLENGTH];
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
162 DWORD ime_candcount;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
163 DWORD ime_candref;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
164 DWORD ime_candsel;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
165 UINT ime_candpgsize;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
166 int ime_candlistindexbase;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
167 SDL_bool ime_candvertical;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
168
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
169 SDL_Texture *ime_candtex;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
170 SDL_bool ime_dirty;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
171 SDL_Rect ime_rect;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
172 SDL_Rect ime_candlistrect;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
173 int ime_winwidth;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
174 int ime_winheight;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
175
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
176 HKL ime_hkl;
5092
327f181542f1 Include windows.h in a single point in the source, so we can be consistent about the definition of UNICODE and have core utility functions for Windows that all modules can share.
Sam Lantinga <slouken@libsdl.org>
parents: 5088
diff changeset
177 void* ime_himm32;
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
178 UINT (WINAPI *GetReadingString)(HIMC himc, UINT uReadingBufLen, LPWSTR lpwReadingBuf, PINT pnErrorIndex, BOOL *pfIsVertical, PUINT puMaxReadingLen);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
179 BOOL (WINAPI *ShowReadingWindow)(HIMC himc, BOOL bShow);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
180 LPINPUTCONTEXT2 (WINAPI *ImmLockIMC)(HIMC himc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
181 BOOL (WINAPI *ImmUnlockIMC)(HIMC himc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
182 LPVOID (WINAPI *ImmLockIMCC)(HIMCC himcc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
183 BOOL (WINAPI *ImmUnlockIMCC)(HIMCC himcc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
184
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
185 SDL_bool ime_uiless;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
186 struct ITfThreadMgrEx *ime_threadmgrex;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
187 DWORD ime_uielemsinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
188 DWORD ime_alpnsinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
189 DWORD ime_openmodesinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
190 DWORD ime_convmodesinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
191 TSFSink *ime_uielemsink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
192 TSFSink *ime_ippasink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
193 } SDL_VideoData;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
194
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
195 #endif /* _SDL_windowsvideo_h */
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
196
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
197 /* vi: set ts=4 sw=4 expandtab: */