Fix some error paths

This commit is contained in:
Alan Hourihane 2007-09-10 23:59:02 +01:00
parent da2c4faa9f
commit 6728f372d6
2 changed files with 35 additions and 2 deletions

View file

@ -154,6 +154,7 @@ glucoseCreateScreenResources(ScreenPtr pScreen)
__glXleaveServer();
err = pScreenPriv->rootContext->makeCurrent(pScreenPriv->rootContext);
if (!err) {
__glXenterServer();
xf86DrvMsg(pScreen->myNum, X_WARNING,
"Glucose makeCurrent failed, err is %d\n",err);
pScreenPriv->rootContext->destroy(pScreenPriv->rootContext);
@ -171,6 +172,7 @@ glucoseCreateScreenResources(ScreenPtr pScreen)
pPixmap->drawable.height);
if (!drawable) {
__glXenterServer();
xf86DrvMsg(pScreen->myNum, X_ERROR,
"Glucose could not create glitz drawable, not initializing.\n");
@ -178,7 +180,6 @@ glucoseCreateScreenResources(ScreenPtr pScreen)
pScreenPriv->rootContext = NULL;
pScreenPriv->rootDrawable->destroy(pScreenPriv->rootDrawable);
pScreenPriv->rootDrawable = NULL;
__glXenterServer();
return FALSE;
}
@ -189,7 +190,17 @@ glucoseCreateScreenResources(ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_INFO,
"Glucose reports GLitz features as 0x%lx\n",xglScreenPriv->features);
glucoseFinishScreenInit(pScreen);
if (!glucoseFinishScreenInit(pScreen)) {
__glXenterServer();
xf86DrvMsg(pScreen->myNum, X_ERROR,
"Glucose could not initialize.\n");
pScreenPriv->rootContext->destroy(pScreenPriv->rootContext);
pScreenPriv->rootContext = NULL;
pScreenPriv->rootDrawable->destroy(pScreenPriv->rootDrawable);
pScreenPriv->rootDrawable = NULL;
return FALSE;
}
__glXenterServer();
/* now fixup root pixmap */

View file

@ -489,48 +489,56 @@ static void
glucoseGenPrograms( GLsizei n, GLuint *ids )
{
CALL_GenProgramsNV( GET_DISPATCH(), (n, ids) );
glucoseFailure("GenProgramsNV");
}
static void
glucoseDeletePrograms( GLsizei n, const GLuint *ids )
{
CALL_DeleteProgramsNV( GET_DISPATCH(), (n, ids) );
glucoseFailure("DeleteProgramsNV");
}
static void
glucoseProgramString( GLenum target, GLenum format, GLsizei len, const GLubyte *program )
{
CALL_ProgramStringARB( GET_DISPATCH(), (target, format, len, program) );
glucoseFailure("ProgramStringARB");
}
static void
glucoseBindProgram( GLenum target, GLuint id )
{
CALL_BindProgramNV( GET_DISPATCH(), (target, id) );
glucoseFailure("BindProgramNV");
}
static void
glucoseProgramLocalParameter4fv( GLenum target, GLuint id, const GLfloat *params )
{
CALL_ProgramLocalParameter4fvARB( GET_DISPATCH(), (target, id, params) );
glucoseFailure("BindProgramNV");
}
static void
glucoseGetProgramiv( GLuint program, GLenum pname, GLint *params )
{
CALL_GetProgramiv( GET_DISPATCH(), (program, pname, params) );
glucoseFailure("GetProgramiv");
}
static void
glucoseGenBuffers( GLsizei n, GLuint *buffers )
{
CALL_GenBuffersARB( GET_DISPATCH(), (n, buffers) );
glucoseFailure("GenBuffersARB");
}
static void
glucoseDeleteBuffers( GLsizei n, const GLuint *buffers )
{
CALL_DeleteBuffersARB( GET_DISPATCH(), (n, buffers) );
glucoseFailure("DeleteBuffersARB");
}
static void
@ -544,18 +552,21 @@ static void
glucoseBufferData( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
{
CALL_BufferDataARB( GET_DISPATCH(), (target, size, data, usage) );
glucoseFailure("BufferDataARB");
}
static void
glucoseBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data )
{
CALL_BufferSubDataARB( GET_DISPATCH(), (target, offset, size, data) );
glucoseFailure("BufferSubDataARB");
}
static void
glucoseGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
{
CALL_GetBufferSubDataARB( GET_DISPATCH(), (target, offset, size, data) );
glucoseFailure("GetBufferSubDataARB");
}
static void
@ -576,66 +587,77 @@ static void
glucoseGenFramebuffers(GLsizei n, GLuint *framebuffers)
{
CALL_GenFramebuffersEXT( GET_DISPATCH(), (n, framebuffers) );
glucoseFailure("GenFramebuffersEXT");
}
static void
glucoseDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
{
CALL_DeleteFramebuffersEXT( GET_DISPATCH(), (n, framebuffers) );
glucoseFailure("DeleteFramebuffersEXT");
}
static void
glucoseBindFramebuffer(GLenum target, GLuint framebuffer)
{
CALL_BindFramebufferEXT( GET_DISPATCH(), (target, framebuffer) );
glucoseFailure("BindFramebufferEXT");
}
static void
glucoseFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
CALL_FramebufferRenderbufferEXT( GET_DISPATCH(), (target, attachment, renderbuffertarget, renderbuffer) );
glucoseFailure("FramebufferRenderbufferEXT");
}
static void
glucoseFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
CALL_FramebufferTexture2DEXT( GET_DISPATCH(), (target, attachment, textarget, texture, level) );
glucoseFailure("FramebufferTexture2DEXT");
}
static void
glucoseCheckFramebufferStatus(GLenum target)
{
CALL_CheckFramebufferStatusEXT( GET_DISPATCH(), (target) );
glucoseFailure("CheckFramebufferStatusEXT");
}
static void
glucoseGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
{
CALL_GenRenderbuffersEXT( GET_DISPATCH(), (n, renderbuffers) );
glucoseFailure("GenRenderbuffersEXT");
}
static void
glucoseDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
{
CALL_DeleteRenderbuffersEXT( GET_DISPATCH(), (n, renderbuffers) );
glucoseFailure("DeleteRenderbuffersEXT");
}
static void
glucoseBindRenderbuffer(GLenum target, GLuint renderbuffer)
{
CALL_BindRenderbufferEXT( GET_DISPATCH(), (target, renderbuffer) );
glucoseFailure("BindRenderbufferEXT");
}
static void
glucoseRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
{
CALL_RenderbufferStorageEXT( GET_DISPATCH(), (target, internalformat, width, height) );
glucoseFailure("RenderbufferStorageEXT");
}
static void
glucoseGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
{
CALL_GetRenderbufferParameterivEXT( GET_DISPATCH(), (target, pname, params) );
glucoseFailure("GetRenderbufferParameterivEXT");
}
glitz_gl_proc_address_list_t _glitz_glucose_gl_proc_address = {