1/*
2    SDL - Simple DirectMedia Layer
3    Copyright (C) 1997-2004 Sam Lantinga
4    Copyright (C) 2001  Hsieh-Fu Tsai
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public
8    License as published by the Free Software Foundation; either
9    version 2 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15
16    You should have received a copy of the GNU Library General Public
17    License along with this library; if not, write to the Free
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20    Sam Lantinga
21    slouken@libsdl.org
22
23    Hsieh-Fu Tsai
24    clare@setabox.com
25*/
26#include "SDL_config.h"
27
28#ifndef _SDL_nxvideo_h
29#define _SDL_nxvideo_h
30
31#include <microwin/nano-X.h>
32
33#include "../SDL_sysvideo.h"
34
35#ifdef ENABLE_NANOX_DEBUG
36#define Dprintf printf
37#else
38#define Dprintf(ignore...)
39#endif
40
41// Hidden "this" pointer for the video functions
42#define _THIS   SDL_VideoDevice * this
43
44// Private display data
45typedef struct NX_SDL_VISUAL {
46    int    bpp ;
47    Uint32 red_mask ;
48    Uint32 green_mask ;
49    Uint32 blue_mask ;
50} nx_sdl_visual_t ;
51
52struct SDL_PrivateVideoData {
53    GR_WINDOW_ID    SDL_Window ;
54    GR_WINDOW_ID    FSwindow ;
55    // Flag: true if we have been passed a window
56    char            * SDL_windowid ;
57    GR_GC_ID        GC ;
58    unsigned char   * Image ;
59    unsigned char   * Image_buff ;	/* for GrArea*/
60    unsigned char   * Clientfb;		/* for DirectFB*/
61    nx_sdl_visual_t SDL_Visual ;
62    // The current list of available video modes
63    SDL_Rect        ** modelist ;
64    int             currently_fullscreen ;
65    // for fullscreen
66    int             OffsetX, OffsetY ;
67    // for GammaRamp
68    Uint16          * GammaRamp_R, * GammaRamp_G, * GammaRamp_B ;
69    // for GrArea, r_mask, g_mask, b_mask
70    int             pixel_type ;
71#ifdef ENABLE_NANOX_DIRECT_FB
72    GR_WINDOW_FB_INFO fbinfo;
73#endif
74} ;
75
76#define SDL_Window           (this -> hidden -> SDL_Window)
77#define FSwindow             (this -> hidden -> FSwindow)
78#define SDL_windowid         (this -> hidden -> SDL_windowid)
79#define SDL_GC               (this -> hidden -> GC)
80#define SDL_Image            (this -> hidden -> Image)
81#define Image_buff           (this -> hidden -> Image_buff)
82#define Clientfb             (this -> hidden -> Clientfb)
83#define SDL_Visual           (this -> hidden -> SDL_Visual)
84#define SDL_modelist         (this -> hidden -> modelist)
85#define currently_fullscreen (this -> hidden -> currently_fullscreen)
86#define OffsetX              (this -> hidden -> OffsetX)
87#define OffsetY              (this -> hidden -> OffsetY)
88#define GammaRamp_R          (this -> hidden -> GammaRamp_R)
89#define GammaRamp_G          (this -> hidden -> GammaRamp_G)
90#define GammaRamp_B          (this -> hidden -> GammaRamp_B)
91#define pixel_type           (this -> hidden -> pixel_type)
92#define fbinfo               (this -> hidden -> fbinfo)
93
94#define CI_SIZE 256   // color index size
95
96#endif  // _SDL_nxvideo_h
97