| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 11 matching lines...) Expand all Loading... |
| 22 GLuint program = c.program; | 22 GLuint program = c.program; |
| 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(GL_INVALID_ENUM, "glBindRenderbuffer: target GL_INVALID_ENUM"); |
| 58 return error::kNoError; | 58 return error::kNoError; |
| 59 } | 59 } |
| 60 DoBindRenderbuffer(target, renderbuffer); | 60 DoBindRenderbuffer(target, renderbuffer); |
| 61 return error::kNoError; | 61 return error::kNoError; |
| 62 } | 62 } |
| 63 | 63 |
| 64 error::Error GLES2DecoderImpl::HandleBindTexture( | 64 error::Error GLES2DecoderImpl::HandleBindTexture( |
| 65 uint32 immediate_data_size, const gles2::BindTexture& c) { | 65 uint32 immediate_data_size, const gles2::BindTexture& c) { |
| 66 GLenum target = static_cast<GLenum>(c.target); | 66 GLenum target = static_cast<GLenum>(c.target); |
| 67 GLuint texture = c.texture; | 67 GLuint texture = c.texture; |
| 68 if (!validators_->texture_bind_target.IsValid(target)) { | 68 if (!validators()->texture_bind_target.IsValid(target)) { |
| 69 SetGLError(GL_INVALID_ENUM, "glBindTexture: target GL_INVALID_ENUM"); | 69 SetGLError(GL_INVALID_ENUM, "glBindTexture: target GL_INVALID_ENUM"); |
| 70 return error::kNoError; | 70 return error::kNoError; |
| 71 } | 71 } |
| 72 DoBindTexture(target, texture); | 72 DoBindTexture(target, texture); |
| 73 return error::kNoError; | 73 return error::kNoError; |
| 74 } | 74 } |
| 75 | 75 |
| 76 error::Error GLES2DecoderImpl::HandleBlendColor( | 76 error::Error GLES2DecoderImpl::HandleBlendColor( |
| 77 uint32 immediate_data_size, const gles2::BlendColor& c) { | 77 uint32 immediate_data_size, const gles2::BlendColor& c) { |
| 78 GLclampf red = static_cast<GLclampf>(c.red); | 78 GLclampf red = static_cast<GLclampf>(c.red); |
| 79 GLclampf green = static_cast<GLclampf>(c.green); | 79 GLclampf green = static_cast<GLclampf>(c.green); |
| 80 GLclampf blue = static_cast<GLclampf>(c.blue); | 80 GLclampf blue = static_cast<GLclampf>(c.blue); |
| 81 GLclampf alpha = static_cast<GLclampf>(c.alpha); | 81 GLclampf alpha = static_cast<GLclampf>(c.alpha); |
| 82 glBlendColor(red, green, blue, alpha); | 82 glBlendColor(red, green, blue, alpha); |
| 83 return error::kNoError; | 83 return error::kNoError; |
| 84 } | 84 } |
| 85 | 85 |
| 86 error::Error GLES2DecoderImpl::HandleBlendEquation( | 86 error::Error GLES2DecoderImpl::HandleBlendEquation( |
| 87 uint32 immediate_data_size, const gles2::BlendEquation& c) { | 87 uint32 immediate_data_size, const gles2::BlendEquation& c) { |
| 88 GLenum mode = static_cast<GLenum>(c.mode); | 88 GLenum mode = static_cast<GLenum>(c.mode); |
| 89 if (!validators_->equation.IsValid(mode)) { | 89 if (!validators()->equation.IsValid(mode)) { |
| 90 SetGLError(GL_INVALID_ENUM, "glBlendEquation: mode GL_INVALID_ENUM"); | 90 SetGLError(GL_INVALID_ENUM, "glBlendEquation: mode GL_INVALID_ENUM"); |
| 91 return error::kNoError; | 91 return error::kNoError; |
| 92 } | 92 } |
| 93 glBlendEquation(mode); | 93 glBlendEquation(mode); |
| 94 return error::kNoError; | 94 return error::kNoError; |
| 95 } | 95 } |
| 96 | 96 |
| 97 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( | 97 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( |
| 98 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) { | 98 uint32 immediate_data_size, const gles2::BlendEquationSeparate& c) { |
| 99 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); | 99 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); |
| 100 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); | 100 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); |
| 101 if (!validators_->equation.IsValid(modeRGB)) { | 101 if (!validators()->equation.IsValid(modeRGB)) { |
| 102 SetGLError( | 102 SetGLError( |
| 103 GL_INVALID_ENUM, "glBlendEquationSeparate: modeRGB GL_INVALID_ENUM"); | 103 GL_INVALID_ENUM, "glBlendEquationSeparate: modeRGB GL_INVALID_ENUM"); |
| 104 return error::kNoError; | 104 return error::kNoError; |
| 105 } | 105 } |
| 106 if (!validators_->equation.IsValid(modeAlpha)) { | 106 if (!validators()->equation.IsValid(modeAlpha)) { |
| 107 SetGLError( | 107 SetGLError( |
| 108 GL_INVALID_ENUM, "glBlendEquationSeparate: modeAlpha GL_INVALID_ENUM"); | 108 GL_INVALID_ENUM, "glBlendEquationSeparate: modeAlpha GL_INVALID_ENUM"); |
| 109 return error::kNoError; | 109 return error::kNoError; |
| 110 } | 110 } |
| 111 glBlendEquationSeparate(modeRGB, modeAlpha); | 111 glBlendEquationSeparate(modeRGB, modeAlpha); |
| 112 return error::kNoError; | 112 return error::kNoError; |
| 113 } | 113 } |
| 114 | 114 |
| 115 error::Error GLES2DecoderImpl::HandleBlendFunc( | 115 error::Error GLES2DecoderImpl::HandleBlendFunc( |
| 116 uint32 immediate_data_size, const gles2::BlendFunc& c) { | 116 uint32 immediate_data_size, const gles2::BlendFunc& c) { |
| 117 GLenum sfactor = static_cast<GLenum>(c.sfactor); | 117 GLenum sfactor = static_cast<GLenum>(c.sfactor); |
| 118 GLenum dfactor = static_cast<GLenum>(c.dfactor); | 118 GLenum dfactor = static_cast<GLenum>(c.dfactor); |
| 119 if (!validators_->src_blend_factor.IsValid(sfactor)) { | 119 if (!validators()->src_blend_factor.IsValid(sfactor)) { |
| 120 SetGLError(GL_INVALID_ENUM, "glBlendFunc: sfactor GL_INVALID_ENUM"); | 120 SetGLError(GL_INVALID_ENUM, "glBlendFunc: sfactor GL_INVALID_ENUM"); |
| 121 return error::kNoError; | 121 return error::kNoError; |
| 122 } | 122 } |
| 123 if (!validators_->dst_blend_factor.IsValid(dfactor)) { | 123 if (!validators()->dst_blend_factor.IsValid(dfactor)) { |
| 124 SetGLError(GL_INVALID_ENUM, "glBlendFunc: dfactor GL_INVALID_ENUM"); | 124 SetGLError(GL_INVALID_ENUM, "glBlendFunc: dfactor GL_INVALID_ENUM"); |
| 125 return error::kNoError; | 125 return error::kNoError; |
| 126 } | 126 } |
| 127 glBlendFunc(sfactor, dfactor); | 127 glBlendFunc(sfactor, dfactor); |
| 128 return error::kNoError; | 128 return error::kNoError; |
| 129 } | 129 } |
| 130 | 130 |
| 131 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( | 131 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( |
| 132 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) { | 132 uint32 immediate_data_size, const gles2::BlendFuncSeparate& c) { |
| 133 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); | 133 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); |
| 134 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); | 134 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); |
| 135 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); | 135 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); |
| 136 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); | 136 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); |
| 137 if (!validators_->src_blend_factor.IsValid(srcRGB)) { | 137 if (!validators()->src_blend_factor.IsValid(srcRGB)) { |
| 138 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: srcRGB GL_INVALID_ENUM"); | 138 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: srcRGB GL_INVALID_ENUM"); |
| 139 return error::kNoError; | 139 return error::kNoError; |
| 140 } | 140 } |
| 141 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { | 141 if (!validators()->dst_blend_factor.IsValid(dstRGB)) { |
| 142 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: dstRGB GL_INVALID_ENUM"); | 142 SetGLError(GL_INVALID_ENUM, "glBlendFuncSeparate: dstRGB GL_INVALID_ENUM"); |
| 143 return error::kNoError; | 143 return error::kNoError; |
| 144 } | 144 } |
| 145 if (!validators_->src_blend_factor.IsValid(srcAlpha)) { | 145 if (!validators()->src_blend_factor.IsValid(srcAlpha)) { |
| 146 SetGLError( | 146 SetGLError( |
| 147 GL_INVALID_ENUM, "glBlendFuncSeparate: srcAlpha GL_INVALID_ENUM"); | 147 GL_INVALID_ENUM, "glBlendFuncSeparate: srcAlpha GL_INVALID_ENUM"); |
| 148 return error::kNoError; | 148 return error::kNoError; |
| 149 } | 149 } |
| 150 if (!validators_->dst_blend_factor.IsValid(dstAlpha)) { | 150 if (!validators()->dst_blend_factor.IsValid(dstAlpha)) { |
| 151 SetGLError( | 151 SetGLError( |
| 152 GL_INVALID_ENUM, "glBlendFuncSeparate: dstAlpha GL_INVALID_ENUM"); | 152 GL_INVALID_ENUM, "glBlendFuncSeparate: dstAlpha GL_INVALID_ENUM"); |
| 153 return error::kNoError; | 153 return error::kNoError; |
| 154 } | 154 } |
| 155 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); | 155 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); |
| 156 return error::kNoError; | 156 return error::kNoError; |
| 157 } | 157 } |
| 158 | 158 |
| 159 error::Error GLES2DecoderImpl::HandleBufferSubData( | 159 error::Error GLES2DecoderImpl::HandleBufferSubData( |
| 160 uint32 immediate_data_size, const gles2::BufferSubData& c) { | 160 uint32 immediate_data_size, const gles2::BufferSubData& c) { |
| 161 GLenum target = static_cast<GLenum>(c.target); | 161 GLenum target = static_cast<GLenum>(c.target); |
| 162 GLintptr offset = static_cast<GLintptr>(c.offset); | 162 GLintptr offset = static_cast<GLintptr>(c.offset); |
| 163 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 163 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 164 uint32 data_size = size; | 164 uint32 data_size = size; |
| 165 const void* data = GetSharedMemoryAs<const void*>( | 165 const void* data = GetSharedMemoryAs<const void*>( |
| 166 c.data_shm_id, c.data_shm_offset, data_size); | 166 c.data_shm_id, c.data_shm_offset, data_size); |
| 167 if (!validators_->buffer_target.IsValid(target)) { | 167 if (!validators()->buffer_target.IsValid(target)) { |
| 168 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); | 168 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); |
| 169 return error::kNoError; | 169 return error::kNoError; |
| 170 } | 170 } |
| 171 if (size < 0) { | 171 if (size < 0) { |
| 172 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); | 172 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); |
| 173 return error::kNoError; | 173 return error::kNoError; |
| 174 } | 174 } |
| 175 if (data == NULL) { | 175 if (data == NULL) { |
| 176 return error::kOutOfBounds; | 176 return error::kOutOfBounds; |
| 177 } | 177 } |
| 178 DoBufferSubData(target, offset, size, data); | 178 DoBufferSubData(target, offset, size, data); |
| 179 return error::kNoError; | 179 return error::kNoError; |
| 180 } | 180 } |
| 181 | 181 |
| 182 error::Error GLES2DecoderImpl::HandleBufferSubDataImmediate( | 182 error::Error GLES2DecoderImpl::HandleBufferSubDataImmediate( |
| 183 uint32 immediate_data_size, const gles2::BufferSubDataImmediate& c) { | 183 uint32 immediate_data_size, const gles2::BufferSubDataImmediate& c) { |
| 184 GLenum target = static_cast<GLenum>(c.target); | 184 GLenum target = static_cast<GLenum>(c.target); |
| 185 GLintptr offset = static_cast<GLintptr>(c.offset); | 185 GLintptr offset = static_cast<GLintptr>(c.offset); |
| 186 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 186 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 187 uint32 data_size = size; | 187 uint32 data_size = size; |
| 188 const void* data = GetImmediateDataAs<const void*>( | 188 const void* data = GetImmediateDataAs<const void*>( |
| 189 c, data_size, immediate_data_size); | 189 c, data_size, immediate_data_size); |
| 190 if (!validators_->buffer_target.IsValid(target)) { | 190 if (!validators()->buffer_target.IsValid(target)) { |
| 191 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); | 191 SetGLError(GL_INVALID_ENUM, "glBufferSubData: target GL_INVALID_ENUM"); |
| 192 return error::kNoError; | 192 return error::kNoError; |
| 193 } | 193 } |
| 194 if (size < 0) { | 194 if (size < 0) { |
| 195 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); | 195 SetGLError(GL_INVALID_VALUE, "glBufferSubData: size < 0"); |
| 196 return error::kNoError; | 196 return error::kNoError; |
| 197 } | 197 } |
| 198 if (data == NULL) { | 198 if (data == NULL) { |
| 199 return error::kOutOfBounds; | 199 return error::kOutOfBounds; |
| 200 } | 200 } |
| 201 DoBufferSubData(target, offset, size, data); | 201 DoBufferSubData(target, offset, size, data); |
| 202 return error::kNoError; | 202 return error::kNoError; |
| 203 } | 203 } |
| 204 | 204 |
| 205 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus( | 205 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus( |
| 206 uint32 immediate_data_size, const gles2::CheckFramebufferStatus& c) { | 206 uint32 immediate_data_size, const gles2::CheckFramebufferStatus& c) { |
| 207 GLenum target = static_cast<GLenum>(c.target); | 207 GLenum target = static_cast<GLenum>(c.target); |
| 208 typedef CheckFramebufferStatus::Result Result; | 208 typedef CheckFramebufferStatus::Result Result; |
| 209 Result* result_dst = GetSharedMemoryAs<Result*>( | 209 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 210 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 210 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 211 if (!result_dst) { | 211 if (!result_dst) { |
| 212 return error::kOutOfBounds; | 212 return error::kOutOfBounds; |
| 213 } | 213 } |
| 214 if (!validators_->frame_buffer_target.IsValid(target)) { | 214 if (!validators()->frame_buffer_target.IsValid(target)) { |
| 215 SetGLError( | 215 SetGLError( |
| 216 GL_INVALID_ENUM, "glCheckFramebufferStatus: target GL_INVALID_ENUM"); | 216 GL_INVALID_ENUM, "glCheckFramebufferStatus: target GL_INVALID_ENUM"); |
| 217 return error::kNoError; | 217 return error::kNoError; |
| 218 } | 218 } |
| 219 *result_dst = DoCheckFramebufferStatus(target); | 219 *result_dst = DoCheckFramebufferStatus(target); |
| 220 return error::kNoError; | 220 return error::kNoError; |
| 221 } | 221 } |
| 222 | 222 |
| 223 error::Error GLES2DecoderImpl::HandleClear( | 223 error::Error GLES2DecoderImpl::HandleClear( |
| 224 uint32 immediate_data_size, const gles2::Clear& c) { | 224 uint32 immediate_data_size, const gles2::Clear& c) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 GLint level = static_cast<GLint>(c.level); | 274 GLint level = static_cast<GLint>(c.level); |
| 275 GLint xoffset = static_cast<GLint>(c.xoffset); | 275 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 276 GLint yoffset = static_cast<GLint>(c.yoffset); | 276 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 277 GLsizei width = static_cast<GLsizei>(c.width); | 277 GLsizei width = static_cast<GLsizei>(c.width); |
| 278 GLsizei height = static_cast<GLsizei>(c.height); | 278 GLsizei height = static_cast<GLsizei>(c.height); |
| 279 GLenum format = static_cast<GLenum>(c.format); | 279 GLenum format = static_cast<GLenum>(c.format); |
| 280 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 280 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 281 uint32 data_size = imageSize; | 281 uint32 data_size = imageSize; |
| 282 const void* data = GetSharedMemoryAs<const void*>( | 282 const void* data = GetSharedMemoryAs<const void*>( |
| 283 c.data_shm_id, c.data_shm_offset, data_size); | 283 c.data_shm_id, c.data_shm_offset, data_size); |
| 284 if (!validators_->texture_target.IsValid(target)) { | 284 if (!validators()->texture_target.IsValid(target)) { |
| 285 SetGLError( | 285 SetGLError( |
| 286 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); | 286 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); |
| 287 return error::kNoError; | 287 return error::kNoError; |
| 288 } | 288 } |
| 289 if (width < 0) { | 289 if (width < 0) { |
| 290 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); | 290 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); |
| 291 return error::kNoError; | 291 return error::kNoError; |
| 292 } | 292 } |
| 293 if (height < 0) { | 293 if (height < 0) { |
| 294 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); | 294 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); |
| 295 return error::kNoError; | 295 return error::kNoError; |
| 296 } | 296 } |
| 297 if (!validators_->compressed_texture_format.IsValid(format)) { | 297 if (!validators()->compressed_texture_format.IsValid(format)) { |
| 298 SetGLError( | 298 SetGLError( |
| 299 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); | 299 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); |
| 300 return error::kNoError; | 300 return error::kNoError; |
| 301 } | 301 } |
| 302 if (imageSize < 0) { | 302 if (imageSize < 0) { |
| 303 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); | 303 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); |
| 304 return error::kNoError; | 304 return error::kNoError; |
| 305 } | 305 } |
| 306 if (data == NULL) { | 306 if (data == NULL) { |
| 307 return error::kOutOfBounds; | 307 return error::kOutOfBounds; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 318 GLint level = static_cast<GLint>(c.level); | 318 GLint level = static_cast<GLint>(c.level); |
| 319 GLint xoffset = static_cast<GLint>(c.xoffset); | 319 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 320 GLint yoffset = static_cast<GLint>(c.yoffset); | 320 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 321 GLsizei width = static_cast<GLsizei>(c.width); | 321 GLsizei width = static_cast<GLsizei>(c.width); |
| 322 GLsizei height = static_cast<GLsizei>(c.height); | 322 GLsizei height = static_cast<GLsizei>(c.height); |
| 323 GLenum format = static_cast<GLenum>(c.format); | 323 GLenum format = static_cast<GLenum>(c.format); |
| 324 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 324 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 325 uint32 data_size = imageSize; | 325 uint32 data_size = imageSize; |
| 326 const void* data = GetImmediateDataAs<const void*>( | 326 const void* data = GetImmediateDataAs<const void*>( |
| 327 c, data_size, immediate_data_size); | 327 c, data_size, immediate_data_size); |
| 328 if (!validators_->texture_target.IsValid(target)) { | 328 if (!validators()->texture_target.IsValid(target)) { |
| 329 SetGLError( | 329 SetGLError( |
| 330 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); | 330 GL_INVALID_ENUM, "glCompressedTexSubImage2D: target GL_INVALID_ENUM"); |
| 331 return error::kNoError; | 331 return error::kNoError; |
| 332 } | 332 } |
| 333 if (width < 0) { | 333 if (width < 0) { |
| 334 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); | 334 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: width < 0"); |
| 335 return error::kNoError; | 335 return error::kNoError; |
| 336 } | 336 } |
| 337 if (height < 0) { | 337 if (height < 0) { |
| 338 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); | 338 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: height < 0"); |
| 339 return error::kNoError; | 339 return error::kNoError; |
| 340 } | 340 } |
| 341 if (!validators_->compressed_texture_format.IsValid(format)) { | 341 if (!validators()->compressed_texture_format.IsValid(format)) { |
| 342 SetGLError( | 342 SetGLError( |
| 343 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); | 343 GL_INVALID_ENUM, "glCompressedTexSubImage2D: format GL_INVALID_ENUM"); |
| 344 return error::kNoError; | 344 return error::kNoError; |
| 345 } | 345 } |
| 346 if (imageSize < 0) { | 346 if (imageSize < 0) { |
| 347 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); | 347 SetGLError(GL_INVALID_VALUE, "glCompressedTexSubImage2D: imageSize < 0"); |
| 348 return error::kNoError; | 348 return error::kNoError; |
| 349 } | 349 } |
| 350 if (data == NULL) { | 350 if (data == NULL) { |
| 351 return error::kOutOfBounds; | 351 return error::kOutOfBounds; |
| 352 } | 352 } |
| 353 DoCompressedTexSubImage2D( | 353 DoCompressedTexSubImage2D( |
| 354 target, level, xoffset, yoffset, width, height, format, imageSize, data); | 354 target, level, xoffset, yoffset, width, height, format, imageSize, data); |
| 355 return error::kNoError; | 355 return error::kNoError; |
| 356 } | 356 } |
| 357 | 357 |
| 358 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( | 358 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( |
| 359 uint32 immediate_data_size, const gles2::CopyTexImage2D& c) { | 359 uint32 immediate_data_size, const gles2::CopyTexImage2D& c) { |
| 360 GLenum target = static_cast<GLenum>(c.target); | 360 GLenum target = static_cast<GLenum>(c.target); |
| 361 GLint level = static_cast<GLint>(c.level); | 361 GLint level = static_cast<GLint>(c.level); |
| 362 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 362 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 363 GLint x = static_cast<GLint>(c.x); | 363 GLint x = static_cast<GLint>(c.x); |
| 364 GLint y = static_cast<GLint>(c.y); | 364 GLint y = static_cast<GLint>(c.y); |
| 365 GLsizei width = static_cast<GLsizei>(c.width); | 365 GLsizei width = static_cast<GLsizei>(c.width); |
| 366 GLsizei height = static_cast<GLsizei>(c.height); | 366 GLsizei height = static_cast<GLsizei>(c.height); |
| 367 GLint border = static_cast<GLint>(c.border); | 367 GLint border = static_cast<GLint>(c.border); |
| 368 if (!validators_->texture_target.IsValid(target)) { | 368 if (!validators()->texture_target.IsValid(target)) { |
| 369 SetGLError(GL_INVALID_ENUM, "glCopyTexImage2D: target GL_INVALID_ENUM"); | 369 SetGLError(GL_INVALID_ENUM, "glCopyTexImage2D: target GL_INVALID_ENUM"); |
| 370 return error::kNoError; | 370 return error::kNoError; |
| 371 } | 371 } |
| 372 if (!validators_->texture_internal_format.IsValid(internalformat)) { | 372 if (!validators()->texture_internal_format.IsValid(internalformat)) { |
| 373 SetGLError( | 373 SetGLError( |
| 374 GL_INVALID_ENUM, "glCopyTexImage2D: internalformat GL_INVALID_ENUM"); | 374 GL_INVALID_ENUM, "glCopyTexImage2D: internalformat GL_INVALID_ENUM"); |
| 375 return error::kNoError; | 375 return error::kNoError; |
| 376 } | 376 } |
| 377 if (width < 0) { | 377 if (width < 0) { |
| 378 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: width < 0"); | 378 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: width < 0"); |
| 379 return error::kNoError; | 379 return error::kNoError; |
| 380 } | 380 } |
| 381 if (height < 0) { | 381 if (height < 0) { |
| 382 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: height < 0"); | 382 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: height < 0"); |
| 383 return error::kNoError; | 383 return error::kNoError; |
| 384 } | 384 } |
| 385 if (!validators_->texture_border.IsValid(border)) { | 385 if (!validators()->texture_border.IsValid(border)) { |
| 386 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: border GL_INVALID_VALUE"); | 386 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D: border GL_INVALID_VALUE"); |
| 387 return error::kNoError; | 387 return error::kNoError; |
| 388 } | 388 } |
| 389 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border); | 389 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border); |
| 390 return error::kNoError; | 390 return error::kNoError; |
| 391 } | 391 } |
| 392 | 392 |
| 393 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D( | 393 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D( |
| 394 uint32 immediate_data_size, const gles2::CopyTexSubImage2D& c) { | 394 uint32 immediate_data_size, const gles2::CopyTexSubImage2D& c) { |
| 395 GLenum target = static_cast<GLenum>(c.target); | 395 GLenum target = static_cast<GLenum>(c.target); |
| 396 GLint level = static_cast<GLint>(c.level); | 396 GLint level = static_cast<GLint>(c.level); |
| 397 GLint xoffset = static_cast<GLint>(c.xoffset); | 397 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 398 GLint yoffset = static_cast<GLint>(c.yoffset); | 398 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 399 GLint x = static_cast<GLint>(c.x); | 399 GLint x = static_cast<GLint>(c.x); |
| 400 GLint y = static_cast<GLint>(c.y); | 400 GLint y = static_cast<GLint>(c.y); |
| 401 GLsizei width = static_cast<GLsizei>(c.width); | 401 GLsizei width = static_cast<GLsizei>(c.width); |
| 402 GLsizei height = static_cast<GLsizei>(c.height); | 402 GLsizei height = static_cast<GLsizei>(c.height); |
| 403 if (!validators_->texture_target.IsValid(target)) { | 403 if (!validators()->texture_target.IsValid(target)) { |
| 404 SetGLError(GL_INVALID_ENUM, "glCopyTexSubImage2D: target GL_INVALID_ENUM"); | 404 SetGLError(GL_INVALID_ENUM, "glCopyTexSubImage2D: target GL_INVALID_ENUM"); |
| 405 return error::kNoError; | 405 return error::kNoError; |
| 406 } | 406 } |
| 407 if (width < 0) { | 407 if (width < 0) { |
| 408 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: width < 0"); | 408 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: width < 0"); |
| 409 return error::kNoError; | 409 return error::kNoError; |
| 410 } | 410 } |
| 411 if (height < 0) { | 411 if (height < 0) { |
| 412 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: height < 0"); | 412 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D: height < 0"); |
| 413 return error::kNoError; | 413 return error::kNoError; |
| 414 } | 414 } |
| 415 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); | 415 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); |
| 416 return error::kNoError; | 416 return error::kNoError; |
| 417 } | 417 } |
| 418 | 418 |
| 419 error::Error GLES2DecoderImpl::HandleCreateProgram( | 419 error::Error GLES2DecoderImpl::HandleCreateProgram( |
| 420 uint32 immediate_data_size, const gles2::CreateProgram& c) { | 420 uint32 immediate_data_size, const gles2::CreateProgram& c) { |
| 421 uint32 client_id = c.client_id; | 421 uint32 client_id = c.client_id; |
| 422 if (!CreateProgramHelper(client_id)) { | 422 if (!CreateProgramHelper(client_id)) { |
| 423 return error::kInvalidArguments; | 423 return error::kInvalidArguments; |
| 424 } | 424 } |
| 425 return error::kNoError; | 425 return error::kNoError; |
| 426 } | 426 } |
| 427 | 427 |
| 428 error::Error GLES2DecoderImpl::HandleCreateShader( | 428 error::Error GLES2DecoderImpl::HandleCreateShader( |
| 429 uint32 immediate_data_size, const gles2::CreateShader& c) { | 429 uint32 immediate_data_size, const gles2::CreateShader& c) { |
| 430 GLenum type = static_cast<GLenum>(c.type); | 430 GLenum type = static_cast<GLenum>(c.type); |
| 431 if (!validators_->shader_type.IsValid(type)) { | 431 if (!validators()->shader_type.IsValid(type)) { |
| 432 SetGLError(GL_INVALID_ENUM, "glCreateShader: type GL_INVALID_ENUM"); | 432 SetGLError(GL_INVALID_ENUM, "glCreateShader: type GL_INVALID_ENUM"); |
| 433 return error::kNoError; | 433 return error::kNoError; |
| 434 } | 434 } |
| 435 uint32 client_id = c.client_id; | 435 uint32 client_id = c.client_id; |
| 436 if (!CreateShaderHelper(type, client_id)) { | 436 if (!CreateShaderHelper(type, client_id)) { |
| 437 return error::kInvalidArguments; | 437 return error::kInvalidArguments; |
| 438 } | 438 } |
| 439 return error::kNoError; | 439 return error::kNoError; |
| 440 } | 440 } |
| 441 | 441 |
| 442 error::Error GLES2DecoderImpl::HandleCullFace( | 442 error::Error GLES2DecoderImpl::HandleCullFace( |
| 443 uint32 immediate_data_size, const gles2::CullFace& c) { | 443 uint32 immediate_data_size, const gles2::CullFace& c) { |
| 444 GLenum mode = static_cast<GLenum>(c.mode); | 444 GLenum mode = static_cast<GLenum>(c.mode); |
| 445 if (!validators_->face_type.IsValid(mode)) { | 445 if (!validators()->face_type.IsValid(mode)) { |
| 446 SetGLError(GL_INVALID_ENUM, "glCullFace: mode GL_INVALID_ENUM"); | 446 SetGLError(GL_INVALID_ENUM, "glCullFace: mode GL_INVALID_ENUM"); |
| 447 return error::kNoError; | 447 return error::kNoError; |
| 448 } | 448 } |
| 449 glCullFace(mode); | 449 glCullFace(mode); |
| 450 return error::kNoError; | 450 return error::kNoError; |
| 451 } | 451 } |
| 452 | 452 |
| 453 error::Error GLES2DecoderImpl::HandleDeleteBuffers( | 453 error::Error GLES2DecoderImpl::HandleDeleteBuffers( |
| 454 uint32 immediate_data_size, const gles2::DeleteBuffers& c) { | 454 uint32 immediate_data_size, const gles2::DeleteBuffers& c) { |
| 455 GLsizei n = static_cast<GLsizei>(c.n); | 455 GLsizei n = static_cast<GLsizei>(c.n); |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 if (textures == NULL) { | 574 if (textures == NULL) { |
| 575 return error::kOutOfBounds; | 575 return error::kOutOfBounds; |
| 576 } | 576 } |
| 577 DeleteTexturesHelper(n, textures); | 577 DeleteTexturesHelper(n, textures); |
| 578 return error::kNoError; | 578 return error::kNoError; |
| 579 } | 579 } |
| 580 | 580 |
| 581 error::Error GLES2DecoderImpl::HandleDepthFunc( | 581 error::Error GLES2DecoderImpl::HandleDepthFunc( |
| 582 uint32 immediate_data_size, const gles2::DepthFunc& c) { | 582 uint32 immediate_data_size, const gles2::DepthFunc& c) { |
| 583 GLenum func = static_cast<GLenum>(c.func); | 583 GLenum func = static_cast<GLenum>(c.func); |
| 584 if (!validators_->cmp_function.IsValid(func)) { | 584 if (!validators()->cmp_function.IsValid(func)) { |
| 585 SetGLError(GL_INVALID_ENUM, "glDepthFunc: func GL_INVALID_ENUM"); | 585 SetGLError(GL_INVALID_ENUM, "glDepthFunc: func GL_INVALID_ENUM"); |
| 586 return error::kNoError; | 586 return error::kNoError; |
| 587 } | 587 } |
| 588 glDepthFunc(func); | 588 glDepthFunc(func); |
| 589 return error::kNoError; | 589 return error::kNoError; |
| 590 } | 590 } |
| 591 | 591 |
| 592 error::Error GLES2DecoderImpl::HandleDepthMask( | 592 error::Error GLES2DecoderImpl::HandleDepthMask( |
| 593 uint32 immediate_data_size, const gles2::DepthMask& c) { | 593 uint32 immediate_data_size, const gles2::DepthMask& c) { |
| 594 GLboolean flag = static_cast<GLboolean>(c.flag); | 594 GLboolean flag = static_cast<GLboolean>(c.flag); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 608 uint32 immediate_data_size, const gles2::DetachShader& c) { | 608 uint32 immediate_data_size, const gles2::DetachShader& c) { |
| 609 GLuint program = c.program; | 609 GLuint program = c.program; |
| 610 GLuint shader = c.shader; | 610 GLuint shader = c.shader; |
| 611 DoDetachShader(program, shader); | 611 DoDetachShader(program, shader); |
| 612 return error::kNoError; | 612 return error::kNoError; |
| 613 } | 613 } |
| 614 | 614 |
| 615 error::Error GLES2DecoderImpl::HandleDisable( | 615 error::Error GLES2DecoderImpl::HandleDisable( |
| 616 uint32 immediate_data_size, const gles2::Disable& c) { | 616 uint32 immediate_data_size, const gles2::Disable& c) { |
| 617 GLenum cap = static_cast<GLenum>(c.cap); | 617 GLenum cap = static_cast<GLenum>(c.cap); |
| 618 if (!validators_->capability.IsValid(cap)) { | 618 if (!validators()->capability.IsValid(cap)) { |
| 619 SetGLError(GL_INVALID_ENUM, "glDisable: cap GL_INVALID_ENUM"); | 619 SetGLError(GL_INVALID_ENUM, "glDisable: cap GL_INVALID_ENUM"); |
| 620 return error::kNoError; | 620 return error::kNoError; |
| 621 } | 621 } |
| 622 DoDisable(cap); | 622 DoDisable(cap); |
| 623 return error::kNoError; | 623 return error::kNoError; |
| 624 } | 624 } |
| 625 | 625 |
| 626 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray( | 626 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray( |
| 627 uint32 immediate_data_size, const gles2::DisableVertexAttribArray& c) { | 627 uint32 immediate_data_size, const gles2::DisableVertexAttribArray& c) { |
| 628 GLuint index = static_cast<GLuint>(c.index); | 628 GLuint index = static_cast<GLuint>(c.index); |
| 629 DoDisableVertexAttribArray(index); | 629 DoDisableVertexAttribArray(index); |
| 630 return error::kNoError; | 630 return error::kNoError; |
| 631 } | 631 } |
| 632 | 632 |
| 633 error::Error GLES2DecoderImpl::HandleEnable( | 633 error::Error GLES2DecoderImpl::HandleEnable( |
| 634 uint32 immediate_data_size, const gles2::Enable& c) { | 634 uint32 immediate_data_size, const gles2::Enable& c) { |
| 635 GLenum cap = static_cast<GLenum>(c.cap); | 635 GLenum cap = static_cast<GLenum>(c.cap); |
| 636 if (!validators_->capability.IsValid(cap)) { | 636 if (!validators()->capability.IsValid(cap)) { |
| 637 SetGLError(GL_INVALID_ENUM, "glEnable: cap GL_INVALID_ENUM"); | 637 SetGLError(GL_INVALID_ENUM, "glEnable: cap GL_INVALID_ENUM"); |
| 638 return error::kNoError; | 638 return error::kNoError; |
| 639 } | 639 } |
| 640 DoEnable(cap); | 640 DoEnable(cap); |
| 641 return error::kNoError; | 641 return error::kNoError; |
| 642 } | 642 } |
| 643 | 643 |
| 644 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray( | 644 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray( |
| 645 uint32 immediate_data_size, const gles2::EnableVertexAttribArray& c) { | 645 uint32 immediate_data_size, const gles2::EnableVertexAttribArray& c) { |
| 646 GLuint index = static_cast<GLuint>(c.index); | 646 GLuint index = static_cast<GLuint>(c.index); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 659 glFlush(); | 659 glFlush(); |
| 660 return error::kNoError; | 660 return error::kNoError; |
| 661 } | 661 } |
| 662 | 662 |
| 663 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( | 663 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( |
| 664 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { | 664 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { |
| 665 GLenum target = static_cast<GLenum>(c.target); | 665 GLenum target = static_cast<GLenum>(c.target); |
| 666 GLenum attachment = static_cast<GLenum>(c.attachment); | 666 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 667 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); | 667 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); |
| 668 GLuint renderbuffer = c.renderbuffer; | 668 GLuint renderbuffer = c.renderbuffer; |
| 669 if (!validators_->frame_buffer_target.IsValid(target)) { | 669 if (!validators()->frame_buffer_target.IsValid(target)) { |
| 670 SetGLError( | 670 SetGLError( |
| 671 GL_INVALID_ENUM, "glFramebufferRenderbuffer: target GL_INVALID_ENUM"); | 671 GL_INVALID_ENUM, "glFramebufferRenderbuffer: target GL_INVALID_ENUM"); |
| 672 return error::kNoError; | 672 return error::kNoError; |
| 673 } | 673 } |
| 674 if (!validators_->attachment.IsValid(attachment)) { | 674 if (!validators()->attachment.IsValid(attachment)) { |
| 675 SetGLError( | 675 SetGLError( |
| 676 GL_INVALID_ENUM, | 676 GL_INVALID_ENUM, |
| 677 "glFramebufferRenderbuffer: attachment GL_INVALID_ENUM"); | 677 "glFramebufferRenderbuffer: attachment GL_INVALID_ENUM"); |
| 678 return error::kNoError; | 678 return error::kNoError; |
| 679 } | 679 } |
| 680 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { | 680 if (!validators()->render_buffer_target.IsValid(renderbuffertarget)) { |
| 681 SetGLError( | 681 SetGLError( |
| 682 GL_INVALID_ENUM, | 682 GL_INVALID_ENUM, |
| 683 "glFramebufferRenderbuffer: renderbuffertarget GL_INVALID_ENUM"); | 683 "glFramebufferRenderbuffer: renderbuffertarget GL_INVALID_ENUM"); |
| 684 return error::kNoError; | 684 return error::kNoError; |
| 685 } | 685 } |
| 686 DoFramebufferRenderbuffer( | 686 DoFramebufferRenderbuffer( |
| 687 target, attachment, renderbuffertarget, renderbuffer); | 687 target, attachment, renderbuffertarget, renderbuffer); |
| 688 return error::kNoError; | 688 return error::kNoError; |
| 689 } | 689 } |
| 690 | 690 |
| 691 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( | 691 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( |
| 692 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { | 692 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { |
| 693 GLenum target = static_cast<GLenum>(c.target); | 693 GLenum target = static_cast<GLenum>(c.target); |
| 694 GLenum attachment = static_cast<GLenum>(c.attachment); | 694 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 695 GLenum textarget = static_cast<GLenum>(c.textarget); | 695 GLenum textarget = static_cast<GLenum>(c.textarget); |
| 696 GLuint texture = c.texture; | 696 GLuint texture = c.texture; |
| 697 GLint level = static_cast<GLint>(c.level); | 697 GLint level = static_cast<GLint>(c.level); |
| 698 if (!validators_->frame_buffer_target.IsValid(target)) { | 698 if (!validators()->frame_buffer_target.IsValid(target)) { |
| 699 SetGLError( | 699 SetGLError( |
| 700 GL_INVALID_ENUM, "glFramebufferTexture2D: target GL_INVALID_ENUM"); | 700 GL_INVALID_ENUM, "glFramebufferTexture2D: target GL_INVALID_ENUM"); |
| 701 return error::kNoError; | 701 return error::kNoError; |
| 702 } | 702 } |
| 703 if (!validators_->attachment.IsValid(attachment)) { | 703 if (!validators()->attachment.IsValid(attachment)) { |
| 704 SetGLError( | 704 SetGLError( |
| 705 GL_INVALID_ENUM, "glFramebufferTexture2D: attachment GL_INVALID_ENUM"); | 705 GL_INVALID_ENUM, "glFramebufferTexture2D: attachment GL_INVALID_ENUM"); |
| 706 return error::kNoError; | 706 return error::kNoError; |
| 707 } | 707 } |
| 708 if (!validators_->texture_target.IsValid(textarget)) { | 708 if (!validators()->texture_target.IsValid(textarget)) { |
| 709 SetGLError( | 709 SetGLError( |
| 710 GL_INVALID_ENUM, "glFramebufferTexture2D: textarget GL_INVALID_ENUM"); | 710 GL_INVALID_ENUM, "glFramebufferTexture2D: textarget GL_INVALID_ENUM"); |
| 711 return error::kNoError; | 711 return error::kNoError; |
| 712 } | 712 } |
| 713 if (!validators_->zero_only.IsValid(level)) { | 713 if (!validators()->zero_only.IsValid(level)) { |
| 714 SetGLError( | 714 SetGLError( |
| 715 GL_INVALID_VALUE, "glFramebufferTexture2D: level GL_INVALID_VALUE"); | 715 GL_INVALID_VALUE, "glFramebufferTexture2D: level GL_INVALID_VALUE"); |
| 716 return error::kNoError; | 716 return error::kNoError; |
| 717 } | 717 } |
| 718 DoFramebufferTexture2D(target, attachment, textarget, texture, level); | 718 DoFramebufferTexture2D(target, attachment, textarget, texture, level); |
| 719 return error::kNoError; | 719 return error::kNoError; |
| 720 } | 720 } |
| 721 | 721 |
| 722 error::Error GLES2DecoderImpl::HandleFrontFace( | 722 error::Error GLES2DecoderImpl::HandleFrontFace( |
| 723 uint32 immediate_data_size, const gles2::FrontFace& c) { | 723 uint32 immediate_data_size, const gles2::FrontFace& c) { |
| 724 GLenum mode = static_cast<GLenum>(c.mode); | 724 GLenum mode = static_cast<GLenum>(c.mode); |
| 725 if (!validators_->face_mode.IsValid(mode)) { | 725 if (!validators()->face_mode.IsValid(mode)) { |
| 726 SetGLError(GL_INVALID_ENUM, "glFrontFace: mode GL_INVALID_ENUM"); | 726 SetGLError(GL_INVALID_ENUM, "glFrontFace: mode GL_INVALID_ENUM"); |
| 727 return error::kNoError; | 727 return error::kNoError; |
| 728 } | 728 } |
| 729 glFrontFace(mode); | 729 glFrontFace(mode); |
| 730 return error::kNoError; | 730 return error::kNoError; |
| 731 } | 731 } |
| 732 | 732 |
| 733 error::Error GLES2DecoderImpl::HandleGenBuffers( | 733 error::Error GLES2DecoderImpl::HandleGenBuffers( |
| 734 uint32 immediate_data_size, const gles2::GenBuffers& c) { | 734 uint32 immediate_data_size, const gles2::GenBuffers& c) { |
| 735 GLsizei n = static_cast<GLsizei>(c.n); | 735 GLsizei n = static_cast<GLsizei>(c.n); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 762 } | 762 } |
| 763 if (!GenBuffersHelper(n, buffers)) { | 763 if (!GenBuffersHelper(n, buffers)) { |
| 764 return error::kInvalidArguments; | 764 return error::kInvalidArguments; |
| 765 } | 765 } |
| 766 return error::kNoError; | 766 return error::kNoError; |
| 767 } | 767 } |
| 768 | 768 |
| 769 error::Error GLES2DecoderImpl::HandleGenerateMipmap( | 769 error::Error GLES2DecoderImpl::HandleGenerateMipmap( |
| 770 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { | 770 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { |
| 771 GLenum target = static_cast<GLenum>(c.target); | 771 GLenum target = static_cast<GLenum>(c.target); |
| 772 if (!validators_->texture_bind_target.IsValid(target)) { | 772 if (!validators()->texture_bind_target.IsValid(target)) { |
| 773 SetGLError(GL_INVALID_ENUM, "glGenerateMipmap: target GL_INVALID_ENUM"); | 773 SetGLError(GL_INVALID_ENUM, "glGenerateMipmap: target GL_INVALID_ENUM"); |
| 774 return error::kNoError; | 774 return error::kNoError; |
| 775 } | 775 } |
| 776 DoGenerateMipmap(target); | 776 DoGenerateMipmap(target); |
| 777 return error::kNoError; | 777 return error::kNoError; |
| 778 } | 778 } |
| 779 | 779 |
| 780 error::Error GLES2DecoderImpl::HandleGenFramebuffers( | 780 error::Error GLES2DecoderImpl::HandleGenFramebuffers( |
| 781 uint32 immediate_data_size, const gles2::GenFramebuffers& c) { | 781 uint32 immediate_data_size, const gles2::GenFramebuffers& c) { |
| 782 GLsizei n = static_cast<GLsizei>(c.n); | 782 GLsizei n = static_cast<GLsizei>(c.n); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 | 887 |
| 888 error::Error GLES2DecoderImpl::HandleGetBooleanv( | 888 error::Error GLES2DecoderImpl::HandleGetBooleanv( |
| 889 uint32 immediate_data_size, const gles2::GetBooleanv& c) { | 889 uint32 immediate_data_size, const gles2::GetBooleanv& c) { |
| 890 GLenum pname = static_cast<GLenum>(c.pname); | 890 GLenum pname = static_cast<GLenum>(c.pname); |
| 891 typedef GetBooleanv::Result Result; | 891 typedef GetBooleanv::Result Result; |
| 892 GLsizei num_values = 0; | 892 GLsizei num_values = 0; |
| 893 GetNumValuesReturnedForGLGet(pname, &num_values); | 893 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 894 Result* result = GetSharedMemoryAs<Result*>( | 894 Result* result = GetSharedMemoryAs<Result*>( |
| 895 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 895 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 896 GLboolean* params = result ? result->GetData() : NULL; | 896 GLboolean* params = result ? result->GetData() : NULL; |
| 897 if (!validators_->g_l_state.IsValid(pname)) { | 897 if (!validators()->g_l_state.IsValid(pname)) { |
| 898 SetGLError(GL_INVALID_ENUM, "glGetBooleanv: pname GL_INVALID_ENUM"); | 898 SetGLError(GL_INVALID_ENUM, "glGetBooleanv: pname GL_INVALID_ENUM"); |
| 899 return error::kNoError; | 899 return error::kNoError; |
| 900 } | 900 } |
| 901 if (params == NULL) { | 901 if (params == NULL) { |
| 902 return error::kOutOfBounds; | 902 return error::kOutOfBounds; |
| 903 } | 903 } |
| 904 // Check that the client initialized the result. | 904 // Check that the client initialized the result. |
| 905 if (result->size != 0) { | 905 if (result->size != 0) { |
| 906 return error::kInvalidArguments; | 906 return error::kInvalidArguments; |
| 907 } | 907 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 919 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv( | 919 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv( |
| 920 uint32 immediate_data_size, const gles2::GetBufferParameteriv& c) { | 920 uint32 immediate_data_size, const gles2::GetBufferParameteriv& c) { |
| 921 GLenum target = static_cast<GLenum>(c.target); | 921 GLenum target = static_cast<GLenum>(c.target); |
| 922 GLenum pname = static_cast<GLenum>(c.pname); | 922 GLenum pname = static_cast<GLenum>(c.pname); |
| 923 typedef GetBufferParameteriv::Result Result; | 923 typedef GetBufferParameteriv::Result Result; |
| 924 GLsizei num_values = 0; | 924 GLsizei num_values = 0; |
| 925 GetNumValuesReturnedForGLGet(pname, &num_values); | 925 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 926 Result* result = GetSharedMemoryAs<Result*>( | 926 Result* result = GetSharedMemoryAs<Result*>( |
| 927 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 927 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 928 GLint* params = result ? result->GetData() : NULL; | 928 GLint* params = result ? result->GetData() : NULL; |
| 929 if (!validators_->buffer_target.IsValid(target)) { | 929 if (!validators()->buffer_target.IsValid(target)) { |
| 930 SetGLError( | 930 SetGLError( |
| 931 GL_INVALID_ENUM, "glGetBufferParameteriv: target GL_INVALID_ENUM"); | 931 GL_INVALID_ENUM, "glGetBufferParameteriv: target GL_INVALID_ENUM"); |
| 932 return error::kNoError; | 932 return error::kNoError; |
| 933 } | 933 } |
| 934 if (!validators_->buffer_parameter.IsValid(pname)) { | 934 if (!validators()->buffer_parameter.IsValid(pname)) { |
| 935 SetGLError( | 935 SetGLError( |
| 936 GL_INVALID_ENUM, "glGetBufferParameteriv: pname GL_INVALID_ENUM"); | 936 GL_INVALID_ENUM, "glGetBufferParameteriv: pname GL_INVALID_ENUM"); |
| 937 return error::kNoError; | 937 return error::kNoError; |
| 938 } | 938 } |
| 939 if (params == NULL) { | 939 if (params == NULL) { |
| 940 return error::kOutOfBounds; | 940 return error::kOutOfBounds; |
| 941 } | 941 } |
| 942 // Check that the client initialized the result. | 942 // Check that the client initialized the result. |
| 943 if (result->size != 0) { | 943 if (result->size != 0) { |
| 944 return error::kInvalidArguments; | 944 return error::kInvalidArguments; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 968 | 968 |
| 969 error::Error GLES2DecoderImpl::HandleGetFloatv( | 969 error::Error GLES2DecoderImpl::HandleGetFloatv( |
| 970 uint32 immediate_data_size, const gles2::GetFloatv& c) { | 970 uint32 immediate_data_size, const gles2::GetFloatv& c) { |
| 971 GLenum pname = static_cast<GLenum>(c.pname); | 971 GLenum pname = static_cast<GLenum>(c.pname); |
| 972 typedef GetFloatv::Result Result; | 972 typedef GetFloatv::Result Result; |
| 973 GLsizei num_values = 0; | 973 GLsizei num_values = 0; |
| 974 GetNumValuesReturnedForGLGet(pname, &num_values); | 974 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 975 Result* result = GetSharedMemoryAs<Result*>( | 975 Result* result = GetSharedMemoryAs<Result*>( |
| 976 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 976 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 977 GLfloat* params = result ? result->GetData() : NULL; | 977 GLfloat* params = result ? result->GetData() : NULL; |
| 978 if (!validators_->g_l_state.IsValid(pname)) { | 978 if (!validators()->g_l_state.IsValid(pname)) { |
| 979 SetGLError(GL_INVALID_ENUM, "glGetFloatv: pname GL_INVALID_ENUM"); | 979 SetGLError(GL_INVALID_ENUM, "glGetFloatv: pname GL_INVALID_ENUM"); |
| 980 return error::kNoError; | 980 return error::kNoError; |
| 981 } | 981 } |
| 982 if (params == NULL) { | 982 if (params == NULL) { |
| 983 return error::kOutOfBounds; | 983 return error::kOutOfBounds; |
| 984 } | 984 } |
| 985 // Check that the client initialized the result. | 985 // Check that the client initialized the result. |
| 986 if (result->size != 0) { | 986 if (result->size != 0) { |
| 987 return error::kInvalidArguments; | 987 return error::kInvalidArguments; |
| 988 } | 988 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1002 const gles2::GetFramebufferAttachmentParameteriv& c) { | 1002 const gles2::GetFramebufferAttachmentParameteriv& c) { |
| 1003 GLenum target = static_cast<GLenum>(c.target); | 1003 GLenum target = static_cast<GLenum>(c.target); |
| 1004 GLenum attachment = static_cast<GLenum>(c.attachment); | 1004 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 1005 GLenum pname = static_cast<GLenum>(c.pname); | 1005 GLenum pname = static_cast<GLenum>(c.pname); |
| 1006 typedef GetFramebufferAttachmentParameteriv::Result Result; | 1006 typedef GetFramebufferAttachmentParameteriv::Result Result; |
| 1007 GLsizei num_values = 0; | 1007 GLsizei num_values = 0; |
| 1008 GetNumValuesReturnedForGLGet(pname, &num_values); | 1008 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1009 Result* result = GetSharedMemoryAs<Result*>( | 1009 Result* result = GetSharedMemoryAs<Result*>( |
| 1010 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1010 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1011 GLint* params = result ? result->GetData() : NULL; | 1011 GLint* params = result ? result->GetData() : NULL; |
| 1012 if (!validators_->frame_buffer_target.IsValid(target)) { | 1012 if (!validators()->frame_buffer_target.IsValid(target)) { |
| 1013 SetGLError( | 1013 SetGLError( |
| 1014 GL_INVALID_ENUM, | 1014 GL_INVALID_ENUM, |
| 1015 "glGetFramebufferAttachmentParameteriv: target GL_INVALID_ENUM"); | 1015 "glGetFramebufferAttachmentParameteriv: target GL_INVALID_ENUM"); |
| 1016 return error::kNoError; | 1016 return error::kNoError; |
| 1017 } | 1017 } |
| 1018 if (!validators_->attachment.IsValid(attachment)) { | 1018 if (!validators()->attachment.IsValid(attachment)) { |
| 1019 SetGLError( | 1019 SetGLError( |
| 1020 GL_INVALID_ENUM, | 1020 GL_INVALID_ENUM, |
| 1021 "glGetFramebufferAttachmentParameteriv: attachment GL_INVALID_ENUM"); | 1021 "glGetFramebufferAttachmentParameteriv: attachment GL_INVALID_ENUM"); |
| 1022 return error::kNoError; | 1022 return error::kNoError; |
| 1023 } | 1023 } |
| 1024 if (!validators_->frame_buffer_parameter.IsValid(pname)) { | 1024 if (!validators()->frame_buffer_parameter.IsValid(pname)) { |
| 1025 SetGLError( | 1025 SetGLError( |
| 1026 GL_INVALID_ENUM, | 1026 GL_INVALID_ENUM, |
| 1027 "glGetFramebufferAttachmentParameteriv: pname GL_INVALID_ENUM"); | 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) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 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 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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, |
| 1124 "glGetRenderbufferParameteriv: target GL_INVALID_ENUM"); | 1124 "glGetRenderbufferParameteriv: target GL_INVALID_ENUM"); |
| 1125 return error::kNoError; | 1125 return error::kNoError; |
| 1126 } | 1126 } |
| 1127 if (!validators_->render_buffer_parameter.IsValid(pname)) { | 1127 if (!validators()->render_buffer_parameter.IsValid(pname)) { |
| 1128 SetGLError( | 1128 SetGLError( |
| 1129 GL_INVALID_ENUM, | 1129 GL_INVALID_ENUM, |
| 1130 "glGetRenderbufferParameteriv: pname GL_INVALID_ENUM"); | 1130 "glGetRenderbufferParameteriv: pname GL_INVALID_ENUM"); |
| 1131 return error::kNoError; | 1131 return error::kNoError; |
| 1132 } | 1132 } |
| 1133 if (params == NULL) { | 1133 if (params == NULL) { |
| 1134 return error::kOutOfBounds; | 1134 return error::kOutOfBounds; |
| 1135 } | 1135 } |
| 1136 // Check that the client initialized the result. | 1136 // Check that the client initialized the result. |
| 1137 if (result->size != 0) { | 1137 if (result->size != 0) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1151 error::Error GLES2DecoderImpl::HandleGetShaderiv( | 1151 error::Error GLES2DecoderImpl::HandleGetShaderiv( |
| 1152 uint32 immediate_data_size, const gles2::GetShaderiv& c) { | 1152 uint32 immediate_data_size, const gles2::GetShaderiv& c) { |
| 1153 GLuint shader = c.shader; | 1153 GLuint shader = c.shader; |
| 1154 GLenum pname = static_cast<GLenum>(c.pname); | 1154 GLenum pname = static_cast<GLenum>(c.pname); |
| 1155 typedef GetShaderiv::Result Result; | 1155 typedef GetShaderiv::Result Result; |
| 1156 GLsizei num_values = 0; | 1156 GLsizei num_values = 0; |
| 1157 GetNumValuesReturnedForGLGet(pname, &num_values); | 1157 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1158 Result* result = GetSharedMemoryAs<Result*>( | 1158 Result* result = GetSharedMemoryAs<Result*>( |
| 1159 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1159 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1160 GLint* params = result ? result->GetData() : NULL; | 1160 GLint* params = result ? result->GetData() : NULL; |
| 1161 if (!validators_->shader_parameter.IsValid(pname)) { | 1161 if (!validators()->shader_parameter.IsValid(pname)) { |
| 1162 SetGLError(GL_INVALID_ENUM, "glGetShaderiv: pname GL_INVALID_ENUM"); | 1162 SetGLError(GL_INVALID_ENUM, "glGetShaderiv: pname GL_INVALID_ENUM"); |
| 1163 return error::kNoError; | 1163 return error::kNoError; |
| 1164 } | 1164 } |
| 1165 if (params == NULL) { | 1165 if (params == NULL) { |
| 1166 return error::kOutOfBounds; | 1166 return error::kOutOfBounds; |
| 1167 } | 1167 } |
| 1168 // Check that the client initialized the result. | 1168 // Check that the client initialized the result. |
| 1169 if (result->size != 0) { | 1169 if (result->size != 0) { |
| 1170 return error::kInvalidArguments; | 1170 return error::kInvalidArguments; |
| 1171 } | 1171 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1183 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( | 1183 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( |
| 1184 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { | 1184 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { |
| 1185 GLenum target = static_cast<GLenum>(c.target); | 1185 GLenum target = static_cast<GLenum>(c.target); |
| 1186 GLenum pname = static_cast<GLenum>(c.pname); | 1186 GLenum pname = static_cast<GLenum>(c.pname); |
| 1187 typedef GetTexParameterfv::Result Result; | 1187 typedef GetTexParameterfv::Result Result; |
| 1188 GLsizei num_values = 0; | 1188 GLsizei num_values = 0; |
| 1189 GetNumValuesReturnedForGLGet(pname, &num_values); | 1189 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1190 Result* result = GetSharedMemoryAs<Result*>( | 1190 Result* result = GetSharedMemoryAs<Result*>( |
| 1191 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1191 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1192 GLfloat* params = result ? result->GetData() : NULL; | 1192 GLfloat* params = result ? result->GetData() : NULL; |
| 1193 if (!validators_->get_tex_param_target.IsValid(target)) { | 1193 if (!validators()->get_tex_param_target.IsValid(target)) { |
| 1194 SetGLError(GL_INVALID_ENUM, "glGetTexParameterfv: target GL_INVALID_ENUM"); | 1194 SetGLError(GL_INVALID_ENUM, "glGetTexParameterfv: target GL_INVALID_ENUM"); |
| 1195 return error::kNoError; | 1195 return error::kNoError; |
| 1196 } | 1196 } |
| 1197 if (!validators_->texture_parameter.IsValid(pname)) { | 1197 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1198 SetGLError(GL_INVALID_ENUM, "glGetTexParameterfv: pname GL_INVALID_ENUM"); | 1198 SetGLError(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 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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(GL_INVALID_ENUM, "glGetTexParameteriv: target GL_INVALID_ENUM"); |
| 1231 return error::kNoError; | 1231 return error::kNoError; |
| 1232 } | 1232 } |
| 1233 if (!validators_->texture_parameter.IsValid(pname)) { | 1233 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1234 SetGLError(GL_INVALID_ENUM, "glGetTexParameteriv: pname GL_INVALID_ENUM"); | 1234 SetGLError(GL_INVALID_ENUM, "glGetTexParameteriv: pname GL_INVALID_ENUM"); |
| 1235 return error::kNoError; | 1235 return error::kNoError; |
| 1236 } | 1236 } |
| 1237 if (params == NULL) { | 1237 if (params == NULL) { |
| 1238 return error::kOutOfBounds; | 1238 return error::kOutOfBounds; |
| 1239 } | 1239 } |
| 1240 // Check that the client initialized the result. | 1240 // Check that the client initialized the result. |
| 1241 if (result->size != 0) { | 1241 if (result->size != 0) { |
| 1242 return error::kInvalidArguments; | 1242 return error::kInvalidArguments; |
| 1243 } | 1243 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1255 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( | 1255 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( |
| 1256 uint32 immediate_data_size, const gles2::GetVertexAttribfv& c) { | 1256 uint32 immediate_data_size, const gles2::GetVertexAttribfv& c) { |
| 1257 GLuint index = static_cast<GLuint>(c.index); | 1257 GLuint index = static_cast<GLuint>(c.index); |
| 1258 GLenum pname = static_cast<GLenum>(c.pname); | 1258 GLenum pname = static_cast<GLenum>(c.pname); |
| 1259 typedef GetVertexAttribfv::Result Result; | 1259 typedef GetVertexAttribfv::Result Result; |
| 1260 GLsizei num_values = 0; | 1260 GLsizei num_values = 0; |
| 1261 GetNumValuesReturnedForGLGet(pname, &num_values); | 1261 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1262 Result* result = GetSharedMemoryAs<Result*>( | 1262 Result* result = GetSharedMemoryAs<Result*>( |
| 1263 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1263 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1264 GLfloat* params = result ? result->GetData() : NULL; | 1264 GLfloat* params = result ? result->GetData() : NULL; |
| 1265 if (!validators_->vertex_attribute.IsValid(pname)) { | 1265 if (!validators()->vertex_attribute.IsValid(pname)) { |
| 1266 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribfv: pname GL_INVALID_ENUM"); | 1266 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribfv: pname GL_INVALID_ENUM"); |
| 1267 return error::kNoError; | 1267 return error::kNoError; |
| 1268 } | 1268 } |
| 1269 if (params == NULL) { | 1269 if (params == NULL) { |
| 1270 return error::kOutOfBounds; | 1270 return error::kOutOfBounds; |
| 1271 } | 1271 } |
| 1272 // Check that the client initialized the result. | 1272 // Check that the client initialized the result. |
| 1273 if (result->size != 0) { | 1273 if (result->size != 0) { |
| 1274 return error::kInvalidArguments; | 1274 return error::kInvalidArguments; |
| 1275 } | 1275 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1287 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( | 1287 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( |
| 1288 uint32 immediate_data_size, const gles2::GetVertexAttribiv& c) { | 1288 uint32 immediate_data_size, const gles2::GetVertexAttribiv& c) { |
| 1289 GLuint index = static_cast<GLuint>(c.index); | 1289 GLuint index = static_cast<GLuint>(c.index); |
| 1290 GLenum pname = static_cast<GLenum>(c.pname); | 1290 GLenum pname = static_cast<GLenum>(c.pname); |
| 1291 typedef GetVertexAttribiv::Result Result; | 1291 typedef GetVertexAttribiv::Result Result; |
| 1292 GLsizei num_values = 0; | 1292 GLsizei num_values = 0; |
| 1293 GetNumValuesReturnedForGLGet(pname, &num_values); | 1293 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1294 Result* result = GetSharedMemoryAs<Result*>( | 1294 Result* result = GetSharedMemoryAs<Result*>( |
| 1295 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1295 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1296 GLint* params = result ? result->GetData() : NULL; | 1296 GLint* params = result ? result->GetData() : NULL; |
| 1297 if (!validators_->vertex_attribute.IsValid(pname)) { | 1297 if (!validators()->vertex_attribute.IsValid(pname)) { |
| 1298 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribiv: pname GL_INVALID_ENUM"); | 1298 SetGLError(GL_INVALID_ENUM, "glGetVertexAttribiv: pname GL_INVALID_ENUM"); |
| 1299 return error::kNoError; | 1299 return error::kNoError; |
| 1300 } | 1300 } |
| 1301 if (params == NULL) { | 1301 if (params == NULL) { |
| 1302 return error::kOutOfBounds; | 1302 return error::kOutOfBounds; |
| 1303 } | 1303 } |
| 1304 // Check that the client initialized the result. | 1304 // Check that the client initialized the result. |
| 1305 if (result->size != 0) { | 1305 if (result->size != 0) { |
| 1306 return error::kInvalidArguments; | 1306 return error::kInvalidArguments; |
| 1307 } | 1307 } |
| 1308 CopyRealGLErrorsToWrapper(); | 1308 CopyRealGLErrorsToWrapper(); |
| 1309 DoGetVertexAttribiv(index, pname, params); | 1309 DoGetVertexAttribiv(index, pname, params); |
| 1310 GLenum error = glGetError(); | 1310 GLenum error = glGetError(); |
| 1311 if (error == GL_NO_ERROR) { | 1311 if (error == GL_NO_ERROR) { |
| 1312 result->SetNumResults(num_values); | 1312 result->SetNumResults(num_values); |
| 1313 } else { | 1313 } else { |
| 1314 SetGLError(error, NULL); | 1314 SetGLError(error, NULL); |
| 1315 } | 1315 } |
| 1316 return error::kNoError; | 1316 return error::kNoError; |
| 1317 } | 1317 } |
| 1318 | 1318 |
| 1319 error::Error GLES2DecoderImpl::HandleHint( | 1319 error::Error GLES2DecoderImpl::HandleHint( |
| 1320 uint32 immediate_data_size, const gles2::Hint& c) { | 1320 uint32 immediate_data_size, const gles2::Hint& c) { |
| 1321 GLenum target = static_cast<GLenum>(c.target); | 1321 GLenum target = static_cast<GLenum>(c.target); |
| 1322 GLenum mode = static_cast<GLenum>(c.mode); | 1322 GLenum mode = static_cast<GLenum>(c.mode); |
| 1323 if (!validators_->hint_target.IsValid(target)) { | 1323 if (!validators()->hint_target.IsValid(target)) { |
| 1324 SetGLError(GL_INVALID_ENUM, "glHint: target GL_INVALID_ENUM"); | 1324 SetGLError(GL_INVALID_ENUM, "glHint: target GL_INVALID_ENUM"); |
| 1325 return error::kNoError; | 1325 return error::kNoError; |
| 1326 } | 1326 } |
| 1327 if (!validators_->hint_mode.IsValid(mode)) { | 1327 if (!validators()->hint_mode.IsValid(mode)) { |
| 1328 SetGLError(GL_INVALID_ENUM, "glHint: mode GL_INVALID_ENUM"); | 1328 SetGLError(GL_INVALID_ENUM, "glHint: mode GL_INVALID_ENUM"); |
| 1329 return error::kNoError; | 1329 return error::kNoError; |
| 1330 } | 1330 } |
| 1331 glHint(target, mode); | 1331 glHint(target, mode); |
| 1332 return error::kNoError; | 1332 return error::kNoError; |
| 1333 } | 1333 } |
| 1334 | 1334 |
| 1335 error::Error GLES2DecoderImpl::HandleIsBuffer( | 1335 error::Error GLES2DecoderImpl::HandleIsBuffer( |
| 1336 uint32 immediate_data_size, const gles2::IsBuffer& c) { | 1336 uint32 immediate_data_size, const gles2::IsBuffer& c) { |
| 1337 GLuint buffer = c.buffer; | 1337 GLuint buffer = c.buffer; |
| 1338 typedef IsBuffer::Result Result; | 1338 typedef IsBuffer::Result Result; |
| 1339 Result* result_dst = GetSharedMemoryAs<Result*>( | 1339 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1340 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1340 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1341 if (!result_dst) { | 1341 if (!result_dst) { |
| 1342 return error::kOutOfBounds; | 1342 return error::kOutOfBounds; |
| 1343 } | 1343 } |
| 1344 *result_dst = DoIsBuffer(buffer); | 1344 *result_dst = DoIsBuffer(buffer); |
| 1345 return error::kNoError; | 1345 return error::kNoError; |
| 1346 } | 1346 } |
| 1347 | 1347 |
| 1348 error::Error GLES2DecoderImpl::HandleIsEnabled( | 1348 error::Error GLES2DecoderImpl::HandleIsEnabled( |
| 1349 uint32 immediate_data_size, const gles2::IsEnabled& c) { | 1349 uint32 immediate_data_size, const gles2::IsEnabled& c) { |
| 1350 GLenum cap = static_cast<GLenum>(c.cap); | 1350 GLenum cap = static_cast<GLenum>(c.cap); |
| 1351 typedef IsEnabled::Result Result; | 1351 typedef IsEnabled::Result Result; |
| 1352 Result* result_dst = GetSharedMemoryAs<Result*>( | 1352 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1353 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1353 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1354 if (!result_dst) { | 1354 if (!result_dst) { |
| 1355 return error::kOutOfBounds; | 1355 return error::kOutOfBounds; |
| 1356 } | 1356 } |
| 1357 if (!validators_->capability.IsValid(cap)) { | 1357 if (!validators()->capability.IsValid(cap)) { |
| 1358 SetGLError(GL_INVALID_ENUM, "glIsEnabled: cap GL_INVALID_ENUM"); | 1358 SetGLError(GL_INVALID_ENUM, "glIsEnabled: cap GL_INVALID_ENUM"); |
| 1359 return error::kNoError; | 1359 return error::kNoError; |
| 1360 } | 1360 } |
| 1361 *result_dst = glIsEnabled(cap); | 1361 *result_dst = glIsEnabled(cap); |
| 1362 return error::kNoError; | 1362 return error::kNoError; |
| 1363 } | 1363 } |
| 1364 | 1364 |
| 1365 error::Error GLES2DecoderImpl::HandleIsFramebuffer( | 1365 error::Error GLES2DecoderImpl::HandleIsFramebuffer( |
| 1366 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { | 1366 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { |
| 1367 GLuint framebuffer = c.framebuffer; | 1367 GLuint framebuffer = c.framebuffer; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 DoReleaseShaderCompiler(); | 1454 DoReleaseShaderCompiler(); |
| 1455 return error::kNoError; | 1455 return error::kNoError; |
| 1456 } | 1456 } |
| 1457 | 1457 |
| 1458 error::Error GLES2DecoderImpl::HandleRenderbufferStorage( | 1458 error::Error GLES2DecoderImpl::HandleRenderbufferStorage( |
| 1459 uint32 immediate_data_size, const gles2::RenderbufferStorage& c) { | 1459 uint32 immediate_data_size, const gles2::RenderbufferStorage& c) { |
| 1460 GLenum target = static_cast<GLenum>(c.target); | 1460 GLenum target = static_cast<GLenum>(c.target); |
| 1461 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 1461 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 1462 GLsizei width = static_cast<GLsizei>(c.width); | 1462 GLsizei width = static_cast<GLsizei>(c.width); |
| 1463 GLsizei height = static_cast<GLsizei>(c.height); | 1463 GLsizei height = static_cast<GLsizei>(c.height); |
| 1464 if (!validators_->render_buffer_target.IsValid(target)) { | 1464 if (!validators()->render_buffer_target.IsValid(target)) { |
| 1465 SetGLError( | 1465 SetGLError( |
| 1466 GL_INVALID_ENUM, "glRenderbufferStorage: target GL_INVALID_ENUM"); | 1466 GL_INVALID_ENUM, "glRenderbufferStorage: target GL_INVALID_ENUM"); |
| 1467 return error::kNoError; | 1467 return error::kNoError; |
| 1468 } | 1468 } |
| 1469 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 1469 if (!validators()->render_buffer_format.IsValid(internalformat)) { |
| 1470 SetGLError( | 1470 SetGLError( |
| 1471 GL_INVALID_ENUM, | 1471 GL_INVALID_ENUM, |
| 1472 "glRenderbufferStorage: internalformat GL_INVALID_ENUM"); | 1472 "glRenderbufferStorage: internalformat GL_INVALID_ENUM"); |
| 1473 return error::kNoError; | 1473 return error::kNoError; |
| 1474 } | 1474 } |
| 1475 if (width < 0) { | 1475 if (width < 0) { |
| 1476 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage: width < 0"); | 1476 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage: width < 0"); |
| 1477 return error::kNoError; | 1477 return error::kNoError; |
| 1478 } | 1478 } |
| 1479 if (height < 0) { | 1479 if (height < 0) { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1508 } | 1508 } |
| 1509 glScissor(x, y, width, height); | 1509 glScissor(x, y, width, height); |
| 1510 return error::kNoError; | 1510 return error::kNoError; |
| 1511 } | 1511 } |
| 1512 | 1512 |
| 1513 error::Error GLES2DecoderImpl::HandleStencilFunc( | 1513 error::Error GLES2DecoderImpl::HandleStencilFunc( |
| 1514 uint32 immediate_data_size, const gles2::StencilFunc& c) { | 1514 uint32 immediate_data_size, const gles2::StencilFunc& c) { |
| 1515 GLenum func = static_cast<GLenum>(c.func); | 1515 GLenum func = static_cast<GLenum>(c.func); |
| 1516 GLint ref = static_cast<GLint>(c.ref); | 1516 GLint ref = static_cast<GLint>(c.ref); |
| 1517 GLuint mask = static_cast<GLuint>(c.mask); | 1517 GLuint mask = static_cast<GLuint>(c.mask); |
| 1518 if (!validators_->cmp_function.IsValid(func)) { | 1518 if (!validators()->cmp_function.IsValid(func)) { |
| 1519 SetGLError(GL_INVALID_ENUM, "glStencilFunc: func GL_INVALID_ENUM"); | 1519 SetGLError(GL_INVALID_ENUM, "glStencilFunc: func GL_INVALID_ENUM"); |
| 1520 return error::kNoError; | 1520 return error::kNoError; |
| 1521 } | 1521 } |
| 1522 glStencilFunc(func, ref, mask); | 1522 glStencilFunc(func, ref, mask); |
| 1523 return error::kNoError; | 1523 return error::kNoError; |
| 1524 } | 1524 } |
| 1525 | 1525 |
| 1526 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( | 1526 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( |
| 1527 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) { | 1527 uint32 immediate_data_size, const gles2::StencilFuncSeparate& c) { |
| 1528 GLenum face = static_cast<GLenum>(c.face); | 1528 GLenum face = static_cast<GLenum>(c.face); |
| 1529 GLenum func = static_cast<GLenum>(c.func); | 1529 GLenum func = static_cast<GLenum>(c.func); |
| 1530 GLint ref = static_cast<GLint>(c.ref); | 1530 GLint ref = static_cast<GLint>(c.ref); |
| 1531 GLuint mask = static_cast<GLuint>(c.mask); | 1531 GLuint mask = static_cast<GLuint>(c.mask); |
| 1532 if (!validators_->face_type.IsValid(face)) { | 1532 if (!validators()->face_type.IsValid(face)) { |
| 1533 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: face GL_INVALID_ENUM"); | 1533 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: face GL_INVALID_ENUM"); |
| 1534 return error::kNoError; | 1534 return error::kNoError; |
| 1535 } | 1535 } |
| 1536 if (!validators_->cmp_function.IsValid(func)) { | 1536 if (!validators()->cmp_function.IsValid(func)) { |
| 1537 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: func GL_INVALID_ENUM"); | 1537 SetGLError(GL_INVALID_ENUM, "glStencilFuncSeparate: func GL_INVALID_ENUM"); |
| 1538 return error::kNoError; | 1538 return error::kNoError; |
| 1539 } | 1539 } |
| 1540 glStencilFuncSeparate(face, func, ref, mask); | 1540 glStencilFuncSeparate(face, func, ref, mask); |
| 1541 return error::kNoError; | 1541 return error::kNoError; |
| 1542 } | 1542 } |
| 1543 | 1543 |
| 1544 error::Error GLES2DecoderImpl::HandleStencilMask( | 1544 error::Error GLES2DecoderImpl::HandleStencilMask( |
| 1545 uint32 immediate_data_size, const gles2::StencilMask& c) { | 1545 uint32 immediate_data_size, const gles2::StencilMask& c) { |
| 1546 GLuint mask = static_cast<GLuint>(c.mask); | 1546 GLuint mask = static_cast<GLuint>(c.mask); |
| 1547 DoStencilMask(mask); | 1547 DoStencilMask(mask); |
| 1548 return error::kNoError; | 1548 return error::kNoError; |
| 1549 } | 1549 } |
| 1550 | 1550 |
| 1551 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( | 1551 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( |
| 1552 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) { | 1552 uint32 immediate_data_size, const gles2::StencilMaskSeparate& c) { |
| 1553 GLenum face = static_cast<GLenum>(c.face); | 1553 GLenum face = static_cast<GLenum>(c.face); |
| 1554 GLuint mask = static_cast<GLuint>(c.mask); | 1554 GLuint mask = static_cast<GLuint>(c.mask); |
| 1555 if (!validators_->face_type.IsValid(face)) { | 1555 if (!validators()->face_type.IsValid(face)) { |
| 1556 SetGLError(GL_INVALID_ENUM, "glStencilMaskSeparate: face GL_INVALID_ENUM"); | 1556 SetGLError(GL_INVALID_ENUM, "glStencilMaskSeparate: face GL_INVALID_ENUM"); |
| 1557 return error::kNoError; | 1557 return error::kNoError; |
| 1558 } | 1558 } |
| 1559 DoStencilMaskSeparate(face, mask); | 1559 DoStencilMaskSeparate(face, mask); |
| 1560 return error::kNoError; | 1560 return error::kNoError; |
| 1561 } | 1561 } |
| 1562 | 1562 |
| 1563 error::Error GLES2DecoderImpl::HandleStencilOp( | 1563 error::Error GLES2DecoderImpl::HandleStencilOp( |
| 1564 uint32 immediate_data_size, const gles2::StencilOp& c) { | 1564 uint32 immediate_data_size, const gles2::StencilOp& c) { |
| 1565 GLenum fail = static_cast<GLenum>(c.fail); | 1565 GLenum fail = static_cast<GLenum>(c.fail); |
| 1566 GLenum zfail = static_cast<GLenum>(c.zfail); | 1566 GLenum zfail = static_cast<GLenum>(c.zfail); |
| 1567 GLenum zpass = static_cast<GLenum>(c.zpass); | 1567 GLenum zpass = static_cast<GLenum>(c.zpass); |
| 1568 if (!validators_->stencil_op.IsValid(fail)) { | 1568 if (!validators()->stencil_op.IsValid(fail)) { |
| 1569 SetGLError(GL_INVALID_ENUM, "glStencilOp: fail GL_INVALID_ENUM"); | 1569 SetGLError(GL_INVALID_ENUM, "glStencilOp: fail GL_INVALID_ENUM"); |
| 1570 return error::kNoError; | 1570 return error::kNoError; |
| 1571 } | 1571 } |
| 1572 if (!validators_->stencil_op.IsValid(zfail)) { | 1572 if (!validators()->stencil_op.IsValid(zfail)) { |
| 1573 SetGLError(GL_INVALID_ENUM, "glStencilOp: zfail GL_INVALID_ENUM"); | 1573 SetGLError(GL_INVALID_ENUM, "glStencilOp: zfail GL_INVALID_ENUM"); |
| 1574 return error::kNoError; | 1574 return error::kNoError; |
| 1575 } | 1575 } |
| 1576 if (!validators_->stencil_op.IsValid(zpass)) { | 1576 if (!validators()->stencil_op.IsValid(zpass)) { |
| 1577 SetGLError(GL_INVALID_ENUM, "glStencilOp: zpass GL_INVALID_ENUM"); | 1577 SetGLError(GL_INVALID_ENUM, "glStencilOp: zpass GL_INVALID_ENUM"); |
| 1578 return error::kNoError; | 1578 return error::kNoError; |
| 1579 } | 1579 } |
| 1580 glStencilOp(fail, zfail, zpass); | 1580 glStencilOp(fail, zfail, zpass); |
| 1581 return error::kNoError; | 1581 return error::kNoError; |
| 1582 } | 1582 } |
| 1583 | 1583 |
| 1584 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( | 1584 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( |
| 1585 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) { | 1585 uint32 immediate_data_size, const gles2::StencilOpSeparate& c) { |
| 1586 GLenum face = static_cast<GLenum>(c.face); | 1586 GLenum face = static_cast<GLenum>(c.face); |
| 1587 GLenum fail = static_cast<GLenum>(c.fail); | 1587 GLenum fail = static_cast<GLenum>(c.fail); |
| 1588 GLenum zfail = static_cast<GLenum>(c.zfail); | 1588 GLenum zfail = static_cast<GLenum>(c.zfail); |
| 1589 GLenum zpass = static_cast<GLenum>(c.zpass); | 1589 GLenum zpass = static_cast<GLenum>(c.zpass); |
| 1590 if (!validators_->face_type.IsValid(face)) { | 1590 if (!validators()->face_type.IsValid(face)) { |
| 1591 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: face GL_INVALID_ENUM"); | 1591 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: face GL_INVALID_ENUM"); |
| 1592 return error::kNoError; | 1592 return error::kNoError; |
| 1593 } | 1593 } |
| 1594 if (!validators_->stencil_op.IsValid(fail)) { | 1594 if (!validators()->stencil_op.IsValid(fail)) { |
| 1595 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: fail GL_INVALID_ENUM"); | 1595 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: fail GL_INVALID_ENUM"); |
| 1596 return error::kNoError; | 1596 return error::kNoError; |
| 1597 } | 1597 } |
| 1598 if (!validators_->stencil_op.IsValid(zfail)) { | 1598 if (!validators()->stencil_op.IsValid(zfail)) { |
| 1599 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zfail GL_INVALID_ENUM"); | 1599 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zfail GL_INVALID_ENUM"); |
| 1600 return error::kNoError; | 1600 return error::kNoError; |
| 1601 } | 1601 } |
| 1602 if (!validators_->stencil_op.IsValid(zpass)) { | 1602 if (!validators()->stencil_op.IsValid(zpass)) { |
| 1603 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zpass GL_INVALID_ENUM"); | 1603 SetGLError(GL_INVALID_ENUM, "glStencilOpSeparate: zpass GL_INVALID_ENUM"); |
| 1604 return error::kNoError; | 1604 return error::kNoError; |
| 1605 } | 1605 } |
| 1606 glStencilOpSeparate(face, fail, zfail, zpass); | 1606 glStencilOpSeparate(face, fail, zfail, zpass); |
| 1607 return error::kNoError; | 1607 return error::kNoError; |
| 1608 } | 1608 } |
| 1609 | 1609 |
| 1610 error::Error GLES2DecoderImpl::HandleTexParameterf( | 1610 error::Error GLES2DecoderImpl::HandleTexParameterf( |
| 1611 uint32 immediate_data_size, const gles2::TexParameterf& c) { | 1611 uint32 immediate_data_size, const gles2::TexParameterf& c) { |
| 1612 GLenum target = static_cast<GLenum>(c.target); | 1612 GLenum target = static_cast<GLenum>(c.target); |
| 1613 GLenum pname = static_cast<GLenum>(c.pname); | 1613 GLenum pname = static_cast<GLenum>(c.pname); |
| 1614 GLfloat param = static_cast<GLfloat>(c.param); | 1614 GLfloat param = static_cast<GLfloat>(c.param); |
| 1615 if (!validators_->texture_bind_target.IsValid(target)) { | 1615 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1616 SetGLError(GL_INVALID_ENUM, "glTexParameterf: target GL_INVALID_ENUM"); | 1616 SetGLError(GL_INVALID_ENUM, "glTexParameterf: target GL_INVALID_ENUM"); |
| 1617 return error::kNoError; | 1617 return error::kNoError; |
| 1618 } | 1618 } |
| 1619 if (!validators_->texture_parameter.IsValid(pname)) { | 1619 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1620 SetGLError(GL_INVALID_ENUM, "glTexParameterf: pname GL_INVALID_ENUM"); | 1620 SetGLError(GL_INVALID_ENUM, "glTexParameterf: pname GL_INVALID_ENUM"); |
| 1621 return error::kNoError; | 1621 return error::kNoError; |
| 1622 } | 1622 } |
| 1623 DoTexParameterf(target, pname, param); | 1623 DoTexParameterf(target, pname, param); |
| 1624 return error::kNoError; | 1624 return error::kNoError; |
| 1625 } | 1625 } |
| 1626 | 1626 |
| 1627 error::Error GLES2DecoderImpl::HandleTexParameterfv( | 1627 error::Error GLES2DecoderImpl::HandleTexParameterfv( |
| 1628 uint32 immediate_data_size, const gles2::TexParameterfv& c) { | 1628 uint32 immediate_data_size, const gles2::TexParameterfv& c) { |
| 1629 GLenum target = static_cast<GLenum>(c.target); | 1629 GLenum target = static_cast<GLenum>(c.target); |
| 1630 GLenum pname = static_cast<GLenum>(c.pname); | 1630 GLenum pname = static_cast<GLenum>(c.pname); |
| 1631 uint32 data_size; | 1631 uint32 data_size; |
| 1632 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 1632 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 1633 return error::kOutOfBounds; | 1633 return error::kOutOfBounds; |
| 1634 } | 1634 } |
| 1635 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>( | 1635 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>( |
| 1636 c.params_shm_id, c.params_shm_offset, data_size); | 1636 c.params_shm_id, c.params_shm_offset, data_size); |
| 1637 if (!validators_->texture_bind_target.IsValid(target)) { | 1637 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1638 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); | 1638 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); |
| 1639 return error::kNoError; | 1639 return error::kNoError; |
| 1640 } | 1640 } |
| 1641 if (!validators_->texture_parameter.IsValid(pname)) { | 1641 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1642 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); | 1642 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); |
| 1643 return error::kNoError; | 1643 return error::kNoError; |
| 1644 } | 1644 } |
| 1645 if (params == NULL) { | 1645 if (params == NULL) { |
| 1646 return error::kOutOfBounds; | 1646 return error::kOutOfBounds; |
| 1647 } | 1647 } |
| 1648 DoTexParameterfv(target, pname, params); | 1648 DoTexParameterfv(target, pname, params); |
| 1649 return error::kNoError; | 1649 return error::kNoError; |
| 1650 } | 1650 } |
| 1651 | 1651 |
| 1652 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate( | 1652 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate( |
| 1653 uint32 immediate_data_size, const gles2::TexParameterfvImmediate& c) { | 1653 uint32 immediate_data_size, const gles2::TexParameterfvImmediate& c) { |
| 1654 GLenum target = static_cast<GLenum>(c.target); | 1654 GLenum target = static_cast<GLenum>(c.target); |
| 1655 GLenum pname = static_cast<GLenum>(c.pname); | 1655 GLenum pname = static_cast<GLenum>(c.pname); |
| 1656 uint32 data_size; | 1656 uint32 data_size; |
| 1657 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 1657 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 1658 return error::kOutOfBounds; | 1658 return error::kOutOfBounds; |
| 1659 } | 1659 } |
| 1660 if (data_size > immediate_data_size) { | 1660 if (data_size > immediate_data_size) { |
| 1661 return error::kOutOfBounds; | 1661 return error::kOutOfBounds; |
| 1662 } | 1662 } |
| 1663 const GLfloat* params = GetImmediateDataAs<const GLfloat*>( | 1663 const GLfloat* params = GetImmediateDataAs<const GLfloat*>( |
| 1664 c, data_size, immediate_data_size); | 1664 c, data_size, immediate_data_size); |
| 1665 if (!validators_->texture_bind_target.IsValid(target)) { | 1665 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1666 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); | 1666 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: target GL_INVALID_ENUM"); |
| 1667 return error::kNoError; | 1667 return error::kNoError; |
| 1668 } | 1668 } |
| 1669 if (!validators_->texture_parameter.IsValid(pname)) { | 1669 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1670 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); | 1670 SetGLError(GL_INVALID_ENUM, "glTexParameterfv: pname GL_INVALID_ENUM"); |
| 1671 return error::kNoError; | 1671 return error::kNoError; |
| 1672 } | 1672 } |
| 1673 if (params == NULL) { | 1673 if (params == NULL) { |
| 1674 return error::kOutOfBounds; | 1674 return error::kOutOfBounds; |
| 1675 } | 1675 } |
| 1676 DoTexParameterfv(target, pname, params); | 1676 DoTexParameterfv(target, pname, params); |
| 1677 return error::kNoError; | 1677 return error::kNoError; |
| 1678 } | 1678 } |
| 1679 | 1679 |
| 1680 error::Error GLES2DecoderImpl::HandleTexParameteri( | 1680 error::Error GLES2DecoderImpl::HandleTexParameteri( |
| 1681 uint32 immediate_data_size, const gles2::TexParameteri& c) { | 1681 uint32 immediate_data_size, const gles2::TexParameteri& c) { |
| 1682 GLenum target = static_cast<GLenum>(c.target); | 1682 GLenum target = static_cast<GLenum>(c.target); |
| 1683 GLenum pname = static_cast<GLenum>(c.pname); | 1683 GLenum pname = static_cast<GLenum>(c.pname); |
| 1684 GLint param = static_cast<GLint>(c.param); | 1684 GLint param = static_cast<GLint>(c.param); |
| 1685 if (!validators_->texture_bind_target.IsValid(target)) { | 1685 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1686 SetGLError(GL_INVALID_ENUM, "glTexParameteri: target GL_INVALID_ENUM"); | 1686 SetGLError(GL_INVALID_ENUM, "glTexParameteri: target GL_INVALID_ENUM"); |
| 1687 return error::kNoError; | 1687 return error::kNoError; |
| 1688 } | 1688 } |
| 1689 if (!validators_->texture_parameter.IsValid(pname)) { | 1689 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1690 SetGLError(GL_INVALID_ENUM, "glTexParameteri: pname GL_INVALID_ENUM"); | 1690 SetGLError(GL_INVALID_ENUM, "glTexParameteri: pname GL_INVALID_ENUM"); |
| 1691 return error::kNoError; | 1691 return error::kNoError; |
| 1692 } | 1692 } |
| 1693 DoTexParameteri(target, pname, param); | 1693 DoTexParameteri(target, pname, param); |
| 1694 return error::kNoError; | 1694 return error::kNoError; |
| 1695 } | 1695 } |
| 1696 | 1696 |
| 1697 error::Error GLES2DecoderImpl::HandleTexParameteriv( | 1697 error::Error GLES2DecoderImpl::HandleTexParameteriv( |
| 1698 uint32 immediate_data_size, const gles2::TexParameteriv& c) { | 1698 uint32 immediate_data_size, const gles2::TexParameteriv& c) { |
| 1699 GLenum target = static_cast<GLenum>(c.target); | 1699 GLenum target = static_cast<GLenum>(c.target); |
| 1700 GLenum pname = static_cast<GLenum>(c.pname); | 1700 GLenum pname = static_cast<GLenum>(c.pname); |
| 1701 uint32 data_size; | 1701 uint32 data_size; |
| 1702 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { | 1702 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 1703 return error::kOutOfBounds; | 1703 return error::kOutOfBounds; |
| 1704 } | 1704 } |
| 1705 const GLint* params = GetSharedMemoryAs<const GLint*>( | 1705 const GLint* params = GetSharedMemoryAs<const GLint*>( |
| 1706 c.params_shm_id, c.params_shm_offset, data_size); | 1706 c.params_shm_id, c.params_shm_offset, data_size); |
| 1707 if (!validators_->texture_bind_target.IsValid(target)) { | 1707 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1708 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); | 1708 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); |
| 1709 return error::kNoError; | 1709 return error::kNoError; |
| 1710 } | 1710 } |
| 1711 if (!validators_->texture_parameter.IsValid(pname)) { | 1711 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1712 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); | 1712 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); |
| 1713 return error::kNoError; | 1713 return error::kNoError; |
| 1714 } | 1714 } |
| 1715 if (params == NULL) { | 1715 if (params == NULL) { |
| 1716 return error::kOutOfBounds; | 1716 return error::kOutOfBounds; |
| 1717 } | 1717 } |
| 1718 DoTexParameteriv(target, pname, params); | 1718 DoTexParameteriv(target, pname, params); |
| 1719 return error::kNoError; | 1719 return error::kNoError; |
| 1720 } | 1720 } |
| 1721 | 1721 |
| 1722 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate( | 1722 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate( |
| 1723 uint32 immediate_data_size, const gles2::TexParameterivImmediate& c) { | 1723 uint32 immediate_data_size, const gles2::TexParameterivImmediate& c) { |
| 1724 GLenum target = static_cast<GLenum>(c.target); | 1724 GLenum target = static_cast<GLenum>(c.target); |
| 1725 GLenum pname = static_cast<GLenum>(c.pname); | 1725 GLenum pname = static_cast<GLenum>(c.pname); |
| 1726 uint32 data_size; | 1726 uint32 data_size; |
| 1727 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { | 1727 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 1728 return error::kOutOfBounds; | 1728 return error::kOutOfBounds; |
| 1729 } | 1729 } |
| 1730 if (data_size > immediate_data_size) { | 1730 if (data_size > immediate_data_size) { |
| 1731 return error::kOutOfBounds; | 1731 return error::kOutOfBounds; |
| 1732 } | 1732 } |
| 1733 const GLint* params = GetImmediateDataAs<const GLint*>( | 1733 const GLint* params = GetImmediateDataAs<const GLint*>( |
| 1734 c, data_size, immediate_data_size); | 1734 c, data_size, immediate_data_size); |
| 1735 if (!validators_->texture_bind_target.IsValid(target)) { | 1735 if (!validators()->texture_bind_target.IsValid(target)) { |
| 1736 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); | 1736 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: target GL_INVALID_ENUM"); |
| 1737 return error::kNoError; | 1737 return error::kNoError; |
| 1738 } | 1738 } |
| 1739 if (!validators_->texture_parameter.IsValid(pname)) { | 1739 if (!validators()->texture_parameter.IsValid(pname)) { |
| 1740 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); | 1740 SetGLError(GL_INVALID_ENUM, "glTexParameteriv: pname GL_INVALID_ENUM"); |
| 1741 return error::kNoError; | 1741 return error::kNoError; |
| 1742 } | 1742 } |
| 1743 if (params == NULL) { | 1743 if (params == NULL) { |
| 1744 return error::kOutOfBounds; | 1744 return error::kOutOfBounds; |
| 1745 } | 1745 } |
| 1746 DoTexParameteriv(target, pname, params); | 1746 DoTexParameteriv(target, pname, params); |
| 1747 return error::kNoError; | 1747 return error::kNoError; |
| 1748 } | 1748 } |
| 1749 | 1749 |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2127 uint32 immediate_data_size, const gles2::UniformMatrix2fv& c) { | 2127 uint32 immediate_data_size, const gles2::UniformMatrix2fv& c) { |
| 2128 GLint location = static_cast<GLint>(c.location); | 2128 GLint location = static_cast<GLint>(c.location); |
| 2129 GLsizei count = static_cast<GLsizei>(c.count); | 2129 GLsizei count = static_cast<GLsizei>(c.count); |
| 2130 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2130 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2131 uint32 data_size; | 2131 uint32 data_size; |
| 2132 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { | 2132 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { |
| 2133 return error::kOutOfBounds; | 2133 return error::kOutOfBounds; |
| 2134 } | 2134 } |
| 2135 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2135 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2136 c.value_shm_id, c.value_shm_offset, data_size); | 2136 c.value_shm_id, c.value_shm_offset, data_size); |
| 2137 if (!validators_->false_only.IsValid(transpose)) { | 2137 if (!validators()->false_only.IsValid(transpose)) { |
| 2138 SetGLError( | 2138 SetGLError( |
| 2139 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); | 2139 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); |
| 2140 return error::kNoError; | 2140 return error::kNoError; |
| 2141 } | 2141 } |
| 2142 if (value == NULL) { | 2142 if (value == NULL) { |
| 2143 return error::kOutOfBounds; | 2143 return error::kOutOfBounds; |
| 2144 } | 2144 } |
| 2145 DoUniformMatrix2fv(location, count, transpose, value); | 2145 DoUniformMatrix2fv(location, count, transpose, value); |
| 2146 return error::kNoError; | 2146 return error::kNoError; |
| 2147 } | 2147 } |
| 2148 | 2148 |
| 2149 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( | 2149 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( |
| 2150 uint32 immediate_data_size, const gles2::UniformMatrix2fvImmediate& c) { | 2150 uint32 immediate_data_size, const gles2::UniformMatrix2fvImmediate& c) { |
| 2151 GLint location = static_cast<GLint>(c.location); | 2151 GLint location = static_cast<GLint>(c.location); |
| 2152 GLsizei count = static_cast<GLsizei>(c.count); | 2152 GLsizei count = static_cast<GLsizei>(c.count); |
| 2153 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2153 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2154 uint32 data_size; | 2154 uint32 data_size; |
| 2155 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { | 2155 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { |
| 2156 return error::kOutOfBounds; | 2156 return error::kOutOfBounds; |
| 2157 } | 2157 } |
| 2158 if (data_size > immediate_data_size) { | 2158 if (data_size > immediate_data_size) { |
| 2159 return error::kOutOfBounds; | 2159 return error::kOutOfBounds; |
| 2160 } | 2160 } |
| 2161 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2161 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2162 c, data_size, immediate_data_size); | 2162 c, data_size, immediate_data_size); |
| 2163 if (!validators_->false_only.IsValid(transpose)) { | 2163 if (!validators()->false_only.IsValid(transpose)) { |
| 2164 SetGLError( | 2164 SetGLError( |
| 2165 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); | 2165 GL_INVALID_VALUE, "glUniformMatrix2fv: transpose GL_INVALID_VALUE"); |
| 2166 return error::kNoError; | 2166 return error::kNoError; |
| 2167 } | 2167 } |
| 2168 if (value == NULL) { | 2168 if (value == NULL) { |
| 2169 return error::kOutOfBounds; | 2169 return error::kOutOfBounds; |
| 2170 } | 2170 } |
| 2171 DoUniformMatrix2fv(location, count, transpose, value); | 2171 DoUniformMatrix2fv(location, count, transpose, value); |
| 2172 return error::kNoError; | 2172 return error::kNoError; |
| 2173 } | 2173 } |
| 2174 | 2174 |
| 2175 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv( | 2175 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv( |
| 2176 uint32 immediate_data_size, const gles2::UniformMatrix3fv& c) { | 2176 uint32 immediate_data_size, const gles2::UniformMatrix3fv& c) { |
| 2177 GLint location = static_cast<GLint>(c.location); | 2177 GLint location = static_cast<GLint>(c.location); |
| 2178 GLsizei count = static_cast<GLsizei>(c.count); | 2178 GLsizei count = static_cast<GLsizei>(c.count); |
| 2179 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2179 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2180 uint32 data_size; | 2180 uint32 data_size; |
| 2181 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { | 2181 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { |
| 2182 return error::kOutOfBounds; | 2182 return error::kOutOfBounds; |
| 2183 } | 2183 } |
| 2184 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2184 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2185 c.value_shm_id, c.value_shm_offset, data_size); | 2185 c.value_shm_id, c.value_shm_offset, data_size); |
| 2186 if (!validators_->false_only.IsValid(transpose)) { | 2186 if (!validators()->false_only.IsValid(transpose)) { |
| 2187 SetGLError( | 2187 SetGLError( |
| 2188 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); | 2188 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); |
| 2189 return error::kNoError; | 2189 return error::kNoError; |
| 2190 } | 2190 } |
| 2191 if (value == NULL) { | 2191 if (value == NULL) { |
| 2192 return error::kOutOfBounds; | 2192 return error::kOutOfBounds; |
| 2193 } | 2193 } |
| 2194 DoUniformMatrix3fv(location, count, transpose, value); | 2194 DoUniformMatrix3fv(location, count, transpose, value); |
| 2195 return error::kNoError; | 2195 return error::kNoError; |
| 2196 } | 2196 } |
| 2197 | 2197 |
| 2198 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( | 2198 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( |
| 2199 uint32 immediate_data_size, const gles2::UniformMatrix3fvImmediate& c) { | 2199 uint32 immediate_data_size, const gles2::UniformMatrix3fvImmediate& c) { |
| 2200 GLint location = static_cast<GLint>(c.location); | 2200 GLint location = static_cast<GLint>(c.location); |
| 2201 GLsizei count = static_cast<GLsizei>(c.count); | 2201 GLsizei count = static_cast<GLsizei>(c.count); |
| 2202 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2202 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2203 uint32 data_size; | 2203 uint32 data_size; |
| 2204 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { | 2204 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { |
| 2205 return error::kOutOfBounds; | 2205 return error::kOutOfBounds; |
| 2206 } | 2206 } |
| 2207 if (data_size > immediate_data_size) { | 2207 if (data_size > immediate_data_size) { |
| 2208 return error::kOutOfBounds; | 2208 return error::kOutOfBounds; |
| 2209 } | 2209 } |
| 2210 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2210 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2211 c, data_size, immediate_data_size); | 2211 c, data_size, immediate_data_size); |
| 2212 if (!validators_->false_only.IsValid(transpose)) { | 2212 if (!validators()->false_only.IsValid(transpose)) { |
| 2213 SetGLError( | 2213 SetGLError( |
| 2214 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); | 2214 GL_INVALID_VALUE, "glUniformMatrix3fv: transpose GL_INVALID_VALUE"); |
| 2215 return error::kNoError; | 2215 return error::kNoError; |
| 2216 } | 2216 } |
| 2217 if (value == NULL) { | 2217 if (value == NULL) { |
| 2218 return error::kOutOfBounds; | 2218 return error::kOutOfBounds; |
| 2219 } | 2219 } |
| 2220 DoUniformMatrix3fv(location, count, transpose, value); | 2220 DoUniformMatrix3fv(location, count, transpose, value); |
| 2221 return error::kNoError; | 2221 return error::kNoError; |
| 2222 } | 2222 } |
| 2223 | 2223 |
| 2224 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv( | 2224 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv( |
| 2225 uint32 immediate_data_size, const gles2::UniformMatrix4fv& c) { | 2225 uint32 immediate_data_size, const gles2::UniformMatrix4fv& c) { |
| 2226 GLint location = static_cast<GLint>(c.location); | 2226 GLint location = static_cast<GLint>(c.location); |
| 2227 GLsizei count = static_cast<GLsizei>(c.count); | 2227 GLsizei count = static_cast<GLsizei>(c.count); |
| 2228 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2228 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2229 uint32 data_size; | 2229 uint32 data_size; |
| 2230 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { | 2230 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { |
| 2231 return error::kOutOfBounds; | 2231 return error::kOutOfBounds; |
| 2232 } | 2232 } |
| 2233 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( | 2233 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( |
| 2234 c.value_shm_id, c.value_shm_offset, data_size); | 2234 c.value_shm_id, c.value_shm_offset, data_size); |
| 2235 if (!validators_->false_only.IsValid(transpose)) { | 2235 if (!validators()->false_only.IsValid(transpose)) { |
| 2236 SetGLError( | 2236 SetGLError( |
| 2237 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); | 2237 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); |
| 2238 return error::kNoError; | 2238 return error::kNoError; |
| 2239 } | 2239 } |
| 2240 if (value == NULL) { | 2240 if (value == NULL) { |
| 2241 return error::kOutOfBounds; | 2241 return error::kOutOfBounds; |
| 2242 } | 2242 } |
| 2243 DoUniformMatrix4fv(location, count, transpose, value); | 2243 DoUniformMatrix4fv(location, count, transpose, value); |
| 2244 return error::kNoError; | 2244 return error::kNoError; |
| 2245 } | 2245 } |
| 2246 | 2246 |
| 2247 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( | 2247 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( |
| 2248 uint32 immediate_data_size, const gles2::UniformMatrix4fvImmediate& c) { | 2248 uint32 immediate_data_size, const gles2::UniformMatrix4fvImmediate& c) { |
| 2249 GLint location = static_cast<GLint>(c.location); | 2249 GLint location = static_cast<GLint>(c.location); |
| 2250 GLsizei count = static_cast<GLsizei>(c.count); | 2250 GLsizei count = static_cast<GLsizei>(c.count); |
| 2251 GLboolean transpose = static_cast<GLboolean>(c.transpose); | 2251 GLboolean transpose = static_cast<GLboolean>(c.transpose); |
| 2252 uint32 data_size; | 2252 uint32 data_size; |
| 2253 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { | 2253 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { |
| 2254 return error::kOutOfBounds; | 2254 return error::kOutOfBounds; |
| 2255 } | 2255 } |
| 2256 if (data_size > immediate_data_size) { | 2256 if (data_size > immediate_data_size) { |
| 2257 return error::kOutOfBounds; | 2257 return error::kOutOfBounds; |
| 2258 } | 2258 } |
| 2259 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( | 2259 const GLfloat* value = GetImmediateDataAs<const GLfloat*>( |
| 2260 c, data_size, immediate_data_size); | 2260 c, data_size, immediate_data_size); |
| 2261 if (!validators_->false_only.IsValid(transpose)) { | 2261 if (!validators()->false_only.IsValid(transpose)) { |
| 2262 SetGLError( | 2262 SetGLError( |
| 2263 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); | 2263 GL_INVALID_VALUE, "glUniformMatrix4fv: transpose GL_INVALID_VALUE"); |
| 2264 return error::kNoError; | 2264 return error::kNoError; |
| 2265 } | 2265 } |
| 2266 if (value == NULL) { | 2266 if (value == NULL) { |
| 2267 return error::kOutOfBounds; | 2267 return error::kOutOfBounds; |
| 2268 } | 2268 } |
| 2269 DoUniformMatrix4fv(location, count, transpose, value); | 2269 DoUniformMatrix4fv(location, count, transpose, value); |
| 2270 return error::kNoError; | 2270 return error::kNoError; |
| 2271 } | 2271 } |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2485 GLint srcX0 = static_cast<GLint>(c.srcX0); | 2485 GLint srcX0 = static_cast<GLint>(c.srcX0); |
| 2486 GLint srcY0 = static_cast<GLint>(c.srcY0); | 2486 GLint srcY0 = static_cast<GLint>(c.srcY0); |
| 2487 GLint srcX1 = static_cast<GLint>(c.srcX1); | 2487 GLint srcX1 = static_cast<GLint>(c.srcX1); |
| 2488 GLint srcY1 = static_cast<GLint>(c.srcY1); | 2488 GLint srcY1 = static_cast<GLint>(c.srcY1); |
| 2489 GLint dstX0 = static_cast<GLint>(c.dstX0); | 2489 GLint dstX0 = static_cast<GLint>(c.dstX0); |
| 2490 GLint dstY0 = static_cast<GLint>(c.dstY0); | 2490 GLint dstY0 = static_cast<GLint>(c.dstY0); |
| 2491 GLint dstX1 = static_cast<GLint>(c.dstX1); | 2491 GLint dstX1 = static_cast<GLint>(c.dstX1); |
| 2492 GLint dstY1 = static_cast<GLint>(c.dstY1); | 2492 GLint dstY1 = static_cast<GLint>(c.dstY1); |
| 2493 GLbitfield mask = static_cast<GLbitfield>(c.mask); | 2493 GLbitfield mask = static_cast<GLbitfield>(c.mask); |
| 2494 GLenum filter = static_cast<GLenum>(c.filter); | 2494 GLenum filter = static_cast<GLenum>(c.filter); |
| 2495 if (!validators_->blit_filter.IsValid(filter)) { | 2495 if (!validators()->blit_filter.IsValid(filter)) { |
| 2496 SetGLError( | 2496 SetGLError( |
| 2497 GL_INVALID_ENUM, "glBlitFramebufferEXT: filter GL_INVALID_ENUM"); | 2497 GL_INVALID_ENUM, "glBlitFramebufferEXT: filter GL_INVALID_ENUM"); |
| 2498 return error::kNoError; | 2498 return error::kNoError; |
| 2499 } | 2499 } |
| 2500 DoBlitFramebufferEXT( | 2500 DoBlitFramebufferEXT( |
| 2501 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); | 2501 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
| 2502 return error::kNoError; | 2502 return error::kNoError; |
| 2503 } | 2503 } |
| 2504 | 2504 |
| 2505 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( | 2505 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( |
| 2506 uint32 immediate_data_size, | 2506 uint32 immediate_data_size, |
| 2507 const gles2::RenderbufferStorageMultisampleEXT& c) { | 2507 const gles2::RenderbufferStorageMultisampleEXT& c) { |
| 2508 GLenum target = static_cast<GLenum>(c.target); | 2508 GLenum target = static_cast<GLenum>(c.target); |
| 2509 GLsizei samples = static_cast<GLsizei>(c.samples); | 2509 GLsizei samples = static_cast<GLsizei>(c.samples); |
| 2510 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 2510 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 2511 GLsizei width = static_cast<GLsizei>(c.width); | 2511 GLsizei width = static_cast<GLsizei>(c.width); |
| 2512 GLsizei height = static_cast<GLsizei>(c.height); | 2512 GLsizei height = static_cast<GLsizei>(c.height); |
| 2513 if (!validators_->render_buffer_target.IsValid(target)) { | 2513 if (!validators()->render_buffer_target.IsValid(target)) { |
| 2514 SetGLError( | 2514 SetGLError( |
| 2515 GL_INVALID_ENUM, | 2515 GL_INVALID_ENUM, |
| 2516 "glRenderbufferStorageMultisampleEXT: target GL_INVALID_ENUM"); | 2516 "glRenderbufferStorageMultisampleEXT: target GL_INVALID_ENUM"); |
| 2517 return error::kNoError; | 2517 return error::kNoError; |
| 2518 } | 2518 } |
| 2519 if (samples < 0) { | 2519 if (samples < 0) { |
| 2520 SetGLError( | 2520 SetGLError( |
| 2521 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: samples < 0"); | 2521 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: samples < 0"); |
| 2522 return error::kNoError; | 2522 return error::kNoError; |
| 2523 } | 2523 } |
| 2524 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 2524 if (!validators()->render_buffer_format.IsValid(internalformat)) { |
| 2525 SetGLError( | 2525 SetGLError( |
| 2526 GL_INVALID_ENUM, | 2526 GL_INVALID_ENUM, |
| 2527 "glRenderbufferStorageMultisampleEXT: internalformat GL_INVALID_ENUM"); | 2527 "glRenderbufferStorageMultisampleEXT: internalformat GL_INVALID_ENUM"); |
| 2528 return error::kNoError; | 2528 return error::kNoError; |
| 2529 } | 2529 } |
| 2530 if (width < 0) { | 2530 if (width < 0) { |
| 2531 SetGLError( | 2531 SetGLError( |
| 2532 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: width < 0"); | 2532 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT: width < 0"); |
| 2533 return error::kNoError; | 2533 return error::kNoError; |
| 2534 } | 2534 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2551 typedef GetMaxValueInBufferCHROMIUM::Result Result; | 2551 typedef GetMaxValueInBufferCHROMIUM::Result Result; |
| 2552 Result* result_dst = GetSharedMemoryAs<Result*>( | 2552 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 2553 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 2553 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 2554 if (!result_dst) { | 2554 if (!result_dst) { |
| 2555 return error::kOutOfBounds; | 2555 return error::kOutOfBounds; |
| 2556 } | 2556 } |
| 2557 if (count < 0) { | 2557 if (count < 0) { |
| 2558 SetGLError(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM: count < 0"); | 2558 SetGLError(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM: count < 0"); |
| 2559 return error::kNoError; | 2559 return error::kNoError; |
| 2560 } | 2560 } |
| 2561 if (!validators_->get_max_index_type.IsValid(type)) { | 2561 if (!validators()->get_max_index_type.IsValid(type)) { |
| 2562 SetGLError( | 2562 SetGLError( |
| 2563 GL_INVALID_ENUM, | 2563 GL_INVALID_ENUM, |
| 2564 "glGetMaxValueInBufferCHROMIUM: type GL_INVALID_ENUM"); | 2564 "glGetMaxValueInBufferCHROMIUM: type GL_INVALID_ENUM"); |
| 2565 return error::kNoError; | 2565 return error::kNoError; |
| 2566 } | 2566 } |
| 2567 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); | 2567 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); |
| 2568 return error::kNoError; | 2568 return error::kNoError; |
| 2569 } | 2569 } |
| 2570 | 2570 |
| 2571 error::Error GLES2DecoderImpl::HandlePlaceholder447CHROMIUM( | 2571 error::Error GLES2DecoderImpl::HandlePlaceholder447CHROMIUM( |
| 2572 uint32 immediate_data_size, const gles2::Placeholder447CHROMIUM& c) { | 2572 uint32 immediate_data_size, const gles2::Placeholder447CHROMIUM& c) { |
| 2573 return error::kUnknownCommand; | 2573 return error::kUnknownCommand; |
| 2574 } | 2574 } |
| 2575 error::Error GLES2DecoderImpl::HandlePlaceholder451CHROMIUM( | 2575 error::Error GLES2DecoderImpl::HandlePlaceholder451CHROMIUM( |
| 2576 uint32 immediate_data_size, const gles2::Placeholder451CHROMIUM& c) { | 2576 uint32 immediate_data_size, const gles2::Placeholder451CHROMIUM& c) { |
| 2577 return error::kUnknownCommand; | 2577 return error::kUnknownCommand; |
| 2578 } | 2578 } |
| 2579 error::Error GLES2DecoderImpl::HandlePlaceholder452CHROMIUM( | 2579 error::Error GLES2DecoderImpl::HandlePlaceholder452CHROMIUM( |
| 2580 uint32 immediate_data_size, const gles2::Placeholder452CHROMIUM& c) { | 2580 uint32 immediate_data_size, const gles2::Placeholder452CHROMIUM& c) { |
| 2581 return error::kUnknownCommand; | 2581 return error::kUnknownCommand; |
| 2582 } | 2582 } |
| 2583 error::Error GLES2DecoderImpl::HandlePlaceholder453CHROMIUM( | 2583 error::Error GLES2DecoderImpl::HandlePlaceholder453CHROMIUM( |
| 2584 uint32 immediate_data_size, const gles2::Placeholder453CHROMIUM& c) { | 2584 uint32 immediate_data_size, const gles2::Placeholder453CHROMIUM& c) { |
| 2585 return error::kUnknownCommand; | 2585 return error::kUnknownCommand; |
| 2586 } | 2586 } |
| 2587 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 2587 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| 2588 | 2588 |
| OLD | NEW |