Reset openGL state to its defaults.
88 _gl.glBindBuffer(GL_ARRAY_BUFFER, 0);
89 _gl.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
91 if (QOpenGLContext::currentContext()->isOpenGLES() ||
92 (_gl.openGLFeatures() & QOpenGLFunctions::FixedFunctionPipeline)) {
94 _gl.glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxAttribs);
96 for (
int i = 0; i < maxAttribs; ++i) {
97 _gl.glVertexAttribPointer(i, 4, GL_FLOAT, GL_FALSE, 0, 0);
98 _gl.glDisableVertexAttribArray(i);
101 _gl.glActiveTexture(GL_TEXTURE0);
102 _gl.glBindTexture(GL_TEXTURE_2D, 0);
103 _gl.glDisable(GL_DEPTH_TEST);
104 _gl.glDisable(GL_STENCIL_TEST);
105 _gl.glDisable(GL_SCISSOR_TEST);
106 _gl.glDisable(GL_CULL_FACE);
107 _gl.glColorMask(
true,
true,
true,
true);
108 _gl.glClearColor(0, 0, 0, 1);
110 _gl.glDepthMask(
true);
111 _gl.glDepthFunc(GL_LESS);
112 _gl.glClearDepthf(1);
114 _gl.glStencilMask(0xff);
115 _gl.glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
116 _gl.glStencilFunc(GL_ALWAYS, 0, 0xff);
118 _gl.glEnable(GL_DEPTH_TEST);
119 _gl.glDepthFunc(GL_LEQUAL);
120 _gl.glEnable(GL_BLEND);
121 _gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
122 _gl.glEnable(GL_LINE_SMOOTH);
123 _gl.glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
124 _gl.glEnable(GL_POINT_SMOOTH);
125 _gl.glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
126 _gl.glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
127 _gl.glEnable(GL_NORMALIZE);
130 _gl.glPolygonOffset(1, 1);
131 QOpenGLFramebufferObject::bindDefault();
void withCurrentContext(ContextFunctor f)
Do OpenGL operations with current context, if it exists.
Definition: ContextSwitch.cpp:45