2013-06-23 07:49:34 +00:00
# ifndef R_RENDER
# define R_RENDER
2013-06-26 23:01:00 +00:00
# include "basictypes.h"
2013-06-23 07:49:34 +00:00
enum TexMode
{
2014-05-11 15:56:38 +00:00
TM_MODULATE = 0 , // (r, g, b, a)
2014-09-09 11:21:36 +00:00
TM_MASK , // (1, 1, 1, a)
TM_OPAQUE , // (r, g, b, 1)
TM_INVERSE , // (1-r, 1-g, 1-b, a)
TM_REDTOALPHA , // (1, 1, 1, r)
2014-09-21 09:08:17 +00:00
TM_CLAMPY , // (r, g, b, (t >= 0.0 && t <= 1.0)? a:0)
2018-03-28 19:38:00 +00:00
TM_INVERTOPAQUE , // (1-r, 1-g, 1-b, 1)
2018-06-14 19:28:03 +00:00
TM_FOGLAYER , // (renders a fog layer in the shape of the active texture)
2018-06-16 11:47:24 +00:00
TM_FIXEDCOLORMAP = TM_FOGLAYER , // repurposes the objectcolor uniforms to render a fixed colormap range. (Same constant because they cannot be used in the same context.
2016-04-26 11:50:05 +00:00
} ;
enum ELightMethod
{
LM_DEFERRED = 1 , // calculate lights up front in a separate pass
LM_DIRECT = 2 , // calculate lights on the fly along with the render data
2013-06-23 07:49:34 +00:00
} ;
2016-08-06 10:03:16 +00:00
enum EBufferMethod
{
2016-09-01 09:52:52 +00:00
BM_DEFERRED = 1 , // use a temporarily mapped buffer, for GL 3.x core profile
2016-08-06 10:03:16 +00:00
BM_PERSISTENT = 2 // use a persistently mapped buffer
} ;
2013-06-23 07:49:34 +00:00
struct RenderContext
{
unsigned int flags ;
unsigned int maxuniforms ;
2014-07-30 21:13:16 +00:00
unsigned int maxuniformblock ;
2014-08-01 18:59:39 +00:00
unsigned int uniformblockalignment ;
2016-04-26 11:50:05 +00:00
int lightmethod ;
2016-08-06 10:03:16 +00:00
int buffermethod ;
2014-05-11 11:27:51 +00:00
float glslversion ;
2013-06-23 07:49:34 +00:00
int max_texturesize ;
char * vendorstring ;
} ;
2013-09-03 16:29:39 +00:00
extern RenderContext gl ;
2013-06-23 07:49:34 +00:00
# endif