ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
gfxstub.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * Additional copyright for this file:
8  * Copyright (C) 1999-2000 Revolution Software Ltd.
9  * This code is based on source code created by Revolution Software,
10  * used with permission.
11  *
12  * This program is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation, either version 3 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program. If not, see <http://www.gnu.org/licenses/>.
24  *
25  */
26 
27 #include "engines/icb/gfx/psx_pcdefines.h"
28 
29 namespace ICB {
30 
31 #define REVERSE_OT
32 // #define FORWARD_OT
33 
34 // For reverse OT
35 #ifdef REVERSE_OT
36 #define OT_FIRST OT_SIZE - 1
37 #define CLEAROTLIST ClearOTagR
38 #endif // #ifdef REVERSE_OT
39 
40 #ifdef FORWARD_OT
41 #define OT_FIRST 0
42 #define CLEAROTLIST ClearOTag
43 #endif // #ifdef FORWARD_OT
44 
45 // The emulation of VRAM : 16-bit pixels 1024x512 big
46 #define VRAM_WIDTH 1024
47 #define VRAM_HEIGHT 512
48 extern uint16 psxVRAM[VRAM_WIDTH * VRAM_HEIGHT];
49 extern uint16 psxTP;
50 
51 // Generic routines in gfxstub.cpp
52 void InitDrawing(void);
53 void drawOTList(void);
54 void ResetZRange(void);
55 void recoverFromOTcrash(void);
56 
57 // External graphic routines to be supplied
58 void startDrawing(void);
59 void endDrawing(void);
60 
61 // Real graphic routines
62 int32 DrawSprite(int32 x0, int32 y0, int16 w, int16 h, uint8 r0, uint8 g0, uint8 b0, uint16 u0, uint16 v0, uint8 alpha, uint16 z, void *tex);
63 
64 // Single coloured rectangle
65 int32 DrawTile(int32 x0, int32 y0, int16 w, int16 h, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
66 
67 // Single flat coloured line : 2 points, 1 colour
68 int32 DrawLineF2(int32 x0, int32 y0, int32 x1, int32 y1, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
69 
70 // two connected lines flat coloured : 3 points, 1 colour
71 int32 DrawLineF3(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
72 
73 // three connected lines flat coloured : 4 points, 1 colour
74 int32 DrawLineF4(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
75 
76 // Single gouraud coloured line : 2 points, 2 colours
77 int32 DrawLineG2(int32 x0, int32 y0, int32 x1, int32 y1, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 alpha, uint16 z);
78 
79 // two connected lines gouraud coloured : 3 points, 3 colours
80 int32 DrawLineG3(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2, uint8 alpha, uint16 z);
81 
82 // three connected lines gouraud coloured : 4 points, 4 colours
83 int32 DrawLineG4(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2, uint8 r3,
84  uint8 g3, uint8 b3, uint8 alpha, uint16 z);
85 
86 // Simple flat coloured triangle : 3 points, 1 colour
87 int32 DrawFlatTriangle(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
88 
89 // Simple flat coloured quad : 4 points, 1 colour
90 int32 DrawFlatQuad(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint8 alpha, uint16 z);
91 
92 // Simple gouraud coloured triangle : 3 points, 3 colours
93 int32 DrawGouraudTriangle(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2, uint8 alpha,
94  uint16 z);
95 
96 // Simple gouraud coloured quad : 4 points, 4 colours
97 int32 DrawGouraudQuad(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2,
98  uint8 r3, uint8 g3, uint8 b3, uint8 alpha, uint16 z);
99 
100 // Simple flat coloured triangle : 3 points, 1 colour, 3 UV's
101 int32 DrawFlatTriangleTextured(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint16 u0, uint16 v0, uint16 u1, uint16 v1, uint16 u2, uint16 v2,
102  uint8 alpha, uint16 z, void *tex);
103 
104 // Simple flat coloured quad : 4 points, 1 colour, 4 UV's
105 int32 DrawFlatQuadTextured(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint16 u0, uint16 v0, uint16 u1, uint16 v1, uint16 u2,
106  uint16 v2, uint16 u3, uint16 v3, uint8 alpha, uint16 z, void *tex);
107 
108 // Simple gouraud coloured triangle : 3 points, 3 colours
109 int32 DrawGouraudTriangleTextured(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2,
110  uint16 u0, uint16 v0, uint16 u1, uint16 v1, uint16 u2, uint16 v2, uint8 alpha, uint16 z, void *tex);
111 
112 // Simple gouraud coloured quad : 4 points, 4 colours
113 int32 DrawGouraudQuadTextured(int32 x0, int32 y0, int32 x1, int32 y1, int32 x2, int32 y2, int32 x3, int32 y3, uint8 r0, uint8 g0, uint8 b0, uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2,
114  uint8 b2, uint8 r3, uint8 g3, uint8 b3, uint16 u0, uint16 v0, uint16 u1, uint16 v1, uint16 u2, uint16 v2, uint16 u3, uint16 v3, uint8 alpha,
115  uint16 z, void *tex);
116 
117 } // End of namespace ICB
Definition: actor.h:32