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 <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <list> | 10 #include <list> |
| (...skipping 7146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7157 state_.viewport_height = std::min(height, viewport_max_height_); | 7157 state_.viewport_height = std::min(height, viewport_max_height_); |
| 7158 glViewport(x, y, width, height); | 7158 glViewport(x, y, width, height); |
| 7159 } | 7159 } |
| 7160 | 7160 |
| 7161 error::Error GLES2DecoderImpl::HandleVertexAttribDivisorANGLE( | 7161 error::Error GLES2DecoderImpl::HandleVertexAttribDivisorANGLE( |
| 7162 uint32 immediate_data_size, const cmds::VertexAttribDivisorANGLE& c) { | 7162 uint32 immediate_data_size, const cmds::VertexAttribDivisorANGLE& c) { |
| 7163 if (!features().angle_instanced_arrays) { | 7163 if (!features().angle_instanced_arrays) { |
| 7164 LOCAL_SET_GL_ERROR( | 7164 LOCAL_SET_GL_ERROR( |
| 7165 GL_INVALID_OPERATION, | 7165 GL_INVALID_OPERATION, |
| 7166 "glVertexAttribDivisorANGLE", "function not available"); | 7166 "glVertexAttribDivisorANGLE", "function not available"); |
| 7167 return error::kNoError; | |
| 7167 } | 7168 } |
| 7168 GLuint index = c.index; | 7169 GLuint index = c.index; |
| 7169 GLuint divisor = c.divisor; | 7170 GLuint divisor = c.divisor; |
| 7170 if (index >= group_->max_vertex_attribs()) { | 7171 if (index >= group_->max_vertex_attribs()) { |
| 7171 LOCAL_SET_GL_ERROR( | 7172 LOCAL_SET_GL_ERROR( |
| 7172 GL_INVALID_VALUE, | 7173 GL_INVALID_VALUE, |
| 7173 "glVertexAttribDivisorANGLE", "index out of range"); | 7174 "glVertexAttribDivisorANGLE", "index out of range"); |
| 7174 return error::kNoError; | 7175 return error::kNoError; |
| 7175 } | 7176 } |
| 7176 | 7177 |
| (...skipping 1205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8382 if (!texture_ref) { | 8383 if (!texture_ref) { |
| 8383 LOCAL_SET_GL_ERROR( | 8384 LOCAL_SET_GL_ERROR( |
| 8384 GL_INVALID_OPERATION, | 8385 GL_INVALID_OPERATION, |
| 8385 "glCopyTexImage2D", "unknown texture for target"); | 8386 "glCopyTexImage2D", "unknown texture for target"); |
| 8386 return; | 8387 return; |
| 8387 } | 8388 } |
| 8388 Texture* texture = texture_ref->texture(); | 8389 Texture* texture = texture_ref->texture(); |
| 8389 if (texture->IsImmutable()) { | 8390 if (texture->IsImmutable()) { |
| 8390 LOCAL_SET_GL_ERROR( | 8391 LOCAL_SET_GL_ERROR( |
| 8391 GL_INVALID_OPERATION, "glCopyTexImage2D", "texture is immutable"); | 8392 GL_INVALID_OPERATION, "glCopyTexImage2D", "texture is immutable"); |
| 8393 return; | |
| 8392 } | 8394 } |
| 8393 if (!texture_manager()->ValidForTarget(target, level, width, height, 1) || | 8395 if (!texture_manager()->ValidForTarget(target, level, width, height, 1) || |
| 8394 border != 0) { | 8396 border != 0) { |
| 8395 LOCAL_SET_GL_ERROR( | 8397 LOCAL_SET_GL_ERROR( |
| 8396 GL_INVALID_VALUE, "glCopyTexImage2D", "dimensions out of range"); | 8398 GL_INVALID_VALUE, "glCopyTexImage2D", "dimensions out of range"); |
| 8397 return; | 8399 return; |
| 8398 } | 8400 } |
| 8399 if (!texture_manager()->ValidateFormatAndTypeCombination( | 8401 if (!texture_manager()->ValidateFormatAndTypeCombination( |
| 8400 state_.GetErrorState(), "glCopyTexImage2D", internal_format, | 8402 state_.GetErrorState(), "glCopyTexImage2D", internal_format, |
| 8401 GL_UNSIGNED_BYTE)) { | 8403 GL_UNSIGNED_BYTE)) { |
| (...skipping 1039 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 9441 reset_status_ = reset_status; | 9443 reset_status_ = reset_status; |
| 9442 current_decoder_error_ = error::kLostContext; | 9444 current_decoder_error_ = error::kLostContext; |
| 9443 } | 9445 } |
| 9444 | 9446 |
| 9445 error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM( | 9447 error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM( |
| 9446 uint32 immediate_data_size, const cmds::LoseContextCHROMIUM& c) { | 9448 uint32 immediate_data_size, const cmds::LoseContextCHROMIUM& c) { |
| 9447 GLenum current = static_cast<GLenum>(c.current); | 9449 GLenum current = static_cast<GLenum>(c.current); |
| 9448 GLenum other = static_cast<GLenum>(c.other); | 9450 GLenum other = static_cast<GLenum>(c.other); |
| 9449 if (!validators_->reset_status.IsValid(current)) { | 9451 if (!validators_->reset_status.IsValid(current)) { |
| 9450 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 9452 LOCAL_SET_GL_ERROR_INVALID_ENUM( |
| 9451 "glLoseContextCHROMIUM", current, "current"); | 9453 "glLoseContextCHROMIUM", current, "current"); |
|
piman
2014/05/21 17:00:35
return here too?
| |
| 9452 } | 9454 } |
| 9453 if (!validators_->reset_status.IsValid(other)) { | 9455 if (!validators_->reset_status.IsValid(other)) { |
| 9454 LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", other, "other"); | 9456 LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", other, "other"); |
|
piman
2014/05/21 17:00:35
And here?
| |
| 9455 } | 9457 } |
| 9456 group_->LoseContexts(other); | 9458 group_->LoseContexts(other); |
| 9457 reset_status_ = current; | 9459 reset_status_ = current; |
| 9458 current_decoder_error_ = error::kLostContext; | 9460 current_decoder_error_ = error::kLostContext; |
| 9459 return error::kLostContext; | 9461 return error::kLostContext; |
| 9460 } | 9462 } |
| 9461 | 9463 |
| 9462 error::Error GLES2DecoderImpl::HandleInsertSyncPointCHROMIUM( | 9464 error::Error GLES2DecoderImpl::HandleInsertSyncPointCHROMIUM( |
| 9463 uint32 immediate_data_size, const cmds::InsertSyncPointCHROMIUM& c) { | 9465 uint32 immediate_data_size, const cmds::InsertSyncPointCHROMIUM& c) { |
| 9464 return error::kUnknownCommand; | 9466 return error::kUnknownCommand; |
| (...skipping 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 10767 } | 10769 } |
| 10768 } | 10770 } |
| 10769 | 10771 |
| 10770 // Include the auto-generated part of this file. We split this because it means | 10772 // Include the auto-generated part of this file. We split this because it means |
| 10771 // we can easily edit the non-auto generated parts right here in this file | 10773 // we can easily edit the non-auto generated parts right here in this file |
| 10772 // instead of having to edit some template or the code generator. | 10774 // instead of having to edit some template or the code generator. |
| 10773 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 10775 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 10774 | 10776 |
| 10775 } // namespace gles2 | 10777 } // namespace gles2 |
| 10776 } // namespace gpu | 10778 } // namespace gpu |
| OLD | NEW |