Fixup GL instanced rendering commands

We've ended up with a flag in both GrCaps and GrGLCaps to indicate
the same instanced rendering functionality. This change removes the
GrGLCaps version of the flag and also also fixes the interface assembler
to use the proper suffix when loading the EXT version of the extension.

BUG=skia:

Review URL: https://codereview.chromium.org/1537483002
This commit is contained in:
cdalton 2015-12-17 11:11:40 -08:00 committed by Commit bot
parent 3819d2d767
commit 1250944aaa
3 changed files with 7 additions and 18 deletions

View File

@ -779,13 +779,18 @@ const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) {
GET_PROC_SUFFIX(CoverageModulation, CHROMIUM);
}
if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_draw_instanced")) {
if (version >= GR_GL_VER(3,0)) {
GET_PROC(DrawArraysInstanced);
GET_PROC(DrawElementsInstanced);
} else if (extensions.has("GL_EXT_draw_instanced")) {
GET_PROC_SUFFIX(DrawArraysInstanced, EXT);
GET_PROC_SUFFIX(DrawElementsInstanced, EXT);
}
if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_instanced_arrays")) {
if (version >= GR_GL_VER(3,0)) {
GET_PROC(VertexAttribDivisor);
} else if (extensions.has("GL_EXT_instanced_arrays")) {
GET_PROC_SUFFIX(VertexAttribDivisor, EXT);
}
if (extensions.has("GL_NV_bindless_texture")) {

View File

@ -39,7 +39,6 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions,
fImagingSupport = false;
fTwoFormatLimit = false;
fVertexArrayObjectSupport = false;
fInstancedDrawingSupport = false;
fDirectStateAccessSupport = false;
fDebugSupport = false;
fES2CompatibilitySupport = false;
@ -210,16 +209,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
ctxInfo.hasExtension("GL_OES_vertex_array_object");
}
if ((kGL_GrGLStandard == standard && version >= GR_GL_VER(3,2)) ||
(kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0))) {
fInstancedDrawingSupport = true;
} else {
fInstancedDrawingSupport = (ctxInfo.hasExtension("GL_ARB_draw_instanced") ||
ctxInfo.hasExtension("GL_EXT_draw_instanced")) &&
(ctxInfo.hasExtension("GL_ARB_instanced_arrays") ||
ctxInfo.hasExtension("GL_EXT_instanced_arrays"));
}
if (kGL_GrGLStandard == standard) {
fDirectStateAccessSupport = ctxInfo.hasExtension("GL_EXT_direct_state_access");
} else {
@ -1221,7 +1210,6 @@ SkString GrGLCaps::dump() const {
r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO"));
r.appendf("Two Format Limit: %s\n", (fTwoFormatLimit ? "YES": "NO"));
r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ? "YES": "NO"));
r.appendf("Instanced drawing support: %s\n", (fInstancedDrawingSupport ? "YES": "NO"));
r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ? "YES": "NO"));
r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO"));
r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ? "YES" : "NO"));

View File

@ -209,9 +209,6 @@ public:
/// Is there support for Vertex Array Objects?
bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; }
/// Is there support for glDraw*Instanced and glVertexAttribDivisor?
bool instancedDrawingSupport() const { return fInstancedDrawingSupport; }
/// Is there support for GL_EXT_direct_state_access?
bool directStateAccessSupport() const { return fDirectStateAccessSupport; }
@ -363,7 +360,6 @@ private:
bool fImagingSupport : 1;
bool fTwoFormatLimit : 1;
bool fVertexArrayObjectSupport : 1;
bool fInstancedDrawingSupport : 1;
bool fDirectStateAccessSupport : 1;
bool fDebugSupport : 1;
bool fES2CompatibilitySupport : 1;