26 #ifndef __RENDERING_CONTEXT_H 
   27 #define __RENDERING_CONTEXT_H 
  229     virtual const char* getRendererVersion() = 0;
 
  246     virtual void setOrthoView(
float left, 
float right, 
float bottom, 
float top, 
float zNear, 
float zFar) = 0;
 
  259     virtual void setPerspectiveView(
float fov, 
float ratio, 
float zNear, 
float zFar) = 0;
 
  274     virtual void setViewport(
int x, 
int y, 
unsigned int width, 
unsigned int height) = 0;
 
  286     virtual void clear(
int buffer) = 0;
 
  292     virtual void setClearColor(
const Vector4 & color) = 0;
 
  294     virtual void init() = 0;
 
  297     virtual void enableTexture(
void) = 0;
 
  298     virtual void disableTexture(
void) = 0;
 
  301     virtual void setTextureUWrapMode(
WRAP_MODES wrap) = 0;
 
  302     virtual void setTextureVWrapMode(
WRAP_MODES wrap) = 0;
 
  304     virtual void bindTexture(
unsigned int textureId, 
const unsigned int multitextureId = 0) = 0;
 
  305     virtual void createTexture(
unsigned int * textureId) = 0;
 
  306     virtual void deleteTexture(
unsigned int * textureId) = 0;
 
  307     virtual void sendTextureImage(
Image * image, 
bool mipMap, 
bool filter, 
bool compress) = 0;
 
  308     virtual void texImage(
unsigned int level, 
unsigned int width, 
unsigned int height, 
VAR_TYPES type, 
TEX_MODES mode, 
const void * pixels) = 0;
 
  309     virtual void texSubImage(
unsigned int level, 
int xoffset, 
int yoffset, 
unsigned int width, 
unsigned int height, 
VAR_TYPES type, 
TEX_MODES mode, 
const void * pixels) = 0;
 
  310     virtual void generateMipMap(
void) = 0;
 
  314     virtual void createFrameBuffer(
unsigned int * frameBufferId) = 0;
 
  315     virtual void deleteFrameBuffer(
unsigned int * frameBufferId) = 0;
 
  316     virtual void bindFrameBuffer(
unsigned int frameBufferId) = 0;
 
  317     virtual void getCurrentFrameBuffer(
unsigned int * frameBufferId) = 0;
 
  329     virtual void createVertexShader(
unsigned int * shaderId) = 0;
 
  330     virtual void createPixelShader(
unsigned int * shaderId) = 0;
 
  331     virtual void deleteShader(
unsigned int * shaderId) = 0;
 
  332     virtual bool sendShaderSource(
unsigned int shaderId, 
const char * source) = 0;
 
  335     virtual void bindFX(
unsigned int fxId) = 0;
 
  336     virtual void createFX(
unsigned int * fxId, 
unsigned int vertexShaderId, 
unsigned int pixelShaderId) = 0;
 
  337     virtual void updateFX(
unsigned int fxId) = 0;
 
  338     virtual void deleteFX(
unsigned int * fxId) = 0;
 
  339     virtual void sendUniformInt(
unsigned int fxId, 
const char * name, 
int * values, 
const int count = 1) = 0;
 
  340     virtual void sendUniformFloat(
unsigned int fxId, 
const char * name, 
float * value, 
const int count = 1) = 0;
 
  341     virtual void sendUniformVec2(
unsigned int fxId, 
const char * name, 
float * values, 
const int count = 1) = 0;
 
  342     virtual void sendUniformVec3(
unsigned int fxId, 
const char * name, 
float * values, 
const int count = 1) = 0;
 
  343     virtual void sendUniformVec4(
unsigned int fxId, 
const char * name, 
float * values, 
const int count = 1) = 0;
 
  344     virtual void sendUniformMatrix(
unsigned int fxId, 
const char * name, 
Matrix4x4 * matrix, 
const int count = 1, 
const bool transpose = 
false) = 0;
 
  345     virtual void getAttribLocation(
unsigned int fxId, 
const char * name, 
int * location) = 0;
 
  355     virtual void enableVertexArray(
void) = 0;
 
  356     virtual void enableColorArray(
void) = 0;
 
  357     virtual void enableNormalArray(
void) = 0;
 
  358     virtual void enableTexCoordArray(
void) = 0;
 
  359     virtual void enableAttribArray(
unsigned int location) = 0;
 
  360     virtual void disableVertexArray(
void) = 0;
 
  361     virtual void disableColorArray(
void) = 0;
 
  362     virtual void disableNormalArray(
void) = 0;
 
  363     virtual void disableTexCoordArray(
void) = 0;
 
  364     virtual void disableAttribArray(
unsigned int location) = 0;
 
  365     virtual void setVertexPointer(
VAR_TYPES type, 
unsigned int components, 
const void * pointer) = 0;
 
  366     virtual void setColorPointer(
VAR_TYPES type, 
unsigned int components, 
const void * pointer) = 0;
 
  367     virtual void setNormalPointer(
VAR_TYPES type, 
const void * pointer) = 0;
 
  368     virtual void setTexCoordPointer(
VAR_TYPES type, 
unsigned int components, 
const void * pointer) = 0;
 
  369     virtual void setAttribPointer(
unsigned int location, 
VAR_TYPES type, 
unsigned int components, 
const void * pointer, 
const bool normalized = 
false) = 0;
 
  372     virtual void drawArray(
PRIMITIVE_TYPES type, 
unsigned int begin, 
unsigned int size) = 0;
 
  376     virtual void enableLineAntialiasing(
void) = 0;
 
  377     virtual void disableLineAntialiasing(
void) = 0;
 
  380     virtual void setMaterialDiffuse(
const Vector4 & diffuse) = 0;
 
  381     virtual void setMaterialSpecular(
const Vector4 & specular) = 0;
 
  382     virtual void setMaterialAmbient(
const Vector4 & ambient) = 0;
 
  383     virtual void setMaterialEmit(
const Vector4 & emit) = 0;
 
  384     virtual void setMaterialShininess(
float shininess) = 0;
 
  387     virtual void enableScissorTest(
void) = 0;
 
  388     virtual void disableScissorTest(
void) = 0;
 
  389     virtual void setScissor(
int x, 
int y, 
unsigned int width, 
unsigned int height) = 0;
 
  392     virtual void setColor(
const Color & color) = 0;
 
  393     virtual void setColor3(
const Vector3 & color) = 0;
 
  394     virtual void setColor4(
const Vector4 & color) = 0;
 
  397     virtual void setColorMask(
bool r, 
bool g, 
bool b, 
bool a) = 0;
 
  398     virtual void setDepthMask(
bool depth) = 0;
 
  401     virtual void setAlphaTest(
float value) = 0;
 
  404     virtual void enableDepthTest(
void) = 0;
 
  405     virtual void disableDepthTest(
void) = 0;
 
  407     virtual void enablePolygonOffset(
float x, 
float y) = 0;
 
  408     virtual void disablePolygonOffset() = 0;
 
  411     virtual void enableStencilTest(
void) = 0;
 
  412     virtual void disableStencilTest(
void) = 0;
 
  417     virtual void enableCullFace(
void) = 0;
 
  418     virtual void disableCullFace(
void) = 0;
 
  419     virtual void setCullMode(
CULL_MODES mode) = 0;
 
  429     virtual void loadIdentity(
void) = 0;
 
  431     virtual void pushMatrix(
void) = 0;
 
  432     virtual void popMatrix(
void) = 0;
 
  433     virtual void multMatrix(
const Matrix4x4 * matrix) = 0;
 
  434     virtual void translate(
const Vector3 & position) = 0;
 
  435     virtual void rotate(
const Vector3 & axis, 
float angle) = 0;
 
  436     virtual void scale(
const Vector3 & scale) = 0;
 
  437     virtual void getViewport(
int * viewport) = 0;
 
  438     virtual void getModelViewMatrix(
Matrix4x4 * matrix) = 0;
 
  439     virtual void getProjectionMatrix(
Matrix4x4 * matrix) = 0;
 
  440     virtual void getTextureMatrix(
Matrix4x4 * matrix) = 0;
 
  443     virtual void enableFog(
void) = 0;
 
  444     virtual void disableFog(
void) = 0;
 
  445     virtual void setFogColor(
const Vector3 & color) = 0;
 
  446     virtual void setFogDistance(
float min, 
float max) = 0;
 
  447     virtual void getFogColor(
Vector3 * color) = 0;
 
  448     virtual void getFogDistance(
float * min, 
float * max) = 0;
 
  451     virtual void enableLighting(
void) = 0;
 
  452     virtual void disableLighting(
void) = 0;
 
  453     virtual void enableLight(
unsigned int id) = 0;
 
  454     virtual void disableLight(
unsigned int id) = 0;
 
  455     virtual void setLightPosition(
unsigned int id, 
const Vector4 & position) = 0;
 
  456     virtual void setLightDiffuse(
unsigned int id, 
const Vector4 & diffuse) = 0;
 
  457     virtual void setLightSpecular(
unsigned int id, 
const Vector4 & specular) = 0;
 
  458     virtual void setLightAmbient(
unsigned int id, 
const Vector4 & ambient) = 0;
 
  459     virtual void setLightAttenuation(
unsigned int id, 
float constant, 
float linear, 
float quadratic) = 0;
 
  460     virtual void setLightSpotDirection(
unsigned int id, 
const Vector3 & direction) = 0;
 
  461     virtual void setLightSpotAngle(
unsigned int id, 
float angle) = 0;
 
  462     virtual void setLightSpotExponent(
unsigned int id, 
float exponent) = 0;
 
  463     virtual void getLightPosition(
unsigned int id, 
Vector4 * position) = 0;
 
  464     virtual void getLightDiffuse(
unsigned int id, 
Vector4 * diffuse) = 0;
 
  465     virtual void getLightSpecular(
unsigned int id, 
Vector4 * specular) = 0;
 
  466     virtual void getLightAmbient(
unsigned int id, 
Vector4 * ambient) = 0;
 
  467     virtual void getLightAttenuation(
unsigned int id, 
float * constant, 
float * linear, 
float * quadratic) = 0;
 
  468     virtual void getLightSpotDirection(
unsigned int id, 
Vector3 * direction) = 0;
 
  469     virtual void getLightSpotAngle(
unsigned int id, 
float * angle) = 0;
 
  470     virtual void getLightSpotExponent(
unsigned int id, 
float * exponent) = 0;
 
  473     virtual void enableBlending(
void) = 0;
 
  474     virtual void disableBlending(
void) = 0;
 
  485     virtual void setPointSize(
float size) = 0;
 
