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 |