Index: gpu/command_buffer/service/feature_info.cc |
=================================================================== |
--- gpu/command_buffer/service/feature_info.cc (revision 186778) |
+++ gpu/command_buffer/service/feature_info.cc (working copy) |
@@ -81,7 +81,8 @@ |
use_arb_occlusion_query_for_occlusion_query_boolean(false), |
native_vertex_array_object(false), |
disable_workarounds(false), |
- enable_shader_name_hashing(false) { |
+ enable_shader_name_hashing(false), |
+ ext_draw_buffers(false) { |
} |
FeatureInfo::Workarounds::Workarounds() |
@@ -613,6 +614,29 @@ |
validators_.vertex_attribute.AddValue(GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); |
} |
+ if (extensions.Contains("GL_ARB_draw_buffers")) { |
greggman
2013/03/08 21:48:28
Don't you also want
|| extensions.Contains("GL_
Zhenyao Mo
2013/03/13 01:22:02
I want to do it separately and explicitly when ANG
|
+ AddExtensionString("GL_EXT_draw_buffers"); |
+ feature_flags_.ext_draw_buffers = true; |
+ |
+ GLint max_color_attachments = 0; |
+ glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments); |
+ for (GLenum i = GL_COLOR_ATTACHMENT1_EXT; |
+ i < static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + max_color_attachments); |
+ ++i) { |
+ validators_.attachment.AddValue(i); |
+ } |
+ |
+ validators_.g_l_state.AddValue(GL_MAX_COLOR_ATTACHMENTS_EXT); |
+ validators_.g_l_state.AddValue(GL_MAX_DRAW_BUFFERS_ARB); |
+ GLint max_draw_buffers = 0; |
+ glGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &max_draw_buffers); |
+ for (GLenum i = GL_DRAW_BUFFER0_ARB; |
+ i < static_cast<GLenum>(GL_DRAW_BUFFER0_ARB + max_draw_buffers); |
+ ++i) { |
+ validators_.g_l_state.AddValue(i); |
+ } |
+ } |
+ |
if (!disallowed_features_.swap_buffer_complete_callback) |
AddExtensionString("GL_CHROMIUM_swapbuffers_complete_callback"); |