mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
glgsg: restore more OpenGL state after draw callback
This commit is contained in:
parent
53cec96c07
commit
ec4b0825e9
@ -10661,6 +10661,71 @@ reissue_transforms() {
|
|||||||
_current_vertex_format.clear();
|
_current_vertex_format.clear();
|
||||||
memset(_vertex_attrib_columns, 0, sizeof(const GeomVertexColumn *) * 32);
|
memset(_vertex_attrib_columns, 0, sizeof(const GeomVertexColumn *) * 32);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Since this is called by clear_state_and_transform(), we also should reset
|
||||||
|
// the states that won't automatically be respecified when clearing the
|
||||||
|
// state mask.
|
||||||
|
_active_color_write_mask = ColorWriteAttrib::C_all;
|
||||||
|
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||||
|
|
||||||
|
if (_dithering_enabled) {
|
||||||
|
glEnable(GL_DITHER);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_DITHER);
|
||||||
|
}
|
||||||
|
if (_depth_test_enabled) {
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_DEPTH_TEST);
|
||||||
|
}
|
||||||
|
if (_stencil_test_enabled) {
|
||||||
|
glEnable(GL_STENCIL_TEST);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_STENCIL_TEST);
|
||||||
|
}
|
||||||
|
if (_blend_enabled) {
|
||||||
|
glEnable(GL_BLEND);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_BLEND);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef OPENGLES_2
|
||||||
|
if (_multisample_mode != 0) {
|
||||||
|
glEnable(GL_MULTISAMPLE);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_MULTISAMPLE);
|
||||||
|
glDisable(GL_SAMPLE_ALPHA_TO_ONE);
|
||||||
|
glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE);
|
||||||
|
}
|
||||||
|
if (_line_smooth_enabled) {
|
||||||
|
glEnable(GL_LINE_SMOOTH);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_LINE_SMOOTH);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENGLES
|
||||||
|
if (_polygon_smooth_enabled) {
|
||||||
|
glEnable(GL_POLYGON_SMOOTH);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_POLYGON_SMOOTH);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SUPPORT_FIXED_FUNCTION
|
||||||
|
if (has_fixed_function_pipeline()) {
|
||||||
|
if (_alpha_test_enabled) {
|
||||||
|
glEnable(GL_ALPHA_TEST);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_ALPHA_TEST);
|
||||||
|
}
|
||||||
|
if (_point_smooth_enabled) {
|
||||||
|
glEnable(GL_POINT_SMOOTH);
|
||||||
|
} else {
|
||||||
|
glDisable(GL_POINT_SMOOTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SUPPORT_FIXED_FUNCTION
|
#ifdef SUPPORT_FIXED_FUNCTION
|
||||||
|
Loading…
x
Reference in New Issue
Block a user