Mercurial > sdl-ios-xcode
annotate src/video/wincommon/SDL_syswm.c @ 1795:398ac0f88e4d
Fixed bug #220
The AltiVec blitters don't compile, since they require __VEC__ to be enabled in
order for the compiler to understand "vector" and friends (i.e. do AltiVec)
But you don't want to turn AltiVec on globally, since then the code would only
run on a G4 (there are already runtime tests, before using the AltiVec
variants)
The solution here is to enable AltiVec locally, for the actual AltiVec code.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 09 May 2006 15:09:47 +0000 |
parents | 720f8bb49d7d |
children | 782fd950bd46 c121d94672cb b0955ae208f3 |
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 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1361
diff
changeset
|
22 #include "SDL_config.h" |
0 | 23 |
1433
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
24 #define WIN32_LEAN_AND_MEAN |
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
25 #include <windows.h> |
0 | 26 |
27 #include "SDL_version.h" | |
28 #include "SDL_video.h" | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
29 #include "SDL_loadso.h" |
0 | 30 #include "SDL_syswm.h" |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
31 #include "../SDL_pixels_c.h" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
32 #include "../SDL_cursor_c.h" |
0 | 33 #include "SDL_syswm_c.h" |
439
3ac8344e3872
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
438
diff
changeset
|
34 #include "SDL_wingl_c.h" |
1152
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 /* The screen icon -- needs to be freed on SDL_VideoQuit() */ | |
42 HICON screen_icn = NULL; | |
43 | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
44 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
45 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
46 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
|
47 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
|
48 HINSTANCE coredll = NULL; |
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 // 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
|
51 void LoadInputCatchFunc() |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
52 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
53 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
|
54 if( coredll ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
55 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
56 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
|
57 } |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
58 } |
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 #endif |
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 |
0 | 63 /* Win32 icon mask semantics are different from those of SDL: |
64 SDL applies the mask to the icon and copies result to desktop. | |
65 Win32 applies the mask to the desktop and XORs the icon on. | |
66 This means that the SDL mask needs to be applied to the icon and | |
67 then inverted and passed to Win32. | |
68 */ | |
69 void WIN_SetWMIcon(_THIS, SDL_Surface *icon, Uint8 *mask) | |
70 { | |
71 #ifdef DISABLE_ICON_SUPPORT | |
72 return; | |
73 #else | |
74 SDL_Palette *pal_256; | |
75 SDL_Surface *icon_256; | |
76 Uint8 *pdata, *pwin32; | |
77 Uint8 *mdata, *mwin32, m = 0; | |
78 int icon_len; | |
79 int icon_plen; | |
80 int icon_mlen; | |
81 int icon_pitch; | |
82 int mask_pitch; | |
83 SDL_Rect bounds; | |
84 int i, skip; | |
85 int row, col; | |
86 struct /* quasi-BMP format */ Win32Icon { | |
87 Uint32 biSize; | |
88 Sint32 biWidth; | |
89 Sint32 biHeight; | |
90 Uint16 biPlanes; | |
91 Uint16 biBitCount; | |
92 Uint32 biCompression; | |
93 Uint32 biSizeImage; | |
94 Sint32 biXPelsPerMeter; | |
95 Sint32 biYPelsPerMeter; | |
96 Uint32 biClrUsed; | |
97 Uint32 biClrImportant; | |
98 struct /* RGBQUAD -- note it's BGR ordered */ { | |
99 Uint8 rgbBlue; | |
100 Uint8 rgbGreen; | |
101 Uint8 rgbRed; | |
102 Uint8 rgbReserved; | |
103 } biColors[256]; | |
104 /* Pixels: | |
105 Uint8 pixels[] | |
106 */ | |
107 /* Mask: | |
108 Uint8 mask[] | |
109 */ | |
110 } *icon_win32; | |
111 | |
112 /* Allocate the win32 bmp icon and set everything to zero */ | |
113 icon_pitch = ((icon->w+3)&~3); | |
114 mask_pitch = ((icon->w+7)/8); | |
115 icon_plen = icon->h*icon_pitch; | |
116 icon_mlen = icon->h*mask_pitch; | |
117 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
|
118 icon_win32 = (struct Win32Icon *)SDL_stack_alloc(Uint8, icon_len); |
0 | 119 if ( icon_win32 == NULL ) { |
120 return; | |
121 } | |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
122 SDL_memset(icon_win32, 0, icon_len); |
0 | 123 |
124 /* Set the basic BMP parameters */ | |
125 icon_win32->biSize = sizeof(*icon_win32)-sizeof(icon_win32->biColors); | |
126 icon_win32->biWidth = icon->w; | |
127 icon_win32->biHeight = icon->h*2; | |
128 icon_win32->biPlanes = 1; | |
129 icon_win32->biBitCount = 8; | |
130 icon_win32->biSizeImage = icon_plen+icon_mlen; | |
131 | |
132 /* Allocate a standard 256 color icon surface */ | |
133 icon_256 = SDL_CreateRGBSurface(SDL_SWSURFACE, icon->w, icon->h, | |
134 icon_win32->biBitCount, 0, 0, 0, 0); | |
135 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
|
136 SDL_stack_free(icon_win32); |
0 | 137 return; |
138 } | |
139 pal_256 = icon_256->format->palette; | |
140 if (icon->format->palette && | |
141 (icon->format->BitsPerPixel == icon_256->format->BitsPerPixel)){ | |
142 Uint8 black; | |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
143 SDL_memcpy(pal_256->colors, icon->format->palette->colors, |
0 | 144 pal_256->ncolors*sizeof(SDL_Color)); |
145 /* Make sure that 0 is black! */ | |
146 black = SDL_FindColor(pal_256, 0x00, 0x00, 0x00); | |
147 pal_256->colors[black] = pal_256->colors[0]; | |
148 pal_256->colors[0].r = 0x00; | |
149 pal_256->colors[0].g = 0x00; | |
150 pal_256->colors[0].b = 0x00; | |
151 } else { | |
152 SDL_DitherColors(pal_256->colors, | |
153 icon_256->format->BitsPerPixel); | |
154 } | |
155 | |
156 /* Now copy color data to the icon BMP */ | |
157 for ( i=0; i<(1<<icon_win32->biBitCount); ++i ) { | |
158 icon_win32->biColors[i].rgbRed = pal_256->colors[i].r; | |
159 icon_win32->biColors[i].rgbGreen = pal_256->colors[i].g; | |
160 icon_win32->biColors[i].rgbBlue = pal_256->colors[i].b; | |
161 } | |
162 | |
163 /* Convert icon to a standard surface format. This may not always | |
164 be necessary, as Windows supports a variety of BMP formats, but | |
165 it greatly simplifies our code. | |
166 */ | |
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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 SDL_stack_free(icon_win32); |
0 | 173 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
|
174 return; |
0 | 175 } |
176 | |
177 /* Copy pixels upside-down to icon BMP, masked with the icon mask */ | |
178 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
|
179 SDL_stack_free(icon_win32); |
0 | 180 SDL_FreeSurface(icon_256); |
181 SDL_SetError("Warning: Unexpected icon_256 characteristics"); | |
182 return; | |
183 } | |
184 pdata = (Uint8 *)icon_256->pixels; | |
185 mdata = mask; | |
186 pwin32 = (Uint8 *)icon_win32+sizeof(*icon_win32)+icon_plen-icon_pitch; | |
187 skip = icon_pitch - icon->w; | |
188 for ( row=0; row<icon->h; ++row ) { | |
189 for ( col=0; col<icon->w; ++col ) { | |
190 if ( (col%8) == 0 ) { | |
191 m = *mdata++; | |
192 } | |
193 if ( (m&0x80) != 0x00 ) { | |
194 *pwin32 = *pdata; | |
195 } | |
196 m <<= 1; | |
197 ++pdata; | |
198 ++pwin32; | |
199 } | |
200 pdata += skip; | |
201 pwin32 += skip; | |
202 pwin32 -= 2*icon_pitch; | |
203 } | |
204 SDL_FreeSurface(icon_256); | |
205 | |
206 /* Copy mask inverted and upside-down to icon BMP */ | |
207 mdata = mask; | |
208 mwin32 = (Uint8 *)icon_win32 | |
209 +sizeof(*icon_win32)+icon_plen+icon_mlen-mask_pitch; | |
210 for ( row=0; row<icon->h; ++row ) { | |
211 for ( col=0; col<mask_pitch; ++col ) { | |
212 *mwin32++ = ~*mdata++; | |
213 } | |
214 mwin32 -= 2*mask_pitch; | |
215 } | |
216 | |
217 /* Finally, create the icon handle and set the window icon */ | |
218 screen_icn = CreateIconFromResourceEx((Uint8 *)icon_win32, icon_len, | |
219 TRUE, 0x00030000, icon->w, icon->h, LR_DEFAULTCOLOR); | |
220 if ( screen_icn == NULL ) { | |
221 SDL_SetError("Couldn't create Win32 icon handle"); | |
222 } else { | |
1481 | 223 SetClassLongPtr(SDL_Window, GCLP_HICON, (LONG_PTR)screen_icn); |
0 | 224 } |
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
|
225 SDL_stack_free(icon_win32); |
0 | 226 #endif /* DISABLE_ICON_SUPPORT */ |
227 } | |
228 | |
229 void WIN_SetWMCaption(_THIS, const char *title, const char *icon) | |
230 { | |
231 #ifdef _WIN32_WCE | |
232 /* WinCE uses the UNICODE version */ | |
1510 | 233 LPWSTR lpszW = SDL_iconv_utf8_ucs2((char *)title); |
0 | 234 SetWindowText(SDL_Window, lpszW); |
1505 | 235 SDL_free(lpszW); |
0 | 236 #else |
1510 | 237 char *lpsz = SDL_iconv_utf8_latin1((char *)title); |
1505 | 238 SetWindowText(SDL_Window, lpsz); |
239 SDL_free(lpsz); | |
0 | 240 #endif |
241 } | |
242 | |
243 int WIN_IconifyWindow(_THIS) | |
244 { | |
245 ShowWindow(SDL_Window, SW_MINIMIZE); | |
246 return(1); | |
247 } | |
248 | |
249 SDL_GrabMode WIN_GrabInput(_THIS, SDL_GrabMode mode) | |
250 { | |
251 if ( mode == SDL_GRAB_OFF ) { | |
252 ClipCursor(NULL); | |
253 if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) { | |
254 /* RJR: March 28, 2000 | |
255 must be leaving relative mode, move mouse from | |
256 center of window to where it belongs ... */ | |
257 POINT pt; | |
258 int x, y; | |
259 SDL_GetMouseState(&x,&y); | |
260 pt.x = x; | |
261 pt.y = y; | |
262 ClientToScreen(SDL_Window, &pt); | |
263 SetCursorPos(pt.x,pt.y); | |
264 } | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
265 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
266 if( input_catched ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
267 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
268 if( !CoreCatchInput ) LoadInputCatchFunc(); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
269 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
270 if( CoreCatchInput ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
271 CoreCatchInput(0); |
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 #endif |
0 | 274 } else { |
275 ClipCursor(&SDL_bounds); | |
276 if ( !(SDL_cursorstate & CURSOR_VISIBLE) ) { | |
277 /* RJR: March 28, 2000 | |
278 must be entering relative mode, get ready by | |
279 moving mouse to center of window ... */ | |
280 POINT pt; | |
281 pt.x = (SDL_VideoSurface->w/2); | |
282 pt.y = (SDL_VideoSurface->h/2); | |
283 ClientToScreen(SDL_Window, &pt); | |
284 SetCursorPos(pt.x, pt.y); | |
285 } | |
1152
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
286 #ifdef _WIN32_WCE |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
287 if( !input_catched ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
288 { |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
289 if( !CoreCatchInput ) LoadInputCatchFunc(); |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
290 |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
291 if( CoreCatchInput ) |
51a8702d8ecd
Updates to PocketPC (WinCE) support, thanks to Dmitry Yakimov at
Ryan C. Gordon <icculus@icculus.org>
parents:
439
diff
changeset
|
292 CoreCatchInput(1); |
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 #endif |
0 | 295 } |
296 return(mode); | |
297 } | |
298 | |
299 /* If 'info' is the right version, this function fills it and returns 1. | |
300 Otherwise, in case of a version mismatch, it returns -1. | |
301 */ | |
302 int WIN_GetWMInfo(_THIS, SDL_SysWMinfo *info) | |
303 { | |
304 if ( info->version.major <= SDL_MAJOR_VERSION ) { | |
305 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
|
306 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
|
307 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
|
308 info->version.patch) >= |
439
3ac8344e3872
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
438
diff
changeset
|
309 SDL_VERSIONNUM(1, 2, 5) ) { |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
310 #if SDL_VIDEO_OPENGL |
438
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->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
|
312 #else |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
313 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
|
314 #endif |
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
252
diff
changeset
|
315 } |
0 | 316 return(1); |
317 } else { | |
318 SDL_SetError("Application not compiled with SDL %d.%d\n", | |
319 SDL_MAJOR_VERSION, SDL_MINOR_VERSION); | |
320 return(-1); | |
321 } | |
322 } |