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

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

Issue 268063002: Remove command_buffer/common/types.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
11 // It is included by gles2_cmd_decoder.cc 11 // It is included by gles2_cmd_decoder.cc
12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
14 14
15 error::Error GLES2DecoderImpl::HandleActiveTexture( 15 error::Error GLES2DecoderImpl::HandleActiveTexture(
16 uint32 immediate_data_size, 16 uint32_t immediate_data_size,
17 const gles2::cmds::ActiveTexture& c) { 17 const gles2::cmds::ActiveTexture& c) {
18 GLenum texture = static_cast<GLenum>(c.texture); 18 GLenum texture = static_cast<GLenum>(c.texture);
19 DoActiveTexture(texture); 19 DoActiveTexture(texture);
20 return error::kNoError; 20 return error::kNoError;
21 } 21 }
22 22
23 error::Error GLES2DecoderImpl::HandleAttachShader( 23 error::Error GLES2DecoderImpl::HandleAttachShader(
24 uint32 immediate_data_size, 24 uint32_t immediate_data_size,
25 const gles2::cmds::AttachShader& c) { 25 const gles2::cmds::AttachShader& c) {
26 GLuint program = c.program; 26 GLuint program = c.program;
27 GLuint shader = c.shader; 27 GLuint shader = c.shader;
28 DoAttachShader(program, shader); 28 DoAttachShader(program, shader);
29 return error::kNoError; 29 return error::kNoError;
30 } 30 }
31 31
32 error::Error GLES2DecoderImpl::HandleBindBuffer( 32 error::Error GLES2DecoderImpl::HandleBindBuffer(
33 uint32 immediate_data_size, 33 uint32_t immediate_data_size,
34 const gles2::cmds::BindBuffer& c) { 34 const gles2::cmds::BindBuffer& c) {
35 GLenum target = static_cast<GLenum>(c.target); 35 GLenum target = static_cast<GLenum>(c.target);
36 GLuint buffer = c.buffer; 36 GLuint buffer = c.buffer;
37 if (!validators_->buffer_target.IsValid(target)) { 37 if (!validators_->buffer_target.IsValid(target)) {
38 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindBuffer", target, "target"); 38 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindBuffer", target, "target");
39 return error::kNoError; 39 return error::kNoError;
40 } 40 }
41 DoBindBuffer(target, buffer); 41 DoBindBuffer(target, buffer);
42 return error::kNoError; 42 return error::kNoError;
43 } 43 }
44 44
45 error::Error GLES2DecoderImpl::HandleBindFramebuffer( 45 error::Error GLES2DecoderImpl::HandleBindFramebuffer(
46 uint32 immediate_data_size, 46 uint32_t immediate_data_size,
47 const gles2::cmds::BindFramebuffer& c) { 47 const gles2::cmds::BindFramebuffer& c) {
48 GLenum target = static_cast<GLenum>(c.target); 48 GLenum target = static_cast<GLenum>(c.target);
49 GLuint framebuffer = c.framebuffer; 49 GLuint framebuffer = c.framebuffer;
50 if (!validators_->frame_buffer_target.IsValid(target)) { 50 if (!validators_->frame_buffer_target.IsValid(target)) {
51 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindFramebuffer", target, "target"); 51 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindFramebuffer", target, "target");
52 return error::kNoError; 52 return error::kNoError;
53 } 53 }
54 DoBindFramebuffer(target, framebuffer); 54 DoBindFramebuffer(target, framebuffer);
55 return error::kNoError; 55 return error::kNoError;
56 } 56 }
57 57
58 error::Error GLES2DecoderImpl::HandleBindRenderbuffer( 58 error::Error GLES2DecoderImpl::HandleBindRenderbuffer(
59 uint32 immediate_data_size, 59 uint32_t immediate_data_size,
60 const gles2::cmds::BindRenderbuffer& c) { 60 const gles2::cmds::BindRenderbuffer& c) {
61 GLenum target = static_cast<GLenum>(c.target); 61 GLenum target = static_cast<GLenum>(c.target);
62 GLuint renderbuffer = c.renderbuffer; 62 GLuint renderbuffer = c.renderbuffer;
63 if (!validators_->render_buffer_target.IsValid(target)) { 63 if (!validators_->render_buffer_target.IsValid(target)) {
64 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindRenderbuffer", target, "target"); 64 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindRenderbuffer", target, "target");
65 return error::kNoError; 65 return error::kNoError;
66 } 66 }
67 DoBindRenderbuffer(target, renderbuffer); 67 DoBindRenderbuffer(target, renderbuffer);
68 return error::kNoError; 68 return error::kNoError;
69 } 69 }
70 70
71 error::Error GLES2DecoderImpl::HandleBindTexture( 71 error::Error GLES2DecoderImpl::HandleBindTexture(
72 uint32 immediate_data_size, 72 uint32_t immediate_data_size,
73 const gles2::cmds::BindTexture& c) { 73 const gles2::cmds::BindTexture& c) {
74 GLenum target = static_cast<GLenum>(c.target); 74 GLenum target = static_cast<GLenum>(c.target);
75 GLuint texture = c.texture; 75 GLuint texture = c.texture;
76 if (!validators_->texture_bind_target.IsValid(target)) { 76 if (!validators_->texture_bind_target.IsValid(target)) {
77 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexture", target, "target"); 77 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexture", target, "target");
78 return error::kNoError; 78 return error::kNoError;
79 } 79 }
80 DoBindTexture(target, texture); 80 DoBindTexture(target, texture);
81 return error::kNoError; 81 return error::kNoError;
82 } 82 }
83 83
84 error::Error GLES2DecoderImpl::HandleBlendColor( 84 error::Error GLES2DecoderImpl::HandleBlendColor(
85 uint32 immediate_data_size, 85 uint32_t immediate_data_size,
86 const gles2::cmds::BlendColor& c) { 86 const gles2::cmds::BlendColor& c) {
87 GLclampf red = static_cast<GLclampf>(c.red); 87 GLclampf red = static_cast<GLclampf>(c.red);
88 GLclampf green = static_cast<GLclampf>(c.green); 88 GLclampf green = static_cast<GLclampf>(c.green);
89 GLclampf blue = static_cast<GLclampf>(c.blue); 89 GLclampf blue = static_cast<GLclampf>(c.blue);
90 GLclampf alpha = static_cast<GLclampf>(c.alpha); 90 GLclampf alpha = static_cast<GLclampf>(c.alpha);
91 if (state_.blend_color_red != red || state_.blend_color_green != green || 91 if (state_.blend_color_red != red || state_.blend_color_green != green ||
92 state_.blend_color_blue != blue || state_.blend_color_alpha != alpha) { 92 state_.blend_color_blue != blue || state_.blend_color_alpha != alpha) {
93 state_.blend_color_red = red; 93 state_.blend_color_red = red;
94 state_.blend_color_green = green; 94 state_.blend_color_green = green;
95 state_.blend_color_blue = blue; 95 state_.blend_color_blue = blue;
96 state_.blend_color_alpha = alpha; 96 state_.blend_color_alpha = alpha;
97 glBlendColor(red, green, blue, alpha); 97 glBlendColor(red, green, blue, alpha);
98 } 98 }
99 return error::kNoError; 99 return error::kNoError;
100 } 100 }
101 101
102 error::Error GLES2DecoderImpl::HandleBlendEquation( 102 error::Error GLES2DecoderImpl::HandleBlendEquation(
103 uint32 immediate_data_size, 103 uint32_t immediate_data_size,
104 const gles2::cmds::BlendEquation& c) { 104 const gles2::cmds::BlendEquation& c) {
105 GLenum mode = static_cast<GLenum>(c.mode); 105 GLenum mode = static_cast<GLenum>(c.mode);
106 if (!validators_->equation.IsValid(mode)) { 106 if (!validators_->equation.IsValid(mode)) {
107 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquation", mode, "mode"); 107 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquation", mode, "mode");
108 return error::kNoError; 108 return error::kNoError;
109 } 109 }
110 if (state_.blend_equation_rgb != mode || 110 if (state_.blend_equation_rgb != mode ||
111 state_.blend_equation_alpha != mode) { 111 state_.blend_equation_alpha != mode) {
112 state_.blend_equation_rgb = mode; 112 state_.blend_equation_rgb = mode;
113 state_.blend_equation_alpha = mode; 113 state_.blend_equation_alpha = mode;
114 glBlendEquation(mode); 114 glBlendEquation(mode);
115 } 115 }
116 return error::kNoError; 116 return error::kNoError;
117 } 117 }
118 118
119 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( 119 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate(
120 uint32 immediate_data_size, 120 uint32_t immediate_data_size,
121 const gles2::cmds::BlendEquationSeparate& c) { 121 const gles2::cmds::BlendEquationSeparate& c) {
122 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); 122 GLenum modeRGB = static_cast<GLenum>(c.modeRGB);
123 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); 123 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha);
124 if (!validators_->equation.IsValid(modeRGB)) { 124 if (!validators_->equation.IsValid(modeRGB)) {
125 LOCAL_SET_GL_ERROR_INVALID_ENUM( 125 LOCAL_SET_GL_ERROR_INVALID_ENUM(
126 "glBlendEquationSeparate", modeRGB, "modeRGB"); 126 "glBlendEquationSeparate", modeRGB, "modeRGB");
127 return error::kNoError; 127 return error::kNoError;
128 } 128 }
129 if (!validators_->equation.IsValid(modeAlpha)) { 129 if (!validators_->equation.IsValid(modeAlpha)) {
130 LOCAL_SET_GL_ERROR_INVALID_ENUM( 130 LOCAL_SET_GL_ERROR_INVALID_ENUM(
131 "glBlendEquationSeparate", modeAlpha, "modeAlpha"); 131 "glBlendEquationSeparate", modeAlpha, "modeAlpha");
132 return error::kNoError; 132 return error::kNoError;
133 } 133 }
134 if (state_.blend_equation_rgb != modeRGB || 134 if (state_.blend_equation_rgb != modeRGB ||
135 state_.blend_equation_alpha != modeAlpha) { 135 state_.blend_equation_alpha != modeAlpha) {
136 state_.blend_equation_rgb = modeRGB; 136 state_.blend_equation_rgb = modeRGB;
137 state_.blend_equation_alpha = modeAlpha; 137 state_.blend_equation_alpha = modeAlpha;
138 glBlendEquationSeparate(modeRGB, modeAlpha); 138 glBlendEquationSeparate(modeRGB, modeAlpha);
139 } 139 }
140 return error::kNoError; 140 return error::kNoError;
141 } 141 }
142 142
143 error::Error GLES2DecoderImpl::HandleBlendFunc( 143 error::Error GLES2DecoderImpl::HandleBlendFunc(
144 uint32 immediate_data_size, 144 uint32_t immediate_data_size,
145 const gles2::cmds::BlendFunc& c) { 145 const gles2::cmds::BlendFunc& c) {
146 GLenum sfactor = static_cast<GLenum>(c.sfactor); 146 GLenum sfactor = static_cast<GLenum>(c.sfactor);
147 GLenum dfactor = static_cast<GLenum>(c.dfactor); 147 GLenum dfactor = static_cast<GLenum>(c.dfactor);
148 if (!validators_->src_blend_factor.IsValid(sfactor)) { 148 if (!validators_->src_blend_factor.IsValid(sfactor)) {
149 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFunc", sfactor, "sfactor"); 149 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFunc", sfactor, "sfactor");
150 return error::kNoError; 150 return error::kNoError;
151 } 151 }
152 if (!validators_->dst_blend_factor.IsValid(dfactor)) { 152 if (!validators_->dst_blend_factor.IsValid(dfactor)) {
153 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFunc", dfactor, "dfactor"); 153 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFunc", dfactor, "dfactor");
154 return error::kNoError; 154 return error::kNoError;
155 } 155 }
156 if (state_.blend_source_rgb != sfactor || state_.blend_dest_rgb != dfactor || 156 if (state_.blend_source_rgb != sfactor || state_.blend_dest_rgb != dfactor ||
157 state_.blend_source_alpha != sfactor || 157 state_.blend_source_alpha != sfactor ||
158 state_.blend_dest_alpha != dfactor) { 158 state_.blend_dest_alpha != dfactor) {
159 state_.blend_source_rgb = sfactor; 159 state_.blend_source_rgb = sfactor;
160 state_.blend_dest_rgb = dfactor; 160 state_.blend_dest_rgb = dfactor;
161 state_.blend_source_alpha = sfactor; 161 state_.blend_source_alpha = sfactor;
162 state_.blend_dest_alpha = dfactor; 162 state_.blend_dest_alpha = dfactor;
163 glBlendFunc(sfactor, dfactor); 163 glBlendFunc(sfactor, dfactor);
164 } 164 }
165 return error::kNoError; 165 return error::kNoError;
166 } 166 }
167 167
168 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate( 168 error::Error GLES2DecoderImpl::HandleBlendFuncSeparate(
169 uint32 immediate_data_size, 169 uint32_t immediate_data_size,
170 const gles2::cmds::BlendFuncSeparate& c) { 170 const gles2::cmds::BlendFuncSeparate& c) {
171 GLenum srcRGB = static_cast<GLenum>(c.srcRGB); 171 GLenum srcRGB = static_cast<GLenum>(c.srcRGB);
172 GLenum dstRGB = static_cast<GLenum>(c.dstRGB); 172 GLenum dstRGB = static_cast<GLenum>(c.dstRGB);
173 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha); 173 GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha);
174 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); 174 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha);
175 if (!validators_->src_blend_factor.IsValid(srcRGB)) { 175 if (!validators_->src_blend_factor.IsValid(srcRGB)) {
176 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcRGB, "srcRGB"); 176 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcRGB, "srcRGB");
177 return error::kNoError; 177 return error::kNoError;
178 } 178 }
179 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { 179 if (!validators_->dst_blend_factor.IsValid(dstRGB)) {
(...skipping 16 matching lines...) Expand all
196 state_.blend_source_rgb = srcRGB; 196 state_.blend_source_rgb = srcRGB;
197 state_.blend_dest_rgb = dstRGB; 197 state_.blend_dest_rgb = dstRGB;
198 state_.blend_source_alpha = srcAlpha; 198 state_.blend_source_alpha = srcAlpha;
199 state_.blend_dest_alpha = dstAlpha; 199 state_.blend_dest_alpha = dstAlpha;
200 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); 200 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
201 } 201 }
202 return error::kNoError; 202 return error::kNoError;
203 } 203 }
204 204
205 error::Error GLES2DecoderImpl::HandleBufferSubData( 205 error::Error GLES2DecoderImpl::HandleBufferSubData(
206 uint32 immediate_data_size, 206 uint32_t immediate_data_size,
207 const gles2::cmds::BufferSubData& c) { 207 const gles2::cmds::BufferSubData& c) {
208 GLenum target = static_cast<GLenum>(c.target); 208 GLenum target = static_cast<GLenum>(c.target);
209 GLintptr offset = static_cast<GLintptr>(c.offset); 209 GLintptr offset = static_cast<GLintptr>(c.offset);
210 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); 210 GLsizeiptr size = static_cast<GLsizeiptr>(c.size);
211 uint32 data_size = size; 211 uint32_t data_size = size;
212 const void* data = GetSharedMemoryAs<const void*>( 212 const void* data = GetSharedMemoryAs<const void*>(
213 c.data_shm_id, c.data_shm_offset, data_size); 213 c.data_shm_id, c.data_shm_offset, data_size);
214 if (!validators_->buffer_target.IsValid(target)) { 214 if (!validators_->buffer_target.IsValid(target)) {
215 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBufferSubData", target, "target"); 215 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBufferSubData", target, "target");
216 return error::kNoError; 216 return error::kNoError;
217 } 217 }
218 if (size < 0) { 218 if (size < 0) {
219 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glBufferSubData", "size < 0"); 219 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glBufferSubData", "size < 0");
220 return error::kNoError; 220 return error::kNoError;
221 } 221 }
222 if (data == NULL) { 222 if (data == NULL) {
223 return error::kOutOfBounds; 223 return error::kOutOfBounds;
224 } 224 }
225 DoBufferSubData(target, offset, size, data); 225 DoBufferSubData(target, offset, size, data);
226 return error::kNoError; 226 return error::kNoError;
227 } 227 }
228 228
229 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus( 229 error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus(
230 uint32 immediate_data_size, 230 uint32_t immediate_data_size,
231 const gles2::cmds::CheckFramebufferStatus& c) { 231 const gles2::cmds::CheckFramebufferStatus& c) {
232 GLenum target = static_cast<GLenum>(c.target); 232 GLenum target = static_cast<GLenum>(c.target);
233 typedef cmds::CheckFramebufferStatus::Result Result; 233 typedef cmds::CheckFramebufferStatus::Result Result;
234 Result* result_dst = GetSharedMemoryAs<Result*>( 234 Result* result_dst = GetSharedMemoryAs<Result*>(
235 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 235 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
236 if (!result_dst) { 236 if (!result_dst) {
237 return error::kOutOfBounds; 237 return error::kOutOfBounds;
238 } 238 }
239 if (!validators_->frame_buffer_target.IsValid(target)) { 239 if (!validators_->frame_buffer_target.IsValid(target)) {
240 LOCAL_SET_GL_ERROR_INVALID_ENUM( 240 LOCAL_SET_GL_ERROR_INVALID_ENUM(
241 "glCheckFramebufferStatus", target, "target"); 241 "glCheckFramebufferStatus", target, "target");
242 return error::kNoError; 242 return error::kNoError;
243 } 243 }
244 *result_dst = DoCheckFramebufferStatus(target); 244 *result_dst = DoCheckFramebufferStatus(target);
245 return error::kNoError; 245 return error::kNoError;
246 } 246 }
247 247
248 error::Error GLES2DecoderImpl::HandleClear(uint32 immediate_data_size, 248 error::Error GLES2DecoderImpl::HandleClear(uint32_t immediate_data_size,
249 const gles2::cmds::Clear& c) { 249 const gles2::cmds::Clear& c) {
250 error::Error error; 250 error::Error error;
251 error = WillAccessBoundFramebufferForDraw(); 251 error = WillAccessBoundFramebufferForDraw();
252 if (error != error::kNoError) 252 if (error != error::kNoError)
253 return error; 253 return error;
254 GLbitfield mask = static_cast<GLbitfield>(c.mask); 254 GLbitfield mask = static_cast<GLbitfield>(c.mask);
255 DoClear(mask); 255 DoClear(mask);
256 return error::kNoError; 256 return error::kNoError;
257 } 257 }
258 258
259 error::Error GLES2DecoderImpl::HandleClearColor( 259 error::Error GLES2DecoderImpl::HandleClearColor(
260 uint32 immediate_data_size, 260 uint32_t immediate_data_size,
261 const gles2::cmds::ClearColor& c) { 261 const gles2::cmds::ClearColor& c) {
262 GLclampf red = static_cast<GLclampf>(c.red); 262 GLclampf red = static_cast<GLclampf>(c.red);
263 GLclampf green = static_cast<GLclampf>(c.green); 263 GLclampf green = static_cast<GLclampf>(c.green);
264 GLclampf blue = static_cast<GLclampf>(c.blue); 264 GLclampf blue = static_cast<GLclampf>(c.blue);
265 GLclampf alpha = static_cast<GLclampf>(c.alpha); 265 GLclampf alpha = static_cast<GLclampf>(c.alpha);
266 if (state_.color_clear_red != red || state_.color_clear_green != green || 266 if (state_.color_clear_red != red || state_.color_clear_green != green ||
267 state_.color_clear_blue != blue || state_.color_clear_alpha != alpha) { 267 state_.color_clear_blue != blue || state_.color_clear_alpha != alpha) {
268 state_.color_clear_red = red; 268 state_.color_clear_red = red;
269 state_.color_clear_green = green; 269 state_.color_clear_green = green;
270 state_.color_clear_blue = blue; 270 state_.color_clear_blue = blue;
271 state_.color_clear_alpha = alpha; 271 state_.color_clear_alpha = alpha;
272 glClearColor(red, green, blue, alpha); 272 glClearColor(red, green, blue, alpha);
273 } 273 }
274 return error::kNoError; 274 return error::kNoError;
275 } 275 }
276 276
277 error::Error GLES2DecoderImpl::HandleClearDepthf( 277 error::Error GLES2DecoderImpl::HandleClearDepthf(
278 uint32 immediate_data_size, 278 uint32_t immediate_data_size,
279 const gles2::cmds::ClearDepthf& c) { 279 const gles2::cmds::ClearDepthf& c) {
280 GLclampf depth = static_cast<GLclampf>(c.depth); 280 GLclampf depth = static_cast<GLclampf>(c.depth);
281 if (state_.depth_clear != depth) { 281 if (state_.depth_clear != depth) {
282 state_.depth_clear = depth; 282 state_.depth_clear = depth;
283 glClearDepth(depth); 283 glClearDepth(depth);
284 } 284 }
285 return error::kNoError; 285 return error::kNoError;
286 } 286 }
287 287
288 error::Error GLES2DecoderImpl::HandleClearStencil( 288 error::Error GLES2DecoderImpl::HandleClearStencil(
289 uint32 immediate_data_size, 289 uint32_t immediate_data_size,
290 const gles2::cmds::ClearStencil& c) { 290 const gles2::cmds::ClearStencil& c) {
291 GLint s = static_cast<GLint>(c.s); 291 GLint s = static_cast<GLint>(c.s);
292 if (state_.stencil_clear != s) { 292 if (state_.stencil_clear != s) {
293 state_.stencil_clear = s; 293 state_.stencil_clear = s;
294 glClearStencil(s); 294 glClearStencil(s);
295 } 295 }
296 return error::kNoError; 296 return error::kNoError;
297 } 297 }
298 298
299 error::Error GLES2DecoderImpl::HandleColorMask( 299 error::Error GLES2DecoderImpl::HandleColorMask(
300 uint32 immediate_data_size, 300 uint32_t immediate_data_size,
301 const gles2::cmds::ColorMask& c) { 301 const gles2::cmds::ColorMask& c) {
302 GLboolean red = static_cast<GLboolean>(c.red); 302 GLboolean red = static_cast<GLboolean>(c.red);
303 GLboolean green = static_cast<GLboolean>(c.green); 303 GLboolean green = static_cast<GLboolean>(c.green);
304 GLboolean blue = static_cast<GLboolean>(c.blue); 304 GLboolean blue = static_cast<GLboolean>(c.blue);
305 GLboolean alpha = static_cast<GLboolean>(c.alpha); 305 GLboolean alpha = static_cast<GLboolean>(c.alpha);
306 if (state_.color_mask_red != red || state_.color_mask_green != green || 306 if (state_.color_mask_red != red || state_.color_mask_green != green ||
307 state_.color_mask_blue != blue || state_.color_mask_alpha != alpha) { 307 state_.color_mask_blue != blue || state_.color_mask_alpha != alpha) {
308 state_.color_mask_red = red; 308 state_.color_mask_red = red;
309 state_.color_mask_green = green; 309 state_.color_mask_green = green;
310 state_.color_mask_blue = blue; 310 state_.color_mask_blue = blue;
311 state_.color_mask_alpha = alpha; 311 state_.color_mask_alpha = alpha;
312 framebuffer_state_.clear_state_dirty = true; 312 framebuffer_state_.clear_state_dirty = true;
313 } 313 }
314 return error::kNoError; 314 return error::kNoError;
315 } 315 }
316 316
317 error::Error GLES2DecoderImpl::HandleCompileShader( 317 error::Error GLES2DecoderImpl::HandleCompileShader(
318 uint32 immediate_data_size, 318 uint32_t immediate_data_size,
319 const gles2::cmds::CompileShader& c) { 319 const gles2::cmds::CompileShader& c) {
320 GLuint shader = c.shader; 320 GLuint shader = c.shader;
321 DoCompileShader(shader); 321 DoCompileShader(shader);
322 return error::kNoError; 322 return error::kNoError;
323 } 323 }
324 324
325 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D( 325 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D(
326 uint32 immediate_data_size, 326 uint32_t immediate_data_size,
327 const gles2::cmds::CompressedTexSubImage2D& c) { 327 const gles2::cmds::CompressedTexSubImage2D& c) {
328 GLenum target = static_cast<GLenum>(c.target); 328 GLenum target = static_cast<GLenum>(c.target);
329 GLint level = static_cast<GLint>(c.level); 329 GLint level = static_cast<GLint>(c.level);
330 GLint xoffset = static_cast<GLint>(c.xoffset); 330 GLint xoffset = static_cast<GLint>(c.xoffset);
331 GLint yoffset = static_cast<GLint>(c.yoffset); 331 GLint yoffset = static_cast<GLint>(c.yoffset);
332 GLsizei width = static_cast<GLsizei>(c.width); 332 GLsizei width = static_cast<GLsizei>(c.width);
333 GLsizei height = static_cast<GLsizei>(c.height); 333 GLsizei height = static_cast<GLsizei>(c.height);
334 GLenum format = static_cast<GLenum>(c.format); 334 GLenum format = static_cast<GLenum>(c.format);
335 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); 335 GLsizei imageSize = static_cast<GLsizei>(c.imageSize);
336 uint32 data_size = imageSize; 336 uint32_t data_size = imageSize;
337 const void* data = GetSharedMemoryAs<const void*>( 337 const void* data = GetSharedMemoryAs<const void*>(
338 c.data_shm_id, c.data_shm_offset, data_size); 338 c.data_shm_id, c.data_shm_offset, data_size);
339 if (!validators_->texture_target.IsValid(target)) { 339 if (!validators_->texture_target.IsValid(target)) {
340 LOCAL_SET_GL_ERROR_INVALID_ENUM( 340 LOCAL_SET_GL_ERROR_INVALID_ENUM(
341 "glCompressedTexSubImage2D", target, "target"); 341 "glCompressedTexSubImage2D", target, "target");
342 return error::kNoError; 342 return error::kNoError;
343 } 343 }
344 if (width < 0) { 344 if (width < 0) {
345 LOCAL_SET_GL_ERROR( 345 LOCAL_SET_GL_ERROR(
346 GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0"); 346 GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0");
(...skipping 16 matching lines...) Expand all
363 } 363 }
364 if (data == NULL) { 364 if (data == NULL) {
365 return error::kOutOfBounds; 365 return error::kOutOfBounds;
366 } 366 }
367 DoCompressedTexSubImage2D( 367 DoCompressedTexSubImage2D(
368 target, level, xoffset, yoffset, width, height, format, imageSize, data); 368 target, level, xoffset, yoffset, width, height, format, imageSize, data);
369 return error::kNoError; 369 return error::kNoError;
370 } 370 }
371 371
372 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( 372 error::Error GLES2DecoderImpl::HandleCopyTexImage2D(
373 uint32 immediate_data_size, 373 uint32_t immediate_data_size,
374 const gles2::cmds::CopyTexImage2D& c) { 374 const gles2::cmds::CopyTexImage2D& c) {
375 error::Error error; 375 error::Error error;
376 error = WillAccessBoundFramebufferForRead(); 376 error = WillAccessBoundFramebufferForRead();
377 if (error != error::kNoError) 377 if (error != error::kNoError)
378 return error; 378 return error;
379 GLenum target = static_cast<GLenum>(c.target); 379 GLenum target = static_cast<GLenum>(c.target);
380 GLint level = static_cast<GLint>(c.level); 380 GLint level = static_cast<GLint>(c.level);
381 GLenum internalformat = static_cast<GLenum>(c.internalformat); 381 GLenum internalformat = static_cast<GLenum>(c.internalformat);
382 GLint x = static_cast<GLint>(c.x); 382 GLint x = static_cast<GLint>(c.x);
383 GLint y = static_cast<GLint>(c.y); 383 GLint y = static_cast<GLint>(c.y);
(...skipping 20 matching lines...) Expand all
404 if (!validators_->texture_border.IsValid(border)) { 404 if (!validators_->texture_border.IsValid(border)) {
405 LOCAL_SET_GL_ERROR( 405 LOCAL_SET_GL_ERROR(
406 GL_INVALID_VALUE, "glCopyTexImage2D", "border GL_INVALID_VALUE"); 406 GL_INVALID_VALUE, "glCopyTexImage2D", "border GL_INVALID_VALUE");
407 return error::kNoError; 407 return error::kNoError;
408 } 408 }
409 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border); 409 DoCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
410 return error::kNoError; 410 return error::kNoError;
411 } 411 }
412 412
413 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D( 413 error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D(
414 uint32 immediate_data_size, 414 uint32_t immediate_data_size,
415 const gles2::cmds::CopyTexSubImage2D& c) { 415 const gles2::cmds::CopyTexSubImage2D& c) {
416 error::Error error; 416 error::Error error;
417 error = WillAccessBoundFramebufferForRead(); 417 error = WillAccessBoundFramebufferForRead();
418 if (error != error::kNoError) 418 if (error != error::kNoError)
419 return error; 419 return error;
420 GLenum target = static_cast<GLenum>(c.target); 420 GLenum target = static_cast<GLenum>(c.target);
421 GLint level = static_cast<GLint>(c.level); 421 GLint level = static_cast<GLint>(c.level);
422 GLint xoffset = static_cast<GLint>(c.xoffset); 422 GLint xoffset = static_cast<GLint>(c.xoffset);
423 GLint yoffset = static_cast<GLint>(c.yoffset); 423 GLint yoffset = static_cast<GLint>(c.yoffset);
424 GLint x = static_cast<GLint>(c.x); 424 GLint x = static_cast<GLint>(c.x);
(...skipping 10 matching lines...) Expand all
435 } 435 }
436 if (height < 0) { 436 if (height < 0) {
437 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); 437 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0");
438 return error::kNoError; 438 return error::kNoError;
439 } 439 }
440 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); 440 DoCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
441 return error::kNoError; 441 return error::kNoError;
442 } 442 }
443 443
444 error::Error GLES2DecoderImpl::HandleCreateProgram( 444 error::Error GLES2DecoderImpl::HandleCreateProgram(
445 uint32 immediate_data_size, 445 uint32_t immediate_data_size,
446 const gles2::cmds::CreateProgram& c) { 446 const gles2::cmds::CreateProgram& c) {
447 uint32 client_id = c.client_id; 447 uint32_t client_id = c.client_id;
448 if (!CreateProgramHelper(client_id)) { 448 if (!CreateProgramHelper(client_id)) {
449 return error::kInvalidArguments; 449 return error::kInvalidArguments;
450 } 450 }
451 return error::kNoError; 451 return error::kNoError;
452 } 452 }
453 453
454 error::Error GLES2DecoderImpl::HandleCreateShader( 454 error::Error GLES2DecoderImpl::HandleCreateShader(
455 uint32 immediate_data_size, 455 uint32_t immediate_data_size,
456 const gles2::cmds::CreateShader& c) { 456 const gles2::cmds::CreateShader& c) {
457 GLenum type = static_cast<GLenum>(c.type); 457 GLenum type = static_cast<GLenum>(c.type);
458 if (!validators_->shader_type.IsValid(type)) { 458 if (!validators_->shader_type.IsValid(type)) {
459 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCreateShader", type, "type"); 459 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCreateShader", type, "type");
460 return error::kNoError; 460 return error::kNoError;
461 } 461 }
462 uint32 client_id = c.client_id; 462 uint32_t client_id = c.client_id;
463 if (!CreateShaderHelper(type, client_id)) { 463 if (!CreateShaderHelper(type, client_id)) {
464 return error::kInvalidArguments; 464 return error::kInvalidArguments;
465 } 465 }
466 return error::kNoError; 466 return error::kNoError;
467 } 467 }
468 468
469 error::Error GLES2DecoderImpl::HandleCullFace(uint32 immediate_data_size, 469 error::Error GLES2DecoderImpl::HandleCullFace(uint32_t immediate_data_size,
470 const gles2::cmds::CullFace& c) { 470 const gles2::cmds::CullFace& c) {
471 GLenum mode = static_cast<GLenum>(c.mode); 471 GLenum mode = static_cast<GLenum>(c.mode);
472 if (!validators_->face_type.IsValid(mode)) { 472 if (!validators_->face_type.IsValid(mode)) {
473 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCullFace", mode, "mode"); 473 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCullFace", mode, "mode");
474 return error::kNoError; 474 return error::kNoError;
475 } 475 }
476 if (state_.cull_mode != mode) { 476 if (state_.cull_mode != mode) {
477 state_.cull_mode = mode; 477 state_.cull_mode = mode;
478 glCullFace(mode); 478 glCullFace(mode);
479 } 479 }
480 return error::kNoError; 480 return error::kNoError;
481 } 481 }
482 482
483 error::Error GLES2DecoderImpl::HandleDeleteBuffers( 483 error::Error GLES2DecoderImpl::HandleDeleteBuffers(
484 uint32 immediate_data_size, 484 uint32_t immediate_data_size,
485 const gles2::cmds::DeleteBuffers& c) { 485 const gles2::cmds::DeleteBuffers& c) {
486 GLsizei n = static_cast<GLsizei>(c.n); 486 GLsizei n = static_cast<GLsizei>(c.n);
487 uint32 data_size; 487 uint32_t data_size;
488 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 488 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
489 return error::kOutOfBounds; 489 return error::kOutOfBounds;
490 } 490 }
491 const GLuint* buffers = GetSharedMemoryAs<const GLuint*>( 491 const GLuint* buffers = GetSharedMemoryAs<const GLuint*>(
492 c.buffers_shm_id, c.buffers_shm_offset, data_size); 492 c.buffers_shm_id, c.buffers_shm_offset, data_size);
493 if (buffers == NULL) { 493 if (buffers == NULL) {
494 return error::kOutOfBounds; 494 return error::kOutOfBounds;
495 } 495 }
496 DeleteBuffersHelper(n, buffers); 496 DeleteBuffersHelper(n, buffers);
497 return error::kNoError; 497 return error::kNoError;
498 } 498 }
499 499
500 error::Error GLES2DecoderImpl::HandleDeleteBuffersImmediate( 500 error::Error GLES2DecoderImpl::HandleDeleteBuffersImmediate(
501 uint32 immediate_data_size, 501 uint32_t immediate_data_size,
502 const gles2::cmds::DeleteBuffersImmediate& c) { 502 const gles2::cmds::DeleteBuffersImmediate& c) {
503 GLsizei n = static_cast<GLsizei>(c.n); 503 GLsizei n = static_cast<GLsizei>(c.n);
504 uint32 data_size; 504 uint32_t data_size;
505 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 505 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
506 return error::kOutOfBounds; 506 return error::kOutOfBounds;
507 } 507 }
508 const GLuint* buffers = 508 const GLuint* buffers =
509 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 509 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
510 if (buffers == NULL) { 510 if (buffers == NULL) {
511 return error::kOutOfBounds; 511 return error::kOutOfBounds;
512 } 512 }
513 DeleteBuffersHelper(n, buffers); 513 DeleteBuffersHelper(n, buffers);
514 return error::kNoError; 514 return error::kNoError;
515 } 515 }
516 516
517 error::Error GLES2DecoderImpl::HandleDeleteFramebuffers( 517 error::Error GLES2DecoderImpl::HandleDeleteFramebuffers(
518 uint32 immediate_data_size, 518 uint32_t immediate_data_size,
519 const gles2::cmds::DeleteFramebuffers& c) { 519 const gles2::cmds::DeleteFramebuffers& c) {
520 GLsizei n = static_cast<GLsizei>(c.n); 520 GLsizei n = static_cast<GLsizei>(c.n);
521 uint32 data_size; 521 uint32_t data_size;
522 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 522 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
523 return error::kOutOfBounds; 523 return error::kOutOfBounds;
524 } 524 }
525 const GLuint* framebuffers = GetSharedMemoryAs<const GLuint*>( 525 const GLuint* framebuffers = GetSharedMemoryAs<const GLuint*>(
526 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); 526 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size);
527 if (framebuffers == NULL) { 527 if (framebuffers == NULL) {
528 return error::kOutOfBounds; 528 return error::kOutOfBounds;
529 } 529 }
530 DeleteFramebuffersHelper(n, framebuffers); 530 DeleteFramebuffersHelper(n, framebuffers);
531 return error::kNoError; 531 return error::kNoError;
532 } 532 }
533 533
534 error::Error GLES2DecoderImpl::HandleDeleteFramebuffersImmediate( 534 error::Error GLES2DecoderImpl::HandleDeleteFramebuffersImmediate(
535 uint32 immediate_data_size, 535 uint32_t immediate_data_size,
536 const gles2::cmds::DeleteFramebuffersImmediate& c) { 536 const gles2::cmds::DeleteFramebuffersImmediate& c) {
537 GLsizei n = static_cast<GLsizei>(c.n); 537 GLsizei n = static_cast<GLsizei>(c.n);
538 uint32 data_size; 538 uint32_t data_size;
539 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 539 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
540 return error::kOutOfBounds; 540 return error::kOutOfBounds;
541 } 541 }
542 const GLuint* framebuffers = 542 const GLuint* framebuffers =
543 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 543 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
544 if (framebuffers == NULL) { 544 if (framebuffers == NULL) {
545 return error::kOutOfBounds; 545 return error::kOutOfBounds;
546 } 546 }
547 DeleteFramebuffersHelper(n, framebuffers); 547 DeleteFramebuffersHelper(n, framebuffers);
548 return error::kNoError; 548 return error::kNoError;
549 } 549 }
550 550
551 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffers( 551 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffers(
552 uint32 immediate_data_size, 552 uint32_t immediate_data_size,
553 const gles2::cmds::DeleteRenderbuffers& c) { 553 const gles2::cmds::DeleteRenderbuffers& c) {
554 GLsizei n = static_cast<GLsizei>(c.n); 554 GLsizei n = static_cast<GLsizei>(c.n);
555 uint32 data_size; 555 uint32_t data_size;
556 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 556 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
557 return error::kOutOfBounds; 557 return error::kOutOfBounds;
558 } 558 }
559 const GLuint* renderbuffers = GetSharedMemoryAs<const GLuint*>( 559 const GLuint* renderbuffers = GetSharedMemoryAs<const GLuint*>(
560 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); 560 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size);
561 if (renderbuffers == NULL) { 561 if (renderbuffers == NULL) {
562 return error::kOutOfBounds; 562 return error::kOutOfBounds;
563 } 563 }
564 DeleteRenderbuffersHelper(n, renderbuffers); 564 DeleteRenderbuffersHelper(n, renderbuffers);
565 return error::kNoError; 565 return error::kNoError;
566 } 566 }
567 567
568 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffersImmediate( 568 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffersImmediate(
569 uint32 immediate_data_size, 569 uint32_t immediate_data_size,
570 const gles2::cmds::DeleteRenderbuffersImmediate& c) { 570 const gles2::cmds::DeleteRenderbuffersImmediate& c) {
571 GLsizei n = static_cast<GLsizei>(c.n); 571 GLsizei n = static_cast<GLsizei>(c.n);
572 uint32 data_size; 572 uint32_t data_size;
573 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 573 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
574 return error::kOutOfBounds; 574 return error::kOutOfBounds;
575 } 575 }
576 const GLuint* renderbuffers = 576 const GLuint* renderbuffers =
577 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 577 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
578 if (renderbuffers == NULL) { 578 if (renderbuffers == NULL) {
579 return error::kOutOfBounds; 579 return error::kOutOfBounds;
580 } 580 }
581 DeleteRenderbuffersHelper(n, renderbuffers); 581 DeleteRenderbuffersHelper(n, renderbuffers);
582 return error::kNoError; 582 return error::kNoError;
583 } 583 }
584 584
585 error::Error GLES2DecoderImpl::HandleDeleteTextures( 585 error::Error GLES2DecoderImpl::HandleDeleteTextures(
586 uint32 immediate_data_size, 586 uint32_t immediate_data_size,
587 const gles2::cmds::DeleteTextures& c) { 587 const gles2::cmds::DeleteTextures& c) {
588 GLsizei n = static_cast<GLsizei>(c.n); 588 GLsizei n = static_cast<GLsizei>(c.n);
589 uint32 data_size; 589 uint32_t data_size;
590 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 590 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
591 return error::kOutOfBounds; 591 return error::kOutOfBounds;
592 } 592 }
593 const GLuint* textures = GetSharedMemoryAs<const GLuint*>( 593 const GLuint* textures = GetSharedMemoryAs<const GLuint*>(
594 c.textures_shm_id, c.textures_shm_offset, data_size); 594 c.textures_shm_id, c.textures_shm_offset, data_size);
595 if (textures == NULL) { 595 if (textures == NULL) {
596 return error::kOutOfBounds; 596 return error::kOutOfBounds;
597 } 597 }
598 DeleteTexturesHelper(n, textures); 598 DeleteTexturesHelper(n, textures);
599 return error::kNoError; 599 return error::kNoError;
600 } 600 }
601 601
602 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate( 602 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate(
603 uint32 immediate_data_size, 603 uint32_t immediate_data_size,
604 const gles2::cmds::DeleteTexturesImmediate& c) { 604 const gles2::cmds::DeleteTexturesImmediate& c) {
605 GLsizei n = static_cast<GLsizei>(c.n); 605 GLsizei n = static_cast<GLsizei>(c.n);
606 uint32 data_size; 606 uint32_t data_size;
607 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 607 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
608 return error::kOutOfBounds; 608 return error::kOutOfBounds;
609 } 609 }
610 const GLuint* textures = 610 const GLuint* textures =
611 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 611 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
612 if (textures == NULL) { 612 if (textures == NULL) {
613 return error::kOutOfBounds; 613 return error::kOutOfBounds;
614 } 614 }
615 DeleteTexturesHelper(n, textures); 615 DeleteTexturesHelper(n, textures);
616 return error::kNoError; 616 return error::kNoError;
617 } 617 }
618 618
619 error::Error GLES2DecoderImpl::HandleDepthFunc( 619 error::Error GLES2DecoderImpl::HandleDepthFunc(
620 uint32 immediate_data_size, 620 uint32_t immediate_data_size,
621 const gles2::cmds::DepthFunc& c) { 621 const gles2::cmds::DepthFunc& c) {
622 GLenum func = static_cast<GLenum>(c.func); 622 GLenum func = static_cast<GLenum>(c.func);
623 if (!validators_->cmp_function.IsValid(func)) { 623 if (!validators_->cmp_function.IsValid(func)) {
624 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDepthFunc", func, "func"); 624 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDepthFunc", func, "func");
625 return error::kNoError; 625 return error::kNoError;
626 } 626 }
627 if (state_.depth_func != func) { 627 if (state_.depth_func != func) {
628 state_.depth_func = func; 628 state_.depth_func = func;
629 glDepthFunc(func); 629 glDepthFunc(func);
630 } 630 }
631 return error::kNoError; 631 return error::kNoError;
632 } 632 }
633 633
634 error::Error GLES2DecoderImpl::HandleDepthMask( 634 error::Error GLES2DecoderImpl::HandleDepthMask(
635 uint32 immediate_data_size, 635 uint32_t immediate_data_size,
636 const gles2::cmds::DepthMask& c) { 636 const gles2::cmds::DepthMask& c) {
637 GLboolean flag = static_cast<GLboolean>(c.flag); 637 GLboolean flag = static_cast<GLboolean>(c.flag);
638 if (state_.depth_mask != flag) { 638 if (state_.depth_mask != flag) {
639 state_.depth_mask = flag; 639 state_.depth_mask = flag;
640 framebuffer_state_.clear_state_dirty = true; 640 framebuffer_state_.clear_state_dirty = true;
641 } 641 }
642 return error::kNoError; 642 return error::kNoError;
643 } 643 }
644 644
645 error::Error GLES2DecoderImpl::HandleDepthRangef( 645 error::Error GLES2DecoderImpl::HandleDepthRangef(
646 uint32 immediate_data_size, 646 uint32_t immediate_data_size,
647 const gles2::cmds::DepthRangef& c) { 647 const gles2::cmds::DepthRangef& c) {
648 GLclampf zNear = static_cast<GLclampf>(c.zNear); 648 GLclampf zNear = static_cast<GLclampf>(c.zNear);
649 GLclampf zFar = static_cast<GLclampf>(c.zFar); 649 GLclampf zFar = static_cast<GLclampf>(c.zFar);
650 DoDepthRangef(zNear, zFar); 650 DoDepthRangef(zNear, zFar);
651 return error::kNoError; 651 return error::kNoError;
652 } 652 }
653 653
654 error::Error GLES2DecoderImpl::HandleDetachShader( 654 error::Error GLES2DecoderImpl::HandleDetachShader(
655 uint32 immediate_data_size, 655 uint32_t immediate_data_size,
656 const gles2::cmds::DetachShader& c) { 656 const gles2::cmds::DetachShader& c) {
657 GLuint program = c.program; 657 GLuint program = c.program;
658 GLuint shader = c.shader; 658 GLuint shader = c.shader;
659 DoDetachShader(program, shader); 659 DoDetachShader(program, shader);
660 return error::kNoError; 660 return error::kNoError;
661 } 661 }
662 662
663 error::Error GLES2DecoderImpl::HandleDisable(uint32 immediate_data_size, 663 error::Error GLES2DecoderImpl::HandleDisable(uint32_t immediate_data_size,
664 const gles2::cmds::Disable& c) { 664 const gles2::cmds::Disable& c) {
665 GLenum cap = static_cast<GLenum>(c.cap); 665 GLenum cap = static_cast<GLenum>(c.cap);
666 if (!validators_->capability.IsValid(cap)) { 666 if (!validators_->capability.IsValid(cap)) {
667 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDisable", cap, "cap"); 667 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDisable", cap, "cap");
668 return error::kNoError; 668 return error::kNoError;
669 } 669 }
670 DoDisable(cap); 670 DoDisable(cap);
671 return error::kNoError; 671 return error::kNoError;
672 } 672 }
673 673
674 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray( 674 error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray(
675 uint32 immediate_data_size, 675 uint32_t immediate_data_size,
676 const gles2::cmds::DisableVertexAttribArray& c) { 676 const gles2::cmds::DisableVertexAttribArray& c) {
677 GLuint index = static_cast<GLuint>(c.index); 677 GLuint index = static_cast<GLuint>(c.index);
678 DoDisableVertexAttribArray(index); 678 DoDisableVertexAttribArray(index);
679 return error::kNoError; 679 return error::kNoError;
680 } 680 }
681 681
682 error::Error GLES2DecoderImpl::HandleEnable(uint32 immediate_data_size, 682 error::Error GLES2DecoderImpl::HandleEnable(uint32_t immediate_data_size,
683 const gles2::cmds::Enable& c) { 683 const gles2::cmds::Enable& c) {
684 GLenum cap = static_cast<GLenum>(c.cap); 684 GLenum cap = static_cast<GLenum>(c.cap);
685 if (!validators_->capability.IsValid(cap)) { 685 if (!validators_->capability.IsValid(cap)) {
686 LOCAL_SET_GL_ERROR_INVALID_ENUM("glEnable", cap, "cap"); 686 LOCAL_SET_GL_ERROR_INVALID_ENUM("glEnable", cap, "cap");
687 return error::kNoError; 687 return error::kNoError;
688 } 688 }
689 DoEnable(cap); 689 DoEnable(cap);
690 return error::kNoError; 690 return error::kNoError;
691 } 691 }
692 692
693 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray( 693 error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray(
694 uint32 immediate_data_size, 694 uint32_t immediate_data_size,
695 const gles2::cmds::EnableVertexAttribArray& c) { 695 const gles2::cmds::EnableVertexAttribArray& c) {
696 GLuint index = static_cast<GLuint>(c.index); 696 GLuint index = static_cast<GLuint>(c.index);
697 DoEnableVertexAttribArray(index); 697 DoEnableVertexAttribArray(index);
698 return error::kNoError; 698 return error::kNoError;
699 } 699 }
700 700
701 error::Error GLES2DecoderImpl::HandleFinish(uint32 immediate_data_size, 701 error::Error GLES2DecoderImpl::HandleFinish(uint32_t immediate_data_size,
702 const gles2::cmds::Finish& c) { 702 const gles2::cmds::Finish& c) {
703 error::Error error; 703 error::Error error;
704 error = WillAccessBoundFramebufferForRead(); 704 error = WillAccessBoundFramebufferForRead();
705 if (error != error::kNoError) 705 if (error != error::kNoError)
706 return error; 706 return error;
707 DoFinish(); 707 DoFinish();
708 return error::kNoError; 708 return error::kNoError;
709 } 709 }
710 710
711 error::Error GLES2DecoderImpl::HandleFlush(uint32 immediate_data_size, 711 error::Error GLES2DecoderImpl::HandleFlush(uint32_t immediate_data_size,
712 const gles2::cmds::Flush& c) { 712 const gles2::cmds::Flush& c) {
713 DoFlush(); 713 DoFlush();
714 return error::kNoError; 714 return error::kNoError;
715 } 715 }
716 716
717 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( 717 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer(
718 uint32 immediate_data_size, 718 uint32_t immediate_data_size,
719 const gles2::cmds::FramebufferRenderbuffer& c) { 719 const gles2::cmds::FramebufferRenderbuffer& c) {
720 GLenum target = static_cast<GLenum>(c.target); 720 GLenum target = static_cast<GLenum>(c.target);
721 GLenum attachment = static_cast<GLenum>(c.attachment); 721 GLenum attachment = static_cast<GLenum>(c.attachment);
722 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); 722 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget);
723 GLuint renderbuffer = c.renderbuffer; 723 GLuint renderbuffer = c.renderbuffer;
724 if (!validators_->frame_buffer_target.IsValid(target)) { 724 if (!validators_->frame_buffer_target.IsValid(target)) {
725 LOCAL_SET_GL_ERROR_INVALID_ENUM( 725 LOCAL_SET_GL_ERROR_INVALID_ENUM(
726 "glFramebufferRenderbuffer", target, "target"); 726 "glFramebufferRenderbuffer", target, "target");
727 return error::kNoError; 727 return error::kNoError;
728 } 728 }
729 if (!validators_->attachment.IsValid(attachment)) { 729 if (!validators_->attachment.IsValid(attachment)) {
730 LOCAL_SET_GL_ERROR_INVALID_ENUM( 730 LOCAL_SET_GL_ERROR_INVALID_ENUM(
731 "glFramebufferRenderbuffer", attachment, "attachment"); 731 "glFramebufferRenderbuffer", attachment, "attachment");
732 return error::kNoError; 732 return error::kNoError;
733 } 733 }
734 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { 734 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) {
735 LOCAL_SET_GL_ERROR_INVALID_ENUM( 735 LOCAL_SET_GL_ERROR_INVALID_ENUM(
736 "glFramebufferRenderbuffer", renderbuffertarget, "renderbuffertarget"); 736 "glFramebufferRenderbuffer", renderbuffertarget, "renderbuffertarget");
737 return error::kNoError; 737 return error::kNoError;
738 } 738 }
739 DoFramebufferRenderbuffer( 739 DoFramebufferRenderbuffer(
740 target, attachment, renderbuffertarget, renderbuffer); 740 target, attachment, renderbuffertarget, renderbuffer);
741 return error::kNoError; 741 return error::kNoError;
742 } 742 }
743 743
744 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( 744 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D(
745 uint32 immediate_data_size, 745 uint32_t immediate_data_size,
746 const gles2::cmds::FramebufferTexture2D& c) { 746 const gles2::cmds::FramebufferTexture2D& c) {
747 GLenum target = static_cast<GLenum>(c.target); 747 GLenum target = static_cast<GLenum>(c.target);
748 GLenum attachment = static_cast<GLenum>(c.attachment); 748 GLenum attachment = static_cast<GLenum>(c.attachment);
749 GLenum textarget = static_cast<GLenum>(c.textarget); 749 GLenum textarget = static_cast<GLenum>(c.textarget);
750 GLuint texture = c.texture; 750 GLuint texture = c.texture;
751 GLint level = static_cast<GLint>(c.level); 751 GLint level = static_cast<GLint>(c.level);
752 if (!validators_->frame_buffer_target.IsValid(target)) { 752 if (!validators_->frame_buffer_target.IsValid(target)) {
753 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", target, "target"); 753 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", target, "target");
754 return error::kNoError; 754 return error::kNoError;
755 } 755 }
(...skipping 10 matching lines...) Expand all
766 if (!validators_->zero_only.IsValid(level)) { 766 if (!validators_->zero_only.IsValid(level)) {
767 LOCAL_SET_GL_ERROR( 767 LOCAL_SET_GL_ERROR(
768 GL_INVALID_VALUE, "glFramebufferTexture2D", "level GL_INVALID_VALUE"); 768 GL_INVALID_VALUE, "glFramebufferTexture2D", "level GL_INVALID_VALUE");
769 return error::kNoError; 769 return error::kNoError;
770 } 770 }
771 DoFramebufferTexture2D(target, attachment, textarget, texture, level); 771 DoFramebufferTexture2D(target, attachment, textarget, texture, level);
772 return error::kNoError; 772 return error::kNoError;
773 } 773 }
774 774
775 error::Error GLES2DecoderImpl::HandleFrontFace( 775 error::Error GLES2DecoderImpl::HandleFrontFace(
776 uint32 immediate_data_size, 776 uint32_t immediate_data_size,
777 const gles2::cmds::FrontFace& c) { 777 const gles2::cmds::FrontFace& c) {
778 GLenum mode = static_cast<GLenum>(c.mode); 778 GLenum mode = static_cast<GLenum>(c.mode);
779 if (!validators_->face_mode.IsValid(mode)) { 779 if (!validators_->face_mode.IsValid(mode)) {
780 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFrontFace", mode, "mode"); 780 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFrontFace", mode, "mode");
781 return error::kNoError; 781 return error::kNoError;
782 } 782 }
783 if (state_.front_face != mode) { 783 if (state_.front_face != mode) {
784 state_.front_face = mode; 784 state_.front_face = mode;
785 glFrontFace(mode); 785 glFrontFace(mode);
786 } 786 }
787 return error::kNoError; 787 return error::kNoError;
788 } 788 }
789 789
790 error::Error GLES2DecoderImpl::HandleGenBuffers( 790 error::Error GLES2DecoderImpl::HandleGenBuffers(
791 uint32 immediate_data_size, 791 uint32_t immediate_data_size,
792 const gles2::cmds::GenBuffers& c) { 792 const gles2::cmds::GenBuffers& c) {
793 GLsizei n = static_cast<GLsizei>(c.n); 793 GLsizei n = static_cast<GLsizei>(c.n);
794 uint32 data_size; 794 uint32_t data_size;
795 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 795 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
796 return error::kOutOfBounds; 796 return error::kOutOfBounds;
797 } 797 }
798 GLuint* buffers = GetSharedMemoryAs<GLuint*>( 798 GLuint* buffers = GetSharedMemoryAs<GLuint*>(
799 c.buffers_shm_id, c.buffers_shm_offset, data_size); 799 c.buffers_shm_id, c.buffers_shm_offset, data_size);
800 if (buffers == NULL) { 800 if (buffers == NULL) {
801 return error::kOutOfBounds; 801 return error::kOutOfBounds;
802 } 802 }
803 if (!GenBuffersHelper(n, buffers)) { 803 if (!GenBuffersHelper(n, buffers)) {
804 return error::kInvalidArguments; 804 return error::kInvalidArguments;
805 } 805 }
806 return error::kNoError; 806 return error::kNoError;
807 } 807 }
808 808
809 error::Error GLES2DecoderImpl::HandleGenBuffersImmediate( 809 error::Error GLES2DecoderImpl::HandleGenBuffersImmediate(
810 uint32 immediate_data_size, 810 uint32_t immediate_data_size,
811 const gles2::cmds::GenBuffersImmediate& c) { 811 const gles2::cmds::GenBuffersImmediate& c) {
812 GLsizei n = static_cast<GLsizei>(c.n); 812 GLsizei n = static_cast<GLsizei>(c.n);
813 uint32 data_size; 813 uint32_t data_size;
814 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 814 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
815 return error::kOutOfBounds; 815 return error::kOutOfBounds;
816 } 816 }
817 GLuint* buffers = 817 GLuint* buffers =
818 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 818 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
819 if (buffers == NULL) { 819 if (buffers == NULL) {
820 return error::kOutOfBounds; 820 return error::kOutOfBounds;
821 } 821 }
822 if (!GenBuffersHelper(n, buffers)) { 822 if (!GenBuffersHelper(n, buffers)) {
823 return error::kInvalidArguments; 823 return error::kInvalidArguments;
824 } 824 }
825 return error::kNoError; 825 return error::kNoError;
826 } 826 }
827 827
828 error::Error GLES2DecoderImpl::HandleGenerateMipmap( 828 error::Error GLES2DecoderImpl::HandleGenerateMipmap(
829 uint32 immediate_data_size, 829 uint32_t immediate_data_size,
830 const gles2::cmds::GenerateMipmap& c) { 830 const gles2::cmds::GenerateMipmap& c) {
831 GLenum target = static_cast<GLenum>(c.target); 831 GLenum target = static_cast<GLenum>(c.target);
832 if (!validators_->texture_bind_target.IsValid(target)) { 832 if (!validators_->texture_bind_target.IsValid(target)) {
833 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGenerateMipmap", target, "target"); 833 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGenerateMipmap", target, "target");
834 return error::kNoError; 834 return error::kNoError;
835 } 835 }
836 DoGenerateMipmap(target); 836 DoGenerateMipmap(target);
837 return error::kNoError; 837 return error::kNoError;
838 } 838 }
839 839
840 error::Error GLES2DecoderImpl::HandleGenFramebuffers( 840 error::Error GLES2DecoderImpl::HandleGenFramebuffers(
841 uint32 immediate_data_size, 841 uint32_t immediate_data_size,
842 const gles2::cmds::GenFramebuffers& c) { 842 const gles2::cmds::GenFramebuffers& c) {
843 GLsizei n = static_cast<GLsizei>(c.n); 843 GLsizei n = static_cast<GLsizei>(c.n);
844 uint32 data_size; 844 uint32_t data_size;
845 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 845 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
846 return error::kOutOfBounds; 846 return error::kOutOfBounds;
847 } 847 }
848 GLuint* framebuffers = GetSharedMemoryAs<GLuint*>( 848 GLuint* framebuffers = GetSharedMemoryAs<GLuint*>(
849 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); 849 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size);
850 if (framebuffers == NULL) { 850 if (framebuffers == NULL) {
851 return error::kOutOfBounds; 851 return error::kOutOfBounds;
852 } 852 }
853 if (!GenFramebuffersHelper(n, framebuffers)) { 853 if (!GenFramebuffersHelper(n, framebuffers)) {
854 return error::kInvalidArguments; 854 return error::kInvalidArguments;
855 } 855 }
856 return error::kNoError; 856 return error::kNoError;
857 } 857 }
858 858
859 error::Error GLES2DecoderImpl::HandleGenFramebuffersImmediate( 859 error::Error GLES2DecoderImpl::HandleGenFramebuffersImmediate(
860 uint32 immediate_data_size, 860 uint32_t immediate_data_size,
861 const gles2::cmds::GenFramebuffersImmediate& c) { 861 const gles2::cmds::GenFramebuffersImmediate& c) {
862 GLsizei n = static_cast<GLsizei>(c.n); 862 GLsizei n = static_cast<GLsizei>(c.n);
863 uint32 data_size; 863 uint32_t data_size;
864 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 864 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
865 return error::kOutOfBounds; 865 return error::kOutOfBounds;
866 } 866 }
867 GLuint* framebuffers = 867 GLuint* framebuffers =
868 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 868 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
869 if (framebuffers == NULL) { 869 if (framebuffers == NULL) {
870 return error::kOutOfBounds; 870 return error::kOutOfBounds;
871 } 871 }
872 if (!GenFramebuffersHelper(n, framebuffers)) { 872 if (!GenFramebuffersHelper(n, framebuffers)) {
873 return error::kInvalidArguments; 873 return error::kInvalidArguments;
874 } 874 }
875 return error::kNoError; 875 return error::kNoError;
876 } 876 }
877 877
878 error::Error GLES2DecoderImpl::HandleGenRenderbuffers( 878 error::Error GLES2DecoderImpl::HandleGenRenderbuffers(
879 uint32 immediate_data_size, 879 uint32_t immediate_data_size,
880 const gles2::cmds::GenRenderbuffers& c) { 880 const gles2::cmds::GenRenderbuffers& c) {
881 GLsizei n = static_cast<GLsizei>(c.n); 881 GLsizei n = static_cast<GLsizei>(c.n);
882 uint32 data_size; 882 uint32_t data_size;
883 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 883 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
884 return error::kOutOfBounds; 884 return error::kOutOfBounds;
885 } 885 }
886 GLuint* renderbuffers = GetSharedMemoryAs<GLuint*>( 886 GLuint* renderbuffers = GetSharedMemoryAs<GLuint*>(
887 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); 887 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size);
888 if (renderbuffers == NULL) { 888 if (renderbuffers == NULL) {
889 return error::kOutOfBounds; 889 return error::kOutOfBounds;
890 } 890 }
891 if (!GenRenderbuffersHelper(n, renderbuffers)) { 891 if (!GenRenderbuffersHelper(n, renderbuffers)) {
892 return error::kInvalidArguments; 892 return error::kInvalidArguments;
893 } 893 }
894 return error::kNoError; 894 return error::kNoError;
895 } 895 }
896 896
897 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate( 897 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate(
898 uint32 immediate_data_size, 898 uint32_t immediate_data_size,
899 const gles2::cmds::GenRenderbuffersImmediate& c) { 899 const gles2::cmds::GenRenderbuffersImmediate& c) {
900 GLsizei n = static_cast<GLsizei>(c.n); 900 GLsizei n = static_cast<GLsizei>(c.n);
901 uint32 data_size; 901 uint32_t data_size;
902 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 902 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
903 return error::kOutOfBounds; 903 return error::kOutOfBounds;
904 } 904 }
905 GLuint* renderbuffers = 905 GLuint* renderbuffers =
906 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 906 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
907 if (renderbuffers == NULL) { 907 if (renderbuffers == NULL) {
908 return error::kOutOfBounds; 908 return error::kOutOfBounds;
909 } 909 }
910 if (!GenRenderbuffersHelper(n, renderbuffers)) { 910 if (!GenRenderbuffersHelper(n, renderbuffers)) {
911 return error::kInvalidArguments; 911 return error::kInvalidArguments;
912 } 912 }
913 return error::kNoError; 913 return error::kNoError;
914 } 914 }
915 915
916 error::Error GLES2DecoderImpl::HandleGenTextures( 916 error::Error GLES2DecoderImpl::HandleGenTextures(
917 uint32 immediate_data_size, 917 uint32_t immediate_data_size,
918 const gles2::cmds::GenTextures& c) { 918 const gles2::cmds::GenTextures& c) {
919 GLsizei n = static_cast<GLsizei>(c.n); 919 GLsizei n = static_cast<GLsizei>(c.n);
920 uint32 data_size; 920 uint32_t data_size;
921 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 921 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
922 return error::kOutOfBounds; 922 return error::kOutOfBounds;
923 } 923 }
924 GLuint* textures = GetSharedMemoryAs<GLuint*>( 924 GLuint* textures = GetSharedMemoryAs<GLuint*>(
925 c.textures_shm_id, c.textures_shm_offset, data_size); 925 c.textures_shm_id, c.textures_shm_offset, data_size);
926 if (textures == NULL) { 926 if (textures == NULL) {
927 return error::kOutOfBounds; 927 return error::kOutOfBounds;
928 } 928 }
929 if (!GenTexturesHelper(n, textures)) { 929 if (!GenTexturesHelper(n, textures)) {
930 return error::kInvalidArguments; 930 return error::kInvalidArguments;
931 } 931 }
932 return error::kNoError; 932 return error::kNoError;
933 } 933 }
934 934
935 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( 935 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate(
936 uint32 immediate_data_size, 936 uint32_t immediate_data_size,
937 const gles2::cmds::GenTexturesImmediate& c) { 937 const gles2::cmds::GenTexturesImmediate& c) {
938 GLsizei n = static_cast<GLsizei>(c.n); 938 GLsizei n = static_cast<GLsizei>(c.n);
939 uint32 data_size; 939 uint32_t data_size;
940 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 940 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
941 return error::kOutOfBounds; 941 return error::kOutOfBounds;
942 } 942 }
943 GLuint* textures = 943 GLuint* textures =
944 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 944 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
945 if (textures == NULL) { 945 if (textures == NULL) {
946 return error::kOutOfBounds; 946 return error::kOutOfBounds;
947 } 947 }
948 if (!GenTexturesHelper(n, textures)) { 948 if (!GenTexturesHelper(n, textures)) {
949 return error::kInvalidArguments; 949 return error::kInvalidArguments;
950 } 950 }
951 return error::kNoError; 951 return error::kNoError;
952 } 952 }
953 953
954 error::Error GLES2DecoderImpl::HandleGetBooleanv( 954 error::Error GLES2DecoderImpl::HandleGetBooleanv(
955 uint32 immediate_data_size, 955 uint32_t immediate_data_size,
956 const gles2::cmds::GetBooleanv& c) { 956 const gles2::cmds::GetBooleanv& c) {
957 GLenum pname = static_cast<GLenum>(c.pname); 957 GLenum pname = static_cast<GLenum>(c.pname);
958 typedef cmds::GetBooleanv::Result Result; 958 typedef cmds::GetBooleanv::Result Result;
959 GLsizei num_values = 0; 959 GLsizei num_values = 0;
960 GetNumValuesReturnedForGLGet(pname, &num_values); 960 GetNumValuesReturnedForGLGet(pname, &num_values);
961 Result* result = GetSharedMemoryAs<Result*>( 961 Result* result = GetSharedMemoryAs<Result*>(
962 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 962 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
963 GLboolean* params = result ? result->GetData() : NULL; 963 GLboolean* params = result ? result->GetData() : NULL;
964 if (!validators_->g_l_state.IsValid(pname)) { 964 if (!validators_->g_l_state.IsValid(pname)) {
965 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBooleanv", pname, "pname"); 965 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBooleanv", pname, "pname");
(...skipping 11 matching lines...) Expand all
977 GLenum error = glGetError(); 977 GLenum error = glGetError();
978 if (error == GL_NO_ERROR) { 978 if (error == GL_NO_ERROR) {
979 result->SetNumResults(num_values); 979 result->SetNumResults(num_values);
980 } else { 980 } else {
981 LOCAL_SET_GL_ERROR(error, "GetBooleanv", ""); 981 LOCAL_SET_GL_ERROR(error, "GetBooleanv", "");
982 } 982 }
983 return error::kNoError; 983 return error::kNoError;
984 } 984 }
985 985
986 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv( 986 error::Error GLES2DecoderImpl::HandleGetBufferParameteriv(
987 uint32 immediate_data_size, 987 uint32_t immediate_data_size,
988 const gles2::cmds::GetBufferParameteriv& c) { 988 const gles2::cmds::GetBufferParameteriv& c) {
989 GLenum target = static_cast<GLenum>(c.target); 989 GLenum target = static_cast<GLenum>(c.target);
990 GLenum pname = static_cast<GLenum>(c.pname); 990 GLenum pname = static_cast<GLenum>(c.pname);
991 typedef cmds::GetBufferParameteriv::Result Result; 991 typedef cmds::GetBufferParameteriv::Result Result;
992 GLsizei num_values = 0; 992 GLsizei num_values = 0;
993 GetNumValuesReturnedForGLGet(pname, &num_values); 993 GetNumValuesReturnedForGLGet(pname, &num_values);
994 Result* result = GetSharedMemoryAs<Result*>( 994 Result* result = GetSharedMemoryAs<Result*>(
995 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 995 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
996 GLint* params = result ? result->GetData() : NULL; 996 GLint* params = result ? result->GetData() : NULL;
997 if (!validators_->buffer_target.IsValid(target)) { 997 if (!validators_->buffer_target.IsValid(target)) {
998 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteriv", target, "target"); 998 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteriv", target, "target");
999 return error::kNoError; 999 return error::kNoError;
1000 } 1000 }
1001 if (!validators_->buffer_parameter.IsValid(pname)) { 1001 if (!validators_->buffer_parameter.IsValid(pname)) {
1002 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteriv", pname, "pname"); 1002 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteriv", pname, "pname");
1003 return error::kNoError; 1003 return error::kNoError;
1004 } 1004 }
1005 if (params == NULL) { 1005 if (params == NULL) {
1006 return error::kOutOfBounds; 1006 return error::kOutOfBounds;
1007 } 1007 }
1008 // Check that the client initialized the result. 1008 // Check that the client initialized the result.
1009 if (result->size != 0) { 1009 if (result->size != 0) {
1010 return error::kInvalidArguments; 1010 return error::kInvalidArguments;
1011 } 1011 }
1012 DoGetBufferParameteriv(target, pname, params); 1012 DoGetBufferParameteriv(target, pname, params);
1013 result->SetNumResults(num_values); 1013 result->SetNumResults(num_values);
1014 return error::kNoError; 1014 return error::kNoError;
1015 } 1015 }
1016 error::Error GLES2DecoderImpl::HandleGetError(uint32 immediate_data_size, 1016 error::Error GLES2DecoderImpl::HandleGetError(uint32_t immediate_data_size,
1017 const gles2::cmds::GetError& c) { 1017 const gles2::cmds::GetError& c) {
1018 typedef cmds::GetError::Result Result; 1018 typedef cmds::GetError::Result Result;
1019 Result* result_dst = GetSharedMemoryAs<Result*>( 1019 Result* result_dst = GetSharedMemoryAs<Result*>(
1020 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1020 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1021 if (!result_dst) { 1021 if (!result_dst) {
1022 return error::kOutOfBounds; 1022 return error::kOutOfBounds;
1023 } 1023 }
1024 *result_dst = GetErrorState()->GetGLError(); 1024 *result_dst = GetErrorState()->GetGLError();
1025 return error::kNoError; 1025 return error::kNoError;
1026 } 1026 }
1027 1027
1028 error::Error GLES2DecoderImpl::HandleGetFloatv( 1028 error::Error GLES2DecoderImpl::HandleGetFloatv(
1029 uint32 immediate_data_size, 1029 uint32_t immediate_data_size,
1030 const gles2::cmds::GetFloatv& c) { 1030 const gles2::cmds::GetFloatv& c) {
1031 GLenum pname = static_cast<GLenum>(c.pname); 1031 GLenum pname = static_cast<GLenum>(c.pname);
1032 typedef cmds::GetFloatv::Result Result; 1032 typedef cmds::GetFloatv::Result Result;
1033 GLsizei num_values = 0; 1033 GLsizei num_values = 0;
1034 GetNumValuesReturnedForGLGet(pname, &num_values); 1034 GetNumValuesReturnedForGLGet(pname, &num_values);
1035 Result* result = GetSharedMemoryAs<Result*>( 1035 Result* result = GetSharedMemoryAs<Result*>(
1036 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1036 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1037 GLfloat* params = result ? result->GetData() : NULL; 1037 GLfloat* params = result ? result->GetData() : NULL;
1038 if (!validators_->g_l_state.IsValid(pname)) { 1038 if (!validators_->g_l_state.IsValid(pname)) {
1039 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFloatv", pname, "pname"); 1039 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFloatv", pname, "pname");
(...skipping 11 matching lines...) Expand all
1051 GLenum error = glGetError(); 1051 GLenum error = glGetError();
1052 if (error == GL_NO_ERROR) { 1052 if (error == GL_NO_ERROR) {
1053 result->SetNumResults(num_values); 1053 result->SetNumResults(num_values);
1054 } else { 1054 } else {
1055 LOCAL_SET_GL_ERROR(error, "GetFloatv", ""); 1055 LOCAL_SET_GL_ERROR(error, "GetFloatv", "");
1056 } 1056 }
1057 return error::kNoError; 1057 return error::kNoError;
1058 } 1058 }
1059 1059
1060 error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv( 1060 error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv(
1061 uint32 immediate_data_size, 1061 uint32_t immediate_data_size,
1062 const gles2::cmds::GetFramebufferAttachmentParameteriv& c) { 1062 const gles2::cmds::GetFramebufferAttachmentParameteriv& c) {
1063 GLenum target = static_cast<GLenum>(c.target); 1063 GLenum target = static_cast<GLenum>(c.target);
1064 GLenum attachment = static_cast<GLenum>(c.attachment); 1064 GLenum attachment = static_cast<GLenum>(c.attachment);
1065 GLenum pname = static_cast<GLenum>(c.pname); 1065 GLenum pname = static_cast<GLenum>(c.pname);
1066 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; 1066 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
1067 GLsizei num_values = 0; 1067 GLsizei num_values = 0;
1068 GetNumValuesReturnedForGLGet(pname, &num_values); 1068 GetNumValuesReturnedForGLGet(pname, &num_values);
1069 Result* result = GetSharedMemoryAs<Result*>( 1069 Result* result = GetSharedMemoryAs<Result*>(
1070 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1070 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1071 GLint* params = result ? result->GetData() : NULL; 1071 GLint* params = result ? result->GetData() : NULL;
(...skipping 24 matching lines...) Expand all
1096 GLenum error = glGetError(); 1096 GLenum error = glGetError();
1097 if (error == GL_NO_ERROR) { 1097 if (error == GL_NO_ERROR) {
1098 result->SetNumResults(num_values); 1098 result->SetNumResults(num_values);
1099 } else { 1099 } else {
1100 LOCAL_SET_GL_ERROR(error, "GetFramebufferAttachmentParameteriv", ""); 1100 LOCAL_SET_GL_ERROR(error, "GetFramebufferAttachmentParameteriv", "");
1101 } 1101 }
1102 return error::kNoError; 1102 return error::kNoError;
1103 } 1103 }
1104 1104
1105 error::Error GLES2DecoderImpl::HandleGetIntegerv( 1105 error::Error GLES2DecoderImpl::HandleGetIntegerv(
1106 uint32 immediate_data_size, 1106 uint32_t immediate_data_size,
1107 const gles2::cmds::GetIntegerv& c) { 1107 const gles2::cmds::GetIntegerv& c) {
1108 GLenum pname = static_cast<GLenum>(c.pname); 1108 GLenum pname = static_cast<GLenum>(c.pname);
1109 typedef cmds::GetIntegerv::Result Result; 1109 typedef cmds::GetIntegerv::Result Result;
1110 GLsizei num_values = 0; 1110 GLsizei num_values = 0;
1111 GetNumValuesReturnedForGLGet(pname, &num_values); 1111 GetNumValuesReturnedForGLGet(pname, &num_values);
1112 Result* result = GetSharedMemoryAs<Result*>( 1112 Result* result = GetSharedMemoryAs<Result*>(
1113 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1113 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1114 GLint* params = result ? result->GetData() : NULL; 1114 GLint* params = result ? result->GetData() : NULL;
1115 if (!validators_->g_l_state.IsValid(pname)) { 1115 if (!validators_->g_l_state.IsValid(pname)) {
1116 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetIntegerv", pname, "pname"); 1116 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetIntegerv", pname, "pname");
(...skipping 11 matching lines...) Expand all
1128 GLenum error = glGetError(); 1128 GLenum error = glGetError();
1129 if (error == GL_NO_ERROR) { 1129 if (error == GL_NO_ERROR) {
1130 result->SetNumResults(num_values); 1130 result->SetNumResults(num_values);
1131 } else { 1131 } else {
1132 LOCAL_SET_GL_ERROR(error, "GetIntegerv", ""); 1132 LOCAL_SET_GL_ERROR(error, "GetIntegerv", "");
1133 } 1133 }
1134 return error::kNoError; 1134 return error::kNoError;
1135 } 1135 }
1136 1136
1137 error::Error GLES2DecoderImpl::HandleGetProgramiv( 1137 error::Error GLES2DecoderImpl::HandleGetProgramiv(
1138 uint32 immediate_data_size, 1138 uint32_t immediate_data_size,
1139 const gles2::cmds::GetProgramiv& c) { 1139 const gles2::cmds::GetProgramiv& c) {
1140 GLuint program = c.program; 1140 GLuint program = c.program;
1141 GLenum pname = static_cast<GLenum>(c.pname); 1141 GLenum pname = static_cast<GLenum>(c.pname);
1142 typedef cmds::GetProgramiv::Result Result; 1142 typedef cmds::GetProgramiv::Result Result;
1143 GLsizei num_values = 0; 1143 GLsizei num_values = 0;
1144 GetNumValuesReturnedForGLGet(pname, &num_values); 1144 GetNumValuesReturnedForGLGet(pname, &num_values);
1145 Result* result = GetSharedMemoryAs<Result*>( 1145 Result* result = GetSharedMemoryAs<Result*>(
1146 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1146 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1147 GLint* params = result ? result->GetData() : NULL; 1147 GLint* params = result ? result->GetData() : NULL;
1148 if (!validators_->program_parameter.IsValid(pname)) { 1148 if (!validators_->program_parameter.IsValid(pname)) {
(...skipping 12 matching lines...) Expand all
1161 GLenum error = glGetError(); 1161 GLenum error = glGetError();
1162 if (error == GL_NO_ERROR) { 1162 if (error == GL_NO_ERROR) {
1163 result->SetNumResults(num_values); 1163 result->SetNumResults(num_values);
1164 } else { 1164 } else {
1165 LOCAL_SET_GL_ERROR(error, "GetProgramiv", ""); 1165 LOCAL_SET_GL_ERROR(error, "GetProgramiv", "");
1166 } 1166 }
1167 return error::kNoError; 1167 return error::kNoError;
1168 } 1168 }
1169 1169
1170 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( 1170 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv(
1171 uint32 immediate_data_size, 1171 uint32_t immediate_data_size,
1172 const gles2::cmds::GetRenderbufferParameteriv& c) { 1172 const gles2::cmds::GetRenderbufferParameteriv& c) {
1173 GLenum target = static_cast<GLenum>(c.target); 1173 GLenum target = static_cast<GLenum>(c.target);
1174 GLenum pname = static_cast<GLenum>(c.pname); 1174 GLenum pname = static_cast<GLenum>(c.pname);
1175 typedef cmds::GetRenderbufferParameteriv::Result Result; 1175 typedef cmds::GetRenderbufferParameteriv::Result Result;
1176 GLsizei num_values = 0; 1176 GLsizei num_values = 0;
1177 GetNumValuesReturnedForGLGet(pname, &num_values); 1177 GetNumValuesReturnedForGLGet(pname, &num_values);
1178 Result* result = GetSharedMemoryAs<Result*>( 1178 Result* result = GetSharedMemoryAs<Result*>(
1179 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1179 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1180 GLint* params = result ? result->GetData() : NULL; 1180 GLint* params = result ? result->GetData() : NULL;
1181 if (!validators_->render_buffer_target.IsValid(target)) { 1181 if (!validators_->render_buffer_target.IsValid(target)) {
(...skipping 18 matching lines...) Expand all
1200 GLenum error = glGetError(); 1200 GLenum error = glGetError();
1201 if (error == GL_NO_ERROR) { 1201 if (error == GL_NO_ERROR) {
1202 result->SetNumResults(num_values); 1202 result->SetNumResults(num_values);
1203 } else { 1203 } else {
1204 LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", ""); 1204 LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", "");
1205 } 1205 }
1206 return error::kNoError; 1206 return error::kNoError;
1207 } 1207 }
1208 1208
1209 error::Error GLES2DecoderImpl::HandleGetShaderiv( 1209 error::Error GLES2DecoderImpl::HandleGetShaderiv(
1210 uint32 immediate_data_size, 1210 uint32_t immediate_data_size,
1211 const gles2::cmds::GetShaderiv& c) { 1211 const gles2::cmds::GetShaderiv& c) {
1212 GLuint shader = c.shader; 1212 GLuint shader = c.shader;
1213 GLenum pname = static_cast<GLenum>(c.pname); 1213 GLenum pname = static_cast<GLenum>(c.pname);
1214 typedef cmds::GetShaderiv::Result Result; 1214 typedef cmds::GetShaderiv::Result Result;
1215 GLsizei num_values = 0; 1215 GLsizei num_values = 0;
1216 GetNumValuesReturnedForGLGet(pname, &num_values); 1216 GetNumValuesReturnedForGLGet(pname, &num_values);
1217 Result* result = GetSharedMemoryAs<Result*>( 1217 Result* result = GetSharedMemoryAs<Result*>(
1218 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1218 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1219 GLint* params = result ? result->GetData() : NULL; 1219 GLint* params = result ? result->GetData() : NULL;
1220 if (!validators_->shader_parameter.IsValid(pname)) { 1220 if (!validators_->shader_parameter.IsValid(pname)) {
(...skipping 12 matching lines...) Expand all
1233 GLenum error = glGetError(); 1233 GLenum error = glGetError();
1234 if (error == GL_NO_ERROR) { 1234 if (error == GL_NO_ERROR) {
1235 result->SetNumResults(num_values); 1235 result->SetNumResults(num_values);
1236 } else { 1236 } else {
1237 LOCAL_SET_GL_ERROR(error, "GetShaderiv", ""); 1237 LOCAL_SET_GL_ERROR(error, "GetShaderiv", "");
1238 } 1238 }
1239 return error::kNoError; 1239 return error::kNoError;
1240 } 1240 }
1241 1241
1242 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( 1242 error::Error GLES2DecoderImpl::HandleGetTexParameterfv(
1243 uint32 immediate_data_size, 1243 uint32_t immediate_data_size,
1244 const gles2::cmds::GetTexParameterfv& c) { 1244 const gles2::cmds::GetTexParameterfv& c) {
1245 GLenum target = static_cast<GLenum>(c.target); 1245 GLenum target = static_cast<GLenum>(c.target);
1246 GLenum pname = static_cast<GLenum>(c.pname); 1246 GLenum pname = static_cast<GLenum>(c.pname);
1247 typedef cmds::GetTexParameterfv::Result Result; 1247 typedef cmds::GetTexParameterfv::Result Result;
1248 GLsizei num_values = 0; 1248 GLsizei num_values = 0;
1249 GetNumValuesReturnedForGLGet(pname, &num_values); 1249 GetNumValuesReturnedForGLGet(pname, &num_values);
1250 Result* result = GetSharedMemoryAs<Result*>( 1250 Result* result = GetSharedMemoryAs<Result*>(
1251 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1251 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1252 GLfloat* params = result ? result->GetData() : NULL; 1252 GLfloat* params = result ? result->GetData() : NULL;
1253 if (!validators_->get_tex_param_target.IsValid(target)) { 1253 if (!validators_->get_tex_param_target.IsValid(target)) {
(...skipping 16 matching lines...) Expand all
1270 GLenum error = glGetError(); 1270 GLenum error = glGetError();
1271 if (error == GL_NO_ERROR) { 1271 if (error == GL_NO_ERROR) {
1272 result->SetNumResults(num_values); 1272 result->SetNumResults(num_values);
1273 } else { 1273 } else {
1274 LOCAL_SET_GL_ERROR(error, "GetTexParameterfv", ""); 1274 LOCAL_SET_GL_ERROR(error, "GetTexParameterfv", "");
1275 } 1275 }
1276 return error::kNoError; 1276 return error::kNoError;
1277 } 1277 }
1278 1278
1279 error::Error GLES2DecoderImpl::HandleGetTexParameteriv( 1279 error::Error GLES2DecoderImpl::HandleGetTexParameteriv(
1280 uint32 immediate_data_size, 1280 uint32_t immediate_data_size,
1281 const gles2::cmds::GetTexParameteriv& c) { 1281 const gles2::cmds::GetTexParameteriv& c) {
1282 GLenum target = static_cast<GLenum>(c.target); 1282 GLenum target = static_cast<GLenum>(c.target);
1283 GLenum pname = static_cast<GLenum>(c.pname); 1283 GLenum pname = static_cast<GLenum>(c.pname);
1284 typedef cmds::GetTexParameteriv::Result Result; 1284 typedef cmds::GetTexParameteriv::Result Result;
1285 GLsizei num_values = 0; 1285 GLsizei num_values = 0;
1286 GetNumValuesReturnedForGLGet(pname, &num_values); 1286 GetNumValuesReturnedForGLGet(pname, &num_values);
1287 Result* result = GetSharedMemoryAs<Result*>( 1287 Result* result = GetSharedMemoryAs<Result*>(
1288 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1288 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1289 GLint* params = result ? result->GetData() : NULL; 1289 GLint* params = result ? result->GetData() : NULL;
1290 if (!validators_->get_tex_param_target.IsValid(target)) { 1290 if (!validators_->get_tex_param_target.IsValid(target)) {
(...skipping 16 matching lines...) Expand all
1307 GLenum error = glGetError(); 1307 GLenum error = glGetError();
1308 if (error == GL_NO_ERROR) { 1308 if (error == GL_NO_ERROR) {
1309 result->SetNumResults(num_values); 1309 result->SetNumResults(num_values);
1310 } else { 1310 } else {
1311 LOCAL_SET_GL_ERROR(error, "GetTexParameteriv", ""); 1311 LOCAL_SET_GL_ERROR(error, "GetTexParameteriv", "");
1312 } 1312 }
1313 return error::kNoError; 1313 return error::kNoError;
1314 } 1314 }
1315 1315
1316 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( 1316 error::Error GLES2DecoderImpl::HandleGetVertexAttribfv(
1317 uint32 immediate_data_size, 1317 uint32_t immediate_data_size,
1318 const gles2::cmds::GetVertexAttribfv& c) { 1318 const gles2::cmds::GetVertexAttribfv& c) {
1319 GLuint index = static_cast<GLuint>(c.index); 1319 GLuint index = static_cast<GLuint>(c.index);
1320 GLenum pname = static_cast<GLenum>(c.pname); 1320 GLenum pname = static_cast<GLenum>(c.pname);
1321 typedef cmds::GetVertexAttribfv::Result Result; 1321 typedef cmds::GetVertexAttribfv::Result Result;
1322 GLsizei num_values = 0; 1322 GLsizei num_values = 0;
1323 GetNumValuesReturnedForGLGet(pname, &num_values); 1323 GetNumValuesReturnedForGLGet(pname, &num_values);
1324 Result* result = GetSharedMemoryAs<Result*>( 1324 Result* result = GetSharedMemoryAs<Result*>(
1325 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1325 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1326 GLfloat* params = result ? result->GetData() : NULL; 1326 GLfloat* params = result ? result->GetData() : NULL;
1327 if (!validators_->vertex_attribute.IsValid(pname)) { 1327 if (!validators_->vertex_attribute.IsValid(pname)) {
(...skipping 12 matching lines...) Expand all
1340 GLenum error = glGetError(); 1340 GLenum error = glGetError();
1341 if (error == GL_NO_ERROR) { 1341 if (error == GL_NO_ERROR) {
1342 result->SetNumResults(num_values); 1342 result->SetNumResults(num_values);
1343 } else { 1343 } else {
1344 LOCAL_SET_GL_ERROR(error, "GetVertexAttribfv", ""); 1344 LOCAL_SET_GL_ERROR(error, "GetVertexAttribfv", "");
1345 } 1345 }
1346 return error::kNoError; 1346 return error::kNoError;
1347 } 1347 }
1348 1348
1349 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( 1349 error::Error GLES2DecoderImpl::HandleGetVertexAttribiv(
1350 uint32 immediate_data_size, 1350 uint32_t immediate_data_size,
1351 const gles2::cmds::GetVertexAttribiv& c) { 1351 const gles2::cmds::GetVertexAttribiv& c) {
1352 GLuint index = static_cast<GLuint>(c.index); 1352 GLuint index = static_cast<GLuint>(c.index);
1353 GLenum pname = static_cast<GLenum>(c.pname); 1353 GLenum pname = static_cast<GLenum>(c.pname);
1354 typedef cmds::GetVertexAttribiv::Result Result; 1354 typedef cmds::GetVertexAttribiv::Result Result;
1355 GLsizei num_values = 0; 1355 GLsizei num_values = 0;
1356 GetNumValuesReturnedForGLGet(pname, &num_values); 1356 GetNumValuesReturnedForGLGet(pname, &num_values);
1357 Result* result = GetSharedMemoryAs<Result*>( 1357 Result* result = GetSharedMemoryAs<Result*>(
1358 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1358 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1359 GLint* params = result ? result->GetData() : NULL; 1359 GLint* params = result ? result->GetData() : NULL;
1360 if (!validators_->vertex_attribute.IsValid(pname)) { 1360 if (!validators_->vertex_attribute.IsValid(pname)) {
(...skipping 11 matching lines...) Expand all
1372 DoGetVertexAttribiv(index, pname, params); 1372 DoGetVertexAttribiv(index, pname, params);
1373 GLenum error = glGetError(); 1373 GLenum error = glGetError();
1374 if (error == GL_NO_ERROR) { 1374 if (error == GL_NO_ERROR) {
1375 result->SetNumResults(num_values); 1375 result->SetNumResults(num_values);
1376 } else { 1376 } else {
1377 LOCAL_SET_GL_ERROR(error, "GetVertexAttribiv", ""); 1377 LOCAL_SET_GL_ERROR(error, "GetVertexAttribiv", "");
1378 } 1378 }
1379 return error::kNoError; 1379 return error::kNoError;
1380 } 1380 }
1381 1381
1382 error::Error GLES2DecoderImpl::HandleHint(uint32 immediate_data_size, 1382 error::Error GLES2DecoderImpl::HandleHint(uint32_t immediate_data_size,
1383 const gles2::cmds::Hint& c) { 1383 const gles2::cmds::Hint& c) {
1384 GLenum target = static_cast<GLenum>(c.target); 1384 GLenum target = static_cast<GLenum>(c.target);
1385 GLenum mode = static_cast<GLenum>(c.mode); 1385 GLenum mode = static_cast<GLenum>(c.mode);
1386 if (!validators_->hint_target.IsValid(target)) { 1386 if (!validators_->hint_target.IsValid(target)) {
1387 LOCAL_SET_GL_ERROR_INVALID_ENUM("glHint", target, "target"); 1387 LOCAL_SET_GL_ERROR_INVALID_ENUM("glHint", target, "target");
1388 return error::kNoError; 1388 return error::kNoError;
1389 } 1389 }
1390 if (!validators_->hint_mode.IsValid(mode)) { 1390 if (!validators_->hint_mode.IsValid(mode)) {
1391 LOCAL_SET_GL_ERROR_INVALID_ENUM("glHint", mode, "mode"); 1391 LOCAL_SET_GL_ERROR_INVALID_ENUM("glHint", mode, "mode");
1392 return error::kNoError; 1392 return error::kNoError;
(...skipping 10 matching lines...) Expand all
1403 state_.hint_fragment_shader_derivative = mode; 1403 state_.hint_fragment_shader_derivative = mode;
1404 glHint(target, mode); 1404 glHint(target, mode);
1405 } 1405 }
1406 break; 1406 break;
1407 default: 1407 default:
1408 NOTREACHED(); 1408 NOTREACHED();
1409 } 1409 }
1410 return error::kNoError; 1410 return error::kNoError;
1411 } 1411 }
1412 1412
1413 error::Error GLES2DecoderImpl::HandleIsBuffer(uint32 immediate_data_size, 1413 error::Error GLES2DecoderImpl::HandleIsBuffer(uint32_t immediate_data_size,
1414 const gles2::cmds::IsBuffer& c) { 1414 const gles2::cmds::IsBuffer& c) {
1415 GLuint buffer = c.buffer; 1415 GLuint buffer = c.buffer;
1416 typedef cmds::IsBuffer::Result Result; 1416 typedef cmds::IsBuffer::Result Result;
1417 Result* result_dst = GetSharedMemoryAs<Result*>( 1417 Result* result_dst = GetSharedMemoryAs<Result*>(
1418 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1418 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1419 if (!result_dst) { 1419 if (!result_dst) {
1420 return error::kOutOfBounds; 1420 return error::kOutOfBounds;
1421 } 1421 }
1422 *result_dst = DoIsBuffer(buffer); 1422 *result_dst = DoIsBuffer(buffer);
1423 return error::kNoError; 1423 return error::kNoError;
1424 } 1424 }
1425 1425
1426 error::Error GLES2DecoderImpl::HandleIsEnabled( 1426 error::Error GLES2DecoderImpl::HandleIsEnabled(
1427 uint32 immediate_data_size, 1427 uint32_t immediate_data_size,
1428 const gles2::cmds::IsEnabled& c) { 1428 const gles2::cmds::IsEnabled& c) {
1429 GLenum cap = static_cast<GLenum>(c.cap); 1429 GLenum cap = static_cast<GLenum>(c.cap);
1430 typedef cmds::IsEnabled::Result Result; 1430 typedef cmds::IsEnabled::Result Result;
1431 Result* result_dst = GetSharedMemoryAs<Result*>( 1431 Result* result_dst = GetSharedMemoryAs<Result*>(
1432 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1432 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1433 if (!result_dst) { 1433 if (!result_dst) {
1434 return error::kOutOfBounds; 1434 return error::kOutOfBounds;
1435 } 1435 }
1436 if (!validators_->capability.IsValid(cap)) { 1436 if (!validators_->capability.IsValid(cap)) {
1437 LOCAL_SET_GL_ERROR_INVALID_ENUM("glIsEnabled", cap, "cap"); 1437 LOCAL_SET_GL_ERROR_INVALID_ENUM("glIsEnabled", cap, "cap");
1438 return error::kNoError; 1438 return error::kNoError;
1439 } 1439 }
1440 *result_dst = DoIsEnabled(cap); 1440 *result_dst = DoIsEnabled(cap);
1441 return error::kNoError; 1441 return error::kNoError;
1442 } 1442 }
1443 1443
1444 error::Error GLES2DecoderImpl::HandleIsFramebuffer( 1444 error::Error GLES2DecoderImpl::HandleIsFramebuffer(
1445 uint32 immediate_data_size, 1445 uint32_t immediate_data_size,
1446 const gles2::cmds::IsFramebuffer& c) { 1446 const gles2::cmds::IsFramebuffer& c) {
1447 GLuint framebuffer = c.framebuffer; 1447 GLuint framebuffer = c.framebuffer;
1448 typedef cmds::IsFramebuffer::Result Result; 1448 typedef cmds::IsFramebuffer::Result Result;
1449 Result* result_dst = GetSharedMemoryAs<Result*>( 1449 Result* result_dst = GetSharedMemoryAs<Result*>(
1450 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1450 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1451 if (!result_dst) { 1451 if (!result_dst) {
1452 return error::kOutOfBounds; 1452 return error::kOutOfBounds;
1453 } 1453 }
1454 *result_dst = DoIsFramebuffer(framebuffer); 1454 *result_dst = DoIsFramebuffer(framebuffer);
1455 return error::kNoError; 1455 return error::kNoError;
1456 } 1456 }
1457 1457
1458 error::Error GLES2DecoderImpl::HandleIsProgram( 1458 error::Error GLES2DecoderImpl::HandleIsProgram(
1459 uint32 immediate_data_size, 1459 uint32_t immediate_data_size,
1460 const gles2::cmds::IsProgram& c) { 1460 const gles2::cmds::IsProgram& c) {
1461 GLuint program = c.program; 1461 GLuint program = c.program;
1462 typedef cmds::IsProgram::Result Result; 1462 typedef cmds::IsProgram::Result Result;
1463 Result* result_dst = GetSharedMemoryAs<Result*>( 1463 Result* result_dst = GetSharedMemoryAs<Result*>(
1464 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1464 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1465 if (!result_dst) { 1465 if (!result_dst) {
1466 return error::kOutOfBounds; 1466 return error::kOutOfBounds;
1467 } 1467 }
1468 *result_dst = DoIsProgram(program); 1468 *result_dst = DoIsProgram(program);
1469 return error::kNoError; 1469 return error::kNoError;
1470 } 1470 }
1471 1471
1472 error::Error GLES2DecoderImpl::HandleIsRenderbuffer( 1472 error::Error GLES2DecoderImpl::HandleIsRenderbuffer(
1473 uint32 immediate_data_size, 1473 uint32_t immediate_data_size,
1474 const gles2::cmds::IsRenderbuffer& c) { 1474 const gles2::cmds::IsRenderbuffer& c) {
1475 GLuint renderbuffer = c.renderbuffer; 1475 GLuint renderbuffer = c.renderbuffer;
1476 typedef cmds::IsRenderbuffer::Result Result; 1476 typedef cmds::IsRenderbuffer::Result Result;
1477 Result* result_dst = GetSharedMemoryAs<Result*>( 1477 Result* result_dst = GetSharedMemoryAs<Result*>(
1478 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1478 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1479 if (!result_dst) { 1479 if (!result_dst) {
1480 return error::kOutOfBounds; 1480 return error::kOutOfBounds;
1481 } 1481 }
1482 *result_dst = DoIsRenderbuffer(renderbuffer); 1482 *result_dst = DoIsRenderbuffer(renderbuffer);
1483 return error::kNoError; 1483 return error::kNoError;
1484 } 1484 }
1485 1485
1486 error::Error GLES2DecoderImpl::HandleIsShader(uint32 immediate_data_size, 1486 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size,
1487 const gles2::cmds::IsShader& c) { 1487 const gles2::cmds::IsShader& c) {
1488 GLuint shader = c.shader; 1488 GLuint shader = c.shader;
1489 typedef cmds::IsShader::Result Result; 1489 typedef cmds::IsShader::Result Result;
1490 Result* result_dst = GetSharedMemoryAs<Result*>( 1490 Result* result_dst = GetSharedMemoryAs<Result*>(
1491 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1491 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1492 if (!result_dst) { 1492 if (!result_dst) {
1493 return error::kOutOfBounds; 1493 return error::kOutOfBounds;
1494 } 1494 }
1495 *result_dst = DoIsShader(shader); 1495 *result_dst = DoIsShader(shader);
1496 return error::kNoError; 1496 return error::kNoError;
1497 } 1497 }
1498 1498
1499 error::Error GLES2DecoderImpl::HandleIsTexture( 1499 error::Error GLES2DecoderImpl::HandleIsTexture(
1500 uint32 immediate_data_size, 1500 uint32_t immediate_data_size,
1501 const gles2::cmds::IsTexture& c) { 1501 const gles2::cmds::IsTexture& c) {
1502 GLuint texture = c.texture; 1502 GLuint texture = c.texture;
1503 typedef cmds::IsTexture::Result Result; 1503 typedef cmds::IsTexture::Result Result;
1504 Result* result_dst = GetSharedMemoryAs<Result*>( 1504 Result* result_dst = GetSharedMemoryAs<Result*>(
1505 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 1505 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
1506 if (!result_dst) { 1506 if (!result_dst) {
1507 return error::kOutOfBounds; 1507 return error::kOutOfBounds;
1508 } 1508 }
1509 *result_dst = DoIsTexture(texture); 1509 *result_dst = DoIsTexture(texture);
1510 return error::kNoError; 1510 return error::kNoError;
1511 } 1511 }
1512 1512
1513 error::Error GLES2DecoderImpl::HandleLineWidth( 1513 error::Error GLES2DecoderImpl::HandleLineWidth(
1514 uint32 immediate_data_size, 1514 uint32_t immediate_data_size,
1515 const gles2::cmds::LineWidth& c) { 1515 const gles2::cmds::LineWidth& c) {
1516 GLfloat width = static_cast<GLfloat>(c.width); 1516 GLfloat width = static_cast<GLfloat>(c.width);
1517 if (width <= 0.0f) { 1517 if (width <= 0.0f) {
1518 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "LineWidth", "width out of range"); 1518 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "LineWidth", "width out of range");
1519 return error::kNoError; 1519 return error::kNoError;
1520 } 1520 }
1521 if (state_.line_width != width) { 1521 if (state_.line_width != width) {
1522 state_.line_width = width; 1522 state_.line_width = width;
1523 glLineWidth(width); 1523 glLineWidth(width);
1524 } 1524 }
1525 return error::kNoError; 1525 return error::kNoError;
1526 } 1526 }
1527 1527
1528 error::Error GLES2DecoderImpl::HandleLinkProgram( 1528 error::Error GLES2DecoderImpl::HandleLinkProgram(
1529 uint32 immediate_data_size, 1529 uint32_t immediate_data_size,
1530 const gles2::cmds::LinkProgram& c) { 1530 const gles2::cmds::LinkProgram& c) {
1531 GLuint program = c.program; 1531 GLuint program = c.program;
1532 DoLinkProgram(program); 1532 DoLinkProgram(program);
1533 return error::kNoError; 1533 return error::kNoError;
1534 } 1534 }
1535 1535
1536 error::Error GLES2DecoderImpl::HandlePolygonOffset( 1536 error::Error GLES2DecoderImpl::HandlePolygonOffset(
1537 uint32 immediate_data_size, 1537 uint32_t immediate_data_size,
1538 const gles2::cmds::PolygonOffset& c) { 1538 const gles2::cmds::PolygonOffset& c) {
1539 GLfloat factor = static_cast<GLfloat>(c.factor); 1539 GLfloat factor = static_cast<GLfloat>(c.factor);
1540 GLfloat units = static_cast<GLfloat>(c.units); 1540 GLfloat units = static_cast<GLfloat>(c.units);
1541 if (state_.polygon_offset_factor != factor || 1541 if (state_.polygon_offset_factor != factor ||
1542 state_.polygon_offset_units != units) { 1542 state_.polygon_offset_units != units) {
1543 state_.polygon_offset_factor = factor; 1543 state_.polygon_offset_factor = factor;
1544 state_.polygon_offset_units = units; 1544 state_.polygon_offset_units = units;
1545 glPolygonOffset(factor, units); 1545 glPolygonOffset(factor, units);
1546 } 1546 }
1547 return error::kNoError; 1547 return error::kNoError;
1548 } 1548 }
1549 1549
1550 error::Error GLES2DecoderImpl::HandleReleaseShaderCompiler( 1550 error::Error GLES2DecoderImpl::HandleReleaseShaderCompiler(
1551 uint32 immediate_data_size, 1551 uint32_t immediate_data_size,
1552 const gles2::cmds::ReleaseShaderCompiler& c) { 1552 const gles2::cmds::ReleaseShaderCompiler& c) {
1553 DoReleaseShaderCompiler(); 1553 DoReleaseShaderCompiler();
1554 return error::kNoError; 1554 return error::kNoError;
1555 } 1555 }
1556 1556
1557 error::Error GLES2DecoderImpl::HandleRenderbufferStorage( 1557 error::Error GLES2DecoderImpl::HandleRenderbufferStorage(
1558 uint32 immediate_data_size, 1558 uint32_t immediate_data_size,
1559 const gles2::cmds::RenderbufferStorage& c) { 1559 const gles2::cmds::RenderbufferStorage& c) {
1560 GLenum target = static_cast<GLenum>(c.target); 1560 GLenum target = static_cast<GLenum>(c.target);
1561 GLenum internalformat = static_cast<GLenum>(c.internalformat); 1561 GLenum internalformat = static_cast<GLenum>(c.internalformat);
1562 GLsizei width = static_cast<GLsizei>(c.width); 1562 GLsizei width = static_cast<GLsizei>(c.width);
1563 GLsizei height = static_cast<GLsizei>(c.height); 1563 GLsizei height = static_cast<GLsizei>(c.height);
1564 if (!validators_->render_buffer_target.IsValid(target)) { 1564 if (!validators_->render_buffer_target.IsValid(target)) {
1565 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", target, "target"); 1565 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", target, "target");
1566 return error::kNoError; 1566 return error::kNoError;
1567 } 1567 }
1568 if (!validators_->render_buffer_format.IsValid(internalformat)) { 1568 if (!validators_->render_buffer_format.IsValid(internalformat)) {
1569 LOCAL_SET_GL_ERROR_INVALID_ENUM( 1569 LOCAL_SET_GL_ERROR_INVALID_ENUM(
1570 "glRenderbufferStorage", internalformat, "internalformat"); 1570 "glRenderbufferStorage", internalformat, "internalformat");
1571 return error::kNoError; 1571 return error::kNoError;
1572 } 1572 }
1573 if (width < 0) { 1573 if (width < 0) {
1574 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); 1574 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0");
1575 return error::kNoError; 1575 return error::kNoError;
1576 } 1576 }
1577 if (height < 0) { 1577 if (height < 0) {
1578 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); 1578 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0");
1579 return error::kNoError; 1579 return error::kNoError;
1580 } 1580 }
1581 DoRenderbufferStorage(target, internalformat, width, height); 1581 DoRenderbufferStorage(target, internalformat, width, height);
1582 return error::kNoError; 1582 return error::kNoError;
1583 } 1583 }
1584 1584
1585 error::Error GLES2DecoderImpl::HandleSampleCoverage( 1585 error::Error GLES2DecoderImpl::HandleSampleCoverage(
1586 uint32 immediate_data_size, 1586 uint32_t immediate_data_size,
1587 const gles2::cmds::SampleCoverage& c) { 1587 const gles2::cmds::SampleCoverage& c) {
1588 GLclampf value = static_cast<GLclampf>(c.value); 1588 GLclampf value = static_cast<GLclampf>(c.value);
1589 GLboolean invert = static_cast<GLboolean>(c.invert); 1589 GLboolean invert = static_cast<GLboolean>(c.invert);
1590 DoSampleCoverage(value, invert); 1590 DoSampleCoverage(value, invert);
1591 return error::kNoError; 1591 return error::kNoError;
1592 } 1592 }
1593 1593
1594 error::Error GLES2DecoderImpl::HandleScissor(uint32 immediate_data_size, 1594 error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size,
1595 const gles2::cmds::Scissor& c) { 1595 const gles2::cmds::Scissor& c) {
1596 GLint x = static_cast<GLint>(c.x); 1596 GLint x = static_cast<GLint>(c.x);
1597 GLint y = static_cast<GLint>(c.y); 1597 GLint y = static_cast<GLint>(c.y);
1598 GLsizei width = static_cast<GLsizei>(c.width); 1598 GLsizei width = static_cast<GLsizei>(c.width);
1599 GLsizei height = static_cast<GLsizei>(c.height); 1599 GLsizei height = static_cast<GLsizei>(c.height);
1600 if (width < 0) { 1600 if (width < 0) {
1601 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glScissor", "width < 0"); 1601 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glScissor", "width < 0");
1602 return error::kNoError; 1602 return error::kNoError;
1603 } 1603 }
1604 if (height < 0) { 1604 if (height < 0) {
1605 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glScissor", "height < 0"); 1605 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glScissor", "height < 0");
1606 return error::kNoError; 1606 return error::kNoError;
1607 } 1607 }
1608 if (state_.scissor_x != x || state_.scissor_y != y || 1608 if (state_.scissor_x != x || state_.scissor_y != y ||
1609 state_.scissor_width != width || state_.scissor_height != height) { 1609 state_.scissor_width != width || state_.scissor_height != height) {
1610 state_.scissor_x = x; 1610 state_.scissor_x = x;
1611 state_.scissor_y = y; 1611 state_.scissor_y = y;
1612 state_.scissor_width = width; 1612 state_.scissor_width = width;
1613 state_.scissor_height = height; 1613 state_.scissor_height = height;
1614 glScissor(x, y, width, height); 1614 glScissor(x, y, width, height);
1615 } 1615 }
1616 return error::kNoError; 1616 return error::kNoError;
1617 } 1617 }
1618 1618
1619 error::Error GLES2DecoderImpl::HandleStencilFunc( 1619 error::Error GLES2DecoderImpl::HandleStencilFunc(
1620 uint32 immediate_data_size, 1620 uint32_t immediate_data_size,
1621 const gles2::cmds::StencilFunc& c) { 1621 const gles2::cmds::StencilFunc& c) {
1622 GLenum func = static_cast<GLenum>(c.func); 1622 GLenum func = static_cast<GLenum>(c.func);
1623 GLint ref = static_cast<GLint>(c.ref); 1623 GLint ref = static_cast<GLint>(c.ref);
1624 GLuint mask = static_cast<GLuint>(c.mask); 1624 GLuint mask = static_cast<GLuint>(c.mask);
1625 if (!validators_->cmp_function.IsValid(func)) { 1625 if (!validators_->cmp_function.IsValid(func)) {
1626 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilFunc", func, "func"); 1626 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilFunc", func, "func");
1627 return error::kNoError; 1627 return error::kNoError;
1628 } 1628 }
1629 if (state_.stencil_front_func != func || state_.stencil_front_ref != ref || 1629 if (state_.stencil_front_func != func || state_.stencil_front_ref != ref ||
1630 state_.stencil_front_mask != mask || state_.stencil_back_func != func || 1630 state_.stencil_front_mask != mask || state_.stencil_back_func != func ||
1631 state_.stencil_back_ref != ref || state_.stencil_back_mask != mask) { 1631 state_.stencil_back_ref != ref || state_.stencil_back_mask != mask) {
1632 state_.stencil_front_func = func; 1632 state_.stencil_front_func = func;
1633 state_.stencil_front_ref = ref; 1633 state_.stencil_front_ref = ref;
1634 state_.stencil_front_mask = mask; 1634 state_.stencil_front_mask = mask;
1635 state_.stencil_back_func = func; 1635 state_.stencil_back_func = func;
1636 state_.stencil_back_ref = ref; 1636 state_.stencil_back_ref = ref;
1637 state_.stencil_back_mask = mask; 1637 state_.stencil_back_mask = mask;
1638 glStencilFunc(func, ref, mask); 1638 glStencilFunc(func, ref, mask);
1639 } 1639 }
1640 return error::kNoError; 1640 return error::kNoError;
1641 } 1641 }
1642 1642
1643 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate( 1643 error::Error GLES2DecoderImpl::HandleStencilFuncSeparate(
1644 uint32 immediate_data_size, 1644 uint32_t immediate_data_size,
1645 const gles2::cmds::StencilFuncSeparate& c) { 1645 const gles2::cmds::StencilFuncSeparate& c) {
1646 GLenum face = static_cast<GLenum>(c.face); 1646 GLenum face = static_cast<GLenum>(c.face);
1647 GLenum func = static_cast<GLenum>(c.func); 1647 GLenum func = static_cast<GLenum>(c.func);
1648 GLint ref = static_cast<GLint>(c.ref); 1648 GLint ref = static_cast<GLint>(c.ref);
1649 GLuint mask = static_cast<GLuint>(c.mask); 1649 GLuint mask = static_cast<GLuint>(c.mask);
1650 if (!validators_->face_type.IsValid(face)) { 1650 if (!validators_->face_type.IsValid(face)) {
1651 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilFuncSeparate", face, "face"); 1651 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilFuncSeparate", face, "face");
1652 return error::kNoError; 1652 return error::kNoError;
1653 } 1653 }
1654 if (!validators_->cmp_function.IsValid(func)) { 1654 if (!validators_->cmp_function.IsValid(func)) {
(...skipping 21 matching lines...) Expand all
1676 state_.stencil_back_func = func; 1676 state_.stencil_back_func = func;
1677 state_.stencil_back_ref = ref; 1677 state_.stencil_back_ref = ref;
1678 state_.stencil_back_mask = mask; 1678 state_.stencil_back_mask = mask;
1679 } 1679 }
1680 glStencilFuncSeparate(face, func, ref, mask); 1680 glStencilFuncSeparate(face, func, ref, mask);
1681 } 1681 }
1682 return error::kNoError; 1682 return error::kNoError;
1683 } 1683 }
1684 1684
1685 error::Error GLES2DecoderImpl::HandleStencilMask( 1685 error::Error GLES2DecoderImpl::HandleStencilMask(
1686 uint32 immediate_data_size, 1686 uint32_t immediate_data_size,
1687 const gles2::cmds::StencilMask& c) { 1687 const gles2::cmds::StencilMask& c) {
1688 GLuint mask = static_cast<GLuint>(c.mask); 1688 GLuint mask = static_cast<GLuint>(c.mask);
1689 if (state_.stencil_front_writemask != mask || 1689 if (state_.stencil_front_writemask != mask ||
1690 state_.stencil_back_writemask != mask) { 1690 state_.stencil_back_writemask != mask) {
1691 state_.stencil_front_writemask = mask; 1691 state_.stencil_front_writemask = mask;
1692 state_.stencil_back_writemask = mask; 1692 state_.stencil_back_writemask = mask;
1693 framebuffer_state_.clear_state_dirty = true; 1693 framebuffer_state_.clear_state_dirty = true;
1694 } 1694 }
1695 return error::kNoError; 1695 return error::kNoError;
1696 } 1696 }
1697 1697
1698 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate( 1698 error::Error GLES2DecoderImpl::HandleStencilMaskSeparate(
1699 uint32 immediate_data_size, 1699 uint32_t immediate_data_size,
1700 const gles2::cmds::StencilMaskSeparate& c) { 1700 const gles2::cmds::StencilMaskSeparate& c) {
1701 GLenum face = static_cast<GLenum>(c.face); 1701 GLenum face = static_cast<GLenum>(c.face);
1702 GLuint mask = static_cast<GLuint>(c.mask); 1702 GLuint mask = static_cast<GLuint>(c.mask);
1703 if (!validators_->face_type.IsValid(face)) { 1703 if (!validators_->face_type.IsValid(face)) {
1704 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilMaskSeparate", face, "face"); 1704 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilMaskSeparate", face, "face");
1705 return error::kNoError; 1705 return error::kNoError;
1706 } 1706 }
1707 bool changed = false; 1707 bool changed = false;
1708 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) { 1708 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) {
1709 changed |= state_.stencil_front_writemask != mask; 1709 changed |= state_.stencil_front_writemask != mask;
1710 } 1710 }
1711 if (face == GL_BACK || face == GL_FRONT_AND_BACK) { 1711 if (face == GL_BACK || face == GL_FRONT_AND_BACK) {
1712 changed |= state_.stencil_back_writemask != mask; 1712 changed |= state_.stencil_back_writemask != mask;
1713 } 1713 }
1714 if (changed) { 1714 if (changed) {
1715 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) { 1715 if (face == GL_FRONT || face == GL_FRONT_AND_BACK) {
1716 state_.stencil_front_writemask = mask; 1716 state_.stencil_front_writemask = mask;
1717 } 1717 }
1718 if (face == GL_BACK || face == GL_FRONT_AND_BACK) { 1718 if (face == GL_BACK || face == GL_FRONT_AND_BACK) {
1719 state_.stencil_back_writemask = mask; 1719 state_.stencil_back_writemask = mask;
1720 } 1720 }
1721 framebuffer_state_.clear_state_dirty = true; 1721 framebuffer_state_.clear_state_dirty = true;
1722 } 1722 }
1723 return error::kNoError; 1723 return error::kNoError;
1724 } 1724 }
1725 1725
1726 error::Error GLES2DecoderImpl::HandleStencilOp( 1726 error::Error GLES2DecoderImpl::HandleStencilOp(
1727 uint32 immediate_data_size, 1727 uint32_t immediate_data_size,
1728 const gles2::cmds::StencilOp& c) { 1728 const gles2::cmds::StencilOp& c) {
1729 GLenum fail = static_cast<GLenum>(c.fail); 1729 GLenum fail = static_cast<GLenum>(c.fail);
1730 GLenum zfail = static_cast<GLenum>(c.zfail); 1730 GLenum zfail = static_cast<GLenum>(c.zfail);
1731 GLenum zpass = static_cast<GLenum>(c.zpass); 1731 GLenum zpass = static_cast<GLenum>(c.zpass);
1732 if (!validators_->stencil_op.IsValid(fail)) { 1732 if (!validators_->stencil_op.IsValid(fail)) {
1733 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOp", fail, "fail"); 1733 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOp", fail, "fail");
1734 return error::kNoError; 1734 return error::kNoError;
1735 } 1735 }
1736 if (!validators_->stencil_op.IsValid(zfail)) { 1736 if (!validators_->stencil_op.IsValid(zfail)) {
1737 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOp", zfail, "zfail"); 1737 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOp", zfail, "zfail");
(...skipping 14 matching lines...) Expand all
1752 state_.stencil_front_z_pass_op = zpass; 1752 state_.stencil_front_z_pass_op = zpass;
1753 state_.stencil_back_fail_op = fail; 1753 state_.stencil_back_fail_op = fail;
1754 state_.stencil_back_z_fail_op = zfail; 1754 state_.stencil_back_z_fail_op = zfail;
1755 state_.stencil_back_z_pass_op = zpass; 1755 state_.stencil_back_z_pass_op = zpass;
1756 glStencilOp(fail, zfail, zpass); 1756 glStencilOp(fail, zfail, zpass);
1757 } 1757 }
1758 return error::kNoError; 1758 return error::kNoError;
1759 } 1759 }
1760 1760
1761 error::Error GLES2DecoderImpl::HandleStencilOpSeparate( 1761 error::Error GLES2DecoderImpl::HandleStencilOpSeparate(
1762 uint32 immediate_data_size, 1762 uint32_t immediate_data_size,
1763 const gles2::cmds::StencilOpSeparate& c) { 1763 const gles2::cmds::StencilOpSeparate& c) {
1764 GLenum face = static_cast<GLenum>(c.face); 1764 GLenum face = static_cast<GLenum>(c.face);
1765 GLenum fail = static_cast<GLenum>(c.fail); 1765 GLenum fail = static_cast<GLenum>(c.fail);
1766 GLenum zfail = static_cast<GLenum>(c.zfail); 1766 GLenum zfail = static_cast<GLenum>(c.zfail);
1767 GLenum zpass = static_cast<GLenum>(c.zpass); 1767 GLenum zpass = static_cast<GLenum>(c.zpass);
1768 if (!validators_->face_type.IsValid(face)) { 1768 if (!validators_->face_type.IsValid(face)) {
1769 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOpSeparate", face, "face"); 1769 LOCAL_SET_GL_ERROR_INVALID_ENUM("glStencilOpSeparate", face, "face");
1770 return error::kNoError; 1770 return error::kNoError;
1771 } 1771 }
1772 if (!validators_->stencil_op.IsValid(fail)) { 1772 if (!validators_->stencil_op.IsValid(fail)) {
(...skipping 29 matching lines...) Expand all
1802 state_.stencil_back_fail_op = fail; 1802 state_.stencil_back_fail_op = fail;
1803 state_.stencil_back_z_fail_op = zfail; 1803 state_.stencil_back_z_fail_op = zfail;
1804 state_.stencil_back_z_pass_op = zpass; 1804 state_.stencil_back_z_pass_op = zpass;
1805 } 1805 }
1806 glStencilOpSeparate(face, fail, zfail, zpass); 1806 glStencilOpSeparate(face, fail, zfail, zpass);
1807 } 1807 }
1808 return error::kNoError; 1808 return error::kNoError;
1809 } 1809 }
1810 1810
1811 error::Error GLES2DecoderImpl::HandleTexParameterf( 1811 error::Error GLES2DecoderImpl::HandleTexParameterf(
1812 uint32 immediate_data_size, 1812 uint32_t immediate_data_size,
1813 const gles2::cmds::TexParameterf& c) { 1813 const gles2::cmds::TexParameterf& c) {
1814 GLenum target = static_cast<GLenum>(c.target); 1814 GLenum target = static_cast<GLenum>(c.target);
1815 GLenum pname = static_cast<GLenum>(c.pname); 1815 GLenum pname = static_cast<GLenum>(c.pname);
1816 GLfloat param = static_cast<GLfloat>(c.param); 1816 GLfloat param = static_cast<GLfloat>(c.param);
1817 if (!validators_->texture_bind_target.IsValid(target)) { 1817 if (!validators_->texture_bind_target.IsValid(target)) {
1818 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterf", target, "target"); 1818 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterf", target, "target");
1819 return error::kNoError; 1819 return error::kNoError;
1820 } 1820 }
1821 if (!validators_->texture_parameter.IsValid(pname)) { 1821 if (!validators_->texture_parameter.IsValid(pname)) {
1822 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterf", pname, "pname"); 1822 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterf", pname, "pname");
1823 return error::kNoError; 1823 return error::kNoError;
1824 } 1824 }
1825 DoTexParameterf(target, pname, param); 1825 DoTexParameterf(target, pname, param);
1826 return error::kNoError; 1826 return error::kNoError;
1827 } 1827 }
1828 1828
1829 error::Error GLES2DecoderImpl::HandleTexParameterfv( 1829 error::Error GLES2DecoderImpl::HandleTexParameterfv(
1830 uint32 immediate_data_size, 1830 uint32_t immediate_data_size,
1831 const gles2::cmds::TexParameterfv& c) { 1831 const gles2::cmds::TexParameterfv& c) {
1832 GLenum target = static_cast<GLenum>(c.target); 1832 GLenum target = static_cast<GLenum>(c.target);
1833 GLenum pname = static_cast<GLenum>(c.pname); 1833 GLenum pname = static_cast<GLenum>(c.pname);
1834 uint32 data_size; 1834 uint32_t data_size;
1835 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { 1835 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
1836 return error::kOutOfBounds; 1836 return error::kOutOfBounds;
1837 } 1837 }
1838 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>( 1838 const GLfloat* params = GetSharedMemoryAs<const GLfloat*>(
1839 c.params_shm_id, c.params_shm_offset, data_size); 1839 c.params_shm_id, c.params_shm_offset, data_size);
1840 if (!validators_->texture_bind_target.IsValid(target)) { 1840 if (!validators_->texture_bind_target.IsValid(target)) {
1841 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", target, "target"); 1841 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", target, "target");
1842 return error::kNoError; 1842 return error::kNoError;
1843 } 1843 }
1844 if (!validators_->texture_parameter.IsValid(pname)) { 1844 if (!validators_->texture_parameter.IsValid(pname)) {
1845 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", pname, "pname"); 1845 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", pname, "pname");
1846 return error::kNoError; 1846 return error::kNoError;
1847 } 1847 }
1848 if (params == NULL) { 1848 if (params == NULL) {
1849 return error::kOutOfBounds; 1849 return error::kOutOfBounds;
1850 } 1850 }
1851 DoTexParameterfv(target, pname, params); 1851 DoTexParameterfv(target, pname, params);
1852 return error::kNoError; 1852 return error::kNoError;
1853 } 1853 }
1854 1854
1855 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate( 1855 error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate(
1856 uint32 immediate_data_size, 1856 uint32_t immediate_data_size,
1857 const gles2::cmds::TexParameterfvImmediate& c) { 1857 const gles2::cmds::TexParameterfvImmediate& c) {
1858 GLenum target = static_cast<GLenum>(c.target); 1858 GLenum target = static_cast<GLenum>(c.target);
1859 GLenum pname = static_cast<GLenum>(c.pname); 1859 GLenum pname = static_cast<GLenum>(c.pname);
1860 uint32 data_size; 1860 uint32_t data_size;
1861 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { 1861 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
1862 return error::kOutOfBounds; 1862 return error::kOutOfBounds;
1863 } 1863 }
1864 if (data_size > immediate_data_size) { 1864 if (data_size > immediate_data_size) {
1865 return error::kOutOfBounds; 1865 return error::kOutOfBounds;
1866 } 1866 }
1867 const GLfloat* params = 1867 const GLfloat* params =
1868 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 1868 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
1869 if (!validators_->texture_bind_target.IsValid(target)) { 1869 if (!validators_->texture_bind_target.IsValid(target)) {
1870 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", target, "target"); 1870 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", target, "target");
1871 return error::kNoError; 1871 return error::kNoError;
1872 } 1872 }
1873 if (!validators_->texture_parameter.IsValid(pname)) { 1873 if (!validators_->texture_parameter.IsValid(pname)) {
1874 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", pname, "pname"); 1874 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameterfv", pname, "pname");
1875 return error::kNoError; 1875 return error::kNoError;
1876 } 1876 }
1877 if (params == NULL) { 1877 if (params == NULL) {
1878 return error::kOutOfBounds; 1878 return error::kOutOfBounds;
1879 } 1879 }
1880 DoTexParameterfv(target, pname, params); 1880 DoTexParameterfv(target, pname, params);
1881 return error::kNoError; 1881 return error::kNoError;
1882 } 1882 }
1883 1883
1884 error::Error GLES2DecoderImpl::HandleTexParameteri( 1884 error::Error GLES2DecoderImpl::HandleTexParameteri(
1885 uint32 immediate_data_size, 1885 uint32_t immediate_data_size,
1886 const gles2::cmds::TexParameteri& c) { 1886 const gles2::cmds::TexParameteri& c) {
1887 GLenum target = static_cast<GLenum>(c.target); 1887 GLenum target = static_cast<GLenum>(c.target);
1888 GLenum pname = static_cast<GLenum>(c.pname); 1888 GLenum pname = static_cast<GLenum>(c.pname);
1889 GLint param = static_cast<GLint>(c.param); 1889 GLint param = static_cast<GLint>(c.param);
1890 if (!validators_->texture_bind_target.IsValid(target)) { 1890 if (!validators_->texture_bind_target.IsValid(target)) {
1891 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteri", target, "target"); 1891 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteri", target, "target");
1892 return error::kNoError; 1892 return error::kNoError;
1893 } 1893 }
1894 if (!validators_->texture_parameter.IsValid(pname)) { 1894 if (!validators_->texture_parameter.IsValid(pname)) {
1895 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteri", pname, "pname"); 1895 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteri", pname, "pname");
1896 return error::kNoError; 1896 return error::kNoError;
1897 } 1897 }
1898 DoTexParameteri(target, pname, param); 1898 DoTexParameteri(target, pname, param);
1899 return error::kNoError; 1899 return error::kNoError;
1900 } 1900 }
1901 1901
1902 error::Error GLES2DecoderImpl::HandleTexParameteriv( 1902 error::Error GLES2DecoderImpl::HandleTexParameteriv(
1903 uint32 immediate_data_size, 1903 uint32_t immediate_data_size,
1904 const gles2::cmds::TexParameteriv& c) { 1904 const gles2::cmds::TexParameteriv& c) {
1905 GLenum target = static_cast<GLenum>(c.target); 1905 GLenum target = static_cast<GLenum>(c.target);
1906 GLenum pname = static_cast<GLenum>(c.pname); 1906 GLenum pname = static_cast<GLenum>(c.pname);
1907 uint32 data_size; 1907 uint32_t data_size;
1908 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { 1908 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) {
1909 return error::kOutOfBounds; 1909 return error::kOutOfBounds;
1910 } 1910 }
1911 const GLint* params = GetSharedMemoryAs<const GLint*>( 1911 const GLint* params = GetSharedMemoryAs<const GLint*>(
1912 c.params_shm_id, c.params_shm_offset, data_size); 1912 c.params_shm_id, c.params_shm_offset, data_size);
1913 if (!validators_->texture_bind_target.IsValid(target)) { 1913 if (!validators_->texture_bind_target.IsValid(target)) {
1914 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", target, "target"); 1914 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", target, "target");
1915 return error::kNoError; 1915 return error::kNoError;
1916 } 1916 }
1917 if (!validators_->texture_parameter.IsValid(pname)) { 1917 if (!validators_->texture_parameter.IsValid(pname)) {
1918 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname"); 1918 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname");
1919 return error::kNoError; 1919 return error::kNoError;
1920 } 1920 }
1921 if (params == NULL) { 1921 if (params == NULL) {
1922 return error::kOutOfBounds; 1922 return error::kOutOfBounds;
1923 } 1923 }
1924 DoTexParameteriv(target, pname, params); 1924 DoTexParameteriv(target, pname, params);
1925 return error::kNoError; 1925 return error::kNoError;
1926 } 1926 }
1927 1927
1928 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate( 1928 error::Error GLES2DecoderImpl::HandleTexParameterivImmediate(
1929 uint32 immediate_data_size, 1929 uint32_t immediate_data_size,
1930 const gles2::cmds::TexParameterivImmediate& c) { 1930 const gles2::cmds::TexParameterivImmediate& c) {
1931 GLenum target = static_cast<GLenum>(c.target); 1931 GLenum target = static_cast<GLenum>(c.target);
1932 GLenum pname = static_cast<GLenum>(c.pname); 1932 GLenum pname = static_cast<GLenum>(c.pname);
1933 uint32 data_size; 1933 uint32_t data_size;
1934 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { 1934 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) {
1935 return error::kOutOfBounds; 1935 return error::kOutOfBounds;
1936 } 1936 }
1937 if (data_size > immediate_data_size) { 1937 if (data_size > immediate_data_size) {
1938 return error::kOutOfBounds; 1938 return error::kOutOfBounds;
1939 } 1939 }
1940 const GLint* params = 1940 const GLint* params =
1941 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 1941 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
1942 if (!validators_->texture_bind_target.IsValid(target)) { 1942 if (!validators_->texture_bind_target.IsValid(target)) {
1943 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", target, "target"); 1943 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", target, "target");
1944 return error::kNoError; 1944 return error::kNoError;
1945 } 1945 }
1946 if (!validators_->texture_parameter.IsValid(pname)) { 1946 if (!validators_->texture_parameter.IsValid(pname)) {
1947 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname"); 1947 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname");
1948 return error::kNoError; 1948 return error::kNoError;
1949 } 1949 }
1950 if (params == NULL) { 1950 if (params == NULL) {
1951 return error::kOutOfBounds; 1951 return error::kOutOfBounds;
1952 } 1952 }
1953 DoTexParameteriv(target, pname, params); 1953 DoTexParameteriv(target, pname, params);
1954 return error::kNoError; 1954 return error::kNoError;
1955 } 1955 }
1956 1956
1957 error::Error GLES2DecoderImpl::HandleUniform1f( 1957 error::Error GLES2DecoderImpl::HandleUniform1f(
1958 uint32 immediate_data_size, 1958 uint32_t immediate_data_size,
1959 const gles2::cmds::Uniform1f& c) { 1959 const gles2::cmds::Uniform1f& c) {
1960 GLint location = static_cast<GLint>(c.location); 1960 GLint location = static_cast<GLint>(c.location);
1961 GLfloat x = static_cast<GLfloat>(c.x); 1961 GLfloat x = static_cast<GLfloat>(c.x);
1962 GLfloat temp[1] = { 1962 GLfloat temp[1] = {
1963 x, 1963 x,
1964 }; 1964 };
1965 DoUniform1fv(location, 1, &temp[0]); 1965 DoUniform1fv(location, 1, &temp[0]);
1966 return error::kNoError; 1966 return error::kNoError;
1967 } 1967 }
1968 1968
1969 error::Error GLES2DecoderImpl::HandleUniform1fv( 1969 error::Error GLES2DecoderImpl::HandleUniform1fv(
1970 uint32 immediate_data_size, 1970 uint32_t immediate_data_size,
1971 const gles2::cmds::Uniform1fv& c) { 1971 const gles2::cmds::Uniform1fv& c) {
1972 GLint location = static_cast<GLint>(c.location); 1972 GLint location = static_cast<GLint>(c.location);
1973 GLsizei count = static_cast<GLsizei>(c.count); 1973 GLsizei count = static_cast<GLsizei>(c.count);
1974 uint32 data_size; 1974 uint32_t data_size;
1975 if (!ComputeDataSize(count, sizeof(GLfloat), 1, &data_size)) { 1975 if (!ComputeDataSize(count, sizeof(GLfloat), 1, &data_size)) {
1976 return error::kOutOfBounds; 1976 return error::kOutOfBounds;
1977 } 1977 }
1978 const GLfloat* v = 1978 const GLfloat* v =
1979 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size); 1979 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size);
1980 if (v == NULL) { 1980 if (v == NULL) {
1981 return error::kOutOfBounds; 1981 return error::kOutOfBounds;
1982 } 1982 }
1983 DoUniform1fv(location, count, v); 1983 DoUniform1fv(location, count, v);
1984 return error::kNoError; 1984 return error::kNoError;
1985 } 1985 }
1986 1986
1987 error::Error GLES2DecoderImpl::HandleUniform1fvImmediate( 1987 error::Error GLES2DecoderImpl::HandleUniform1fvImmediate(
1988 uint32 immediate_data_size, 1988 uint32_t immediate_data_size,
1989 const gles2::cmds::Uniform1fvImmediate& c) { 1989 const gles2::cmds::Uniform1fvImmediate& c) {
1990 GLint location = static_cast<GLint>(c.location); 1990 GLint location = static_cast<GLint>(c.location);
1991 GLsizei count = static_cast<GLsizei>(c.count); 1991 GLsizei count = static_cast<GLsizei>(c.count);
1992 uint32 data_size; 1992 uint32_t data_size;
1993 if (!ComputeDataSize(count, sizeof(GLfloat), 1, &data_size)) { 1993 if (!ComputeDataSize(count, sizeof(GLfloat), 1, &data_size)) {
1994 return error::kOutOfBounds; 1994 return error::kOutOfBounds;
1995 } 1995 }
1996 if (data_size > immediate_data_size) { 1996 if (data_size > immediate_data_size) {
1997 return error::kOutOfBounds; 1997 return error::kOutOfBounds;
1998 } 1998 }
1999 const GLfloat* v = 1999 const GLfloat* v =
2000 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2000 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2001 if (v == NULL) { 2001 if (v == NULL) {
2002 return error::kOutOfBounds; 2002 return error::kOutOfBounds;
2003 } 2003 }
2004 DoUniform1fv(location, count, v); 2004 DoUniform1fv(location, count, v);
2005 return error::kNoError; 2005 return error::kNoError;
2006 } 2006 }
2007 2007
2008 error::Error GLES2DecoderImpl::HandleUniform1i( 2008 error::Error GLES2DecoderImpl::HandleUniform1i(
2009 uint32 immediate_data_size, 2009 uint32_t immediate_data_size,
2010 const gles2::cmds::Uniform1i& c) { 2010 const gles2::cmds::Uniform1i& c) {
2011 GLint location = static_cast<GLint>(c.location); 2011 GLint location = static_cast<GLint>(c.location);
2012 GLint x = static_cast<GLint>(c.x); 2012 GLint x = static_cast<GLint>(c.x);
2013 DoUniform1i(location, x); 2013 DoUniform1i(location, x);
2014 return error::kNoError; 2014 return error::kNoError;
2015 } 2015 }
2016 2016
2017 error::Error GLES2DecoderImpl::HandleUniform1iv( 2017 error::Error GLES2DecoderImpl::HandleUniform1iv(
2018 uint32 immediate_data_size, 2018 uint32_t immediate_data_size,
2019 const gles2::cmds::Uniform1iv& c) { 2019 const gles2::cmds::Uniform1iv& c) {
2020 GLint location = static_cast<GLint>(c.location); 2020 GLint location = static_cast<GLint>(c.location);
2021 GLsizei count = static_cast<GLsizei>(c.count); 2021 GLsizei count = static_cast<GLsizei>(c.count);
2022 uint32 data_size; 2022 uint32_t data_size;
2023 if (!ComputeDataSize(count, sizeof(GLint), 1, &data_size)) { 2023 if (!ComputeDataSize(count, sizeof(GLint), 1, &data_size)) {
2024 return error::kOutOfBounds; 2024 return error::kOutOfBounds;
2025 } 2025 }
2026 const GLint* v = 2026 const GLint* v =
2027 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size); 2027 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size);
2028 if (v == NULL) { 2028 if (v == NULL) {
2029 return error::kOutOfBounds; 2029 return error::kOutOfBounds;
2030 } 2030 }
2031 DoUniform1iv(location, count, v); 2031 DoUniform1iv(location, count, v);
2032 return error::kNoError; 2032 return error::kNoError;
2033 } 2033 }
2034 2034
2035 error::Error GLES2DecoderImpl::HandleUniform1ivImmediate( 2035 error::Error GLES2DecoderImpl::HandleUniform1ivImmediate(
2036 uint32 immediate_data_size, 2036 uint32_t immediate_data_size,
2037 const gles2::cmds::Uniform1ivImmediate& c) { 2037 const gles2::cmds::Uniform1ivImmediate& c) {
2038 GLint location = static_cast<GLint>(c.location); 2038 GLint location = static_cast<GLint>(c.location);
2039 GLsizei count = static_cast<GLsizei>(c.count); 2039 GLsizei count = static_cast<GLsizei>(c.count);
2040 uint32 data_size; 2040 uint32_t data_size;
2041 if (!ComputeDataSize(count, sizeof(GLint), 1, &data_size)) { 2041 if (!ComputeDataSize(count, sizeof(GLint), 1, &data_size)) {
2042 return error::kOutOfBounds; 2042 return error::kOutOfBounds;
2043 } 2043 }
2044 if (data_size > immediate_data_size) { 2044 if (data_size > immediate_data_size) {
2045 return error::kOutOfBounds; 2045 return error::kOutOfBounds;
2046 } 2046 }
2047 const GLint* v = 2047 const GLint* v =
2048 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2048 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2049 if (v == NULL) { 2049 if (v == NULL) {
2050 return error::kOutOfBounds; 2050 return error::kOutOfBounds;
2051 } 2051 }
2052 DoUniform1iv(location, count, v); 2052 DoUniform1iv(location, count, v);
2053 return error::kNoError; 2053 return error::kNoError;
2054 } 2054 }
2055 2055
2056 error::Error GLES2DecoderImpl::HandleUniform2f( 2056 error::Error GLES2DecoderImpl::HandleUniform2f(
2057 uint32 immediate_data_size, 2057 uint32_t immediate_data_size,
2058 const gles2::cmds::Uniform2f& c) { 2058 const gles2::cmds::Uniform2f& c) {
2059 GLint location = static_cast<GLint>(c.location); 2059 GLint location = static_cast<GLint>(c.location);
2060 GLfloat x = static_cast<GLfloat>(c.x); 2060 GLfloat x = static_cast<GLfloat>(c.x);
2061 GLfloat y = static_cast<GLfloat>(c.y); 2061 GLfloat y = static_cast<GLfloat>(c.y);
2062 GLfloat temp[2] = { 2062 GLfloat temp[2] = {
2063 x, y, 2063 x, y,
2064 }; 2064 };
2065 DoUniform2fv(location, 1, &temp[0]); 2065 DoUniform2fv(location, 1, &temp[0]);
2066 return error::kNoError; 2066 return error::kNoError;
2067 } 2067 }
2068 2068
2069 error::Error GLES2DecoderImpl::HandleUniform2fv( 2069 error::Error GLES2DecoderImpl::HandleUniform2fv(
2070 uint32 immediate_data_size, 2070 uint32_t immediate_data_size,
2071 const gles2::cmds::Uniform2fv& c) { 2071 const gles2::cmds::Uniform2fv& c) {
2072 GLint location = static_cast<GLint>(c.location); 2072 GLint location = static_cast<GLint>(c.location);
2073 GLsizei count = static_cast<GLsizei>(c.count); 2073 GLsizei count = static_cast<GLsizei>(c.count);
2074 uint32 data_size; 2074 uint32_t data_size;
2075 if (!ComputeDataSize(count, sizeof(GLfloat), 2, &data_size)) { 2075 if (!ComputeDataSize(count, sizeof(GLfloat), 2, &data_size)) {
2076 return error::kOutOfBounds; 2076 return error::kOutOfBounds;
2077 } 2077 }
2078 const GLfloat* v = 2078 const GLfloat* v =
2079 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size); 2079 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size);
2080 if (v == NULL) { 2080 if (v == NULL) {
2081 return error::kOutOfBounds; 2081 return error::kOutOfBounds;
2082 } 2082 }
2083 DoUniform2fv(location, count, v); 2083 DoUniform2fv(location, count, v);
2084 return error::kNoError; 2084 return error::kNoError;
2085 } 2085 }
2086 2086
2087 error::Error GLES2DecoderImpl::HandleUniform2fvImmediate( 2087 error::Error GLES2DecoderImpl::HandleUniform2fvImmediate(
2088 uint32 immediate_data_size, 2088 uint32_t immediate_data_size,
2089 const gles2::cmds::Uniform2fvImmediate& c) { 2089 const gles2::cmds::Uniform2fvImmediate& c) {
2090 GLint location = static_cast<GLint>(c.location); 2090 GLint location = static_cast<GLint>(c.location);
2091 GLsizei count = static_cast<GLsizei>(c.count); 2091 GLsizei count = static_cast<GLsizei>(c.count);
2092 uint32 data_size; 2092 uint32_t data_size;
2093 if (!ComputeDataSize(count, sizeof(GLfloat), 2, &data_size)) { 2093 if (!ComputeDataSize(count, sizeof(GLfloat), 2, &data_size)) {
2094 return error::kOutOfBounds; 2094 return error::kOutOfBounds;
2095 } 2095 }
2096 if (data_size > immediate_data_size) { 2096 if (data_size > immediate_data_size) {
2097 return error::kOutOfBounds; 2097 return error::kOutOfBounds;
2098 } 2098 }
2099 const GLfloat* v = 2099 const GLfloat* v =
2100 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2100 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2101 if (v == NULL) { 2101 if (v == NULL) {
2102 return error::kOutOfBounds; 2102 return error::kOutOfBounds;
2103 } 2103 }
2104 DoUniform2fv(location, count, v); 2104 DoUniform2fv(location, count, v);
2105 return error::kNoError; 2105 return error::kNoError;
2106 } 2106 }
2107 2107
2108 error::Error GLES2DecoderImpl::HandleUniform2i( 2108 error::Error GLES2DecoderImpl::HandleUniform2i(
2109 uint32 immediate_data_size, 2109 uint32_t immediate_data_size,
2110 const gles2::cmds::Uniform2i& c) { 2110 const gles2::cmds::Uniform2i& c) {
2111 GLint location = static_cast<GLint>(c.location); 2111 GLint location = static_cast<GLint>(c.location);
2112 GLint x = static_cast<GLint>(c.x); 2112 GLint x = static_cast<GLint>(c.x);
2113 GLint y = static_cast<GLint>(c.y); 2113 GLint y = static_cast<GLint>(c.y);
2114 GLint temp[2] = { 2114 GLint temp[2] = {
2115 x, y, 2115 x, y,
2116 }; 2116 };
2117 DoUniform2iv(location, 1, &temp[0]); 2117 DoUniform2iv(location, 1, &temp[0]);
2118 return error::kNoError; 2118 return error::kNoError;
2119 } 2119 }
2120 2120
2121 error::Error GLES2DecoderImpl::HandleUniform2iv( 2121 error::Error GLES2DecoderImpl::HandleUniform2iv(
2122 uint32 immediate_data_size, 2122 uint32_t immediate_data_size,
2123 const gles2::cmds::Uniform2iv& c) { 2123 const gles2::cmds::Uniform2iv& c) {
2124 GLint location = static_cast<GLint>(c.location); 2124 GLint location = static_cast<GLint>(c.location);
2125 GLsizei count = static_cast<GLsizei>(c.count); 2125 GLsizei count = static_cast<GLsizei>(c.count);
2126 uint32 data_size; 2126 uint32_t data_size;
2127 if (!ComputeDataSize(count, sizeof(GLint), 2, &data_size)) { 2127 if (!ComputeDataSize(count, sizeof(GLint), 2, &data_size)) {
2128 return error::kOutOfBounds; 2128 return error::kOutOfBounds;
2129 } 2129 }
2130 const GLint* v = 2130 const GLint* v =
2131 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size); 2131 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size);
2132 if (v == NULL) { 2132 if (v == NULL) {
2133 return error::kOutOfBounds; 2133 return error::kOutOfBounds;
2134 } 2134 }
2135 DoUniform2iv(location, count, v); 2135 DoUniform2iv(location, count, v);
2136 return error::kNoError; 2136 return error::kNoError;
2137 } 2137 }
2138 2138
2139 error::Error GLES2DecoderImpl::HandleUniform2ivImmediate( 2139 error::Error GLES2DecoderImpl::HandleUniform2ivImmediate(
2140 uint32 immediate_data_size, 2140 uint32_t immediate_data_size,
2141 const gles2::cmds::Uniform2ivImmediate& c) { 2141 const gles2::cmds::Uniform2ivImmediate& c) {
2142 GLint location = static_cast<GLint>(c.location); 2142 GLint location = static_cast<GLint>(c.location);
2143 GLsizei count = static_cast<GLsizei>(c.count); 2143 GLsizei count = static_cast<GLsizei>(c.count);
2144 uint32 data_size; 2144 uint32_t data_size;
2145 if (!ComputeDataSize(count, sizeof(GLint), 2, &data_size)) { 2145 if (!ComputeDataSize(count, sizeof(GLint), 2, &data_size)) {
2146 return error::kOutOfBounds; 2146 return error::kOutOfBounds;
2147 } 2147 }
2148 if (data_size > immediate_data_size) { 2148 if (data_size > immediate_data_size) {
2149 return error::kOutOfBounds; 2149 return error::kOutOfBounds;
2150 } 2150 }
2151 const GLint* v = 2151 const GLint* v =
2152 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2152 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2153 if (v == NULL) { 2153 if (v == NULL) {
2154 return error::kOutOfBounds; 2154 return error::kOutOfBounds;
2155 } 2155 }
2156 DoUniform2iv(location, count, v); 2156 DoUniform2iv(location, count, v);
2157 return error::kNoError; 2157 return error::kNoError;
2158 } 2158 }
2159 2159
2160 error::Error GLES2DecoderImpl::HandleUniform3f( 2160 error::Error GLES2DecoderImpl::HandleUniform3f(
2161 uint32 immediate_data_size, 2161 uint32_t immediate_data_size,
2162 const gles2::cmds::Uniform3f& c) { 2162 const gles2::cmds::Uniform3f& c) {
2163 GLint location = static_cast<GLint>(c.location); 2163 GLint location = static_cast<GLint>(c.location);
2164 GLfloat x = static_cast<GLfloat>(c.x); 2164 GLfloat x = static_cast<GLfloat>(c.x);
2165 GLfloat y = static_cast<GLfloat>(c.y); 2165 GLfloat y = static_cast<GLfloat>(c.y);
2166 GLfloat z = static_cast<GLfloat>(c.z); 2166 GLfloat z = static_cast<GLfloat>(c.z);
2167 GLfloat temp[3] = { 2167 GLfloat temp[3] = {
2168 x, y, z, 2168 x, y, z,
2169 }; 2169 };
2170 DoUniform3fv(location, 1, &temp[0]); 2170 DoUniform3fv(location, 1, &temp[0]);
2171 return error::kNoError; 2171 return error::kNoError;
2172 } 2172 }
2173 2173
2174 error::Error GLES2DecoderImpl::HandleUniform3fv( 2174 error::Error GLES2DecoderImpl::HandleUniform3fv(
2175 uint32 immediate_data_size, 2175 uint32_t immediate_data_size,
2176 const gles2::cmds::Uniform3fv& c) { 2176 const gles2::cmds::Uniform3fv& 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 uint32 data_size; 2179 uint32_t data_size;
2180 if (!ComputeDataSize(count, sizeof(GLfloat), 3, &data_size)) { 2180 if (!ComputeDataSize(count, sizeof(GLfloat), 3, &data_size)) {
2181 return error::kOutOfBounds; 2181 return error::kOutOfBounds;
2182 } 2182 }
2183 const GLfloat* v = 2183 const GLfloat* v =
2184 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size); 2184 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size);
2185 if (v == NULL) { 2185 if (v == NULL) {
2186 return error::kOutOfBounds; 2186 return error::kOutOfBounds;
2187 } 2187 }
2188 DoUniform3fv(location, count, v); 2188 DoUniform3fv(location, count, v);
2189 return error::kNoError; 2189 return error::kNoError;
2190 } 2190 }
2191 2191
2192 error::Error GLES2DecoderImpl::HandleUniform3fvImmediate( 2192 error::Error GLES2DecoderImpl::HandleUniform3fvImmediate(
2193 uint32 immediate_data_size, 2193 uint32_t immediate_data_size,
2194 const gles2::cmds::Uniform3fvImmediate& c) { 2194 const gles2::cmds::Uniform3fvImmediate& c) {
2195 GLint location = static_cast<GLint>(c.location); 2195 GLint location = static_cast<GLint>(c.location);
2196 GLsizei count = static_cast<GLsizei>(c.count); 2196 GLsizei count = static_cast<GLsizei>(c.count);
2197 uint32 data_size; 2197 uint32_t data_size;
2198 if (!ComputeDataSize(count, sizeof(GLfloat), 3, &data_size)) { 2198 if (!ComputeDataSize(count, sizeof(GLfloat), 3, &data_size)) {
2199 return error::kOutOfBounds; 2199 return error::kOutOfBounds;
2200 } 2200 }
2201 if (data_size > immediate_data_size) { 2201 if (data_size > immediate_data_size) {
2202 return error::kOutOfBounds; 2202 return error::kOutOfBounds;
2203 } 2203 }
2204 const GLfloat* v = 2204 const GLfloat* v =
2205 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2205 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2206 if (v == NULL) { 2206 if (v == NULL) {
2207 return error::kOutOfBounds; 2207 return error::kOutOfBounds;
2208 } 2208 }
2209 DoUniform3fv(location, count, v); 2209 DoUniform3fv(location, count, v);
2210 return error::kNoError; 2210 return error::kNoError;
2211 } 2211 }
2212 2212
2213 error::Error GLES2DecoderImpl::HandleUniform3i( 2213 error::Error GLES2DecoderImpl::HandleUniform3i(
2214 uint32 immediate_data_size, 2214 uint32_t immediate_data_size,
2215 const gles2::cmds::Uniform3i& c) { 2215 const gles2::cmds::Uniform3i& c) {
2216 GLint location = static_cast<GLint>(c.location); 2216 GLint location = static_cast<GLint>(c.location);
2217 GLint x = static_cast<GLint>(c.x); 2217 GLint x = static_cast<GLint>(c.x);
2218 GLint y = static_cast<GLint>(c.y); 2218 GLint y = static_cast<GLint>(c.y);
2219 GLint z = static_cast<GLint>(c.z); 2219 GLint z = static_cast<GLint>(c.z);
2220 GLint temp[3] = { 2220 GLint temp[3] = {
2221 x, y, z, 2221 x, y, z,
2222 }; 2222 };
2223 DoUniform3iv(location, 1, &temp[0]); 2223 DoUniform3iv(location, 1, &temp[0]);
2224 return error::kNoError; 2224 return error::kNoError;
2225 } 2225 }
2226 2226
2227 error::Error GLES2DecoderImpl::HandleUniform3iv( 2227 error::Error GLES2DecoderImpl::HandleUniform3iv(
2228 uint32 immediate_data_size, 2228 uint32_t immediate_data_size,
2229 const gles2::cmds::Uniform3iv& c) { 2229 const gles2::cmds::Uniform3iv& c) {
2230 GLint location = static_cast<GLint>(c.location); 2230 GLint location = static_cast<GLint>(c.location);
2231 GLsizei count = static_cast<GLsizei>(c.count); 2231 GLsizei count = static_cast<GLsizei>(c.count);
2232 uint32 data_size; 2232 uint32_t data_size;
2233 if (!ComputeDataSize(count, sizeof(GLint), 3, &data_size)) { 2233 if (!ComputeDataSize(count, sizeof(GLint), 3, &data_size)) {
2234 return error::kOutOfBounds; 2234 return error::kOutOfBounds;
2235 } 2235 }
2236 const GLint* v = 2236 const GLint* v =
2237 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size); 2237 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size);
2238 if (v == NULL) { 2238 if (v == NULL) {
2239 return error::kOutOfBounds; 2239 return error::kOutOfBounds;
2240 } 2240 }
2241 DoUniform3iv(location, count, v); 2241 DoUniform3iv(location, count, v);
2242 return error::kNoError; 2242 return error::kNoError;
2243 } 2243 }
2244 2244
2245 error::Error GLES2DecoderImpl::HandleUniform3ivImmediate( 2245 error::Error GLES2DecoderImpl::HandleUniform3ivImmediate(
2246 uint32 immediate_data_size, 2246 uint32_t immediate_data_size,
2247 const gles2::cmds::Uniform3ivImmediate& c) { 2247 const gles2::cmds::Uniform3ivImmediate& c) {
2248 GLint location = static_cast<GLint>(c.location); 2248 GLint location = static_cast<GLint>(c.location);
2249 GLsizei count = static_cast<GLsizei>(c.count); 2249 GLsizei count = static_cast<GLsizei>(c.count);
2250 uint32 data_size; 2250 uint32_t data_size;
2251 if (!ComputeDataSize(count, sizeof(GLint), 3, &data_size)) { 2251 if (!ComputeDataSize(count, sizeof(GLint), 3, &data_size)) {
2252 return error::kOutOfBounds; 2252 return error::kOutOfBounds;
2253 } 2253 }
2254 if (data_size > immediate_data_size) { 2254 if (data_size > immediate_data_size) {
2255 return error::kOutOfBounds; 2255 return error::kOutOfBounds;
2256 } 2256 }
2257 const GLint* v = 2257 const GLint* v =
2258 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2258 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2259 if (v == NULL) { 2259 if (v == NULL) {
2260 return error::kOutOfBounds; 2260 return error::kOutOfBounds;
2261 } 2261 }
2262 DoUniform3iv(location, count, v); 2262 DoUniform3iv(location, count, v);
2263 return error::kNoError; 2263 return error::kNoError;
2264 } 2264 }
2265 2265
2266 error::Error GLES2DecoderImpl::HandleUniform4f( 2266 error::Error GLES2DecoderImpl::HandleUniform4f(
2267 uint32 immediate_data_size, 2267 uint32_t immediate_data_size,
2268 const gles2::cmds::Uniform4f& c) { 2268 const gles2::cmds::Uniform4f& c) {
2269 GLint location = static_cast<GLint>(c.location); 2269 GLint location = static_cast<GLint>(c.location);
2270 GLfloat x = static_cast<GLfloat>(c.x); 2270 GLfloat x = static_cast<GLfloat>(c.x);
2271 GLfloat y = static_cast<GLfloat>(c.y); 2271 GLfloat y = static_cast<GLfloat>(c.y);
2272 GLfloat z = static_cast<GLfloat>(c.z); 2272 GLfloat z = static_cast<GLfloat>(c.z);
2273 GLfloat w = static_cast<GLfloat>(c.w); 2273 GLfloat w = static_cast<GLfloat>(c.w);
2274 GLfloat temp[4] = { 2274 GLfloat temp[4] = {
2275 x, y, z, w, 2275 x, y, z, w,
2276 }; 2276 };
2277 DoUniform4fv(location, 1, &temp[0]); 2277 DoUniform4fv(location, 1, &temp[0]);
2278 return error::kNoError; 2278 return error::kNoError;
2279 } 2279 }
2280 2280
2281 error::Error GLES2DecoderImpl::HandleUniform4fv( 2281 error::Error GLES2DecoderImpl::HandleUniform4fv(
2282 uint32 immediate_data_size, 2282 uint32_t immediate_data_size,
2283 const gles2::cmds::Uniform4fv& c) { 2283 const gles2::cmds::Uniform4fv& c) {
2284 GLint location = static_cast<GLint>(c.location); 2284 GLint location = static_cast<GLint>(c.location);
2285 GLsizei count = static_cast<GLsizei>(c.count); 2285 GLsizei count = static_cast<GLsizei>(c.count);
2286 uint32 data_size; 2286 uint32_t data_size;
2287 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { 2287 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) {
2288 return error::kOutOfBounds; 2288 return error::kOutOfBounds;
2289 } 2289 }
2290 const GLfloat* v = 2290 const GLfloat* v =
2291 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size); 2291 GetSharedMemoryAs<const GLfloat*>(c.v_shm_id, c.v_shm_offset, data_size);
2292 if (v == NULL) { 2292 if (v == NULL) {
2293 return error::kOutOfBounds; 2293 return error::kOutOfBounds;
2294 } 2294 }
2295 DoUniform4fv(location, count, v); 2295 DoUniform4fv(location, count, v);
2296 return error::kNoError; 2296 return error::kNoError;
2297 } 2297 }
2298 2298
2299 error::Error GLES2DecoderImpl::HandleUniform4fvImmediate( 2299 error::Error GLES2DecoderImpl::HandleUniform4fvImmediate(
2300 uint32 immediate_data_size, 2300 uint32_t immediate_data_size,
2301 const gles2::cmds::Uniform4fvImmediate& c) { 2301 const gles2::cmds::Uniform4fvImmediate& c) {
2302 GLint location = static_cast<GLint>(c.location); 2302 GLint location = static_cast<GLint>(c.location);
2303 GLsizei count = static_cast<GLsizei>(c.count); 2303 GLsizei count = static_cast<GLsizei>(c.count);
2304 uint32 data_size; 2304 uint32_t data_size;
2305 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { 2305 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) {
2306 return error::kOutOfBounds; 2306 return error::kOutOfBounds;
2307 } 2307 }
2308 if (data_size > immediate_data_size) { 2308 if (data_size > immediate_data_size) {
2309 return error::kOutOfBounds; 2309 return error::kOutOfBounds;
2310 } 2310 }
2311 const GLfloat* v = 2311 const GLfloat* v =
2312 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2312 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2313 if (v == NULL) { 2313 if (v == NULL) {
2314 return error::kOutOfBounds; 2314 return error::kOutOfBounds;
2315 } 2315 }
2316 DoUniform4fv(location, count, v); 2316 DoUniform4fv(location, count, v);
2317 return error::kNoError; 2317 return error::kNoError;
2318 } 2318 }
2319 2319
2320 error::Error GLES2DecoderImpl::HandleUniform4i( 2320 error::Error GLES2DecoderImpl::HandleUniform4i(
2321 uint32 immediate_data_size, 2321 uint32_t immediate_data_size,
2322 const gles2::cmds::Uniform4i& c) { 2322 const gles2::cmds::Uniform4i& c) {
2323 GLint location = static_cast<GLint>(c.location); 2323 GLint location = static_cast<GLint>(c.location);
2324 GLint x = static_cast<GLint>(c.x); 2324 GLint x = static_cast<GLint>(c.x);
2325 GLint y = static_cast<GLint>(c.y); 2325 GLint y = static_cast<GLint>(c.y);
2326 GLint z = static_cast<GLint>(c.z); 2326 GLint z = static_cast<GLint>(c.z);
2327 GLint w = static_cast<GLint>(c.w); 2327 GLint w = static_cast<GLint>(c.w);
2328 GLint temp[4] = { 2328 GLint temp[4] = {
2329 x, y, z, w, 2329 x, y, z, w,
2330 }; 2330 };
2331 DoUniform4iv(location, 1, &temp[0]); 2331 DoUniform4iv(location, 1, &temp[0]);
2332 return error::kNoError; 2332 return error::kNoError;
2333 } 2333 }
2334 2334
2335 error::Error GLES2DecoderImpl::HandleUniform4iv( 2335 error::Error GLES2DecoderImpl::HandleUniform4iv(
2336 uint32 immediate_data_size, 2336 uint32_t immediate_data_size,
2337 const gles2::cmds::Uniform4iv& c) { 2337 const gles2::cmds::Uniform4iv& c) {
2338 GLint location = static_cast<GLint>(c.location); 2338 GLint location = static_cast<GLint>(c.location);
2339 GLsizei count = static_cast<GLsizei>(c.count); 2339 GLsizei count = static_cast<GLsizei>(c.count);
2340 uint32 data_size; 2340 uint32_t data_size;
2341 if (!ComputeDataSize(count, sizeof(GLint), 4, &data_size)) { 2341 if (!ComputeDataSize(count, sizeof(GLint), 4, &data_size)) {
2342 return error::kOutOfBounds; 2342 return error::kOutOfBounds;
2343 } 2343 }
2344 const GLint* v = 2344 const GLint* v =
2345 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size); 2345 GetSharedMemoryAs<const GLint*>(c.v_shm_id, c.v_shm_offset, data_size);
2346 if (v == NULL) { 2346 if (v == NULL) {
2347 return error::kOutOfBounds; 2347 return error::kOutOfBounds;
2348 } 2348 }
2349 DoUniform4iv(location, count, v); 2349 DoUniform4iv(location, count, v);
2350 return error::kNoError; 2350 return error::kNoError;
2351 } 2351 }
2352 2352
2353 error::Error GLES2DecoderImpl::HandleUniform4ivImmediate( 2353 error::Error GLES2DecoderImpl::HandleUniform4ivImmediate(
2354 uint32 immediate_data_size, 2354 uint32_t immediate_data_size,
2355 const gles2::cmds::Uniform4ivImmediate& c) { 2355 const gles2::cmds::Uniform4ivImmediate& c) {
2356 GLint location = static_cast<GLint>(c.location); 2356 GLint location = static_cast<GLint>(c.location);
2357 GLsizei count = static_cast<GLsizei>(c.count); 2357 GLsizei count = static_cast<GLsizei>(c.count);
2358 uint32 data_size; 2358 uint32_t data_size;
2359 if (!ComputeDataSize(count, sizeof(GLint), 4, &data_size)) { 2359 if (!ComputeDataSize(count, sizeof(GLint), 4, &data_size)) {
2360 return error::kOutOfBounds; 2360 return error::kOutOfBounds;
2361 } 2361 }
2362 if (data_size > immediate_data_size) { 2362 if (data_size > immediate_data_size) {
2363 return error::kOutOfBounds; 2363 return error::kOutOfBounds;
2364 } 2364 }
2365 const GLint* v = 2365 const GLint* v =
2366 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2366 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2367 if (v == NULL) { 2367 if (v == NULL) {
2368 return error::kOutOfBounds; 2368 return error::kOutOfBounds;
2369 } 2369 }
2370 DoUniform4iv(location, count, v); 2370 DoUniform4iv(location, count, v);
2371 return error::kNoError; 2371 return error::kNoError;
2372 } 2372 }
2373 2373
2374 error::Error GLES2DecoderImpl::HandleUniformMatrix2fv( 2374 error::Error GLES2DecoderImpl::HandleUniformMatrix2fv(
2375 uint32 immediate_data_size, 2375 uint32_t immediate_data_size,
2376 const gles2::cmds::UniformMatrix2fv& c) { 2376 const gles2::cmds::UniformMatrix2fv& c) {
2377 GLint location = static_cast<GLint>(c.location); 2377 GLint location = static_cast<GLint>(c.location);
2378 GLsizei count = static_cast<GLsizei>(c.count); 2378 GLsizei count = static_cast<GLsizei>(c.count);
2379 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2379 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2380 uint32 data_size; 2380 uint32_t data_size;
2381 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { 2381 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) {
2382 return error::kOutOfBounds; 2382 return error::kOutOfBounds;
2383 } 2383 }
2384 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( 2384 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>(
2385 c.value_shm_id, c.value_shm_offset, data_size); 2385 c.value_shm_id, c.value_shm_offset, data_size);
2386 if (!validators_->false_only.IsValid(transpose)) { 2386 if (!validators_->false_only.IsValid(transpose)) {
2387 LOCAL_SET_GL_ERROR( 2387 LOCAL_SET_GL_ERROR(
2388 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE"); 2388 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE");
2389 return error::kNoError; 2389 return error::kNoError;
2390 } 2390 }
2391 if (value == NULL) { 2391 if (value == NULL) {
2392 return error::kOutOfBounds; 2392 return error::kOutOfBounds;
2393 } 2393 }
2394 DoUniformMatrix2fv(location, count, transpose, value); 2394 DoUniformMatrix2fv(location, count, transpose, value);
2395 return error::kNoError; 2395 return error::kNoError;
2396 } 2396 }
2397 2397
2398 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( 2398 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate(
2399 uint32 immediate_data_size, 2399 uint32_t immediate_data_size,
2400 const gles2::cmds::UniformMatrix2fvImmediate& c) { 2400 const gles2::cmds::UniformMatrix2fvImmediate& c) {
2401 GLint location = static_cast<GLint>(c.location); 2401 GLint location = static_cast<GLint>(c.location);
2402 GLsizei count = static_cast<GLsizei>(c.count); 2402 GLsizei count = static_cast<GLsizei>(c.count);
2403 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2403 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2404 uint32 data_size; 2404 uint32_t data_size;
2405 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { 2405 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) {
2406 return error::kOutOfBounds; 2406 return error::kOutOfBounds;
2407 } 2407 }
2408 if (data_size > immediate_data_size) { 2408 if (data_size > immediate_data_size) {
2409 return error::kOutOfBounds; 2409 return error::kOutOfBounds;
2410 } 2410 }
2411 const GLfloat* value = 2411 const GLfloat* value =
2412 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2412 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2413 if (!validators_->false_only.IsValid(transpose)) { 2413 if (!validators_->false_only.IsValid(transpose)) {
2414 LOCAL_SET_GL_ERROR( 2414 LOCAL_SET_GL_ERROR(
2415 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE"); 2415 GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE");
2416 return error::kNoError; 2416 return error::kNoError;
2417 } 2417 }
2418 if (value == NULL) { 2418 if (value == NULL) {
2419 return error::kOutOfBounds; 2419 return error::kOutOfBounds;
2420 } 2420 }
2421 DoUniformMatrix2fv(location, count, transpose, value); 2421 DoUniformMatrix2fv(location, count, transpose, value);
2422 return error::kNoError; 2422 return error::kNoError;
2423 } 2423 }
2424 2424
2425 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv( 2425 error::Error GLES2DecoderImpl::HandleUniformMatrix3fv(
2426 uint32 immediate_data_size, 2426 uint32_t immediate_data_size,
2427 const gles2::cmds::UniformMatrix3fv& c) { 2427 const gles2::cmds::UniformMatrix3fv& c) {
2428 GLint location = static_cast<GLint>(c.location); 2428 GLint location = static_cast<GLint>(c.location);
2429 GLsizei count = static_cast<GLsizei>(c.count); 2429 GLsizei count = static_cast<GLsizei>(c.count);
2430 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2430 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2431 uint32 data_size; 2431 uint32_t data_size;
2432 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { 2432 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) {
2433 return error::kOutOfBounds; 2433 return error::kOutOfBounds;
2434 } 2434 }
2435 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( 2435 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>(
2436 c.value_shm_id, c.value_shm_offset, data_size); 2436 c.value_shm_id, c.value_shm_offset, data_size);
2437 if (!validators_->false_only.IsValid(transpose)) { 2437 if (!validators_->false_only.IsValid(transpose)) {
2438 LOCAL_SET_GL_ERROR( 2438 LOCAL_SET_GL_ERROR(
2439 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE"); 2439 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE");
2440 return error::kNoError; 2440 return error::kNoError;
2441 } 2441 }
2442 if (value == NULL) { 2442 if (value == NULL) {
2443 return error::kOutOfBounds; 2443 return error::kOutOfBounds;
2444 } 2444 }
2445 DoUniformMatrix3fv(location, count, transpose, value); 2445 DoUniformMatrix3fv(location, count, transpose, value);
2446 return error::kNoError; 2446 return error::kNoError;
2447 } 2447 }
2448 2448
2449 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( 2449 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate(
2450 uint32 immediate_data_size, 2450 uint32_t immediate_data_size,
2451 const gles2::cmds::UniformMatrix3fvImmediate& c) { 2451 const gles2::cmds::UniformMatrix3fvImmediate& c) {
2452 GLint location = static_cast<GLint>(c.location); 2452 GLint location = static_cast<GLint>(c.location);
2453 GLsizei count = static_cast<GLsizei>(c.count); 2453 GLsizei count = static_cast<GLsizei>(c.count);
2454 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2454 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2455 uint32 data_size; 2455 uint32_t data_size;
2456 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { 2456 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) {
2457 return error::kOutOfBounds; 2457 return error::kOutOfBounds;
2458 } 2458 }
2459 if (data_size > immediate_data_size) { 2459 if (data_size > immediate_data_size) {
2460 return error::kOutOfBounds; 2460 return error::kOutOfBounds;
2461 } 2461 }
2462 const GLfloat* value = 2462 const GLfloat* value =
2463 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2463 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2464 if (!validators_->false_only.IsValid(transpose)) { 2464 if (!validators_->false_only.IsValid(transpose)) {
2465 LOCAL_SET_GL_ERROR( 2465 LOCAL_SET_GL_ERROR(
2466 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE"); 2466 GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE");
2467 return error::kNoError; 2467 return error::kNoError;
2468 } 2468 }
2469 if (value == NULL) { 2469 if (value == NULL) {
2470 return error::kOutOfBounds; 2470 return error::kOutOfBounds;
2471 } 2471 }
2472 DoUniformMatrix3fv(location, count, transpose, value); 2472 DoUniformMatrix3fv(location, count, transpose, value);
2473 return error::kNoError; 2473 return error::kNoError;
2474 } 2474 }
2475 2475
2476 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv( 2476 error::Error GLES2DecoderImpl::HandleUniformMatrix4fv(
2477 uint32 immediate_data_size, 2477 uint32_t immediate_data_size,
2478 const gles2::cmds::UniformMatrix4fv& c) { 2478 const gles2::cmds::UniformMatrix4fv& c) {
2479 GLint location = static_cast<GLint>(c.location); 2479 GLint location = static_cast<GLint>(c.location);
2480 GLsizei count = static_cast<GLsizei>(c.count); 2480 GLsizei count = static_cast<GLsizei>(c.count);
2481 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2481 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2482 uint32 data_size; 2482 uint32_t data_size;
2483 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { 2483 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) {
2484 return error::kOutOfBounds; 2484 return error::kOutOfBounds;
2485 } 2485 }
2486 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>( 2486 const GLfloat* value = GetSharedMemoryAs<const GLfloat*>(
2487 c.value_shm_id, c.value_shm_offset, data_size); 2487 c.value_shm_id, c.value_shm_offset, data_size);
2488 if (!validators_->false_only.IsValid(transpose)) { 2488 if (!validators_->false_only.IsValid(transpose)) {
2489 LOCAL_SET_GL_ERROR( 2489 LOCAL_SET_GL_ERROR(
2490 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE"); 2490 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE");
2491 return error::kNoError; 2491 return error::kNoError;
2492 } 2492 }
2493 if (value == NULL) { 2493 if (value == NULL) {
2494 return error::kOutOfBounds; 2494 return error::kOutOfBounds;
2495 } 2495 }
2496 DoUniformMatrix4fv(location, count, transpose, value); 2496 DoUniformMatrix4fv(location, count, transpose, value);
2497 return error::kNoError; 2497 return error::kNoError;
2498 } 2498 }
2499 2499
2500 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( 2500 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate(
2501 uint32 immediate_data_size, 2501 uint32_t immediate_data_size,
2502 const gles2::cmds::UniformMatrix4fvImmediate& c) { 2502 const gles2::cmds::UniformMatrix4fvImmediate& c) {
2503 GLint location = static_cast<GLint>(c.location); 2503 GLint location = static_cast<GLint>(c.location);
2504 GLsizei count = static_cast<GLsizei>(c.count); 2504 GLsizei count = static_cast<GLsizei>(c.count);
2505 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2505 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2506 uint32 data_size; 2506 uint32_t data_size;
2507 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { 2507 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) {
2508 return error::kOutOfBounds; 2508 return error::kOutOfBounds;
2509 } 2509 }
2510 if (data_size > immediate_data_size) { 2510 if (data_size > immediate_data_size) {
2511 return error::kOutOfBounds; 2511 return error::kOutOfBounds;
2512 } 2512 }
2513 const GLfloat* value = 2513 const GLfloat* value =
2514 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2514 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2515 if (!validators_->false_only.IsValid(transpose)) { 2515 if (!validators_->false_only.IsValid(transpose)) {
2516 LOCAL_SET_GL_ERROR( 2516 LOCAL_SET_GL_ERROR(
2517 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE"); 2517 GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE");
2518 return error::kNoError; 2518 return error::kNoError;
2519 } 2519 }
2520 if (value == NULL) { 2520 if (value == NULL) {
2521 return error::kOutOfBounds; 2521 return error::kOutOfBounds;
2522 } 2522 }
2523 DoUniformMatrix4fv(location, count, transpose, value); 2523 DoUniformMatrix4fv(location, count, transpose, value);
2524 return error::kNoError; 2524 return error::kNoError;
2525 } 2525 }
2526 2526
2527 error::Error GLES2DecoderImpl::HandleUseProgram( 2527 error::Error GLES2DecoderImpl::HandleUseProgram(
2528 uint32 immediate_data_size, 2528 uint32_t immediate_data_size,
2529 const gles2::cmds::UseProgram& c) { 2529 const gles2::cmds::UseProgram& c) {
2530 GLuint program = c.program; 2530 GLuint program = c.program;
2531 DoUseProgram(program); 2531 DoUseProgram(program);
2532 return error::kNoError; 2532 return error::kNoError;
2533 } 2533 }
2534 2534
2535 error::Error GLES2DecoderImpl::HandleValidateProgram( 2535 error::Error GLES2DecoderImpl::HandleValidateProgram(
2536 uint32 immediate_data_size, 2536 uint32_t immediate_data_size,
2537 const gles2::cmds::ValidateProgram& c) { 2537 const gles2::cmds::ValidateProgram& c) {
2538 GLuint program = c.program; 2538 GLuint program = c.program;
2539 DoValidateProgram(program); 2539 DoValidateProgram(program);
2540 return error::kNoError; 2540 return error::kNoError;
2541 } 2541 }
2542 2542
2543 error::Error GLES2DecoderImpl::HandleVertexAttrib1f( 2543 error::Error GLES2DecoderImpl::HandleVertexAttrib1f(
2544 uint32 immediate_data_size, 2544 uint32_t immediate_data_size,
2545 const gles2::cmds::VertexAttrib1f& c) { 2545 const gles2::cmds::VertexAttrib1f& c) {
2546 GLuint indx = static_cast<GLuint>(c.indx); 2546 GLuint indx = static_cast<GLuint>(c.indx);
2547 GLfloat x = static_cast<GLfloat>(c.x); 2547 GLfloat x = static_cast<GLfloat>(c.x);
2548 DoVertexAttrib1f(indx, x); 2548 DoVertexAttrib1f(indx, x);
2549 return error::kNoError; 2549 return error::kNoError;
2550 } 2550 }
2551 2551
2552 error::Error GLES2DecoderImpl::HandleVertexAttrib1fv( 2552 error::Error GLES2DecoderImpl::HandleVertexAttrib1fv(
2553 uint32 immediate_data_size, 2553 uint32_t immediate_data_size,
2554 const gles2::cmds::VertexAttrib1fv& c) { 2554 const gles2::cmds::VertexAttrib1fv& c) {
2555 GLuint indx = static_cast<GLuint>(c.indx); 2555 GLuint indx = static_cast<GLuint>(c.indx);
2556 uint32 data_size; 2556 uint32_t data_size;
2557 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { 2557 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
2558 return error::kOutOfBounds; 2558 return error::kOutOfBounds;
2559 } 2559 }
2560 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>( 2560 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>(
2561 c.values_shm_id, c.values_shm_offset, data_size); 2561 c.values_shm_id, c.values_shm_offset, data_size);
2562 if (values == NULL) { 2562 if (values == NULL) {
2563 return error::kOutOfBounds; 2563 return error::kOutOfBounds;
2564 } 2564 }
2565 DoVertexAttrib1fv(indx, values); 2565 DoVertexAttrib1fv(indx, values);
2566 return error::kNoError; 2566 return error::kNoError;
2567 } 2567 }
2568 2568
2569 error::Error GLES2DecoderImpl::HandleVertexAttrib1fvImmediate( 2569 error::Error GLES2DecoderImpl::HandleVertexAttrib1fvImmediate(
2570 uint32 immediate_data_size, 2570 uint32_t immediate_data_size,
2571 const gles2::cmds::VertexAttrib1fvImmediate& c) { 2571 const gles2::cmds::VertexAttrib1fvImmediate& c) {
2572 GLuint indx = static_cast<GLuint>(c.indx); 2572 GLuint indx = static_cast<GLuint>(c.indx);
2573 uint32 data_size; 2573 uint32_t data_size;
2574 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { 2574 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
2575 return error::kOutOfBounds; 2575 return error::kOutOfBounds;
2576 } 2576 }
2577 if (data_size > immediate_data_size) { 2577 if (data_size > immediate_data_size) {
2578 return error::kOutOfBounds; 2578 return error::kOutOfBounds;
2579 } 2579 }
2580 const GLfloat* values = 2580 const GLfloat* values =
2581 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2581 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2582 if (values == NULL) { 2582 if (values == NULL) {
2583 return error::kOutOfBounds; 2583 return error::kOutOfBounds;
2584 } 2584 }
2585 DoVertexAttrib1fv(indx, values); 2585 DoVertexAttrib1fv(indx, values);
2586 return error::kNoError; 2586 return error::kNoError;
2587 } 2587 }
2588 2588
2589 error::Error GLES2DecoderImpl::HandleVertexAttrib2f( 2589 error::Error GLES2DecoderImpl::HandleVertexAttrib2f(
2590 uint32 immediate_data_size, 2590 uint32_t immediate_data_size,
2591 const gles2::cmds::VertexAttrib2f& c) { 2591 const gles2::cmds::VertexAttrib2f& c) {
2592 GLuint indx = static_cast<GLuint>(c.indx); 2592 GLuint indx = static_cast<GLuint>(c.indx);
2593 GLfloat x = static_cast<GLfloat>(c.x); 2593 GLfloat x = static_cast<GLfloat>(c.x);
2594 GLfloat y = static_cast<GLfloat>(c.y); 2594 GLfloat y = static_cast<GLfloat>(c.y);
2595 DoVertexAttrib2f(indx, x, y); 2595 DoVertexAttrib2f(indx, x, y);
2596 return error::kNoError; 2596 return error::kNoError;
2597 } 2597 }
2598 2598
2599 error::Error GLES2DecoderImpl::HandleVertexAttrib2fv( 2599 error::Error GLES2DecoderImpl::HandleVertexAttrib2fv(
2600 uint32 immediate_data_size, 2600 uint32_t immediate_data_size,
2601 const gles2::cmds::VertexAttrib2fv& c) { 2601 const gles2::cmds::VertexAttrib2fv& c) {
2602 GLuint indx = static_cast<GLuint>(c.indx); 2602 GLuint indx = static_cast<GLuint>(c.indx);
2603 uint32 data_size; 2603 uint32_t data_size;
2604 if (!ComputeDataSize(1, sizeof(GLfloat), 2, &data_size)) { 2604 if (!ComputeDataSize(1, sizeof(GLfloat), 2, &data_size)) {
2605 return error::kOutOfBounds; 2605 return error::kOutOfBounds;
2606 } 2606 }
2607 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>( 2607 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>(
2608 c.values_shm_id, c.values_shm_offset, data_size); 2608 c.values_shm_id, c.values_shm_offset, data_size);
2609 if (values == NULL) { 2609 if (values == NULL) {
2610 return error::kOutOfBounds; 2610 return error::kOutOfBounds;
2611 } 2611 }
2612 DoVertexAttrib2fv(indx, values); 2612 DoVertexAttrib2fv(indx, values);
2613 return error::kNoError; 2613 return error::kNoError;
2614 } 2614 }
2615 2615
2616 error::Error GLES2DecoderImpl::HandleVertexAttrib2fvImmediate( 2616 error::Error GLES2DecoderImpl::HandleVertexAttrib2fvImmediate(
2617 uint32 immediate_data_size, 2617 uint32_t immediate_data_size,
2618 const gles2::cmds::VertexAttrib2fvImmediate& c) { 2618 const gles2::cmds::VertexAttrib2fvImmediate& c) {
2619 GLuint indx = static_cast<GLuint>(c.indx); 2619 GLuint indx = static_cast<GLuint>(c.indx);
2620 uint32 data_size; 2620 uint32_t data_size;
2621 if (!ComputeDataSize(1, sizeof(GLfloat), 2, &data_size)) { 2621 if (!ComputeDataSize(1, sizeof(GLfloat), 2, &data_size)) {
2622 return error::kOutOfBounds; 2622 return error::kOutOfBounds;
2623 } 2623 }
2624 if (data_size > immediate_data_size) { 2624 if (data_size > immediate_data_size) {
2625 return error::kOutOfBounds; 2625 return error::kOutOfBounds;
2626 } 2626 }
2627 const GLfloat* values = 2627 const GLfloat* values =
2628 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2628 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2629 if (values == NULL) { 2629 if (values == NULL) {
2630 return error::kOutOfBounds; 2630 return error::kOutOfBounds;
2631 } 2631 }
2632 DoVertexAttrib2fv(indx, values); 2632 DoVertexAttrib2fv(indx, values);
2633 return error::kNoError; 2633 return error::kNoError;
2634 } 2634 }
2635 2635
2636 error::Error GLES2DecoderImpl::HandleVertexAttrib3f( 2636 error::Error GLES2DecoderImpl::HandleVertexAttrib3f(
2637 uint32 immediate_data_size, 2637 uint32_t immediate_data_size,
2638 const gles2::cmds::VertexAttrib3f& c) { 2638 const gles2::cmds::VertexAttrib3f& c) {
2639 GLuint indx = static_cast<GLuint>(c.indx); 2639 GLuint indx = static_cast<GLuint>(c.indx);
2640 GLfloat x = static_cast<GLfloat>(c.x); 2640 GLfloat x = static_cast<GLfloat>(c.x);
2641 GLfloat y = static_cast<GLfloat>(c.y); 2641 GLfloat y = static_cast<GLfloat>(c.y);
2642 GLfloat z = static_cast<GLfloat>(c.z); 2642 GLfloat z = static_cast<GLfloat>(c.z);
2643 DoVertexAttrib3f(indx, x, y, z); 2643 DoVertexAttrib3f(indx, x, y, z);
2644 return error::kNoError; 2644 return error::kNoError;
2645 } 2645 }
2646 2646
2647 error::Error GLES2DecoderImpl::HandleVertexAttrib3fv( 2647 error::Error GLES2DecoderImpl::HandleVertexAttrib3fv(
2648 uint32 immediate_data_size, 2648 uint32_t immediate_data_size,
2649 const gles2::cmds::VertexAttrib3fv& c) { 2649 const gles2::cmds::VertexAttrib3fv& c) {
2650 GLuint indx = static_cast<GLuint>(c.indx); 2650 GLuint indx = static_cast<GLuint>(c.indx);
2651 uint32 data_size; 2651 uint32_t data_size;
2652 if (!ComputeDataSize(1, sizeof(GLfloat), 3, &data_size)) { 2652 if (!ComputeDataSize(1, sizeof(GLfloat), 3, &data_size)) {
2653 return error::kOutOfBounds; 2653 return error::kOutOfBounds;
2654 } 2654 }
2655 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>( 2655 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>(
2656 c.values_shm_id, c.values_shm_offset, data_size); 2656 c.values_shm_id, c.values_shm_offset, data_size);
2657 if (values == NULL) { 2657 if (values == NULL) {
2658 return error::kOutOfBounds; 2658 return error::kOutOfBounds;
2659 } 2659 }
2660 DoVertexAttrib3fv(indx, values); 2660 DoVertexAttrib3fv(indx, values);
2661 return error::kNoError; 2661 return error::kNoError;
2662 } 2662 }
2663 2663
2664 error::Error GLES2DecoderImpl::HandleVertexAttrib3fvImmediate( 2664 error::Error GLES2DecoderImpl::HandleVertexAttrib3fvImmediate(
2665 uint32 immediate_data_size, 2665 uint32_t immediate_data_size,
2666 const gles2::cmds::VertexAttrib3fvImmediate& c) { 2666 const gles2::cmds::VertexAttrib3fvImmediate& c) {
2667 GLuint indx = static_cast<GLuint>(c.indx); 2667 GLuint indx = static_cast<GLuint>(c.indx);
2668 uint32 data_size; 2668 uint32_t data_size;
2669 if (!ComputeDataSize(1, sizeof(GLfloat), 3, &data_size)) { 2669 if (!ComputeDataSize(1, sizeof(GLfloat), 3, &data_size)) {
2670 return error::kOutOfBounds; 2670 return error::kOutOfBounds;
2671 } 2671 }
2672 if (data_size > immediate_data_size) { 2672 if (data_size > immediate_data_size) {
2673 return error::kOutOfBounds; 2673 return error::kOutOfBounds;
2674 } 2674 }
2675 const GLfloat* values = 2675 const GLfloat* values =
2676 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2676 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2677 if (values == NULL) { 2677 if (values == NULL) {
2678 return error::kOutOfBounds; 2678 return error::kOutOfBounds;
2679 } 2679 }
2680 DoVertexAttrib3fv(indx, values); 2680 DoVertexAttrib3fv(indx, values);
2681 return error::kNoError; 2681 return error::kNoError;
2682 } 2682 }
2683 2683
2684 error::Error GLES2DecoderImpl::HandleVertexAttrib4f( 2684 error::Error GLES2DecoderImpl::HandleVertexAttrib4f(
2685 uint32 immediate_data_size, 2685 uint32_t immediate_data_size,
2686 const gles2::cmds::VertexAttrib4f& c) { 2686 const gles2::cmds::VertexAttrib4f& c) {
2687 GLuint indx = static_cast<GLuint>(c.indx); 2687 GLuint indx = static_cast<GLuint>(c.indx);
2688 GLfloat x = static_cast<GLfloat>(c.x); 2688 GLfloat x = static_cast<GLfloat>(c.x);
2689 GLfloat y = static_cast<GLfloat>(c.y); 2689 GLfloat y = static_cast<GLfloat>(c.y);
2690 GLfloat z = static_cast<GLfloat>(c.z); 2690 GLfloat z = static_cast<GLfloat>(c.z);
2691 GLfloat w = static_cast<GLfloat>(c.w); 2691 GLfloat w = static_cast<GLfloat>(c.w);
2692 DoVertexAttrib4f(indx, x, y, z, w); 2692 DoVertexAttrib4f(indx, x, y, z, w);
2693 return error::kNoError; 2693 return error::kNoError;
2694 } 2694 }
2695 2695
2696 error::Error GLES2DecoderImpl::HandleVertexAttrib4fv( 2696 error::Error GLES2DecoderImpl::HandleVertexAttrib4fv(
2697 uint32 immediate_data_size, 2697 uint32_t immediate_data_size,
2698 const gles2::cmds::VertexAttrib4fv& c) { 2698 const gles2::cmds::VertexAttrib4fv& c) {
2699 GLuint indx = static_cast<GLuint>(c.indx); 2699 GLuint indx = static_cast<GLuint>(c.indx);
2700 uint32 data_size; 2700 uint32_t data_size;
2701 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) { 2701 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) {
2702 return error::kOutOfBounds; 2702 return error::kOutOfBounds;
2703 } 2703 }
2704 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>( 2704 const GLfloat* values = GetSharedMemoryAs<const GLfloat*>(
2705 c.values_shm_id, c.values_shm_offset, data_size); 2705 c.values_shm_id, c.values_shm_offset, data_size);
2706 if (values == NULL) { 2706 if (values == NULL) {
2707 return error::kOutOfBounds; 2707 return error::kOutOfBounds;
2708 } 2708 }
2709 DoVertexAttrib4fv(indx, values); 2709 DoVertexAttrib4fv(indx, values);
2710 return error::kNoError; 2710 return error::kNoError;
2711 } 2711 }
2712 2712
2713 error::Error GLES2DecoderImpl::HandleVertexAttrib4fvImmediate( 2713 error::Error GLES2DecoderImpl::HandleVertexAttrib4fvImmediate(
2714 uint32 immediate_data_size, 2714 uint32_t immediate_data_size,
2715 const gles2::cmds::VertexAttrib4fvImmediate& c) { 2715 const gles2::cmds::VertexAttrib4fvImmediate& c) {
2716 GLuint indx = static_cast<GLuint>(c.indx); 2716 GLuint indx = static_cast<GLuint>(c.indx);
2717 uint32 data_size; 2717 uint32_t data_size;
2718 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) { 2718 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) {
2719 return error::kOutOfBounds; 2719 return error::kOutOfBounds;
2720 } 2720 }
2721 if (data_size > immediate_data_size) { 2721 if (data_size > immediate_data_size) {
2722 return error::kOutOfBounds; 2722 return error::kOutOfBounds;
2723 } 2723 }
2724 const GLfloat* values = 2724 const GLfloat* values =
2725 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2725 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2726 if (values == NULL) { 2726 if (values == NULL) {
2727 return error::kOutOfBounds; 2727 return error::kOutOfBounds;
2728 } 2728 }
2729 DoVertexAttrib4fv(indx, values); 2729 DoVertexAttrib4fv(indx, values);
2730 return error::kNoError; 2730 return error::kNoError;
2731 } 2731 }
2732 2732
2733 error::Error GLES2DecoderImpl::HandleViewport(uint32 immediate_data_size, 2733 error::Error GLES2DecoderImpl::HandleViewport(uint32_t immediate_data_size,
2734 const gles2::cmds::Viewport& c) { 2734 const gles2::cmds::Viewport& c) {
2735 GLint x = static_cast<GLint>(c.x); 2735 GLint x = static_cast<GLint>(c.x);
2736 GLint y = static_cast<GLint>(c.y); 2736 GLint y = static_cast<GLint>(c.y);
2737 GLsizei width = static_cast<GLsizei>(c.width); 2737 GLsizei width = static_cast<GLsizei>(c.width);
2738 GLsizei height = static_cast<GLsizei>(c.height); 2738 GLsizei height = static_cast<GLsizei>(c.height);
2739 if (width < 0) { 2739 if (width < 0) {
2740 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glViewport", "width < 0"); 2740 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glViewport", "width < 0");
2741 return error::kNoError; 2741 return error::kNoError;
2742 } 2742 }
2743 if (height < 0) { 2743 if (height < 0) {
2744 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glViewport", "height < 0"); 2744 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glViewport", "height < 0");
2745 return error::kNoError; 2745 return error::kNoError;
2746 } 2746 }
2747 DoViewport(x, y, width, height); 2747 DoViewport(x, y, width, height);
2748 return error::kNoError; 2748 return error::kNoError;
2749 } 2749 }
2750 2750
2751 error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM( 2751 error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM(
2752 uint32 immediate_data_size, 2752 uint32_t immediate_data_size,
2753 const gles2::cmds::BlitFramebufferCHROMIUM& c) { 2753 const gles2::cmds::BlitFramebufferCHROMIUM& c) {
2754 error::Error error; 2754 error::Error error;
2755 error = WillAccessBoundFramebufferForDraw(); 2755 error = WillAccessBoundFramebufferForDraw();
2756 if (error != error::kNoError) 2756 if (error != error::kNoError)
2757 return error; 2757 return error;
2758 error = WillAccessBoundFramebufferForRead(); 2758 error = WillAccessBoundFramebufferForRead();
2759 if (error != error::kNoError) 2759 if (error != error::kNoError)
2760 return error; 2760 return error;
2761 GLint srcX0 = static_cast<GLint>(c.srcX0); 2761 GLint srcX0 = static_cast<GLint>(c.srcX0);
2762 GLint srcY0 = static_cast<GLint>(c.srcY0); 2762 GLint srcY0 = static_cast<GLint>(c.srcY0);
2763 GLint srcX1 = static_cast<GLint>(c.srcX1); 2763 GLint srcX1 = static_cast<GLint>(c.srcX1);
2764 GLint srcY1 = static_cast<GLint>(c.srcY1); 2764 GLint srcY1 = static_cast<GLint>(c.srcY1);
2765 GLint dstX0 = static_cast<GLint>(c.dstX0); 2765 GLint dstX0 = static_cast<GLint>(c.dstX0);
2766 GLint dstY0 = static_cast<GLint>(c.dstY0); 2766 GLint dstY0 = static_cast<GLint>(c.dstY0);
2767 GLint dstX1 = static_cast<GLint>(c.dstX1); 2767 GLint dstX1 = static_cast<GLint>(c.dstX1);
2768 GLint dstY1 = static_cast<GLint>(c.dstY1); 2768 GLint dstY1 = static_cast<GLint>(c.dstY1);
2769 GLbitfield mask = static_cast<GLbitfield>(c.mask); 2769 GLbitfield mask = static_cast<GLbitfield>(c.mask);
2770 GLenum filter = static_cast<GLenum>(c.filter); 2770 GLenum filter = static_cast<GLenum>(c.filter);
2771 if (!validators_->blit_filter.IsValid(filter)) { 2771 if (!validators_->blit_filter.IsValid(filter)) {
2772 LOCAL_SET_GL_ERROR_INVALID_ENUM( 2772 LOCAL_SET_GL_ERROR_INVALID_ENUM(
2773 "glBlitFramebufferCHROMIUM", filter, "filter"); 2773 "glBlitFramebufferCHROMIUM", filter, "filter");
2774 return error::kNoError; 2774 return error::kNoError;
2775 } 2775 }
2776 DoBlitFramebufferCHROMIUM( 2776 DoBlitFramebufferCHROMIUM(
2777 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); 2777 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
2778 return error::kNoError; 2778 return error::kNoError;
2779 } 2779 }
2780 2780
2781 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM( 2781 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM(
2782 uint32 immediate_data_size, 2782 uint32_t immediate_data_size,
2783 const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c) { 2783 const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c) {
2784 GLenum target = static_cast<GLenum>(c.target); 2784 GLenum target = static_cast<GLenum>(c.target);
2785 GLsizei samples = static_cast<GLsizei>(c.samples); 2785 GLsizei samples = static_cast<GLsizei>(c.samples);
2786 GLenum internalformat = static_cast<GLenum>(c.internalformat); 2786 GLenum internalformat = static_cast<GLenum>(c.internalformat);
2787 GLsizei width = static_cast<GLsizei>(c.width); 2787 GLsizei width = static_cast<GLsizei>(c.width);
2788 GLsizei height = static_cast<GLsizei>(c.height); 2788 GLsizei height = static_cast<GLsizei>(c.height);
2789 if (!validators_->render_buffer_target.IsValid(target)) { 2789 if (!validators_->render_buffer_target.IsValid(target)) {
2790 LOCAL_SET_GL_ERROR_INVALID_ENUM( 2790 LOCAL_SET_GL_ERROR_INVALID_ENUM(
2791 "glRenderbufferStorageMultisampleCHROMIUM", target, "target"); 2791 "glRenderbufferStorageMultisampleCHROMIUM", target, "target");
2792 return error::kNoError; 2792 return error::kNoError;
(...skipping 21 matching lines...) Expand all
2814 "glRenderbufferStorageMultisampleCHROMIUM", 2814 "glRenderbufferStorageMultisampleCHROMIUM",
2815 "height < 0"); 2815 "height < 0");
2816 return error::kNoError; 2816 return error::kNoError;
2817 } 2817 }
2818 DoRenderbufferStorageMultisampleCHROMIUM( 2818 DoRenderbufferStorageMultisampleCHROMIUM(
2819 target, samples, internalformat, width, height); 2819 target, samples, internalformat, width, height);
2820 return error::kNoError; 2820 return error::kNoError;
2821 } 2821 }
2822 2822
2823 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( 2823 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT(
2824 uint32 immediate_data_size, 2824 uint32_t immediate_data_size,
2825 const gles2::cmds::RenderbufferStorageMultisampleEXT& c) { 2825 const gles2::cmds::RenderbufferStorageMultisampleEXT& c) {
2826 GLenum target = static_cast<GLenum>(c.target); 2826 GLenum target = static_cast<GLenum>(c.target);
2827 GLsizei samples = static_cast<GLsizei>(c.samples); 2827 GLsizei samples = static_cast<GLsizei>(c.samples);
2828 GLenum internalformat = static_cast<GLenum>(c.internalformat); 2828 GLenum internalformat = static_cast<GLenum>(c.internalformat);
2829 GLsizei width = static_cast<GLsizei>(c.width); 2829 GLsizei width = static_cast<GLsizei>(c.width);
2830 GLsizei height = static_cast<GLsizei>(c.height); 2830 GLsizei height = static_cast<GLsizei>(c.height);
2831 if (!validators_->render_buffer_target.IsValid(target)) { 2831 if (!validators_->render_buffer_target.IsValid(target)) {
2832 LOCAL_SET_GL_ERROR_INVALID_ENUM( 2832 LOCAL_SET_GL_ERROR_INVALID_ENUM(
2833 "glRenderbufferStorageMultisampleEXT", target, "target"); 2833 "glRenderbufferStorageMultisampleEXT", target, "target");
2834 return error::kNoError; 2834 return error::kNoError;
(...skipping 18 matching lines...) Expand all
2853 LOCAL_SET_GL_ERROR( 2853 LOCAL_SET_GL_ERROR(
2854 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); 2854 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
2855 return error::kNoError; 2855 return error::kNoError;
2856 } 2856 }
2857 DoRenderbufferStorageMultisampleEXT( 2857 DoRenderbufferStorageMultisampleEXT(
2858 target, samples, internalformat, width, height); 2858 target, samples, internalformat, width, height);
2859 return error::kNoError; 2859 return error::kNoError;
2860 } 2860 }
2861 2861
2862 error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT( 2862 error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT(
2863 uint32 immediate_data_size, 2863 uint32_t immediate_data_size,
2864 const gles2::cmds::FramebufferTexture2DMultisampleEXT& c) { 2864 const gles2::cmds::FramebufferTexture2DMultisampleEXT& c) {
2865 GLenum target = static_cast<GLenum>(c.target); 2865 GLenum target = static_cast<GLenum>(c.target);
2866 GLenum attachment = static_cast<GLenum>(c.attachment); 2866 GLenum attachment = static_cast<GLenum>(c.attachment);
2867 GLenum textarget = static_cast<GLenum>(c.textarget); 2867 GLenum textarget = static_cast<GLenum>(c.textarget);
2868 GLuint texture = c.texture; 2868 GLuint texture = c.texture;
2869 GLint level = static_cast<GLint>(c.level); 2869 GLint level = static_cast<GLint>(c.level);
2870 GLsizei samples = static_cast<GLsizei>(c.samples); 2870 GLsizei samples = static_cast<GLsizei>(c.samples);
2871 if (!validators_->frame_buffer_target.IsValid(target)) { 2871 if (!validators_->frame_buffer_target.IsValid(target)) {
2872 LOCAL_SET_GL_ERROR_INVALID_ENUM( 2872 LOCAL_SET_GL_ERROR_INVALID_ENUM(
2873 "glFramebufferTexture2DMultisampleEXT", target, "target"); 2873 "glFramebufferTexture2DMultisampleEXT", target, "target");
(...skipping 20 matching lines...) Expand all
2894 "glFramebufferTexture2DMultisampleEXT", 2894 "glFramebufferTexture2DMultisampleEXT",
2895 "samples < 0"); 2895 "samples < 0");
2896 return error::kNoError; 2896 return error::kNoError;
2897 } 2897 }
2898 DoFramebufferTexture2DMultisample( 2898 DoFramebufferTexture2DMultisample(
2899 target, attachment, textarget, texture, level, samples); 2899 target, attachment, textarget, texture, level, samples);
2900 return error::kNoError; 2900 return error::kNoError;
2901 } 2901 }
2902 2902
2903 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT( 2903 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT(
2904 uint32 immediate_data_size, 2904 uint32_t immediate_data_size,
2905 const gles2::cmds::TexStorage2DEXT& c) { 2905 const gles2::cmds::TexStorage2DEXT& c) {
2906 GLenum target = static_cast<GLenum>(c.target); 2906 GLenum target = static_cast<GLenum>(c.target);
2907 GLsizei levels = static_cast<GLsizei>(c.levels); 2907 GLsizei levels = static_cast<GLsizei>(c.levels);
2908 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); 2908 GLenum internalFormat = static_cast<GLenum>(c.internalFormat);
2909 GLsizei width = static_cast<GLsizei>(c.width); 2909 GLsizei width = static_cast<GLsizei>(c.width);
2910 GLsizei height = static_cast<GLsizei>(c.height); 2910 GLsizei height = static_cast<GLsizei>(c.height);
2911 if (!validators_->texture_target.IsValid(target)) { 2911 if (!validators_->texture_target.IsValid(target)) {
2912 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", target, "target"); 2912 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", target, "target");
2913 return error::kNoError; 2913 return error::kNoError;
2914 } 2914 }
(...skipping 12 matching lines...) Expand all
2927 } 2927 }
2928 if (height < 0) { 2928 if (height < 0) {
2929 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); 2929 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0");
2930 return error::kNoError; 2930 return error::kNoError;
2931 } 2931 }
2932 DoTexStorage2DEXT(target, levels, internalFormat, width, height); 2932 DoTexStorage2DEXT(target, levels, internalFormat, width, height);
2933 return error::kNoError; 2933 return error::kNoError;
2934 } 2934 }
2935 2935
2936 error::Error GLES2DecoderImpl::HandleGenQueriesEXT( 2936 error::Error GLES2DecoderImpl::HandleGenQueriesEXT(
2937 uint32 immediate_data_size, 2937 uint32_t immediate_data_size,
2938 const gles2::cmds::GenQueriesEXT& c) { 2938 const gles2::cmds::GenQueriesEXT& c) {
2939 GLsizei n = static_cast<GLsizei>(c.n); 2939 GLsizei n = static_cast<GLsizei>(c.n);
2940 uint32 data_size; 2940 uint32_t data_size;
2941 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 2941 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
2942 return error::kOutOfBounds; 2942 return error::kOutOfBounds;
2943 } 2943 }
2944 GLuint* queries = GetSharedMemoryAs<GLuint*>( 2944 GLuint* queries = GetSharedMemoryAs<GLuint*>(
2945 c.queries_shm_id, c.queries_shm_offset, data_size); 2945 c.queries_shm_id, c.queries_shm_offset, data_size);
2946 if (queries == NULL) { 2946 if (queries == NULL) {
2947 return error::kOutOfBounds; 2947 return error::kOutOfBounds;
2948 } 2948 }
2949 if (!GenQueriesEXTHelper(n, queries)) { 2949 if (!GenQueriesEXTHelper(n, queries)) {
2950 return error::kInvalidArguments; 2950 return error::kInvalidArguments;
2951 } 2951 }
2952 return error::kNoError; 2952 return error::kNoError;
2953 } 2953 }
2954 2954
2955 error::Error GLES2DecoderImpl::HandleGenQueriesEXTImmediate( 2955 error::Error GLES2DecoderImpl::HandleGenQueriesEXTImmediate(
2956 uint32 immediate_data_size, 2956 uint32_t immediate_data_size,
2957 const gles2::cmds::GenQueriesEXTImmediate& c) { 2957 const gles2::cmds::GenQueriesEXTImmediate& c) {
2958 GLsizei n = static_cast<GLsizei>(c.n); 2958 GLsizei n = static_cast<GLsizei>(c.n);
2959 uint32 data_size; 2959 uint32_t data_size;
2960 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 2960 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
2961 return error::kOutOfBounds; 2961 return error::kOutOfBounds;
2962 } 2962 }
2963 GLuint* queries = 2963 GLuint* queries =
2964 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 2964 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
2965 if (queries == NULL) { 2965 if (queries == NULL) {
2966 return error::kOutOfBounds; 2966 return error::kOutOfBounds;
2967 } 2967 }
2968 if (!GenQueriesEXTHelper(n, queries)) { 2968 if (!GenQueriesEXTHelper(n, queries)) {
2969 return error::kInvalidArguments; 2969 return error::kInvalidArguments;
2970 } 2970 }
2971 return error::kNoError; 2971 return error::kNoError;
2972 } 2972 }
2973 2973
2974 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXT( 2974 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXT(
2975 uint32 immediate_data_size, 2975 uint32_t immediate_data_size,
2976 const gles2::cmds::DeleteQueriesEXT& c) { 2976 const gles2::cmds::DeleteQueriesEXT& c) {
2977 GLsizei n = static_cast<GLsizei>(c.n); 2977 GLsizei n = static_cast<GLsizei>(c.n);
2978 uint32 data_size; 2978 uint32_t data_size;
2979 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 2979 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
2980 return error::kOutOfBounds; 2980 return error::kOutOfBounds;
2981 } 2981 }
2982 const GLuint* queries = GetSharedMemoryAs<const GLuint*>( 2982 const GLuint* queries = GetSharedMemoryAs<const GLuint*>(
2983 c.queries_shm_id, c.queries_shm_offset, data_size); 2983 c.queries_shm_id, c.queries_shm_offset, data_size);
2984 if (queries == NULL) { 2984 if (queries == NULL) {
2985 return error::kOutOfBounds; 2985 return error::kOutOfBounds;
2986 } 2986 }
2987 DeleteQueriesEXTHelper(n, queries); 2987 DeleteQueriesEXTHelper(n, queries);
2988 return error::kNoError; 2988 return error::kNoError;
2989 } 2989 }
2990 2990
2991 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate( 2991 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate(
2992 uint32 immediate_data_size, 2992 uint32_t immediate_data_size,
2993 const gles2::cmds::DeleteQueriesEXTImmediate& c) { 2993 const gles2::cmds::DeleteQueriesEXTImmediate& c) {
2994 GLsizei n = static_cast<GLsizei>(c.n); 2994 GLsizei n = static_cast<GLsizei>(c.n);
2995 uint32 data_size; 2995 uint32_t data_size;
2996 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 2996 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
2997 return error::kOutOfBounds; 2997 return error::kOutOfBounds;
2998 } 2998 }
2999 const GLuint* queries = 2999 const GLuint* queries =
3000 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 3000 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
3001 if (queries == NULL) { 3001 if (queries == NULL) {
3002 return error::kOutOfBounds; 3002 return error::kOutOfBounds;
3003 } 3003 }
3004 DeleteQueriesEXTHelper(n, queries); 3004 DeleteQueriesEXTHelper(n, queries);
3005 return error::kNoError; 3005 return error::kNoError;
3006 } 3006 }
3007 3007
3008 error::Error GLES2DecoderImpl::HandleInsertEventMarkerEXT( 3008 error::Error GLES2DecoderImpl::HandleInsertEventMarkerEXT(
3009 uint32 immediate_data_size, 3009 uint32_t immediate_data_size,
3010 const gles2::cmds::InsertEventMarkerEXT& c) { 3010 const gles2::cmds::InsertEventMarkerEXT& c) {
3011 GLuint bucket_id = static_cast<GLuint>(c.bucket_id); 3011 GLuint bucket_id = static_cast<GLuint>(c.bucket_id);
3012 Bucket* bucket = GetBucket(bucket_id); 3012 Bucket* bucket = GetBucket(bucket_id);
3013 if (!bucket || bucket->size() == 0) { 3013 if (!bucket || bucket->size() == 0) {
3014 return error::kInvalidArguments; 3014 return error::kInvalidArguments;
3015 } 3015 }
3016 std::string str; 3016 std::string str;
3017 if (!bucket->GetAsString(&str)) { 3017 if (!bucket->GetAsString(&str)) {
3018 return error::kInvalidArguments; 3018 return error::kInvalidArguments;
3019 } 3019 }
3020 DoInsertEventMarkerEXT(0, str.c_str()); 3020 DoInsertEventMarkerEXT(0, str.c_str());
3021 return error::kNoError; 3021 return error::kNoError;
3022 } 3022 }
3023 3023
3024 error::Error GLES2DecoderImpl::HandlePushGroupMarkerEXT( 3024 error::Error GLES2DecoderImpl::HandlePushGroupMarkerEXT(
3025 uint32 immediate_data_size, 3025 uint32_t immediate_data_size,
3026 const gles2::cmds::PushGroupMarkerEXT& c) { 3026 const gles2::cmds::PushGroupMarkerEXT& c) {
3027 GLuint bucket_id = static_cast<GLuint>(c.bucket_id); 3027 GLuint bucket_id = static_cast<GLuint>(c.bucket_id);
3028 Bucket* bucket = GetBucket(bucket_id); 3028 Bucket* bucket = GetBucket(bucket_id);
3029 if (!bucket || bucket->size() == 0) { 3029 if (!bucket || bucket->size() == 0) {
3030 return error::kInvalidArguments; 3030 return error::kInvalidArguments;
3031 } 3031 }
3032 std::string str; 3032 std::string str;
3033 if (!bucket->GetAsString(&str)) { 3033 if (!bucket->GetAsString(&str)) {
3034 return error::kInvalidArguments; 3034 return error::kInvalidArguments;
3035 } 3035 }
3036 DoPushGroupMarkerEXT(0, str.c_str()); 3036 DoPushGroupMarkerEXT(0, str.c_str());
3037 return error::kNoError; 3037 return error::kNoError;
3038 } 3038 }
3039 3039
3040 error::Error GLES2DecoderImpl::HandlePopGroupMarkerEXT( 3040 error::Error GLES2DecoderImpl::HandlePopGroupMarkerEXT(
3041 uint32 immediate_data_size, 3041 uint32_t immediate_data_size,
3042 const gles2::cmds::PopGroupMarkerEXT& c) { 3042 const gles2::cmds::PopGroupMarkerEXT& c) {
3043 DoPopGroupMarkerEXT(); 3043 DoPopGroupMarkerEXT();
3044 return error::kNoError; 3044 return error::kNoError;
3045 } 3045 }
3046 3046
3047 error::Error GLES2DecoderImpl::HandleGenVertexArraysOES( 3047 error::Error GLES2DecoderImpl::HandleGenVertexArraysOES(
3048 uint32 immediate_data_size, 3048 uint32_t immediate_data_size,
3049 const gles2::cmds::GenVertexArraysOES& c) { 3049 const gles2::cmds::GenVertexArraysOES& c) {
3050 GLsizei n = static_cast<GLsizei>(c.n); 3050 GLsizei n = static_cast<GLsizei>(c.n);
3051 uint32 data_size; 3051 uint32_t data_size;
3052 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 3052 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
3053 return error::kOutOfBounds; 3053 return error::kOutOfBounds;
3054 } 3054 }
3055 GLuint* arrays = GetSharedMemoryAs<GLuint*>( 3055 GLuint* arrays = GetSharedMemoryAs<GLuint*>(
3056 c.arrays_shm_id, c.arrays_shm_offset, data_size); 3056 c.arrays_shm_id, c.arrays_shm_offset, data_size);
3057 if (arrays == NULL) { 3057 if (arrays == NULL) {
3058 return error::kOutOfBounds; 3058 return error::kOutOfBounds;
3059 } 3059 }
3060 if (!GenVertexArraysOESHelper(n, arrays)) { 3060 if (!GenVertexArraysOESHelper(n, arrays)) {
3061 return error::kInvalidArguments; 3061 return error::kInvalidArguments;
3062 } 3062 }
3063 return error::kNoError; 3063 return error::kNoError;
3064 } 3064 }
3065 3065
3066 error::Error GLES2DecoderImpl::HandleGenVertexArraysOESImmediate( 3066 error::Error GLES2DecoderImpl::HandleGenVertexArraysOESImmediate(
3067 uint32 immediate_data_size, 3067 uint32_t immediate_data_size,
3068 const gles2::cmds::GenVertexArraysOESImmediate& c) { 3068 const gles2::cmds::GenVertexArraysOESImmediate& c) {
3069 GLsizei n = static_cast<GLsizei>(c.n); 3069 GLsizei n = static_cast<GLsizei>(c.n);
3070 uint32 data_size; 3070 uint32_t data_size;
3071 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 3071 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
3072 return error::kOutOfBounds; 3072 return error::kOutOfBounds;
3073 } 3073 }
3074 GLuint* arrays = 3074 GLuint* arrays =
3075 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 3075 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
3076 if (arrays == NULL) { 3076 if (arrays == NULL) {
3077 return error::kOutOfBounds; 3077 return error::kOutOfBounds;
3078 } 3078 }
3079 if (!GenVertexArraysOESHelper(n, arrays)) { 3079 if (!GenVertexArraysOESHelper(n, arrays)) {
3080 return error::kInvalidArguments; 3080 return error::kInvalidArguments;
3081 } 3081 }
3082 return error::kNoError; 3082 return error::kNoError;
3083 } 3083 }
3084 3084
3085 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOES( 3085 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOES(
3086 uint32 immediate_data_size, 3086 uint32_t immediate_data_size,
3087 const gles2::cmds::DeleteVertexArraysOES& c) { 3087 const gles2::cmds::DeleteVertexArraysOES& c) {
3088 GLsizei n = static_cast<GLsizei>(c.n); 3088 GLsizei n = static_cast<GLsizei>(c.n);
3089 uint32 data_size; 3089 uint32_t data_size;
3090 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 3090 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
3091 return error::kOutOfBounds; 3091 return error::kOutOfBounds;
3092 } 3092 }
3093 const GLuint* arrays = GetSharedMemoryAs<const GLuint*>( 3093 const GLuint* arrays = GetSharedMemoryAs<const GLuint*>(
3094 c.arrays_shm_id, c.arrays_shm_offset, data_size); 3094 c.arrays_shm_id, c.arrays_shm_offset, data_size);
3095 if (arrays == NULL) { 3095 if (arrays == NULL) {
3096 return error::kOutOfBounds; 3096 return error::kOutOfBounds;
3097 } 3097 }
3098 DeleteVertexArraysOESHelper(n, arrays); 3098 DeleteVertexArraysOESHelper(n, arrays);
3099 return error::kNoError; 3099 return error::kNoError;
3100 } 3100 }
3101 3101
3102 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate( 3102 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate(
3103 uint32 immediate_data_size, 3103 uint32_t immediate_data_size,
3104 const gles2::cmds::DeleteVertexArraysOESImmediate& c) { 3104 const gles2::cmds::DeleteVertexArraysOESImmediate& c) {
3105 GLsizei n = static_cast<GLsizei>(c.n); 3105 GLsizei n = static_cast<GLsizei>(c.n);
3106 uint32 data_size; 3106 uint32_t data_size;
3107 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 3107 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
3108 return error::kOutOfBounds; 3108 return error::kOutOfBounds;
3109 } 3109 }
3110 const GLuint* arrays = 3110 const GLuint* arrays =
3111 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 3111 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
3112 if (arrays == NULL) { 3112 if (arrays == NULL) {
3113 return error::kOutOfBounds; 3113 return error::kOutOfBounds;
3114 } 3114 }
3115 DeleteVertexArraysOESHelper(n, arrays); 3115 DeleteVertexArraysOESHelper(n, arrays);
3116 return error::kNoError; 3116 return error::kNoError;
3117 } 3117 }
3118 3118
3119 error::Error GLES2DecoderImpl::HandleIsVertexArrayOES( 3119 error::Error GLES2DecoderImpl::HandleIsVertexArrayOES(
3120 uint32 immediate_data_size, 3120 uint32_t immediate_data_size,
3121 const gles2::cmds::IsVertexArrayOES& c) { 3121 const gles2::cmds::IsVertexArrayOES& c) {
3122 GLuint array = c.array; 3122 GLuint array = c.array;
3123 typedef cmds::IsVertexArrayOES::Result Result; 3123 typedef cmds::IsVertexArrayOES::Result Result;
3124 Result* result_dst = GetSharedMemoryAs<Result*>( 3124 Result* result_dst = GetSharedMemoryAs<Result*>(
3125 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 3125 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
3126 if (!result_dst) { 3126 if (!result_dst) {
3127 return error::kOutOfBounds; 3127 return error::kOutOfBounds;
3128 } 3128 }
3129 *result_dst = DoIsVertexArrayOES(array); 3129 *result_dst = DoIsVertexArrayOES(array);
3130 return error::kNoError; 3130 return error::kNoError;
3131 } 3131 }
3132 3132
3133 error::Error GLES2DecoderImpl::HandleBindVertexArrayOES( 3133 error::Error GLES2DecoderImpl::HandleBindVertexArrayOES(
3134 uint32 immediate_data_size, 3134 uint32_t immediate_data_size,
3135 const gles2::cmds::BindVertexArrayOES& c) { 3135 const gles2::cmds::BindVertexArrayOES& c) {
3136 GLuint array = c.array; 3136 GLuint array = c.array;
3137 DoBindVertexArrayOES(array); 3137 DoBindVertexArrayOES(array);
3138 return error::kNoError; 3138 return error::kNoError;
3139 } 3139 }
3140 3140
3141 error::Error GLES2DecoderImpl::HandleSwapBuffers( 3141 error::Error GLES2DecoderImpl::HandleSwapBuffers(
3142 uint32 immediate_data_size, 3142 uint32_t immediate_data_size,
3143 const gles2::cmds::SwapBuffers& c) { 3143 const gles2::cmds::SwapBuffers& c) {
3144 DoSwapBuffers(); 3144 DoSwapBuffers();
3145 return error::kNoError; 3145 return error::kNoError;
3146 } 3146 }
3147 3147
3148 error::Error GLES2DecoderImpl::HandleGetMaxValueInBufferCHROMIUM( 3148 error::Error GLES2DecoderImpl::HandleGetMaxValueInBufferCHROMIUM(
3149 uint32 immediate_data_size, 3149 uint32_t immediate_data_size,
3150 const gles2::cmds::GetMaxValueInBufferCHROMIUM& c) { 3150 const gles2::cmds::GetMaxValueInBufferCHROMIUM& c) {
3151 GLuint buffer_id = c.buffer_id; 3151 GLuint buffer_id = c.buffer_id;
3152 GLsizei count = static_cast<GLsizei>(c.count); 3152 GLsizei count = static_cast<GLsizei>(c.count);
3153 GLenum type = static_cast<GLenum>(c.type); 3153 GLenum type = static_cast<GLenum>(c.type);
3154 GLuint offset = static_cast<GLuint>(c.offset); 3154 GLuint offset = static_cast<GLuint>(c.offset);
3155 typedef cmds::GetMaxValueInBufferCHROMIUM::Result Result; 3155 typedef cmds::GetMaxValueInBufferCHROMIUM::Result Result;
3156 Result* result_dst = GetSharedMemoryAs<Result*>( 3156 Result* result_dst = GetSharedMemoryAs<Result*>(
3157 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 3157 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
3158 if (!result_dst) { 3158 if (!result_dst) {
3159 return error::kOutOfBounds; 3159 return error::kOutOfBounds;
3160 } 3160 }
3161 if (count < 0) { 3161 if (count < 0) {
3162 LOCAL_SET_GL_ERROR( 3162 LOCAL_SET_GL_ERROR(
3163 GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0"); 3163 GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0");
3164 return error::kNoError; 3164 return error::kNoError;
3165 } 3165 }
3166 if (!validators_->get_max_index_type.IsValid(type)) { 3166 if (!validators_->get_max_index_type.IsValid(type)) {
3167 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3167 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3168 "glGetMaxValueInBufferCHROMIUM", type, "type"); 3168 "glGetMaxValueInBufferCHROMIUM", type, "type");
3169 return error::kNoError; 3169 return error::kNoError;
3170 } 3170 }
3171 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); 3171 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset);
3172 return error::kNoError; 3172 return error::kNoError;
3173 } 3173 }
3174 3174
3175 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM( 3175 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM(
3176 uint32 immediate_data_size, 3176 uint32_t immediate_data_size,
3177 const gles2::cmds::TexImageIOSurface2DCHROMIUM& c) { 3177 const gles2::cmds::TexImageIOSurface2DCHROMIUM& c) {
3178 GLenum target = static_cast<GLenum>(c.target); 3178 GLenum target = static_cast<GLenum>(c.target);
3179 GLsizei width = static_cast<GLsizei>(c.width); 3179 GLsizei width = static_cast<GLsizei>(c.width);
3180 GLsizei height = static_cast<GLsizei>(c.height); 3180 GLsizei height = static_cast<GLsizei>(c.height);
3181 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId); 3181 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId);
3182 GLuint plane = static_cast<GLuint>(c.plane); 3182 GLuint plane = static_cast<GLuint>(c.plane);
3183 if (!validators_->texture_bind_target.IsValid(target)) { 3183 if (!validators_->texture_bind_target.IsValid(target)) {
3184 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3184 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3185 "glTexImageIOSurface2DCHROMIUM", target, "target"); 3185 "glTexImageIOSurface2DCHROMIUM", target, "target");
3186 return error::kNoError; 3186 return error::kNoError;
3187 } 3187 }
3188 if (width < 0) { 3188 if (width < 0) {
3189 LOCAL_SET_GL_ERROR( 3189 LOCAL_SET_GL_ERROR(
3190 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); 3190 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0");
3191 return error::kNoError; 3191 return error::kNoError;
3192 } 3192 }
3193 if (height < 0) { 3193 if (height < 0) {
3194 LOCAL_SET_GL_ERROR( 3194 LOCAL_SET_GL_ERROR(
3195 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); 3195 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
3196 return error::kNoError; 3196 return error::kNoError;
3197 } 3197 }
3198 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane); 3198 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane);
3199 return error::kNoError; 3199 return error::kNoError;
3200 } 3200 }
3201 3201
3202 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( 3202 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM(
3203 uint32 immediate_data_size, 3203 uint32_t immediate_data_size,
3204 const gles2::cmds::CopyTextureCHROMIUM& c) { 3204 const gles2::cmds::CopyTextureCHROMIUM& c) {
3205 GLenum target = static_cast<GLenum>(c.target); 3205 GLenum target = static_cast<GLenum>(c.target);
3206 GLenum source_id = static_cast<GLenum>(c.source_id); 3206 GLenum source_id = static_cast<GLenum>(c.source_id);
3207 GLenum dest_id = static_cast<GLenum>(c.dest_id); 3207 GLenum dest_id = static_cast<GLenum>(c.dest_id);
3208 GLint level = static_cast<GLint>(c.level); 3208 GLint level = static_cast<GLint>(c.level);
3209 GLint internalformat = static_cast<GLint>(c.internalformat); 3209 GLint internalformat = static_cast<GLint>(c.internalformat);
3210 GLenum dest_type = static_cast<GLenum>(c.dest_type); 3210 GLenum dest_type = static_cast<GLenum>(c.dest_type);
3211 if (!validators_->texture_internal_format.IsValid(internalformat)) { 3211 if (!validators_->texture_internal_format.IsValid(internalformat)) {
3212 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, 3212 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
3213 "glCopyTextureCHROMIUM", 3213 "glCopyTextureCHROMIUM",
3214 "internalformat GL_INVALID_VALUE"); 3214 "internalformat GL_INVALID_VALUE");
3215 return error::kNoError; 3215 return error::kNoError;
3216 } 3216 }
3217 if (!validators_->pixel_type.IsValid(dest_type)) { 3217 if (!validators_->pixel_type.IsValid(dest_type)) {
3218 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3218 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3219 "glCopyTextureCHROMIUM", dest_type, "dest_type"); 3219 "glCopyTextureCHROMIUM", dest_type, "dest_type");
3220 return error::kNoError; 3220 return error::kNoError;
3221 } 3221 }
3222 DoCopyTextureCHROMIUM( 3222 DoCopyTextureCHROMIUM(
3223 target, source_id, dest_id, level, internalformat, dest_type); 3223 target, source_id, dest_id, level, internalformat, dest_type);
3224 return error::kNoError; 3224 return error::kNoError;
3225 } 3225 }
3226 3226
3227 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUM( 3227 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUM(
3228 uint32 immediate_data_size, 3228 uint32_t immediate_data_size,
3229 const gles2::cmds::ProduceTextureCHROMIUM& c) { 3229 const gles2::cmds::ProduceTextureCHROMIUM& c) {
3230 GLenum target = static_cast<GLenum>(c.target); 3230 GLenum target = static_cast<GLenum>(c.target);
3231 uint32 data_size; 3231 uint32_t data_size;
3232 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { 3232 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
3233 return error::kOutOfBounds; 3233 return error::kOutOfBounds;
3234 } 3234 }
3235 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( 3235 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>(
3236 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); 3236 c.mailbox_shm_id, c.mailbox_shm_offset, data_size);
3237 if (!validators_->texture_bind_target.IsValid(target)) { 3237 if (!validators_->texture_bind_target.IsValid(target)) {
3238 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3238 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3239 "glProduceTextureCHROMIUM", target, "target"); 3239 "glProduceTextureCHROMIUM", target, "target");
3240 return error::kNoError; 3240 return error::kNoError;
3241 } 3241 }
3242 if (mailbox == NULL) { 3242 if (mailbox == NULL) {
3243 return error::kOutOfBounds; 3243 return error::kOutOfBounds;
3244 } 3244 }
3245 DoProduceTextureCHROMIUM(target, mailbox); 3245 DoProduceTextureCHROMIUM(target, mailbox);
3246 return error::kNoError; 3246 return error::kNoError;
3247 } 3247 }
3248 3248
3249 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( 3249 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate(
3250 uint32 immediate_data_size, 3250 uint32_t immediate_data_size,
3251 const gles2::cmds::ProduceTextureCHROMIUMImmediate& c) { 3251 const gles2::cmds::ProduceTextureCHROMIUMImmediate& c) {
3252 GLenum target = static_cast<GLenum>(c.target); 3252 GLenum target = static_cast<GLenum>(c.target);
3253 uint32 data_size; 3253 uint32_t data_size;
3254 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { 3254 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
3255 return error::kOutOfBounds; 3255 return error::kOutOfBounds;
3256 } 3256 }
3257 if (data_size > immediate_data_size) { 3257 if (data_size > immediate_data_size) {
3258 return error::kOutOfBounds; 3258 return error::kOutOfBounds;
3259 } 3259 }
3260 const GLbyte* mailbox = 3260 const GLbyte* mailbox =
3261 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); 3261 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
3262 if (!validators_->texture_bind_target.IsValid(target)) { 3262 if (!validators_->texture_bind_target.IsValid(target)) {
3263 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3263 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3264 "glProduceTextureCHROMIUM", target, "target"); 3264 "glProduceTextureCHROMIUM", target, "target");
3265 return error::kNoError; 3265 return error::kNoError;
3266 } 3266 }
3267 if (mailbox == NULL) { 3267 if (mailbox == NULL) {
3268 return error::kOutOfBounds; 3268 return error::kOutOfBounds;
3269 } 3269 }
3270 DoProduceTextureCHROMIUM(target, mailbox); 3270 DoProduceTextureCHROMIUM(target, mailbox);
3271 return error::kNoError; 3271 return error::kNoError;
3272 } 3272 }
3273 3273
3274 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM( 3274 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM(
3275 uint32 immediate_data_size, 3275 uint32_t immediate_data_size,
3276 const gles2::cmds::ConsumeTextureCHROMIUM& c) { 3276 const gles2::cmds::ConsumeTextureCHROMIUM& c) {
3277 GLenum target = static_cast<GLenum>(c.target); 3277 GLenum target = static_cast<GLenum>(c.target);
3278 uint32 data_size; 3278 uint32_t data_size;
3279 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { 3279 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
3280 return error::kOutOfBounds; 3280 return error::kOutOfBounds;
3281 } 3281 }
3282 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( 3282 const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>(
3283 c.mailbox_shm_id, c.mailbox_shm_offset, data_size); 3283 c.mailbox_shm_id, c.mailbox_shm_offset, data_size);
3284 if (!validators_->texture_bind_target.IsValid(target)) { 3284 if (!validators_->texture_bind_target.IsValid(target)) {
3285 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3285 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3286 "glConsumeTextureCHROMIUM", target, "target"); 3286 "glConsumeTextureCHROMIUM", target, "target");
3287 return error::kNoError; 3287 return error::kNoError;
3288 } 3288 }
3289 if (mailbox == NULL) { 3289 if (mailbox == NULL) {
3290 return error::kOutOfBounds; 3290 return error::kOutOfBounds;
3291 } 3291 }
3292 DoConsumeTextureCHROMIUM(target, mailbox); 3292 DoConsumeTextureCHROMIUM(target, mailbox);
3293 return error::kNoError; 3293 return error::kNoError;
3294 } 3294 }
3295 3295
3296 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( 3296 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate(
3297 uint32 immediate_data_size, 3297 uint32_t immediate_data_size,
3298 const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c) { 3298 const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c) {
3299 GLenum target = static_cast<GLenum>(c.target); 3299 GLenum target = static_cast<GLenum>(c.target);
3300 uint32 data_size; 3300 uint32_t data_size;
3301 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { 3301 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
3302 return error::kOutOfBounds; 3302 return error::kOutOfBounds;
3303 } 3303 }
3304 if (data_size > immediate_data_size) { 3304 if (data_size > immediate_data_size) {
3305 return error::kOutOfBounds; 3305 return error::kOutOfBounds;
3306 } 3306 }
3307 const GLbyte* mailbox = 3307 const GLbyte* mailbox =
3308 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); 3308 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
3309 if (!validators_->texture_bind_target.IsValid(target)) { 3309 if (!validators_->texture_bind_target.IsValid(target)) {
3310 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3310 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3311 "glConsumeTextureCHROMIUM", target, "target"); 3311 "glConsumeTextureCHROMIUM", target, "target");
3312 return error::kNoError; 3312 return error::kNoError;
3313 } 3313 }
3314 if (mailbox == NULL) { 3314 if (mailbox == NULL) {
3315 return error::kOutOfBounds; 3315 return error::kOutOfBounds;
3316 } 3316 }
3317 DoConsumeTextureCHROMIUM(target, mailbox); 3317 DoConsumeTextureCHROMIUM(target, mailbox);
3318 return error::kNoError; 3318 return error::kNoError;
3319 } 3319 }
3320 3320
3321 error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM( 3321 error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM(
3322 uint32 immediate_data_size, 3322 uint32_t immediate_data_size,
3323 const gles2::cmds::BindTexImage2DCHROMIUM& c) { 3323 const gles2::cmds::BindTexImage2DCHROMIUM& c) {
3324 GLenum target = static_cast<GLenum>(c.target); 3324 GLenum target = static_cast<GLenum>(c.target);
3325 GLint imageId = static_cast<GLint>(c.imageId); 3325 GLint imageId = static_cast<GLint>(c.imageId);
3326 if (!validators_->texture_bind_target.IsValid(target)) { 3326 if (!validators_->texture_bind_target.IsValid(target)) {
3327 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3327 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3328 "glBindTexImage2DCHROMIUM", target, "target"); 3328 "glBindTexImage2DCHROMIUM", target, "target");
3329 return error::kNoError; 3329 return error::kNoError;
3330 } 3330 }
3331 DoBindTexImage2DCHROMIUM(target, imageId); 3331 DoBindTexImage2DCHROMIUM(target, imageId);
3332 return error::kNoError; 3332 return error::kNoError;
3333 } 3333 }
3334 3334
3335 error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM( 3335 error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM(
3336 uint32 immediate_data_size, 3336 uint32_t immediate_data_size,
3337 const gles2::cmds::ReleaseTexImage2DCHROMIUM& c) { 3337 const gles2::cmds::ReleaseTexImage2DCHROMIUM& c) {
3338 GLenum target = static_cast<GLenum>(c.target); 3338 GLenum target = static_cast<GLenum>(c.target);
3339 GLint imageId = static_cast<GLint>(c.imageId); 3339 GLint imageId = static_cast<GLint>(c.imageId);
3340 if (!validators_->texture_bind_target.IsValid(target)) { 3340 if (!validators_->texture_bind_target.IsValid(target)) {
3341 LOCAL_SET_GL_ERROR_INVALID_ENUM( 3341 LOCAL_SET_GL_ERROR_INVALID_ENUM(
3342 "glReleaseTexImage2DCHROMIUM", target, "target"); 3342 "glReleaseTexImage2DCHROMIUM", target, "target");
3343 return error::kNoError; 3343 return error::kNoError;
3344 } 3344 }
3345 DoReleaseTexImage2DCHROMIUM(target, imageId); 3345 DoReleaseTexImage2DCHROMIUM(target, imageId);
3346 return error::kNoError; 3346 return error::kNoError;
3347 } 3347 }
3348 3348
3349 error::Error GLES2DecoderImpl::HandleTraceEndCHROMIUM( 3349 error::Error GLES2DecoderImpl::HandleTraceEndCHROMIUM(
3350 uint32 immediate_data_size, 3350 uint32_t immediate_data_size,
3351 const gles2::cmds::TraceEndCHROMIUM& c) { 3351 const gles2::cmds::TraceEndCHROMIUM& c) {
3352 DoTraceEndCHROMIUM(); 3352 DoTraceEndCHROMIUM();
3353 return error::kNoError; 3353 return error::kNoError;
3354 } 3354 }
3355 3355
3356 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXT( 3356 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXT(
3357 uint32 immediate_data_size, 3357 uint32_t immediate_data_size,
3358 const gles2::cmds::DiscardFramebufferEXT& c) { 3358 const gles2::cmds::DiscardFramebufferEXT& c) {
3359 GLenum target = static_cast<GLenum>(c.target); 3359 GLenum target = static_cast<GLenum>(c.target);
3360 GLsizei count = static_cast<GLsizei>(c.count); 3360 GLsizei count = static_cast<GLsizei>(c.count);
3361 uint32 data_size; 3361 uint32_t data_size;
3362 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { 3362 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) {
3363 return error::kOutOfBounds; 3363 return error::kOutOfBounds;
3364 } 3364 }
3365 const GLenum* attachments = GetSharedMemoryAs<const GLenum*>( 3365 const GLenum* attachments = GetSharedMemoryAs<const GLenum*>(
3366 c.attachments_shm_id, c.attachments_shm_offset, data_size); 3366 c.attachments_shm_id, c.attachments_shm_offset, data_size);
3367 if (count < 0) { 3367 if (count < 0) {
3368 LOCAL_SET_GL_ERROR( 3368 LOCAL_SET_GL_ERROR(
3369 GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); 3369 GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0");
3370 return error::kNoError; 3370 return error::kNoError;
3371 } 3371 }
3372 if (attachments == NULL) { 3372 if (attachments == NULL) {
3373 return error::kOutOfBounds; 3373 return error::kOutOfBounds;
3374 } 3374 }
3375 DoDiscardFramebufferEXT(target, count, attachments); 3375 DoDiscardFramebufferEXT(target, count, attachments);
3376 return error::kNoError; 3376 return error::kNoError;
3377 } 3377 }
3378 3378
3379 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate( 3379 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate(
3380 uint32 immediate_data_size, 3380 uint32_t immediate_data_size,
3381 const gles2::cmds::DiscardFramebufferEXTImmediate& c) { 3381 const gles2::cmds::DiscardFramebufferEXTImmediate& c) {
3382 GLenum target = static_cast<GLenum>(c.target); 3382 GLenum target = static_cast<GLenum>(c.target);
3383 GLsizei count = static_cast<GLsizei>(c.count); 3383 GLsizei count = static_cast<GLsizei>(c.count);
3384 uint32 data_size; 3384 uint32_t data_size;
3385 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { 3385 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) {
3386 return error::kOutOfBounds; 3386 return error::kOutOfBounds;
3387 } 3387 }
3388 if (data_size > immediate_data_size) { 3388 if (data_size > immediate_data_size) {
3389 return error::kOutOfBounds; 3389 return error::kOutOfBounds;
3390 } 3390 }
3391 const GLenum* attachments = 3391 const GLenum* attachments =
3392 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); 3392 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size);
3393 if (count < 0) { 3393 if (count < 0) {
3394 LOCAL_SET_GL_ERROR( 3394 LOCAL_SET_GL_ERROR(
3395 GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); 3395 GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0");
3396 return error::kNoError; 3396 return error::kNoError;
3397 } 3397 }
3398 if (attachments == NULL) { 3398 if (attachments == NULL) {
3399 return error::kOutOfBounds; 3399 return error::kOutOfBounds;
3400 } 3400 }
3401 DoDiscardFramebufferEXT(target, count, attachments); 3401 DoDiscardFramebufferEXT(target, count, attachments);
3402 return error::kNoError; 3402 return error::kNoError;
3403 } 3403 }
3404 3404
3405 error::Error GLES2DecoderImpl::HandleDrawBuffersEXT( 3405 error::Error GLES2DecoderImpl::HandleDrawBuffersEXT(
3406 uint32 immediate_data_size, 3406 uint32_t immediate_data_size,
3407 const gles2::cmds::DrawBuffersEXT& c) { 3407 const gles2::cmds::DrawBuffersEXT& c) {
3408 GLsizei count = static_cast<GLsizei>(c.count); 3408 GLsizei count = static_cast<GLsizei>(c.count);
3409 uint32 data_size; 3409 uint32_t data_size;
3410 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { 3410 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) {
3411 return error::kOutOfBounds; 3411 return error::kOutOfBounds;
3412 } 3412 }
3413 const GLenum* bufs = GetSharedMemoryAs<const GLenum*>( 3413 const GLenum* bufs = GetSharedMemoryAs<const GLenum*>(
3414 c.bufs_shm_id, c.bufs_shm_offset, data_size); 3414 c.bufs_shm_id, c.bufs_shm_offset, data_size);
3415 if (count < 0) { 3415 if (count < 0) {
3416 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0"); 3416 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0");
3417 return error::kNoError; 3417 return error::kNoError;
3418 } 3418 }
3419 if (bufs == NULL) { 3419 if (bufs == NULL) {
3420 return error::kOutOfBounds; 3420 return error::kOutOfBounds;
3421 } 3421 }
3422 DoDrawBuffersEXT(count, bufs); 3422 DoDrawBuffersEXT(count, bufs);
3423 return error::kNoError; 3423 return error::kNoError;
3424 } 3424 }
3425 3425
3426 error::Error GLES2DecoderImpl::HandleDrawBuffersEXTImmediate( 3426 error::Error GLES2DecoderImpl::HandleDrawBuffersEXTImmediate(
3427 uint32 immediate_data_size, 3427 uint32_t immediate_data_size,
3428 const gles2::cmds::DrawBuffersEXTImmediate& c) { 3428 const gles2::cmds::DrawBuffersEXTImmediate& c) {
3429 GLsizei count = static_cast<GLsizei>(c.count); 3429 GLsizei count = static_cast<GLsizei>(c.count);
3430 uint32 data_size; 3430 uint32_t data_size;
3431 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { 3431 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) {
3432 return error::kOutOfBounds; 3432 return error::kOutOfBounds;
3433 } 3433 }
3434 if (data_size > immediate_data_size) { 3434 if (data_size > immediate_data_size) {
3435 return error::kOutOfBounds; 3435 return error::kOutOfBounds;
3436 } 3436 }
3437 const GLenum* bufs = 3437 const GLenum* bufs =
3438 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); 3438 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size);
3439 if (count < 0) { 3439 if (count < 0) {
3440 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0"); 3440 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0");
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3518 state_.ignore_cached_state) { 3518 state_.ignore_cached_state) {
3519 framebuffer_state_.clear_state_dirty = true; 3519 framebuffer_state_.clear_state_dirty = true;
3520 } 3520 }
3521 return false; 3521 return false;
3522 default: 3522 default:
3523 NOTREACHED(); 3523 NOTREACHED();
3524 return false; 3524 return false;
3525 } 3525 }
3526 } 3526 }
3527 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 3527 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698