diff options
Diffstat (limited to 'distrib/sdl-1.2.12/src/video/nanox/SDL_nximage.c')
-rw-r--r-- | distrib/sdl-1.2.12/src/video/nanox/SDL_nximage.c | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/distrib/sdl-1.2.12/src/video/nanox/SDL_nximage.c b/distrib/sdl-1.2.12/src/video/nanox/SDL_nximage.c deleted file mode 100644 index 6afe3b9..0000000 --- a/distrib/sdl-1.2.12/src/video/nanox/SDL_nximage.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2004 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 - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Sam Lantinga - slouken@libsdl.org - - Hsieh-Fu Tsai - clare@setabox.com -*/ -#include "SDL_config.h" - -#include "SDL_nximage_c.h" - -void NX_NormalUpdate (_THIS, int numrects, SDL_Rect * rects) -{ - int i, j, xinc, yinc, destinc, rowinc ; - int x, y, w, h ; - unsigned char * src = NULL, * dest = NULL ; - - Dprintf ("enter NX_NormalUpdate\n") ; - - /* These are the values for the incoming image */ - xinc = this -> screen -> format -> BytesPerPixel ; - yinc = this -> screen -> pitch ; - - for (i = 0; i < numrects; ++ i) { - x = rects [i].x, y = rects [i].y ; - w = rects [i].w, h = rects [i].h ; - src = SDL_Image + y * yinc + x * xinc ; -#ifdef ENABLE_NANOX_DIRECT_FB - if (Clientfb) { - if (currently_fullscreen) - dest = fbinfo.winpixels + (((y+OffsetY) * fbinfo.pitch) + - ((x+OffsetX) * fbinfo.bytespp)); - else - dest = fbinfo.winpixels + ((y * fbinfo.pitch) + (x * fbinfo.bytespp)); - destinc = fbinfo.pitch; - } - else -#endif - { - dest = Image_buff ; - destinc = w * xinc ; - } - rowinc = w * xinc; - - // apply GammaRamp table - if ((pixel_type == MWPF_TRUECOLOR0888 || pixel_type == MWPF_TRUECOLOR888) - && GammaRamp_R && GammaRamp_G && GammaRamp_B) { - Uint8 * ptrsrc ; - Uint8 * ptrdst ; - int k ; - - for (j = h; j > 0; -- j, src += yinc, dest += destinc) { - ptrsrc = src ; - ptrdst = dest ; - for (k = w; k > 0; -- k) { - *ptrdst++ = GammaRamp_B [*ptrsrc++] >> 8; - *ptrdst++ = GammaRamp_G [*ptrsrc++] >> 8; - *ptrdst++ = GammaRamp_R [*ptrsrc++] >> 8; - *ptrdst++ = 0; - ++ptrsrc; - } - } - } -#if 1 /* This is needed for microwindows 0.90 or older */ - else if (pixel_type == MWPF_TRUECOLOR0888 || pixel_type == MWPF_TRUECOLOR888) { - Uint8 * ptrsrc ; - Uint8 * ptrdst ; - int k ; - - for (j = h; j > 0; -- j, src += yinc, dest += destinc) { - ptrsrc = src ; - ptrdst = dest ; - for (k = w; k > 0; -- k) { - *ptrdst++ = *ptrsrc++; - *ptrdst++ = *ptrsrc++; - *ptrdst++ = *ptrsrc++; - *ptrdst++ = 0; - ++ptrsrc; - } - } - } -#endif - else - { - for (j = h; j > 0; -- j, src += yinc, dest += destinc) - SDL_memcpy (dest, src, rowinc) ; - } - if (!Clientfb) { - if (currently_fullscreen) { - GrArea (FSwindow, SDL_GC, x + OffsetX, y + OffsetY, w, h, Image_buff, - pixel_type) ; - } else { - GrArea (SDL_Window, SDL_GC, x, y, w, h, Image_buff, pixel_type) ; - } - } - } - GrFlush(); - - Dprintf ("leave NX_NormalUpdate\n") ; -} - -int NX_SetupImage (_THIS, SDL_Surface * screen) -{ - int size = screen -> h * screen -> pitch ; - - Dprintf ("enter NX_SetupImage\n") ; - - screen -> pixels = (void *) SDL_malloc (size) ; - - if (!Clientfb) { - Image_buff = (unsigned char *) SDL_malloc (size) ; - if (screen -> pixels == NULL || Image_buff == NULL) { - SDL_free (screen -> pixels) ; - SDL_free (Image_buff) ; - SDL_OutOfMemory () ; - return -1 ; - } - } - - SDL_Image = (unsigned char *) screen -> pixels ; - - this -> UpdateRects = NX_NormalUpdate ; - - Dprintf ("leave NX_SetupImage\n") ; - return 0 ; -} - -void NX_DestroyImage (_THIS, SDL_Surface * screen) -{ - Dprintf ("enter NX_DestroyImage\n") ; - - if (SDL_Image) SDL_free (SDL_Image) ; - if (Image_buff) SDL_free (Image_buff) ; - if (screen) screen -> pixels = NULL ; - - Dprintf ("leave NX_DestroyImage\n") ; -} - -int NX_ResizeImage (_THIS, SDL_Surface * screen, Uint32 flags) -{ - int retval ; - GR_SCREEN_INFO si ; - - Dprintf ("enter NX_ResizeImage\n") ; - - NX_DestroyImage (this, screen) ; - retval = NX_SetupImage (this, screen) ; - - GrGetScreenInfo (& si) ; - OffsetX = (si.cols - screen -> w) / 2 ; - OffsetY = (si.rows - screen -> h) / 2 ; - -#ifdef ENABLE_NANOX_DIRECT_FB - if (Clientfb) { - /* Get current window position and fb pointer*/ - if (currently_fullscreen) - GrGetWindowFBInfo(FSwindow, &fbinfo); - else - GrGetWindowFBInfo(SDL_Window, &fbinfo); - } -#endif - Dprintf ("leave NX_ResizeImage\n") ; - return retval ; -} - -void NX_RefreshDisplay (_THIS) -{ - Dprintf ("enter NX_RefreshDisplay\n") ; - - // Don't refresh a display that doesn't have an image (like GL) - if (! SDL_Image) { - return; - } - -#ifdef ENABLE_NANOX_DIRECT_FB - if (Clientfb) { - int j; - char *src, *dest = NULL; - int xinc, yinc, rowinc; - - GrGetWindowFBInfo(SDL_Window, &fbinfo); - - xinc = this -> screen -> format -> BytesPerPixel ; - yinc = this -> screen -> pitch ; - - src = SDL_Image; - if (currently_fullscreen) - dest = fbinfo.winpixels + ((OffsetY * fbinfo.pitch) + - (OffsetX * fbinfo.bytespp)); - else - dest = fbinfo.winpixels; - rowinc = xinc * this -> screen -> w; - - for (j = this -> screen -> h; j > 0; -- j, src += yinc, dest += fbinfo.pitch) - SDL_memcpy (dest, src, rowinc) ; - } - else -#endif - { - if (currently_fullscreen) { - GrArea (FSwindow, SDL_GC, OffsetX, OffsetY, this -> screen -> w, - this -> screen -> h, SDL_Image, pixel_type) ; - } else { - GrArea (SDL_Window, SDL_GC, 0, 0, this -> screen -> w, - this -> screen -> h, SDL_Image, pixel_type) ; - } - } - GrFlush(); - - Dprintf ("leave NX_RefreshDisplay\n") ; -} |