]> git.lizzy.rs Git - plan9front.git/blob - sys/src/games/doom/v_video.h
doom: fix alignment issues for arm
[plan9front.git] / sys / src / games / doom / v_video.h
1 // Emacs style mode select   -*- C++ -*- 
2 //-----------------------------------------------------------------------------
3 //
4 // $Id:$
5 //
6 // Copyright (C) 1993-1996 by id Software, Inc.
7 //
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
11 //
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
15 // for more details.
16 //
17 // DESCRIPTION:
18 //      Gamma correction LUT.
19 //      Functions to draw patches (by post) directly to screen.
20 //      Functions to blit a block to the screen.
21 //
22 //-----------------------------------------------------------------------------
23
24
25 #ifndef __V_VIDEO__
26 #define __V_VIDEO__
27
28 #include "doomtype.h"
29
30 #include "doomdef.h"
31
32 // Needed because we are refering to patches.
33 #include "r_data.h"
34
35 //
36 // VIDEO
37 //
38
39 #define CENTERY                 (SCREENHEIGHT/2)
40
41
42 // Screen 0 is the screen updated by I_Update screen.
43 // Screen 1 is an extra buffer.
44
45
46
47 extern  byte*           screens[5];
48
49 extern  int     dirtybox[4];
50
51 extern  byte    gammatable[5][256];
52 extern  int     usegamma;
53
54
55
56 // Allocates buffer screens, call before R_Init.
57 void V_Init (void);
58
59
60 void
61 V_CopyRect
62 ( int           srcx,
63   int           srcy,
64   int           srcscrn,
65   int           width,
66   int           height,
67   int           destx,
68   int           desty,
69   int           destscrn );
70
71 void
72 V_DrawPatch
73 ( int           x,
74   int           y,
75   int           scrn,
76   patch_t*      patch);
77
78 void
79 V_DrawPatchDirect
80 ( int           x,
81   int           y,
82   int           scrn,
83   patch_t*      patch );
84
85
86 // Draw a linear block of pixels into the view buffer.
87 void
88 V_DrawBlock
89 ( int           x,
90   int           y,
91   int           scrn,
92   int           width,
93   int           height,
94   byte*         src );
95
96 // Reads a linear block of pixels into the view buffer.
97 void
98 V_GetBlock
99 ( int           x,
100   int           y,
101   int           scrn,
102   int           width,
103   int           height,
104   byte*         dest );
105
106
107 void
108 V_MarkRect
109 ( int           x,
110   int           y,
111   int           width,
112   int           height );
113
114 #endif
115 //-----------------------------------------------------------------------------
116 //
117 // $Log:$
118 //
119 //-----------------------------------------------------------------------------