Definition: RenderingContext.h:147
 
Definition: RenderingContext.h:201
 
Definition: RenderingContext.h:161
 
PRIMITIVE_TYPES
Definition: RenderingContext.h:64
 
Definition: RenderingContext.h:88
 
Definition: RenderingContext.h:48
 
Definition: RenderingContext.h:180
 
Definition: RenderingContext.h:150
 
Definition: RenderingContext.h:163
 
STENCIL_FUNCS
Definition: RenderingContext.h:175
 
Definition: RenderingContext.h:78
 
Definition: RenderingContext.h:79
 
Definition: RenderingContext.h:184
 
virtual void endQuery(void)
Definition: RenderingContext.h:425
 
Definition: RenderingContext.h:159
 
The RenderingContext class defines an abstraction for the 3D rendering API like OpenGL. 
Definition: RenderingContext.h:217
 
Definition: RenderingContext.h:144
 
virtual void attachFrameBufferRB(FRAME_BUFFER_ATTACHMENT attachment, unsigned int renderBufferId)
Definition: RenderingContext.h:319
 
BLENDING_MODES
Definition: RenderingContext.h:32
 
Definition: RenderingContext.h:119
 
Definition: RenderingContext.h:133
 
Definition: Matrix4x4.h:31
 
Definition: RenderingContext.h:60
 
