Mercurial > sdl-ios-xcode
diff 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 |
line wrap: on
line diff
--- a/src/video/nanox/SDL_nxvideo.c Sun Aug 25 02:05:24 2002 +0000 +++ b/src/video/nanox/SDL_nxvideo.c Sun Aug 25 06:21:49 2002 +0000 @@ -2,6 +2,7 @@ SDL - Simple DirectMedia Layer Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga Copyright (C) 2001 Hsieh-Fu Tsai + Copyright (C) 2002 Greg Haerr <greg@censoft.com> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -222,42 +223,10 @@ SDL_modelist [1] = NULL ; } -#ifdef NANOX_PIXEL_RGB - pixel_type = MWPF_RGB ; - SDL_Visual.red_mask = 0x000000FF ; - SDL_Visual.green_mask = 0x0000FF00 ; - SDL_Visual.blue_mask = 0x00FF0000 ; -#endif -#ifdef NANOX_PIXEL_0888 - pixel_type = MWPF_TRUECOLOR0888 ; - SDL_Visual.red_mask = 0x00FF0000 ; - SDL_Visual.green_mask = 0x0000FF00 ; - SDL_Visual.blue_mask = 0x000000FF ; -#endif -#ifdef NANOX_PIXEL_888 - pixel_type = MWPF_TRUECOLOR888 ; - SDL_Visual.red_mask = 0xFF0000 ; - SDL_Visual.green_mask = 0x00FF00 ; - SDL_Visual.blue_mask = 0x0000FF ; -#endif -#ifdef NANOX_PIXEL_565 - pixel_type = MWPF_TRUECOLOR565 ; - SDL_Visual.red_mask = 0xF800 ; - SDL_Visual.green_mask = 0x07E0 ; - SDL_Visual.blue_mask = 0x001F ; -#endif -#ifdef NANOX_PIXEL_555 - pixel_type = MWPF_TRUECOLOR555 ; - SDL_Visual.red_mask = 0x7C00 ; - SDL_Visual.green_mask = 0x03E0 ; - SDL_Visual.blue_mask = 0x001F ; -#endif -#ifdef NANOX_PIXEL_332 - pixel_type = MWPF_TRUECOLOR332 ; -#endif -#ifdef NANOX_PIXEL_PAL - pixel_type = MWPF_PALETTE ; -#endif + pixel_type = si.pixtype; + SDL_Visual.red_mask = si.rmask; + SDL_Visual.green_mask = si.gmask; + SDL_Visual.blue_mask = si.bmask; vformat -> BitsPerPixel = SDL_Visual.bpp ; if (vformat -> BitsPerPixel > 8) { @@ -290,6 +259,11 @@ free (GammaRamp_R) ; free (GammaRamp_G) ; free (GammaRamp_B) ; + +#ifdef ENABLE_NANOX_DIRECT_FB + if (Clientfb) + GrCloseClientFramebuffer(); +#endif GrClose () ; Dprintf ("leave NX_VideoQuit\n") ; @@ -373,6 +347,12 @@ } } +#ifdef ENABLE_NANOX_DIRECT_FB + /* attempt allocating the client side framebuffer */ + Clientfb = GrOpenClientFramebuffer(); + /* NULL return will default to using GrArea()*/ +#endif + Dprintf ("leave NX_CreateWindow\n") ; return 0 ; }