Changed: More aliases for OpenGL ES functions and defines to simplify code
--HG-- branch : develop
This commit is contained in:
parent
4fc639671c
commit
0f22ea7777
6 changed files with 54 additions and 139 deletions
|
@ -435,11 +435,7 @@ bool CDriverGL::setupDisplay()
|
||||||
glViewport(0,0,_CurrentMode.Width,_CurrentMode.Height);
|
glViewport(0,0,_CurrentMode.Width,_CurrentMode.Height);
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glOrthof(0.f,_CurrentMode.Width,_CurrentMode.Height,0.f,-1.0f,1.0f);
|
|
||||||
#else
|
|
||||||
glOrtho(0,_CurrentMode.Width,_CurrentMode.Height,0,-1.0f,1.0f);
|
glOrtho(0,_CurrentMode.Width,_CurrentMode.Height,0,-1.0f,1.0f);
|
||||||
#endif
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
#ifndef USE_OPENGLES
|
#ifndef USE_OPENGLES
|
||||||
|
@ -725,11 +721,7 @@ bool CDriverGL::activeFrameBufferObject(ITexture * tex)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nglBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
|
|
||||||
#else
|
|
||||||
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||||
#endif
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,24 @@ extern "C" {
|
||||||
#define GL_ADD_SIGNED_EXT GL_ADD_SIGNED
|
#define GL_ADD_SIGNED_EXT GL_ADD_SIGNED
|
||||||
#define GL_INTERPOLATE_EXT GL_INTERPOLATE
|
#define GL_INTERPOLATE_EXT GL_INTERPOLATE
|
||||||
#define GL_BUMP_ENVMAP_ATI GL_INTERPOLATE
|
#define GL_BUMP_ENVMAP_ATI GL_INTERPOLATE
|
||||||
|
#define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER_OES
|
||||||
|
#define GL_RENDERBUFFER_EXT GL_RENDERBUFFER_OES
|
||||||
|
#define GL_DEPTH24_STENCIL8_EXT GL_DEPTH24_STENCIL8_OES
|
||||||
|
#define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES
|
||||||
|
#define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0_OES
|
||||||
|
#define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT_OES
|
||||||
|
#define GL_STENCIL_ATTACHMENT_EXT GL_STENCIL_ATTACHMENT_OES
|
||||||
|
#define GL_ARRAY_BUFFER_ARB GL_ARRAY_BUFFER
|
||||||
|
#define GL_TEXTURE0_ARB GL_TEXTURE0
|
||||||
|
|
||||||
|
#define GL_ALPHA8 GL_ALPHA
|
||||||
|
#define GL_LUMINANCE8_ALPHA8 GL_LUMINANCE_ALPHA
|
||||||
|
#define GL_LUMINANCE8 GL_LUMINANCE
|
||||||
|
#define GL_RGBA8 GL_RGBA
|
||||||
|
#define GL_RGB8 GL_RGB
|
||||||
|
|
||||||
|
#define GL_STATIC_DRAW_ARB GL_STATIC_DRAW
|
||||||
|
#define GL_DYNAMIC_DRAW_ARB GL_DYNAMIC_DRAW
|
||||||
|
|
||||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
|
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
|
||||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
|
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
|
||||||
|
@ -48,6 +66,31 @@ extern "C" {
|
||||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
|
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
|
||||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
|
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
|
||||||
|
|
||||||
|
#define nglGenRenderbuffersEXT nglGenRenderbuffersOES
|
||||||
|
#define nglBindRenderbufferEXT nglBindRenderbufferOES
|
||||||
|
#define nglDeleteRenderbuffersEXT nglDeleteRenderbuffersOES
|
||||||
|
#define nglRenderbufferStorageEXT nglRenderbufferStorageOES
|
||||||
|
#define nglGenFramebuffersEXT nglGenFramebuffersOES
|
||||||
|
#define nglBindFramebufferEXT nglBindFramebufferOES
|
||||||
|
#define nglFramebufferTexture2DEXT nglFramebufferTexture2DOES
|
||||||
|
#define nglFramebufferRenderbufferEXT nglFramebufferRenderbufferOES
|
||||||
|
#define nglCheckFramebufferStatusEXT nglCheckFramebufferStatusOES
|
||||||
|
#define nglDeleteBuffersARB glDeleteBuffers
|
||||||
|
#define nglIsBufferARB glIsBuffer
|
||||||
|
#define nglDeleteRenderbuffersEXT nglDeleteRenderbuffersOES
|
||||||
|
#define nglBindFramebufferEXT nglBindFramebufferOES
|
||||||
|
#define nglDeleteFramebuffersEXT nglDeleteFramebuffersOES
|
||||||
|
#define nglUnmapBufferARB nglUnmapBufferOES
|
||||||
|
#define nglActiveTextureARB glActiveTexture
|
||||||
|
#define nglClientActiveTextureARB glClientActiveTexture
|
||||||
|
#define nglBindBufferARB glBindBuffer
|
||||||
|
#define nglGenBuffersARB glGenBuffers
|
||||||
|
#define nglBufferDataARB glBufferData
|
||||||
|
|
||||||
|
#define glFrustum glFrustumf
|
||||||
|
#define glOrtho glOrthof
|
||||||
|
#define glDepthRange glDepthRangef
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if defined(NL_OS_MAC)
|
#if defined(NL_OS_MAC)
|
||||||
|
|
|
@ -37,19 +37,11 @@ void CDriverGL::setFrustum(float left, float right, float bottom, float top, flo
|
||||||
|
|
||||||
if (perspective)
|
if (perspective)
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glFrustumf(left,right,bottom,top,znear,zfar);
|
|
||||||
#else
|
|
||||||
glFrustum(left,right,bottom,top,znear,zfar);
|
glFrustum(left,right,bottom,top,znear,zfar);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glOrthof(left,right,bottom,top,znear,zfar);
|
|
||||||
#else
|
|
||||||
glOrtho(left,right,bottom,top,znear,zfar);
|
glOrtho(left,right,bottom,top,znear,zfar);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_ProjMatDirty = true;
|
_ProjMatDirty = true;
|
||||||
|
|
|
@ -155,11 +155,7 @@ void CDriverGLStates::forceDefaults(uint nbStages)
|
||||||
for(stage=0;stage<nbStages; stage++)
|
for(stage=0;stage<nbStages; stage++)
|
||||||
{
|
{
|
||||||
// disable texturing.
|
// disable texturing.
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glActiveTexture(GL_TEXTURE0+stage);
|
|
||||||
#else
|
|
||||||
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
||||||
#endif
|
|
||||||
|
|
||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
@ -188,13 +184,8 @@ void CDriverGLStates::forceDefaults(uint nbStages)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ActiveTexture current texture to 0.
|
// ActiveTexture current texture to 0.
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glActiveTexture(GL_TEXTURE0);
|
|
||||||
glClientActiveTexture(GL_TEXTURE0);
|
|
||||||
#else
|
|
||||||
nglActiveTextureARB(GL_TEXTURE0_ARB);
|
nglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||||
nglClientActiveTextureARB(GL_TEXTURE0_ARB);
|
nglClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||||
#endif
|
|
||||||
|
|
||||||
_CurrentActiveTextureARB= 0;
|
_CurrentActiveTextureARB= 0;
|
||||||
_CurrentClientActiveTextureARB= 0;
|
_CurrentClientActiveTextureARB= 0;
|
||||||
|
@ -622,11 +613,7 @@ void CDriverGLStates::updateDepthRange()
|
||||||
|
|
||||||
float delta = _ZBias * (_DepthRangeFar - _DepthRangeNear);
|
float delta = _ZBias * (_DepthRangeFar - _DepthRangeNear);
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glDepthRangef(delta + _DepthRangeNear, delta + _DepthRangeFar);
|
|
||||||
#else
|
|
||||||
glDepthRange(delta + _DepthRangeNear, delta + _DepthRangeFar);
|
glDepthRange(delta + _DepthRangeNear, delta + _DepthRangeFar);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -835,11 +822,7 @@ void CDriverGLStates::activeTextureARB(uint stage)
|
||||||
|
|
||||||
if( _CurrentActiveTextureARB != stage )
|
if( _CurrentActiveTextureARB != stage )
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glActiveTexture(GL_TEXTURE0+stage);
|
|
||||||
#else
|
|
||||||
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
||||||
#endif
|
|
||||||
|
|
||||||
_CurrentActiveTextureARB= stage;
|
_CurrentActiveTextureARB= stage;
|
||||||
}
|
}
|
||||||
|
@ -850,11 +833,7 @@ void CDriverGLStates::forceActiveTextureARB(uint stage)
|
||||||
{
|
{
|
||||||
H_AUTO_OGL(CDriverGLStates_forceActiveTextureARB);
|
H_AUTO_OGL(CDriverGLStates_forceActiveTextureARB);
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glActiveTexture(GL_TEXTURE0+stage);
|
|
||||||
#else
|
|
||||||
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
nglActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
||||||
#endif
|
|
||||||
|
|
||||||
_CurrentActiveTextureARB= stage;
|
_CurrentActiveTextureARB= stage;
|
||||||
}
|
}
|
||||||
|
@ -958,11 +937,7 @@ void CDriverGLStates::clientActiveTextureARB(uint stage)
|
||||||
|
|
||||||
if( _CurrentClientActiveTextureARB != stage )
|
if( _CurrentClientActiveTextureARB != stage )
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glClientActiveTexture(GL_TEXTURE0+stage);
|
|
||||||
#else
|
|
||||||
nglClientActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
nglClientActiveTextureARB(GL_TEXTURE0_ARB+stage);
|
||||||
#endif
|
|
||||||
_CurrentClientActiveTextureARB= stage;
|
_CurrentClientActiveTextureARB= stage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1121,11 +1096,7 @@ void CDriverGLStates::forceBindARBVertexBuffer(uint objectID)
|
||||||
{
|
{
|
||||||
H_AUTO_OGL(CDriverGLStates_forceBindARBVertexBuffer)
|
H_AUTO_OGL(CDriverGLStates_forceBindARBVertexBuffer)
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, objectID);
|
|
||||||
#else
|
|
||||||
nglBindBufferARB(GL_ARRAY_BUFFER_ARB, objectID);
|
nglBindBufferARB(GL_ARRAY_BUFFER_ARB, objectID);
|
||||||
#endif
|
|
||||||
|
|
||||||
_CurrARBVertexBuffer = objectID;
|
_CurrARBVertexBuffer = objectID;
|
||||||
}
|
}
|
||||||
|
|
|
@ -256,12 +256,8 @@ bool CTextureDrvInfosGL::initFrameBufferObject(ITexture * tex)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// check status
|
// check status
|
||||||
GLenum status;
|
GLenum status = (GLenum) nglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
status = (GLenum) nglCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES);
|
|
||||||
#else
|
|
||||||
status = (GLenum) nglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
|
|
||||||
#endif
|
|
||||||
switch(status) {
|
switch(status) {
|
||||||
#ifdef GL_FRAMEBUFFER_COMPLETE_EXT
|
#ifdef GL_FRAMEBUFFER_COMPLETE_EXT
|
||||||
case GL_FRAMEBUFFER_COMPLETE_EXT:
|
case GL_FRAMEBUFFER_COMPLETE_EXT:
|
||||||
|
@ -361,11 +357,8 @@ bool CTextureDrvInfosGL::initFrameBufferObject(ITexture * tex)
|
||||||
// clean up resources if allocation failed
|
// clean up resources if allocation failed
|
||||||
if (!InitFBO)
|
if (!InitFBO)
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nglDeleteFramebuffersOES(1, &FBOId);
|
|
||||||
#else
|
|
||||||
nglDeleteFramebuffersEXT(1, &FBOId);
|
nglDeleteFramebuffersEXT(1, &FBOId);
|
||||||
#endif
|
|
||||||
if (AttachDepthStencil)
|
if (AttachDepthStencil)
|
||||||
{
|
{
|
||||||
DepthStencilFBO = NULL;
|
DepthStencilFBO = NULL;
|
||||||
|
@ -385,22 +378,14 @@ bool CTextureDrvInfosGL::activeFrameBufferObject(ITexture * tex)
|
||||||
if(initFrameBufferObject(tex))
|
if(initFrameBufferObject(tex))
|
||||||
{
|
{
|
||||||
glBindTexture(TextureMode, 0);
|
glBindTexture(TextureMode, 0);
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nglBindFramebufferOES(GL_FRAMEBUFFER_OES, FBOId);
|
|
||||||
#else
|
|
||||||
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBOId);
|
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBOId);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nglBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
|
|
||||||
#else
|
|
||||||
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
nglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -508,11 +493,7 @@ GLint CDriverGL::getGlTextureFormat(ITexture& tex, bool &compressed)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
return GL_RGBA;
|
|
||||||
#else
|
|
||||||
return GL_RGBA8;
|
return GL_RGBA8;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -521,11 +502,7 @@ static GLint getGlSrcTextureFormat(ITexture &tex, GLint glfmt)
|
||||||
H_AUTO_OGL(getGlSrcTextureFormat)
|
H_AUTO_OGL(getGlSrcTextureFormat)
|
||||||
|
|
||||||
// Is destination format is alpha or lumiance ?
|
// Is destination format is alpha or lumiance ?
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
if ((glfmt==GL_ALPHA)||(glfmt==GL_LUMINANCE_ALPHA)||(glfmt==GL_LUMINANCE))
|
|
||||||
#else
|
|
||||||
if ((glfmt==GL_ALPHA8)||(glfmt==GL_LUMINANCE8_ALPHA8)||(glfmt==GL_LUMINANCE8))
|
if ((glfmt==GL_ALPHA8)||(glfmt==GL_LUMINANCE8_ALPHA8)||(glfmt==GL_LUMINANCE8))
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
switch(tex.getPixelFormat())
|
switch(tex.getPixelFormat())
|
||||||
{
|
{
|
||||||
|
@ -578,19 +555,9 @@ uint CDriverGL::computeMipMapMemoryUsage(uint w, uint h, GLint glfmt) const
|
||||||
H_AUTO_OGL(CDriverGL_computeMipMapMemoryUsage)
|
H_AUTO_OGL(CDriverGL_computeMipMapMemoryUsage)
|
||||||
switch(glfmt)
|
switch(glfmt)
|
||||||
{
|
{
|
||||||
#ifdef GL_RGBA8
|
|
||||||
case GL_RGBA8: return w*h* 4;
|
case GL_RGBA8: return w*h* 4;
|
||||||
#endif
|
|
||||||
#ifdef GL_RGBA
|
|
||||||
case GL_RGBA: return w*h* 4;
|
|
||||||
#endif
|
|
||||||
// Well this is ugly, but simple :). GeForce 888 is stored as 32 bits.
|
// Well this is ugly, but simple :). GeForce 888 is stored as 32 bits.
|
||||||
#ifdef GL_RGB8
|
|
||||||
case GL_RGB8: return w*h* 4;
|
case GL_RGB8: return w*h* 4;
|
||||||
#endif
|
|
||||||
#ifdef GL_RGB
|
|
||||||
case GL_RGB: return w*h* 4;
|
|
||||||
#endif
|
|
||||||
#ifdef GL_RGBA4
|
#ifdef GL_RGBA4
|
||||||
case GL_RGBA4: return w*h* 2;
|
case GL_RGBA4: return w*h* 2;
|
||||||
#endif
|
#endif
|
||||||
|
@ -600,24 +567,9 @@ uint CDriverGL::computeMipMapMemoryUsage(uint w, uint h, GLint glfmt) const
|
||||||
#ifdef GL_RGB5
|
#ifdef GL_RGB5
|
||||||
case GL_RGB5: return w*h* 2;
|
case GL_RGB5: return w*h* 2;
|
||||||
#endif
|
#endif
|
||||||
#ifdef GL_LUMINANCE8
|
|
||||||
case GL_LUMINANCE8: return w*h* 1;
|
case GL_LUMINANCE8: return w*h* 1;
|
||||||
#endif
|
|
||||||
#ifdef GL_LUMINANCE
|
|
||||||
case GL_LUMINANCE: return w*h* 1;
|
|
||||||
#endif
|
|
||||||
#ifdef GL_ALPHA8
|
|
||||||
case GL_ALPHA8: return w*h* 1;
|
case GL_ALPHA8: return w*h* 1;
|
||||||
#endif
|
|
||||||
#ifdef GL_ALPHA
|
|
||||||
case GL_ALPHA: return w*h* 1;
|
|
||||||
#endif
|
|
||||||
#ifdef GL_LUMINANCE8_ALPHA8
|
|
||||||
case GL_LUMINANCE8_ALPHA8: return w*h* 2;
|
case GL_LUMINANCE8_ALPHA8: return w*h* 2;
|
||||||
#endif
|
|
||||||
#ifdef GL_LUMINANCE_ALPHA
|
|
||||||
case GL_LUMINANCE_ALPHA: return w*h* 2;
|
|
||||||
#endif
|
|
||||||
#ifdef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
|
#ifdef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
|
||||||
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: return w*h /2;
|
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: return w*h /2;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1216,11 +1216,7 @@ IVertexBufferHardGL *CVertexArrayRangeARB::createVBHardGL(uint size, CVertexBuff
|
||||||
GLuint vertexBufferID;
|
GLuint vertexBufferID;
|
||||||
glGetError();
|
glGetError();
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glGenBuffers(1, &vertexBufferID);
|
|
||||||
#else
|
|
||||||
nglGenBuffersARB(1, &vertexBufferID);
|
nglGenBuffersARB(1, &vertexBufferID);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (glGetError() != GL_NO_ERROR) return NULL;
|
if (glGetError() != GL_NO_ERROR) return NULL;
|
||||||
_Driver->_DriverGLStates.forceBindARBVertexBuffer(vertexBufferID);
|
_Driver->_DriverGLStates.forceBindARBVertexBuffer(vertexBufferID);
|
||||||
|
@ -1259,11 +1255,7 @@ IVertexBufferHardGL *CVertexArrayRangeARB::createVBHardGL(uint size, CVertexBuff
|
||||||
}
|
}
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glDeleteBuffers(1, &vertexBufferID);
|
|
||||||
#else
|
|
||||||
nglDeleteBuffersARB(1, &vertexBufferID);
|
nglDeleteBuffersARB(1, &vertexBufferID);
|
||||||
#endif
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1306,13 +1298,10 @@ void CVertexArrayRangeARB::updateLostBuffers()
|
||||||
{
|
{
|
||||||
nlassert((*it)->_VertexObjectId);
|
nlassert((*it)->_VertexObjectId);
|
||||||
GLuint id = (GLuint) (*it)->_VertexObjectId;
|
GLuint id = (GLuint) (*it)->_VertexObjectId;
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nlassert(glIsBuffer(id));
|
|
||||||
glDeleteBuffers(1, &id);
|
|
||||||
#else
|
|
||||||
nlassert(nglIsBufferARB(id));
|
nlassert(nglIsBufferARB(id));
|
||||||
nglDeleteBuffersARB(1, &id);
|
nglDeleteBuffersARB(1, &id);
|
||||||
#endif
|
|
||||||
(*it)->_VertexObjectId = 0;
|
(*it)->_VertexObjectId = 0;
|
||||||
(*it)->VB->setLocation(CVertexBuffer::NotResident);
|
(*it)->VB->setLocation(CVertexBuffer::NotResident);
|
||||||
}
|
}
|
||||||
|
@ -1361,13 +1350,8 @@ CVertexBufferHardARB::~CVertexBufferHardARB()
|
||||||
if (_VertexObjectId)
|
if (_VertexObjectId)
|
||||||
{
|
{
|
||||||
GLuint id = (GLuint) _VertexObjectId;
|
GLuint id = (GLuint) _VertexObjectId;
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
nlassert(glIsBuffer(id));
|
|
||||||
glDeleteBuffers(1, &id);
|
|
||||||
#else
|
|
||||||
nlassert(nglIsBufferARB(id));
|
nlassert(nglIsBufferARB(id));
|
||||||
nglDeleteBuffersARB(1, &id);
|
nglDeleteBuffersARB(1, &id);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (_VertexArrayRange)
|
if (_VertexArrayRange)
|
||||||
{
|
{
|
||||||
|
@ -1412,12 +1396,7 @@ void *CVertexBufferHardARB::lock()
|
||||||
}
|
}
|
||||||
// recreate a vb
|
// recreate a vb
|
||||||
GLuint vertexBufferID;
|
GLuint vertexBufferID;
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glGenBuffers(1, &vertexBufferID);
|
|
||||||
#else
|
|
||||||
nglGenBuffersARB(1, &vertexBufferID);
|
nglGenBuffersARB(1, &vertexBufferID);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
{
|
{
|
||||||
|
@ -1436,35 +1415,23 @@ void *CVertexBufferHardARB::lock()
|
||||||
break;
|
break;
|
||||||
case CVertexBuffer::StaticPreferred:
|
case CVertexBuffer::StaticPreferred:
|
||||||
if (_Driver->getStaticMemoryToVRAM())
|
if (_Driver->getStaticMemoryToVRAM())
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_STATIC_DRAW);
|
|
||||||
#else
|
|
||||||
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_STATIC_DRAW_ARB);
|
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_STATIC_DRAW_ARB);
|
||||||
#endif
|
|
||||||
else
|
else
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW);
|
||||||
#else
|
|
||||||
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_DYNAMIC_DRAW_ARB);
|
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_DYNAMIC_DRAW_ARB);
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
// case CVertexBuffer::AGPPreferred:
|
// case CVertexBuffer::AGPPreferred:
|
||||||
default:
|
default:
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW);
|
|
||||||
#else
|
|
||||||
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_DYNAMIC_DRAW_ARB);
|
nglBufferDataARB(GL_ARRAY_BUFFER_ARB, size, NULL, GL_DYNAMIC_DRAW_ARB);
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
{
|
{
|
||||||
_Driver->incrementResetCounter();
|
_Driver->incrementResetCounter();
|
||||||
#ifdef USE_OPENGLES
|
|
||||||
glDeleteBuffers(1, &vertexBufferID);
|
|
||||||
#else
|
|
||||||
nglDeleteBuffersARB(1, &vertexBufferID);
|
nglDeleteBuffersARB(1, &vertexBufferID);
|
||||||
#endif
|
|
||||||
return &_DummyVB[0];;
|
return &_DummyVB[0];;
|
||||||
}
|
}
|
||||||
_VertexObjectId = vertexBufferID;
|
_VertexObjectId = vertexBufferID;
|
||||||
|
@ -1567,12 +1534,10 @@ void CVertexBufferHardARB::unlock()
|
||||||
|
|
||||||
#ifdef USE_OPENGLES
|
#ifdef USE_OPENGLES
|
||||||
if (_Driver->_Extensions.OESMapBuffer)
|
if (_Driver->_Extensions.OESMapBuffer)
|
||||||
{
|
|
||||||
unmapOk = nglUnmapBufferOES(GL_ARRAY_BUFFER);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
unmapOk = nglUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
unmapOk = nglUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef NL_DEBUG
|
#ifdef NL_DEBUG
|
||||||
_Unmapping = false;
|
_Unmapping = false;
|
||||||
|
|
Loading…
Reference in a new issue