Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 7782038: Prepare WebGL contexts for resource sharing with the compositor context. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698