Skip to content

Latest commit

 

History

History
152 lines (121 loc) · 4.88 KB

SDL_xbios.h

File metadata and controls

152 lines (121 loc) · 4.88 KB
 
1
2
/*
SDL - Simple DirectMedia Layer
Dec 31, 2011
Dec 31, 2011
3
Copyright (C) 1997-2012 Sam Lantinga
4
5
This library is free software; you can redistribute it and/or
Feb 1, 2006
Feb 1, 2006
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
Feb 1, 2006
Feb 1, 2006
8
version 2.1 of the License, or (at your option) any later version.
9
10
11
12
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
Feb 1, 2006
Feb 1, 2006
13
Lesser General Public License for more details.
Feb 1, 2006
Feb 1, 2006
15
16
17
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
19
20
21
Sam Lantinga
slouken@libsdl.org
*/
Feb 21, 2006
Feb 21, 2006
22
#include "SDL_config.h"
23
24
25
26
#ifndef _SDL_xbios_h
#define _SDL_xbios_h
Feb 10, 2006
Feb 10, 2006
27
#include "SDL_stdinc.h"
Feb 16, 2006
Feb 16, 2006
28
#include "../SDL_sysvideo.h"
29
30
31
32
/* Hidden "this" pointer for the video functions */
#define _THIS SDL_VideoDevice *this
Sep 20, 2009
Sep 20, 2009
33
34
35
#define XBIOSMODE_DOUBLELINE (1<<0)
#define XBIOSMODE_C2P (1<<1)
36
37
38
39
40
41
typedef struct
{
Uint16 number; /* Video mode number */
Uint16 width; /* Size */
Uint16 height;
Uint16 depth; /* bits per plane */
Sep 20, 2009
Sep 20, 2009
42
Uint16 flags;
43
44
45
} xbiosmode_t;
/* Private display data */
Sep 19, 2009
Sep 19, 2009
46
#define NUM_MODELISTS 4 /* 8, 16, 24, and 32 bits-per-pixel */
47
48
struct SDL_PrivateVideoData {
Sep 20, 2009
Sep 20, 2009
49
long old_video_mode; /* Old video mode before entering SDL */
50
51
52
53
54
55
56
57
58
void *old_video_base; /* Old pointer to screen buffer */
void *old_palette; /* Old palette */
Uint32 old_num_colors; /* Nb of colors in saved palette */
void *screens[2]; /* Pointers to aligned screen buffer */
void *screensmem[2]; /* Pointers to screen buffer */
void *shadowscreen; /* Shadow screen for c2p conversion */
int frame_number; /* Number of frame for double buffer */
int pitch; /* Destination line width for C2P */
Aug 22, 2014
Aug 22, 2014
59
int recalc_offset; /* Recalculate SDL_Surface offset for C2P */
Sep 20, 2009
Sep 20, 2009
61
xbiosmode_t *current; /* Current set mode */
Sep 19, 2009
Sep 19, 2009
62
63
64
int SDL_nummodes[NUM_MODELISTS];
SDL_Rect **SDL_modelist[NUM_MODELISTS];
xbiosmode_t **SDL_xbiosmode[NUM_MODELISTS];
Jul 30, 2014
Jul 30, 2014
65
66
67
68
69
70
71
72
73
74
union {
Uint16 pal16[16];
Uint32 pal32[256];
} palette;
void (*listModes)(_THIS, int actually_add); /* List video modes */
void (*saveMode)(_THIS, SDL_PixelFormat *vformat); /* Save mode,palette,vbase change format if needed */
void (*setMode)(_THIS, xbiosmode_t *new_video_mode); /* Set mode */
void (*restoreMode)(_THIS); /* Restore system mode */
Aug 3, 2014
Aug 3, 2014
75
int (*getLineWidth)(_THIS, xbiosmode_t *new_video_mode, int width, int bpp); /* Return video mode pitch */
Jul 30, 2014
Jul 30, 2014
76
77
78
void (*swapVbuffers)(_THIS); /* Swap video buffers */
int (*allocVbuffers)(_THIS, int num_buffers, int bufsize); /* Allocate video buffers */
void (*freeVbuffers)(_THIS); /* Free video buffers */
Jul 31, 2014
Jul 31, 2014
79
80
void (*updRects)(_THIS, int numrects, SDL_Rect *rects); /* updateRects to use when video ready */
81
82
83
84
85
86
87
};
/* _VDO cookie values */
enum {
VDO_ST=0,
VDO_STE,
VDO_TT,
Sep 19, 2009
Sep 19, 2009
88
89
VDO_F30,
VDO_MILAN
90
91
92
93
94
95
96
97
98
99
100
101
102
103
};
/* Monitor types */
enum {
MONITOR_MONO=0,
MONITOR_TV,
MONITOR_VGA,
MONITOR_RGB
};
/* EgetShift masks */
#define ES_MODE 0x0700
/* Hidden structure -> variables names */
Sep 19, 2009
Sep 19, 2009
104
#define SDL_nummodes (this->hidden->SDL_nummodes)
105
#define SDL_modelist (this->hidden->SDL_modelist)
Sep 19, 2009
Sep 19, 2009
106
#define SDL_xbiosmode (this->hidden->SDL_xbiosmode)
107
108
109
110
111
112
113
114
115
#define XBIOS_oldpalette (this->hidden->old_palette)
#define XBIOS_oldnumcol (this->hidden->old_num_colors)
#define XBIOS_oldvbase (this->hidden->old_video_base)
#define XBIOS_oldvmode (this->hidden->old_video_mode)
#define XBIOS_screens (this->hidden->screens)
#define XBIOS_screensmem (this->hidden->screensmem)
#define XBIOS_shadowscreen (this->hidden->shadowscreen)
#define XBIOS_fbnum (this->hidden->frame_number)
#define XBIOS_pitch (this->hidden->pitch)
Sep 20, 2009
Sep 20, 2009
116
#define XBIOS_current (this->hidden->current)
Aug 22, 2014
Aug 22, 2014
117
#define XBIOS_recoffset (this->hidden->recalc_offset)
Jul 30, 2014
Jul 30, 2014
119
120
121
122
123
124
125
#define TT_palette (this->hidden->palette.pal16)
#define F30_palette (this->hidden->palette.pal32)
#define XBIOS_listModes (this->hidden->listModes)
#define XBIOS_saveMode (this->hidden->saveMode)
#define XBIOS_setMode (this->hidden->setMode)
#define XBIOS_restoreMode (this->hidden->restoreMode)
Aug 3, 2014
Aug 3, 2014
126
#define XBIOS_getLineWidth (this->hidden->getLineWidth)
Jul 30, 2014
Jul 30, 2014
127
128
129
130
#define XBIOS_swapVbuffers (this->hidden->swapVbuffers)
#define XBIOS_allocVbuffers (this->hidden->allocVbuffers)
#define XBIOS_freeVbuffers (this->hidden->freeVbuffers)
Jul 31, 2014
Jul 31, 2014
131
132
#define XBIOS_updRects (this->hidden->updRects)
Mar 7, 2005
Mar 7, 2005
133
134
/*--- Functions prototypes ---*/
Sep 19, 2009
Sep 19, 2009
135
void SDL_XBIOS_AddMode(_THIS, int actually_add, const xbiosmode_t *modeinfo);
Mar 7, 2005
Mar 7, 2005
136
Jul 30, 2014
Jul 30, 2014
137
138
139
/* SDL_xbios_st.c */
void SDL_XBIOS_VideoInit_ST(_THIS, unsigned long cookie_cvdo);
Jul 30, 2014
Jul 30, 2014
140
141
142
/* SDL_xbios_tt.c */
void SDL_XBIOS_VideoInit_TT(_THIS);
Jul 30, 2014
Jul 30, 2014
143
144
145
/* SDL_xbios_f30.c */
void SDL_XBIOS_VideoInit_F30(_THIS);
Jul 30, 2014
Jul 30, 2014
146
147
148
/* SDL_xbios_milan.c */
void SDL_XBIOS_VideoInit_Milan(_THIS);
Jul 30, 2014
Jul 30, 2014
149
150
151
/* SDL_xbios_ctpci.c */
void SDL_XBIOS_VideoInit_Ctpci(_THIS);
152
#endif /* _SDL_xbios_h */