Commit ae34762e authored by hybrid's avatar hybrid

Inlined the OpenGL access methods, also renamed some of them to make the names...

Inlined the OpenGL access methods, also renamed some of them to make the names more durable in case the official methods are promoted.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@691 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 7085da18
Changes in version 1.3.1 (?? Mar 2007)
- Moved the OpenGL API functions from COpenGL driver into new extension
handler. Thereby, some renaming took place - the ARB and EXT suffix was
removed. Simply rename the functions in case you use them.
- matrix4 is now a template internally such that also int and double matrices
are possible now.
- CMeshBuffer is a new template replacing all previous SMeshBuffer* classes.
New mesh buffers can be easily implemented based on this code.
- Ogre 1.40 files now also load.
- New filename based methods in the MeshCache.
- CSphereSceneNode is now texture wrapped with sphere mapping by exactly one
texture. Only a small error on the top remained.
- Frustum culling fixed by using the fixed classifyPointRelation function.
- Some fixes in the 3d basic structures: plane3d.classifyPointRelation now
correctly returns the relation, it returned the opposite before. Also
renamed existsInterSection to existsIntersection for consistency.
......@@ -10,6 +29,8 @@ Changes in version 1.3.1 (?? Mar 2007)
name. Submitted by Jeff Myers
- Updated to latest PNG library (1.2.18), fixing a vulnerability.
Also changed some data structures which should make the library 64bit
compatible.
- Changed the external window pointer from s32 to void*. This makes the
mechanism 64bit safe, but also breaks the API. You have to cast to
......
......@@ -450,7 +450,7 @@ void COpenGLDriver::setTransform(E_TRANSFORMATION_STATE state, const core::matri
return;
if (MultiTextureExtension)
extGlActiveTextureARB(GL_TEXTURE0_ARB + ( state - ETS_TEXTURE_0 ));
extGlActiveTexture(GL_TEXTURE0_ARB + ( state - ETS_TEXTURE_0 ));
glMatrixMode(GL_TEXTURE);
createGLTextureMatrix(glmat, mat );
......@@ -518,7 +518,7 @@ void COpenGLDriver::drawVertexPrimitiveList(const void* vertices, u32 vertexCoun
setRenderStates3DMode();
if (MultiTextureExtension)
extGlClientActiveTextureARB(GL_TEXTURE0_ARB);
extGlClientActiveTexture(GL_TEXTURE0_ARB);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
......@@ -541,10 +541,10 @@ void COpenGLDriver::drawVertexPrimitiveList(const void* vertices, u32 vertexCoun
// texture coordinates
if (MultiTextureExtension)
{
extGlClientActiveTextureARB(GL_TEXTURE1_ARB);
extGlClientActiveTexture(GL_TEXTURE1_ARB);
glEnableClientState ( GL_TEXTURE_COORD_ARRAY );
glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].TCoords2);
extGlClientActiveTextureARB(GL_TEXTURE0_ARB);
extGlClientActiveTexture(GL_TEXTURE0_ARB);
}
glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].TCoords);
break;
......@@ -554,15 +554,15 @@ void COpenGLDriver::drawVertexPrimitiveList(const void* vertices, u32 vertexCoun
// texture coordinates
if (MultiTextureExtension)
{
extGlClientActiveTextureARB(GL_TEXTURE1_ARB);
extGlClientActiveTexture(GL_TEXTURE1_ARB);
glEnableClientState ( GL_TEXTURE_COORD_ARRAY );
glTexCoordPointer(3, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Tangent);
extGlClientActiveTextureARB(GL_TEXTURE2_ARB);
extGlClientActiveTexture(GL_TEXTURE2_ARB);
glEnableClientState ( GL_TEXTURE_COORD_ARRAY );
glTexCoordPointer(3, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Binormal);
extGlClientActiveTextureARB(GL_TEXTURE0_ARB);
extGlClientActiveTexture(GL_TEXTURE0_ARB);
}
glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].TCoords);
break;
......@@ -611,15 +611,15 @@ void COpenGLDriver::drawVertexPrimitiveList(const void* vertices, u32 vertexCoun
{
if (vType==EVT_TANGENTS)
{
extGlClientActiveTextureARB(GL_TEXTURE2_ARB);
extGlClientActiveTexture(GL_TEXTURE2_ARB);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
if (vType!=EVT_STANDARD && MultiTextureExtension)
{
extGlClientActiveTextureARB(GL_TEXTURE1_ARB);
extGlClientActiveTexture(GL_TEXTURE1_ARB);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
extGlClientActiveTextureARB(GL_TEXTURE0_ARB);
extGlClientActiveTexture(GL_TEXTURE0_ARB);
}
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
......@@ -1048,7 +1048,7 @@ bool COpenGLDriver::setTexture(s32 stage, video::ITexture* texture)
return true;
if (MultiTextureExtension)
extGlActiveTextureARB(GL_TEXTURE0_ARB + stage);
extGlActiveTexture(GL_TEXTURE0_ARB + stage);
CurrentTexture[stage]=texture;
......@@ -1283,7 +1283,7 @@ void COpenGLDriver::setBasicRenderStates(const SMaterial& material, const SMater
if (!material.Textures[i])
continue;
if (MultiTextureExtension)
extGlActiveTextureARB(GL_TEXTURE0_ARB + i);
extGlActiveTexture(GL_TEXTURE0_ARB + i);
else if (i>0)
break;
......@@ -1417,7 +1417,7 @@ void COpenGLDriver::setBasicRenderStates(const SMaterial& material, const SMater
}
if (MultiTextureExtension)
extGlActiveTextureARB(GL_TEXTURE0_ARB + u);
extGlActiveTexture(GL_TEXTURE0_ARB + u);
else if (u>0)
break;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, mode);
......@@ -1845,7 +1845,7 @@ void COpenGLDriver::setVertexShaderConstant(const f32* data, s32 startRegister,
{
#ifdef GL_ARB_vertex_program
for (int i=0; i<constantAmount; ++i)
extGlProgramLocalParameter4fvARB(GL_VERTEX_PROGRAM_ARB, startRegister+i, &data[i*4]);
extGlProgramLocalParameter4fv(GL_VERTEX_PROGRAM_ARB, startRegister+i, &data[i*4]);
#endif
}
......@@ -1854,7 +1854,7 @@ void COpenGLDriver::setPixelShaderConstant(const f32* data, s32 startRegister, s
{
#ifdef GL_ARB_fragment_program
for (int i=0; i<constantAmount; ++i)
extGlProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, startRegister+i, &data[i*4]);
extGlProgramLocalParameter4fv(GL_FRAGMENT_PROGRAM_ARB, startRegister+i, &data[i*4]);
#endif
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -169,10 +169,10 @@ public:
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
{
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
Driver->extGlActiveTextureARB(GL_TEXTURE0_ARB);
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
......@@ -417,7 +417,7 @@ public:
{
// lightmap
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
if (material.MaterialType == EMT_LIGHTMAP_ADD)
......@@ -457,7 +457,7 @@ public:
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
{
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1.f );
}
}
......@@ -495,7 +495,7 @@ public:
{
// detailmap
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_ADD_SIGNED_EXT);
......@@ -531,10 +531,10 @@ public:
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
{
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
Driver->extGlActiveTextureARB(GL_TEXTURE0_ARB);
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
......@@ -552,7 +552,7 @@ public:
virtual void OnUnsetMaterial()
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
Driver->extGlActiveTextureARB(GL_TEXTURE0_ARB);
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
}
......@@ -587,7 +587,7 @@ public:
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE );
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT );
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
......@@ -618,10 +618,10 @@ public:
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
{
Driver->extGlActiveTextureARB(GL_TEXTURE0_ARB);
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); // default value
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glDisable(GL_TEXTURE_GEN_S);
......@@ -651,14 +651,14 @@ public:
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
{
Driver->extGlActiveTextureARB(GL_TEXTURE0_ARB);
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE);
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE );
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT );
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
......@@ -686,7 +686,7 @@ public:
virtual void OnUnsetMaterial()
{
if (Driver->queryFeature(EVDF_MULTITEXTURE))
Driver->extGlActiveTextureARB(GL_TEXTURE1_ARB);
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
......
......@@ -82,7 +82,7 @@ COpenGLSLMaterialRenderer::~COpenGLSLMaterialRenderer()
if(Program)
{
Driver->extGlDeleteObjectARB(Program);
Driver->extGlDeleteObject(Program);
Program = 0;
}
......@@ -142,7 +142,7 @@ void COpenGLSLMaterialRenderer::OnSetMaterial(video::SMaterial& material,
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
{
if(Program)
Driver->extGlUseProgramObjectARB(Program);
Driver->extGlUseProgramObject(Program);
if (BaseMaterial)
BaseMaterial->OnSetMaterial(material, material, true, this);
......@@ -154,7 +154,7 @@ void COpenGLSLMaterialRenderer::OnSetMaterial(video::SMaterial& material,
void COpenGLSLMaterialRenderer::OnUnsetMaterial()
{
Driver->extGlUseProgramObjectARB(0);
Driver->extGlUseProgramObject(0);
if (BaseMaterial)
BaseMaterial->OnUnsetMaterial();
......@@ -168,21 +168,21 @@ bool COpenGLSLMaterialRenderer::isTransparent()
bool COpenGLSLMaterialRenderer::createProgram()
{
Program = Driver->extGlCreateProgramObjectARB();
Program = Driver->extGlCreateProgramObject();
return true;
}
bool COpenGLSLMaterialRenderer::createShader(GLenum shaderType, const char* shader)
{
GLhandleARB shaderHandle = Driver->extGlCreateShaderObjectARB(shaderType);
GLhandleARB shaderHandle = Driver->extGlCreateShaderObject(shaderType);
Driver->extGlShaderSourceARB(shaderHandle, 1, &shader, NULL);
Driver->extGlCompileShaderARB(shaderHandle);
Driver->extGlShaderSource(shaderHandle, 1, &shader, NULL);
Driver->extGlCompileShader(shaderHandle);
int status = 0;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(shaderHandle, GL_OBJECT_COMPILE_STATUS_ARB, &status);
Driver->extGlGetObjectParameteriv(shaderHandle, GL_OBJECT_COMPILE_STATUS_ARB, &status);
#endif
if (!status)
......@@ -192,30 +192,30 @@ bool COpenGLSLMaterialRenderer::createShader(GLenum shaderType, const char* shad
int maxLength=0;
GLsizei length;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(shaderHandle,
Driver->extGlGetObjectParameteriv(shaderHandle,
GL_OBJECT_INFO_LOG_LENGTH_ARB, &maxLength);
#endif
GLcharARB *pInfoLog = new GLcharARB[maxLength];
Driver->extGlGetInfoLogARB(shaderHandle, maxLength, &length, pInfoLog);
Driver->extGlGetInfoLog(shaderHandle, maxLength, &length, pInfoLog);
os::Printer::log((const c8*)pInfoLog);
delete [] pInfoLog;
return false;
}
Driver->extGlAttachObjectARB(Program, shaderHandle);
Driver->extGlAttachObject(Program, shaderHandle);
return true;
}
bool COpenGLSLMaterialRenderer::linkProgram()
{
Driver->extGlLinkProgramARB(Program);
Driver->extGlLinkProgram(Program);
int status = 0;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(Program, GL_OBJECT_LINK_STATUS_ARB, &status);
Driver->extGlGetObjectParameteriv(Program, GL_OBJECT_LINK_STATUS_ARB, &status);
#endif
if (!status)
......@@ -225,11 +225,11 @@ bool COpenGLSLMaterialRenderer::linkProgram()
int maxLength=0;
GLsizei length;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(Program,
Driver->extGlGetObjectParameteriv(Program,
GL_OBJECT_INFO_LOG_LENGTH_ARB, &maxLength);
#endif
GLcharARB *pInfoLog = new GLcharARB[maxLength];
Driver->extGlGetInfoLogARB(Program, maxLength, &length, pInfoLog);
Driver->extGlGetInfoLog(Program, maxLength, &length, pInfoLog);
os::Printer::log((const c8*)pInfoLog);
delete [] pInfoLog;
......@@ -240,7 +240,7 @@ bool COpenGLSLMaterialRenderer::linkProgram()
int num = 0;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(Program, GL_OBJECT_ACTIVE_UNIFORMS_ARB, &num);
Driver->extGlGetObjectParameteriv(Program, GL_OBJECT_ACTIVE_UNIFORMS_ARB, &num);
#endif
if (num == 0)
......@@ -251,7 +251,7 @@ bool COpenGLSLMaterialRenderer::linkProgram()
int maxlen = 0;
#ifdef GL_ARB_shader_objects
Driver->extGlGetObjectParameterivARB(Program, GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB, &maxlen);
Driver->extGlGetObjectParameteriv(Program, GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB, &maxlen);
#endif
if (maxlen == 0)
......@@ -271,7 +271,7 @@ bool COpenGLSLMaterialRenderer::linkProgram()
memset(buf, 0, maxlen);
GLint size;
Driver->extGlGetActiveUniformARB(Program, i, maxlen, 0, &size, &ui.type, (GLcharARB*)buf);
Driver->extGlGetActiveUniform(Program, i, maxlen, 0, &size, &ui.type, (GLcharARB*)buf);
ui.name = buf;
UniformInfo.push_back(ui);
......@@ -320,28 +320,28 @@ bool COpenGLSLMaterialRenderer::setPixelShaderConstant(const c8* name, const f32
switch (UniformInfo[i].type)
{
case GL_FLOAT:
Driver->extGlUniform1fvARB(i, count, floats);
Driver->extGlUniform1fv(i, count, floats);
break;
case GL_FLOAT_VEC2_ARB:
Driver->extGlUniform2fvARB(i, count/2, floats);
Driver->extGlUniform2fv(i, count/2, floats);
break;
case GL_FLOAT_VEC3_ARB:
Driver->extGlUniform3fvARB(i, count/3, floats);
Driver->extGlUniform3fv(i, count/3, floats);
break;
case GL_FLOAT_VEC4_ARB:
Driver->extGlUniform4fvARB(i, count/4, floats);
Driver->extGlUniform4fv(i, count/4, floats);
break;
case GL_FLOAT_MAT2_ARB:
Driver->extGlUniformMatrix2fvARB(i, count/4, false, floats);
Driver->extGlUniformMatrix2fv(i, count/4, false, floats);
break;
case GL_FLOAT_MAT3_ARB:
Driver->extGlUniformMatrix3fvARB(i, count/9, false, floats);
Driver->extGlUniformMatrix3fv(i, count/9, false, floats);
break;
case GL_FLOAT_MAT4_ARB:
Driver->extGlUniformMatrix4fvARB(i, count/16, false, floats);
Driver->extGlUniformMatrix4fv(i, count/16, false, floats);
break;
default:
Driver->extGlUniform1ivARB(i, count, (GLint*)floats);
Driver->extGlUniform1iv(i, count, (GLint*)floats);
break;
}
#endif
......
......@@ -58,10 +58,10 @@ COpenGLShaderMaterialRenderer::~COpenGLShaderMaterialRenderer()
CallBack->drop();
if (VertexShader)
Driver->extGlDeleteProgramsARB(1, &VertexShader);
Driver->extGlDeletePrograms(1, &VertexShader);
if (PixelShader)
Driver->extGlDeleteProgramsARB(1, &PixelShader);
Driver->extGlDeletePrograms(1, &PixelShader);
if (BaseMaterial)
BaseMaterial->drop ();
......@@ -110,7 +110,7 @@ void COpenGLShaderMaterialRenderer::OnSetMaterial(video::SMaterial& material, co
if (VertexShader)
{
// set new vertex shader
Driver->extGlBindProgramARB(GL_VERTEX_PROGRAM_ARB, VertexShader);
Driver->extGlBindProgram(GL_VERTEX_PROGRAM_ARB, VertexShader);
glEnable(GL_VERTEX_PROGRAM_ARB);
}
#endif
......@@ -119,7 +119,7 @@ void COpenGLShaderMaterialRenderer::OnSetMaterial(video::SMaterial& material, co
#ifdef GL_ARB_fragment_program
if (PixelShader)
{
Driver->extGlBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, PixelShader);
Driver->extGlBindProgram(GL_FRAGMENT_PROGRAM_ARB, PixelShader);
glEnable(GL_FRAGMENT_PROGRAM_ARB);
}
#endif
......@@ -158,15 +158,15 @@ bool COpenGLShaderMaterialRenderer::createPixelShader(const c8* pxsh)
if (!pxsh)
return true;
Driver->extGlGenProgramsARB(1, &PixelShader);
Driver->extGlGenPrograms(1, &PixelShader);
#ifdef GL_ARB_fragment_program
Driver->extGlBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, PixelShader);
Driver->extGlBindProgram(GL_FRAGMENT_PROGRAM_ARB, PixelShader);
// clear error buffer
while(glGetError() != GL_NO_ERROR) {}
// compile
Driver->extGlProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
Driver->extGlProgramString(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
strlen(pxsh), pxsh);
#endif
......@@ -198,14 +198,14 @@ bool COpenGLShaderMaterialRenderer::createVertexShader(const char* vtxsh)
return true;
#ifdef GL_ARB_vertex_program
Driver->extGlGenProgramsARB(1, &VertexShader);
Driver->extGlBindProgramARB(GL_VERTEX_PROGRAM_ARB, VertexShader);
Driver->extGlGenPrograms(1, &VertexShader);
Driver->extGlBindProgram(GL_VERTEX_PROGRAM_ARB, VertexShader);
// clear error buffer
while(glGetError() != GL_NO_ERROR) {}
// compile
Driver->extGlProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
Driver->extGlProgramString(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
strlen(vtxsh), vtxsh);
GLenum g = glGetError();
......
......@@ -107,23 +107,23 @@ COpenGLTexture::COpenGLTexture(const core::dimension2d<s32>& size,
#ifdef GL_EXT_framebuffer_object
// generate frame buffer
Driver->extGlGenFramebuffersEXT(1, &ColorFrameBuffer);
Driver->extGlBindFramebufferEXT(GL_FRAMEBUFFER_EXT, ColorFrameBuffer);
Driver->extGlGenFramebuffers(1, &ColorFrameBuffer);
Driver->extGlBindFramebuffer(GL_FRAMEBUFFER_EXT, ColorFrameBuffer);
// attach color texture to frame buffer
Driver->extGlFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER_EXT,
GL_COLOR_ATTACHMENT0_EXT,
GL_TEXTURE_2D,
TextureName,
0);
// attach depth texture to depth buffer
Driver->extGlFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER_EXT,
GL_DEPTH_ATTACHMENT_EXT,
GL_TEXTURE_2D,
DepthRenderBuffer,
0);
// attach stencil texture to stencil buffer
Driver->extGlFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
Driver->extGlFramebufferTexture2D(GL_FRAMEBUFFER_EXT,
GL_STENCIL_ATTACHMENT_EXT,
GL_TEXTURE_2D,
StencilRenderBuffer,
......@@ -136,7 +136,7 @@ COpenGLTexture::COpenGLTexture(const core::dimension2d<s32>& size,
printf("FBO=%d, Color=%d, Depth=%d, Stencil=%d\n",
ColorFrameBuffer, TextureName, DepthRenderBuffer, StencilRenderBuffer);
if (ColorFrameBuffer)
Driver->extGlDeleteFramebuffersEXT(1, &ColorFrameBuffer);
Driver->extGlDeleteFramebuffers(1, &ColorFrameBuffer);
if (DepthRenderBuffer)
glDeleteTextures(1, &DepthRenderBuffer);
if (StencilRenderBuffer && StencilRenderBuffer != DepthRenderBuffer)
......@@ -145,7 +145,7 @@ COpenGLTexture::COpenGLTexture(const core::dimension2d<s32>& size,
DepthRenderBuffer = 0;
StencilRenderBuffer = 0;
}
Driver->extGlBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
Driver->extGlBindFramebuffer(GL_FRAMEBUFFER_EXT, 0);
#endif
}
......@@ -153,7 +153,7 @@ COpenGLTexture::COpenGLTexture(const core::dimension2d<s32>& size,
COpenGLTexture::~COpenGLTexture()
{
if (ColorFrameBuffer)
Driver->extGlDeleteFramebuffersEXT(1, &ColorFrameBuffer);
Driver->extGlDeleteFramebuffers(1, &ColorFrameBuffer);
if (DepthRenderBuffer)
glDeleteTextures(1, &DepthRenderBuffer);
if (StencilRenderBuffer && StencilRenderBuffer != DepthRenderBuffer)
......@@ -459,7 +459,7 @@ void COpenGLTexture::bindFrameBufferObject()
{
#ifdef GL_EXT_framebuffer_object
if (ColorFrameBuffer != 0)
Driver->extGlBindFramebufferEXT(GL_FRAMEBUFFER_EXT, ColorFrameBuffer);
Driver->extGlBindFramebuffer(GL_FRAMEBUFFER_EXT, ColorFrameBuffer);
#endif
}
......@@ -468,14 +468,14 @@ void COpenGLTexture::unbindFrameBufferObject()
{
#ifdef GL_EXT_framebuffer_object
if (ColorFrameBuffer != 0)
Driver->extGlBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
Driver->extGlBindFramebuffer(GL_FRAMEBUFFER_EXT, 0);
#endif
}
bool checkFBOStatus(COpenGLDriver* Driver)
{
#ifdef GL_EXT_framebuffer_object
GLenum status = Driver->extGlCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
GLenum status = Driver->extGlCheckFramebufferStatus(GL_FRAMEBUFFER_EXT);
switch (status)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment