| 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 4214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4225 if (valid && feature_info_->feature_flags().desktop_srgb_support) { | 4225 if (valid && feature_info_->feature_flags().desktop_srgb_support) { |
| 4226 // If framebuffer contains sRGB images, then enable FRAMEBUFFER_SRGB. | 4226 // If framebuffer contains sRGB images, then enable FRAMEBUFFER_SRGB. |
| 4227 // Otherwise, disable FRAMEBUFFER_SRGB. Assume default fbo does not have | 4227 // Otherwise, disable FRAMEBUFFER_SRGB. Assume default fbo does not have |
| 4228 // sRGB image. | 4228 // sRGB image. |
| 4229 // In theory, we can just leave FRAMEBUFFER_SRGB on. However, many drivers | 4229 // In theory, we can just leave FRAMEBUFFER_SRGB on. However, many drivers |
| 4230 // behave incorrectly when all images are linear encoding, they still apply | 4230 // behave incorrectly when all images are linear encoding, they still apply |
| 4231 // the sRGB conversion, but when at least one image is sRGB, then they | 4231 // the sRGB conversion, but when at least one image is sRGB, then they |
| 4232 // behave correctly. | 4232 // behave correctly. |
| 4233 bool enable_framebuffer_srgb = | 4233 bool enable_framebuffer_srgb = |
| 4234 framebuffer && framebuffer->HasSRGBAttachments(); | 4234 framebuffer && framebuffer->HasSRGBAttachments(); |
| 4235 state_.EnableDisableFramebufferSRGB(enable_framebuffer_srgb); | 4235 state_.EnableDisableFramebufferSRGB(enable_framebuffer_srgb ? |
| 4236 FRAMEBUFFER_SRGB_ENABLED : FRAMEBUFFER_SRGB_DISABLED); |
| 4236 } | 4237 } |
| 4237 return valid; | 4238 return valid; |
| 4238 } | 4239 } |
| 4239 | 4240 |
| 4240 bool GLES2DecoderImpl::CheckBoundReadFramebufferValid( | 4241 bool GLES2DecoderImpl::CheckBoundReadFramebufferValid( |
| 4241 const char* func_name, GLenum gl_error) { | 4242 const char* func_name, GLenum gl_error) { |
| 4242 GLenum target = features().chromium_framebuffer_multisample ? | 4243 GLenum target = features().chromium_framebuffer_multisample ? |
| 4243 GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER; | 4244 GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER; |
| 4244 Framebuffer* framebuffer = GetFramebufferInfoForTarget(target); | 4245 Framebuffer* framebuffer = GetFramebufferInfoForTarget(target); |
| 4245 bool valid = CheckFramebufferValid( | 4246 bool valid = CheckFramebufferValid( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 4257 target = features().chromium_framebuffer_multisample ? | 4258 target = features().chromium_framebuffer_multisample ? |
| 4258 GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER; | 4259 GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER; |
| 4259 Framebuffer* read_framebuffer = GetFramebufferInfoForTarget(target); | 4260 Framebuffer* read_framebuffer = GetFramebufferInfoForTarget(target); |
| 4260 valid = valid && CheckFramebufferValid( | 4261 valid = valid && CheckFramebufferValid( |
| 4261 read_framebuffer, target, GL_INVALID_FRAMEBUFFER_OPERATION, func_name); | 4262 read_framebuffer, target, GL_INVALID_FRAMEBUFFER_OPERATION, func_name); |
| 4262 | 4263 |
| 4263 if (valid && feature_info_->feature_flags().desktop_srgb_support) { | 4264 if (valid && feature_info_->feature_flags().desktop_srgb_support) { |
| 4264 bool enable_framebuffer_srgb = | 4265 bool enable_framebuffer_srgb = |
| 4265 (draw_framebuffer && draw_framebuffer->HasSRGBAttachments()) || | 4266 (draw_framebuffer && draw_framebuffer->HasSRGBAttachments()) || |
| 4266 (read_framebuffer && read_framebuffer->HasSRGBAttachments()); | 4267 (read_framebuffer && read_framebuffer->HasSRGBAttachments()); |
| 4267 state_.EnableDisableFramebufferSRGB(enable_framebuffer_srgb); | 4268 state_.EnableDisableFramebufferSRGB(enable_framebuffer_srgb ? |
| 4269 FRAMEBUFFER_SRGB_ENABLED : FRAMEBUFFER_SRGB_DISABLED); |
| 4268 } | 4270 } |
| 4269 | 4271 |
| 4270 return valid; | 4272 return valid; |
| 4271 } | 4273 } |
| 4272 | 4274 |
| 4273 GLint GLES2DecoderImpl::GetColorEncodingFromInternalFormat( | 4275 GLint GLES2DecoderImpl::GetColorEncodingFromInternalFormat( |
| 4274 GLenum internalformat) { | 4276 GLenum internalformat) { |
| 4275 switch (internalformat) { | 4277 switch (internalformat) { |
| 4276 case GL_SRGB_EXT: | 4278 case GL_SRGB_EXT: |
| 4277 case GL_SRGB_ALPHA_EXT: | 4279 case GL_SRGB_ALPHA_EXT: |
| (...skipping 13465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17743 } | 17745 } |
| 17744 | 17746 |
| 17745 // Include the auto-generated part of this file. We split this because it means | 17747 // Include the auto-generated part of this file. We split this because it means |
| 17746 // we can easily edit the non-auto generated parts right here in this file | 17748 // we can easily edit the non-auto generated parts right here in this file |
| 17747 // instead of having to edit some template or the code generator. | 17749 // instead of having to edit some template or the code generator. |
| 17748 #include "base/macros.h" | 17750 #include "base/macros.h" |
| 17749 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 17751 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 17750 | 17752 |
| 17751 } // namespace gles2 | 17753 } // namespace gles2 |
| 17752 } // namespace gpu | 17754 } // namespace gpu |
| OLD | NEW |