Skip to content

Latest commit

 

History

History
155 lines (124 loc) · 5.08 KB

SDL_xbios.h

File metadata and controls

155 lines (124 loc) · 5.08 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
typedef struct
{
Uint16 number; /* Video mode number */
Sep 27, 2017
Sep 27, 2017
39
Uint16 width; /* Size */
40
41
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
59
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 */
Sep 20, 2009
Sep 20, 2009
60
xbiosmode_t *current; /* Current set mode */
Sep 19, 2009
Sep 19, 2009
61
62
63
int SDL_nummodes[NUM_MODELISTS];
SDL_Rect **SDL_modelist[NUM_MODELISTS];
xbiosmode_t **SDL_xbiosmode[NUM_MODELISTS];
Jul 30, 2014
Jul 30, 2014
64
65
66
67
68
69
70
71
72
73
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 */
Nov 4, 2017
Nov 4, 2017
74
75
void (*vsync)(_THIS);
void (*getScreenFormat)(_THIS, int bpp, Uint32 *rmask, Uint32 *gmask, Uint32 *bmask, Uint32 *amask); /* Get TrueColor screen format */
Aug 3, 2014
Aug 3, 2014
76
int (*getLineWidth)(_THIS, xbiosmode_t *new_video_mode, int width, int bpp); /* Return video mode pitch */
Jul 30, 2014
Jul 30, 2014
77
78
79
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
80
81
void (*updRects)(_THIS, int numrects, SDL_Rect *rects); /* updateRects to use when video ready */
82
83
84
85
86
87
88
};
/* _VDO cookie values */
enum {
VDO_ST=0,
VDO_STE,
VDO_TT,
Sep 19, 2009
Sep 19, 2009
89
90
VDO_F30,
VDO_MILAN
91
92
93
94
95
96
97
98
99
100
101
102
103
104
};
/* 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
105
#define SDL_nummodes (this->hidden->SDL_nummodes)
106
#define SDL_modelist (this->hidden->SDL_modelist)
Sep 19, 2009
Sep 19, 2009
107
#define SDL_xbiosmode (this->hidden->SDL_xbiosmode)
108
109
110
111
112
113
114
115
116
#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
117
#define XBIOS_current (this->hidden->current)
Aug 22, 2014
Aug 22, 2014
118
#define XBIOS_recoffset (this->hidden->recalc_offset)
Jul 30, 2014
Jul 30, 2014
120
121
122
123
124
125
126
#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)
Nov 4, 2017
Nov 4, 2017
127
128
#define XBIOS_vsync (this->hidden->vsync)
#define XBIOS_getScreenFormat (this->hidden->getScreenFormat)
Aug 3, 2014
Aug 3, 2014
129
#define XBIOS_getLineWidth (this->hidden->getLineWidth)
Jul 30, 2014
Jul 30, 2014
130
131
132
133
#define XBIOS_swapVbuffers (this->hidden->swapVbuffers)
#define XBIOS_allocVbuffers (this->hidden->allocVbuffers)
#define XBIOS_freeVbuffers (this->hidden->freeVbuffers)
Jul 31, 2014
Jul 31, 2014
134
135
#define XBIOS_updRects (this->hidden->updRects)
Mar 7, 2005
Mar 7, 2005
136
137
/*--- Functions prototypes ---*/
Sep 19, 2009
Sep 19, 2009
138
void SDL_XBIOS_AddMode(_THIS, int actually_add, const xbiosmode_t *modeinfo);
Mar 7, 2005
Mar 7, 2005
139
Jul 30, 2014
Jul 30, 2014
140
141
142
/* SDL_xbios_st.c */
void SDL_XBIOS_VideoInit_ST(_THIS, unsigned long cookie_cvdo);
Jul 30, 2014
Jul 30, 2014
143
144
145
/* SDL_xbios_tt.c */
void SDL_XBIOS_VideoInit_TT(_THIS);
Jul 30, 2014
Jul 30, 2014
146
147
148
/* SDL_xbios_f30.c */
void SDL_XBIOS_VideoInit_F30(_THIS);
Jul 30, 2014
Jul 30, 2014
149
150
151
/* SDL_xbios_milan.c */
void SDL_XBIOS_VideoInit_Milan(_THIS);
Jul 30, 2014
Jul 30, 2014
152
153
154
/* SDL_xbios_ctpci.c */
void SDL_XBIOS_VideoInit_Ctpci(_THIS);
155
#endif /* _SDL_xbios_h */