void WebGLContext::DrawArrays(GLenum mode, GLint first, GLsizei vertCount) { const char funcName[] = "drawArrays"; if (IsContextLost()) return; MakeContextCurrent(); bool error = false; ScopedResolveTexturesForDraw scopedResolve(this, funcName, &error); if (error) return; const GLsizei instanceCount = 1; if (!DrawArrays_check(funcName, mode, first, vertCount, instanceCount)) return; const ScopedDrawHelper scopedHelper(this, funcName, first, vertCount, instanceCount, &error); if (error) return; const ScopedDrawWithTransformFeedback scopedTF(this, funcName, mode, vertCount, instanceCount, &error); if (error) return; { ScopedDrawCallWrapper wrapper(*this); gl->fDrawArrays(mode, first, vertCount); } Draw_cleanup(funcName); scopedTF.Advance(); }
void WebGLContext::DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount) { const char funcName[] = "drawArraysInstanced"; if (IsContextLost()) return; if (!ValidateDrawModeEnum(mode, funcName)) return; MakeContextCurrent(); bool error; ScopedResolveTexturesForDraw scopedResolve(this, funcName, &error); if (error) return; if (!DrawArrays_check(first, count, primcount, funcName)) return; if (!DrawInstanced_check(funcName)) return; RunContextLossTimer(); { ScopedMaskWorkaround autoMask(*this); gl->fDrawArraysInstanced(mode, first, count, primcount); } Draw_cleanup(funcName); }