Chromium Code Reviews| 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"); |