ScummVM API documentation
drawpoly_pc.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#ifndef ICB_DRAWPOLY_PC_H
28#define ICB_DRAWPOLY_PC_H
29
30#include "engines/icb/gfx/psx_tman.h"
31
32namespace ICB {
33
34extern uint32 selFace;
35extern CVECTOR unlitPoly;
36extern uint32 _drawBface;
37extern uint32 deadObject;
38
39// Draw a cuboid
40void drawSolidBboxPC(SVECTOR *scrn, CVECTOR *rgbIn);
41
42// Debug : Flat, Un-Textured, Self-Luminous, triangles
43void drawFUS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
44
45// Debug : Gouraud, Un-Textured, Self-Luminous, triangles
46void drawGUS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
47
48// Debug : Flat, Textured, Self-Luminous Triangles
49void drawFTS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
50
51// Debug : Gouraud, Textured, Self-Luminous Triangles
52void drawGTS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
53
54// Debug : Flat, Un-Textured, Lit, triangles
55void drawFUL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
56
57// Debug : Gouraud, Un-Textured, Lit, triangles
58void drawGUL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
59
60// Debug : Flat, Textured, Lit Triangles
61void drawFTL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
62
63// Debug : Gouraud, Textured, Lit Triangles
64void drawGTL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
65
66// Debug : Simple Flat, Un-Textured triangles with no colour in them
67void drawTRI3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
68
69// Optimised : Flat, Un-Textured, Self-Luminous, triangles
70void fastDrawFUS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
71
72// Optimised : Gouraud, Un-Textured, Self-Luminous, triangles
73void fastDrawGUS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
74
75// Optimised : Flat, Textured, Self-Luminous Triangles
76void fastDrawFTS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
77
78// Optimised : Gouraud, Textured, Self-Luminous Triangles
79void fastDrawGTS3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
80
81// Optimised : Flat, Un-Textured, Lit, triangles
82void fastDrawFUL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
83
84// Optimised : Gouraud, Un-Textured, Lit, triangles
85void fastDrawGUL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
86
87// Optimised : Flat, Textured, Lit Triangles
88void fastDrawFTL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
89
90// Optimised : Gouraud, Textured, Lit Triangles
91void fastDrawGTL3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex, SVECTOR *pNormal);
92
93// Optimised : Simple Flat, Un-Textured triangles with no colour in them
94void fastDrawTRI3PC(uint32 *polyStart, const uint32 n, SVECTORPC *pVertex);
95
96} // End of namespace ICB
97
98#endif // #ifndef DRAWPOLY_PC_H