Mercurial > sdl-ios-xcode
annotate src/video/wincommon/SDL_syswm.c @ 1348:40d0975c1769
Date: Mon, 6 Feb 2006 11:41:04 -0500
From: "mystml@adinet.com.uy"
Subject: [SDL] ALT-F4 using DirectX
My game isn't getting SDL_QUIT when I press ALT-F4 using the DirectX
driver; it does get SDL_QUIT when I press the red X in the window.
I tracked this down to DX5_HandleMessage() in SDL_dx5events.c;
WM_SYSKEYDOWN is being trapped and ignored which causes Windows not to post
a WM_CLOSE, hence no SDL_QUIT is being generated.
The relevant code is this :
/* The keyboard is handled via DirectInput */
case WM_SYSKEYUP:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_KEYDOWN: {
/* Ignore windows keyboard messages */;
}
return(0);
If I comment the WM_SYSKEYDOWN case, it falls through DefWindowProc() and
ALT-F4 starts working again.
I'm not sure about the best way to fix this. One option is handling ALT-F4
as a particular case somehow, but doesn't sound good. Another option would
be to handle WM_SYSKEYDOWN separately and breaking instead of returning 0,
so processing falls through and goes to DefWindowProc which does The Right
Thing (TM). This seems to be the minimal change that makes ALT-F4 work and
normal keyboard input continues to work.
Does this sound reasonable? Am I overlooking anything? Do I submit a patch?
--Gabriel
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 08 Feb 2006 17:19:43 +0000 |
parents | 604d73db6802 |
children | c71e05b4dc2e |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
0 | 4 |
5 This library is free software; you can redistribute it and/or | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
0 | 7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
0 | 9 |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
13 Lesser General Public License for more details. |
0 | 14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1152
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 18 |
19 Sam Lantinga | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
36
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
23 #include "SDL_windows.h" |
0 | 24 |
25 #include "SDL_version.h" | |
1338
604d73db6802
Removed uses of stdlib.h and string.h
Sam Lantinga <slouken@libsdl.org>
parents:
1336
diff
changeset
|
26 #include "SDL_stdlib.h" |
604d73db6802
Removed uses of stdlib.h and string.h
Sam Lantinga <slouken@libsdl.org>
parents:
1336
diff
changeset
|
27 #include "SDL_string.h" |
0 | 28 #include "SDL_error.h" |
29 #include "SDL_video.h" | |
30 #include "SDL_syswm.h" | |
31 #include "SDL_syswm_c.h" | |
439
3ac8344e3872
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
438
diff
changeset
|
32 #include "SDL_wingl_c.h" |
0 | 33 #include "SDL_pixels_c.h" |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
34 #include "SDL_loadso.h" |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
35 |
0 | 36 |
37 #ifdef _WIN32_WCE | |
38 #define DISABLE_ICON_SUPPORT | |
39 #endif | |
40 | |
41 /* RJR: March 28, 2000 | |
42 we need "SDL_cursor_c.h" for mods to WIN_GrabInput */ | |
43 #include "SDL_cursor_c.h" | |
44 | |
45 /* The screen icon -- needs to be freed on SDL_VideoQuit() */ | |
46 HICON screen_icn = NULL; | |
47 | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
48 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
49 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
50 BOOL (WINAPI *CoreCatchInput)(int flag) = NULL; |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
51 int input_catched = 0; |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
52 HINSTANCE coredll = NULL; |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
53 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
54 // the same API call that gx.dll does to catch the input |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
55 void LoadInputCatchFunc() |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
56 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
57 coredll = SDL_LoadObject("coredll.dll"); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
58 if( coredll ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
59 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
60 CoreCatchInput = (int (WINAPI *)(int)) GetProcAddress(coredll, (const unsigned short *) 1453); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
61 } |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
62 } |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
63 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
64 #endif |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
65 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
66 |
0 | 67 /* Win32 icon mask semantics are different from those of SDL: |
68 SDL applies the mask to the icon and copies result to desktop. | |
69 Win32 applies the mask to the desktop and XORs the icon on. | |
70 This means that the SDL mask needs to be applied to the icon and | |
71 then inverted and passed to Win32. | |
72 */ | |
73 void WIN_SetWMIcon(_THIS, SDL_Surface *icon, Uint8 *mask) | |
74 { | |
75 #ifdef DISABLE_ICON_SUPPORT | |
76 return; | |
77 #else | |
78 SDL_Palette *pal_256; | |
79 SDL_Surface *icon_256; | |
80 Uint8 *pdata, *pwin32; | |
81 Uint8 *mdata, *mwin32, m = 0; | |
82 int icon_len; | |
83 int icon_plen; | |
84 int icon_mlen; | |
85 int icon_pitch; | |
86 int mask_pitch; | |
87 SDL_Rect bounds; | |
88 int i, skip; | |
89 int row, col; | |
90 struct /* quasi-BMP format */ Win32Icon { | |
91 Uint32 biSize; | |
92 Sint32 biWidth; | |
93 Sint32 biHeight; | |
94 Uint16 biPlanes; | |
95 Uint16 biBitCount; | |
96 Uint32 biCompression; | |
97 Uint32 biSizeImage; | |
98 Sint32 biXPelsPerMeter; | |
99 Sint32 biYPelsPerMeter; | |
100 Uint32 biClrUsed; | |
101 Uint32 biClrImportant; | |
102 struct /* RGBQUAD -- note it's BGR ordered */ { | |
103 Uint8 rgbBlue; | |
104 Uint8 rgbGreen; | |
105 Uint8 rgbRed; | |
106 Uint8 rgbReserved; | |
107 } biColors[256]; | |
108 /* Pixels: | |
109 Uint8 pixels[] | |
110 */ | |
111 /* Mask: | |
112 Uint8 mask[] | |
113 */ | |
114 } *icon_win32; | |
115 | |
116 /* Allocate the win32 bmp icon and set everything to zero */ | |
117 icon_pitch = ((icon->w+3)&~3); | |
118 mask_pitch = ((icon->w+7)/8); | |
119 icon_plen = icon->h*icon_pitch; | |
120 icon_mlen = icon->h*mask_pitch; | |
121 icon_len = sizeof(*icon_win32)+icon_plen+icon_mlen; | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
122 icon_win32 = (struct Win32Icon *)SDL_stack_alloc(Uint8, icon_len); |
0 | 123 if ( icon_win32 == NULL ) { |
124 return; | |
125 } | |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
126 SDL_memset(icon_win32, 0, icon_len); |
0 | 127 |
128 /* Set the basic BMP parameters */ | |
129 icon_win32->biSize = sizeof(*icon_win32)-sizeof(icon_win32->biColors); | |
130 icon_win32->biWidth = icon->w; | |
131 icon_win32->biHeight = icon->h*2; | |
132 icon_win32->biPlanes = 1; | |
133 icon_win32->biBitCount = 8; | |
134 icon_win32->biSizeImage = icon_plen+icon_mlen; | |
135 | |
136 /* Allocate a standard 256 color icon surface */ | |
137 icon_256 = SDL_CreateRGBSurface(SDL_SWSURFACE, icon->w, icon->h, | |
138 icon_win32->biBitCount, 0, 0, 0, 0); | |
139 if ( icon_256 == NULL ) { | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
140 SDL_stack_free(icon_win32); |
0 | 141 return; |
142 } | |
143 pal_256 = icon_256->format->palette; | |
144 if (icon->format->palette && | |
145 (icon->format->BitsPerPixel == icon_256->format->BitsPerPixel)){ | |
146 Uint8 black; | |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
147 SDL_memcpy(pal_256->colors, icon->format->palette->colors, |
0 | 148 pal_256->ncolors*sizeof(SDL_Color)); |
149 /* Make sure that 0 is black! */ | |
150 black = SDL_FindColor(pal_256, 0x00, 0x00, 0x00); | |
151 pal_256->colors[black] = pal_256->colors[0]; | |
152 pal_256->colors[0].r = 0x00; | |
153 pal_256->colors[0].g = 0x00; | |
154 pal_256->colors[0].b = 0x00; | |
155 } else { | |
156 SDL_DitherColors(pal_256->colors, | |
157 icon_256->format->BitsPerPixel); | |
158 } | |
159 | |
160 /* Now copy color data to the icon BMP */ | |
161 for ( i=0; i<(1<<icon_win32->biBitCount); ++i ) { | |
162 icon_win32->biColors[i].rgbRed = pal_256->colors[i].r; | |
163 icon_win32->biColors[i].rgbGreen = pal_256->colors[i].g; | |
164 icon_win32->biColors[i].rgbBlue = pal_256->colors[i].b; | |
165 } | |
166 | |
167 /* Convert icon to a standard surface format. This may not always | |
168 be necessary, as Windows supports a variety of BMP formats, but | |
169 it greatly simplifies our code. | |
170 */ | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
171 bounds.x = 0; |
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
172 bounds.y = 0; |
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
173 bounds.w = icon->w; |
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
174 bounds.h = icon->h; |
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
175 if ( SDL_LowerBlit(icon, &bounds, icon_256, &bounds) < 0 ) { |
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
176 SDL_stack_free(icon_win32); |
0 | 177 SDL_FreeSurface(icon_256); |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
178 return; |
0 | 179 } |
180 | |
181 /* Copy pixels upside-down to icon BMP, masked with the icon mask */ | |
182 if ( SDL_MUSTLOCK(icon_256) || (icon_256->pitch != icon_pitch) ) { | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
183 SDL_stack_free(icon_win32); |
0 | 184 SDL_FreeSurface(icon_256); |
185 SDL_SetError("Warning: Unexpected icon_256 characteristics"); | |
186 return; | |
187 } | |
188 pdata = (Uint8 *)icon_256->pixels; | |
189 mdata = mask; | |
190 pwin32 = (Uint8 *)icon_win32+sizeof(*icon_win32)+icon_plen-icon_pitch; | |
191 skip = icon_pitch - icon->w; | |
192 for ( row=0; row<icon->h; ++row ) { | |
193 for ( col=0; col<icon->w; ++col ) { | |
194 if ( (col%8) == 0 ) { | |
195 m = *mdata++; | |
196 } | |
197 if ( (m&0x80) != 0x00 ) { | |
198 *pwin32 = *pdata; | |
199 } | |
200 m <<= 1; | |
201 ++pdata; | |
202 ++pwin32; | |
203 } | |
204 pdata += skip; | |
205 pwin32 += skip; | |
206 pwin32 -= 2*icon_pitch; | |
207 } | |
208 SDL_FreeSurface(icon_256); | |
209 | |
210 /* Copy mask inverted and upside-down to icon BMP */ | |
211 mdata = mask; | |
212 mwin32 = (Uint8 *)icon_win32 | |
213 +sizeof(*icon_win32)+icon_plen+icon_mlen-mask_pitch; | |
214 for ( row=0; row<icon->h; ++row ) { | |
215 for ( col=0; col<mask_pitch; ++col ) { | |
216 *mwin32++ = ~*mdata++; | |
217 } | |
218 mwin32 -= 2*mask_pitch; | |
219 } | |
220 | |
221 /* Finally, create the icon handle and set the window icon */ | |
222 screen_icn = CreateIconFromResourceEx((Uint8 *)icon_win32, icon_len, | |
223 TRUE, 0x00030000, icon->w, icon->h, LR_DEFAULTCOLOR); | |
224 if ( screen_icn == NULL ) { | |
225 SDL_SetError("Couldn't create Win32 icon handle"); | |
226 } else { | |
227 SetClassLong(SDL_Window, GCL_HICON, (LONG)screen_icn); | |
228 } | |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
229 SDL_stack_free(icon_win32); |
0 | 230 #endif /* DISABLE_ICON_SUPPORT */ |
231 } | |
232 | |
233 void WIN_SetWMCaption(_THIS, const char *title, const char *icon) | |
234 { | |
235 #ifdef _WIN32_WCE | |
236 /* WinCE uses the UNICODE version */ | |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
237 int nLen = SDL_strlen(title)+1; |
36
13ee9f4834ea
Windows CE patches contributed by Rainer Loritz
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
238 LPWSTR lpszW = alloca(nLen*2); |
0 | 239 MultiByteToWideChar(CP_ACP, 0, title, -1, lpszW, nLen); |
240 SetWindowText(SDL_Window, lpszW); | |
241 #else | |
242 SetWindowText(SDL_Window, title); | |
243 #endif | |
244 } | |
245 | |
246 int WIN_IconifyWindow(_THIS) | |
247 { | |
248 ShowWindow(SDL_Window, SW_MINIMIZE); | |
249 return(1); | |
250 } | |
251 | |
252 SDL_GrabMode WIN_GrabInput(_THIS, SDL_GrabMode mode) | |
253 { | |
254 if ( mode == SDL_GRAB_OFF ) { | |
255 ClipCursor(NULL); | |
256 if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) { | |
257 /* RJR: March 28, 2000 | |
258 must be leaving relative mode, move mouse from | |
259 center of window to where it belongs ... */ | |
260 POINT pt; | |
261 int x, y; | |
262 SDL_GetMouseState(&x,&y); | |
263 pt.x = x; | |
264 pt.y = y; | |
265 ClientToScreen(SDL_Window, &pt); | |
266 SetCursorPos(pt.x,pt.y); | |
267 } | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
268 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
269 if( input_catched ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
270 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
271 if( !CoreCatchInput ) LoadInputCatchFunc(); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
272 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
273 if( CoreCatchInput ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
274 CoreCatchInput(0); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
275 } |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
276 #endif |
0 | 277 } else { |
278 ClipCursor(&SDL_bounds); | |
279 if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) { | |
280 /* RJR: March 28, 2000 | |
281 must be entering relative mode, get ready by | |
282 moving mouse to center of window ... */ | |
283 POINT pt; | |
284 pt.x = (SDL_VideoSurface->w/2); | |
285 pt.y = (SDL_VideoSurface->h/2); | |
286 ClientToScreen(SDL_Window, &pt); | |
287 SetCursorPos(pt.x, pt.y); | |
288 } | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
289 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
290 if( !input_catched ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
291 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
292 if( !CoreCatchInput ) LoadInputCatchFunc(); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
293 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
294 if( CoreCatchInput ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
295 CoreCatchInput(1); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
296 } |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
297 #endif |
0 | 298 } |
299 return(mode); | |
300 } | |
301 | |
302 /* If 'info' is the right version, this function fills it and returns 1. | |
303 Otherwise, in case of a version mismatch, it returns -1. | |
304 */ | |
305 int WIN_GetWMInfo(_THIS, SDL_SysWMinfo *info) | |
306 { | |
307 if ( info->version.major <= SDL_MAJOR_VERSION ) { | |
308 info->window = SDL_Window; | |
438
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
309 if ( SDL_VERSIONNUM(info->version.major, |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
310 info->version.minor, |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
311 info->version.patch) >= |
439
3ac8344e3872
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
438
diff
changeset
|
312 SDL_VERSIONNUM(1, 2, 5) ) { |
438
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
313 #ifdef HAVE_OPENGL |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
314 info->hglrc = GL_hrc; |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
315 #else |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
316 info->hglrc = NULL; |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
317 #endif |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
318 } |
0 | 319 return(1); |
320 } else { | |
321 SDL_SetError("Application not compiled with SDL %d.%d\n", | |
322 SDL_MAJOR_VERSION, SDL_MINOR_VERSION); | |
323 return(-1); | |
324 } | |
325 } |