Mercurial > sdl-ios-xcode
comparison src/video/nanox/SDL_nxvideo.c @ 471:26dafefeebb2
Date: Sat, 24 Aug 2002 22:20:01 -0600
From: "Greg Haerr"
Subject: Announce: sdl-nanox-patch
Sam,
I've created an update patch for enhanced Nano-X support
with SDL. I've created the patch against SDL-1.2.4. I'd appreciate
it if you would apply it to the next SDL version.
Enhancements include:
1. Small bugfixes to compile without errors
2. Support for direct client-side framebuffer access with configure option
3. Add dynamic pixel type support for hardware framebuffer; eliminating the
need for compile-time configuration option.
I've updated the README.NanoX file with the details.
This version has been tested with Microwindows v0.89pre9 CVS
and SMPEG 0.4.4. I've added multi-threading support to
Microwindows to support the multi-threaded SMPEG, and
all works fine. To turn on thread safety in Microwindows,
use THREADSAFE=Y in the Microwindows config file.
Thanks!
Regards,
Greg
Founder, The Microwindows Project
http://microwindows.org
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 25 Aug 2002 06:21:49 +0000 |
parents | f6ffac90895c |
children | 31d9be995d5c |
comparison
equal
deleted
inserted
replaced
470:877b992f2d0c | 471:26dafefeebb2 |
---|---|
1 /* | 1 /* |
2 SDL - Simple DirectMedia Layer | 2 SDL - Simple DirectMedia Layer |
3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga | 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga |
4 Copyright (C) 2001 Hsieh-Fu Tsai | 4 Copyright (C) 2001 Hsieh-Fu Tsai |
5 Copyright (C) 2002 Greg Haerr <greg@censoft.com> | |
5 | 6 |
6 This library is free software; you can redistribute it and/or | 7 This library is free software; you can redistribute it and/or |
7 modify it under the terms of the GNU Library General Public | 8 modify it under the terms of the GNU Library General Public |
8 License as published by the Free Software Foundation; either | 9 License as published by the Free Software Foundation; either |
9 version 2 of the License, or (at your option) any later version. | 10 version 2 of the License, or (at your option) any later version. |
220 SDL_modelist [0] -> h = si.rows ; | 221 SDL_modelist [0] -> h = si.rows ; |
221 } | 222 } |
222 SDL_modelist [1] = NULL ; | 223 SDL_modelist [1] = NULL ; |
223 } | 224 } |
224 | 225 |
225 #ifdef NANOX_PIXEL_RGB | 226 pixel_type = si.pixtype; |
226 pixel_type = MWPF_RGB ; | 227 SDL_Visual.red_mask = si.rmask; |
227 SDL_Visual.red_mask = 0x000000FF ; | 228 SDL_Visual.green_mask = si.gmask; |
228 SDL_Visual.green_mask = 0x0000FF00 ; | 229 SDL_Visual.blue_mask = si.bmask; |
229 SDL_Visual.blue_mask = 0x00FF0000 ; | |
230 #endif | |
231 #ifdef NANOX_PIXEL_0888 | |
232 pixel_type = MWPF_TRUECOLOR0888 ; | |
233 SDL_Visual.red_mask = 0x00FF0000 ; | |
234 SDL_Visual.green_mask = 0x0000FF00 ; | |
235 SDL_Visual.blue_mask = 0x000000FF ; | |
236 #endif | |
237 #ifdef NANOX_PIXEL_888 | |
238 pixel_type = MWPF_TRUECOLOR888 ; | |
239 SDL_Visual.red_mask = 0xFF0000 ; | |
240 SDL_Visual.green_mask = 0x00FF00 ; | |
241 SDL_Visual.blue_mask = 0x0000FF ; | |
242 #endif | |
243 #ifdef NANOX_PIXEL_565 | |
244 pixel_type = MWPF_TRUECOLOR565 ; | |
245 SDL_Visual.red_mask = 0xF800 ; | |
246 SDL_Visual.green_mask = 0x07E0 ; | |
247 SDL_Visual.blue_mask = 0x001F ; | |
248 #endif | |
249 #ifdef NANOX_PIXEL_555 | |
250 pixel_type = MWPF_TRUECOLOR555 ; | |
251 SDL_Visual.red_mask = 0x7C00 ; | |
252 SDL_Visual.green_mask = 0x03E0 ; | |
253 SDL_Visual.blue_mask = 0x001F ; | |
254 #endif | |
255 #ifdef NANOX_PIXEL_332 | |
256 pixel_type = MWPF_TRUECOLOR332 ; | |
257 #endif | |
258 #ifdef NANOX_PIXEL_PAL | |
259 pixel_type = MWPF_PALETTE ; | |
260 #endif | |
261 | 230 |
262 vformat -> BitsPerPixel = SDL_Visual.bpp ; | 231 vformat -> BitsPerPixel = SDL_Visual.bpp ; |
263 if (vformat -> BitsPerPixel > 8) { | 232 if (vformat -> BitsPerPixel > 8) { |
264 vformat -> Rmask = SDL_Visual.red_mask ; | 233 vformat -> Rmask = SDL_Visual.red_mask ; |
265 vformat -> Gmask = SDL_Visual.green_mask ; | 234 vformat -> Gmask = SDL_Visual.green_mask ; |
288 } | 257 } |
289 NX_FreeVideoModes (this) ; | 258 NX_FreeVideoModes (this) ; |
290 free (GammaRamp_R) ; | 259 free (GammaRamp_R) ; |
291 free (GammaRamp_G) ; | 260 free (GammaRamp_G) ; |
292 free (GammaRamp_B) ; | 261 free (GammaRamp_B) ; |
262 | |
263 #ifdef ENABLE_NANOX_DIRECT_FB | |
264 if (Clientfb) | |
265 GrCloseClientFramebuffer(); | |
266 #endif | |
293 GrClose () ; | 267 GrClose () ; |
294 | 268 |
295 Dprintf ("leave NX_VideoQuit\n") ; | 269 Dprintf ("leave NX_VideoQuit\n") ; |
296 } | 270 } |
297 | 271 |
370 NX_EnterFullScreen (this) ; | 344 NX_EnterFullScreen (this) ; |
371 } else { | 345 } else { |
372 screen -> flags &= ~ SDL_FULLSCREEN ; | 346 screen -> flags &= ~ SDL_FULLSCREEN ; |
373 } | 347 } |
374 } | 348 } |
349 | |
350 #ifdef ENABLE_NANOX_DIRECT_FB | |
351 /* attempt allocating the client side framebuffer */ | |
352 Clientfb = GrOpenClientFramebuffer(); | |
353 /* NULL return will default to using GrArea()*/ | |
354 #endif | |
375 | 355 |
376 Dprintf ("leave NX_CreateWindow\n") ; | 356 Dprintf ("leave NX_CreateWindow\n") ; |
377 return 0 ; | 357 return 0 ; |
378 } | 358 } |
379 | 359 |