Validate that VAO functions are present in ES2 interfaces and add bit to caps indicating VAO support.
Review URL: https://codereview.chromium.org/12447003 git-svn-id: http://skia.googlecode.com/svn/trunk@7979 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
d4c8e1e035
commit
07631cf14e
@ -37,6 +37,7 @@ void GrGLCaps::reset() {
|
|||||||
fImagingSupport = false;
|
fImagingSupport = false;
|
||||||
fTwoFormatLimit = false;
|
fTwoFormatLimit = false;
|
||||||
fFragCoordsConventionSupport = false;
|
fFragCoordsConventionSupport = false;
|
||||||
|
fVertexArrayObjectSupport = false;
|
||||||
fUseNonVBOVertexAndIndexDynamicData = false;
|
fUseNonVBOVertexAndIndexDynamicData = false;
|
||||||
fIsCoreProfile = false;
|
fIsCoreProfile = false;
|
||||||
}
|
}
|
||||||
@ -69,6 +70,7 @@ GrGLCaps& GrGLCaps::operator = (const GrGLCaps& caps) {
|
|||||||
fImagingSupport = caps.fImagingSupport;
|
fImagingSupport = caps.fImagingSupport;
|
||||||
fTwoFormatLimit = caps.fTwoFormatLimit;
|
fTwoFormatLimit = caps.fTwoFormatLimit;
|
||||||
fFragCoordsConventionSupport = caps.fFragCoordsConventionSupport;
|
fFragCoordsConventionSupport = caps.fFragCoordsConventionSupport;
|
||||||
|
fVertexArrayObjectSupport = caps.fVertexArrayObjectSupport;
|
||||||
fUseNonVBOVertexAndIndexDynamicData = caps.fUseNonVBOVertexAndIndexDynamicData;
|
fUseNonVBOVertexAndIndexDynamicData = caps.fUseNonVBOVertexAndIndexDynamicData;
|
||||||
fIsCoreProfile = caps.fIsCoreProfile;
|
fIsCoreProfile = caps.fIsCoreProfile;
|
||||||
|
|
||||||
@ -185,6 +187,13 @@ void GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {
|
|||||||
fIsCoreProfile = SkToBool(profileMask & GR_GL_CONTEXT_CORE_PROFILE_BIT);
|
fIsCoreProfile = SkToBool(profileMask & GR_GL_CONTEXT_CORE_PROFILE_BIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (kDesktop_GrGLBinding == binding) {
|
||||||
|
fVertexArrayObjectSupport = version >= GR_GL_VER(3, 0) ||
|
||||||
|
ctxInfo.hasExtension("GL_ARB_vertex_array_object");
|
||||||
|
} else {
|
||||||
|
fVertexArrayObjectSupport = ctxInfo.hasExtension("GL_OES_vertex_array_object");
|
||||||
|
}
|
||||||
|
|
||||||
this->initFSAASupport(ctxInfo, gli);
|
this->initFSAASupport(ctxInfo, gli);
|
||||||
this->initStencilFormats(ctxInfo);
|
this->initStencilFormats(ctxInfo);
|
||||||
}
|
}
|
||||||
|
@ -219,12 +219,15 @@ public:
|
|||||||
/// Is GL_ARB_fragment_coord_conventions supported?
|
/// Is GL_ARB_fragment_coord_conventions supported?
|
||||||
bool fragCoordConventionsSupport() const { return fFragCoordsConventionSupport; }
|
bool fragCoordConventionsSupport() const { return fFragCoordsConventionSupport; }
|
||||||
|
|
||||||
// Use indices or vertices in CPU arrays rather than VBOs for dynamic content.
|
/// Is there support for Vertex Array Objects?
|
||||||
|
bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; }
|
||||||
|
|
||||||
|
/// Use indices or vertices in CPU arrays rather than VBOs for dynamic content.
|
||||||
bool useNonVBOVertexAndIndexDynamicData() const {
|
bool useNonVBOVertexAndIndexDynamicData() const {
|
||||||
return fUseNonVBOVertexAndIndexDynamicData;
|
return fUseNonVBOVertexAndIndexDynamicData;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Does ReadPixels support the provided format/type combo?
|
/// Does ReadPixels support the provided format/type combo?
|
||||||
bool readPixelsSupported(const GrGLInterface* intf,
|
bool readPixelsSupported(const GrGLInterface* intf,
|
||||||
GrGLenum format,
|
GrGLenum format,
|
||||||
GrGLenum type) const;
|
GrGLenum type) const;
|
||||||
@ -304,6 +307,7 @@ private:
|
|||||||
bool fImagingSupport : 1;
|
bool fImagingSupport : 1;
|
||||||
bool fTwoFormatLimit : 1;
|
bool fTwoFormatLimit : 1;
|
||||||
bool fFragCoordsConventionSupport : 1;
|
bool fFragCoordsConventionSupport : 1;
|
||||||
|
bool fVertexArrayObjectSupport : 1;
|
||||||
bool fUseNonVBOVertexAndIndexDynamicData : 1;
|
bool fUseNonVBOVertexAndIndexDynamicData : 1;
|
||||||
bool fIsCoreProfile : 1;
|
bool fIsCoreProfile : 1;
|
||||||
};
|
};
|
||||||
|
@ -358,7 +358,6 @@ bool GrGLInterface::validate(GrGLBinding binding) const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#if 0 // Remove this #if once Chromium interfaces set these pointers
|
|
||||||
if (extensions.has("GL_OES_vertex_array_object")) {
|
if (extensions.has("GL_OES_vertex_array_object")) {
|
||||||
if (NULL == fBindVertexArray ||
|
if (NULL == fBindVertexArray ||
|
||||||
NULL == fDeleteVertexArrays ||
|
NULL == fDeleteVertexArrays ||
|
||||||
@ -366,7 +365,6 @@ bool GrGLInterface::validate(GrGLBinding binding) const {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user