mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
don't protect glReadBuffer and glDrawBuffer; they might get reset internally by slightly buggy drivers
This commit is contained in:
parent
f91154888e
commit
8066efb16e
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user