| 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 // This file is auto-generated from | 5 // This file is auto-generated from |
| 6 // gpu/command_buffer/build_gles2_cmd_buffer.py | 6 // gpu/command_buffer/build_gles2_cmd_buffer.py |
| 7 // DO NOT EDIT! | 7 // DO NOT EDIT! |
| 8 | 8 |
| 9 // It is included by gles2_cmd_decoder.cc | 9 // It is included by gles2_cmd_decoder.cc |
| 10 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 10 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 GLuint shader = c.shader; | 23 GLuint shader = c.shader; |
| 24 DoAttachShader(program, shader); | 24 DoAttachShader(program, shader); |
| 25 return error::kNoError; | 25 return error::kNoError; |
| 26 } | 26 } |
| 27 | 27 |
| 28 error::Error GLES2DecoderImpl::HandleBindBuffer( | 28 error::Error GLES2DecoderImpl::HandleBindBuffer( |
| 29 uint32 immediate_data_size, const gles2::BindBuffer& c) { | 29 uint32 immediate_data_size, const gles2::BindBuffer& c) { |
| 30 GLenum target = static_cast<GLenum>(c.target); | 30 GLenum target = static_cast<GLenum>(c.target); |
| 31 GLuint buffer = c.buffer; | 31 GLuint buffer = c.buffer; |
| 32 if (!validators_->buffer_target.IsValid(target)) { | 32 if (!validators_->buffer_target.IsValid(target)) { |
| 33 SetGLError(GL_INVALID_ENUM, "glBindBuffer: target GL_INVALID_ENUM"); | 33 SetGLError(GL_INVALID_ENUM, "glBindBuffer", "target GL_INVALID_ENUM"); |
| 34 return error::kNoError; | 34 return error::kNoError; |
| 35 } | 35 } |
| 36 DoBindBuffer(target, buffer); | 36 DoBindBuffer(target, buffer); |
| 37 return error::kNoError; | 37 return error::kNoError; |
| 38 } | 38 } |
| 39 | 39 |
| 40 error::Error GLES2DecoderImpl::HandleBindFramebuffer( | 40 error::Error GLES2DecoderImpl::HandleBindFramebuffer( |
| 41 uint32 immediate_data_size, const gles2::BindFramebuffer& c) { | 41 uint32 immediate_data_size, const gles2::BindFramebuffer& c) { |
| 42 GLenum target = static_cast<GLenum>(c.target); | 42 GLenum target = static_cast<GLenum>(c.target); |
| 43 GLuint framebuffer = c.framebuffer; | 43 GLuint framebuffer = c.framebuffer; |
| 44 if (!validators_->frame_buffer_target.IsValid(target)) { | 44 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 45 SetGLError(GL_INVALID_ENUM, "glBindFramebuffer: target GL_INVALID_ENUM"); | 45 SetGLError(GL_INVALID_ENUM, "glBindFramebuffer", "target GL_INVALID_ENUM"); |
| 46 return error::kNoError; | 46 return error::kNoError; |
| 47 } | 47 } |
| 48 DoBindFramebuffer(target, framebuffer); | 48 DoBindFramebuffer(target, framebuffer); |
| 49 return error::kNoError; | 49 return error::kNoError; |
| 50 } | 50 } |
| 51 | 51 |
| 52 error::Error GLES2DecoderImpl::HandleBindRenderbuffer( | 52 error::Error GLES2DecoderImpl::HandleBindRenderbuffer( |
| 53 uint32 immediate_data_size, const gles2::BindRenderbuffer& c) { | 53 uint32 immediate_data_size, const gles2::BindRenderbuffer& c) { |
| 54 GLenum target = static_cast<GLenum>(c.target); | 54 GLenum target = static_cast<GLenum>(c.target); |
| 55 GLuint renderbuffer = c.renderbuffer; | 55 GLuint renderbuffer = c.renderbuffer; |
| 56 if (!validators_->render_buffer_target.IsValid(target)) { | 56 if (!validators_->render_buffer_target.IsValid(target)) { |
| 57 SetGLError(GL_INVALID_ENUM, "glBindRenderbuffer: target GL_INVALID_ENUM"); | 57 SetGLError( |
| 58 GL_INVALID_ENUM, "glBindRenderbuffer", "target GL_INVALID_ENUM"); |
| 58 return error::kNoError; | 59 return error::kNoError; |
| 59 } | 60 } |
| 60 DoBindRenderbuffer(target, renderbuffer); | 61 DoBindRenderbuffer(target, renderbuffer); |
| 61 return error::kNoError; | 62 return error::kNoError; |
| 62 } | 63 } |
| 63 | 64 |
| 64 error::Error GLES2DecoderImpl::HandleBindTexture( | 65 error::Error GLES2DecoderImpl::HandleBindTexture( |
| 65 uint32 immediate_data_size, const gles2::BindTexture& c) { | 66 uint32 immediate_data_size, const gles2::BindTexture& c) { |
| 66 GLenum target = static_cast<GLenum>(c.target); | 67 GLenum target = static_cast<GLenum>(c.target); |
| 67 GLuint texture = c.texture; | 68 GLuint texture = c.texture; |
| 68 if (!validators_->texture_bind_target.IsValid(target)) { | 69 if (!validators_->texture_bind_target.IsValid(target)) { |
| 69 SetGLError(GL_INVALID_ENUM, "glBindTexture: target GL_INVALID_ENUM"); | 70 SetGLError(GL_INVALID_ENUM, "glBindTexture", "target GL_INVALID_ENUM"); |
| 70 return error::kNoError; | 71 return error::kNoError; |
| 71 } | 72 } |
| 72 DoBindTexture(target, texture); | 73 DoBindTexture(target, texture); |
| 73 return error::kNoError; | 74 return error::kNoError; |
| 74 } | 75 } |
| 75 | 76 |
| 76 error::Error GLES2DecoderImpl::HandleBlendColor( | 77 error::Error GLES2DecoderImpl::HandleBlendColor( |
| 77 uint32 immediate_data_size, const gles2::BlendColor& c) { | 78 uint32 immediate_data_size, const gles2::BlendColor& c) { |
| 78 GLclampf red = static_cast<GLclampf>(c.red); | 79 GLclampf red = static_cast<GLclampf>(c.red); |
| 79 GLclampf green = static_cast<GLclampf>(c.green); | 80 GLclampf green = static_cast<GLclampf>(c.green); |
| 80 GLclampf blue = static_cast<GLclampf>(c.blue); | 81 GLclampf blue = static_cast<GLclampf>(c.blue); |
| 81 GLclampf alpha = static_cast<GLclampf>(c.alpha); | 82 GLclampf alpha = static_cast<GLclampf>(c.alpha); |
| 82 glBlendColor(red, green, blue, alpha); | 83 glBlendColor(red, green, blue, alpha); |
| 83 return error::kNoError; | 84 return error::kNoError; |
| 84 } | 85 } |
| 85 | 86 |
| 86 error::Error GLES2DecoderImpl::HandleBlendEquation( | 87 error::Error GLES2DecoderImpl::HandleBlendEquation( |
| 87 uint32 immediate_data_size, const gles2::BlendEquation& c) { | 88 uint32 immediate_data_size, const gles2::BlendEquation& c) { |
| 88 GLenum mode = static_cast<GLenum>(c.mode); | 89 GLenum mode = static_cast<GLenum>(c.mode); |
| 89 if (!validators_->equation.IsValid(mode)) { | 90 if (!validators_->equation.IsValid(mode)) { |
| 90 SetGLError(GL_INVALID_ENUM, "glBlendEquation: mode GL_INVALID_ENUM"); | 91 SetGLError(GL_INVALID_ENUM, "glBlendEquation", "mode GL_INVALID_ENUM"); |
| 91 return error::kNoError; | 92 return error::kNoError; |
| 92 } | 93 } |
| 93 glBlendEquation(mode); | 94 glBlendEquation(mode); |
| 94 return error::kNoError; | 95 return error::kNoError; |
| 95 } | 96 } |
| 96 | 97 |
| 97 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( | 98 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( |
| 98 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) { | 99 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) { |
| 99 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); | 100 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); |
| 100 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); | 101 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); |
| 101 if (!validators_->equation.IsValid(modeRGB)) { | 102 if (!validators_->equation.IsValid(modeRGB)) { |
| 102 SetGLError( | 103 SetGLError( |
| 103 GL_INVALID_ENUM, "glBlendEquationSeparate: modeRGB GL_INVALID_ENUM"); | 104 GL_INVALID_ENUM, "glBlendEquationSeparate", "modeRGB GL_INVALID_ENUM"); |
| 104 return error::kNoError; | 105 return error::kNoError; |
| 105 } | 106 } |
| 106 if (!validators_->equation.IsValid(modeAlpha)) { | 107 if (!validators_->equation.IsValid(modeAlpha)) { |
| 107 SetGLError( | 108 SetGLError( |
| 108 GL_INVALID_ENUM, "glBlendEquationSeparate: modeAlpha GL_INVALID_ENUM"); | 109 GL_INVALID_ENUM, "glBlendEquationSeparate", "modeAlpha GL_INVALID_ENUM")
; // NOLINT |
| 109 return error::kNoError; | 110 return error::kNoError; |
| 110 } | 111 } |
| 111 glBlendEquationSeparate(modeRGB, modeAlpha); | 112 glBlendEquationSeparate(modeRGB, modeAlpha); |
| 112 return error::kNoError; | 113 return error::kNoError; |
| 113 } | 114 } |
| 114 | 115 |
| 115 error::Error GLES2DecoderImpl::HandleBlendFunc( | 116 error::Error GLES2DecoderImpl::HandleBlendFunc( |
| 116 uint32 immediate_data_size, const gles2::BlendFunc& c) { | 117 uint32 immediate_data_size, const gles2::BlendFunc& c) { |
| 117 GLenum sfactor = static_cast<GLenum>(c.sfactor); | 118 GLenum sfactor = static_cast<GLenum>(c.sfactor); |
| 118 GLenum dfactor = static_cast<GLenum>(c.dfactor); | 119 GLenum dfactor = static_cast<GLenum>(c.dfactor); |
| 119 if (!validators_->src_blend_factor.IsValid(sfactor)) { | 120 if (!validators_->src_blend_factor.IsValid(sfactor)) { |
| 120 SetGLError(GL_INVALID_ENUM, "glBlendFunc: sfactor GL_INVALID_ENUM"); | 121 SetGLError(GL_INVALID_ENUM, "glBlendFunc", "sfactor GL_INVALID_ENUM"); |
| 121 return error::kNoError; | 122 return error::kNoError; |
| 122 } | 123 } |
| 123 if (!validators_->dst_blend_factor.IsValid(dfactor)) { | 124 if (!validators_->dst_blend_factor.IsValid(dfactor)) { |
| 124 SetGLError(GL_INVALID_ENUM, "glBlendFunc: dfactor GL_INVALID_ENUM"); | 125 SetGLError(GL_INVALID_ENUM, "glBlendFunc", "dfactor GL_INVALID_ENUM"); |
| 125 return error::kNoError; | 126 return error::kNoError; |
| 126 } | 127 } |
| 127 glBlendFunc(sfactor, dfactor); | 128 glBlendFunc(sfactor, dfactor); |
| 128 return error::kNoError; | 129 return error::kNoError; |
| 129 } | 130 } |
| 130 | 131 |
| 131 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( | 132 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( |
| 132 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) { | 133 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) { |
| 133 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); | 134 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); |
| 134 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); | 135 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); |
| 135 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); | 136 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); |
| 136 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); | 137 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); |
| 137 if (!validators_->src_blend_factor.IsValid(srcRGB)) { | 138 if (!validators_->src_blend_factor.IsValid(srcRGB)) { |
| 138 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: srcRGB GL_INVALID_ENUM"); | 139 SetGLError( |
| 140 GL_INVALID_ENUM, "glBlendFuncSeparate", "srcRGB GL_INVALID_ENUM"); |
| 139 return error::kNoError; | 141 return error::kNoError; |
| 140 } | 142 } |
| 141 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { | 143 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { |
| 142 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: dstRGB GL_INVALID_ENUM"); | 144 SetGLError( |
| 145 GL_INVALID_ENUM, "glBlendFuncSeparate", "dstRGB GL_INVALID_ENUM"); |
| 143 return error::kNoError; | 146 return error::kNoError; |
| 144 } | 147 } |
| 145 if (!validators_->src_blend_factor.IsValid(srcAlpha)) { | 148 if (!validators_->src_blend_factor.IsValid(srcAlpha)) { |
| 146 SetGLError( | 149 SetGLError( |
| 147 GL_INVALID_ENUM, "glBlendFuncSeparate: srcAlpha GL_INVALID_ENUM"); | 150 GL_INVALID_ENUM, "glBlendFuncSeparate", "srcAlpha GL_INVALID_ENUM"); |
| 148 return error::kNoError; | 151 return error::kNoError; |
| 149 } | 152 } |
| 150 if (!validators_->dst_blend_factor.IsValid(dstAlpha)) { | 153 if (!validators_->dst_blend_factor.IsValid(dstAlpha)) { |
| 151 SetGLError( | 154 SetGLError( |
| 152 GL_INVALID_ENUM, "glBlendFuncSeparate: dstAlpha GL_INVALID_ENUM"); | 155 GL_INVALID_ENUM, "glBlendFuncSeparate", "dstAlpha GL_INVALID_ENUM"); |
| 153 return error::kNoError; | 156 return error::kNoError; |
| 154 } | 157 } |
| 155 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); | 158 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); |
| 156 return error::kNoError; | 159 return error::kNoError; |
| 157 } | 160 } |
| 158 | 161 |
| 159 error::Error GLES2DecoderImpl::HandleBufferSubData( | 162 error::Error GLES2DecoderImpl::HandleBufferSubData( |
| 160 uint32 immediate_data_size, const gles2::BufferSubData& c) { | 163 uint32 immediate_data_size, const gles2::BufferSubData& c) { |
| 161 GLenum target = static_cast<GLenum>(c.target); | 164 GLenum target = static_cast<GLenum>(c.target); |
| 162 GLintptr offset = static_cast<GLintptr>(c.offset); | 165 GLintptr offset = static_cast<GLintptr>(c.offset); |
| 163 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 166 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 164 uint32 data_size = size; | 167 uint32 data_size = size; |
| 165 const void* data = GetSharedMemoryAs<const void*>( | 168 const void* data = GetSharedMemoryAs<const void*>( |
| 166 c.data_shm_id, c.data_shm_offset, data_size); | 169 c.data_shm_id, c.data_shm_offset, data_size); |
| 167 if (!validators_->buffer_target.IsValid(target)) { | 170 if (!validators_->buffer_target.IsValid(target)) { |
| 168 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); | 171 SetGLError(GL_INVALID_ENUM, "glBufferSubData", "target GL_INVALID_ENUM"); |
| 169 return error::kNoError; | 172 return error::kNoError; |
| 170 } | 173 } |
| 171 if (size < 0) { | 174 if (size < 0) { |
| 172 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); | 175 SetGLError(GL_INVALID_VALUE, "glBufferSubData", "size < 0"); |
| 173 return error::kNoError; | 176 return error::kNoError; |
| 174 } | 177 } |
| 175 if (data == NULL) { | 178 if (data == NULL) { |
| 176 return error::kOutOfBounds; | 179 return error::kOutOfBounds; |
| 177 } | 180 } |
| 178 DoBufferSubData(target, offset, size, data); | 181 DoBufferSubData(target, offset, size, data); |
| 179 return error::kNoError; | 182 return error::kNoError; |
| 180 } | 183 } |
| 181 | 184 |
| 182 error::Error GLES2DecoderImpl::HandleBufferSubDataImmediate( | 185 error::Error GLES2DecoderImpl::HandleBufferSubDataImmediate( |
| 183 uint32 immediate_data_size, const gles2::BufferSubDataImmediate& c) { | 186 uint32 immediate_data_size, const gles2::BufferSubDataImmediate& c) { |
| 184 GLenum target = static_cast<GLenum>(c.target); | 187 GLenum target = static_cast<GLenum>(c.target); |
| 185 GLintptr offset = static_cast<GLintptr>(c.offset); | 188 GLintptr offset = static_cast<GLintptr>(c.offset); |
| 186 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 189 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 187 uint32 data_size = size; | 190 uint32 data_size = size; |
| 188 const void* data = GetImmediateDataAs<const void*>( | 191 const void* data = GetImmediateDataAs<const void*>( |
| 189 c, data_size, immediate_data_size); | 192 c, data_size, immediate_data_size); |
| 190 if (!validators_->buffer_target.IsValid(target)) { | 193 if (!validators_->buffer_target.IsValid(target)) { |
| 191 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); | 194 SetGLError(GL_INVALID_ENUM, "glBufferSubData", "target GL_INVALID_ENUM"); |
| 192 return error::kNoError; | 195 return error::kNoError; |
| 193 } | 196 } |
| 194 if (size < 0) { | 197 if (size < 0) { |
| 195 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); | 198 SetGLError(GL_INVALID_VALUE, "glBufferSubData", "size < 0"); |
| 196 return error::kNoError; | 199 return error::kNoError; |
| 197 } | 200 } |
| 198 if (data == NULL) { | 201 if (data == NULL) { |
| 199 return error::kOutOfBounds; | 202 return error::kOutOfBounds; |
| 200 } | 203 } |
| 201 DoBufferSubData(target, offset, size, data); | 204 DoBufferSubData(target, offset, size, data); |
| 202 return error::kNoError; | 205 return error::kNoError; |
| 203 } | 206 } |
| 204 | 207 |
| 205 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus( | 208 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus( |
| 206 uint32 immediate_data_size, const gles2::CheckFramebufferStatus& c) { | 209 uint32 immediate_data_size, const gles2::CheckFramebufferStatus& c) { |
| 207 GLenum target = static_cast<GLenum>(c.target); | 210 GLenum target = static_cast<GLenum>(c.target); |
| 208 typedef CheckFramebufferStatus::Result Result; | 211 typedef CheckFramebufferStatus::Result Result; |
| 209 Result* result_dst = GetSharedMemoryAs<Result*>( | 212 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 210 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 213 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 211 if (!result_dst) { | 214 if (!result_dst) { |
| 212 return error::kOutOfBounds; | 215 return error::kOutOfBounds; |
| 213 } | 216 } |
| 214 if (!validators_->frame_buffer_target.IsValid(target)) { | 217 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 215 SetGLError( | 218 SetGLError( |
| 216 GL_INVALID_ENUM, "glCheckFramebufferStatus: target GL_INVALID_ENUM"); | 219 GL_INVALID_ENUM, "glCheckFramebufferStatus", "target GL_INVALID_ENUM"); |
| 217 return error::kNoError; | 220 return error::kNoError; |
| 218 } | 221 } |
| 219 *result_dst = DoCheckFramebufferStatus(target); | 222 *result_dst = DoCheckFramebufferStatus(target); |
| 220 return error::kNoError; | 223 return error::kNoError; |
| 221 } | 224 } |
| 222 | 225 |
| 223 error::Error GLES2DecoderImpl::HandleClear( | 226 error::Error GLES2DecoderImpl::HandleClear( |
| 224 uint32 immediate_data_size, const gles2::Clear& c) { | 227 uint32 immediate_data_size, const gles2::Clear& c) { |
| 225 GLbitfield mask = static_cast<GLbitfield>(c.mask); | 228 GLbitfield mask = static_cast<GLbitfield>(c.mask); |
| 226 DoClear(mask); | 229 DoClear(mask); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 GLint yoffset = static_cast<GLint>(c.yoffset); | 279 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 277 GLsizei width = static_cast<GLsizei>(c.width); | 280 GLsizei width = static_cast<GLsizei>(c.width); |
| 278 GLsizei height = static_cast<GLsizei>(c.height); | 281 GLsizei height = static_cast<GLsizei>(c.height); |
| 279 GLenum format = static_cast<GLenum>(c.format); | 282 GLenum format = static_cast<GLenum>(c.format); |
| 280 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 283 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 281 uint32 data_size = imageSize; | 284 uint32 data_size = imageSize; |
| 282 const void* data = GetSharedMemoryAs<const void*>( | 285 const void* data = GetSharedMemoryAs<const void*>( |
| 283 c.data_shm_id, c.data_shm_offset, data_size); | 286 c.data_shm_id, c.data_shm_offset, data_size); |
| 284 if (!validators_->texture_target.IsValid(target)) { | 287 if (!validators_->texture_target.IsValid(target)) { |
| 285 SetGLError( | 288 SetGLError( |
| 286 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); | 289 GL_INVALID_ENUM, "glCompressedTexSubImage2D", "target GL_INVALID_ENUM"); |
| 287 return error::kNoError; | 290 return error::kNoError; |
| 288 } | 291 } |
| 289 if (width < 0) { | 292 if (width < 0) { |
| 290 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); | 293 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0"); |
| 291 return error::kNoError; | 294 return error::kNoError; |
| 292 } | 295 } |
| 293 if (height < 0) { | 296 if (height < 0) { |
| 294 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); | 297 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "height < 0"); |
| 295 return error::kNoError; | 298 return error::kNoError; |
| 296 } | 299 } |
| 297 if (!validators_->compressed_texture_format.IsValid(format)) { | 300 if (!validators_->compressed_texture_format.IsValid(format)) { |
| 298 SetGLError( | 301 SetGLError( |
| 299 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); | 302 GL_INVALID_ENUM, "glCompressedTexSubImage2D", "format GL_INVALID_ENUM"); |
| 300 return error::kNoError; | 303 return error::kNoError; |
| 301 } | 304 } |
| 302 if (imageSize < 0) { | 305 if (imageSize < 0) { |
| 303 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); | 306 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "imageSize < 0"); |
| 304 return error::kNoError; | 307 return error::kNoError; |
| 305 } | 308 } |
| 306 if (data == NULL) { | 309 if (data == NULL) { |
| 307 return error::kOutOfBounds; | 310 return error::kOutOfBounds; |
| 308 } | 311 } |
| 309 DoCompressedTexSubImage2D( | 312 DoCompressedTexSubImage2D( |
| 310 target, level, xoffset, yoffset, width, height, format, imageSize, data); | 313 target, level, xoffset, yoffset, width, height, format, imageSize, data); |
| 311 return error::kNoError; | 314 return error::kNoError; |
| 312 } | 315 } |
| 313 | 316 |
| 314 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2DImmediate( | 317 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2DImmediate( |
| 315 uint32 immediate_data_size, | 318 uint32 immediate_data_size, |
| 316 const gles2::CompressedTexSubImage2DImmediate& c) { | 319 const gles2::CompressedTexSubImage2DImmediate& c) { |
| 317 GLenum target = static_cast<GLenum>(c.target); | 320 GLenum target = static_cast<GLenum>(c.target); |
| 318 GLint level = static_cast<GLint>(c.level); | 321 GLint level = static_cast<GLint>(c.level); |
| 319 GLint xoffset = static_cast<GLint>(c.xoffset); | 322 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 320 GLint yoffset = static_cast<GLint>(c.yoffset); | 323 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 321 GLsizei width = static_cast<GLsizei>(c.width); | 324 GLsizei width = static_cast<GLsizei>(c.width); |
| 322 GLsizei height = static_cast<GLsizei>(c.height); | 325 GLsizei height = static_cast<GLsizei>(c.height); |
| 323 GLenum format = static_cast<GLenum>(c.format); | 326 GLenum format = static_cast<GLenum>(c.format); |
| 324 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 327 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 325 uint32 data_size = imageSize; | 328 uint32 data_size = imageSize; |
| 326 const void* data = GetImmediateDataAs<const void*>( | 329 const void* data = GetImmediateDataAs<const void*>( |
| 327 c, data_size, immediate_data_size); | 330 c, data_size, immediate_data_size); |
| 328 if (!validators_->texture_target.IsValid(target)) { | 331 if (!validators_->texture_target.IsValid(target)) { |
| 329 SetGLError( | 332 SetGLError( |
| 330 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); | 333 GL_INVALID_ENUM, "glCompressedTexSubImage2D", "target GL_INVALID_ENUM"); |
| 331 return error::kNoError; | 334 return error::kNoError; |
| 332 } | 335 } |
| 333 if (width < 0) { | 336 if (width < 0) { |
| 334 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); | 337 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0"); |
| 335 return error::kNoError; | 338 return error::kNoError; |
| 336 } | 339 } |
| 337 if (height < 0) { | 340 if (height < 0) { |
| 338 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); | 341 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "height < 0"); |
| 339 return error::kNoError; | 342 return error::kNoError; |
| 340 } | 343 } |
| 341 if (!validators_->compressed_texture_format.IsValid(format)) { | 344 if (!validators_->compressed_texture_format.IsValid(format)) { |
| 342 SetGLError( | 345 SetGLError( |
| 343 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); | 346 GL_INVALID_ENUM, "glCompressedTexSubImage2D", "format GL_INVALID_ENUM"); |
| 344 return error::kNoError; | 347 return error::kNoError; |
| 345 } | 348 } |
| 346 if (imageSize < 0) { | 349 if (imageSize < 0) { |
| 347 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); | 350 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D", "imageSize < 0"); |
| 348 return error::kNoError; | 351 return error::kNoError; |
| 349 } | 352 } |
| 350 if (data == NULL) { | 353 if (data == NULL) { |
| 351 return error::kOutOfBounds; | 354 return error::kOutOfBounds; |
| 352 } | 355 } |
| 353 DoCompressedTexSubImage2D( | 356 DoCompressedTexSubImage2D( |
| 354 target, level, xoffset, yoffset, width, height, format, imageSize, data); | 357 target, level, xoffset, yoffset, width, height, format, imageSize, data); |
| 355 return error::kNoError; | 358 return error::kNoError; |
| 356 } | 359 } |
| 357 | 360 |
| 358 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( | 361 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( |
| 359 uint32 immediate_data_size, const gles2::CopyTexImage2D& c) { | 362 uint32 immediate_data_size, const gles2::CopyTexImage2D& c) { |
| 360 GLenum target = static_cast<GLenum>(c.target); | 363 GLenum target = static_cast<GLenum>(c.target); |
| 361 GLint level = static_cast<GLint>(c.level); | 364 GLint level = static_cast<GLint>(c.level); |
| 362 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 365 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 363 GLint x = static_cast<GLint>(c.x); | 366 GLint x = static_cast<GLint>(c.x); |
| 364 GLint y = static_cast<GLint>(c.y); | 367 GLint y = static_cast<GLint>(c.y); |
| 365 GLsizei width = static_cast<GLsizei>(c.width); | 368 GLsizei width = static_cast<GLsizei>(c.width); |
| 366 GLsizei height = static_cast<GLsizei>(c.height); | 369 GLsizei height = static_cast<GLsizei>(c.height); |
| 367 GLint border = static_cast<GLint>(c.border); | 370 GLint border = static_cast<GLint>(c.border); |
| 368 if (!validators_->texture_target.IsValid(target)) { | 371 if (!validators_->texture_target.IsValid(target)) { |
| 369 SetGLError(GL_INVALID_ENUM, "glCopyTexImage2D: target GL_INVALID_ENUM"); | 372 SetGLError(GL_INVALID_ENUM, "glCopyTexImage2D", "target GL_INVALID_ENUM"); |
| 370 return error::kNoError; | 373 return error::kNoError; |
| 371 } | 374 } |
| 372 if (!validators_->texture_internal_format.IsValid(internalformat)) { | 375 if (!validators_->texture_internal_format.IsValid(internalformat)) { |
| 373 SetGLError( | 376 SetGLError( |
| 374 GL_INVALID_ENUM, "glCopyTexImage2D: internalformat GL_INVALID_ENUM"); | 377 GL_INVALID_ENUM, "glCopyTexImage2D", "internalformat GL_INVALID_ENUM"); |
| 375 return error::kNoError; | 378 return error::kNoError; |
| 376 } | 379 } |
| 377 if (width < 0) { | 380 if (width < 0) { |
| 378 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: width < 0"); | 381 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); |
| 379 return error::kNoError; | 382 return error::kNoError; |
| 380 } | 383 } |
| 381 if (height < 0) { | 384 if (height < 0) { |
| 382 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: height < 0"); | 385 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); |
| 383 return error::kNoError; | 386 return error::kNoError; |
| 384 } | 387 } |
| 385 if (!validators_->texture_border.IsValid(border)) { | 388 if (!validators_->texture_border.IsValid(border)) { |
| 386 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: border GL_INVALID_VALUE"); | 389 SetGLError( |
| 390 GL_INVALID_VALUE, "glCopyTexImage2D", "border GL_INVALID_VALUE"); |
| 387 return error::kNoError; | 391 return error::kNoError; |
| 388 } | 392 } |
| 389 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border); | 393 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border); |
| 390 return error::kNoError; | 394 return error::kNoError; |
| 391 } | 395 } |
| 392 | 396 |
| 393 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D( | 397 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D( |
| 394 uint32 immediate_data_size, const gles2::CopyTexSubImage2D& c) { | 398 uint32 immediate_data_size, const gles2::CopyTexSubImage2D& c) { |
| 395 GLenum target = static_cast<GLenum>(c.target); | 399 GLenum target = static_cast<GLenum>(c.target); |
| 396 GLint level = static_cast<GLint>(c.level); | 400 GLint level = static_cast<GLint>(c.level); |
| 397 GLint xoffset = static_cast<GLint>(c.xoffset); | 401 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 398 GLint yoffset = static_cast<GLint>(c.yoffset); | 402 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 399 GLint x = static_cast<GLint>(c.x); | 403 GLint x = static_cast<GLint>(c.x); |
| 400 GLint y = static_cast<GLint>(c.y); | 404 GLint y = static_cast<GLint>(c.y); |
| 401 GLsizei width = static_cast<GLsizei>(c.width); | 405 GLsizei width = static_cast<GLsizei>(c.width); |
| 402 GLsizei height = static_cast<GLsizei>(c.height); | 406 GLsizei height = static_cast<GLsizei>(c.height); |
| 403 if (!validators_->texture_target.IsValid(target)) { | 407 if (!validators_->texture_target.IsValid(target)) { |
| 404 SetGLError(GL_INVALID_ENUM, "glCopyTexSubImage2D: target GL_INVALID_ENUM"); | 408 SetGLError( |
| 409 GL_INVALID_ENUM, "glCopyTexSubImage2D", "target GL_INVALID_ENUM"); |
| 405 return error::kNoError; | 410 return error::kNoError; |
| 406 } | 411 } |
| 407 if (width < 0) { | 412 if (width < 0) { |
| 408 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: width < 0"); | 413 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); |
| 409 return error::kNoError; | 414 return error::kNoError; |
| 410 } | 415 } |
| 411 if (height < 0) { | 416 if (height < 0) { |
| 412 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: height < 0"); | 417 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); |
| 413 return error::kNoError; | 418 return error::kNoError; |
| 414 } | 419 } |
| 415 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); | 420 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); |
| 416 return error::kNoError; | 421 return error::kNoError; |
| 417 } | 422 } |
| 418 | 423 |
| 419 error::Error GLES2DecoderImpl::HandleCreateProgram( | 424 error::Error GLES2DecoderImpl::HandleCreateProgram( |
| 420 uint32 immediate_data_size, const gles2::CreateProgram& c) { | 425 uint32 immediate_data_size, const gles2::CreateProgram& c) { |
| 421 uint32 client_id = c.client_id; | 426 uint32 client_id = c.client_id; |
| 422 if (!CreateProgramHelper(client_id)) { | 427 if (!CreateProgramHelper(client_id)) { |
| 423 return error::kInvalidArguments; | 428 return error::kInvalidArguments; |
| 424 } | 429 } |
| 425 return error::kNoError; | 430 return error::kNoError; |
| 426 } | 431 } |
| 427 | 432 |
| 428 error::Error GLES2DecoderImpl::HandleCreateShader( | 433 error::Error GLES2DecoderImpl::HandleCreateShader( |
| 429 uint32 immediate_data_size, const gles2::CreateShader& c) { | 434 uint32 immediate_data_size, const gles2::CreateShader& c) { |
| 430 GLenum type = static_cast<GLenum>(c.type); | 435 GLenum type = static_cast<GLenum>(c.type); |
| 431 if (!validators_->shader_type.IsValid(type)) { | 436 if (!validators_->shader_type.IsValid(type)) { |
| 432 SetGLError(GL_INVALID_ENUM, "glCreateShader: type GL_INVALID_ENUM"); | 437 SetGLError(GL_INVALID_ENUM, "glCreateShader", "type GL_INVALID_ENUM"); |
| 433 return error::kNoError; | 438 return error::kNoError; |
| 434 } | 439 } |
| 435 uint32 client_id = c.client_id; | 440 uint32 client_id = c.client_id; |
| 436 if (!CreateShaderHelper(type, client_id)) { | 441 if (!CreateShaderHelper(type, client_id)) { |
| 437 return error::kInvalidArguments; | 442 return error::kInvalidArguments; |
| 438 } | 443 } |
| 439 return error::kNoError; | 444 return error::kNoError; |
| 440 } | 445 } |
| 441 | 446 |
| 442 error::Error GLES2DecoderImpl::HandleCullFace( | 447 error::Error GLES2DecoderImpl::HandleCullFace( |
| 443 uint32 immediate_data_size, const gles2::CullFace& c) { | 448 uint32 immediate_data_size, const gles2::CullFace& c) { |
| 444 GLenum mode = static_cast<GLenum>(c.mode); | 449 GLenum mode = static_cast<GLenum>(c.mode); |
| 445 if (!validators_->face_type.IsValid(mode)) { | 450 if (!validators_->face_type.IsValid(mode)) { |
| 446 SetGLError(GL_INVALID_ENUM, "glCullFace: mode GL_INVALID_ENUM"); | 451 SetGLError(GL_INVALID_ENUM, "glCullFace", "mode GL_INVALID_ENUM"); |
| 447 return error::kNoError; | 452 return error::kNoError; |
| 448 } | 453 } |
| 449 glCullFace(mode); | 454 glCullFace(mode); |
| 450 return error::kNoError; | 455 return error::kNoError; |
| 451 } | 456 } |
| 452 | 457 |
| 453 error::Error GLES2DecoderImpl::HandleDeleteBuffers( | 458 error::Error GLES2DecoderImpl::HandleDeleteBuffers( |
| 454 uint32 immediate_data_size, const gles2::DeleteBuffers& c) { | 459 uint32 immediate_data_size, const gles2::DeleteBuffers& c) { |
| 455 GLsizei n = static_cast<GLsizei>(c.n); | 460 GLsizei n = static_cast<GLsizei>(c.n); |
| 456 uint32 data_size; | 461 uint32 data_size; |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 return error::kOutOfBounds; | 580 return error::kOutOfBounds; |
| 576 } | 581 } |
| 577 DeleteTexturesHelper(n, textures); | 582 DeleteTexturesHelper(n, textures); |
| 578 return error::kNoError; | 583 return error::kNoError; |
| 579 } | 584 } |
| 580 | 585 |
| 581 error::Error GLES2DecoderImpl::HandleDepthFunc( | 586 error::Error GLES2DecoderImpl::HandleDepthFunc( |
| 582 uint32 immediate_data_size, const gles2::DepthFunc& c) { | 587 uint32 immediate_data_size, const gles2::DepthFunc& c) { |
| 583 GLenum func = static_cast<GLenum>(c.func); | 588 GLenum func = static_cast<GLenum>(c.func); |
| 584 if (!validators_->cmp_function.IsValid(func)) { | 589 if (!validators_->cmp_function.IsValid(func)) { |
| 585 SetGLError(GL_INVALID_ENUM, "glDepthFunc: func GL_INVALID_ENUM"); | 590 SetGLError(GL_INVALID_ENUM, "glDepthFunc", "func GL_INVALID_ENUM"); |
| 586 return error::kNoError; | 591 return error::kNoError; |
| 587 } | 592 } |
| 588 glDepthFunc(func); | 593 glDepthFunc(func); |
| 589 return error::kNoError; | 594 return error::kNoError; |
| 590 } | 595 } |
| 591 | 596 |
| 592 error::Error GLES2DecoderImpl::HandleDepthMask( | 597 error::Error GLES2DecoderImpl::HandleDepthMask( |
| 593 uint32 immediate_data_size, const gles2::DepthMask& c) { | 598 uint32 immediate_data_size, const gles2::DepthMask& c) { |
| 594 GLboolean flag = static_cast<GLboolean>(c.flag); | 599 GLboolean flag = static_cast<GLboolean>(c.flag); |
| 595 DoDepthMask(flag); | 600 DoDepthMask(flag); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 609 GLuint program = c.program; | 614 GLuint program = c.program; |
| 610 GLuint shader = c.shader; | 615 GLuint shader = c.shader; |
| 611 DoDetachShader(program, shader); | 616 DoDetachShader(program, shader); |
| 612 return error::kNoError; | 617 return error::kNoError; |
| 613 } | 618 } |
| 614 | 619 |
| 615 error::Error GLES2DecoderImpl::HandleDisable( | 620 error::Error GLES2DecoderImpl::HandleDisable( |
| 616 uint32 immediate_data_size, const gles2::Disable& c) { | 621 uint32 immediate_data_size, const gles2::Disable& c) { |
| 617 GLenum cap = static_cast<GLenum>(c.cap); | 622 GLenum cap = static_cast<GLenum>(c.cap); |
| 618 if (!validators_->capability.IsValid(cap)) { | 623 if (!validators_->capability.IsValid(cap)) { |
| 619 SetGLError(GL_INVALID_ENUM, "glDisable: cap GL_INVALID_ENUM"); | 624 SetGLError(GL_INVALID_ENUM, "glDisable", "cap GL_INVALID_ENUM"); |
| 620 return error::kNoError; | 625 return error::kNoError; |
| 621 } | 626 } |
| 622 DoDisable(cap); | 627 DoDisable(cap); |
| 623 return error::kNoError; | 628 return error::kNoError; |
| 624 } | 629 } |
| 625 | 630 |
| 626 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray( | 631 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray( |
| 627 uint32 immediate_data_size, const gles2::DisableVertexAttribArray& c) { | 632 uint32 immediate_data_size, const gles2::DisableVertexAttribArray& c) { |
| 628 GLuint index = static_cast<GLuint>(c.index); | 633 GLuint index = static_cast<GLuint>(c.index); |
| 629 DoDisableVertexAttribArray(index); | 634 DoDisableVertexAttribArray(index); |
| 630 return error::kNoError; | 635 return error::kNoError; |
| 631 } | 636 } |
| 632 | 637 |
| 633 error::Error GLES2DecoderImpl::HandleEnable( | 638 error::Error GLES2DecoderImpl::HandleEnable( |
| 634 uint32 immediate_data_size, const gles2::Enable& c) { | 639 uint32 immediate_data_size, const gles2::Enable& c) { |
| 635 GLenum cap = static_cast<GLenum>(c.cap); | 640 GLenum cap = static_cast<GLenum>(c.cap); |
| 636 if (!validators_->capability.IsValid(cap)) { | 641 if (!validators_->capability.IsValid(cap)) { |
| 637 SetGLError(GL_INVALID_ENUM, "glEnable: cap GL_INVALID_ENUM"); | 642 SetGLError(GL_INVALID_ENUM, "glEnable", "cap GL_INVALID_ENUM"); |
| 638 return error::kNoError; | 643 return error::kNoError; |
| 639 } | 644 } |
| 640 DoEnable(cap); | 645 DoEnable(cap); |
| 641 return error::kNoError; | 646 return error::kNoError; |
| 642 } | 647 } |
| 643 | 648 |
| 644 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray( | 649 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray( |
| 645 uint32 immediate_data_size, const gles2::EnableVertexAttribArray& c) { | 650 uint32 immediate_data_size, const gles2::EnableVertexAttribArray& c) { |
| 646 GLuint index = static_cast<GLuint>(c.index); | 651 GLuint index = static_cast<GLuint>(c.index); |
| 647 DoEnableVertexAttribArray(index); | 652 DoEnableVertexAttribArray(index); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 661 } | 666 } |
| 662 | 667 |
| 663 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( | 668 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( |
| 664 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { | 669 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { |
| 665 GLenum target = static_cast<GLenum>(c.target); | 670 GLenum target = static_cast<GLenum>(c.target); |
| 666 GLenum attachment = static_cast<GLenum>(c.attachment); | 671 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 667 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); | 672 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); |
| 668 GLuint renderbuffer = c.renderbuffer; | 673 GLuint renderbuffer = c.renderbuffer; |
| 669 if (!validators_->frame_buffer_target.IsValid(target)) { | 674 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 670 SetGLError( | 675 SetGLError( |
| 671 GL_INVALID_ENUM, "glFramebufferRenderbuffer: target GL_INVALID_ENUM"); | 676 GL_INVALID_ENUM, "glFramebufferRenderbuffer", "target GL_INVALID_ENUM"); |
| 672 return error::kNoError; | 677 return error::kNoError; |
| 673 } | 678 } |
| 674 if (!validators_->attachment.IsValid(attachment)) { | 679 if (!validators_->attachment.IsValid(attachment)) { |
| 675 SetGLError( | 680 SetGLError( |
| 676 GL_INVALID_ENUM, | 681 GL_INVALID_ENUM, "glFramebufferRenderbuffer", "attachment GL_INVALID_ENU
M"); // NOLINT |
| 677 "glFramebufferRenderbuffer: attachment GL_INVALID_ENUM"); | |
| 678 return error::kNoError; | 682 return error::kNoError; |
| 679 } | 683 } |
| 680 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { | 684 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { |
| 681 SetGLError( | 685 SetGLError( |
| 682 GL_INVALID_ENUM, | 686 GL_INVALID_ENUM, "glFramebufferRenderbuffer", "renderbuffertarget GL_INV
ALID_ENUM"); // NOLINT |
| 683 "glFramebufferRenderbuffer: renderbuffertarget GL_INVALID_ENUM"); | |
| 684 return error::kNoError; | 687 return error::kNoError; |
| 685 } | 688 } |
| 686 DoFramebufferRenderbuffer( | 689 DoFramebufferRenderbuffer( |
| 687 target, attachment, renderbuffertarget, renderbuffer); | 690 target, attachment, renderbuffertarget, renderbuffer); |
| 688 return error::kNoError; | 691 return error::kNoError; |
| 689 } | 692 } |
| 690 | 693 |
| 691 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( | 694 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( |
| 692 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { | 695 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { |
| 693 GLenum target = static_cast<GLenum>(c.target); | 696 GLenum target = static_cast<GLenum>(c.target); |
| 694 GLenum attachment = static_cast<GLenum>(c.attachment); | 697 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 695 GLenum textarget = static_cast<GLenum>(c.textarget); | 698 GLenum textarget = static_cast<GLenum>(c.textarget); |
| 696 GLuint texture = c.texture; | 699 GLuint texture = c.texture; |
| 697 GLint level = static_cast<GLint>(c.level); | 700 GLint level = static_cast<GLint>(c.level); |
| 698 if (!validators_->frame_buffer_target.IsValid(target)) { | 701 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 699 SetGLError( | 702 SetGLError( |
| 700 GL_INVALID_ENUM, "glFramebufferTexture2D: target GL_INVALID_ENUM"); | 703 GL_INVALID_ENUM, "glFramebufferTexture2D", "target GL_INVALID_ENUM"); |
| 701 return error::kNoError; | 704 return error::kNoError; |
| 702 } | 705 } |
| 703 if (!validators_->attachment.IsValid(attachment)) { | 706 if (!validators_->attachment.IsValid(attachment)) { |
| 704 SetGLError( | 707 SetGLError( |
| 705 GL_INVALID_ENUM, "glFramebufferTexture2D: attachment GL_INVALID_ENUM"); | 708 GL_INVALID_ENUM, "glFramebufferTexture2D", "attachment GL_INVALID_ENUM")
; // NOLINT |
| 706 return error::kNoError; | 709 return error::kNoError; |
| 707 } | 710 } |
| 708 if (!validators_->texture_target.IsValid(textarget)) { | 711 if (!validators_->texture_target.IsValid(textarget)) { |
| 709 SetGLError( | 712 SetGLError( |
| 710 GL_INVALID_ENUM, "glFramebufferTexture2D: textarget GL_INVALID_ENUM"); | 713 GL_INVALID_ENUM, "glFramebufferTexture2D", "textarget GL_INVALID_ENUM"); |
| 711 return error::kNoError; | 714 return error::kNoError; |
| 712 } | 715 } |
| 713 if (!validators_->zero_only.IsValid(level)) { | 716 if (!validators_->zero_only.IsValid(level)) { |
| 714 SetGLError( | 717 SetGLError( |
| 715 GL_INVALID_VALUE, "glFramebufferTexture2D: level GL_INVALID_VALUE"); | 718 GL_INVALID_VALUE, "glFramebufferTexture2D", "level GL_INVALID_VALUE"); |
| 716 return error::kNoError; | 719 return error::kNoError; |
| 717 } | 720 } |
| 718 DoFramebufferTexture2D(target, attachment, textarget, texture, level); | 721 DoFramebufferTexture2D(target, attachment, textarget, texture, level); |
| 719 return error::kNoError; | 722 return error::kNoError; |
| 720 } | 723 } |
| 721 | 724 |
| 722 error::Error GLES2DecoderImpl::HandleFrontFace( | 725 error::Error GLES2DecoderImpl::HandleFrontFace( |
| 723 uint32 immediate_data_size, const gles2::FrontFace& c) { | 726 uint32 immediate_data_size, const gles2::FrontFace& c) { |
| 724 GLenum mode = static_cast<GLenum>(c.mode); | 727 GLenum mode = static_cast<GLenum>(c.mode); |
| 725 if (!validators_->face_mode.IsValid(mode)) { | 728 if (!validators_->face_mode.IsValid(mode)) { |
| 726 SetGLError(GL_INVALID_ENUM, "glFrontFace: mode GL_INVALID_ENUM"); | 729 SetGLError(GL_INVALID_ENUM, "glFrontFace", "mode GL_INVALID_ENUM"); |
| 727 return error::kNoError; | 730 return error::kNoError; |
| 728 } | 731 } |
| 729 glFrontFace(mode); | 732 glFrontFace(mode); |
| 730 return error::kNoError; | 733 return error::kNoError; |
| 731 } | 734 } |
| 732 | 735 |
| 733 error::Error GLES2DecoderImpl::HandleGenBuffers( | 736 error::Error GLES2DecoderImpl::HandleGenBuffers( |
| 734 uint32 immediate_data_size, const gles2::GenBuffers& c) { | 737 uint32 immediate_data_size, const gles2::GenBuffers& c) { |
| 735 GLsizei n = static_cast<GLsizei>(c.n); | 738 GLsizei n = static_cast<GLsizei>(c.n); |
| 736 uint32 data_size; | 739 uint32 data_size; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 763 if (!GenBuffersHelper(n, buffers)) { | 766 if (!GenBuffersHelper(n, buffers)) { |
| 764 return error::kInvalidArguments; | 767 return error::kInvalidArguments; |
| 765 } | 768 } |
| 766 return error::kNoError; | 769 return error::kNoError; |
| 767 } | 770 } |
| 768 | 771 |
| 769 error::Error GLES2DecoderImpl::HandleGenerateMipmap( | 772 error::Error GLES2DecoderImpl::HandleGenerateMipmap( |
| 770 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { | 773 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { |
| 771 GLenum target = static_cast<GLenum>(c.target); | 774 GLenum target = static_cast<GLenum>(c.target); |
| 772 if (!validators_->texture_bind_target.IsValid(target)) { | 775 if (!validators_->texture_bind_target.IsValid(target)) { |
| 773 SetGLError(GL_INVALID_ENUM, "glGenerateMipmap: target GL_INVALID_ENUM"); | 776 SetGLError(GL_INVALID_ENUM, "glGenerateMipmap", "target GL_INVALID_ENUM"); |
| 774 return error::kNoError; | 777 return error::kNoError; |
| 775 } | 778 } |
| 776 DoGenerateMipmap(target); | 779 DoGenerateMipmap(target); |
| 777 return error::kNoError; | 780 return error::kNoError; |
| 778 } | 781 } |
| 779 | 782 |
| 780 error::Error GLES2DecoderImpl::HandleGenFramebuffers( | 783 error::Error GLES2DecoderImpl::HandleGenFramebuffers( |
| 781 uint32 immediate_data_size, const gles2::GenFramebuffers& c) { | 784 uint32 immediate_data_size, const gles2::GenFramebuffers& c) { |
| 782 GLsizei n = static_cast<GLsizei>(c.n); | 785 GLsizei n = static_cast<GLsizei>(c.n); |
| 783 uint32 data_size; | 786 uint32 data_size; |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 error::Error GLES2DecoderImpl::HandleGetBooleanv( | 891 error::Error GLES2DecoderImpl::HandleGetBooleanv( |
| 889 uint32 immediate_data_size, const gles2::GetBooleanv& c) { | 892 uint32 immediate_data_size, const gles2::GetBooleanv& c) { |
| 890 GLenum pname = static_cast<GLenum>(c.pname); | 893 GLenum pname = static_cast<GLenum>(c.pname); |
| 891 typedef GetBooleanv::Result Result; | 894 typedef GetBooleanv::Result Result; |
| 892 GLsizei num_values = 0; | 895 GLsizei num_values = 0; |
| 893 GetNumValuesReturnedForGLGet(pname, &num_values); | 896 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 894 Result* result = GetSharedMemoryAs<Result*>( | 897 Result* result = GetSharedMemoryAs<Result*>( |
| 895 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 898 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 896 GLboolean* params = result ? result->GetData() : NULL; | 899 GLboolean* params = result ? result->GetData() : NULL; |
| 897 if (!validators_->g_l_state.IsValid(pname)) { | 900 if (!validators_->g_l_state.IsValid(pname)) { |
| 898 SetGLError(GL_INVALID_ENUM, "glGetBooleanv: pname GL_INVALID_ENUM"); | 901 SetGLError(GL_INVALID_ENUM, "glGetBooleanv", "pname GL_INVALID_ENUM"); |
| 899 return error::kNoError; | 902 return error::kNoError; |
| 900 } | 903 } |
| 901 if (params == NULL) { | 904 if (params == NULL) { |
| 902 return error::kOutOfBounds; | 905 return error::kOutOfBounds; |
| 903 } | 906 } |
| 904 // Check that the client initialized the result. | 907 // Check that the client initialized the result. |
| 905 if (result->size != 0) { | 908 if (result->size != 0) { |
| 906 return error::kInvalidArguments; | 909 return error::kInvalidArguments; |
| 907 } | 910 } |
| 908 CopyRealGLErrorsToWrapper(); | 911 CopyRealGLErrorsToWrapper(); |
| 909 DoGetBooleanv(pname, params); | 912 DoGetBooleanv(pname, params); |
| 910 GLenum error = glGetError(); | 913 GLenum error = glGetError(); |
| 911 if (error == GL_NO_ERROR) { | 914 if (error == GL_NO_ERROR) { |
| 912 result->SetNumResults(num_values); | 915 result->SetNumResults(num_values); |
| 913 } else { | 916 } else { |
| 914 SetGLError(error, NULL); | 917 SetGLError(error, "", ""); |
| 915 } | 918 } |
| 916 return error::kNoError; | 919 return error::kNoError; |
| 917 } | 920 } |
| 918 | 921 |
| 919 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv( | 922 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv( |
| 920 uint32 immediate_data_size, const gles2::GetBufferParameteriv& c) { | 923 uint32 immediate_data_size, const gles2::GetBufferParameteriv& c) { |
| 921 GLenum target = static_cast<GLenum>(c.target); | 924 GLenum target = static_cast<GLenum>(c.target); |
| 922 GLenum pname = static_cast<GLenum>(c.pname); | 925 GLenum pname = static_cast<GLenum>(c.pname); |
| 923 typedef GetBufferParameteriv::Result Result; | 926 typedef GetBufferParameteriv::Result Result; |
| 924 GLsizei num_values = 0; | 927 GLsizei num_values = 0; |
| 925 GetNumValuesReturnedForGLGet(pname, &num_values); | 928 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 926 Result* result = GetSharedMemoryAs<Result*>( | 929 Result* result = GetSharedMemoryAs<Result*>( |
| 927 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 930 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 928 GLint* params = result ? result->GetData() : NULL; | 931 GLint* params = result ? result->GetData() : NULL; |
| 929 if (!validators_->buffer_target.IsValid(target)) { | 932 if (!validators_->buffer_target.IsValid(target)) { |
| 930 SetGLError( | 933 SetGLError( |
| 931 GL_INVALID_ENUM, "glGetBufferParameteriv: target GL_INVALID_ENUM"); | 934 GL_INVALID_ENUM, "glGetBufferParameteriv", "target GL_INVALID_ENUM"); |
| 932 return error::kNoError; | 935 return error::kNoError; |
| 933 } | 936 } |
| 934 if (!validators_->buffer_parameter.IsValid(pname)) { | 937 if (!validators_->buffer_parameter.IsValid(pname)) { |
| 935 SetGLError( | 938 SetGLError( |
| 936 GL_INVALID_ENUM, "glGetBufferParameteriv: pname GL_INVALID_ENUM"); | 939 GL_INVALID_ENUM, "glGetBufferParameteriv", "pname GL_INVALID_ENUM"); |
| 937 return error::kNoError; | 940 return error::kNoError; |
| 938 } | 941 } |
| 939 if (params == NULL) { | 942 if (params == NULL) { |
| 940 return error::kOutOfBounds; | 943 return error::kOutOfBounds; |
| 941 } | 944 } |
| 942 // Check that the client initialized the result. | 945 // Check that the client initialized the result. |
| 943 if (result->size != 0) { | 946 if (result->size != 0) { |
| 944 return error::kInvalidArguments; | 947 return error::kInvalidArguments; |
| 945 } | 948 } |
| 946 CopyRealGLErrorsToWrapper(); | 949 CopyRealGLErrorsToWrapper(); |
| 947 glGetBufferParameteriv(target, pname, params); | 950 glGetBufferParameteriv(target, pname, params); |
| 948 GLenum error = glGetError(); | 951 GLenum error = glGetError(); |
| 949 if (error == GL_NO_ERROR) { | 952 if (error == GL_NO_ERROR) { |
| 950 result->SetNumResults(num_values); | 953 result->SetNumResults(num_values); |
| 951 } else { | 954 } else { |
| 952 SetGLError(error, NULL); | 955 SetGLError(error, "", ""); |
| 953 } | 956 } |
| 954 return error::kNoError; | 957 return error::kNoError; |
| 955 } | 958 } |
| 956 | 959 |
| 957 error::Error GLES2DecoderImpl::HandleGetError( | 960 error::Error GLES2DecoderImpl::HandleGetError( |
| 958 uint32 immediate_data_size, const gles2::GetError& c) { | 961 uint32 immediate_data_size, const gles2::GetError& c) { |
| 959 typedef GetError::Result Result; | 962 typedef GetError::Result Result; |
| 960 Result* result_dst = GetSharedMemoryAs<Result*>( | 963 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 961 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 964 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 962 if (!result_dst) { | 965 if (!result_dst) { |
| 963 return error::kOutOfBounds; | 966 return error::kOutOfBounds; |
| 964 } | 967 } |
| 965 *result_dst = GetGLError(); | 968 *result_dst = GetGLError(); |
| 966 return error::kNoError; | 969 return error::kNoError; |
| 967 } | 970 } |
| 968 | 971 |
| 969 error::Error GLES2DecoderImpl::HandleGetFloatv( | 972 error::Error GLES2DecoderImpl::HandleGetFloatv( |
| 970 uint32 immediate_data_size, const gles2::GetFloatv& c) { | 973 uint32 immediate_data_size, const gles2::GetFloatv& c) { |
| 971 GLenum pname = static_cast<GLenum>(c.pname); | 974 GLenum pname = static_cast<GLenum>(c.pname); |
| 972 typedef GetFloatv::Result Result; | 975 typedef GetFloatv::Result Result; |
| 973 GLsizei num_values = 0; | 976 GLsizei num_values = 0; |
| 974 GetNumValuesReturnedForGLGet(pname, &num_values); | 977 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 975 Result* result = GetSharedMemoryAs<Result*>( | 978 Result* result = GetSharedMemoryAs<Result*>( |
| 976 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 979 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 977 GLfloat* params = result ? result->GetData() : NULL; | 980 GLfloat* params = result ? result->GetData() : NULL; |
| 978 if (!validators_->g_l_state.IsValid(pname)) { | 981 if (!validators_->g_l_state.IsValid(pname)) { |
| 979 SetGLError(GL_INVALID_ENUM, "glGetFloatv: pname GL_INVALID_ENUM"); | 982 SetGLError(GL_INVALID_ENUM, "glGetFloatv", "pname GL_INVALID_ENUM"); |
| 980 return error::kNoError; | 983 return error::kNoError; |
| 981 } | 984 } |
| 982 if (params == NULL) { | 985 if (params == NULL) { |
| 983 return error::kOutOfBounds; | 986 return error::kOutOfBounds; |
| 984 } | 987 } |
| 985 // Check that the client initialized the result. | 988 // Check that the client initialized the result. |
| 986 if (result->size != 0) { | 989 if (result->size != 0) { |
| 987 return error::kInvalidArguments; | 990 return error::kInvalidArguments; |
| 988 } | 991 } |
| 989 CopyRealGLErrorsToWrapper(); | 992 CopyRealGLErrorsToWrapper(); |
| 990 DoGetFloatv(pname, params); | 993 DoGetFloatv(pname, params); |
| 991 GLenum error = glGetError(); | 994 GLenum error = glGetError(); |
| 992 if (error == GL_NO_ERROR) { | 995 if (error == GL_NO_ERROR) { |
| 993 result->SetNumResults(num_values); | 996 result->SetNumResults(num_values); |
| 994 } else { | 997 } else { |
| 995 SetGLError(error, NULL); | 998 SetGLError(error, "", ""); |
| 996 } | 999 } |
| 997 return error::kNoError; | 1000 return error::kNoError; |
| 998 } | 1001 } |
| 999 | 1002 |
| 1000 error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv( | 1003 error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv( |
| 1001 uint32 immediate_data_size, | 1004 uint32 immediate_data_size, |
| 1002 const gles2::GetFramebufferAttachmentParameteriv& c) { | 1005 const gles2::GetFramebufferAttachmentParameteriv& c) { |
| 1003 GLenum target = static_cast<GLenum>(c.target); | 1006 GLenum target = static_cast<GLenum>(c.target); |
| 1004 GLenum attachment = static_cast<GLenum>(c.attachment); | 1007 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 1005 GLenum pname = static_cast<GLenum>(c.pname); | 1008 GLenum pname = static_cast<GLenum>(c.pname); |
| 1006 typedef GetFramebufferAttachmentParameteriv::Result Result; | 1009 typedef GetFramebufferAttachmentParameteriv::Result Result; |
| 1007 GLsizei num_values = 0; | 1010 GLsizei num_values = 0; |
| 1008 GetNumValuesReturnedForGLGet(pname, &num_values); | 1011 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1009 Result* result = GetSharedMemoryAs<Result*>( | 1012 Result* result = GetSharedMemoryAs<Result*>( |
| 1010 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1013 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1011 GLint* params = result ? result->GetData() : NULL; | 1014 GLint* params = result ? result->GetData() : NULL; |
| 1012 if (!validators_->frame_buffer_target.IsValid(target)) { | 1015 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 1013 SetGLError( | 1016 SetGLError( |
| 1014 GL_INVALID_ENUM, | 1017 GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv", "target GL_INV
ALID_ENUM"); // NOLINT |
| 1015 "glGetFramebufferAttachmentParameteriv: target GL_INVALID_ENUM"); | |
| 1016 return error::kNoError; | 1018 return error::kNoError; |
| 1017 } | 1019 } |
| 1018 if (!validators_->attachment.IsValid(attachment)) { | 1020 if (!validators_->attachment.IsValid(attachment)) { |
| 1019 SetGLError( | 1021 SetGLError( |
| 1020 GL_INVALID_ENUM, | 1022 GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv", "attachment GL
_INVALID_ENUM"); // NOLINT |
| 1021 "glGetFramebufferAttachmentParameteriv: attachment GL_INVALID_ENUM"); | |
| 1022 return error::kNoError; | 1023 return error::kNoError; |
| 1023 } | 1024 } |
| 1024 if (!validators_->frame_buffer_parameter.IsValid(pname)) { | 1025 if (!validators_->frame_buffer_parameter.IsValid(pname)) { |
| 1025 SetGLError( | 1026 SetGLError( |
| 1026 GL_INVALID_ENUM, | 1027 GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv", "pname GL_INVA
LID_ENUM"); // NOLINT |
| 1027 "glGetFramebufferAttachmentParameteriv: pname GL_INVALID_ENUM"); | |
| 1028 return error::kNoError; | 1028 return error::kNoError; |
| 1029 } | 1029 } |
| 1030 if (params == NULL) { | 1030 if (params == NULL) { |
| 1031 return error::kOutOfBounds; | 1031 return error::kOutOfBounds; |
| 1032 } | 1032 } |
| 1033 // Check that the client initialized the result. | 1033 // Check that the client initialized the result. |
| 1034 if (result->size != 0) { | 1034 if (result->size != 0) { |
| 1035 return error::kInvalidArguments; | 1035 return error::kInvalidArguments; |
| 1036 } | 1036 } |
| 1037 CopyRealGLErrorsToWrapper(); | 1037 CopyRealGLErrorsToWrapper(); |
| 1038 DoGetFramebufferAttachmentParameteriv(target, attachment, pname, params); | 1038 DoGetFramebufferAttachmentParameteriv(target, attachment, pname, params); |
| 1039 GLenum error = glGetError(); | 1039 GLenum error = glGetError(); |
| 1040 if (error == GL_NO_ERROR) { | 1040 if (error == GL_NO_ERROR) { |
| 1041 result->SetNumResults(num_values); | 1041 result->SetNumResults(num_values); |
| 1042 } else { | 1042 } else { |
| 1043 SetGLError(error, NULL); | 1043 SetGLError(error, "", ""); |
| 1044 } | 1044 } |
| 1045 return error::kNoError; | 1045 return error::kNoError; |
| 1046 } | 1046 } |
| 1047 | 1047 |
| 1048 error::Error GLES2DecoderImpl::HandleGetIntegerv( | 1048 error::Error GLES2DecoderImpl::HandleGetIntegerv( |
| 1049 uint32 immediate_data_size, const gles2::GetIntegerv& c) { | 1049 uint32 immediate_data_size, const gles2::GetIntegerv& c) { |
| 1050 GLenum pname = static_cast<GLenum>(c.pname); | 1050 GLenum pname = static_cast<GLenum>(c.pname); |
| 1051 typedef GetIntegerv::Result Result; | 1051 typedef GetIntegerv::Result Result; |
| 1052 GLsizei num_values = 0; | 1052 GLsizei num_values = 0; |
| 1053 GetNumValuesReturnedForGLGet(pname, &num_values); | 1053 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1054 Result* result = GetSharedMemoryAs<Result*>( | 1054 Result* result = GetSharedMemoryAs<Result*>( |
| 1055 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1055 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1056 GLint* params = result ? result->GetData() : NULL; | 1056 GLint* params = result ? result->GetData() : NULL; |
| 1057 if (!validators_->g_l_state.IsValid(pname)) { | 1057 if (!validators_->g_l_state.IsValid(pname)) { |
| 1058 SetGLError(GL_INVALID_ENUM, "glGetIntegerv: pname GL_INVALID_ENUM"); | 1058 SetGLError(GL_INVALID_ENUM, "glGetIntegerv", "pname GL_INVALID_ENUM"); |
| 1059 return error::kNoError; | 1059 return error::kNoError; |
| 1060 } | 1060 } |
| 1061 if (params == NULL) { | 1061 if (params == NULL) { |
| 1062 return error::kOutOfBounds; | 1062 return error::kOutOfBounds; |
| 1063 } | 1063 } |
| 1064 // Check that the client initialized the result. | 1064 // Check that the client initialized the result. |
| 1065 if (result->size != 0) { | 1065 if (result->size != 0) { |
| 1066 return error::kInvalidArguments; | 1066 return error::kInvalidArguments; |
| 1067 } | 1067 } |
| 1068 CopyRealGLErrorsToWrapper(); | 1068 CopyRealGLErrorsToWrapper(); |
| 1069 DoGetIntegerv(pname, params); | 1069 DoGetIntegerv(pname, params); |
| 1070 GLenum error = glGetError(); | 1070 GLenum error = glGetError(); |
| 1071 if (error == GL_NO_ERROR) { | 1071 if (error == GL_NO_ERROR) { |
| 1072 result->SetNumResults(num_values); | 1072 result->SetNumResults(num_values); |
| 1073 } else { | 1073 } else { |
| 1074 SetGLError(error, NULL); | 1074 SetGLError(error, "", ""); |
| 1075 } | 1075 } |
| 1076 return error::kNoError; | 1076 return error::kNoError; |
| 1077 } | 1077 } |
| 1078 | 1078 |
| 1079 error::Error GLES2DecoderImpl::HandleGetProgramiv( | 1079 error::Error GLES2DecoderImpl::HandleGetProgramiv( |
| 1080 uint32 immediate_data_size, const gles2::GetProgramiv& c) { | 1080 uint32 immediate_data_size, const gles2::GetProgramiv& c) { |
| 1081 GLuint program = c.program; | 1081 GLuint program = c.program; |
| 1082 GLenum pname = static_cast<GLenum>(c.pname); | 1082 GLenum pname = static_cast<GLenum>(c.pname); |
| 1083 typedef GetProgramiv::Result Result; | 1083 typedef GetProgramiv::Result Result; |
| 1084 GLsizei num_values = 0; | 1084 GLsizei num_values = 0; |
| 1085 GetNumValuesReturnedForGLGet(pname, &num_values); | 1085 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1086 Result* result = GetSharedMemoryAs<Result*>( | 1086 Result* result = GetSharedMemoryAs<Result*>( |
| 1087 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1087 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1088 GLint* params = result ? result->GetData() : NULL; | 1088 GLint* params = result ? result->GetData() : NULL; |
| 1089 if (!validators_->program_parameter.IsValid(pname)) { | 1089 if (!validators_->program_parameter.IsValid(pname)) { |
| 1090 SetGLError(GL_INVALID_ENUM, "glGetProgramiv: pname GL_INVALID_ENUM"); | 1090 SetGLError(GL_INVALID_ENUM, "glGetProgramiv", "pname GL_INVALID_ENUM"); |
| 1091 return error::kNoError; | 1091 return error::kNoError; |
| 1092 } | 1092 } |
| 1093 if (params == NULL) { | 1093 if (params == NULL) { |
| 1094 return error::kOutOfBounds; | 1094 return error::kOutOfBounds; |
| 1095 } | 1095 } |
| 1096 // Check that the client initialized the result. | 1096 // Check that the client initialized the result. |
| 1097 if (result->size != 0) { | 1097 if (result->size != 0) { |
| 1098 return error::kInvalidArguments; | 1098 return error::kInvalidArguments; |
| 1099 } | 1099 } |
| 1100 CopyRealGLErrorsToWrapper(); | 1100 CopyRealGLErrorsToWrapper(); |
| 1101 DoGetProgramiv(program, pname, params); | 1101 DoGetProgramiv(program, pname, params); |
| 1102 GLenum error = glGetError(); | 1102 GLenum error = glGetError(); |
| 1103 if (error == GL_NO_ERROR) { | 1103 if (error == GL_NO_ERROR) { |
| 1104 result->SetNumResults(num_values); | 1104 result->SetNumResults(num_values); |
| 1105 } else { | 1105 } else { |
| 1106 SetGLError(error, NULL); | 1106 SetGLError(error, "", ""); |
| 1107 } | 1107 } |
| 1108 return error::kNoError; | 1108 return error::kNoError; |
| 1109 } | 1109 } |
| 1110 | 1110 |
| 1111 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( | 1111 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( |
| 1112 uint32 immediate_data_size, const gles2::GetRenderbufferParameteriv& c) { | 1112 uint32 immediate_data_size, const gles2::GetRenderbufferParameteriv& c) { |
| 1113 GLenum target = static_cast<GLenum>(c.target); | 1113 GLenum target = static_cast<GLenum>(c.target); |
| 1114 GLenum pname = static_cast<GLenum>(c.pname); | 1114 GLenum pname = static_cast<GLenum>(c.pname); |
| 1115 typedef GetRenderbufferParameteriv::Result Result; | 1115 typedef GetRenderbufferParameteriv::Result Result; |
| 1116 GLsizei num_values = 0; | 1116 GLsizei num_values = 0; |
| 1117 GetNumValuesReturnedForGLGet(pname, &num_values); | 1117 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1118 Result* result = GetSharedMemoryAs<Result*>( | 1118 Result* result = GetSharedMemoryAs<Result*>( |
| 1119 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1119 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1120 GLint* params = result ? result->GetData() : NULL; | 1120 GLint* params = result ? result->GetData() : NULL; |
| 1121 if (!validators_->render_buffer_target.IsValid(target)) { | 1121 if (!validators_->render_buffer_target.IsValid(target)) { |
| 1122 SetGLError( | 1122 SetGLError( |
| 1123 GL_INVALID_ENUM, | 1123 GL_INVALID_ENUM, "glGetRenderbufferParameteriv", "target GL_INVALID_ENUM
"); // NOLINT |
| 1124 "glGetRenderbufferParameteriv: target GL_INVALID_ENUM"); | |
| 1125 return error::kNoError; | 1124 return error::kNoError; |
| 1126 } | 1125 } |
| 1127 if (!validators_->render_buffer_parameter.IsValid(pname)) { | 1126 if (!validators_->render_buffer_parameter.IsValid(pname)) { |
| 1128 SetGLError( | 1127 SetGLError( |
| 1129 GL_INVALID_ENUM, | 1128 GL_INVALID_ENUM, "glGetRenderbufferParameteriv", "pname GL_INVALID_ENUM"
); // NOLINT |
| 1130 "glGetRenderbufferParameteriv: pname GL_INVALID_ENUM"); | |
| 1131 return error::kNoError; | 1129 return error::kNoError; |
| 1132 } | 1130 } |
| 1133 if (params == NULL) { | 1131 if (params == NULL) { |
| 1134 return error::kOutOfBounds; | 1132 return error::kOutOfBounds; |
| 1135 } | 1133 } |
| 1136 // Check that the client initialized the result. | 1134 // Check that the client initialized the result. |
| 1137 if (result->size != 0) { | 1135 if (result->size != 0) { |
| 1138 return error::kInvalidArguments; | 1136 return error::kInvalidArguments; |
| 1139 } | 1137 } |
| 1140 CopyRealGLErrorsToWrapper(); | 1138 CopyRealGLErrorsToWrapper(); |
| 1141 DoGetRenderbufferParameteriv(target, pname, params); | 1139 DoGetRenderbufferParameteriv(target, pname, params); |
| 1142 GLenum error = glGetError(); | 1140 GLenum error = glGetError(); |
| 1143 if (error == GL_NO_ERROR) { | 1141 if (error == GL_NO_ERROR) { |
| 1144 result->SetNumResults(num_values); | 1142 result->SetNumResults(num_values); |
| 1145 } else { | 1143 } else { |
| 1146 SetGLError(error, NULL); | 1144 SetGLError(error, "", ""); |
| 1147 } | 1145 } |
| 1148 return error::kNoError; | 1146 return error::kNoError; |
| 1149 } | 1147 } |
| 1150 | 1148 |
| 1151 error::Error GLES2DecoderImpl::HandleGetShaderiv( | 1149 error::Error GLES2DecoderImpl::HandleGetShaderiv( |
| 1152 uint32 immediate_data_size, const gles2::GetShaderiv& c) { | 1150 uint32 immediate_data_size, const gles2::GetShaderiv& c) { |
| 1153 GLuint shader = c.shader; | 1151 GLuint shader = c.shader; |
| 1154 GLenum pname = static_cast<GLenum>(c.pname); | 1152 GLenum pname = static_cast<GLenum>(c.pname); |
| 1155 typedef GetShaderiv::Result Result; | 1153 typedef GetShaderiv::Result Result; |
| 1156 GLsizei num_values = 0; | 1154 GLsizei num_values = 0; |
| 1157 GetNumValuesReturnedForGLGet(pname, &num_values); | 1155 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1158 Result* result = GetSharedMemoryAs<Result*>( | 1156 Result* result = GetSharedMemoryAs<Result*>( |
| 1159 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1157 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1160 GLint* params = result ? result->GetData() : NULL; | 1158 GLint* params = result ? result->GetData() : NULL; |
| 1161 if (!validators_->shader_parameter.IsValid(pname)) { | 1159 if (!validators_->shader_parameter.IsValid(pname)) { |
| 1162 SetGLError(GL_INVALID_ENUM, "glGetShaderiv: pname GL_INVALID_ENUM"); | 1160 SetGLError(GL_INVALID_ENUM, "glGetShaderiv", "pname GL_INVALID_ENUM"); |
| 1163 return error::kNoError; | 1161 return error::kNoError; |
| 1164 } | 1162 } |
| 1165 if (params == NULL) { | 1163 if (params == NULL) { |
| 1166 return error::kOutOfBounds; | 1164 return error::kOutOfBounds; |
| 1167 } | 1165 } |
| 1168 // Check that the client initialized the result. | 1166 // Check that the client initialized the result. |
| 1169 if (result->size != 0) { | 1167 if (result->size != 0) { |
| 1170 return error::kInvalidArguments; | 1168 return error::kInvalidArguments; |
| 1171 } | 1169 } |
| 1172 CopyRealGLErrorsToWrapper(); | 1170 CopyRealGLErrorsToWrapper(); |
| 1173 DoGetShaderiv(shader, pname, params); | 1171 DoGetShaderiv(shader, pname, params); |
| 1174 GLenum error = glGetError(); | 1172 GLenum error = glGetError(); |
| 1175 if (error == GL_NO_ERROR) { | 1173 if (error == GL_NO_ERROR) { |
| 1176 result->SetNumResults(num_values); | 1174 result->SetNumResults(num_values); |
| 1177 } else { | 1175 } else { |
| 1178 SetGLError(error, NULL); | 1176 SetGLError(error, "", ""); |
| 1179 } | 1177 } |
| 1180 return error::kNoError; | 1178 return error::kNoError; |
| 1181 } | 1179 } |
| 1182 | 1180 |
| 1183 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( | 1181 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( |
| 1184 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { | 1182 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { |
| 1185 GLenum target = static_cast<GLenum>(c.target); | 1183 GLenum target = static_cast<GLenum>(c.target); |
| 1186 GLenum pname = static_cast<GLenum>(c.pname); | 1184 GLenum pname = static_cast<GLenum>(c.pname); |
| 1187 typedef GetTexParameterfv::Result Result; | 1185 typedef GetTexParameterfv::Result Result; |
| 1188 GLsizei num_values = 0; | 1186 GLsizei num_values = 0; |
| 1189 GetNumValuesReturnedForGLGet(pname, &num_values); | 1187 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1190 Result* result = GetSharedMemoryAs<Result*>( | 1188 Result* result = GetSharedMemoryAs<Result*>( |
| 1191 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1189 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1192 GLfloat* params = result ? result->GetData() : NULL; | 1190 GLfloat* params = result ? result->GetData() : NULL; |
| 1193 if (!validators_->get_tex_param_target.IsValid(target)) { | 1191 if (!validators_->get_tex_param_target.IsValid(target)) { |
| 1194 SetGLError(GL_INVALID_ENUM, "glGetTexParameterfv: target GL_INVALID_ENUM"); | 1192 SetGLError( |
| 1193 GL_INVALID_ENUM, "glGetTexParameterfv", "target GL_INVALID_ENUM"); |
| 1195 return error::kNoError; | 1194 return error::kNoError; |
| 1196 } | 1195 } |
| 1197 if (!validators_->texture_parameter.IsValid(pname)) { | 1196 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1198 SetGLError(GL_INVALID_ENUM, "glGetTexParameterfv: pname GL_INVALID_ENUM"); | 1197 SetGLError( |
| 1198 GL_INVALID_ENUM, "glGetTexParameterfv", "pname GL_INVALID_ENUM"); |
| 1199 return error::kNoError; | 1199 return error::kNoError; |
| 1200 } | 1200 } |
| 1201 if (params == NULL) { | 1201 if (params == NULL) { |
| 1202 return error::kOutOfBounds; | 1202 return error::kOutOfBounds; |
| 1203 } | 1203 } |
| 1204 // Check that the client initialized the result. | 1204 // Check that the client initialized the result. |
| 1205 if (result->size != 0) { | 1205 if (result->size != 0) { |
| 1206 return error::kInvalidArguments; | 1206 return error::kInvalidArguments; |
| 1207 } | 1207 } |
| 1208 CopyRealGLErrorsToWrapper(); | 1208 CopyRealGLErrorsToWrapper(); |
| 1209 glGetTexParameterfv(target, pname, params); | 1209 glGetTexParameterfv(target, pname, params); |
| 1210 GLenum error = glGetError(); | 1210 GLenum error = glGetError(); |
| 1211 if (error == GL_NO_ERROR) { | 1211 if (error == GL_NO_ERROR) { |
| 1212 result->SetNumResults(num_values); | 1212 result->SetNumResults(num_values); |
| 1213 } else { | 1213 } else { |
| 1214 SetGLError(error, NULL); | 1214 SetGLError(error, "", ""); |
| 1215 } | 1215 } |
| 1216 return error::kNoError; | 1216 return error::kNoError; |
| 1217 } | 1217 } |
| 1218 | 1218 |
| 1219 error::Error GLES2DecoderImpl::HandleGetTexParameteriv( | 1219 error::Error GLES2DecoderImpl::HandleGetTexParameteriv( |
| 1220 uint32 immediate_data_size, const gles2::GetTexParameteriv& c) { | 1220 uint32 immediate_data_size, const gles2::GetTexParameteriv& c) { |
| 1221 GLenum target = static_cast<GLenum>(c.target); | 1221 GLenum target = static_cast<GLenum>(c.target); |
| 1222 GLenum pname = static_cast<GLenum>(c.pname); | 1222 GLenum pname = static_cast<GLenum>(c.pname); |
| 1223 typedef GetTexParameteriv::Result Result; | 1223 typedef GetTexParameteriv::Result Result; |
| 1224 GLsizei num_values = 0; | 1224 GLsizei num_values = 0; |
| 1225 GetNumValuesReturnedForGLGet(pname, &num_values); | 1225 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1226 Result* result = GetSharedMemoryAs<Result*>( | 1226 Result* result = GetSharedMemoryAs<Result*>( |
| 1227 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1227 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1228 GLint* params = result ? result->GetData() : NULL; | 1228 GLint* params = result ? result->GetData() : NULL; |
| 1229 if (!validators_->get_tex_param_target.IsValid(target)) { | 1229 if (!validators_->get_tex_param_target.IsValid(target)) { |
| 1230 SetGLError(GL_INVALID_ENUM, "glGetTexParameteriv: target GL_INVALID_ENUM"); | 1230 SetGLError( |
| 1231 GL_INVALID_ENUM, "glGetTexParameteriv", "target GL_INVALID_ENUM"); |
| 1231 return error::kNoError; | 1232 return error::kNoError; |
| 1232 } | 1233 } |
| 1233 if (!validators_->texture_parameter.IsValid(pname)) { | 1234 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1234 SetGLError(GL_INVALID_ENUM, "glGetTexParameteriv: pname GL_INVALID_ENUM"); | 1235 SetGLError( |
| 1236 GL_INVALID_ENUM, "glGetTexParameteriv", "pname GL_INVALID_ENUM"); |
| 1235 return error::kNoError; | 1237 return error::kNoError; |
| 1236 } | 1238 } |
| 1237 if (params == NULL) { | 1239 if (params == NULL) { |
| 1238 return error::kOutOfBounds; | 1240 return error::kOutOfBounds; |
| 1239 } | 1241 } |
| 1240 // Check that the client initialized the result. | 1242 // Check that the client initialized the result. |
| 1241 if (result->size != 0) { | 1243 if (result->size != 0) { |
| 1242 return error::kInvalidArguments; | 1244 return error::kInvalidArguments; |
| 1243 } | 1245 } |
| 1244 CopyRealGLErrorsToWrapper(); | 1246 CopyRealGLErrorsToWrapper(); |
| 1245 glGetTexParameteriv(target, pname, params); | 1247 glGetTexParameteriv(target, pname, params); |
| 1246 GLenum error = glGetError(); | 1248 GLenum error = glGetError(); |
| 1247 if (error == GL_NO_ERROR) { | 1249 if (error == GL_NO_ERROR) { |
| 1248 result->SetNumResults(num_values); | 1250 result->SetNumResults(num_values); |
| 1249 } else { | 1251 } else { |
| 1250 SetGLError(error, NULL); | 1252 SetGLError(error, "", ""); |
| 1251 } | 1253 } |
| 1252 return error::kNoError; | 1254 return error::kNoError; |
| 1253 } | 1255 } |
| 1254 | 1256 |
| 1255 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( | 1257 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( |
| 1256 uint32 immediate_data_size, const gles2::GetVertexAttribfv& c) { | 1258 uint32 immediate_data_size, const gles2::GetVertexAttribfv& c) { |
| 1257 GLuint index = static_cast<GLuint>(c.index); | 1259 GLuint index = static_cast<GLuint>(c.index); |
| 1258 GLenum pname = static_cast<GLenum>(c.pname); | 1260 GLenum pname = static_cast<GLenum>(c.pname); |
| 1259 typedef GetVertexAttribfv::Result Result; | 1261 typedef GetVertexAttribfv::Result Result; |
| 1260 GLsizei num_values = 0; | 1262 GLsizei num_values = 0; |
| 1261 GetNumValuesReturnedForGLGet(pname, &num_values); | 1263 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1262 Result* result = GetSharedMemoryAs<Result*>( | 1264 Result* result = GetSharedMemoryAs<Result*>( |
| 1263 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1265 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1264 GLfloat* params = result ? result->GetData() : NULL; | 1266 GLfloat* params = result ? result->GetData() : NULL; |
| 1265 if (!validators_->vertex_attribute.IsValid(pname)) { | 1267 if (!validators_->vertex_attribute.IsValid(pname)) { |
| 1266 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribfv: pname GL_INVALID_ENUM"); | 1268 SetGLError( |
| 1269 GL_INVALID_ENUM, "glGetVertexAttribfv", "pname GL_INVALID_ENUM"); |
| 1267 return error::kNoError; | 1270 return error::kNoError; |
| 1268 } | 1271 } |
| 1269 if (params == NULL) { | 1272 if (params == NULL) { |
| 1270 return error::kOutOfBounds; | 1273 return error::kOutOfBounds; |
| 1271 } | 1274 } |
| 1272 // Check that the client initialized the result. | 1275 // Check that the client initialized the result. |
| 1273 if (result->size != 0) { | 1276 if (result->size != 0) { |
| 1274 return error::kInvalidArguments; | 1277 return error::kInvalidArguments; |
| 1275 } | 1278 } |
| 1276 CopyRealGLErrorsToWrapper(); | 1279 CopyRealGLErrorsToWrapper(); |
| 1277 DoGetVertexAttribfv(index, pname, params); | 1280 DoGetVertexAttribfv(index, pname, params); |
| 1278 GLenum error = glGetError(); | 1281 GLenum error = glGetError(); |
| 1279 if (error == GL_NO_ERROR) { | 1282 if (error == GL_NO_ERROR) { |
| 1280 result->SetNumResults(num_values); | 1283 result->SetNumResults(num_values); |
| 1281 } else { | 1284 } else { |
| 1282 SetGLError(error, NULL); | 1285 SetGLError(error, "", ""); |
| 1283 } | 1286 } |
| 1284 return error::kNoError; | 1287 return error::kNoError; |
| 1285 } | 1288 } |
| 1286 | 1289 |
| 1287 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( | 1290 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( |
| 1288 uint32 immediate_data_size, const gles2::GetVertexAttribiv& c) { | 1291 uint32 immediate_data_size, const gles2::GetVertexAttribiv& c) { |
| 1289 GLuint index = static_cast<GLuint>(c.index); | 1292 GLuint index = static_cast<GLuint>(c.index); |
| 1290 GLenum pname = static_cast<GLenum>(c.pname); | 1293 GLenum pname = static_cast<GLenum>(c.pname); |
| 1291 typedef GetVertexAttribiv::Result Result; | 1294 typedef GetVertexAttribiv::Result Result; |
| 1292 GLsizei num_values = 0; | 1295 GLsizei num_values = 0; |
| 1293 GetNumValuesReturnedForGLGet(pname, &num_values); | 1296 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1294 Result* result = GetSharedMemoryAs<Result*>( | 1297 Result* result = GetSharedMemoryAs<Result*>( |
| 1295 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1298 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1296 GLint* params = result ? result->GetData() : NULL; | 1299 GLint* params = result ? result->GetData() : NULL; |
| 1297 if (!validators_->vertex_attribute.IsValid(pname)) { | 1300 if (!validators_->vertex_attribute.IsValid(pname)) { |
| 1298 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribiv: pname GL_INVALID_ENUM"); | 1301 SetGLError( |
| 1302 GL_INVALID_ENUM, "glGetVertexAttribiv", "pname GL_INVALID_ENUM"); |
| 1299 return error::kNoError; | 1303 return error::kNoError; |
| 1300 } | 1304 } |
| 1301 if (params == NULL) { | 1305 if (params == NULL) { |
| 1302 return error::kOutOfBounds; | 1306 return error::kOutOfBounds; |
| 1303 } | 1307 } |
| 1304 // Check that the client initialized the result. | 1308 // Check that the client initialized the result. |
| 1305 if (result->size != 0) { | 1309 if (result->size != 0) { |
| 1306 return error::kInvalidArguments; | 1310 return error::kInvalidArguments; |
| 1307 } | 1311 } |
| 1308 CopyRealGLErrorsToWrapper(); | 1312 CopyRealGLErrorsToWrapper(); |
| 1309 DoGetVertexAttribiv(index, pname, params); | 1313 DoGetVertexAttribiv(index, pname, params); |
| 1310 GLenum error = glGetError(); | 1314 GLenum error = glGetError(); |
| 1311 if (error == GL_NO_ERROR) { | 1315 if (error == GL_NO_ERROR) { |
| 1312 result->SetNumResults(num_values); | 1316 result->SetNumResults(num_values); |
| 1313 } else { | 1317 } else { |
| 1314 SetGLError(error, NULL); | 1318 SetGLError(error, "", ""); |
| 1315 } | 1319 } |
| 1316 return error::kNoError; | 1320 return error::kNoError; |
| 1317 } | 1321 } |
| 1318 | 1322 |
| 1319 error::Error GLES2DecoderImpl::HandleHint( | 1323 error::Error GLES2DecoderImpl::HandleHint( |
| 1320 uint32 immediate_data_size, const gles2::Hint& c) { | 1324 uint32 immediate_data_size, const gles2::Hint& c) { |
| 1321 GLenum target = static_cast<GLenum>(c.target); | 1325 GLenum target = static_cast<GLenum>(c.target); |
| 1322 GLenum mode = static_cast<GLenum>(c.mode); | 1326 GLenum mode = static_cast<GLenum>(c.mode); |
| 1323 if (!validators_->hint_target.IsValid(target)) { | 1327 if (!validators_->hint_target.IsValid(target)) { |
| 1324 SetGLError(GL_INVALID_ENUM, "glHint: target GL_INVALID_ENUM"); | 1328 SetGLError(GL_INVALID_ENUM, "glHint", "target GL_INVALID_ENUM"); |
| 1325 return error::kNoError; | 1329 return error::kNoError; |
| 1326 } | 1330 } |
| 1327 if (!validators_->hint_mode.IsValid(mode)) { | 1331 if (!validators_->hint_mode.IsValid(mode)) { |
| 1328 SetGLError(GL_INVALID_ENUM, "glHint: mode GL_INVALID_ENUM"); | 1332 SetGLError(GL_INVALID_ENUM, "glHint", "mode GL_INVALID_ENUM"); |
| 1329 return error::kNoError; | 1333 return error::kNoError; |
| 1330 } | 1334 } |
| 1331 glHint(target, mode); | 1335 glHint(target, mode); |
| 1332 return error::kNoError; | 1336 return error::kNoError; |
| 1333 } | 1337 } |
| 1334 | 1338 |
| 1335 error::Error GLES2DecoderImpl::HandleIsBuffer( | 1339 error::Error GLES2DecoderImpl::HandleIsBuffer( |
| 1336 uint32 immediate_data_size, const gles2::IsBuffer& c) { | 1340 uint32 immediate_data_size, const gles2::IsBuffer& c) { |
| 1337 GLuint buffer = c.buffer; | 1341 GLuint buffer = c.buffer; |
| 1338 typedef IsBuffer::Result Result; | 1342 typedef IsBuffer::Result Result; |
| 1339 Result* result_dst = GetSharedMemoryAs<Result*>( | 1343 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1340 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1344 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1341 if (!result_dst) { | 1345 if (!result_dst) { |
| 1342 return error::kOutOfBounds; | 1346 return error::kOutOfBounds; |
| 1343 } | 1347 } |
| 1344 *result_dst = DoIsBuffer(buffer); | 1348 *result_dst = DoIsBuffer(buffer); |
| 1345 return error::kNoError; | 1349 return error::kNoError; |
| 1346 } | 1350 } |
| 1347 | 1351 |
| 1348 error::Error GLES2DecoderImpl::HandleIsEnabled( | 1352 error::Error GLES2DecoderImpl::HandleIsEnabled( |
| 1349 uint32 immediate_data_size, const gles2::IsEnabled& c) { | 1353 uint32 immediate_data_size, const gles2::IsEnabled& c) { |
| 1350 GLenum cap = static_cast<GLenum>(c.cap); | 1354 GLenum cap = static_cast<GLenum>(c.cap); |
| 1351 typedef IsEnabled::Result Result; | 1355 typedef IsEnabled::Result Result; |
| 1352 Result* result_dst = GetSharedMemoryAs<Result*>( | 1356 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1353 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1357 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1354 if (!result_dst) { | 1358 if (!result_dst) { |
| 1355 return error::kOutOfBounds; | 1359 return error::kOutOfBounds; |
| 1356 } | 1360 } |
| 1357 if (!validators_->capability.IsValid(cap)) { | 1361 if (!validators_->capability.IsValid(cap)) { |
| 1358 SetGLError(GL_INVALID_ENUM, "glIsEnabled: cap GL_INVALID_ENUM"); | 1362 SetGLError(GL_INVALID_ENUM, "glIsEnabled", "cap GL_INVALID_ENUM"); |
| 1359 return error::kNoError; | 1363 return error::kNoError; |
| 1360 } | 1364 } |
| 1361 *result_dst = DoIsEnabled(cap); | 1365 *result_dst = DoIsEnabled(cap); |
| 1362 return error::kNoError; | 1366 return error::kNoError; |
| 1363 } | 1367 } |
| 1364 | 1368 |
| 1365 error::Error GLES2DecoderImpl::HandleIsFramebuffer( | 1369 error::Error GLES2DecoderImpl::HandleIsFramebuffer( |
| 1366 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { | 1370 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { |
| 1367 GLuint framebuffer = c.framebuffer; | 1371 GLuint framebuffer = c.framebuffer; |
| 1368 typedef IsFramebuffer::Result Result; | 1372 typedef IsFramebuffer::Result Result; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1456 } | 1460 } |
| 1457 | 1461 |
| 1458 error::Error GLES2DecoderImpl::HandleRenderbufferStorage( | 1462 error::Error GLES2DecoderImpl::HandleRenderbufferStorage( |
| 1459 uint32 immediate_data_size, const gles2::RenderbufferStorage& c) { | 1463 uint32 immediate_data_size, const gles2::RenderbufferStorage& c) { |
| 1460 GLenum target = static_cast<GLenum>(c.target); | 1464 GLenum target = static_cast<GLenum>(c.target); |
| 1461 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 1465 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 1462 GLsizei width = static_cast<GLsizei>(c.width); | 1466 GLsizei width = static_cast<GLsizei>(c.width); |
| 1463 GLsizei height = static_cast<GLsizei>(c.height); | 1467 GLsizei height = static_cast<GLsizei>(c.height); |
| 1464 if (!validators_->render_buffer_target.IsValid(target)) { | 1468 if (!validators_->render_buffer_target.IsValid(target)) { |
| 1465 SetGLError( | 1469 SetGLError( |
| 1466 GL_INVALID_ENUM, "glRenderbufferStorage: target GL_INVALID_ENUM"); | 1470 GL_INVALID_ENUM, "glRenderbufferStorage", "target GL_INVALID_ENUM"); |
| 1467 return error::kNoError; | 1471 return error::kNoError; |
| 1468 } | 1472 } |
| 1469 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 1473 if (!validators_->render_buffer_format.IsValid(internalformat)) { |
| 1470 SetGLError( | 1474 SetGLError( |
| 1471 GL_INVALID_ENUM, | 1475 GL_INVALID_ENUM, "glRenderbufferStorage", "internalformat GL_INVALID_ENU
M"); // NOLINT |
| 1472 "glRenderbufferStorage: internalformat GL_INVALID_ENUM"); | |
| 1473 return error::kNoError; | 1476 return error::kNoError; |
| 1474 } | 1477 } |
| 1475 if (width < 0) { | 1478 if (width < 0) { |
| 1476 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage: width < 0"); | 1479 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); |
| 1477 return error::kNoError; | 1480 return error::kNoError; |
| 1478 } | 1481 } |
| 1479 if (height < 0) { | 1482 if (height < 0) { |
| 1480 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage: height < 0"); | 1483 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); |
| 1481 return error::kNoError; | 1484 return error::kNoError; |
| 1482 } | 1485 } |
| 1483 DoRenderbufferStorage(target, internalformat, width, height); | 1486 DoRenderbufferStorage(target, internalformat, width, height); |
| 1484 return error::kNoError; | 1487 return error::kNoError; |
| 1485 } | 1488 } |
| 1486 | 1489 |
| 1487 error::Error GLES2DecoderImpl::HandleSampleCoverage( | 1490 error::Error GLES2DecoderImpl::HandleSampleCoverage( |
| 1488 uint32 immediate_data_size, const gles2::SampleCoverage& c) { | 1491 uint32 immediate_data_size, const gles2::SampleCoverage& c) { |
| 1489 GLclampf value = static_cast<GLclampf>(c.value); | 1492 GLclampf value = static_cast<GLclampf>(c.value); |
| 1490 GLboolean invert = static_cast<GLboolean>(c.invert); | 1493 GLboolean invert = static_cast<GLboolean>(c.invert); |
| 1491 glSampleCoverage(value, invert); | 1494 glSampleCoverage(value, invert); |
| 1492 return error::kNoError; | 1495 return error::kNoError; |
| 1493 } | 1496 } |
| 1494 | 1497 |
| 1495 error::Error GLES2DecoderImpl::HandleScissor( | 1498 error::Error GLES2DecoderImpl::HandleScissor( |
| 1496 uint32 immediate_data_size, const gles2::Scissor& c) { | 1499 uint32 immediate_data_size, const gles2::Scissor& c) { |
| 1497 GLint x = static_cast<GLint>(c.x); | 1500 GLint x = static_cast<GLint>(c.x); |
| 1498 GLint y = static_cast<GLint>(c.y); | 1501 GLint y = static_cast<GLint>(c.y); |
| 1499 GLsizei width = static_cast<GLsizei>(c.width); | 1502 GLsizei width = static_cast<GLsizei>(c.width); |
| 1500 GLsizei height = static_cast<GLsizei>(c.height); | 1503 GLsizei height = static_cast<GLsizei>(c.height); |
| 1501 if (width < 0) { | 1504 if (width < 0) { |
| 1502 SetGLError(GL_INVALID_VALUE, "glScissor: width < 0"); | 1505 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); |
| 1503 return error::kNoError; | 1506 return error::kNoError; |
| 1504 } | 1507 } |
| 1505 if (height < 0) { | 1508 if (height < 0) { |
| 1506 SetGLError(GL_INVALID_VALUE, "glScissor: height < 0"); | 1509 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); |
| 1507 return error::kNoError; | 1510 return error::kNoError; |
| 1508 } | 1511 } |
| 1509 glScissor(x, y, width, height); | 1512 glScissor(x, y, width, height); |
| 1510 return error::kNoError; | 1513 return error::kNoError; |
| 1511 } | 1514 } |
| 1512 | 1515 |
| 1513 error::Error GLES2DecoderImpl::HandleStencilFunc( | 1516 error::Error GLES2DecoderImpl::HandleStencilFunc( |
| 1514 uint32 immediate_data_size, const gles2::StencilFunc& c) { | 1517 uint32 immediate_data_size, const gles2::StencilFunc& c) { |
| 1515 GLenum func = static_cast<GLenum>(c.func); | 1518 GLenum func = static_cast<GLenum>(c.func); |
| 1516 GLint ref = static_cast<GLint>(c.ref); | 1519 GLint ref = static_cast<GLint>(c.ref); |
| 1517 GLuint mask = static_cast<GLuint>(c.mask); | 1520 GLuint mask = static_cast<GLuint>(c.mask); |
| 1518 if (!validators_->cmp_function.IsValid(func)) { | 1521 if (!validators_->cmp_function.IsValid(func)) { |
| 1519 SetGLError(GL_INVALID_ENUM, "glStencilFunc: func GL_INVALID_ENUM"); | 1522 SetGLError(GL_INVALID_ENUM, "glStencilFunc", "func GL_INVALID_ENUM"); |
| 1520 return error::kNoError; | 1523 return error::kNoError; |
| 1521 } | 1524 } |
| 1522 glStencilFunc(func, ref, mask); | 1525 glStencilFunc(func, ref, mask); |
| 1523 return error::kNoError; | 1526 return error::kNoError; |
| 1524 } | 1527 } |
| 1525 | 1528 |
| 1526 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( | 1529 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( |
| 1527 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) { | 1530 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) { |
| 1528 GLenum face = static_cast<GLenum>(c.face); | 1531 GLenum face = static_cast<GLenum>(c.face); |
| 1529 GLenum func = static_cast<GLenum>(c.func); | 1532 GLenum func = static_cast<GLenum>(c.func); |
| 1530 GLint ref = static_cast<GLint>(c.ref); | 1533 GLint ref = static_cast<GLint>(c.ref); |
| 1531 GLuint mask = static_cast<GLuint>(c.mask); | 1534 GLuint mask = static_cast<GLuint>(c.mask); |
| 1532 if (!validators_->face_type.IsValid(face)) { | 1535 if (!validators_->face_type.IsValid(face)) { |
| 1533 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: face GL_INVALID_ENUM"); | 1536 SetGLError( |
| 1537 GL_INVALID_ENUM, "glStencilFuncSeparate", "face GL_INVALID_ENUM"); |
| 1534 return error::kNoError; | 1538 return error::kNoError; |
| 1535 } | 1539 } |
| 1536 if (!validators_->cmp_function.IsValid(func)) { | 1540 if (!validators_->cmp_function.IsValid(func)) { |
| 1537 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: func GL_INVALID_ENUM"); | 1541 SetGLError( |
| 1542 GL_INVALID_ENUM, "glStencilFuncSeparate", "func GL_INVALID_ENUM"); |
| 1538 return error::kNoError; | 1543 return error::kNoError; |
| 1539 } | 1544 } |
| 1540 glStencilFuncSeparate(face, func, ref, mask); | 1545 glStencilFuncSeparate(face, func, ref, mask); |
| 1541 return error::kNoError; | 1546 return error::kNoError; |
| 1542 } | 1547 } |
| 1543 | 1548 |
| 1544 error::Error GLES2DecoderImpl::HandleStencilMask( | 1549 error::Error GLES2DecoderImpl::HandleStencilMask( |
| 1545 uint32 immediate_data_size, const gles2::StencilMask& c) { | 1550 uint32 immediate_data_size, const gles2::StencilMask& c) { |
| 1546 GLuint mask = static_cast<GLuint>(c.mask); | 1551 GLuint mask = static_cast<GLuint>(c.mask); |
| 1547 DoStencilMask(mask); | 1552 DoStencilMask(mask); |
| 1548 return error::kNoError; | 1553 return error::kNoError; |
| 1549 } | 1554 } |
| 1550 | 1555 |
| 1551 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( | 1556 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( |
| 1552 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) { | 1557 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) { |
| 1553 GLenum face = static_cast<GLenum>(c.face); | 1558 GLenum face = static_cast<GLenum>(c.face); |
| 1554 GLuint mask = static_cast<GLuint>(c.mask); | 1559 GLuint mask = static_cast<GLuint>(c.mask); |
| 1555 if (!validators_->face_type.IsValid(face)) { | 1560 if (!validators_->face_type.IsValid(face)) { |
| 1556 SetGLError(GL_INVALID_ENUM, "glStencilMaskSeparate: face GL_INVALID_ENUM"); | 1561 SetGLError( |
| 1562 GL_INVALID_ENUM, "glStencilMaskSeparate", "face GL_INVALID_ENUM"); |
| 1557 return error::kNoError; | 1563 return error::kNoError; |
| 1558 } | 1564 } |
| 1559 DoStencilMaskSeparate(face, mask); | 1565 DoStencilMaskSeparate(face, mask); |
| 1560 return error::kNoError; | 1566 return error::kNoError; |
| 1561 } | 1567 } |
| 1562 | 1568 |
| 1563 error::Error GLES2DecoderImpl::HandleStencilOp( | 1569 error::Error GLES2DecoderImpl::HandleStencilOp( |
| 1564 uint32 immediate_data_size, const gles2::StencilOp& c) { | 1570 uint32 immediate_data_size, const gles2::StencilOp& c) { |
| 1565 GLenum fail = static_cast<GLenum>(c.fail); | 1571 GLenum fail = static_cast<GLenum>(c.fail); |
| 1566 GLenum zfail = static_cast<GLenum>(c.zfail); | 1572 GLenum zfail = static_cast<GLenum>(c.zfail); |
| 1567 GLenum zpass = static_cast<GLenum>(c.zpass); | 1573 GLenum zpass = static_cast<GLenum>(c.zpass); |
| 1568 if (!validators_->stencil_op.IsValid(fail)) { | 1574 if (!validators_->stencil_op.IsValid(fail)) { |
| 1569 SetGLError(GL_INVALID_ENUM, "glStencilOp: fail GL_INVALID_ENUM"); | 1575 SetGLError(GL_INVALID_ENUM, "glStencilOp", "fail GL_INVALID_ENUM"); |
| 1570 return error::kNoError; | 1576 return error::kNoError; |
| 1571 } | 1577 } |
| 1572 if (!validators_->stencil_op.IsValid(zfail)) { | 1578 if (!validators_->stencil_op.IsValid(zfail)) { |
| 1573 SetGLError(GL_INVALID_ENUM, "glStencilOp: zfail GL_INVALID_ENUM"); | 1579 SetGLError(GL_INVALID_ENUM, "glStencilOp", "zfail GL_INVALID_ENUM"); |
| 1574 return error::kNoError; | 1580 return error::kNoError; |
| 1575 } | 1581 } |
| 1576 if (!validators_->stencil_op.IsValid(zpass)) { | 1582 if (!validators_->stencil_op.IsValid(zpass)) { |
| 1577 SetGLError(GL_INVALID_ENUM, "glStencilOp: zpass GL_INVALID_ENUM"); | 1583 SetGLError(GL_INVALID_ENUM, "glStencilOp", "zpass GL_INVALID_ENUM"); |
| 1578 return error::kNoError; | 1584 return error::kNoError; |
| 1579 } | 1585 } |
| 1580 glStencilOp(fail, zfail, zpass); | 1586 glStencilOp(fail, zfail, zpass); |
| 1581 return error::kNoError; | 1587 return error::kNoError; |
| 1582 } | 1588 } |
| 1583 | 1589 |
| 1584 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( | 1590 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( |
| 1585 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) { | 1591 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) { |
| 1586 GLenum face = static_cast<GLenum>(c.face); | 1592 GLenum face = static_cast<GLenum>(c.face); |
| 1587 GLenum fail = static_cast<GLenum>(c.fail); | 1593 GLenum fail = static_cast<GLenum>(c.fail); |
| 1588 GLenum zfail = static_cast<GLenum>(c.zfail); | 1594 GLenum zfail = static_cast<GLenum>(c.zfail); |
| 1589 GLenum zpass = static_cast<GLenum>(c.zpass); | 1595 GLenum zpass = static_cast<GLenum>(c.zpass); |
| 1590 if (!validators_->face_type.IsValid(face)) { | 1596 if (!validators_->face_type.IsValid(face)) { |
| 1591 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: face GL_INVALID_ENUM"); | 1597 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate", "face GL_INVALID_ENUM"); |
| 1592 return error::kNoError; | 1598 return error::kNoError; |
| 1593 } | 1599 } |
| 1594 if (!validators_->stencil_op.IsValid(fail)) { | 1600 if (!validators_->stencil_op.IsValid(fail)) { |
| 1595 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: fail GL_INVALID_ENUM"); | 1601 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate", "fail GL_INVALID_ENUM"); |
| 1596 return error::kNoError; | 1602 return error::kNoError; |
| 1597 } | 1603 } |
| 1598 if (!validators_->stencil_op.IsValid(zfail)) { | 1604 if (!validators_->stencil_op.IsValid(zfail)) { |
| 1599 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zfail GL_INVALID_ENUM"); | 1605 SetGLError( |
| 1606 GL_INVALID_ENUM, "glStencilOpSeparate", "zfail GL_INVALID_ENUM"); |
| 1600 return error::kNoError; | 1607 return error::kNoError; |
| 1601 } | 1608 } |
| 1602 if (!validators_->stencil_op.IsValid(zpass)) { | 1609 if (!validators_->stencil_op.IsValid(zpass)) { |
| 1603 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zpass GL_INVALID_ENUM"); | 1610 SetGLError( |
| 1611 GL_INVALID_ENUM, "glStencilOpSeparate", "zpass GL_INVALID_ENUM"); |
| 1604 return error::kNoError; | 1612 return error::kNoError; |
| 1605 } | 1613 } |
| 1606 glStencilOpSeparate(face, fail, zfail, zpass); | 1614 glStencilOpSeparate(face, fail, zfail, zpass); |
| 1607 return error::kNoError; | 1615 return error::kNoError; |
| 1608 } | 1616 } |
| 1609 | 1617 |
| 1610 error::Error GLES2DecoderImpl::HandleTexParameterf( | 1618 error::Error GLES2DecoderImpl::HandleTexParameterf( |
| 1611 uint32 immediate_data_size, const gles2::TexParameterf& c) { | 1619 uint32 immediate_data_size, const gles2::TexParameterf& c) { |
| 1612 GLenum target = static_cast<GLenum>(c.target); | 1620 GLenum target = static_cast<GLenum>(c.target); |
| 1613 GLenum pname = static_cast<GLenum>(c.pname); | 1621 GLenum pname = static_cast<GLenum>(c.pname); |
| 1614 GLfloat param = static_cast<GLfloat>(c.param); | 1622 GLfloat param = static_cast<GLfloat>(c.param); |
| 1615 if (!validators_->texture_bind_target.IsValid(target)) { | 1623 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1616 SetGLError(GL_INVALID_ENUM, "glTexParameterf: target GL_INVALID_ENUM"); | 1624 SetGLError(GL_INVALID_ENUM, "glTexParameterf", "target GL_INVALID_ENUM"); |
| 1617 return error::kNoError; | 1625 return error::kNoError; |
| 1618 } | 1626 } |
| 1619 if (!validators_->texture_parameter.IsValid(pname)) { | 1627 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1620 SetGLError(GL_INVALID_ENUM, "glTexParameterf: pname GL_INVALID_ENUM"); | 1628 SetGLError(GL_INVALID_ENUM, "glTexParameterf", "pname GL_INVALID_ENUM"); |
| 1621 return error::kNoError; | 1629 return error::kNoError; |
| 1622 } | 1630 } |
| 1623 DoTexParameterf(target, pname, param); | 1631 DoTexParameterf(target, pname, param); |
| 1624 return error::kNoError; | 1632 return error::kNoError; |
| 1625 } | 1633 } |
| 1626 | 1634 |
| 1627 error::Error GLES2DecoderImpl::HandleTexParameterfv( | 1635 error::Error GLES2DecoderImpl::HandleTexParameterfv( |
| 1628 uint32 immediate_data_size, const gles2::TexParameterfv& c) { | 1636 uint32 immediate_data_size, const gles2::TexParameterfv& c) { |
| 1629 GLenum target = static_cast<GLenum>(c.target); | 1637 GLenum target = static_cast<GLenum>(c.target); |
| 1630 GLenum pname = static_cast<GLenum>(c.pname); | 1638 GLenum pname = static_cast<GLenum>(c.pname); |
| 1631 uint32 data_size; | 1639 uint32 data_size; |
| 1632 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 1640 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 1633 return error::kOutOfBounds; | 1641 return error::kOutOfBounds; |
| 1634 } | 1642 } |
| 1635 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>( | 1643 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>( |
| 1636 c.params_shm_id, c.params_shm_offset, data_size); | 1644 c.params_shm_id, c.params_shm_offset, data_size); |
| 1637 if (!validators_->texture_bind_target.IsValid(target)) { | 1645 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1638 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); | 1646 SetGLError(GL_INVALID_ENUM, "glTexParameterfv", "target GL_INVALID_ENUM"); |
| 1639 return error::kNoError; | 1647 return error::kNoError; |
| 1640 } | 1648 } |
| 1641 if (!validators_->texture_parameter.IsValid(pname)) { | 1649 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1642 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); | 1650 SetGLError(GL_INVALID_ENUM, "glTexParameterfv", "pname GL_INVALID_ENUM"); |
| 1643 return error::kNoError; | 1651 return error::kNoError; |
| 1644 } | 1652 } |
| 1645 if (params == NULL) { | 1653 if (params == NULL) { |
| 1646 return error::kOutOfBounds; | 1654 return error::kOutOfBounds; |
| 1647 } | 1655 } |
| 1648 DoTexParameterfv(target, pname, params); | 1656 DoTexParameterfv(target, pname, params); |
| 1649 return error::kNoError; | 1657 return error::kNoError; |
| 1650 } | 1658 } |
| 1651 | 1659 |
| 1652 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate( | 1660 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate( |
| 1653 uint32 immediate_data_size, const gles2::TexParameterfvImmediate& c) { | 1661 uint32 immediate_data_size, const gles2::TexParameterfvImmediate& c) { |
| 1654 GLenum target = static_cast<GLenum>(c.target); | 1662 GLenum target = static_cast<GLenum>(c.target); |
| 1655 GLenum pname = static_cast<GLenum>(c.pname); | 1663 GLenum pname = static_cast<GLenum>(c.pname); |
| 1656 uint32 data_size; | 1664 uint32 data_size; |
| 1657 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 1665 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 1658 return error::kOutOfBounds; | 1666 return error::kOutOfBounds; |
| 1659 } | 1667 } |
| 1660 if (data_size > immediate_data_size) { | 1668 if (data_size > immediate_data_size) { |
| 1661 return error::kOutOfBounds; | 1669 return error::kOutOfBounds; |
| 1662 } | 1670 } |
| 1663 const GLfloat* params = GetImmediateDataAs<const GLfloat*>( | 1671 const GLfloat* params = GetImmediateDataAs<const GLfloat*>( |
| 1664 c, data_size, immediate_data_size); | 1672 c, data_size, immediate_data_size); |
| 1665 if (!validators_->texture_bind_target.IsValid(target)) { | 1673 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1666 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); | 1674 SetGLError(GL_INVALID_ENUM, "glTexParameterfv", "target GL_INVALID_ENUM"); |
| 1667 return error::kNoError; | 1675 return error::kNoError; |
| 1668 } | 1676 } |
| 1669 if (!validators_->texture_parameter.IsValid(pname)) { | 1677 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1670 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); | 1678 SetGLError(GL_INVALID_ENUM, "glTexParameterfv", "pname GL_INVALID_ENUM"); |
| 1671 return error::kNoError; | 1679 return error::kNoError; |
| 1672 } | 1680 } |
| 1673 if (params == NULL) { | 1681 if (params == NULL) { |
| 1674 return error::kOutOfBounds; | 1682 return error::kOutOfBounds; |
| 1675 } | 1683 } |
| 1676 DoTexParameterfv(target, pname, params); | 1684 DoTexParameterfv(target, pname, params); |
| 1677 return error::kNoError; | 1685 return error::kNoError; |
| 1678 } | 1686 } |
| 1679 | 1687 |
| 1680 error::Error GLES2DecoderImpl::HandleTexParameteri( | 1688 error::Error GLES2DecoderImpl::HandleTexParameteri( |
| 1681 uint32 immediate_data_size, const gles2::TexParameteri& c) { | 1689 uint32 immediate_data_size, const gles2::TexParameteri& c) { |
| 1682 GLenum target = static_cast<GLenum>(c.target); | 1690 GLenum target = static_cast<GLenum>(c.target); |
| 1683 GLenum pname = static_cast<GLenum>(c.pname); | 1691 GLenum pname = static_cast<GLenum>(c.pname); |
| 1684 GLint param = static_cast<GLint>(c.param); | 1692 GLint param = static_cast<GLint>(c.param); |
| 1685 if (!validators_->texture_bind_target.IsValid(target)) { | 1693 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1686 SetGLError(GL_INVALID_ENUM, "glTexParameteri: target GL_INVALID_ENUM"); | 1694 SetGLError(GL_INVALID_ENUM, "glTexParameteri", "target GL_INVALID_ENUM"); |
| 1687 return error::kNoError; | 1695 return error::kNoError; |
| 1688 } | 1696 } |
| 1689 if (!validators_->texture_parameter.IsValid(pname)) { | 1697 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1690 SetGLError(GL_INVALID_ENUM, "glTexParameteri: pname GL_INVALID_ENUM"); | 1698 SetGLError(GL_INVALID_ENUM, "glTexParameteri", "pname GL_INVALID_ENUM"); |
| 1691 return error::kNoError; | 1699 return error::kNoError; |
| 1692 } | 1700 } |
| 1693 DoTexParameteri(target, pname, param); | 1701 DoTexParameteri(target, pname, param); |
| 1694 return error::kNoError; | 1702 return error::kNoError; |
| 1695 } | 1703 } |
| 1696 | 1704 |
| 1697 error::Error GLES2DecoderImpl::HandleTexParameteriv( | 1705 error::Error GLES2DecoderImpl::HandleTexParameteriv( |
| 1698 uint32 immediate_data_size, const gles2::TexParameteriv& c) { | 1706 uint32 immediate_data_size, const gles2::TexParameteriv& c) { |
| 1699 GLenum target = static_cast<GLenum>(c.target); | 1707 GLenum target = static_cast<GLenum>(c.target); |
| 1700 GLenum pname = static_cast<GLenum>(c.pname); | 1708 GLenum pname = static_cast<GLenum>(c.pname); |
| 1701 uint32 data_size; | 1709 uint32 data_size; |
| 1702 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { | 1710 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 1703 return error::kOutOfBounds; | 1711 return error::kOutOfBounds; |
| 1704 } | 1712 } |
| 1705 const GLint* params = GetSharedMemoryAs<const GLint*>( | 1713 const GLint* params = GetSharedMemoryAs<const GLint*>( |
| 1706 c.params_shm_id, c.params_shm_offset, data_size); | 1714 c.params_shm_id, c.params_shm_offset, data_size); |
| 1707 if (!validators_->texture_bind_target.IsValid(target)) { | 1715 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1708 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); | 1716 SetGLError(GL_INVALID_ENUM, "glTexParameteriv", "target GL_INVALID_ENUM"); |
| 1709 return error::kNoError; | 1717 return error::kNoError; |
| 1710 } | 1718 } |
| 1711 if (!validators_->texture_parameter.IsValid(pname)) { | 1719 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1712 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); | 1720 SetGLError(GL_INVALID_ENUM, "glTexParameteriv", "pname GL_INVALID_ENUM"); |
| 1713 return error::kNoError; | 1721 return error::kNoError; |
| 1714 } | 1722 } |
| 1715 if (params == NULL) { | 1723 if (params == NULL) { |
| 1716 return error::kOutOfBounds; | 1724 return error::kOutOfBounds; |
| 1717 } | 1725 } |
| 1718 DoTexParameteriv(target, pname, params); | 1726 DoTexParameteriv(target, pname, params); |
| 1719 return error::kNoError; | 1727 return error::kNoError; |
| 1720 } | 1728 } |
| 1721 | 1729 |
| 1722 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate( | 1730 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate( |
| 1723 uint32 immediate_data_size, const gles2::TexParameterivImmediate& c) { | 1731 uint32 immediate_data_size, const gles2::TexParameterivImmediate& c) { |
| 1724 GLenum target = static_cast<GLenum>(c.target); | 1732 GLenum target = static_cast<GLenum>(c.target); |
| 1725 GLenum pname = static_cast<GLenum>(c.pname); | 1733 GLenum pname = static_cast<GLenum>(c.pname); |
| 1726 uint32 data_size; | 1734 uint32 data_size; |
| 1727 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { | 1735 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 1728 return error::kOutOfBounds; | 1736 return error::kOutOfBounds; |
| 1729 } | 1737 } |
| 1730 if (data_size > immediate_data_size) { | 1738 if (data_size > immediate_data_size) { |
| 1731 return error::kOutOfBounds; | 1739 return error::kOutOfBounds; |
| 1732 } | 1740 } |
| 1733 const GLint* params = GetImmediateDataAs<const GLint*>( | 1741 const GLint* params = GetImmediateDataAs<const GLint*>( |
| 1734 c, data_size, immediate_data_size); | 1742 c, data_size, immediate_data_size); |
| 1735 if (!validators_->texture_bind_target.IsValid(target)) { | 1743 if (!validators_->texture_bind_target.IsValid(target)) { |
| 1736 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); | 1744 SetGLError(GL_INVALID_ENUM, "glTexParameteriv", "target GL_INVALID_ENUM"); |
| 1737 return error::kNoError; | 1745 return error::kNoError; |
| 1738 } | 1746 } |
| 1739 if (!validators_->texture_parameter.IsValid(pname)) { | 1747 if (!validators_->texture_parameter.IsValid(pname)) { |
| 1740 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); | 1748 SetGLError(GL_INVALID_ENUM, "glTexParameteriv", "pname GL_INVALID_ENUM"); |
| 1741 return error::kNoError; | 1749 return error::kNoError; |
| 1742 } | 1750 } |
| 1743 if (params == NULL) { | 1751 if (params == NULL) { |
| 1744 return error::kOutOfBounds; | 1752 return error::kOutOfBounds; |
| 1745 } | 1753 } |
| 1746 DoTexParameteriv(target, pname, params); | 1754 DoTexParameteriv(target, pname, params); |
| 1747 return error::kNoError; | 1755 return error::kNoError; |
| 1748 } | 1756 } |
| 1749 | 1757 |
| 1750 error::Error GLES2DecoderImpl::HandleUniform1f( | 1758 error::Error GLES2DecoderImpl::HandleUniform1f( |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2157 GLsizei count = static_cast<GLsizei>(c.count); | 2165 GLsizei count = static_cast<GLsizei>(c.count); |
| 2158 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2166 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2159 uint32 data_size; | 2167 uint32 data_size; |
| 2160 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { | 2168 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { |
| 2161 return error::kOutOfBounds; | 2169 return error::kOutOfBounds; |
| 2162 } | 2170 } |
| 2163 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2171 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2164 c.value_shm_id, c.value_shm_offset, data_size); | 2172 c.value_shm_id, c.value_shm_offset, data_size); |
| 2165 if (!validators_->false_only.IsValid(transpose)) { | 2173 if (!validators_->false_only.IsValid(transpose)) { |
| 2166 SetGLError( | 2174 SetGLError( |
| 2167 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); | 2175 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE"); |
| 2168 return error::kNoError; | 2176 return error::kNoError; |
| 2169 } | 2177 } |
| 2170 if (value == NULL) { | 2178 if (value == NULL) { |
| 2171 return error::kOutOfBounds; | 2179 return error::kOutOfBounds; |
| 2172 } | 2180 } |
| 2173 DoUniformMatrix2fv(location, count, transpose, value); | 2181 DoUniformMatrix2fv(location, count, transpose, value); |
| 2174 return error::kNoError; | 2182 return error::kNoError; |
| 2175 } | 2183 } |
| 2176 | 2184 |
| 2177 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( | 2185 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( |
| 2178 uint32 immediate_data_size, const gles2::UniformMatrix2fvImmediate& c) { | 2186 uint32 immediate_data_size, const gles2::UniformMatrix2fvImmediate& c) { |
| 2179 GLint location = program_manager()->UnswizzleLocation( | 2187 GLint location = program_manager()->UnswizzleLocation( |
| 2180 static_cast<GLint>(c.location)); | 2188 static_cast<GLint>(c.location)); |
| 2181 GLsizei count = static_cast<GLsizei>(c.count); | 2189 GLsizei count = static_cast<GLsizei>(c.count); |
| 2182 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2190 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2183 uint32 data_size; | 2191 uint32 data_size; |
| 2184 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { | 2192 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { |
| 2185 return error::kOutOfBounds; | 2193 return error::kOutOfBounds; |
| 2186 } | 2194 } |
| 2187 if (data_size > immediate_data_size) { | 2195 if (data_size > immediate_data_size) { |
| 2188 return error::kOutOfBounds; | 2196 return error::kOutOfBounds; |
| 2189 } | 2197 } |
| 2190 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2198 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2191 c, data_size, immediate_data_size); | 2199 c, data_size, immediate_data_size); |
| 2192 if (!validators_->false_only.IsValid(transpose)) { | 2200 if (!validators_->false_only.IsValid(transpose)) { |
| 2193 SetGLError( | 2201 SetGLError( |
| 2194 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); | 2202 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE"); |
| 2195 return error::kNoError; | 2203 return error::kNoError; |
| 2196 } | 2204 } |
| 2197 if (value == NULL) { | 2205 if (value == NULL) { |
| 2198 return error::kOutOfBounds; | 2206 return error::kOutOfBounds; |
| 2199 } | 2207 } |
| 2200 DoUniformMatrix2fv(location, count, transpose, value); | 2208 DoUniformMatrix2fv(location, count, transpose, value); |
| 2201 return error::kNoError; | 2209 return error::kNoError; |
| 2202 } | 2210 } |
| 2203 | 2211 |
| 2204 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv( | 2212 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv( |
| 2205 uint32 immediate_data_size, const gles2::UniformMatrix3fv& c) { | 2213 uint32 immediate_data_size, const gles2::UniformMatrix3fv& c) { |
| 2206 GLint location = program_manager()->UnswizzleLocation( | 2214 GLint location = program_manager()->UnswizzleLocation( |
| 2207 static_cast<GLint>(c.location)); | 2215 static_cast<GLint>(c.location)); |
| 2208 GLsizei count = static_cast<GLsizei>(c.count); | 2216 GLsizei count = static_cast<GLsizei>(c.count); |
| 2209 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2217 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2210 uint32 data_size; | 2218 uint32 data_size; |
| 2211 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { | 2219 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { |
| 2212 return error::kOutOfBounds; | 2220 return error::kOutOfBounds; |
| 2213 } | 2221 } |
| 2214 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2222 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2215 c.value_shm_id, c.value_shm_offset, data_size); | 2223 c.value_shm_id, c.value_shm_offset, data_size); |
| 2216 if (!validators_->false_only.IsValid(transpose)) { | 2224 if (!validators_->false_only.IsValid(transpose)) { |
| 2217 SetGLError( | 2225 SetGLError( |
| 2218 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); | 2226 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE"); |
| 2219 return error::kNoError; | 2227 return error::kNoError; |
| 2220 } | 2228 } |
| 2221 if (value == NULL) { | 2229 if (value == NULL) { |
| 2222 return error::kOutOfBounds; | 2230 return error::kOutOfBounds; |
| 2223 } | 2231 } |
| 2224 DoUniformMatrix3fv(location, count, transpose, value); | 2232 DoUniformMatrix3fv(location, count, transpose, value); |
| 2225 return error::kNoError; | 2233 return error::kNoError; |
| 2226 } | 2234 } |
| 2227 | 2235 |
| 2228 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( | 2236 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( |
| 2229 uint32 immediate_data_size, const gles2::UniformMatrix3fvImmediate& c) { | 2237 uint32 immediate_data_size, const gles2::UniformMatrix3fvImmediate& c) { |
| 2230 GLint location = program_manager()->UnswizzleLocation( | 2238 GLint location = program_manager()->UnswizzleLocation( |
| 2231 static_cast<GLint>(c.location)); | 2239 static_cast<GLint>(c.location)); |
| 2232 GLsizei count = static_cast<GLsizei>(c.count); | 2240 GLsizei count = static_cast<GLsizei>(c.count); |
| 2233 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2241 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2234 uint32 data_size; | 2242 uint32 data_size; |
| 2235 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { | 2243 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { |
| 2236 return error::kOutOfBounds; | 2244 return error::kOutOfBounds; |
| 2237 } | 2245 } |
| 2238 if (data_size > immediate_data_size) { | 2246 if (data_size > immediate_data_size) { |
| 2239 return error::kOutOfBounds; | 2247 return error::kOutOfBounds; |
| 2240 } | 2248 } |
| 2241 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2249 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2242 c, data_size, immediate_data_size); | 2250 c, data_size, immediate_data_size); |
| 2243 if (!validators_->false_only.IsValid(transpose)) { | 2251 if (!validators_->false_only.IsValid(transpose)) { |
| 2244 SetGLError( | 2252 SetGLError( |
| 2245 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); | 2253 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE"); |
| 2246 return error::kNoError; | 2254 return error::kNoError; |
| 2247 } | 2255 } |
| 2248 if (value == NULL) { | 2256 if (value == NULL) { |
| 2249 return error::kOutOfBounds; | 2257 return error::kOutOfBounds; |
| 2250 } | 2258 } |
| 2251 DoUniformMatrix3fv(location, count, transpose, value); | 2259 DoUniformMatrix3fv(location, count, transpose, value); |
| 2252 return error::kNoError; | 2260 return error::kNoError; |
| 2253 } | 2261 } |
| 2254 | 2262 |
| 2255 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv( | 2263 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv( |
| 2256 uint32 immediate_data_size, const gles2::UniformMatrix4fv& c) { | 2264 uint32 immediate_data_size, const gles2::UniformMatrix4fv& c) { |
| 2257 GLint location = program_manager()->UnswizzleLocation( | 2265 GLint location = program_manager()->UnswizzleLocation( |
| 2258 static_cast<GLint>(c.location)); | 2266 static_cast<GLint>(c.location)); |
| 2259 GLsizei count = static_cast<GLsizei>(c.count); | 2267 GLsizei count = static_cast<GLsizei>(c.count); |
| 2260 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2268 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2261 uint32 data_size; | 2269 uint32 data_size; |
| 2262 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { | 2270 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { |
| 2263 return error::kOutOfBounds; | 2271 return error::kOutOfBounds; |
| 2264 } | 2272 } |
| 2265 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2273 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2266 c.value_shm_id, c.value_shm_offset, data_size); | 2274 c.value_shm_id, c.value_shm_offset, data_size); |
| 2267 if (!validators_->false_only.IsValid(transpose)) { | 2275 if (!validators_->false_only.IsValid(transpose)) { |
| 2268 SetGLError( | 2276 SetGLError( |
| 2269 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); | 2277 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE"); |
| 2270 return error::kNoError; | 2278 return error::kNoError; |
| 2271 } | 2279 } |
| 2272 if (value == NULL) { | 2280 if (value == NULL) { |
| 2273 return error::kOutOfBounds; | 2281 return error::kOutOfBounds; |
| 2274 } | 2282 } |
| 2275 DoUniformMatrix4fv(location, count, transpose, value); | 2283 DoUniformMatrix4fv(location, count, transpose, value); |
| 2276 return error::kNoError; | 2284 return error::kNoError; |
| 2277 } | 2285 } |
| 2278 | 2286 |
| 2279 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( | 2287 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( |
| 2280 uint32 immediate_data_size, const gles2::UniformMatrix4fvImmediate& c) { | 2288 uint32 immediate_data_size, const gles2::UniformMatrix4fvImmediate& c) { |
| 2281 GLint location = program_manager()->UnswizzleLocation( | 2289 GLint location = program_manager()->UnswizzleLocation( |
| 2282 static_cast<GLint>(c.location)); | 2290 static_cast<GLint>(c.location)); |
| 2283 GLsizei count = static_cast<GLsizei>(c.count); | 2291 GLsizei count = static_cast<GLsizei>(c.count); |
| 2284 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2292 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2285 uint32 data_size; | 2293 uint32 data_size; |
| 2286 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { | 2294 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { |
| 2287 return error::kOutOfBounds; | 2295 return error::kOutOfBounds; |
| 2288 } | 2296 } |
| 2289 if (data_size > immediate_data_size) { | 2297 if (data_size > immediate_data_size) { |
| 2290 return error::kOutOfBounds; | 2298 return error::kOutOfBounds; |
| 2291 } | 2299 } |
| 2292 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2300 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2293 c, data_size, immediate_data_size); | 2301 c, data_size, immediate_data_size); |
| 2294 if (!validators_->false_only.IsValid(transpose)) { | 2302 if (!validators_->false_only.IsValid(transpose)) { |
| 2295 SetGLError( | 2303 SetGLError( |
| 2296 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); | 2304 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE"); |
| 2297 return error::kNoError; | 2305 return error::kNoError; |
| 2298 } | 2306 } |
| 2299 if (value == NULL) { | 2307 if (value == NULL) { |
| 2300 return error::kOutOfBounds; | 2308 return error::kOutOfBounds; |
| 2301 } | 2309 } |
| 2302 DoUniformMatrix4fv(location, count, transpose, value); | 2310 DoUniformMatrix4fv(location, count, transpose, value); |
| 2303 return error::kNoError; | 2311 return error::kNoError; |
| 2304 } | 2312 } |
| 2305 | 2313 |
| 2306 error::Error GLES2DecoderImpl::HandleUseProgram( | 2314 error::Error GLES2DecoderImpl::HandleUseProgram( |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2495 return error::kNoError; | 2503 return error::kNoError; |
| 2496 } | 2504 } |
| 2497 | 2505 |
| 2498 error::Error GLES2DecoderImpl::HandleViewport( | 2506 error::Error GLES2DecoderImpl::HandleViewport( |
| 2499 uint32 immediate_data_size, const gles2::Viewport& c) { | 2507 uint32 immediate_data_size, const gles2::Viewport& c) { |
| 2500 GLint x = static_cast<GLint>(c.x); | 2508 GLint x = static_cast<GLint>(c.x); |
| 2501 GLint y = static_cast<GLint>(c.y); | 2509 GLint y = static_cast<GLint>(c.y); |
| 2502 GLsizei width = static_cast<GLsizei>(c.width); | 2510 GLsizei width = static_cast<GLsizei>(c.width); |
| 2503 GLsizei height = static_cast<GLsizei>(c.height); | 2511 GLsizei height = static_cast<GLsizei>(c.height); |
| 2504 if (width < 0) { | 2512 if (width < 0) { |
| 2505 SetGLError(GL_INVALID_VALUE, "glViewport: width < 0"); | 2513 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); |
| 2506 return error::kNoError; | 2514 return error::kNoError; |
| 2507 } | 2515 } |
| 2508 if (height < 0) { | 2516 if (height < 0) { |
| 2509 SetGLError(GL_INVALID_VALUE, "glViewport: height < 0"); | 2517 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); |
| 2510 return error::kNoError; | 2518 return error::kNoError; |
| 2511 } | 2519 } |
| 2512 DoViewport(x, y, width, height); | 2520 DoViewport(x, y, width, height); |
| 2513 return error::kNoError; | 2521 return error::kNoError; |
| 2514 } | 2522 } |
| 2515 | 2523 |
| 2516 error::Error GLES2DecoderImpl::HandleBlitFramebufferEXT( | 2524 error::Error GLES2DecoderImpl::HandleBlitFramebufferEXT( |
| 2517 uint32 immediate_data_size, const gles2::BlitFramebufferEXT& c) { | 2525 uint32 immediate_data_size, const gles2::BlitFramebufferEXT& c) { |
| 2518 GLint srcX0 = static_cast<GLint>(c.srcX0); | 2526 GLint srcX0 = static_cast<GLint>(c.srcX0); |
| 2519 GLint srcY0 = static_cast<GLint>(c.srcY0); | 2527 GLint srcY0 = static_cast<GLint>(c.srcY0); |
| 2520 GLint srcX1 = static_cast<GLint>(c.srcX1); | 2528 GLint srcX1 = static_cast<GLint>(c.srcX1); |
| 2521 GLint srcY1 = static_cast<GLint>(c.srcY1); | 2529 GLint srcY1 = static_cast<GLint>(c.srcY1); |
| 2522 GLint dstX0 = static_cast<GLint>(c.dstX0); | 2530 GLint dstX0 = static_cast<GLint>(c.dstX0); |
| 2523 GLint dstY0 = static_cast<GLint>(c.dstY0); | 2531 GLint dstY0 = static_cast<GLint>(c.dstY0); |
| 2524 GLint dstX1 = static_cast<GLint>(c.dstX1); | 2532 GLint dstX1 = static_cast<GLint>(c.dstX1); |
| 2525 GLint dstY1 = static_cast<GLint>(c.dstY1); | 2533 GLint dstY1 = static_cast<GLint>(c.dstY1); |
| 2526 GLbitfield mask = static_cast<GLbitfield>(c.mask); | 2534 GLbitfield mask = static_cast<GLbitfield>(c.mask); |
| 2527 GLenum filter = static_cast<GLenum>(c.filter); | 2535 GLenum filter = static_cast<GLenum>(c.filter); |
| 2528 if (!validators_->blit_filter.IsValid(filter)) { | 2536 if (!validators_->blit_filter.IsValid(filter)) { |
| 2529 SetGLError( | 2537 SetGLError( |
| 2530 GL_INVALID_ENUM, "glBlitFramebufferEXT: filter GL_INVALID_ENUM"); | 2538 GL_INVALID_ENUM, "glBlitFramebufferEXT", "filter GL_INVALID_ENUM"); |
| 2531 return error::kNoError; | 2539 return error::kNoError; |
| 2532 } | 2540 } |
| 2533 DoBlitFramebufferEXT( | 2541 DoBlitFramebufferEXT( |
| 2534 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); | 2542 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
| 2535 return error::kNoError; | 2543 return error::kNoError; |
| 2536 } | 2544 } |
| 2537 | 2545 |
| 2538 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( | 2546 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( |
| 2539 uint32 immediate_data_size, | 2547 uint32 immediate_data_size, |
| 2540 const gles2::RenderbufferStorageMultisampleEXT& c) { | 2548 const gles2::RenderbufferStorageMultisampleEXT& c) { |
| 2541 GLenum target = static_cast<GLenum>(c.target); | 2549 GLenum target = static_cast<GLenum>(c.target); |
| 2542 GLsizei samples = static_cast<GLsizei>(c.samples); | 2550 GLsizei samples = static_cast<GLsizei>(c.samples); |
| 2543 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 2551 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 2544 GLsizei width = static_cast<GLsizei>(c.width); | 2552 GLsizei width = static_cast<GLsizei>(c.width); |
| 2545 GLsizei height = static_cast<GLsizei>(c.height); | 2553 GLsizei height = static_cast<GLsizei>(c.height); |
| 2546 if (!validators_->render_buffer_target.IsValid(target)) { | 2554 if (!validators_->render_buffer_target.IsValid(target)) { |
| 2547 SetGLError( | 2555 SetGLError( |
| 2548 GL_INVALID_ENUM, | 2556 GL_INVALID_ENUM, "glRenderbufferStorageMultisampleEXT", "target GL_INVAL
ID_ENUM"); // NOLINT |
| 2549 "glRenderbufferStorageMultisampleEXT: target GL_INVALID_ENUM"); | |
| 2550 return error::kNoError; | 2557 return error::kNoError; |
| 2551 } | 2558 } |
| 2552 if (samples < 0) { | 2559 if (samples < 0) { |
| 2553 SetGLError( | 2560 SetGLError( |
| 2554 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: samples < 0"); | 2561 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); |
| 2555 return error::kNoError; | 2562 return error::kNoError; |
| 2556 } | 2563 } |
| 2557 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 2564 if (!validators_->render_buffer_format.IsValid(internalformat)) { |
| 2558 SetGLError( | 2565 SetGLError( |
| 2559 GL_INVALID_ENUM, | 2566 GL_INVALID_ENUM, "glRenderbufferStorageMultisampleEXT", "internalformat
GL_INVALID_ENUM"); // NOLINT |
| 2560 "glRenderbufferStorageMultisampleEXT: internalformat GL_INVALID_ENUM"); | |
| 2561 return error::kNoError; | 2567 return error::kNoError; |
| 2562 } | 2568 } |
| 2563 if (width < 0) { | 2569 if (width < 0) { |
| 2564 SetGLError( | 2570 SetGLError( |
| 2565 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: width < 0"); | 2571 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); |
| 2566 return error::kNoError; | 2572 return error::kNoError; |
| 2567 } | 2573 } |
| 2568 if (height < 0) { | 2574 if (height < 0) { |
| 2569 SetGLError( | 2575 SetGLError( |
| 2570 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: height < 0"); | 2576 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); |
| 2571 return error::kNoError; | 2577 return error::kNoError; |
| 2572 } | 2578 } |
| 2573 DoRenderbufferStorageMultisample( | 2579 DoRenderbufferStorageMultisample( |
| 2574 target, samples, internalformat, width, height); | 2580 target, samples, internalformat, width, height); |
| 2575 return error::kNoError; | 2581 return error::kNoError; |
| 2576 } | 2582 } |
| 2577 | 2583 |
| 2578 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT( | 2584 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT( |
| 2579 uint32 immediate_data_size, const gles2::TexStorage2DEXT& c) { | 2585 uint32 immediate_data_size, const gles2::TexStorage2DEXT& c) { |
| 2580 GLenum target = static_cast<GLenum>(c.target); | 2586 GLenum target = static_cast<GLenum>(c.target); |
| 2581 GLsizei levels = static_cast<GLsizei>(c.levels); | 2587 GLsizei levels = static_cast<GLsizei>(c.levels); |
| 2582 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); | 2588 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); |
| 2583 GLsizei width = static_cast<GLsizei>(c.width); | 2589 GLsizei width = static_cast<GLsizei>(c.width); |
| 2584 GLsizei height = static_cast<GLsizei>(c.height); | 2590 GLsizei height = static_cast<GLsizei>(c.height); |
| 2585 if (!validators_->texture_target.IsValid(target)) { | 2591 if (!validators_->texture_target.IsValid(target)) { |
| 2586 SetGLError(GL_INVALID_ENUM, "glTexStorage2DEXT: target GL_INVALID_ENUM"); | 2592 SetGLError(GL_INVALID_ENUM, "glTexStorage2DEXT", "target GL_INVALID_ENUM"); |
| 2587 return error::kNoError; | 2593 return error::kNoError; |
| 2588 } | 2594 } |
| 2589 if (levels < 0) { | 2595 if (levels < 0) { |
| 2590 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT: levels < 0"); | 2596 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); |
| 2591 return error::kNoError; | 2597 return error::kNoError; |
| 2592 } | 2598 } |
| 2593 if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) { | 2599 if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) { |
| 2594 SetGLError( | 2600 SetGLError( |
| 2595 GL_INVALID_ENUM, "glTexStorage2DEXT: internalFormat GL_INVALID_ENUM"); | 2601 GL_INVALID_ENUM, "glTexStorage2DEXT", "internalFormat GL_INVALID_ENUM"); |
| 2596 return error::kNoError; | 2602 return error::kNoError; |
| 2597 } | 2603 } |
| 2598 if (width < 0) { | 2604 if (width < 0) { |
| 2599 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT: width < 0"); | 2605 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); |
| 2600 return error::kNoError; | 2606 return error::kNoError; |
| 2601 } | 2607 } |
| 2602 if (height < 0) { | 2608 if (height < 0) { |
| 2603 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT: height < 0"); | 2609 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); |
| 2604 return error::kNoError; | 2610 return error::kNoError; |
| 2605 } | 2611 } |
| 2606 DoTexStorage2DEXT(target, levels, internalFormat, width, height); | 2612 DoTexStorage2DEXT(target, levels, internalFormat, width, height); |
| 2607 return error::kNoError; | 2613 return error::kNoError; |
| 2608 } | 2614 } |
| 2609 | 2615 |
| 2610 error::Error GLES2DecoderImpl::HandleGenQueriesEXT( | 2616 error::Error GLES2DecoderImpl::HandleGenQueriesEXT( |
| 2611 uint32 immediate_data_size, const gles2::GenQueriesEXT& c) { | 2617 uint32 immediate_data_size, const gles2::GenQueriesEXT& c) { |
| 2612 GLsizei n = static_cast<GLsizei>(c.n); | 2618 GLsizei n = static_cast<GLsizei>(c.n); |
| 2613 uint32 data_size; | 2619 uint32 data_size; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2681 GLsizei count = static_cast<GLsizei>(c.count); | 2687 GLsizei count = static_cast<GLsizei>(c.count); |
| 2682 GLenum type = static_cast<GLenum>(c.type); | 2688 GLenum type = static_cast<GLenum>(c.type); |
| 2683 GLuint offset = static_cast<GLuint>(c.offset); | 2689 GLuint offset = static_cast<GLuint>(c.offset); |
| 2684 typedef GetMaxValueInBufferCHROMIUM::Result Result; | 2690 typedef GetMaxValueInBufferCHROMIUM::Result Result; |
| 2685 Result* result_dst = GetSharedMemoryAs<Result*>( | 2691 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 2686 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 2692 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 2687 if (!result_dst) { | 2693 if (!result_dst) { |
| 2688 return error::kOutOfBounds; | 2694 return error::kOutOfBounds; |
| 2689 } | 2695 } |
| 2690 if (count < 0) { | 2696 if (count < 0) { |
| 2691 SetGLError(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM: count < 0"); | 2697 SetGLError(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0"); |
| 2692 return error::kNoError; | 2698 return error::kNoError; |
| 2693 } | 2699 } |
| 2694 if (!validators_->get_max_index_type.IsValid(type)) { | 2700 if (!validators_->get_max_index_type.IsValid(type)) { |
| 2695 SetGLError( | 2701 SetGLError( |
| 2696 GL_INVALID_ENUM, | 2702 GL_INVALID_ENUM, "glGetMaxValueInBufferCHROMIUM", "type GL_INVALID_ENUM"
); // NOLINT |
| 2697 "glGetMaxValueInBufferCHROMIUM: type GL_INVALID_ENUM"); | |
| 2698 return error::kNoError; | 2703 return error::kNoError; |
| 2699 } | 2704 } |
| 2700 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); | 2705 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); |
| 2701 return error::kNoError; | 2706 return error::kNoError; |
| 2702 } | 2707 } |
| 2703 | 2708 |
| 2704 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM( | 2709 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM( |
| 2705 uint32 immediate_data_size, const gles2::TexImageIOSurface2DCHROMIUM& c) { | 2710 uint32 immediate_data_size, const gles2::TexImageIOSurface2DCHROMIUM& c) { |
| 2706 GLenum target = static_cast<GLenum>(c.target); | 2711 GLenum target = static_cast<GLenum>(c.target); |
| 2707 GLsizei width = static_cast<GLsizei>(c.width); | 2712 GLsizei width = static_cast<GLsizei>(c.width); |
| 2708 GLsizei height = static_cast<GLsizei>(c.height); | 2713 GLsizei height = static_cast<GLsizei>(c.height); |
| 2709 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId); | 2714 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId); |
| 2710 GLuint plane = static_cast<GLuint>(c.plane); | 2715 GLuint plane = static_cast<GLuint>(c.plane); |
| 2711 if (!validators_->texture_bind_target.IsValid(target)) { | 2716 if (!validators_->texture_bind_target.IsValid(target)) { |
| 2712 SetGLError( | 2717 SetGLError( |
| 2713 GL_INVALID_ENUM, | 2718 GL_INVALID_ENUM, "glTexImageIOSurface2DCHROMIUM", "target GL_INVALID_ENU
M"); // NOLINT |
| 2714 "glTexImageIOSurface2DCHROMIUM: target GL_INVALID_ENUM"); | |
| 2715 return error::kNoError; | 2719 return error::kNoError; |
| 2716 } | 2720 } |
| 2717 if (width < 0) { | 2721 if (width < 0) { |
| 2718 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM: width < 0"); | 2722 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); |
| 2719 return error::kNoError; | 2723 return error::kNoError; |
| 2720 } | 2724 } |
| 2721 if (height < 0) { | 2725 if (height < 0) { |
| 2722 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM: height < 0"); | 2726 SetGLError( |
| 2727 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); |
| 2723 return error::kNoError; | 2728 return error::kNoError; |
| 2724 } | 2729 } |
| 2725 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane); | 2730 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane); |
| 2726 return error::kNoError; | 2731 return error::kNoError; |
| 2727 } | 2732 } |
| 2728 | 2733 |
| 2729 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( | 2734 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( |
| 2730 uint32 immediate_data_size, const gles2::CopyTextureCHROMIUM& c) { | 2735 uint32 immediate_data_size, const gles2::CopyTextureCHROMIUM& c) { |
| 2731 GLenum target = static_cast<GLenum>(c.target); | 2736 GLenum target = static_cast<GLenum>(c.target); |
| 2732 GLenum source_id = static_cast<GLenum>(c.source_id); | 2737 GLenum source_id = static_cast<GLenum>(c.source_id); |
| 2733 GLenum dest_id = static_cast<GLenum>(c.dest_id); | 2738 GLenum dest_id = static_cast<GLenum>(c.dest_id); |
| 2734 GLint level = static_cast<GLint>(c.level); | 2739 GLint level = static_cast<GLint>(c.level); |
| 2735 GLint internalformat = static_cast<GLint>(c.internalformat); | 2740 GLint internalformat = static_cast<GLint>(c.internalformat); |
| 2736 if (!validators_->texture_internal_format.IsValid(internalformat)) { | 2741 if (!validators_->texture_internal_format.IsValid(internalformat)) { |
| 2737 SetGLError( | 2742 SetGLError( |
| 2738 GL_INVALID_VALUE, | 2743 GL_INVALID_VALUE, "glCopyTextureCHROMIUM", "internalformat GL_INVALID_VA
LUE"); // NOLINT |
| 2739 "glCopyTextureCHROMIUM: internalformat GL_INVALID_VALUE"); | |
| 2740 return error::kNoError; | 2744 return error::kNoError; |
| 2741 } | 2745 } |
| 2742 DoCopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat); | 2746 DoCopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat); |
| 2743 return error::kNoError; | 2747 return error::kNoError; |
| 2744 } | 2748 } |
| 2745 | 2749 |
| 2746 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUM( | 2750 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUM( |
| 2747 uint32 immediate_data_size, const gles2::ProduceTextureCHROMIUM& c) { | 2751 uint32 immediate_data_size, const gles2::ProduceTextureCHROMIUM& c) { |
| 2748 GLenum target = static_cast<GLenum>(c.target); | 2752 GLenum target = static_cast<GLenum>(c.target); |
| 2749 uint32 data_size; | 2753 uint32 data_size; |
| 2750 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 2754 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 2751 return error::kOutOfBounds; | 2755 return error::kOutOfBounds; |
| 2752 } | 2756 } |
| 2753 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( | 2757 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( |
| 2754 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); | 2758 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); |
| 2755 if (!validators_->texture_target.IsValid(target)) { | 2759 if (!validators_->texture_target.IsValid(target)) { |
| 2756 SetGLError( | 2760 SetGLError( |
| 2757 GL_INVALID_ENUM, "glProduceTextureCHROMIUM: target GL_INVALID_ENUM"); | 2761 GL_INVALID_ENUM, "glProduceTextureCHROMIUM", "target GL_INVALID_ENUM"); |
| 2758 return error::kNoError; | 2762 return error::kNoError; |
| 2759 } | 2763 } |
| 2760 if (mailbox == NULL) { | 2764 if (mailbox == NULL) { |
| 2761 return error::kOutOfBounds; | 2765 return error::kOutOfBounds; |
| 2762 } | 2766 } |
| 2763 DoProduceTextureCHROMIUM(target, mailbox); | 2767 DoProduceTextureCHROMIUM(target, mailbox); |
| 2764 return error::kNoError; | 2768 return error::kNoError; |
| 2765 } | 2769 } |
| 2766 | 2770 |
| 2767 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( | 2771 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( |
| 2768 uint32 immediate_data_size, | 2772 uint32 immediate_data_size, |
| 2769 const gles2::ProduceTextureCHROMIUMImmediate& c) { | 2773 const gles2::ProduceTextureCHROMIUMImmediate& c) { |
| 2770 GLenum target = static_cast<GLenum>(c.target); | 2774 GLenum target = static_cast<GLenum>(c.target); |
| 2771 uint32 data_size; | 2775 uint32 data_size; |
| 2772 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 2776 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 2773 return error::kOutOfBounds; | 2777 return error::kOutOfBounds; |
| 2774 } | 2778 } |
| 2775 if (data_size > immediate_data_size) { | 2779 if (data_size > immediate_data_size) { |
| 2776 return error::kOutOfBounds; | 2780 return error::kOutOfBounds; |
| 2777 } | 2781 } |
| 2778 const GLbyte* mailbox = GetImmediateDataAs<const GLbyte*>( | 2782 const GLbyte* mailbox = GetImmediateDataAs<const GLbyte*>( |
| 2779 c, data_size, immediate_data_size); | 2783 c, data_size, immediate_data_size); |
| 2780 if (!validators_->texture_target.IsValid(target)) { | 2784 if (!validators_->texture_target.IsValid(target)) { |
| 2781 SetGLError( | 2785 SetGLError( |
| 2782 GL_INVALID_ENUM, "glProduceTextureCHROMIUM: target GL_INVALID_ENUM"); | 2786 GL_INVALID_ENUM, "glProduceTextureCHROMIUM", "target GL_INVALID_ENUM"); |
| 2783 return error::kNoError; | 2787 return error::kNoError; |
| 2784 } | 2788 } |
| 2785 if (mailbox == NULL) { | 2789 if (mailbox == NULL) { |
| 2786 return error::kOutOfBounds; | 2790 return error::kOutOfBounds; |
| 2787 } | 2791 } |
| 2788 DoProduceTextureCHROMIUM(target, mailbox); | 2792 DoProduceTextureCHROMIUM(target, mailbox); |
| 2789 return error::kNoError; | 2793 return error::kNoError; |
| 2790 } | 2794 } |
| 2791 | 2795 |
| 2792 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM( | 2796 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM( |
| 2793 uint32 immediate_data_size, const gles2::ConsumeTextureCHROMIUM& c) { | 2797 uint32 immediate_data_size, const gles2::ConsumeTextureCHROMIUM& c) { |
| 2794 GLenum target = static_cast<GLenum>(c.target); | 2798 GLenum target = static_cast<GLenum>(c.target); |
| 2795 uint32 data_size; | 2799 uint32 data_size; |
| 2796 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 2800 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 2797 return error::kOutOfBounds; | 2801 return error::kOutOfBounds; |
| 2798 } | 2802 } |
| 2799 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( | 2803 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( |
| 2800 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); | 2804 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); |
| 2801 if (!validators_->texture_target.IsValid(target)) { | 2805 if (!validators_->texture_target.IsValid(target)) { |
| 2802 SetGLError( | 2806 SetGLError( |
| 2803 GL_INVALID_ENUM, "glConsumeTextureCHROMIUM: target GL_INVALID_ENUM"); | 2807 GL_INVALID_ENUM, "glConsumeTextureCHROMIUM", "target GL_INVALID_ENUM"); |
| 2804 return error::kNoError; | 2808 return error::kNoError; |
| 2805 } | 2809 } |
| 2806 if (mailbox == NULL) { | 2810 if (mailbox == NULL) { |
| 2807 return error::kOutOfBounds; | 2811 return error::kOutOfBounds; |
| 2808 } | 2812 } |
| 2809 DoConsumeTextureCHROMIUM(target, mailbox); | 2813 DoConsumeTextureCHROMIUM(target, mailbox); |
| 2810 return error::kNoError; | 2814 return error::kNoError; |
| 2811 } | 2815 } |
| 2812 | 2816 |
| 2813 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( | 2817 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( |
| 2814 uint32 immediate_data_size, | 2818 uint32 immediate_data_size, |
| 2815 const gles2::ConsumeTextureCHROMIUMImmediate& c) { | 2819 const gles2::ConsumeTextureCHROMIUMImmediate& c) { |
| 2816 GLenum target = static_cast<GLenum>(c.target); | 2820 GLenum target = static_cast<GLenum>(c.target); |
| 2817 uint32 data_size; | 2821 uint32 data_size; |
| 2818 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 2822 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 2819 return error::kOutOfBounds; | 2823 return error::kOutOfBounds; |
| 2820 } | 2824 } |
| 2821 if (data_size > immediate_data_size) { | 2825 if (data_size > immediate_data_size) { |
| 2822 return error::kOutOfBounds; | 2826 return error::kOutOfBounds; |
| 2823 } | 2827 } |
| 2824 const GLbyte* mailbox = GetImmediateDataAs<const GLbyte*>( | 2828 const GLbyte* mailbox = GetImmediateDataAs<const GLbyte*>( |
| 2825 c, data_size, immediate_data_size); | 2829 c, data_size, immediate_data_size); |
| 2826 if (!validators_->texture_target.IsValid(target)) { | 2830 if (!validators_->texture_target.IsValid(target)) { |
| 2827 SetGLError( | 2831 SetGLError( |
| 2828 GL_INVALID_ENUM, "glConsumeTextureCHROMIUM: target GL_INVALID_ENUM"); | 2832 GL_INVALID_ENUM, "glConsumeTextureCHROMIUM", "target GL_INVALID_ENUM"); |
| 2829 return error::kNoError; | 2833 return error::kNoError; |
| 2830 } | 2834 } |
| 2831 if (mailbox == NULL) { | 2835 if (mailbox == NULL) { |
| 2832 return error::kOutOfBounds; | 2836 return error::kOutOfBounds; |
| 2833 } | 2837 } |
| 2834 DoConsumeTextureCHROMIUM(target, mailbox); | 2838 DoConsumeTextureCHROMIUM(target, mailbox); |
| 2835 return error::kNoError; | 2839 return error::kNoError; |
| 2836 } | 2840 } |
| 2837 | 2841 |
| 2838 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 2842 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| 2839 | 2843 |
| OLD | NEW |