Definition: RenderingContext.h:193
 
Definition: RenderingContext.h:116
 
Definition: RenderingContext.h:155
 
Definition: RenderingContext.h:182
 
CULL_MODES
Definition: RenderingContext.h:131
 
Definition: RenderingContext.h:162
 
Definition: RenderingContext.h:143
 
RENDER_BUFFER_MODES
Definition: RenderingContext.h:167
 
virtual void bindVAO(unsigned int vaoId)
Definition: RenderingContext.h:479
 
Definition: RenderingContext.h:179
 
virtual void beginQuery(unsigned int queryId)
Definition: RenderingContext.h:424
 
Definition: RenderingContext.h:106
 
Definition: RenderingContext.h:109
 
virtual void setRenderBuffer(RENDER_BUFFER_MODES mode, unsigned int width, unsigned int height)
Definition: RenderingContext.h:326
 
Definition: RenderingContext.h:190
 
Definition: RenderingContext.h:158
 
TEX_MODES
Definition: RenderingContext.h:84
 
Definition: RenderingContext.h:156
 
Definition: RenderingContext.h:97
 
virtual void deleteRenderBuffer(unsigned int *renderBufferId)
Definition: RenderingContext.h:324
 
Definition: RenderingContext.h:46
 
Definition: RenderingContext.h:200
 
Definition: RenderingContext.h:35
 
virtual void bindRenderBuffer(unsigned int renderBufferId)
Definition: RenderingContext.h:325
 
Definition: RenderingContext.h:148
 
virtual void setVBO(VBO_TYPES type, const void *data, unsigned int size, VBO_MODES mode)
Definition: RenderingContext.h:351
 
Definition: RenderingContext.h:90
 
Definition: RenderingContext.h:96
 
Definition: RenderingContext.h:117
 
Definition: RenderingContext.h:164
 
Definition: RenderingContext.h:115
 
Definition: RenderingContext.h:37
 
Definition: RenderingContext.h:157
 
Definition: RenderingContext.h:89
 
WRAP_MODES
Definition: RenderingContext.h:124
 
