diff options
author | bajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 16:25:57 +0000 |
---|---|---|
committer | bajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 16:25:57 +0000 |
commit | ab4fd728dca3d8d59564dd5fb552eea244929363 (patch) | |
tree | e46ae4f2fefcb282c0212f96ec6d254739c66319 /gpu/command_buffer/service/feature_info.cc | |
parent | e9ec622093449d24d4f5182eb6c60f0266308eb3 (diff) | |
download | chromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.zip chromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.tar.gz chromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.tar.bz2 |
Added emulation of the OES_vertex_array_object WebGL extension for devices that
do not support it natively, such as those using ANGLE.
TEST=Visit https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/oes-vertex-array-object.html
on an ANGLE device. All tests should pass.
Review URL: https://chromiumcodereview.appspot.com/10983072
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161589 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/feature_info.cc')
-rw-r--r-- | gpu/command_buffer/service/feature_info.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc index 7f15dbf..606db90 100644 --- a/gpu/command_buffer/service/feature_info.cc +++ b/gpu/command_buffer/service/feature_info.cc @@ -84,7 +84,8 @@ FeatureInfo::FeatureFlags::FeatureFlags() disable_workarounds(false), is_intel(false), is_nvidia(false), - is_amd(false) { + is_amd(false), + is_mesa(false) { } FeatureInfo::FeatureInfo() { @@ -207,6 +208,7 @@ void FeatureInfo::AddFeatures(const char* desired_features) { feature_flags_.is_nvidia |= string_set.Contains("nvidia"); feature_flags_.is_amd |= string_set.Contains("amd") || string_set.Contains("ati"); + feature_flags_.is_mesa |= string_set.Contains("mesa"); } } @@ -344,11 +346,15 @@ void FeatureInfo::AddFeatures(const char* desired_features) { validators_.render_buffer_format.AddValue(GL_DEPTH24_STENCIL8); } - if (ext.Desire("GL_OES_vertex_array_object") && - (ext.Have("GL_OES_vertex_array_object") || - ext.Have("GL_ARB_vertex_array_object") || - ext.Have("GL_APPLE_vertex_array_object"))) { - feature_flags_.native_vertex_array_object_ = true; + if (ext.Desire("GL_OES_vertex_array_object")) { + if (ext.Have("GL_OES_vertex_array_object") || + ext.Have("GL_ARB_vertex_array_object") || + ext.Have("GL_APPLE_vertex_array_object")) { + feature_flags_.native_vertex_array_object_ = true; + } + + // OES_vertex_array_object is emulated if not present natively, + // so the extension string is always exposed. AddExtensionString("GL_OES_vertex_array_object"); } |