OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/command_buffer/service/feature_info.h" | 5 #include "gpu/command_buffer/service/feature_info.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 extensions.Contains("GL_OES_rgb8_rgba8")) && | 562 extensions.Contains("GL_OES_rgb8_rgba8")) && |
563 extensions.Contains("GL_EXT_sRGB")) || | 563 extensions.Contains("GL_EXT_sRGB")) || |
564 feature_flags_.desktop_srgb_support) && | 564 feature_flags_.desktop_srgb_support) && |
565 IsWebGL1OrES2Context()) { | 565 IsWebGL1OrES2Context()) { |
566 AddExtensionString("GL_EXT_sRGB"); | 566 AddExtensionString("GL_EXT_sRGB"); |
567 validators_.texture_internal_format.AddValue(GL_SRGB_EXT); | 567 validators_.texture_internal_format.AddValue(GL_SRGB_EXT); |
568 validators_.texture_internal_format.AddValue(GL_SRGB_ALPHA_EXT); | 568 validators_.texture_internal_format.AddValue(GL_SRGB_ALPHA_EXT); |
569 validators_.texture_format.AddValue(GL_SRGB_EXT); | 569 validators_.texture_format.AddValue(GL_SRGB_EXT); |
570 validators_.texture_format.AddValue(GL_SRGB_ALPHA_EXT); | 570 validators_.texture_format.AddValue(GL_SRGB_ALPHA_EXT); |
571 validators_.render_buffer_format.AddValue(GL_SRGB8_ALPHA8_EXT); | 571 validators_.render_buffer_format.AddValue(GL_SRGB8_ALPHA8_EXT); |
572 validators_.frame_buffer_parameter.AddValue( | 572 validators_.framebuffer_parameter.AddValue( |
573 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT); | 573 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT); |
574 validators_.texture_unsized_internal_format.AddValue(GL_SRGB_EXT); | 574 validators_.texture_unsized_internal_format.AddValue(GL_SRGB_EXT); |
575 validators_.texture_unsized_internal_format.AddValue(GL_SRGB_ALPHA_EXT); | 575 validators_.texture_unsized_internal_format.AddValue(GL_SRGB_ALPHA_EXT); |
576 } | 576 } |
577 | 577 |
578 // Note: Only APPLE_texture_format_BGRA8888 extension allows BGRA8_EXT in | 578 // Note: Only APPLE_texture_format_BGRA8888 extension allows BGRA8_EXT in |
579 // ES3's glTexStorage2D, whereas EXT_texture_format_BGRA8888 doesn't provide | 579 // ES3's glTexStorage2D, whereas EXT_texture_format_BGRA8888 doesn't provide |
580 // that compatibility. So if EXT_texture_format_BGRA8888 (but not | 580 // that compatibility. So if EXT_texture_format_BGRA8888 (but not |
581 // APPLE_texture_format_BGRA8888) is present on an underlying ES3 context, we | 581 // APPLE_texture_format_BGRA8888) is present on an underlying ES3 context, we |
582 // have to choose which one of BGRA vs texture storage we expose. | 582 // have to choose which one of BGRA vs texture storage we expose. |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 gl_version_info_->is_es3 || | 856 gl_version_info_->is_es3 || |
857 gl_version_info_->is_desktop_core_profile; | 857 gl_version_info_->is_desktop_core_profile; |
858 if (gl_version_info_->is_angle) { | 858 if (gl_version_info_->is_angle) { |
859 ext_has_multisample |= | 859 ext_has_multisample |= |
860 extensions.Contains("GL_ANGLE_framebuffer_multisample"); | 860 extensions.Contains("GL_ANGLE_framebuffer_multisample"); |
861 } | 861 } |
862 feature_flags_.use_core_framebuffer_multisample = | 862 feature_flags_.use_core_framebuffer_multisample = |
863 gl_version_info_->is_es3 || gl_version_info_->is_desktop_core_profile; | 863 gl_version_info_->is_es3 || gl_version_info_->is_desktop_core_profile; |
864 if (ext_has_multisample) { | 864 if (ext_has_multisample) { |
865 feature_flags_.chromium_framebuffer_multisample = true; | 865 feature_flags_.chromium_framebuffer_multisample = true; |
866 validators_.frame_buffer_target.AddValue(GL_READ_FRAMEBUFFER_EXT); | 866 validators_.framebuffer_target.AddValue(GL_READ_FRAMEBUFFER_EXT); |
867 validators_.frame_buffer_target.AddValue(GL_DRAW_FRAMEBUFFER_EXT); | 867 validators_.framebuffer_target.AddValue(GL_DRAW_FRAMEBUFFER_EXT); |
868 validators_.g_l_state.AddValue(GL_READ_FRAMEBUFFER_BINDING_EXT); | 868 validators_.g_l_state.AddValue(GL_READ_FRAMEBUFFER_BINDING_EXT); |
869 validators_.g_l_state.AddValue(GL_MAX_SAMPLES_EXT); | 869 validators_.g_l_state.AddValue(GL_MAX_SAMPLES_EXT); |
870 validators_.render_buffer_parameter.AddValue(GL_RENDERBUFFER_SAMPLES_EXT); | 870 validators_.render_buffer_parameter.AddValue(GL_RENDERBUFFER_SAMPLES_EXT); |
871 AddExtensionString("GL_CHROMIUM_framebuffer_multisample"); | 871 AddExtensionString("GL_CHROMIUM_framebuffer_multisample"); |
872 } | 872 } |
873 } | 873 } |
874 | 874 |
875 if (extensions.Contains("GL_EXT_multisampled_render_to_texture")) { | 875 if (extensions.Contains("GL_EXT_multisampled_render_to_texture")) { |
876 feature_flags_.multisampled_render_to_texture = true; | 876 feature_flags_.multisampled_render_to_texture = true; |
877 } else if (extensions.Contains("GL_IMG_multisampled_render_to_texture")) { | 877 } else if (extensions.Contains("GL_IMG_multisampled_render_to_texture")) { |
878 feature_flags_.multisampled_render_to_texture = true; | 878 feature_flags_.multisampled_render_to_texture = true; |
879 feature_flags_.use_img_for_multisampled_render_to_texture = true; | 879 feature_flags_.use_img_for_multisampled_render_to_texture = true; |
880 } | 880 } |
881 if (feature_flags_.multisampled_render_to_texture) { | 881 if (feature_flags_.multisampled_render_to_texture) { |
882 validators_.render_buffer_parameter.AddValue( | 882 validators_.render_buffer_parameter.AddValue( |
883 GL_RENDERBUFFER_SAMPLES_EXT); | 883 GL_RENDERBUFFER_SAMPLES_EXT); |
884 validators_.g_l_state.AddValue(GL_MAX_SAMPLES_EXT); | 884 validators_.g_l_state.AddValue(GL_MAX_SAMPLES_EXT); |
885 validators_.frame_buffer_parameter.AddValue( | 885 validators_.framebuffer_parameter.AddValue( |
886 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT); | 886 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT); |
887 AddExtensionString("GL_EXT_multisampled_render_to_texture"); | 887 AddExtensionString("GL_EXT_multisampled_render_to_texture"); |
888 } | 888 } |
889 | 889 |
890 if (!gl_version_info_->is_es || | 890 if (!gl_version_info_->is_es || |
891 extensions.Contains("GL_EXT_multisample_compatibility")) { | 891 extensions.Contains("GL_EXT_multisample_compatibility")) { |
892 AddExtensionString("GL_EXT_multisample_compatibility"); | 892 AddExtensionString("GL_EXT_multisample_compatibility"); |
893 feature_flags_.ext_multisample_compatibility = true; | 893 feature_flags_.ext_multisample_compatibility = true; |
894 validators_.capability.AddValue(GL_MULTISAMPLE_EXT); | 894 validators_.capability.AddValue(GL_MULTISAMPLE_EXT); |
895 validators_.capability.AddValue(GL_SAMPLE_ALPHA_TO_ONE_EXT); | 895 validators_.capability.AddValue(GL_SAMPLE_ALPHA_TO_ONE_EXT); |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1464 if (pos == std::string::npos) { | 1464 if (pos == std::string::npos) { |
1465 extensions_ += (extensions_.empty() ? "" : " ") + str; | 1465 extensions_ += (extensions_.empty() ? "" : " ") + str; |
1466 } | 1466 } |
1467 } | 1467 } |
1468 | 1468 |
1469 FeatureInfo::~FeatureInfo() { | 1469 FeatureInfo::~FeatureInfo() { |
1470 } | 1470 } |
1471 | 1471 |
1472 } // namespace gles2 | 1472 } // namespace gles2 |
1473 } // namespace gpu | 1473 } // namespace gpu |
OLD | NEW |