aboutsummaryrefslogtreecommitdiff
path: root/src/parsec/include/ro_api.h
blob: b860840c139ea4c75b51fcca3c0f55c3274664a2 (plain)
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_