STENCIL_OPS
Definition: RenderingContext.h:188
 
Definition: RenderingContext.h:68
 
Definition: RenderingContext.h:98
 
virtual void createRenderBuffer(unsigned int *renderBufferId)
Definition: RenderingContext.h:323
 
TEX_GEN_MODES
Definition: RenderingContext.h:94
 
Definition: RenderingContext.h:69
 
virtual void deleteVAO(unsigned int *vaoId)
Definition: RenderingContext.h:478
 
Definition: RenderingContext.h:134
 
Definition: RenderingContext.h:66
 
virtual void selectSubroutine(unsigned int fx, unsigned int type, const char *routine)
Definition: RenderingContext.h:481
 
Definition: RenderingContext.h:36
 
Definition: RenderingContext.h:52
 
Definition: RenderingContext.h:49
 
Definition: RenderingContext.h:67
 
DEPTH_MODES
Definition: RenderingContext.h:43
 
Definition: RenderingContext.h:38
 
Definition: RenderingContext.h:127
 
Definition: RenderingContext.h:87
 
Definition: RenderingContext.h:39
 
virtual void setStencilOp(STENCIL_OPS op)
Definition: RenderingContext.h:414
 
Definition: RenderingContext.h:177
 
Definition: RenderingContext.h:178
 
Definition: RenderingContext.h:105
 
Definition: RenderingContext.h:192
 
virtual void createQuery(unsigned int *queryId)
Definition: RenderingContext.h:422
 
Definition: RenderingContext.h:142
 
Definition: RenderingContext.h:86
 
Definition: RenderingContext.h:45
 
Definition: RenderingContext.h:47
 
Definition: RenderingContext.h:146
 
virtual void deleteVBO(unsigned int *vboId)
Definition: RenderingContext.h:349
 
virtual void createVBO(unsigned int *vboId)
Definition: RenderingContext.h:348
 
FRAME_BUFFER_ATTACHMENT
Definition: RenderingContext.h:153
 
Definition: RenderingContext.h:126
 
virtual ~RenderingContext(void)
Definition: RenderingContext.h:222
 
Definition: RenderingContext.h:149
 
Definition: RenderingContext.h:170
 
virtual void getQueryResult(unsigned int queryId, unsigned int *result)
Definition: RenderingContext.h:426
 
virtual void getTexImage(unsigned int level, Image *image)
Definition: RenderingContext.h:311
 
Definition: RenderingContext.h:107
 
Definition: RenderingContext.h:118
 
VBO_MODES
Definition: RenderingContext.h:205
 
Definition: RenderingContext.h:71
 
Definition: RenderingContext.h:191
 
Definition: RenderingContext.h:70
 
Definition: RenderingContext.h:51
 
Definition: RenderingContext.h:59
 
virtual void setVBOSubData(VBO_TYPES type, unsigned int offset, const void *data, unsigned int size)
Definition: RenderingContext.h:352
 
Definition: RenderingContext.h:207
 
MATRIX_MODES
Definition: RenderingContext.h:56
 
Definition: RenderingContext.h:135
 
Definition: RenderingContext.h:208
 
BUFFER_TYPES
Definition: RenderingContext.h:76
 
VBO_TYPES
Definition: RenderingContext.h:198
 
TEX_COMBINE_MODES
Definition: RenderingContext.h:102
 
Definition: RenderingContext.h:209
 
Definition: RenderingContext.h:58
 
Definition: RenderingContext.h:145
 
Definition: RenderingContext.h:72
 
virtual void setStencilFunc(STENCIL_FUNCS func, int ref=0)
Definition: RenderingContext.h:413
 
Definition: RenderingContext.h:120
 
Definition: RenderingContext.h:171
 
Definition: RenderingContext.h:169
 
virtual void deleteQuery(unsigned int *queryId)
Definition: RenderingContext.h:423
 
Definition: RenderingContext.h:160
 
Definition: RenderingContext.h:183
 
virtual void bindVBO(VBO_TYPES type, unsigned int vboId)
Definition: RenderingContext.h:350
 
Definition: RenderingContext.h:34
 
virtual void setPolygonMode(PRIMITIVE_TYPES t)
Definition: RenderingContext.h:482
 
Definition: RenderingContext.h:50
 
VAR_TYPES
Definition: RenderingContext.h:140
 
Definition: RenderingContext.h:136
 
Definition: RenderingContext.h:108
 
Definition: RenderingContext.h:104
 
Definition: RenderingContext.h:194
 
Definition: RenderingContext.h:80
 
virtual void createVAO(unsigned int *vaoId)
Definition: RenderingContext.h:477
 
TEX_FILTER_MODES
Definition: RenderingContext.h:113
 
Definition: RenderingContext.h:181