Chromium Code Reviews| 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 6049 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6060 case GL_ALPHA_BITS: | 6060 case GL_ALPHA_BITS: |
| 6061 *num_written = 1; | 6061 *num_written = 1; |
| 6062 if (params) { | 6062 if (params) { |
| 6063 GLint v = 0; | 6063 GLint v = 0; |
| 6064 Framebuffer* framebuffer = | 6064 Framebuffer* framebuffer = |
| 6065 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6065 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6066 if (framebuffer) { | 6066 if (framebuffer) { |
| 6067 if (framebuffer->HasAlphaMRT() && | 6067 if (framebuffer->HasAlphaMRT() && |
| 6068 framebuffer->HasSameInternalFormatsMRT()) { | 6068 framebuffer->HasSameInternalFormatsMRT()) { |
| 6069 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6069 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6070 glGetFramebufferAttachmentParameterivEXT( | 6070 if (framebuffer->HasColorAttachment(0)) { |
|
Zhenyao Mo
2016/07/04 23:16:06
Here we have a pre-existing issue: we should query
| |
| 6071 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | 6071 glGetFramebufferAttachmentParameterivEXT( |
| 6072 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &v); | 6072 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, |
| 6073 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &v); | |
| 6074 } | |
| 6073 } else { | 6075 } else { |
| 6074 glGetIntegerv(GL_ALPHA_BITS, &v); | 6076 glGetIntegerv(GL_ALPHA_BITS, &v); |
| 6075 } | 6077 } |
| 6076 } | 6078 } |
| 6077 } else { | 6079 } else { |
| 6078 v = (ClientExposedBackBufferHasAlpha() ? 8 : 0); | 6080 v = (ClientExposedBackBufferHasAlpha() ? 8 : 0); |
| 6079 } | 6081 } |
| 6080 params[0] = v; | 6082 params[0] = v; |
| 6081 } | 6083 } |
| 6082 return true; | 6084 return true; |
| 6083 case GL_DEPTH_BITS: | 6085 case GL_DEPTH_BITS: |
| 6084 *num_written = 1; | 6086 *num_written = 1; |
| 6085 if (params) { | 6087 if (params) { |
| 6086 GLint v = 0; | 6088 GLint v = 0; |
| 6087 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6089 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6088 Framebuffer* framebuffer = | 6090 Framebuffer* framebuffer = |
| 6089 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6091 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6090 if (framebuffer) { | 6092 if (framebuffer && framebuffer->HasDepthAttachment()) { |
|
Zhenyao Mo
2016/07/04 23:16:06
This should be an inter if statement. Because if
| |
| 6091 glGetFramebufferAttachmentParameterivEXT( | 6093 glGetFramebufferAttachmentParameterivEXT( |
| 6092 GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, | 6094 GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, |
| 6093 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, &v); | 6095 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, &v); |
| 6094 } else { | 6096 } else { |
| 6095 v = (back_buffer_has_depth_ ? 24 : 0); | 6097 v = (back_buffer_has_depth_ ? 24 : 0); |
| 6096 } | 6098 } |
| 6097 } else { | 6099 } else { |
| 6098 glGetIntegerv(GL_DEPTH_BITS, &v); | 6100 glGetIntegerv(GL_DEPTH_BITS, &v); |
| 6099 } | 6101 } |
| 6100 params[0] = BoundFramebufferHasDepthAttachment() ? v : 0; | 6102 params[0] = BoundFramebufferHasDepthAttachment() ? v : 0; |
| 6101 } | 6103 } |
| 6102 return true; | 6104 return true; |
| 6103 case GL_RED_BITS: | 6105 case GL_RED_BITS: |
| 6104 case GL_GREEN_BITS: | 6106 case GL_GREEN_BITS: |
| 6105 case GL_BLUE_BITS: | 6107 case GL_BLUE_BITS: |
| 6106 *num_written = 1; | 6108 *num_written = 1; |
| 6107 if (params) { | 6109 if (params) { |
| 6108 GLint v = 0; | 6110 GLint v = 0; |
| 6109 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6111 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6110 Framebuffer* framebuffer = | 6112 Framebuffer* framebuffer = |
| 6111 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6113 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6112 if (framebuffer) { | 6114 if (framebuffer && framebuffer->HasColorAttachment(0)) { |
|
Zhenyao Mo
2016/07/04 23:16:06
Here we should do similar things as GL_ALPHA_BITS,
| |
| 6113 GLenum framebuffer_enum = 0; | 6115 GLenum framebuffer_enum = 0; |
| 6114 switch (pname) { | 6116 switch (pname) { |
| 6115 case GL_RED_BITS: | 6117 case GL_RED_BITS: |
| 6116 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE; | 6118 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE; |
| 6117 break; | 6119 break; |
| 6118 case GL_GREEN_BITS: | 6120 case GL_GREEN_BITS: |
| 6119 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE; | 6121 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE; |
| 6120 break; | 6122 break; |
| 6121 case GL_BLUE_BITS: | 6123 case GL_BLUE_BITS: |
| 6122 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE; | 6124 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 6133 params[0] = v; | 6135 params[0] = v; |
| 6134 } | 6136 } |
| 6135 return true; | 6137 return true; |
| 6136 case GL_STENCIL_BITS: | 6138 case GL_STENCIL_BITS: |
| 6137 *num_written = 1; | 6139 *num_written = 1; |
| 6138 if (params) { | 6140 if (params) { |
| 6139 GLint v = 0; | 6141 GLint v = 0; |
| 6140 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6142 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6141 Framebuffer* framebuffer = | 6143 Framebuffer* framebuffer = |
| 6142 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6144 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6143 if (framebuffer) { | 6145 if (framebuffer && framebuffer->HasStencilAttachment()) { |
|
Zhenyao Mo
2016/07/04 23:16:06
Same here, should be an inner if statement.
| |
| 6144 glGetFramebufferAttachmentParameterivEXT( | 6146 glGetFramebufferAttachmentParameterivEXT( |
| 6145 GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, | 6147 GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, |
| 6146 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, &v); | 6148 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, &v); |
| 6147 } else { | 6149 } else { |
| 6148 v = (back_buffer_has_stencil_ ? 8 : 0); | 6150 v = (back_buffer_has_stencil_ ? 8 : 0); |
| 6149 } | 6151 } |
| 6150 } else { | 6152 } else { |
| 6151 glGetIntegerv(GL_STENCIL_BITS, &v); | 6153 glGetIntegerv(GL_STENCIL_BITS, &v); |
| 6152 } | 6154 } |
| 6153 params[0] = BoundFramebufferHasStencilAttachment() ? v : 0; | 6155 params[0] = BoundFramebufferHasStencilAttachment() ? v : 0; |
| (...skipping 10926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 17080 } | 17082 } |
| 17081 | 17083 |
| 17082 // Include the auto-generated part of this file. We split this because it means | 17084 // Include the auto-generated part of this file. We split this because it means |
| 17083 // we can easily edit the non-auto generated parts right here in this file | 17085 // we can easily edit the non-auto generated parts right here in this file |
| 17084 // instead of having to edit some template or the code generator. | 17086 // instead of having to edit some template or the code generator. |
| 17085 #include "base/macros.h" | 17087 #include "base/macros.h" |
| 17086 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 17088 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 17087 | 17089 |
| 17088 } // namespace gles2 | 17090 } // namespace gles2 |
| 17089 } // namespace gpu | 17091 } // namespace gpu |
| OLD | NEW |