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 ;
 }