1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/*
* PARSEC HEADER: ro_api.h
*/
#ifndef _RO_API_H_
#define _RO_API_H_
// default state not necessary
#define NO_DEFAULT_RASTERIZER_STATE
// need opengl headers
#include "r_gl.h"
// client state bits
enum {
VTXARRAY_NONE = 0x0000,
VTXARRAY_COLORS = 0x0001,
VTXARRAY_EDGEFLAGS = 0x0002,
VTXARRAY_NORMALS = 0x0004,
VTXARRAY_TEXCOORDS = 0x0008,
VTXARRAY_VERTICES = 0x0010
};
// vertex pointers config
enum {
VTXPTRS_NONE,
VTXPTRS_DO_ITER_1,
VTXPTRS_DO_ITER_2,
VTXPTRS_DO_ITER_3,
VTXPTRS_DO_ITER_4,
VTXPTRS_DO_FONT_1,
VTXPTRS_DO_FONT_2,
VTXPTRS_RO_PART_1,
VTXPTRS_RO_POLY_1,
VTXPTRS_RO_POLY_2,
VTXPTRS_RO_POLY_3
};
// external functions
void RO_InitializeState();
void RO_SetCapability(GLenum cap, bool enable);
int RO_DepthCmpEnabled();
int RO_DepthWriteEnabled();
void RO_EnableDepthTest( int enable );
void RO_DepthFunc( GLenum func );
void RO_DepthMask( GLboolean flag );
void RO_BlendFunc( GLenum sfactor, GLenum dfactor );
void RO_AlphaFunc( GLenum func, GLclampf ref );
void RO_AlphaTest( int enable );
void RO_PointSmooth( int enable );
void RO_LineSmooth( int enable );
void RO_PointSize( GLfloat size );
void RO_ClientState( dword statebits );
int RO_ArrayMakeCurrent( int userid, void *base );
void RO_InvalidateRasterizerState();
void RO_InitRasterizerState( dword itertype, dword raststate, dword rastmask );
void RO_TextureCombineState( dword texcomb );
#define RO_AllowsExtendedTexenv() FALSE
#ifdef NO_DEFAULT_RASTERIZER_STATE
#define RO_DefaultRasterizerState() {}
#else
void RO_DefaultRasterizerState();
#endif
#endif // _RO_API_H_
|