Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5131 clevermous 1
/*
2
Copyright (C) 1996-1997 Id Software, Inc.
3
 
4
This program is free software; you can redistribute it and/or
5
modify it under the terms of the GNU General Public License
6
as published by the Free Software Foundation; either version 2
7
of the License, or (at your option) any later version.
8
 
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
 
13
See the GNU General Public License for more details.
14
 
15
You should have received a copy of the GNU General Public License
16
along with this program; if not, write to the Free Software
17
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
 
19
*/
20
// vid_dos.h: header file for DOS-specific video stuff
21
 
22
typedef struct vmode_s {
23
	struct vmode_s	*pnext;
24
	char		*name;
25
	char		*header;
26
	unsigned	width;
27
	unsigned	height;
28
	float		aspect;
29
	unsigned	rowbytes;
30
	int			planar;
31
	int			numpages;
32
	void		*pextradata;
33
	int			(*setmode)(viddef_t *vid, struct vmode_s *pcurrentmode);
34
	void		(*swapbuffers)(viddef_t *vid, struct vmode_s *pcurrentmode,
35
							   vrect_t *rects);
36
	void		(*setpalette)(viddef_t *vid, struct vmode_s *pcurrentmode,
37
							  unsigned char *palette);
38
	void		(*begindirectrect)(viddef_t *vid, struct vmode_s *pcurrentmode,
39
								   int x, int y, byte *pbitmap, int width,
40
								   int height);
41
	void		(*enddirectrect)(viddef_t *vid, struct vmode_s *pcurrentmode,
42
								 int x, int y, int width, int height);
43
} vmode_t;
44
 
45
// vid_wait settings
46
#define VID_WAIT_NONE			0
47
#define VID_WAIT_VSYNC			1
48
#define VID_WAIT_DISPLAY_ENABLE	2
49
 
50
extern int		numvidmodes;
51
extern vmode_t	*pvidmodes;
52
 
53
extern int		VGA_width, VGA_height, VGA_rowbytes, VGA_bufferrowbytes;
54
extern byte		*VGA_pagebase;
55
extern vmode_t	*VGA_pcurmode;
56
 
57
extern cvar_t	vid_wait;
58
extern cvar_t	vid_nopageflip;
59
extern cvar_t	_vid_wait_override;
60
 
61
extern unsigned char colormap256[32][256];
62
 
63
extern void	*vid_surfcache;
64
extern int	vid_surfcachesize;
65
 
66
void VGA_Init (void);
67
void VID_InitVESA (void);
68
void VID_InitExtra (void);
69
void VGA_WaitVsync (void);
70
void VGA_ClearVideoMem (int planar);
71
void VGA_SetPalette(viddef_t *vid, vmode_t *pcurrentmode, unsigned char *pal);
72
void VGA_SwapBuffersCopy (viddef_t *vid, vmode_t *pcurrentmode,
73
	vrect_t *rects);
74
qboolean VGA_FreeAndAllocVidbuffer (viddef_t *vid, int allocnewbuffer);
75
qboolean VGA_CheckAdequateMem (int width, int height, int rowbytes,
76
	int allocnewbuffer);
77
void VGA_BeginDirectRect (viddef_t *vid, struct vmode_s *pcurrentmode, int x,
78
	int y, byte *pbitmap, int width, int height);
79
void VGA_EndDirectRect (viddef_t *vid, struct vmode_s *pcurrentmode, int x,
80
	int y, int width, int height);
81
void VGA_UpdateLinearScreen (void *srcptr, void *destptr, int width,
82
	int height, int srcrowbytes, int destrowbytes);
83