don't protect glReadBuffer and glDrawBuffer; they might get reset internally by slightly buggy drivers

This commit is contained in:
David Rose 2004-02-21 01:48:16 +00:00
parent f91154888e
commit 8066efb16e
3 changed files with 18 additions and 83 deletions

View File

@ -129,65 +129,6 @@ call_glClearAccum(GLclampf red, GLclampf green, GLclampf blue,
}
}
////////////////////////////////////////////////////////////////////
// Function: CLP(GraphicsStateGuardian)::call_glDrawBuffer
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
INLINE void CLP(GraphicsStateGuardian)::
call_glDrawBuffer(GLenum mode) {
if (mode != _draw_buffer_mode) {
#ifdef GSG_VERBOSE
GLCAT.spam() << "glDrawBuffer(";
switch (mode) {
case GL_FRONT:
GLCAT.spam(false) << "GL_FRONT)";
break;
case GL_BACK:
GLCAT.spam(false) << "GL_BACK)";
break;
case GL_RIGHT:
GLCAT.spam(false) << "GL_RIGHT)";
break;
case GL_LEFT:
GLCAT.spam(false) << "GL_LEFT)";
break;
case GL_FRONT_RIGHT:
GLCAT.spam(false) << "GL_FRONT_RIGHT)";
break;
case GL_FRONT_LEFT:
GLCAT.spam(false) << "GL_FRONT_LEFT)";
break;
case GL_BACK_RIGHT:
GLCAT.spam(false) << "GL_BACK_RIGHT)";
break;
case GL_BACK_LEFT:
GLCAT.spam(false) << "GL_BACK_LEFT)";
break;
case GL_FRONT_AND_BACK:
GLCAT.spam(false) << "GL_FRONT_AND_BACK)";
break;
}
GLCAT.spam(false) << endl;
#endif
GLP(DrawBuffer)(mode);
_draw_buffer_mode = mode;
}
}
////////////////////////////////////////////////////////////////////
// Function: CLP(GraphicsStateGuardian)::call_glReadBuffer
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
INLINE void CLP(GraphicsStateGuardian)::
call_glReadBuffer(GLenum mode) {
if (mode != _read_buffer_mode) {
GLP(ReadBuffer)(mode);
_read_buffer_mode = mode;
}
}
////////////////////////////////////////////////////////////////////
// Function: CLP(GraphicsStateGuardian)::call_glShadeModel

View File

@ -309,8 +309,6 @@ reset() {
_clear_accum_alpha = -1.0f;
// Set up the specific state values to GL's known initial values.
_draw_buffer_mode = (has_back) ? GL_BACK : GL_FRONT;
_read_buffer_mode = (has_back) ? GL_BACK : GL_FRONT;
_shade_model_mode = GL_SMOOTH;
GLP(FrontFace)(GL_CCW);
@ -2755,39 +2753,39 @@ void CLP(GraphicsStateGuardian)::
set_draw_buffer(const RenderBuffer &rb) {
switch (rb._buffer_type & RenderBuffer::T_color) {
case RenderBuffer::T_front:
call_glDrawBuffer(GL_FRONT);
GLP(DrawBuffer)(GL_FRONT);
break;
case RenderBuffer::T_back:
call_glDrawBuffer(GL_BACK);
GLP(DrawBuffer)(GL_BACK);
break;
case RenderBuffer::T_right:
call_glDrawBuffer(GL_RIGHT);
GLP(DrawBuffer)(GL_RIGHT);
break;
case RenderBuffer::T_left:
call_glDrawBuffer(GL_LEFT);
GLP(DrawBuffer)(GL_LEFT);
break;
case RenderBuffer::T_front_right:
call_glDrawBuffer(GL_FRONT_RIGHT);
GLP(DrawBuffer)(GL_FRONT_RIGHT);
break;
case RenderBuffer::T_front_left:
call_glDrawBuffer(GL_FRONT_LEFT);
GLP(DrawBuffer)(GL_FRONT_LEFT);
break;
case RenderBuffer::T_back_right:
call_glDrawBuffer(GL_BACK_RIGHT);
GLP(DrawBuffer)(GL_BACK_RIGHT);
break;
case RenderBuffer::T_back_left:
call_glDrawBuffer(GL_BACK_LEFT);
GLP(DrawBuffer)(GL_BACK_LEFT);
break;
default:
call_glDrawBuffer(GL_FRONT_AND_BACK);
GLP(DrawBuffer)(GL_FRONT_AND_BACK);
}
report_my_gl_errors();
}
@ -2804,39 +2802,39 @@ void CLP(GraphicsStateGuardian)::
set_read_buffer(const RenderBuffer &rb) {
switch (rb._buffer_type & RenderBuffer::T_color) {
case RenderBuffer::T_front:
call_glReadBuffer(GL_FRONT);
GLP(ReadBuffer)(GL_FRONT);
break;
case RenderBuffer::T_back:
call_glReadBuffer(GL_BACK);
GLP(ReadBuffer)(GL_BACK);
break;
case RenderBuffer::T_right:
call_glReadBuffer(GL_RIGHT);
GLP(ReadBuffer)(GL_RIGHT);
break;
case RenderBuffer::T_left:
call_glReadBuffer(GL_LEFT);
GLP(ReadBuffer)(GL_LEFT);
break;
case RenderBuffer::T_front_right:
call_glReadBuffer(GL_FRONT_RIGHT);
GLP(ReadBuffer)(GL_FRONT_RIGHT);
break;
case RenderBuffer::T_front_left:
call_glReadBuffer(GL_FRONT_LEFT);
GLP(ReadBuffer)(GL_FRONT_LEFT);
break;
case RenderBuffer::T_back_right:
call_glReadBuffer(GL_BACK_RIGHT);
GLP(ReadBuffer)(GL_BACK_RIGHT);
break;
case RenderBuffer::T_back_left:
call_glReadBuffer(GL_BACK_LEFT);
GLP(ReadBuffer)(GL_BACK_LEFT);
break;
default:
call_glReadBuffer(GL_FRONT_AND_BACK);
GLP(ReadBuffer)(GL_FRONT_AND_BACK);
}
report_my_gl_errors();
}

View File

@ -166,8 +166,6 @@ protected:
INLINE void call_glClearStencil(GLint s);
INLINE void call_glClearAccum(GLclampf red, GLclampf green, GLclampf blue,
GLclampf alpha);
INLINE void call_glDrawBuffer(GLenum mode);
INLINE void call_glReadBuffer(GLenum mode);
INLINE void call_glShadeModel(GLenum mode);
INLINE void call_glBlendFunc(GLenum sfunc, GLenum dfunc);
INLINE void call_glCullFace(GLenum mode);
@ -246,8 +244,6 @@ protected:
GLint _clear_stencil;
GLclampf _clear_accum_red, _clear_accum_green, _clear_accum_blue,
_clear_accum_alpha;
GLenum _draw_buffer_mode;
GLenum _read_buffer_mode;
GLenum _shade_model_mode;
GLint _scissor_x;
GLint _scissor_y;