44 QOpenGLContext *ctx = QOpenGLContext::currentContext();
48 QOpenGLFunctions *gl = ctx->functions();
50 gl->glBindBuffer(GL_ARRAY_BUFFER, 0);
51 gl->glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
53 QOpenGLVertexArrayObjectHelper *vaoHelper = QOpenGLVertexArrayObjectHelper::vertexArrayObjectHelperForContext(ctx);
54 if (vaoHelper->isValid())
55 vaoHelper->glBindVertexArray(0);
57 if (ctx->isOpenGLES() || (gl->openGLFeatures() & QOpenGLFunctions::FixedFunctionPipeline)) {
59 gl->glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxAttribs);
60 for (
int i=0; i<maxAttribs; ++i) {
61 gl->glVertexAttribPointer(i, 4, GL_FLOAT, GL_FALSE, 0,
nullptr);
62 gl->glDisableVertexAttribArray(i);
66 gl->glActiveTexture(GL_TEXTURE0);
67 gl->glBindTexture(GL_TEXTURE_2D, 0);
69 gl->glDisable(GL_DEPTH_TEST);
70 gl->glDisable(GL_STENCIL_TEST);
71 gl->glDisable(GL_SCISSOR_TEST);
73 gl->glColorMask(
true,
true,
true,
true);
74 gl->glClearColor(0, 0, 0, 0);
76 gl->glDepthMask(
true);
77 gl->glDepthFunc(GL_LESS);
80 gl->glStencilMask(0xff);
81 gl->glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
82 gl->glStencilFunc(GL_ALWAYS, 0, 0xff);
84 gl->glDisable(GL_BLEND);
85 gl->glBlendFunc(GL_ONE, GL_ZERO);
89 QOpenGLFramebufferObject::bindDefault();