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