19#define ADD_OP(a,b,c) OP_ ## a ,
26#define POLYGON_MAX_VERTEX 16
29#define MAX_SPECULAR_BUFFERS 8
31#define SPECULAR_BUFFER_SIZE 1024
33#define SPECULAR_BUFFER_RESOLUTION 1024
36#define MAX_MODELVIEW_STACK_DEPTH 32
37#define MAX_PROJECTION_STACK_DEPTH 8
38#define MAX_TEXTURE_STACK_DEPTH 8
39#define MAX_NAME_STACK_DEPTH 64
40#define MAX_TEXTURE_LEVELS 11
43#define VERTEX_HASH_SIZE 1031
45#define MAX_DISPLAY_LISTS 1024
46#define OP_BUFFER_MAX_SIZE 512
48#define TGL_OFFSET_FILL 0x1
49#define TGL_OFFSET_LINE 0x2
50#define TGL_OFFSET_POINT 0x4
136#define TEXTURE_HASH_TABLE_SIZE 256
316 int xsize,
int ysize);
318 int xsize,
int ysize);
319void gl_resizeImage(
unsigned char *dest,
int xsize_dest,
int ysize_dest,
320 unsigned char *src,
int xsize_src,
int ysize_src);
322 unsigned char *src,
int xsize_src,
int ysize_src);
331 const float shininess);
334void dprintf(
const char *, ...);
340#define dprintf(format, args...) \
341 fprintf(stderr,"In '%s': " format "\n",__FUNCTION__, ##args);
345#define dprintf(format, args...)
352#define ADD_OP(a,b,c) void glop ## a (GLContext *,GLParam *);
358#define CLIP_EPSILON (1E-5)
360static inline int gl_clipcode(
float x,
float y,
float z,
float w1)
int texcoord_array_stride
int matrix_model_projection_updated
unsigned int * select_ptr
int color_material_enabled
GLSharedState shared_state
int matrix_model_projection_no_w_transform
int matrix_stack_depth_max[3]
int current_color_material_mode
int current_color_material_type
int current_op_buffer_index
M4 matrix_model_projection
GLSpecBuf * specbuf_first
GLLight lights[MAX_LIGHTS]
gl_draw_triangle_func draw_triangle_back
GLParamBuffer * current_op_buffer
unsigned int * select_buffer
unsigned int longcurrent_color[3]
unsigned int name_stack[MAX_NAME_STACK_DEPTH]
unsigned int * select_hit
gl_draw_triangle_func draw_triangle_front
GLTexture * current_texture
int(* gl_resize_viewport)(struct GLContext *c, int *xsize, int *ysize)
GLParamBuffer * first_op_buffer
GLParam ops[OP_BUFFER_MAX_SIZE]
struct GLParamBuffer * next
GLTexture ** texture_hash_table
float buf[SPECULAR_BUFFER_SIZE+1]
GLImage images[MAX_TEXTURE_LEVELS]
GLSpecBuf * specbuf_get_buffer(GLContext *c, const int shininess_i, const float shininess)
struct GLContext GLContext
struct GLMaterial GLMaterial
void gl_enable_disable_light(GLContext *c, int light, int v)
struct GLSharedState GLSharedState
GLContext * gl_get_context(void)
void gl_shade_vertex(GLContext *c, GLVertex *v)
#define dprintf(format, args...)
void glInitTextures(GLContext *c)
#define SPECULAR_BUFFER_SIZE
struct GLViewport GLViewport
void gl_draw_triangle(GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)
#define MAX_TEXTURE_LEVELS
void gl_convertRGB_to_8A8R8G8B(unsigned int *pixmap, unsigned char *rgb, int xsize, int ysize)
void gl_draw_point(GLContext *c, GLVertex *p0)
#define MAX_NAME_STACK_DEPTH
void gl_draw_triangle_fill(GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)
void gl_resizeImage(unsigned char *dest, int xsize_dest, int ysize_dest, unsigned char *src, int xsize_src, int ysize_src)
void gl_convertRGB_to_5R6G5B(unsigned short *pixmap, unsigned char *rgb, int xsize, int ysize)
struct GLParamBuffer GLParamBuffer
void glEndTextures(GLContext *c)
GLTexture * alloc_texture(GLContext *c, int h)
void gl_transform_to_viewport(GLContext *c, GLVertex *v)
void gl_add_select(GLContext *c, unsigned int zmin, unsigned int zmax)
void gl_draw_line(GLContext *c, GLVertex *p0, GLVertex *p1)
#define OP_BUFFER_MAX_SIZE
struct GLSpecBuf GLSpecBuf
void gl_print_matrix(const float *m)
void gl_draw_triangle_point(GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)
void(* gl_draw_triangle_func)(struct GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)
void gl_add_op(GLParam *p)
struct GLTexture GLTexture
void gl_fatal_error(char *format,...)
void gl_draw_triangle_select(GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)
void gl_resizeImageNoInterpolate(unsigned char *dest, int xsize_dest, int ysize_dest, unsigned char *src, int xsize_src, int ysize_src)
void gl_draw_triangle_line(GLContext *c, GLVertex *p0, GLVertex *p1, GLVertex *p2)