28#ifndef __FREEWRL_SCENEGRAPH_RENDERFUNCS_H__
29#define __FREEWRL_SCENEGRAPH_RENDERFUNCS_H__
31void enableGlobalShader(s_shader_capabilities_t *);
32void resetGlobalShader(
void);
33void finishedWithGlobalShader(
void);
36#define TRAT(a) ((a) > 0 && ((a) < gglobal()->RenderFuncs.hitPointDist || gglobal()->RenderFuncs.hitPointDist < 0))
41 GLDOUBLE modelMatrix[16];
42 GLDOUBLE projMatrix[16];
43 GLDOUBLE justModel[16];
51void render_node(
struct X3D_Node *node);
54void setAnchorsAnchor(
struct X3D_Anchor* anchor);
55void projectorTable_clear();
57void sendAttribToGPU(
int myType,
int mySize,
int xtype,
int normalized,
int stride,
void *pointer,
int,
char*,
int);
58void sendArraysToGPU (
int mode,
int first,
int count);
59void sendBindBufferToGPU (GLenum target, GLuint buffer,
char *,
int);
60void sendElementsToGPU (
int mode,
int count,
int *indices);
61void sendElementsToGPU0 (
int mode,
int count,
int type,
void *indices);
62void saveElementsForGPU0(
int mode,
int count,
int type,
void* indices);
63void render_hier(
struct X3D_Node *p,
int rwhat);
64void render_hier2(
struct X3D_Node* g,
int rwhat);
65void restoreGlobalShader();
68typedef struct ivec4 {
int X;
int Y;
int W;
int H;}
ivec4;
70void pushviewport(Stack *vpstack,
ivec4 vp);
71void popviewport(Stack *vpstack);
72void setcurrentviewport(Stack *_vpstack);
73int currentviewportvisible(Stack *vpstack);
82void usehit_add(
struct X3D_Node *node,
double *modelviewmatrix);
83void usehit_add2(
struct X3D_Node *node,
double *modelviewmatrix,
void *userdata);
86void usehitB_add(
struct X3D_Node *node,
double *modelviewmatrix);
87void usehitB_add2(
struct X3D_Node *node,
double *modelviewmatrix,
void *userdata);
89Stack *getUseHitBStack();
93void push_group_extent_default();
94void pop_group_extent();
95void push_group_extent_default();
96float * peek_group_extent();
97void union_group_extent(
float *e6);
108void push_transform_local(
double *mat);
109void push_transform_local_identity();
110void pop_transform_local();
111double * peek_transform_local();
112void reset_transform_local(
double *mat);
113void multiply_transform_local(
double *mat);
114struct X3D_Node* get_executionContext();
115void push_executionContext(
struct X3D_Node* broto);
116void pop_executionContext();