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 for (uint32_t i = 0; i < group_->max_draw_buffers(); i++) { |
| 6071 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | 6071 if (framebuffer->HasColorAttachment(i)) { |
| 6072 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &v); | 6072 glGetFramebufferAttachmentParameterivEXT( |
| 6073 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, | |
| 6074 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &v); | |
| 6075 break; | |
| 6076 } | |
| 6077 } | |
| 6073 } else { | 6078 } else { |
| 6074 glGetIntegerv(GL_ALPHA_BITS, &v); | 6079 glGetIntegerv(GL_ALPHA_BITS, &v); |
| 6075 } | 6080 } |
| 6076 } | 6081 } |
| 6077 } else { | 6082 } else { |
| 6078 v = (ClientExposedBackBufferHasAlpha() ? 8 : 0); | 6083 v = (ClientExposedBackBufferHasAlpha() ? 8 : 0); |
| 6079 } | 6084 } |
| 6080 params[0] = v; | 6085 params[0] = v; |
| 6081 } | 6086 } |
| 6082 return true; | 6087 return true; |
| 6083 case GL_DEPTH_BITS: | 6088 case GL_DEPTH_BITS: |
| 6084 *num_written = 1; | 6089 *num_written = 1; |
| 6085 if (params) { | 6090 if (params) { |
| 6086 GLint v = 0; | 6091 GLint v = 0; |
| 6087 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6092 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6088 Framebuffer* framebuffer = | 6093 Framebuffer* framebuffer = |
| 6089 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6094 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6090 if (framebuffer) { | 6095 if (framebuffer && framebuffer->HasDepthAttachment()) { |
|
Zhenyao Mo
2016/07/05 21:14:16
Remove it here? Since you moved it inside.
| |
| 6091 glGetFramebufferAttachmentParameterivEXT( | 6096 if (framebuffer->HasDepthAttachment()) { |
| 6092 GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, | 6097 glGetFramebufferAttachmentParameterivEXT( |
| 6093 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, &v); | 6098 GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, |
| 6099 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, &v); | |
| 6100 } | |
| 6094 } else { | 6101 } else { |
| 6095 v = (back_buffer_has_depth_ ? 24 : 0); | 6102 v = (back_buffer_has_depth_ ? 24 : 0); |
| 6096 } | 6103 } |
| 6097 } else { | 6104 } else { |
| 6098 glGetIntegerv(GL_DEPTH_BITS, &v); | 6105 glGetIntegerv(GL_DEPTH_BITS, &v); |
| 6099 } | 6106 } |
| 6100 params[0] = BoundFramebufferHasDepthAttachment() ? v : 0; | 6107 params[0] = BoundFramebufferHasDepthAttachment() ? v : 0; |
| 6101 } | 6108 } |
| 6102 return true; | 6109 return true; |
| 6103 case GL_RED_BITS: | 6110 case GL_RED_BITS: |
| 6104 case GL_GREEN_BITS: | 6111 case GL_GREEN_BITS: |
| 6105 case GL_BLUE_BITS: | 6112 case GL_BLUE_BITS: |
| 6106 *num_written = 1; | 6113 *num_written = 1; |
| 6107 if (params) { | 6114 if (params) { |
| 6108 GLint v = 0; | 6115 GLint v = 0; |
| 6109 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6116 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6110 Framebuffer* framebuffer = | 6117 Framebuffer* framebuffer = |
| 6111 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6118 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6112 if (framebuffer) { | 6119 if (framebuffer) { |
| 6113 GLenum framebuffer_enum = 0; | 6120 if (framebuffer->HasSameInternalFormatsMRT()) { |
| 6114 switch (pname) { | 6121 GLenum framebuffer_enum = 0; |
| 6115 case GL_RED_BITS: | 6122 switch (pname) { |
| 6116 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE; | 6123 case GL_RED_BITS: |
| 6117 break; | 6124 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE; |
| 6118 case GL_GREEN_BITS: | 6125 break; |
| 6119 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE; | 6126 case GL_GREEN_BITS: |
| 6120 break; | 6127 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE; |
| 6121 case GL_BLUE_BITS: | 6128 break; |
| 6122 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE; | 6129 case GL_BLUE_BITS: |
| 6123 break; | 6130 framebuffer_enum = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE; |
| 6131 break; | |
| 6132 } | |
| 6133 for (uint32_t i = 0; i < group_->max_draw_buffers(); i++) { | |
| 6134 if (framebuffer->HasColorAttachment(i)) { | |
| 6135 glGetFramebufferAttachmentParameterivEXT( | |
| 6136 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, | |
| 6137 framebuffer_enum, &v); | |
| 6138 break; | |
| 6139 } | |
| 6140 } | |
| 6124 } | 6141 } |
| 6125 glGetFramebufferAttachmentParameterivEXT( | |
| 6126 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, framebuffer_enum, &v); | |
| 6127 } else { | 6142 } else { |
| 6128 v = 8; | 6143 v = 8; |
| 6129 } | 6144 } |
| 6130 } else { | 6145 } else { |
| 6131 glGetIntegerv(pname, &v); | 6146 glGetIntegerv(pname, &v); |
| 6132 } | 6147 } |
| 6133 params[0] = v; | 6148 params[0] = v; |
| 6134 } | 6149 } |
| 6135 return true; | 6150 return true; |
| 6136 case GL_STENCIL_BITS: | 6151 case GL_STENCIL_BITS: |
| 6137 *num_written = 1; | 6152 *num_written = 1; |
| 6138 if (params) { | 6153 if (params) { |
| 6139 GLint v = 0; | 6154 GLint v = 0; |
| 6140 if (feature_info_->gl_version_info().is_desktop_core_profile) { | 6155 if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 6141 Framebuffer* framebuffer = | 6156 Framebuffer* framebuffer = |
| 6142 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); | 6157 GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER_EXT); |
| 6143 if (framebuffer) { | 6158 if (framebuffer) { |
| 6144 glGetFramebufferAttachmentParameterivEXT( | 6159 if (framebuffer->HasStencilAttachment()) { |
| 6145 GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, | 6160 glGetFramebufferAttachmentParameterivEXT( |
| 6146 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, &v); | 6161 GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, |
| 6162 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, &v); | |
| 6163 } | |
| 6147 } else { | 6164 } else { |
| 6148 v = (back_buffer_has_stencil_ ? 8 : 0); | 6165 v = (back_buffer_has_stencil_ ? 8 : 0); |
| 6149 } | 6166 } |
| 6150 } else { | 6167 } else { |
| 6151 glGetIntegerv(GL_STENCIL_BITS, &v); | 6168 glGetIntegerv(GL_STENCIL_BITS, &v); |
| 6152 } | 6169 } |
| 6153 params[0] = BoundFramebufferHasStencilAttachment() ? v : 0; | 6170 params[0] = BoundFramebufferHasStencilAttachment() ? v : 0; |
| 6154 } | 6171 } |
| 6155 return true; | 6172 return true; |
| 6156 case GL_COMPRESSED_TEXTURE_FORMATS: | 6173 case GL_COMPRESSED_TEXTURE_FORMATS: |
| (...skipping 10923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 17080 } | 17097 } |
| 17081 | 17098 |
| 17082 // Include the auto-generated part of this file. We split this because it means | 17099 // 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 | 17100 // 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. | 17101 // instead of having to edit some template or the code generator. |
| 17085 #include "base/macros.h" | 17102 #include "base/macros.h" |
| 17086 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 17103 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 17087 | 17104 |
| 17088 } // namespace gles2 | 17105 } // namespace gles2 |
| 17089 } // namespace gpu | 17106 } // namespace gpu |
| OLD | NEW |