Mercurial > sdl-ios-xcode
comparison src/video/macrom/SDL_romvideo.c @ 1668:4da1ee79c9af SDL-1.3
more tweaking indent options
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 29 May 2006 04:04:35 +0000 |
parents | 782fd950bd46 |
children |
comparison
equal
deleted
inserted
replaced
1667:1fddae038bc8 | 1668:4da1ee79c9af |
---|---|
51 #include "../maccommon/SDL_macwm_c.h" | 51 #include "../maccommon/SDL_macwm_c.h" |
52 #include "../maccommon/SDL_macmouse_c.h" | 52 #include "../maccommon/SDL_macmouse_c.h" |
53 #include "../maccommon/SDL_macevents_c.h" | 53 #include "../maccommon/SDL_macevents_c.h" |
54 | 54 |
55 /* Initialization/Query functions */ | 55 /* Initialization/Query functions */ |
56 static int ROM_VideoInit (_THIS, SDL_PixelFormat * vformat); | 56 static int ROM_VideoInit(_THIS, SDL_PixelFormat * vformat); |
57 static SDL_Rect **ROM_ListModes (_THIS, SDL_PixelFormat * format, | 57 static SDL_Rect **ROM_ListModes(_THIS, SDL_PixelFormat * format, |
58 Uint32 flags); | 58 Uint32 flags); |
59 static SDL_Surface *ROM_SetVideoMode (_THIS, SDL_Surface * current, int width, | 59 static SDL_Surface *ROM_SetVideoMode(_THIS, SDL_Surface * current, int width, |
60 int height, int bpp, Uint32 flags); | 60 int height, int bpp, Uint32 flags); |
61 static int ROM_SetColors (_THIS, int firstcolor, int ncolors, | 61 static int ROM_SetColors(_THIS, int firstcolor, int ncolors, |
62 SDL_Color * colors); | 62 SDL_Color * colors); |
63 static void ROM_VideoQuit (_THIS); | 63 static void ROM_VideoQuit(_THIS); |
64 | 64 |
65 /* Hardware surface functions */ | 65 /* Hardware surface functions */ |
66 static int ROM_AllocHWSurface (_THIS, SDL_Surface * surface); | 66 static int ROM_AllocHWSurface(_THIS, SDL_Surface * surface); |
67 static int ROM_LockHWSurface (_THIS, SDL_Surface * surface); | 67 static int ROM_LockHWSurface(_THIS, SDL_Surface * surface); |
68 static void ROM_UnlockHWSurface (_THIS, SDL_Surface * surface); | 68 static void ROM_UnlockHWSurface(_THIS, SDL_Surface * surface); |
69 static void ROM_FreeHWSurface (_THIS, SDL_Surface * surface); | 69 static void ROM_FreeHWSurface(_THIS, SDL_Surface * surface); |
70 | 70 |
71 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ | 71 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ |
72 /* Saved state for the menu bar */ | 72 /* Saved state for the menu bar */ |
73 static RgnHandle gSaveGrayRgn = nil; | 73 static RgnHandle gSaveGrayRgn = nil; |
74 static short gSaveMenuBar = 0; | 74 static short gSaveMenuBar = 0; |
88 { 0x41FA, 0x0014, 0x209F, (p1), (p2), (p3), 0x41FA, \ | 88 { 0x41FA, 0x0014, 0x209F, (p1), (p2), (p3), 0x41FA, \ |
89 0x0008, 0x2F10, 0x4E75, 0x0000, 0x0000, 0x0000 } | 89 0x0008, 0x2F10, 0x4E75, 0x0000, 0x0000, 0x0000 } |
90 | 90 |
91 /* ControlStrip inline glue for PowerPC */ | 91 /* ControlStrip inline glue for PowerPC */ |
92 static pascal Boolean | 92 static pascal Boolean |
93 SBIsControlStripVisible (void) | 93 SBIsControlStripVisible(void) |
94 { | 94 { |
95 static short procData[] = TWOWORDSTUB (0x7000, 0xAAF2); | 95 static short procData[] = TWOWORDSTUB(0x7000, 0xAAF2); |
96 ProcInfoType procInfo = kD0DispatchedPascalStackBased | 96 ProcInfoType procInfo = kD0DispatchedPascalStackBased |
97 | RESULT_SIZE (SIZE_CODE (sizeof (Boolean))) | 97 | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) |
98 | DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE (kFourByteCode); | 98 | DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kFourByteCode); |
99 | 99 |
100 return ((Boolean) | 100 return ((Boolean) |
101 CallUniversalProc ((UniversalProcPtr) procData, procInfo, 0x00)); | 101 CallUniversalProc((UniversalProcPtr) procData, procInfo, 0x00)); |
102 } | 102 } |
103 | 103 |
104 static pascal void | 104 static pascal void |
105 SBShowHideControlStrip (Boolean showIt) | 105 SBShowHideControlStrip(Boolean showIt) |
106 { | 106 { |
107 static short procData[] = THREEWORDSTUB (0x303C, 0x0101, 0xAAF2); | 107 static short procData[] = THREEWORDSTUB(0x303C, 0x0101, 0xAAF2); |
108 ProcInfoType procInfo = kD0DispatchedPascalStackBased | 108 ProcInfoType procInfo = kD0DispatchedPascalStackBased |
109 | DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE (kFourByteCode) | 109 | DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kFourByteCode) |
110 | DISPATCHED_STACK_ROUTINE_PARAMETER (1, | 110 | DISPATCHED_STACK_ROUTINE_PARAMETER(1, |
111 SIZE_CODE (sizeof (Boolean))); | 111 SIZE_CODE(sizeof(Boolean))); |
112 | 112 |
113 CallUniversalProc ((UniversalProcPtr) procData, procInfo, 0x01, showIt); | 113 CallUniversalProc((UniversalProcPtr) procData, procInfo, 0x01, showIt); |
114 } | 114 } |
115 #endif /* powerc */ | 115 #endif /* powerc */ |
116 #endif /* !TARGET_API_MAC_CARBON */ | 116 #endif /* !TARGET_API_MAC_CARBON */ |
117 | 117 |
118 /* Macintosh toolbox driver bootstrap functions */ | 118 /* Macintosh toolbox driver bootstrap functions */ |
119 | 119 |
120 static int | 120 static int |
121 ROM_Available (void) | 121 ROM_Available(void) |
122 { | 122 { |
123 return (1); | 123 return (1); |
124 } | 124 } |
125 | 125 |
126 static void | 126 static void |
127 ROM_DeleteDevice (SDL_VideoDevice * device) | 127 ROM_DeleteDevice(SDL_VideoDevice * device) |
128 { | 128 { |
129 SDL_free (device->hidden); | 129 SDL_free(device->hidden); |
130 SDL_free (device); | 130 SDL_free(device); |
131 } | 131 } |
132 | 132 |
133 static SDL_VideoDevice * | 133 static SDL_VideoDevice * |
134 ROM_CreateDevice (int devindex) | 134 ROM_CreateDevice(int devindex) |
135 { | 135 { |
136 SDL_VideoDevice *device; | 136 SDL_VideoDevice *device; |
137 | 137 |
138 /* Initialize all variables that we clean on shutdown */ | 138 /* Initialize all variables that we clean on shutdown */ |
139 device = (SDL_VideoDevice *) SDL_malloc (sizeof (SDL_VideoDevice)); | 139 device = (SDL_VideoDevice *) SDL_malloc(sizeof(SDL_VideoDevice)); |
140 if (device) { | 140 if (device) { |
141 SDL_memset (device, 0, (sizeof *device)); | 141 SDL_memset(device, 0, (sizeof *device)); |
142 device->hidden = (struct SDL_PrivateVideoData *) | 142 device->hidden = (struct SDL_PrivateVideoData *) |
143 SDL_malloc ((sizeof *device->hidden)); | 143 SDL_malloc((sizeof *device->hidden)); |
144 } | 144 } |
145 if ((device == NULL) || (device->hidden == NULL)) { | 145 if ((device == NULL) || (device->hidden == NULL)) { |
146 SDL_OutOfMemory (); | 146 SDL_OutOfMemory(); |
147 if (device) { | 147 if (device) { |
148 SDL_free (device); | 148 SDL_free(device); |
149 } | 149 } |
150 return (0); | 150 return (0); |
151 } | 151 } |
152 SDL_memset (device->hidden, 0, (sizeof *device->hidden)); | 152 SDL_memset(device->hidden, 0, (sizeof *device->hidden)); |
153 | 153 |
154 /* Set the function pointers */ | 154 /* Set the function pointers */ |
155 device->VideoInit = ROM_VideoInit; | 155 device->VideoInit = ROM_VideoInit; |
156 device->ListModes = ROM_ListModes; | 156 device->ListModes = ROM_ListModes; |
157 device->SetVideoMode = ROM_SetVideoMode; | 157 device->SetVideoMode = ROM_SetVideoMode; |
195 ROM_Available, ROM_CreateDevice | 195 ROM_Available, ROM_CreateDevice |
196 }; | 196 }; |
197 | 197 |
198 | 198 |
199 static int | 199 static int |
200 ROM_VideoInit (_THIS, SDL_PixelFormat * vformat) | 200 ROM_VideoInit(_THIS, SDL_PixelFormat * vformat) |
201 { | 201 { |
202 long info; | 202 long info; |
203 | 203 |
204 /* Check out some things about the system */ | 204 /* Check out some things about the system */ |
205 Gestalt (gestaltQuickdrawVersion, &info); | 205 Gestalt(gestaltQuickdrawVersion, &info); |
206 if (info == gestaltOriginalQD) { | 206 if (info == gestaltOriginalQD) { |
207 SDL_SetError ("Color Quickdraw not available"); | 207 SDL_SetError("Color Quickdraw not available"); |
208 return (-1); | 208 return (-1); |
209 } | 209 } |
210 | 210 |
211 /* Start ROMintosh events */ | 211 /* Start ROMintosh events */ |
212 Mac_InitEvents (this); | 212 Mac_InitEvents(this); |
213 | 213 |
214 /* Get a handle to the main monitor */ | 214 /* Get a handle to the main monitor */ |
215 SDL_Display = GetMainDevice (); | 215 SDL_Display = GetMainDevice(); |
216 | 216 |
217 /* Determine the current screen size */ | 217 /* Determine the current screen size */ |
218 this->info.current_w = (**SDL_Display).gdRect.right; | 218 this->info.current_w = (**SDL_Display).gdRect.right; |
219 this->info.current_h = (**SDL_Display).gdRect.bottom; | 219 this->info.current_h = (**SDL_Display).gdRect.bottom; |
220 | 220 |
229 default: | 229 default: |
230 break; | 230 break; |
231 } | 231 } |
232 | 232 |
233 /* Create our palette */ | 233 /* Create our palette */ |
234 SDL_CTab = (CTabHandle) NewHandle (sizeof (ColorSpec) * 256 + 8); | 234 SDL_CTab = (CTabHandle) NewHandle(sizeof(ColorSpec) * 256 + 8); |
235 if (SDL_CTab == nil) { | 235 if (SDL_CTab == nil) { |
236 SDL_OutOfMemory (); | 236 SDL_OutOfMemory(); |
237 return (-1); | 237 return (-1); |
238 } | 238 } |
239 (**SDL_CTab).ctSeed = GetCTSeed (); | 239 (**SDL_CTab).ctSeed = GetCTSeed(); |
240 (**SDL_CTab).ctFlags = 0; | 240 (**SDL_CTab).ctFlags = 0; |
241 (**SDL_CTab).ctSize = 255; | 241 (**SDL_CTab).ctSize = 255; |
242 CTabChanged (SDL_CTab); | 242 CTabChanged(SDL_CTab); |
243 SDL_CPal = NewPalette (256, SDL_CTab, pmExplicit + pmTolerant, 0); | 243 SDL_CPal = NewPalette(256, SDL_CTab, pmExplicit + pmTolerant, 0); |
244 | 244 |
245 /* Get a list of available fullscreen modes */ | 245 /* Get a list of available fullscreen modes */ |
246 SDL_modelist = (SDL_Rect **) SDL_malloc ((1 + 1) * sizeof (SDL_Rect *)); | 246 SDL_modelist = (SDL_Rect **) SDL_malloc((1 + 1) * sizeof(SDL_Rect *)); |
247 if (SDL_modelist) { | 247 if (SDL_modelist) { |
248 SDL_modelist[0] = (SDL_Rect *) SDL_malloc (sizeof (SDL_Rect)); | 248 SDL_modelist[0] = (SDL_Rect *) SDL_malloc(sizeof(SDL_Rect)); |
249 if (SDL_modelist[0]) { | 249 if (SDL_modelist[0]) { |
250 SDL_modelist[0]->x = 0; | 250 SDL_modelist[0]->x = 0; |
251 SDL_modelist[0]->y = 0; | 251 SDL_modelist[0]->y = 0; |
252 SDL_modelist[0]->w = (**SDL_Display).gdRect.right; | 252 SDL_modelist[0]->w = (**SDL_Display).gdRect.right; |
253 SDL_modelist[0]->h = (**SDL_Display).gdRect.bottom; | 253 SDL_modelist[0]->h = (**SDL_Display).gdRect.bottom; |
261 /* We're done! */ | 261 /* We're done! */ |
262 return (0); | 262 return (0); |
263 } | 263 } |
264 | 264 |
265 static SDL_Rect ** | 265 static SDL_Rect ** |
266 ROM_ListModes (_THIS, SDL_PixelFormat * format, Uint32 flags) | 266 ROM_ListModes(_THIS, SDL_PixelFormat * format, Uint32 flags) |
267 { | 267 { |
268 if (this->screen->format->BitsPerPixel == format->BitsPerPixel) { | 268 if (this->screen->format->BitsPerPixel == format->BitsPerPixel) { |
269 if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { | 269 if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { |
270 return (SDL_modelist); | 270 return (SDL_modelist); |
271 } else { | 271 } else { |
275 return ((SDL_Rect **) 0); | 275 return ((SDL_Rect **) 0); |
276 } | 276 } |
277 } | 277 } |
278 | 278 |
279 static void | 279 static void |
280 ROM_HideMenuBar (_THIS) | 280 ROM_HideMenuBar(_THIS) |
281 { | 281 { |
282 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ | 282 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ |
283 RgnHandle drawRgn = nil; | 283 RgnHandle drawRgn = nil; |
284 RgnHandle tempRgn = nil; | 284 RgnHandle tempRgn = nil; |
285 RgnHandle grayRgn = nil; | 285 RgnHandle grayRgn = nil; |
288 GrafPtr savePort; | 288 GrafPtr savePort; |
289 long response; | 289 long response; |
290 short height; | 290 short height; |
291 EventRecord theEvent; | 291 EventRecord theEvent; |
292 | 292 |
293 height = GetMBarHeight (); | 293 height = GetMBarHeight(); |
294 | 294 |
295 if (height > 0) { | 295 if (height > 0) { |
296 tempRgn = NewRgn (); | 296 tempRgn = NewRgn(); |
297 drawRgn = NewRgn (); | 297 drawRgn = NewRgn(); |
298 gSaveGrayRgn = NewRgn (); | 298 gSaveGrayRgn = NewRgn(); |
299 if (!tempRgn || !drawRgn || !gSaveGrayRgn) { | 299 if (!tempRgn || !drawRgn || !gSaveGrayRgn) { |
300 goto CLEANUP; | 300 goto CLEANUP; |
301 } | 301 } |
302 grayRgn = GetGrayRgn (); /* No need to check for this */ | 302 grayRgn = GetGrayRgn(); /* No need to check for this */ |
303 | 303 |
304 GetPort (&savePort); | 304 GetPort(&savePort); |
305 | 305 |
306 /* Hide the control strip if it's present, and record its | 306 /* Hide the control strip if it's present, and record its |
307 previous position into the dirty region for redrawing. | 307 previous position into the dirty region for redrawing. |
308 This isn't necessary, but may help catch stray bits. */ | 308 This isn't necessary, but may help catch stray bits. */ |
309 CopyRgn (grayRgn, tempRgn); | 309 CopyRgn(grayRgn, tempRgn); |
310 if (!Gestalt (gestaltControlStripAttr, &response) && | 310 if (!Gestalt(gestaltControlStripAttr, &response) && |
311 (response & (1L << gestaltControlStripExists))) { | 311 (response & (1L << gestaltControlStripExists))) { |
312 gSaveCSVis = SBIsControlStripVisible (); | 312 gSaveCSVis = SBIsControlStripVisible(); |
313 if (gSaveCSVis) | 313 if (gSaveCSVis) |
314 SBShowHideControlStrip (false); | 314 SBShowHideControlStrip(false); |
315 } | 315 } |
316 DiffRgn (grayRgn, tempRgn, drawRgn); | 316 DiffRgn(grayRgn, tempRgn, drawRgn); |
317 | 317 |
318 /* Save the gray region once the control strip is hidden */ | 318 /* Save the gray region once the control strip is hidden */ |
319 CopyRgn (grayRgn, gSaveGrayRgn); | 319 CopyRgn(grayRgn, gSaveGrayRgn); |
320 | 320 |
321 /* Change the menu height in lowmem */ | 321 /* Change the menu height in lowmem */ |
322 gSaveMenuBar = height; | 322 gSaveMenuBar = height; |
323 LMSetMBarHeight (0); | 323 LMSetMBarHeight(0); |
324 | 324 |
325 /* Walk the monitor rectangles, and combine any pieces that | 325 /* Walk the monitor rectangles, and combine any pieces that |
326 aren't in GrayRgn: menubar, round corners, fake floaters. */ | 326 aren't in GrayRgn: menubar, round corners, fake floaters. */ |
327 for (gd = GetDeviceList (); gd; gd = GetNextDevice (gd)) { | 327 for (gd = GetDeviceList(); gd; gd = GetNextDevice(gd)) { |
328 if (!TestDeviceAttribute (gd, screenDevice)) | 328 if (!TestDeviceAttribute(gd, screenDevice)) |
329 continue; | 329 continue; |
330 if (!TestDeviceAttribute (gd, screenActive)) | 330 if (!TestDeviceAttribute(gd, screenActive)) |
331 continue; | 331 continue; |
332 | 332 |
333 RectRgn (tempRgn, &(*gd)->gdRect); /* Get the whole screen */ | 333 RectRgn(tempRgn, &(*gd)->gdRect); /* Get the whole screen */ |
334 DiffRgn (tempRgn, grayRgn, tempRgn); /* Subtract out GrayRgn */ | 334 DiffRgn(tempRgn, grayRgn, tempRgn); /* Subtract out GrayRgn */ |
335 UnionRgn (tempRgn, drawRgn, drawRgn); /* Combine all the bits */ | 335 UnionRgn(tempRgn, drawRgn, drawRgn); /* Combine all the bits */ |
336 } | 336 } |
337 | 337 |
338 /* Add the bits into the GrayRgn */ | 338 /* Add the bits into the GrayRgn */ |
339 UnionRgn (drawRgn, grayRgn, grayRgn); | 339 UnionRgn(drawRgn, grayRgn, grayRgn); |
340 | 340 |
341 /* Modify the vis regions of exposed windows */ | 341 /* Modify the vis regions of exposed windows */ |
342 window = (FrontWindow ())? FrontWindow () : (WindowPtr) - 1L; | 342 window = (FrontWindow())? FrontWindow() : (WindowPtr) - 1L; |
343 PaintBehind (window, drawRgn); | 343 PaintBehind(window, drawRgn); |
344 CalcVisBehind (window, drawRgn); | 344 CalcVisBehind(window, drawRgn); |
345 | 345 |
346 SetPort (savePort); | 346 SetPort(savePort); |
347 | 347 |
348 /* Yield time so that floaters can catch up */ | 348 /* Yield time so that floaters can catch up */ |
349 EventAvail (0, &theEvent); | 349 EventAvail(0, &theEvent); |
350 EventAvail (0, &theEvent); | 350 EventAvail(0, &theEvent); |
351 EventAvail (0, &theEvent); | 351 EventAvail(0, &theEvent); |
352 EventAvail (0, &theEvent); | 352 EventAvail(0, &theEvent); |
353 } | 353 } |
354 | 354 |
355 CLEANUP: | 355 CLEANUP: |
356 | 356 |
357 if (tempRgn) | 357 if (tempRgn) |
358 DisposeRgn (tempRgn); | 358 DisposeRgn(tempRgn); |
359 if (drawRgn) | 359 if (drawRgn) |
360 DisposeRgn (drawRgn); | 360 DisposeRgn(drawRgn); |
361 #endif /* !TARGET_API_MAC_CARBON */ | 361 #endif /* !TARGET_API_MAC_CARBON */ |
362 } | 362 } |
363 | 363 |
364 static void | 364 static void |
365 ROM_ShowMenuBar (_THIS) | 365 ROM_ShowMenuBar(_THIS) |
366 { | 366 { |
367 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ | 367 #if !TARGET_API_MAC_CARBON /* This seems not to be available? -sts Aug 2000 */ |
368 RgnHandle drawRgn = nil; | 368 RgnHandle drawRgn = nil; |
369 RgnHandle menuRgn = nil; | 369 RgnHandle menuRgn = nil; |
370 RgnHandle tempRgn = nil; | 370 RgnHandle tempRgn = nil; |
377 short height; | 377 short height; |
378 EventRecord theEvent; | 378 EventRecord theEvent; |
379 RGBColor saveRGB; | 379 RGBColor saveRGB; |
380 RGBColor blackRGB = { 0, 0, 0 }; | 380 RGBColor blackRGB = { 0, 0, 0 }; |
381 | 381 |
382 height = GetMBarHeight (); | 382 height = GetMBarHeight(); |
383 | 383 |
384 if ((height <= 0) && (gSaveMenuBar > 0)) { | 384 if ((height <= 0) && (gSaveMenuBar > 0)) { |
385 drawRgn = NewRgn (); | 385 drawRgn = NewRgn(); |
386 menuRgn = NewRgn (); | 386 menuRgn = NewRgn(); |
387 tempRgn = NewRgn (); | 387 tempRgn = NewRgn(); |
388 if (!tempRgn || !drawRgn || !gSaveGrayRgn) { | 388 if (!tempRgn || !drawRgn || !gSaveGrayRgn) { |
389 goto CLEANUP; | 389 goto CLEANUP; |
390 } | 390 } |
391 grayRgn = GetGrayRgn (); /* No need to check for this */ | 391 grayRgn = GetGrayRgn(); /* No need to check for this */ |
392 | 392 |
393 GetPort (&savePort); | 393 GetPort(&savePort); |
394 GetWMgrPort (&wMgrPort); | 394 GetWMgrPort(&wMgrPort); |
395 | 395 |
396 /* Set the height properly */ | 396 /* Set the height properly */ |
397 LMSetMBarHeight (gSaveMenuBar); | 397 LMSetMBarHeight(gSaveMenuBar); |
398 | 398 |
399 /* Restore the old GrayRgn: rounded corners, etc, but not | 399 /* Restore the old GrayRgn: rounded corners, etc, but not |
400 the menubar -- subtract that out first! */ | 400 the menubar -- subtract that out first! */ |
401 if (gSaveGrayRgn) { | 401 if (gSaveGrayRgn) { |
402 menuRect = (*GetMainDevice ())->gdRect; | 402 menuRect = (*GetMainDevice())->gdRect; |
403 menuRect.bottom = menuRect.top + gSaveMenuBar; | 403 menuRect.bottom = menuRect.top + gSaveMenuBar; |
404 RectRgn (menuRgn, &menuRect); | 404 RectRgn(menuRgn, &menuRect); |
405 | 405 |
406 DiffRgn (grayRgn, gSaveGrayRgn, drawRgn); /* What do we inval? */ | 406 DiffRgn(grayRgn, gSaveGrayRgn, drawRgn); /* What do we inval? */ |
407 DiffRgn (drawRgn, menuRgn, drawRgn); /* Clip out the menu */ | 407 DiffRgn(drawRgn, menuRgn, drawRgn); /* Clip out the menu */ |
408 | 408 |
409 /* Now redraw the corners and other bits black */ | 409 /* Now redraw the corners and other bits black */ |
410 SetPort (wMgrPort); | 410 SetPort(wMgrPort); |
411 GetClip (tempRgn); | 411 GetClip(tempRgn); |
412 SetClip (drawRgn); | 412 SetClip(drawRgn); |
413 GetForeColor (&saveRGB); | 413 GetForeColor(&saveRGB); |
414 RGBForeColor (&blackRGB); | 414 RGBForeColor(&blackRGB); |
415 PaintRgn (drawRgn); | 415 PaintRgn(drawRgn); |
416 RGBForeColor (&saveRGB); | 416 RGBForeColor(&saveRGB); |
417 SetClip (tempRgn); | 417 SetClip(tempRgn); |
418 SetPort (savePort); | 418 SetPort(savePort); |
419 | 419 |
420 UnionRgn (drawRgn, menuRgn, drawRgn); /* Put back the menu */ | 420 UnionRgn(drawRgn, menuRgn, drawRgn); /* Put back the menu */ |
421 | 421 |
422 /* Now actually restore the GrayRgn */ | 422 /* Now actually restore the GrayRgn */ |
423 CopyRgn (gSaveGrayRgn, grayRgn); | 423 CopyRgn(gSaveGrayRgn, grayRgn); |
424 DisposeRgn (gSaveGrayRgn); | 424 DisposeRgn(gSaveGrayRgn); |
425 gSaveGrayRgn = nil; | 425 gSaveGrayRgn = nil; |
426 } | 426 } |
427 | 427 |
428 /* Modify the vis regions of exposed windows and draw menubar */ | 428 /* Modify the vis regions of exposed windows and draw menubar */ |
429 window = (FrontWindow ())? FrontWindow () : (WindowPtr) - 1L; | 429 window = (FrontWindow())? FrontWindow() : (WindowPtr) - 1L; |
430 PaintBehind (window, drawRgn); | 430 PaintBehind(window, drawRgn); |
431 CalcVisBehind (window, drawRgn); | 431 CalcVisBehind(window, drawRgn); |
432 DrawMenuBar (); | 432 DrawMenuBar(); |
433 | 433 |
434 SetPort (savePort); | 434 SetPort(savePort); |
435 gSaveMenuBar = 0; | 435 gSaveMenuBar = 0; |
436 | 436 |
437 /* Now show the control strip if it's present */ | 437 /* Now show the control strip if it's present */ |
438 if (!Gestalt (gestaltControlStripAttr, &response) && | 438 if (!Gestalt(gestaltControlStripAttr, &response) && |
439 (response & (1L << gestaltControlStripExists))) { | 439 (response & (1L << gestaltControlStripExists))) { |
440 if (gSaveCSVis && !SBIsControlStripVisible ()) | 440 if (gSaveCSVis && !SBIsControlStripVisible()) |
441 SBShowHideControlStrip (true); | 441 SBShowHideControlStrip(true); |
442 gSaveCSVis = true; | 442 gSaveCSVis = true; |
443 } | 443 } |
444 | 444 |
445 /* Yield time so that floaters can catch up */ | 445 /* Yield time so that floaters can catch up */ |
446 EventAvail (0, &theEvent); | 446 EventAvail(0, &theEvent); |
447 EventAvail (0, &theEvent); | 447 EventAvail(0, &theEvent); |
448 EventAvail (0, &theEvent); | 448 EventAvail(0, &theEvent); |
449 EventAvail (0, &theEvent); | 449 EventAvail(0, &theEvent); |
450 } | 450 } |
451 | 451 |
452 CLEANUP: | 452 CLEANUP: |
453 | 453 |
454 if (drawRgn) | 454 if (drawRgn) |
455 DisposeRgn (drawRgn); | 455 DisposeRgn(drawRgn); |
456 if (menuRgn) | 456 if (menuRgn) |
457 DisposeRgn (menuRgn); | 457 DisposeRgn(menuRgn); |
458 if (tempRgn) | 458 if (tempRgn) |
459 DisposeRgn (tempRgn); | 459 DisposeRgn(tempRgn); |
460 #endif /* !TARGET_API_MAC_CARBON */ | 460 #endif /* !TARGET_API_MAC_CARBON */ |
461 } | 461 } |
462 | 462 |
463 /* Various screen update functions available */ | 463 /* Various screen update functions available */ |
464 static void ROM_DirectUpdate (_THIS, int numrects, SDL_Rect * rects); | 464 static void ROM_DirectUpdate(_THIS, int numrects, SDL_Rect * rects); |
465 static void ROM_WindowUpdate (_THIS, int numrects, SDL_Rect * rects); | 465 static void ROM_WindowUpdate(_THIS, int numrects, SDL_Rect * rects); |
466 | 466 |
467 static void | 467 static void |
468 ROM_UnsetVideoMode (_THIS, SDL_Surface * current) | 468 ROM_UnsetVideoMode(_THIS, SDL_Surface * current) |
469 { | 469 { |
470 /* Free the current window, if any */ | 470 /* Free the current window, if any */ |
471 if (SDL_Window != nil) { | 471 if (SDL_Window != nil) { |
472 GWorldPtr memworld; | 472 GWorldPtr memworld; |
473 | 473 |
474 /* Handle OpenGL support */ | 474 /* Handle OpenGL support */ |
475 Mac_GL_Quit (this); | 475 Mac_GL_Quit(this); |
476 | 476 |
477 memworld = (GWorldPtr) GetWRefCon (SDL_Window); | 477 memworld = (GWorldPtr) GetWRefCon(SDL_Window); |
478 if (memworld != nil) { | 478 if (memworld != nil) { |
479 UnlockPixels (GetGWorldPixMap (memworld)); | 479 UnlockPixels(GetGWorldPixMap(memworld)); |
480 DisposeGWorld (memworld); | 480 DisposeGWorld(memworld); |
481 } | 481 } |
482 if ((current->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { | 482 if ((current->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { |
483 #if USE_QUICKTIME | 483 #if USE_QUICKTIME |
484 EndFullScreen (fullscreen_ctx, nil); | 484 EndFullScreen(fullscreen_ctx, nil); |
485 SDL_Window = nil; | 485 SDL_Window = nil; |
486 #else | 486 #else |
487 ROM_ShowMenuBar (this); | 487 ROM_ShowMenuBar(this); |
488 #endif | 488 #endif |
489 } | 489 } |
490 } | 490 } |
491 current->pixels = NULL; | 491 current->pixels = NULL; |
492 current->flags &= ~(SDL_HWSURFACE | SDL_FULLSCREEN); | 492 current->flags &= ~(SDL_HWSURFACE | SDL_FULLSCREEN); |
493 } | 493 } |
494 | 494 |
495 static SDL_Surface * | 495 static SDL_Surface * |
496 ROM_SetVideoMode (_THIS, SDL_Surface * current, | 496 ROM_SetVideoMode(_THIS, SDL_Surface * current, |
497 int width, int height, int bpp, Uint32 flags) | 497 int width, int height, int bpp, Uint32 flags) |
498 { | 498 { |
499 Rect wrect, orect; | 499 Rect wrect, orect; |
500 #if TARGET_API_MAC_CARBON | 500 #if TARGET_API_MAC_CARBON |
501 Rect tmprect; | 501 Rect tmprect; |
502 #endif | 502 #endif |
503 | 503 |
504 /* Free any previous video mode */ | 504 /* Free any previous video mode */ |
505 ROM_UnsetVideoMode (this, current); | 505 ROM_UnsetVideoMode(this, current); |
506 | 506 |
507 /* Create the ROM window and SDL video surface */ | 507 /* Create the ROM window and SDL video surface */ |
508 current->flags = 0; /* Clear flags */ | 508 current->flags = 0; /* Clear flags */ |
509 current->w = width; | 509 current->w = width; |
510 current->h = height; | 510 current->h = height; |
511 SetRect (&wrect, 0, 0, width, height); | 511 SetRect(&wrect, 0, 0, width, height); |
512 if (SDL_Window) { | 512 if (SDL_Window) { |
513 /* If we recreate the window, don't move it around */ | 513 /* If we recreate the window, don't move it around */ |
514 #if TARGET_API_MAC_CARBON | 514 #if TARGET_API_MAC_CARBON |
515 orect = *GetWindowPortBounds (SDL_Window, &tmprect); | 515 orect = *GetWindowPortBounds(SDL_Window, &tmprect); |
516 #else | 516 #else |
517 orect = SDL_Window->portRect; | 517 orect = SDL_Window->portRect; |
518 #endif | 518 #endif |
519 OffsetRect (&wrect, orect.left, orect.top); | 519 OffsetRect(&wrect, orect.left, orect.top); |
520 } else { | 520 } else { |
521 /* Center the window the first time we show it */ | 521 /* Center the window the first time we show it */ |
522 OffsetRect (&wrect, | 522 OffsetRect(&wrect, |
523 (SDL_modelist[0]->w - width) / 2, | 523 (SDL_modelist[0]->w - width) / 2, |
524 (SDL_modelist[0]->h - height) / 2); | 524 (SDL_modelist[0]->h - height) / 2); |
525 } | 525 } |
526 | 526 |
527 #if defined(__MACOSX__) && !USE_QUICKTIME | 527 #if defined(__MACOSX__) && !USE_QUICKTIME |
528 /* Hum.. fullscreen mode is broken */ | 528 /* Hum.. fullscreen mode is broken */ |
529 flags &= ~SDL_FULLSCREEN; | 529 flags &= ~SDL_FULLSCREEN; |
530 #endif | 530 #endif |
531 if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { | 531 if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) { |
532 /* Create the fullscreen window and use screen bits */ | 532 /* Create the fullscreen window and use screen bits */ |
533 current->flags |= SDL_HWSURFACE | SDL_FULLSCREEN; | 533 current->flags |= SDL_HWSURFACE | SDL_FULLSCREEN; |
534 if (SDL_Window) { | 534 if (SDL_Window) { |
535 DisposeWindow (SDL_Window); | 535 DisposeWindow(SDL_Window); |
536 } | 536 } |
537 #if USE_QUICKTIME | 537 #if USE_QUICKTIME |
538 BeginFullScreen (&fullscreen_ctx, nil, 0, 0, &SDL_Window, nil, 0); | 538 BeginFullScreen(&fullscreen_ctx, nil, 0, 0, &SDL_Window, nil, 0); |
539 #else | 539 #else |
540 SDL_Window = NewCWindow (nil, &wrect, "\p", true, plainDBox, | 540 SDL_Window = NewCWindow(nil, &wrect, "\p", true, plainDBox, |
541 (WindowPtr) - 1, false, 0); | 541 (WindowPtr) - 1, false, 0); |
542 ROM_HideMenuBar (this); | 542 ROM_HideMenuBar(this); |
543 #endif | 543 #endif |
544 current->pitch = (**(**SDL_Display).gdPMap).rowBytes & 0x3FFF; | 544 current->pitch = (**(**SDL_Display).gdPMap).rowBytes & 0x3FFF; |
545 current->pixels = (**(**SDL_Display).gdPMap).baseAddr; | 545 current->pixels = (**(**SDL_Display).gdPMap).baseAddr; |
546 this->UpdateRects = ROM_DirectUpdate; | 546 this->UpdateRects = ROM_DirectUpdate; |
547 } else { | 547 } else { |
559 } | 559 } |
560 if (SDL_Window && (style == current_style)) { | 560 if (SDL_Window && (style == current_style)) { |
561 /* Resize existing window, if necessary */ | 561 /* Resize existing window, if necessary */ |
562 if (((orect.right - orect.left) != width) || | 562 if (((orect.right - orect.left) != width) || |
563 ((orect.bottom - orect.top) != height)) { | 563 ((orect.bottom - orect.top) != height)) { |
564 SizeWindow (SDL_Window, width, height, false); | 564 SizeWindow(SDL_Window, width, height, false); |
565 } | 565 } |
566 } else { | 566 } else { |
567 /* Recreate the window in the new style */ | 567 /* Recreate the window in the new style */ |
568 if (SDL_Window) { | 568 if (SDL_Window) { |
569 DisposeWindow (SDL_Window); | 569 DisposeWindow(SDL_Window); |
570 } | 570 } |
571 SDL_Window = NewCWindow (nil, &wrect, "\p", true, | 571 SDL_Window = NewCWindow(nil, &wrect, "\p", true, |
572 style, (WindowPtr) - 1, true, 0); | 572 style, (WindowPtr) - 1, true, 0); |
573 | 573 |
574 /* Set the window title, if any */ | 574 /* Set the window title, if any */ |
575 { | 575 { |
576 char *title; | 576 char *title; |
577 SDL_WM_GetCaption (&title, NULL); | 577 SDL_WM_GetCaption(&title, NULL); |
578 if (title) { | 578 if (title) { |
579 Mac_SetCaption (this, title, NULL); | 579 Mac_SetCaption(this, title, NULL); |
580 } | 580 } |
581 } | 581 } |
582 } | 582 } |
583 current_style = style; | 583 current_style = style; |
584 SetPalette (SDL_Window, SDL_CPal, false); | 584 SetPalette(SDL_Window, SDL_CPal, false); |
585 ActivatePalette (SDL_Window); | 585 ActivatePalette(SDL_Window); |
586 if (NewGWorld (&memworld, 0, | 586 if (NewGWorld(&memworld, 0, |
587 #if TARGET_API_MAC_CARBON | 587 #if TARGET_API_MAC_CARBON |
588 GetWindowPortBounds (SDL_Window, &tmprect), | 588 GetWindowPortBounds(SDL_Window, &tmprect), |
589 #else | 589 #else |
590 &SDL_Window->portRect, | 590 &SDL_Window->portRect, |
591 #endif | 591 #endif |
592 SDL_CTab, nil, 0) != noErr) { | 592 SDL_CTab, nil, 0) != noErr) { |
593 SDL_SetError ("NewGWorld() failed"); | 593 SDL_SetError("NewGWorld() failed"); |
594 return (NULL); | 594 return (NULL); |
595 } | 595 } |
596 SetWRefCon (SDL_Window, (long) memworld); | 596 SetWRefCon(SDL_Window, (long) memworld); |
597 pixmap = GetGWorldPixMap (memworld); | 597 pixmap = GetGWorldPixMap(memworld); |
598 LockPixels (pixmap); | 598 LockPixels(pixmap); |
599 current->pitch = (**pixmap).rowBytes & 0x3FFF; | 599 current->pitch = (**pixmap).rowBytes & 0x3FFF; |
600 current->pixels = GetPixBaseAddr (pixmap); | 600 current->pixels = GetPixBaseAddr(pixmap); |
601 this->UpdateRects = ROM_WindowUpdate; | 601 this->UpdateRects = ROM_WindowUpdate; |
602 } | 602 } |
603 SetPortWindowPort (SDL_Window); | 603 SetPortWindowPort(SDL_Window); |
604 SelectWindow (SDL_Window); | 604 SelectWindow(SDL_Window); |
605 | 605 |
606 /* Handle OpenGL support */ | 606 /* Handle OpenGL support */ |
607 if (flags & SDL_INTERNALOPENGL) { | 607 if (flags & SDL_INTERNALOPENGL) { |
608 if (Mac_GL_Init (this) == 0) { | 608 if (Mac_GL_Init(this) == 0) { |
609 current->flags |= SDL_INTERNALOPENGL; | 609 current->flags |= SDL_INTERNALOPENGL; |
610 } else { | 610 } else { |
611 current = NULL; | 611 current = NULL; |
612 } | 612 } |
613 } | 613 } |
619 return (current); | 619 return (current); |
620 } | 620 } |
621 | 621 |
622 /* We don't actually allow hardware surfaces other than the main one */ | 622 /* We don't actually allow hardware surfaces other than the main one */ |
623 static int | 623 static int |
624 ROM_AllocHWSurface (_THIS, SDL_Surface * surface) | 624 ROM_AllocHWSurface(_THIS, SDL_Surface * surface) |
625 { | 625 { |
626 return (-1); | 626 return (-1); |
627 } | 627 } |
628 static void | 628 static void |
629 ROM_FreeHWSurface (_THIS, SDL_Surface * surface) | 629 ROM_FreeHWSurface(_THIS, SDL_Surface * surface) |
630 { | 630 { |
631 return; | 631 return; |
632 } | 632 } |
633 static int | 633 static int |
634 ROM_LockHWSurface (_THIS, SDL_Surface * surface) | 634 ROM_LockHWSurface(_THIS, SDL_Surface * surface) |
635 { | 635 { |
636 return (0); | 636 return (0); |
637 } | 637 } |
638 static void | 638 static void |
639 ROM_UnlockHWSurface (_THIS, SDL_Surface * surface) | 639 ROM_UnlockHWSurface(_THIS, SDL_Surface * surface) |
640 { | 640 { |
641 return; | 641 return; |
642 } | 642 } |
643 | 643 |
644 static void | 644 static void |
645 ROM_DirectUpdate (_THIS, int numrects, SDL_Rect * rects) | 645 ROM_DirectUpdate(_THIS, int numrects, SDL_Rect * rects) |
646 { | 646 { |
647 /* The application is already updating the visible video memory */ | 647 /* The application is already updating the visible video memory */ |
648 return; | 648 return; |
649 } | 649 } |
650 | 650 |
651 static void | 651 static void |
652 ROM_WindowUpdate (_THIS, int numrects, SDL_Rect * rects) | 652 ROM_WindowUpdate(_THIS, int numrects, SDL_Rect * rects) |
653 { | 653 { |
654 GWorldPtr memworld; | 654 GWorldPtr memworld; |
655 GrafPtr saveport; | 655 GrafPtr saveport; |
656 CGrafPtr thePort; | 656 CGrafPtr thePort; |
657 const BitMap *memBits; | 657 const BitMap *memBits; |
658 const BitMap *winBits; | 658 const BitMap *winBits; |
659 int i; | 659 int i; |
660 Rect update; | 660 Rect update; |
661 | 661 |
662 /* Copy from the offscreen GWorld to the window port */ | 662 /* Copy from the offscreen GWorld to the window port */ |
663 GetPort (&saveport); | 663 GetPort(&saveport); |
664 SetPortWindowPort (SDL_Window); | 664 SetPortWindowPort(SDL_Window); |
665 thePort = GetWindowPort (SDL_Window); | 665 thePort = GetWindowPort(SDL_Window); |
666 memworld = (GWorldPtr) GetWRefCon (SDL_Window); | 666 memworld = (GWorldPtr) GetWRefCon(SDL_Window); |
667 #if TARGET_API_MAC_CARBON && ACCESSOR_CALLS_ARE_FUNCTIONS | 667 #if TARGET_API_MAC_CARBON && ACCESSOR_CALLS_ARE_FUNCTIONS |
668 memBits = GetPortBitMapForCopyBits ((CGrafPtr) memworld); | 668 memBits = GetPortBitMapForCopyBits((CGrafPtr) memworld); |
669 #else | 669 #else |
670 memBits = &((GrafPtr) memworld)->portBits; | 670 memBits = &((GrafPtr) memworld)->portBits; |
671 #endif | 671 #endif |
672 #if TARGET_API_MAC_CARBON && ACCESSOR_CALLS_ARE_FUNCTIONS | 672 #if TARGET_API_MAC_CARBON && ACCESSOR_CALLS_ARE_FUNCTIONS |
673 winBits = GetPortBitMapForCopyBits (thePort); | 673 winBits = GetPortBitMapForCopyBits(thePort); |
674 #else | 674 #else |
675 winBits = &SDL_Window->portBits; | 675 winBits = &SDL_Window->portBits; |
676 #endif | 676 #endif |
677 for (i = 0; i < numrects; ++i) { | 677 for (i = 0; i < numrects; ++i) { |
678 update.left = rects[i].x; | 678 update.left = rects[i].x; |
679 update.right = rects[i].x + rects[i].w; | 679 update.right = rects[i].x + rects[i].w; |
680 update.top = rects[i].y; | 680 update.top = rects[i].y; |
681 update.bottom = rects[i].y + rects[i].h; | 681 update.bottom = rects[i].y + rects[i].h; |
682 CopyBits (memBits, winBits, &update, &update, srcCopy, nil); | 682 CopyBits(memBits, winBits, &update, &update, srcCopy, nil); |
683 } | 683 } |
684 #if TARGET_API_MAC_CARBON | 684 #if TARGET_API_MAC_CARBON |
685 if (QDIsPortBuffered (thePort)) { | 685 if (QDIsPortBuffered(thePort)) { |
686 QDFlushPortBuffer (thePort, NULL); | 686 QDFlushPortBuffer(thePort, NULL); |
687 } | 687 } |
688 #endif | 688 #endif |
689 SetPort (saveport); | 689 SetPort(saveport); |
690 } | 690 } |
691 | 691 |
692 static int | 692 static int |
693 ROM_SetColors (_THIS, int firstcolor, int ncolors, SDL_Color * colors) | 693 ROM_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color * colors) |
694 { | 694 { |
695 CTabHandle cTab; | 695 CTabHandle cTab; |
696 int i; | 696 int i; |
697 | 697 |
698 /* Get the colortable from the either the display or window */ | 698 /* Get the colortable from the either the display or window */ |
716 (**cTab).ctTable[j].rgb.blue = colors[i].b << 8 | colors[i].b; | 716 (**cTab).ctTable[j].rgb.blue = colors[i].b << 8 | colors[i].b; |
717 } | 717 } |
718 // if ( (this->screen->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) | 718 // if ( (this->screen->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) |
719 { | 719 { |
720 GDevice **odisplay; | 720 GDevice **odisplay; |
721 odisplay = GetGDevice (); | 721 odisplay = GetGDevice(); |
722 SetGDevice (SDL_Display); | 722 SetGDevice(SDL_Display); |
723 SetEntries (0, (**cTab).ctSize, (ColorSpec *) & (**cTab).ctTable); | 723 SetEntries(0, (**cTab).ctSize, (ColorSpec *) & (**cTab).ctTable); |
724 SetGDevice (odisplay); | 724 SetGDevice(odisplay); |
725 } | 725 } |
726 return (1); | 726 return (1); |
727 } | 727 } |
728 | 728 |
729 void | 729 void |
730 ROM_VideoQuit (_THIS) | 730 ROM_VideoQuit(_THIS) |
731 { | 731 { |
732 int i; | 732 int i; |
733 | 733 |
734 /* Free current video mode */ | 734 /* Free current video mode */ |
735 ROM_UnsetVideoMode (this, this->screen); | 735 ROM_UnsetVideoMode(this, this->screen); |
736 if (SDL_Window) { | 736 if (SDL_Window) { |
737 DisposeWindow (SDL_Window); | 737 DisposeWindow(SDL_Window); |
738 SDL_Window = nil; | 738 SDL_Window = nil; |
739 } | 739 } |
740 | 740 |
741 /* Free palette and restore original one */ | 741 /* Free palette and restore original one */ |
742 if (SDL_CTab != nil) { | 742 if (SDL_CTab != nil) { |
743 DisposeHandle ((Handle) SDL_CTab); | 743 DisposeHandle((Handle) SDL_CTab); |
744 SDL_CTab = nil; | 744 SDL_CTab = nil; |
745 } | 745 } |
746 if (SDL_CPal != nil) { | 746 if (SDL_CPal != nil) { |
747 DisposePalette (SDL_CPal); | 747 DisposePalette(SDL_CPal); |
748 SDL_CPal = nil; | 748 SDL_CPal = nil; |
749 } | 749 } |
750 RestoreDeviceClut (GetMainDevice ()); | 750 RestoreDeviceClut(GetMainDevice()); |
751 | 751 |
752 /* Free list of video modes */ | 752 /* Free list of video modes */ |
753 if (SDL_modelist != NULL) { | 753 if (SDL_modelist != NULL) { |
754 for (i = 0; SDL_modelist[i]; ++i) { | 754 for (i = 0; SDL_modelist[i]; ++i) { |
755 SDL_free (SDL_modelist[i]); | 755 SDL_free(SDL_modelist[i]); |
756 } | 756 } |
757 SDL_free (SDL_modelist); | 757 SDL_free(SDL_modelist); |
758 SDL_modelist = NULL; | 758 SDL_modelist = NULL; |
759 } | 759 } |
760 } | 760 } |
761 | 761 |
762 /* vi: set ts=4 sw=4 expandtab: */ | 762 /* vi: set ts=4 sw=4 expandtab: */ |