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/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
6 | 6 |
7 #include <limits.h> | 7 #include <limits.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 3770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3781 bool is_offscreen = !!offscreen_target_frame_buffer_.get(); | 3781 bool is_offscreen = !!offscreen_target_frame_buffer_.get(); |
3782 caps.flips_vertically = !is_offscreen && surface_->FlipsVertically(); | 3782 caps.flips_vertically = !is_offscreen && surface_->FlipsVertically(); |
3783 caps.msaa_is_slow = workarounds().msaa_is_slow; | 3783 caps.msaa_is_slow = workarounds().msaa_is_slow; |
3784 caps.dc_layers = supports_dc_layers_; | 3784 caps.dc_layers = supports_dc_layers_; |
3785 | 3785 |
3786 caps.blend_equation_advanced = | 3786 caps.blend_equation_advanced = |
3787 feature_info_->feature_flags().blend_equation_advanced; | 3787 feature_info_->feature_flags().blend_equation_advanced; |
3788 caps.blend_equation_advanced_coherent = | 3788 caps.blend_equation_advanced_coherent = |
3789 feature_info_->feature_flags().blend_equation_advanced_coherent; | 3789 feature_info_->feature_flags().blend_equation_advanced_coherent; |
3790 caps.texture_rg = feature_info_->feature_flags().ext_texture_rg; | 3790 caps.texture_rg = feature_info_->feature_flags().ext_texture_rg; |
| 3791 caps.texture_norm16 = feature_info_->feature_flags().ext_texture_norm16; |
3791 caps.texture_half_float_linear = | 3792 caps.texture_half_float_linear = |
3792 feature_info_->feature_flags().enable_texture_half_float_linear; | 3793 feature_info_->feature_flags().enable_texture_half_float_linear; |
3793 caps.color_buffer_half_float_rgba = | 3794 caps.color_buffer_half_float_rgba = |
3794 feature_info_->feature_flags().enable_color_buffer_float || | 3795 feature_info_->feature_flags().enable_color_buffer_float || |
3795 feature_info_->feature_flags().enable_color_buffer_half_float; | 3796 feature_info_->feature_flags().enable_color_buffer_half_float; |
3796 caps.image_ycbcr_422 = | 3797 caps.image_ycbcr_422 = |
3797 feature_info_->feature_flags().chromium_image_ycbcr_422; | 3798 feature_info_->feature_flags().chromium_image_ycbcr_422; |
3798 caps.image_ycbcr_420v = | 3799 caps.image_ycbcr_420v = |
3799 feature_info_->feature_flags().chromium_image_ycbcr_420v; | 3800 feature_info_->feature_flags().chromium_image_ycbcr_420v; |
3800 caps.max_copy_texture_chromium_size = | 3801 caps.max_copy_texture_chromium_size = |
(...skipping 12743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16544 case GL_RGBA32F: | 16545 case GL_RGBA32F: |
16545 valid_dest_format = | 16546 valid_dest_format = |
16546 feature_info_->ext_color_buffer_float_available() || | 16547 feature_info_->ext_color_buffer_float_available() || |
16547 feature_info_->feature_flags().chromium_color_buffer_float_rgba; | 16548 feature_info_->feature_flags().chromium_color_buffer_float_rgba; |
16548 break; | 16549 break; |
16549 default: | 16550 default: |
16550 valid_dest_format = false; | 16551 valid_dest_format = false; |
16551 break; | 16552 break; |
16552 } | 16553 } |
16553 | 16554 |
| 16555 // TODO(aleksandar.stojiljkovic): Use sized internal formats: crbug.com/662644 |
16554 bool valid_source_format = | 16556 bool valid_source_format = |
16555 source_internal_format == GL_RED || source_internal_format == GL_ALPHA || | 16557 source_internal_format == GL_RED || source_internal_format == GL_ALPHA || |
16556 source_internal_format == GL_RGB || source_internal_format == GL_RGBA || | 16558 source_internal_format == GL_RGB || source_internal_format == GL_RGBA || |
16557 source_internal_format == GL_RGB8 || source_internal_format == GL_RGBA8 || | 16559 source_internal_format == GL_RGB8 || source_internal_format == GL_RGBA8 || |
16558 source_internal_format == GL_LUMINANCE || | 16560 source_internal_format == GL_LUMINANCE || |
16559 source_internal_format == GL_LUMINANCE_ALPHA || | 16561 source_internal_format == GL_LUMINANCE_ALPHA || |
16560 source_internal_format == GL_BGRA_EXT || | 16562 source_internal_format == GL_BGRA_EXT || |
16561 source_internal_format == GL_BGRA8_EXT || | 16563 source_internal_format == GL_BGRA8_EXT || |
16562 source_internal_format == GL_RGB_YCBCR_420V_CHROMIUM || | 16564 source_internal_format == GL_RGB_YCBCR_420V_CHROMIUM || |
16563 source_internal_format == GL_RGB_YCBCR_422_CHROMIUM; | 16565 source_internal_format == GL_RGB_YCBCR_422_CHROMIUM || |
| 16566 source_internal_format == GL_R16_EXT; |
16564 if (!valid_source_format) { | 16567 if (!valid_source_format) { |
16565 std::string msg = "invalid source internal format " + | 16568 std::string msg = "invalid source internal format " + |
16566 GLES2Util::GetStringEnum(source_internal_format); | 16569 GLES2Util::GetStringEnum(source_internal_format); |
16567 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name, | 16570 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name, |
16568 msg.c_str()); | 16571 msg.c_str()); |
16569 return false; | 16572 return false; |
16570 } | 16573 } |
16571 if (!valid_dest_format) { | 16574 if (!valid_dest_format) { |
16572 std::string msg = "invalid dest internal format " + | 16575 std::string msg = "invalid dest internal format " + |
16573 GLES2Util::GetStringEnum(dest_internal_format); | 16576 GLES2Util::GetStringEnum(dest_internal_format); |
(...skipping 2992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19566 } | 19569 } |
19567 | 19570 |
19568 // Include the auto-generated part of this file. We split this because it means | 19571 // Include the auto-generated part of this file. We split this because it means |
19569 // we can easily edit the non-auto generated parts right here in this file | 19572 // we can easily edit the non-auto generated parts right here in this file |
19570 // instead of having to edit some template or the code generator. | 19573 // instead of having to edit some template or the code generator. |
19571 #include "base/macros.h" | 19574 #include "base/macros.h" |
19572 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 19575 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
19573 | 19576 |
19574 } // namespace gles2 | 19577 } // namespace gles2 |
19575 } // namespace gpu | 19578 } // namespace gpu |
OLD | NEW |