146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/*
246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    SDL - Simple DirectMedia Layer
346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Copyright (C) 1997-2004 Sam Lantinga
446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Copyright (C) 2001  Hsieh-Fu Tsai
546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    This library is free software; you can redistribute it and/or
746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    modify it under the terms of the GNU Library General Public
846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    License as published by the Free Software Foundation; either
946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    version 2 of the License, or (at your option) any later version.
1046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
1146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    This library is distributed in the hope that it will be useful,
1246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    but WITHOUT ANY WARRANTY; without even the implied warranty of
1346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Library General Public License for more details.
1546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
1646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    You should have received a copy of the GNU Library General Public
1746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    License along with this library; if not, write to the Free
1846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
1946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
2046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Sam Lantinga
2146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    slouken@libsdl.org
2246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
2346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Hsieh-Fu Tsai
2446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    clare@setabox.com
2546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner*/
2646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_config.h"
2746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
2846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#ifndef _SDL_nxvideo_h
2946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define _SDL_nxvideo_h
3046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
3146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <microwin/nano-X.h>
3246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
3346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "../SDL_sysvideo.h"
3446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
3546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#ifdef ENABLE_NANOX_DEBUG
3646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define Dprintf printf
3746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#else
3846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define Dprintf(ignore...)
3946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif
4046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
4146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// Hidden "this" pointer for the video functions
4246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define _THIS   SDL_VideoDevice * this
4346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
4446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// Private display data
4546be48730333120a7b939116cef075e61c12c703David 'Digit' Turnertypedef struct NX_SDL_VISUAL {
4646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    int    bpp ;
4746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Uint32 red_mask ;
4846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Uint32 green_mask ;
4946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Uint32 blue_mask ;
5046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner} nx_sdl_visual_t ;
5146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
5246be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerstruct SDL_PrivateVideoData {
5346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    GR_WINDOW_ID    SDL_Window ;
5446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    GR_WINDOW_ID    FSwindow ;
5546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    // Flag: true if we have been passed a window
5646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    char            * SDL_windowid ;
5746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    GR_GC_ID        GC ;
5846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    unsigned char   * Image ;
5946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    unsigned char   * Image_buff ;	/* for GrArea*/
6046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    unsigned char   * Clientfb;		/* for DirectFB*/
6146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    nx_sdl_visual_t SDL_Visual ;
6246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    // The current list of available video modes
6346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    SDL_Rect        ** modelist ;
6446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    int             currently_fullscreen ;
6546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    // for fullscreen
6646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    int             OffsetX, OffsetY ;
6746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    // for GammaRamp
6846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    Uint16          * GammaRamp_R, * GammaRamp_G, * GammaRamp_B ;
6946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    // for GrArea, r_mask, g_mask, b_mask
7046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    int             pixel_type ;
7146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#ifdef ENABLE_NANOX_DIRECT_FB
7246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner    GR_WINDOW_FB_INFO fbinfo;
7346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif
7446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner} ;
7546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
7646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_Window           (this -> hidden -> SDL_Window)
7746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define FSwindow             (this -> hidden -> FSwindow)
7846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_windowid         (this -> hidden -> SDL_windowid)
7946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_GC               (this -> hidden -> GC)
8046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_Image            (this -> hidden -> Image)
8146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define Image_buff           (this -> hidden -> Image_buff)
8246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define Clientfb             (this -> hidden -> Clientfb)
8346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_Visual           (this -> hidden -> SDL_Visual)
8446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_modelist         (this -> hidden -> modelist)
8546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define currently_fullscreen (this -> hidden -> currently_fullscreen)
8646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define OffsetX              (this -> hidden -> OffsetX)
8746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define OffsetY              (this -> hidden -> OffsetY)
8846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define GammaRamp_R          (this -> hidden -> GammaRamp_R)
8946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define GammaRamp_G          (this -> hidden -> GammaRamp_G)
9046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define GammaRamp_B          (this -> hidden -> GammaRamp_B)
9146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define pixel_type           (this -> hidden -> pixel_type)
9246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define fbinfo               (this -> hidden -> fbinfo)
9346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
9446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define CI_SIZE 256   // color index size
9546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner
9646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif  // _SDL_nxvideo_h
97