| 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 // A class to emulate GLES2 over command buffers. | 5 // A class to emulate GLES2 over command buffers. |
| 6 | 6 |
| 7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
| 8 | 8 |
| 9 #include <GLES2/gl2ext.h> | 9 #include <GLES2/gl2ext.h> |
| 10 #include <GLES2/gl2extchromium.h> | 10 #include <GLES2/gl2extchromium.h> |
| (...skipping 5180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5191 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 5191 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
| 5192 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRetireSyncPointCHROMIUM(" | 5192 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRetireSyncPointCHROMIUM(" |
| 5193 << sync_point << ")"); | 5193 << sync_point << ")"); |
| 5194 DCHECK(capabilities_.future_sync_points); | 5194 DCHECK(capabilities_.future_sync_points); |
| 5195 helper_->CommandBufferHelper::Flush(); | 5195 helper_->CommandBufferHelper::Flush(); |
| 5196 gpu_control_->RetireSyncPoint(sync_point); | 5196 gpu_control_->RetireSyncPoint(sync_point); |
| 5197 } | 5197 } |
| 5198 | 5198 |
| 5199 namespace { | 5199 namespace { |
| 5200 | 5200 |
| 5201 bool ValidImageFormat(GLenum internalformat) { | 5201 bool ValidImageFormat(GLenum internalformat, |
| 5202 const Capabilities& capabilities) { |
| 5202 switch (internalformat) { | 5203 switch (internalformat) { |
| 5204 case GL_ATC_RGB_AMD: |
| 5205 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |
| 5206 return capabilities.texture_format_atc; |
| 5207 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: |
| 5208 return capabilities.texture_format_dxt1; |
| 5209 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: |
| 5210 return capabilities.texture_format_dxt5; |
| 5211 case GL_ETC1_RGB8_OES: |
| 5212 return capabilities.texture_format_etc1; |
| 5203 case GL_R8: | 5213 case GL_R8: |
| 5204 case GL_RGB: | 5214 case GL_RGB: |
| 5205 case GL_RGBA: | 5215 case GL_RGBA: |
| 5206 case GL_BGRA_EXT: | 5216 case GL_BGRA_EXT: |
| 5207 return true; | 5217 return true; |
| 5208 default: | 5218 default: |
| 5209 return false; | 5219 return false; |
| 5210 } | 5220 } |
| 5211 } | 5221 } |
| 5212 | 5222 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 5229 if (width <= 0) { | 5239 if (width <= 0) { |
| 5230 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "width <= 0"); | 5240 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "width <= 0"); |
| 5231 return 0; | 5241 return 0; |
| 5232 } | 5242 } |
| 5233 | 5243 |
| 5234 if (height <= 0) { | 5244 if (height <= 0) { |
| 5235 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "height <= 0"); | 5245 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "height <= 0"); |
| 5236 return 0; | 5246 return 0; |
| 5237 } | 5247 } |
| 5238 | 5248 |
| 5239 if (!ValidImageFormat(internalformat)) { | 5249 if (!ValidImageFormat(internalformat, capabilities_)) { |
| 5240 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "invalid format"); | 5250 SetGLError(GL_INVALID_VALUE, "glCreateImageCHROMIUM", "invalid format"); |
| 5241 return 0; | 5251 return 0; |
| 5242 } | 5252 } |
| 5243 | 5253 |
| 5244 int32_t image_id = | 5254 int32_t image_id = |
| 5245 gpu_control_->CreateImage(buffer, width, height, internalformat); | 5255 gpu_control_->CreateImage(buffer, width, height, internalformat); |
| 5246 if (image_id < 0) { | 5256 if (image_id < 0) { |
| 5247 SetGLError(GL_OUT_OF_MEMORY, "glCreateImageCHROMIUM", "image_id < 0"); | 5257 SetGLError(GL_OUT_OF_MEMORY, "glCreateImageCHROMIUM", "image_id < 0"); |
| 5248 return 0; | 5258 return 0; |
| 5249 } | 5259 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5291 return 0; | 5301 return 0; |
| 5292 } | 5302 } |
| 5293 | 5303 |
| 5294 if (height <= 0) { | 5304 if (height <= 0) { |
| 5295 SetGLError(GL_INVALID_VALUE, | 5305 SetGLError(GL_INVALID_VALUE, |
| 5296 "glCreateGpuMemoryBufferImageCHROMIUM", | 5306 "glCreateGpuMemoryBufferImageCHROMIUM", |
| 5297 "height <= 0"); | 5307 "height <= 0"); |
| 5298 return 0; | 5308 return 0; |
| 5299 } | 5309 } |
| 5300 | 5310 |
| 5301 if (!ValidImageFormat(internalformat)) { | 5311 if (!ValidImageFormat(internalformat, capabilities_)) { |
| 5302 SetGLError(GL_INVALID_VALUE, | 5312 SetGLError(GL_INVALID_VALUE, |
| 5303 "glCreateGpuMemoryBufferImageCHROMIUM", | 5313 "glCreateGpuMemoryBufferImageCHROMIUM", |
| 5304 "invalid format"); | 5314 "invalid format"); |
| 5305 return 0; | 5315 return 0; |
| 5306 } | 5316 } |
| 5307 | 5317 |
| 5308 if (!ValidImageUsage(usage)) { | 5318 if (!ValidImageUsage(usage)) { |
| 5309 SetGLError(GL_INVALID_VALUE, | 5319 SetGLError(GL_INVALID_VALUE, |
| 5310 "glCreateGpuMemoryBufferImageCHROMIUM", | 5320 "glCreateGpuMemoryBufferImageCHROMIUM", |
| 5311 "invalid usage"); | 5321 "invalid usage"); |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5500 CheckGLError(); | 5510 CheckGLError(); |
| 5501 } | 5511 } |
| 5502 | 5512 |
| 5503 // Include the auto-generated part of this file. We split this because it means | 5513 // Include the auto-generated part of this file. We split this because it means |
| 5504 // we can easily edit the non-auto generated parts right here in this file | 5514 // we can easily edit the non-auto generated parts right here in this file |
| 5505 // instead of having to edit some template or the code generator. | 5515 // instead of having to edit some template or the code generator. |
| 5506 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" | 5516 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" |
| 5507 | 5517 |
| 5508 } // namespace gles2 | 5518 } // namespace gles2 |
| 5509 } // namespace gpu | 5519 } // namespace gpu |
| OLD | NEW |