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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation_impl_autogen.h

Issue 90333003: Remove --enable-gpu-service-logging and --enable-gpu-client-logging (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // DO NOT EDIT! 7 // DO NOT EDIT!
8 8
9 // This file is included by gles2_implementation.cc to define the 9 // This file is included by gles2_implementation.cc to define the
10 // GL api functions. 10 // GL api functions.
11 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ 11 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_
12 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ 12 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_
13 13
14 void GLES2Implementation::AttachShader(GLuint program, GLuint shader) { 14 void GLES2Implementation::AttachShader(GLuint program, GLuint shader) {
15 GPU_CLIENT_SINGLE_THREAD_CHECK(); 15 GPU_CLIENT_SINGLE_THREAD_CHECK();
16 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glAttachShader(" << program << ", " << shader << ")"); // NOLINT
17 helper_->AttachShader(program, shader); 16 helper_->AttachShader(program, shader);
18 CheckGLError(); 17 CheckGLError();
19 } 18 }
20 19
21 void GLES2Implementation::BindBuffer(GLenum target, GLuint buffer) { 20 void GLES2Implementation::BindBuffer(GLenum target, GLuint buffer) {
22 GPU_CLIENT_SINGLE_THREAD_CHECK(); 21 GPU_CLIENT_SINGLE_THREAD_CHECK();
23 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindBuffer(" << GLES2Util::GetStr ingBufferTarget(target) << ", " << buffer << ")"); // NOLINT
24 if (IsBufferReservedId(buffer)) { 22 if (IsBufferReservedId(buffer)) {
25 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id"); 23 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id");
26 return; 24 return;
27 } 25 }
28 if (BindBufferHelper(target, buffer)) { 26 if (BindBufferHelper(target, buffer)) {
29 helper_->BindBuffer(target, buffer); 27 helper_->BindBuffer(target, buffer);
30 } 28 }
31 CheckGLError(); 29 CheckGLError();
32 } 30 }
33 31
34 void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) { 32 void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) {
35 GPU_CLIENT_SINGLE_THREAD_CHECK(); 33 GPU_CLIENT_SINGLE_THREAD_CHECK();
36 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindFramebuffer(" << GLES2Util::G etStringFrameBufferTarget(target) << ", " << framebuffer << ")"); // NOLINT
37 if (IsFramebufferReservedId(framebuffer)) { 34 if (IsFramebufferReservedId(framebuffer)) {
38 SetGLError( 35 SetGLError(
39 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id"); 36 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id");
40 return; 37 return;
41 } 38 }
42 if (BindFramebufferHelper(target, framebuffer)) { 39 if (BindFramebufferHelper(target, framebuffer)) {
43 helper_->BindFramebuffer(target, framebuffer); 40 helper_->BindFramebuffer(target, framebuffer);
44 } 41 }
45 CheckGLError(); 42 CheckGLError();
46 } 43 }
47 44
48 void GLES2Implementation::BindRenderbuffer( 45 void GLES2Implementation::BindRenderbuffer(
49 GLenum target, GLuint renderbuffer) { 46 GLenum target, GLuint renderbuffer) {
50 GPU_CLIENT_SINGLE_THREAD_CHECK(); 47 GPU_CLIENT_SINGLE_THREAD_CHECK();
51 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindRenderbuffer(" << GLES2Util:: GetStringRenderBufferTarget(target) << ", " << renderbuffer << ")"); // NOLINT
52 if (IsRenderbufferReservedId(renderbuffer)) { 48 if (IsRenderbufferReservedId(renderbuffer)) {
53 SetGLError( 49 SetGLError(
54 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id"); 50 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id");
55 return; 51 return;
56 } 52 }
57 if (BindRenderbufferHelper(target, renderbuffer)) { 53 if (BindRenderbufferHelper(target, renderbuffer)) {
58 helper_->BindRenderbuffer(target, renderbuffer); 54 helper_->BindRenderbuffer(target, renderbuffer);
59 } 55 }
60 CheckGLError(); 56 CheckGLError();
61 } 57 }
62 58
63 void GLES2Implementation::BindTexture(GLenum target, GLuint texture) { 59 void GLES2Implementation::BindTexture(GLenum target, GLuint texture) {
64 GPU_CLIENT_SINGLE_THREAD_CHECK(); 60 GPU_CLIENT_SINGLE_THREAD_CHECK();
65 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexture(" << GLES2Util::GetSt ringTextureBindTarget(target) << ", " << texture << ")"); // NOLINT
66 if (IsTextureReservedId(texture)) { 61 if (IsTextureReservedId(texture)) {
67 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id"); 62 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id");
68 return; 63 return;
69 } 64 }
70 if (BindTextureHelper(target, texture)) { 65 if (BindTextureHelper(target, texture)) {
71 helper_->BindTexture(target, texture); 66 helper_->BindTexture(target, texture);
72 } 67 }
73 CheckGLError(); 68 CheckGLError();
74 } 69 }
75 70
76 void GLES2Implementation::BlendColor( 71 void GLES2Implementation::BlendColor(
77 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { 72 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
78 GPU_CLIENT_SINGLE_THREAD_CHECK(); 73 GPU_CLIENT_SINGLE_THREAD_CHECK();
79 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendColor(" << red << ", " << gr een << ", " << blue << ", " << alpha << ")"); // NOLINT
80 helper_->BlendColor(red, green, blue, alpha); 74 helper_->BlendColor(red, green, blue, alpha);
81 CheckGLError(); 75 CheckGLError();
82 } 76 }
83 77
84 void GLES2Implementation::BlendEquation(GLenum mode) { 78 void GLES2Implementation::BlendEquation(GLenum mode) {
85 GPU_CLIENT_SINGLE_THREAD_CHECK(); 79 GPU_CLIENT_SINGLE_THREAD_CHECK();
86 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquation(" << GLES2Util::Get StringEquation(mode) << ")"); // NOLINT
87 helper_->BlendEquation(mode); 80 helper_->BlendEquation(mode);
88 CheckGLError(); 81 CheckGLError();
89 } 82 }
90 83
91 void GLES2Implementation::BlendEquationSeparate( 84 void GLES2Implementation::BlendEquationSeparate(
92 GLenum modeRGB, GLenum modeAlpha) { 85 GLenum modeRGB, GLenum modeAlpha) {
93 GPU_CLIENT_SINGLE_THREAD_CHECK(); 86 GPU_CLIENT_SINGLE_THREAD_CHECK();
94 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquationSeparate(" << GLES2U til::GetStringEquation(modeRGB) << ", " << GLES2Util::GetStringEquation(modeAlph a) << ")"); // NOLINT
95 helper_->BlendEquationSeparate(modeRGB, modeAlpha); 87 helper_->BlendEquationSeparate(modeRGB, modeAlpha);
96 CheckGLError(); 88 CheckGLError();
97 } 89 }
98 90
99 void GLES2Implementation::BlendFunc(GLenum sfactor, GLenum dfactor) { 91 void GLES2Implementation::BlendFunc(GLenum sfactor, GLenum dfactor) {
100 GPU_CLIENT_SINGLE_THREAD_CHECK(); 92 GPU_CLIENT_SINGLE_THREAD_CHECK();
101 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFunc(" << GLES2Util::GetStri ngSrcBlendFactor(sfactor) << ", " << GLES2Util::GetStringDstBlendFactor(dfactor) << ")"); // NOLINT
102 helper_->BlendFunc(sfactor, dfactor); 93 helper_->BlendFunc(sfactor, dfactor);
103 CheckGLError(); 94 CheckGLError();
104 } 95 }
105 96
106 void GLES2Implementation::BlendFuncSeparate( 97 void GLES2Implementation::BlendFuncSeparate(
107 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { 98 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
108 GPU_CLIENT_SINGLE_THREAD_CHECK(); 99 GPU_CLIENT_SINGLE_THREAD_CHECK();
109 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFuncSeparate(" << GLES2Util: :GetStringSrcBlendFactor(srcRGB) << ", " << GLES2Util::GetStringDstBlendFactor(d stRGB) << ", " << GLES2Util::GetStringSrcBlendFactor(srcAlpha) << ", " << GLES2U til::GetStringDstBlendFactor(dstAlpha) << ")"); // NOLINT
110 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); 100 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
111 CheckGLError(); 101 CheckGLError();
112 } 102 }
113 103
114 GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) { 104 GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) {
115 GPU_CLIENT_SINGLE_THREAD_CHECK(); 105 GPU_CLIENT_SINGLE_THREAD_CHECK();
116 TRACE_EVENT0("gpu", "GLES2Implementation::CheckFramebufferStatus"); 106 TRACE_EVENT0("gpu", "GLES2Implementation::CheckFramebufferStatus");
117 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCheckFramebufferStatus(" << GLES2 Util::GetStringFrameBufferTarget(target) << ")"); // NOLINT
118 typedef cmds::CheckFramebufferStatus::Result Result; 107 typedef cmds::CheckFramebufferStatus::Result Result;
119 Result* result = GetResultAs<Result*>(); 108 Result* result = GetResultAs<Result*>();
120 if (!result) { 109 if (!result) {
121 return GL_FRAMEBUFFER_UNSUPPORTED; 110 return GL_FRAMEBUFFER_UNSUPPORTED;
122 } 111 }
123 *result = 0; 112 *result = 0;
124 helper_->CheckFramebufferStatus( 113 helper_->CheckFramebufferStatus(
125 target, GetResultShmId(), GetResultShmOffset()); 114 target, GetResultShmId(), GetResultShmOffset());
126 WaitForCmd(); 115 WaitForCmd();
127 GLenum result_value = *result; 116 GLenum result_value = *result;
128 GPU_CLIENT_LOG("returned " << result_value);
129 CheckGLError(); 117 CheckGLError();
130 return result_value; 118 return result_value;
131 } 119 }
132 120
133 void GLES2Implementation::Clear(GLbitfield mask) { 121 void GLES2Implementation::Clear(GLbitfield mask) {
134 GPU_CLIENT_SINGLE_THREAD_CHECK(); 122 GPU_CLIENT_SINGLE_THREAD_CHECK();
135 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClear(" << mask << ")");
136 helper_->Clear(mask); 123 helper_->Clear(mask);
137 CheckGLError(); 124 CheckGLError();
138 } 125 }
139 126
140 void GLES2Implementation::ClearColor( 127 void GLES2Implementation::ClearColor(
141 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { 128 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
142 GPU_CLIENT_SINGLE_THREAD_CHECK(); 129 GPU_CLIENT_SINGLE_THREAD_CHECK();
143 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearColor(" << red << ", " << gr een << ", " << blue << ", " << alpha << ")"); // NOLINT
144 helper_->ClearColor(red, green, blue, alpha); 130 helper_->ClearColor(red, green, blue, alpha);
145 CheckGLError(); 131 CheckGLError();
146 } 132 }
147 133
148 void GLES2Implementation::ClearDepthf(GLclampf depth) { 134 void GLES2Implementation::ClearDepthf(GLclampf depth) {
149 GPU_CLIENT_SINGLE_THREAD_CHECK(); 135 GPU_CLIENT_SINGLE_THREAD_CHECK();
150 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearDepthf(" << depth << ")");
151 helper_->ClearDepthf(depth); 136 helper_->ClearDepthf(depth);
152 CheckGLError(); 137 CheckGLError();
153 } 138 }
154 139
155 void GLES2Implementation::ClearStencil(GLint s) { 140 void GLES2Implementation::ClearStencil(GLint s) {
156 GPU_CLIENT_SINGLE_THREAD_CHECK(); 141 GPU_CLIENT_SINGLE_THREAD_CHECK();
157 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearStencil(" << s << ")");
158 helper_->ClearStencil(s); 142 helper_->ClearStencil(s);
159 CheckGLError(); 143 CheckGLError();
160 } 144 }
161 145
162 void GLES2Implementation::ColorMask( 146 void GLES2Implementation::ColorMask(
163 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { 147 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
164 GPU_CLIENT_SINGLE_THREAD_CHECK(); 148 GPU_CLIENT_SINGLE_THREAD_CHECK();
165 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glColorMask(" << GLES2Util::GetStri ngBool(red) << ", " << GLES2Util::GetStringBool(green) << ", " << GLES2Util::Get StringBool(blue) << ", " << GLES2Util::GetStringBool(alpha) << ")"); // NOLINT
166 helper_->ColorMask(red, green, blue, alpha); 149 helper_->ColorMask(red, green, blue, alpha);
167 CheckGLError(); 150 CheckGLError();
168 } 151 }
169 152
170 void GLES2Implementation::CompileShader(GLuint shader) { 153 void GLES2Implementation::CompileShader(GLuint shader) {
171 GPU_CLIENT_SINGLE_THREAD_CHECK(); 154 GPU_CLIENT_SINGLE_THREAD_CHECK();
172 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCompileShader(" << shader << ")") ; // NOLINT
173 helper_->CompileShader(shader); 155 helper_->CompileShader(shader);
174 CheckGLError(); 156 CheckGLError();
175 } 157 }
176 158
177 void GLES2Implementation::CopyTexImage2D( 159 void GLES2Implementation::CopyTexImage2D(
178 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, 160 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
179 GLsizei width, GLsizei height, GLint border) { 161 GLsizei width, GLsizei height, GLint border) {
180 GPU_CLIENT_SINGLE_THREAD_CHECK(); 162 GPU_CLIENT_SINGLE_THREAD_CHECK();
181 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexImage2D(" << GLES2Util::Ge tStringTextureTarget(target) << ", " << level << ", " << GLES2Util::GetStringTex tureInternalFormat(internalformat) << ", " << x << ", " << y << ", " << width << ", " << height << ", " << border << ")"); // NOLINT
182 if (width < 0) { 163 if (width < 0) {
183 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); 164 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0");
184 return; 165 return;
185 } 166 }
186 if (height < 0) { 167 if (height < 0) {
187 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); 168 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0");
188 return; 169 return;
189 } 170 }
190 helper_->CopyTexImage2D( 171 helper_->CopyTexImage2D(
191 target, level, internalformat, x, y, width, height, border); 172 target, level, internalformat, x, y, width, height, border);
192 CheckGLError(); 173 CheckGLError();
193 } 174 }
194 175
195 void GLES2Implementation::CopyTexSubImage2D( 176 void GLES2Implementation::CopyTexSubImage2D(
196 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, 177 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y,
197 GLsizei width, GLsizei height) { 178 GLsizei width, GLsizei height) {
198 GPU_CLIENT_SINGLE_THREAD_CHECK(); 179 GPU_CLIENT_SINGLE_THREAD_CHECK();
199 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexSubImage2D(" << GLES2Util: :GetStringTextureTarget(target) << ", " << level << ", " << xoffset << ", " << y offset << ", " << x << ", " << y << ", " << width << ", " << height << ")"); // NOLINT
200 if (width < 0) { 180 if (width < 0) {
201 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); 181 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0");
202 return; 182 return;
203 } 183 }
204 if (height < 0) { 184 if (height < 0) {
205 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); 185 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0");
206 return; 186 return;
207 } 187 }
208 helper_->CopyTexSubImage2D( 188 helper_->CopyTexSubImage2D(
209 target, level, xoffset, yoffset, x, y, width, height); 189 target, level, xoffset, yoffset, x, y, width, height);
210 CheckGLError(); 190 CheckGLError();
211 } 191 }
212 192
213 GLuint GLES2Implementation::CreateProgram() { 193 GLuint GLES2Implementation::CreateProgram() {
214 GPU_CLIENT_SINGLE_THREAD_CHECK(); 194 GPU_CLIENT_SINGLE_THREAD_CHECK();
215 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateProgram(" << ")");
216 GLuint client_id; 195 GLuint client_id;
217 GetIdHandler(id_namespaces::kProgramsAndShaders)-> 196 GetIdHandler(id_namespaces::kProgramsAndShaders)->
218 MakeIds(this, 0, 1, &client_id); 197 MakeIds(this, 0, 1, &client_id);
219 helper_->CreateProgram(client_id); 198 helper_->CreateProgram(client_id);
220 GPU_CLIENT_LOG("returned " << client_id);
221 CheckGLError(); 199 CheckGLError();
222 return client_id; 200 return client_id;
223 } 201 }
224 202
225 GLuint GLES2Implementation::CreateShader(GLenum type) { 203 GLuint GLES2Implementation::CreateShader(GLenum type) {
226 GPU_CLIENT_SINGLE_THREAD_CHECK(); 204 GPU_CLIENT_SINGLE_THREAD_CHECK();
227 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateShader(" << GLES2Util::GetS tringShaderType(type) << ")"); // NOLINT
228 GLuint client_id; 205 GLuint client_id;
229 GetIdHandler(id_namespaces::kProgramsAndShaders)-> 206 GetIdHandler(id_namespaces::kProgramsAndShaders)->
230 MakeIds(this, 0, 1, &client_id); 207 MakeIds(this, 0, 1, &client_id);
231 helper_->CreateShader(type, client_id); 208 helper_->CreateShader(type, client_id);
232 GPU_CLIENT_LOG("returned " << client_id);
233 CheckGLError(); 209 CheckGLError();
234 return client_id; 210 return client_id;
235 } 211 }
236 212
237 void GLES2Implementation::CullFace(GLenum mode) { 213 void GLES2Implementation::CullFace(GLenum mode) {
238 GPU_CLIENT_SINGLE_THREAD_CHECK(); 214 GPU_CLIENT_SINGLE_THREAD_CHECK();
239 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCullFace(" << GLES2Util::GetStrin gFaceType(mode) << ")"); // NOLINT
240 helper_->CullFace(mode); 215 helper_->CullFace(mode);
241 CheckGLError(); 216 CheckGLError();
242 } 217 }
243 218
244 void GLES2Implementation::DeleteBuffers(GLsizei n, const GLuint* buffers) { 219 void GLES2Implementation::DeleteBuffers(GLsizei n, const GLuint* buffers) {
245 GPU_CLIENT_SINGLE_THREAD_CHECK(); 220 GPU_CLIENT_SINGLE_THREAD_CHECK();
246 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteBuffers(" << n << ", " << s tatic_cast<const void*>(buffers) << ")"); // NOLINT
247 GPU_CLIENT_LOG_CODE_BLOCK({
248 for (GLsizei i = 0; i < n; ++i) {
249 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]);
250 }
251 });
252 GPU_CLIENT_DCHECK_CODE_BLOCK({ 221 GPU_CLIENT_DCHECK_CODE_BLOCK({
253 for (GLsizei i = 0; i < n; ++i) { 222 for (GLsizei i = 0; i < n; ++i) {
254 DCHECK(buffers[i] != 0); 223 DCHECK(buffers[i] != 0);
255 } 224 }
256 }); 225 });
257 if (n < 0) { 226 if (n < 0) {
258 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0"); 227 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0");
259 return; 228 return;
260 } 229 }
261 DeleteBuffersHelper(n, buffers); 230 DeleteBuffersHelper(n, buffers);
262 CheckGLError(); 231 CheckGLError();
263 } 232 }
264 233
265 void GLES2Implementation::DeleteFramebuffers( 234 void GLES2Implementation::DeleteFramebuffers(
266 GLsizei n, const GLuint* framebuffers) { 235 GLsizei n, const GLuint* framebuffers) {
267 GPU_CLIENT_SINGLE_THREAD_CHECK(); 236 GPU_CLIENT_SINGLE_THREAD_CHECK();
268 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteFramebuffers(" << n << ", " << static_cast<const void*>(framebuffers) << ")"); // NOLINT
269 GPU_CLIENT_LOG_CODE_BLOCK({
270 for (GLsizei i = 0; i < n; ++i) {
271 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]);
272 }
273 });
274 GPU_CLIENT_DCHECK_CODE_BLOCK({ 237 GPU_CLIENT_DCHECK_CODE_BLOCK({
275 for (GLsizei i = 0; i < n; ++i) { 238 for (GLsizei i = 0; i < n; ++i) {
276 DCHECK(framebuffers[i] != 0); 239 DCHECK(framebuffers[i] != 0);
277 } 240 }
278 }); 241 });
279 if (n < 0) { 242 if (n < 0) {
280 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0"); 243 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0");
281 return; 244 return;
282 } 245 }
283 DeleteFramebuffersHelper(n, framebuffers); 246 DeleteFramebuffersHelper(n, framebuffers);
284 CheckGLError(); 247 CheckGLError();
285 } 248 }
286 249
287 void GLES2Implementation::DeleteProgram(GLuint program) { 250 void GLES2Implementation::DeleteProgram(GLuint program) {
288 GPU_CLIENT_SINGLE_THREAD_CHECK(); 251 GPU_CLIENT_SINGLE_THREAD_CHECK();
289 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteProgram(" << program << ")" ); // NOLINT
290 GPU_CLIENT_DCHECK(program != 0); 252 GPU_CLIENT_DCHECK(program != 0);
291 DeleteProgramHelper(program); 253 DeleteProgramHelper(program);
292 CheckGLError(); 254 CheckGLError();
293 } 255 }
294 256
295 void GLES2Implementation::DeleteRenderbuffers( 257 void GLES2Implementation::DeleteRenderbuffers(
296 GLsizei n, const GLuint* renderbuffers) { 258 GLsizei n, const GLuint* renderbuffers) {
297 GPU_CLIENT_SINGLE_THREAD_CHECK(); 259 GPU_CLIENT_SINGLE_THREAD_CHECK();
298 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteRenderbuffers(" << n << ", " << static_cast<const void*>(renderbuffers) << ")"); // NOLINT
299 GPU_CLIENT_LOG_CODE_BLOCK({
300 for (GLsizei i = 0; i < n; ++i) {
301 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]);
302 }
303 });
304 GPU_CLIENT_DCHECK_CODE_BLOCK({ 260 GPU_CLIENT_DCHECK_CODE_BLOCK({
305 for (GLsizei i = 0; i < n; ++i) { 261 for (GLsizei i = 0; i < n; ++i) {
306 DCHECK(renderbuffers[i] != 0); 262 DCHECK(renderbuffers[i] != 0);
307 } 263 }
308 }); 264 });
309 if (n < 0) { 265 if (n < 0) {
310 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0"); 266 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0");
311 return; 267 return;
312 } 268 }
313 DeleteRenderbuffersHelper(n, renderbuffers); 269 DeleteRenderbuffersHelper(n, renderbuffers);
314 CheckGLError(); 270 CheckGLError();
315 } 271 }
316 272
317 void GLES2Implementation::DeleteShader(GLuint shader) { 273 void GLES2Implementation::DeleteShader(GLuint shader) {
318 GPU_CLIENT_SINGLE_THREAD_CHECK(); 274 GPU_CLIENT_SINGLE_THREAD_CHECK();
319 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")");
320 GPU_CLIENT_DCHECK(shader != 0); 275 GPU_CLIENT_DCHECK(shader != 0);
321 DeleteShaderHelper(shader); 276 DeleteShaderHelper(shader);
322 CheckGLError(); 277 CheckGLError();
323 } 278 }
324 279
325 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) { 280 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) {
326 GPU_CLIENT_SINGLE_THREAD_CHECK(); 281 GPU_CLIENT_SINGLE_THREAD_CHECK();
327 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTextures(" << n << ", " << static_cast<const void*>(textures) << ")"); // NOLINT
328 GPU_CLIENT_LOG_CODE_BLOCK({
329 for (GLsizei i = 0; i < n; ++i) {
330 GPU_CLIENT_LOG(" " << i << ": " << textures[i]);
331 }
332 });
333 GPU_CLIENT_DCHECK_CODE_BLOCK({ 282 GPU_CLIENT_DCHECK_CODE_BLOCK({
334 for (GLsizei i = 0; i < n; ++i) { 283 for (GLsizei i = 0; i < n; ++i) {
335 DCHECK(textures[i] != 0); 284 DCHECK(textures[i] != 0);
336 } 285 }
337 }); 286 });
338 if (n < 0) { 287 if (n < 0) {
339 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0"); 288 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0");
340 return; 289 return;
341 } 290 }
342 DeleteTexturesHelper(n, textures); 291 DeleteTexturesHelper(n, textures);
343 CheckGLError(); 292 CheckGLError();
344 } 293 }
345 294
346 void GLES2Implementation::DepthFunc(GLenum func) { 295 void GLES2Implementation::DepthFunc(GLenum func) {
347 GPU_CLIENT_SINGLE_THREAD_CHECK(); 296 GPU_CLIENT_SINGLE_THREAD_CHECK();
348 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc(" << GLES2Util::GetStri ngCmpFunction(func) << ")"); // NOLINT
349 helper_->DepthFunc(func); 297 helper_->DepthFunc(func);
350 CheckGLError(); 298 CheckGLError();
351 } 299 }
352 300
353 void GLES2Implementation::DepthMask(GLboolean flag) { 301 void GLES2Implementation::DepthMask(GLboolean flag) {
354 GPU_CLIENT_SINGLE_THREAD_CHECK(); 302 GPU_CLIENT_SINGLE_THREAD_CHECK();
355 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthMask(" << GLES2Util::GetStri ngBool(flag) << ")"); // NOLINT
356 helper_->DepthMask(flag); 303 helper_->DepthMask(flag);
357 CheckGLError(); 304 CheckGLError();
358 } 305 }
359 306
360 void GLES2Implementation::DepthRangef(GLclampf zNear, GLclampf zFar) { 307 void GLES2Implementation::DepthRangef(GLclampf zNear, GLclampf zFar) {
361 GPU_CLIENT_SINGLE_THREAD_CHECK(); 308 GPU_CLIENT_SINGLE_THREAD_CHECK();
362 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthRangef(" << zNear << ", " << zFar << ")"); // NOLINT
363 helper_->DepthRangef(zNear, zFar); 309 helper_->DepthRangef(zNear, zFar);
364 CheckGLError(); 310 CheckGLError();
365 } 311 }
366 312
367 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) { 313 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) {
368 GPU_CLIENT_SINGLE_THREAD_CHECK(); 314 GPU_CLIENT_SINGLE_THREAD_CHECK();
369 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", " << shader << ")"); // NOLINT
370 helper_->DetachShader(program, shader); 315 helper_->DetachShader(program, shader);
371 CheckGLError(); 316 CheckGLError();
372 } 317 }
373 318
374 void GLES2Implementation::FramebufferRenderbuffer( 319 void GLES2Implementation::FramebufferRenderbuffer(
375 GLenum target, GLenum attachment, GLenum renderbuffertarget, 320 GLenum target, GLenum attachment, GLenum renderbuffertarget,
376 GLuint renderbuffer) { 321 GLuint renderbuffer) {
377 GPU_CLIENT_SINGLE_THREAD_CHECK(); 322 GPU_CLIENT_SINGLE_THREAD_CHECK();
378 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" << GLES 2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachm ent(attachment) << ", " << GLES2Util::GetStringRenderBufferTarget(renderbufferta rget) << ", " << renderbuffer << ")"); // NOLINT
379 helper_->FramebufferRenderbuffer( 323 helper_->FramebufferRenderbuffer(
380 target, attachment, renderbuffertarget, renderbuffer); 324 target, attachment, renderbuffertarget, renderbuffer);
381 CheckGLError(); 325 CheckGLError();
382 } 326 }
383 327
384 void GLES2Implementation::FramebufferTexture2D( 328 void GLES2Implementation::FramebufferTexture2D(
385 GLenum target, GLenum attachment, GLenum textarget, GLuint texture, 329 GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
386 GLint level) { 330 GLint level) {
387 GPU_CLIENT_SINGLE_THREAD_CHECK(); 331 GPU_CLIENT_SINGLE_THREAD_CHECK();
388 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2D(" << GLES2Ut il::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachment (attachment) << ", " << GLES2Util::GetStringTextureTarget(textarget) << ", " << texture << ", " << level << ")"); // NOLINT
389 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level); 332 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level);
390 CheckGLError(); 333 CheckGLError();
391 } 334 }
392 335
393 void GLES2Implementation::FrontFace(GLenum mode) { 336 void GLES2Implementation::FrontFace(GLenum mode) {
394 GPU_CLIENT_SINGLE_THREAD_CHECK(); 337 GPU_CLIENT_SINGLE_THREAD_CHECK();
395 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" << GLES2Util::GetStri ngFaceMode(mode) << ")"); // NOLINT
396 helper_->FrontFace(mode); 338 helper_->FrontFace(mode);
397 CheckGLError(); 339 CheckGLError();
398 } 340 }
399 341
400 void GLES2Implementation::GenBuffers(GLsizei n, GLuint* buffers) { 342 void GLES2Implementation::GenBuffers(GLsizei n, GLuint* buffers) {
401 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenBuffers(" << n << ", " << stat ic_cast<const void*>(buffers) << ")"); // NOLINT
402 if (n < 0) { 343 if (n < 0) {
403 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0"); 344 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0");
404 return; 345 return;
405 } 346 }
406 GPU_CLIENT_SINGLE_THREAD_CHECK(); 347 GPU_CLIENT_SINGLE_THREAD_CHECK();
407 GetIdHandler(id_namespaces::kBuffers)-> 348 GetIdHandler(id_namespaces::kBuffers)->
408 MakeIds(this, 0, n, buffers); 349 MakeIds(this, 0, n, buffers);
409 GenBuffersHelper(n, buffers); 350 GenBuffersHelper(n, buffers);
410 helper_->GenBuffersImmediate(n, buffers); 351 helper_->GenBuffersImmediate(n, buffers);
411 helper_->CommandBufferHelper::Flush(); 352 helper_->CommandBufferHelper::Flush();
412 GPU_CLIENT_LOG_CODE_BLOCK({
413 for (GLsizei i = 0; i < n; ++i) {
414 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]);
415 }
416 });
417 CheckGLError(); 353 CheckGLError();
418 } 354 }
419 355
420 void GLES2Implementation::GenerateMipmap(GLenum target) { 356 void GLES2Implementation::GenerateMipmap(GLenum target) {
421 GPU_CLIENT_SINGLE_THREAD_CHECK(); 357 GPU_CLIENT_SINGLE_THREAD_CHECK();
422 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenerateMipmap(" << GLES2Util::Ge tStringTextureBindTarget(target) << ")"); // NOLINT
423 helper_->GenerateMipmap(target); 358 helper_->GenerateMipmap(target);
424 CheckGLError(); 359 CheckGLError();
425 } 360 }
426 361
427 void GLES2Implementation::GenFramebuffers(GLsizei n, GLuint* framebuffers) { 362 void GLES2Implementation::GenFramebuffers(GLsizei n, GLuint* framebuffers) {
428 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenFramebuffers(" << n << ", " << static_cast<const void*>(framebuffers) << ")"); // NOLINT
429 if (n < 0) { 363 if (n < 0) {
430 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0"); 364 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0");
431 return; 365 return;
432 } 366 }
433 GPU_CLIENT_SINGLE_THREAD_CHECK(); 367 GPU_CLIENT_SINGLE_THREAD_CHECK();
434 GetIdHandler(id_namespaces::kFramebuffers)-> 368 GetIdHandler(id_namespaces::kFramebuffers)->
435 MakeIds(this, 0, n, framebuffers); 369 MakeIds(this, 0, n, framebuffers);
436 GenFramebuffersHelper(n, framebuffers); 370 GenFramebuffersHelper(n, framebuffers);
437 helper_->GenFramebuffersImmediate(n, framebuffers); 371 helper_->GenFramebuffersImmediate(n, framebuffers);
438 helper_->CommandBufferHelper::Flush(); 372 helper_->CommandBufferHelper::Flush();
439 GPU_CLIENT_LOG_CODE_BLOCK({
440 for (GLsizei i = 0; i < n; ++i) {
441 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]);
442 }
443 });
444 CheckGLError(); 373 CheckGLError();
445 } 374 }
446 375
447 void GLES2Implementation::GenRenderbuffers(GLsizei n, GLuint* renderbuffers) { 376 void GLES2Implementation::GenRenderbuffers(GLsizei n, GLuint* renderbuffers) {
448 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenRenderbuffers(" << n << ", " < < static_cast<const void*>(renderbuffers) << ")"); // NOLINT
449 if (n < 0) { 377 if (n < 0) {
450 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0"); 378 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0");
451 return; 379 return;
452 } 380 }
453 GPU_CLIENT_SINGLE_THREAD_CHECK(); 381 GPU_CLIENT_SINGLE_THREAD_CHECK();
454 GetIdHandler(id_namespaces::kRenderbuffers)-> 382 GetIdHandler(id_namespaces::kRenderbuffers)->
455 MakeIds(this, 0, n, renderbuffers); 383 MakeIds(this, 0, n, renderbuffers);
456 GenRenderbuffersHelper(n, renderbuffers); 384 GenRenderbuffersHelper(n, renderbuffers);
457 helper_->GenRenderbuffersImmediate(n, renderbuffers); 385 helper_->GenRenderbuffersImmediate(n, renderbuffers);
458 helper_->CommandBufferHelper::Flush(); 386 helper_->CommandBufferHelper::Flush();
459 GPU_CLIENT_LOG_CODE_BLOCK({
460 for (GLsizei i = 0; i < n; ++i) {
461 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]);
462 }
463 });
464 CheckGLError(); 387 CheckGLError();
465 } 388 }
466 389
467 void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) { 390 void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) {
468 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTextures(" << n << ", " << sta tic_cast<const void*>(textures) << ")"); // NOLINT
469 if (n < 0) { 391 if (n < 0) {
470 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0"); 392 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0");
471 return; 393 return;
472 } 394 }
473 GPU_CLIENT_SINGLE_THREAD_CHECK(); 395 GPU_CLIENT_SINGLE_THREAD_CHECK();
474 GetIdHandler(id_namespaces::kTextures)-> 396 GetIdHandler(id_namespaces::kTextures)->
475 MakeIds(this, 0, n, textures); 397 MakeIds(this, 0, n, textures);
476 GenTexturesHelper(n, textures); 398 GenTexturesHelper(n, textures);
477 helper_->GenTexturesImmediate(n, textures); 399 helper_->GenTexturesImmediate(n, textures);
478 helper_->CommandBufferHelper::Flush(); 400 helper_->CommandBufferHelper::Flush();
479 GPU_CLIENT_LOG_CODE_BLOCK({
480 for (GLsizei i = 0; i < n; ++i) {
481 GPU_CLIENT_LOG(" " << i << ": " << textures[i]);
482 }
483 });
484 CheckGLError(); 401 CheckGLError();
485 } 402 }
486 403
487 void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) { 404 void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) {
488 GPU_CLIENT_SINGLE_THREAD_CHECK(); 405 GPU_CLIENT_SINGLE_THREAD_CHECK();
489 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params); 406 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params);
490 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBooleanv(" << GLES2Util::GetSt ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI NT
491 TRACE_EVENT0("gpu", "GLES2Implementation::GetBooleanv"); 407 TRACE_EVENT0("gpu", "GLES2Implementation::GetBooleanv");
492 if (GetBooleanvHelper(pname, params)) { 408 if (GetBooleanvHelper(pname, params)) {
493 return; 409 return;
494 } 410 }
495 typedef cmds::GetBooleanv::Result Result; 411 typedef cmds::GetBooleanv::Result Result;
496 Result* result = GetResultAs<Result*>(); 412 Result* result = GetResultAs<Result*>();
497 if (!result) { 413 if (!result) {
498 return; 414 return;
499 } 415 }
500 result->SetNumResults(0); 416 result->SetNumResults(0);
501 helper_->GetBooleanv(pname, 417 helper_->GetBooleanv(pname,
502 GetResultShmId(), GetResultShmOffset()); 418 GetResultShmId(), GetResultShmOffset());
503 WaitForCmd(); 419 WaitForCmd();
504 result->CopyResult(params); 420 result->CopyResult(params);
505 GPU_CLIENT_LOG_CODE_BLOCK({
506 for (int32 i = 0; i < result->GetNumResults(); ++i) {
507 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
508 }
509 });
510 CheckGLError(); 421 CheckGLError();
511 } 422 }
512 void GLES2Implementation::GetBufferParameteriv( 423 void GLES2Implementation::GetBufferParameteriv(
513 GLenum target, GLenum pname, GLint* params) { 424 GLenum target, GLenum pname, GLint* params) {
514 GPU_CLIENT_SINGLE_THREAD_CHECK(); 425 GPU_CLIENT_SINGLE_THREAD_CHECK();
515 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 426 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
516 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBufferParameteriv(" << GLES2Ut il::GetStringBufferTarget(target) << ", " << GLES2Util::GetStringBufferParameter (pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
517 TRACE_EVENT0("gpu", "GLES2Implementation::GetBufferParameteriv"); 427 TRACE_EVENT0("gpu", "GLES2Implementation::GetBufferParameteriv");
518 if (GetBufferParameterivHelper(target, pname, params)) { 428 if (GetBufferParameterivHelper(target, pname, params)) {
519 return; 429 return;
520 } 430 }
521 typedef cmds::GetBufferParameteriv::Result Result; 431 typedef cmds::GetBufferParameteriv::Result Result;
522 Result* result = GetResultAs<Result*>(); 432 Result* result = GetResultAs<Result*>();
523 if (!result) { 433 if (!result) {
524 return; 434 return;
525 } 435 }
526 result->SetNumResults(0); 436 result->SetNumResults(0);
527 helper_->GetBufferParameteriv(target, pname, 437 helper_->GetBufferParameteriv(target, pname,
528 GetResultShmId(), GetResultShmOffset()); 438 GetResultShmId(), GetResultShmOffset());
529 WaitForCmd(); 439 WaitForCmd();
530 result->CopyResult(params); 440 result->CopyResult(params);
531 GPU_CLIENT_LOG_CODE_BLOCK({
532 for (int32 i = 0; i < result->GetNumResults(); ++i) {
533 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
534 }
535 });
536 CheckGLError(); 441 CheckGLError();
537 } 442 }
538 void GLES2Implementation::GetFloatv(GLenum pname, GLfloat* params) { 443 void GLES2Implementation::GetFloatv(GLenum pname, GLfloat* params) {
539 GPU_CLIENT_SINGLE_THREAD_CHECK(); 444 GPU_CLIENT_SINGLE_THREAD_CHECK();
540 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFloatv(" << GLES2Util::GetStri ngGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
541 TRACE_EVENT0("gpu", "GLES2Implementation::GetFloatv"); 445 TRACE_EVENT0("gpu", "GLES2Implementation::GetFloatv");
542 if (GetFloatvHelper(pname, params)) { 446 if (GetFloatvHelper(pname, params)) {
543 return; 447 return;
544 } 448 }
545 typedef cmds::GetFloatv::Result Result; 449 typedef cmds::GetFloatv::Result Result;
546 Result* result = GetResultAs<Result*>(); 450 Result* result = GetResultAs<Result*>();
547 if (!result) { 451 if (!result) {
548 return; 452 return;
549 } 453 }
550 result->SetNumResults(0); 454 result->SetNumResults(0);
551 helper_->GetFloatv(pname, 455 helper_->GetFloatv(pname,
552 GetResultShmId(), GetResultShmOffset()); 456 GetResultShmId(), GetResultShmOffset());
553 WaitForCmd(); 457 WaitForCmd();
554 result->CopyResult(params); 458 result->CopyResult(params);
555 GPU_CLIENT_LOG_CODE_BLOCK({
556 for (int32 i = 0; i < result->GetNumResults(); ++i) {
557 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
558 }
559 });
560 CheckGLError(); 459 CheckGLError();
561 } 460 }
562 void GLES2Implementation::GetFramebufferAttachmentParameteriv( 461 void GLES2Implementation::GetFramebufferAttachmentParameteriv(
563 GLenum target, GLenum attachment, GLenum pname, GLint* params) { 462 GLenum target, GLenum attachment, GLenum pname, GLint* params) {
564 GPU_CLIENT_SINGLE_THREAD_CHECK(); 463 GPU_CLIENT_SINGLE_THREAD_CHECK();
565 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 464 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
566 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFramebufferAttachmentParameter iv(" << GLES2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetS tringAttachment(attachment) << ", " << GLES2Util::GetStringFrameBufferParameter( pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
567 TRACE_EVENT0("gpu", "GLES2Implementation::GetFramebufferAttachmentParameteriv" ); // NOLINT 465 TRACE_EVENT0("gpu", "GLES2Implementation::GetFramebufferAttachmentParameteriv" ); // NOLINT
568 if (GetFramebufferAttachmentParameterivHelper( 466 if (GetFramebufferAttachmentParameterivHelper(
569 target, attachment, pname, params)) { 467 target, attachment, pname, params)) {
570 return; 468 return;
571 } 469 }
572 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; 470 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
573 Result* result = GetResultAs<Result*>(); 471 Result* result = GetResultAs<Result*>();
574 if (!result) { 472 if (!result) {
575 return; 473 return;
576 } 474 }
577 result->SetNumResults(0); 475 result->SetNumResults(0);
578 helper_->GetFramebufferAttachmentParameteriv(target, attachment, pname, 476 helper_->GetFramebufferAttachmentParameteriv(target, attachment, pname,
579 GetResultShmId(), GetResultShmOffset()); 477 GetResultShmId(), GetResultShmOffset());
580 WaitForCmd(); 478 WaitForCmd();
581 result->CopyResult(params); 479 result->CopyResult(params);
582 GPU_CLIENT_LOG_CODE_BLOCK({
583 for (int32 i = 0; i < result->GetNumResults(); ++i) {
584 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
585 }
586 });
587 CheckGLError(); 480 CheckGLError();
588 } 481 }
589 void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) { 482 void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) {
590 GPU_CLIENT_SINGLE_THREAD_CHECK(); 483 GPU_CLIENT_SINGLE_THREAD_CHECK();
591 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 484 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
592 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetIntegerv(" << GLES2Util::GetSt ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI NT
593 TRACE_EVENT0("gpu", "GLES2Implementation::GetIntegerv"); 485 TRACE_EVENT0("gpu", "GLES2Implementation::GetIntegerv");
594 if (GetIntegervHelper(pname, params)) { 486 if (GetIntegervHelper(pname, params)) {
595 return; 487 return;
596 } 488 }
597 typedef cmds::GetIntegerv::Result Result; 489 typedef cmds::GetIntegerv::Result Result;
598 Result* result = GetResultAs<Result*>(); 490 Result* result = GetResultAs<Result*>();
599 if (!result) { 491 if (!result) {
600 return; 492 return;
601 } 493 }
602 result->SetNumResults(0); 494 result->SetNumResults(0);
603 helper_->GetIntegerv(pname, 495 helper_->GetIntegerv(pname,
604 GetResultShmId(), GetResultShmOffset()); 496 GetResultShmId(), GetResultShmOffset());
605 WaitForCmd(); 497 WaitForCmd();
606 result->CopyResult(params); 498 result->CopyResult(params);
607 GPU_CLIENT_LOG_CODE_BLOCK({
608 for (int32 i = 0; i < result->GetNumResults(); ++i) {
609 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
610 }
611 });
612 CheckGLError(); 499 CheckGLError();
613 } 500 }
614 void GLES2Implementation::GetProgramiv( 501 void GLES2Implementation::GetProgramiv(
615 GLuint program, GLenum pname, GLint* params) { 502 GLuint program, GLenum pname, GLint* params) {
616 GPU_CLIENT_SINGLE_THREAD_CHECK(); 503 GPU_CLIENT_SINGLE_THREAD_CHECK();
617 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 504 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
618 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetProgramiv(" << program << ", " << GLES2Util::GetStringProgramParameter(pname) << ", " << static_cast<const voi d*>(params) << ")"); // NOLINT
619 TRACE_EVENT0("gpu", "GLES2Implementation::GetProgramiv"); 505 TRACE_EVENT0("gpu", "GLES2Implementation::GetProgramiv");
620 if (GetProgramivHelper(program, pname, params)) { 506 if (GetProgramivHelper(program, pname, params)) {
621 return; 507 return;
622 } 508 }
623 typedef cmds::GetProgramiv::Result Result; 509 typedef cmds::GetProgramiv::Result Result;
624 Result* result = GetResultAs<Result*>(); 510 Result* result = GetResultAs<Result*>();
625 if (!result) { 511 if (!result) {
626 return; 512 return;
627 } 513 }
628 result->SetNumResults(0); 514 result->SetNumResults(0);
629 helper_->GetProgramiv(program, pname, 515 helper_->GetProgramiv(program, pname,
630 GetResultShmId(), GetResultShmOffset()); 516 GetResultShmId(), GetResultShmOffset());
631 WaitForCmd(); 517 WaitForCmd();
632 result->CopyResult(params); 518 result->CopyResult(params);
633 GPU_CLIENT_LOG_CODE_BLOCK({
634 for (int32 i = 0; i < result->GetNumResults(); ++i) {
635 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
636 }
637 });
638 CheckGLError(); 519 CheckGLError();
639 } 520 }
640 void GLES2Implementation::GetProgramInfoLog( 521 void GLES2Implementation::GetProgramInfoLog(
641 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) { 522 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) {
642 GPU_CLIENT_SINGLE_THREAD_CHECK(); 523 GPU_CLIENT_SINGLE_THREAD_CHECK();
643 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); 524 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length);
644 GPU_CLIENT_LOG("[" << GetLogPrefix()
645 << "] glGetProgramInfoLog" << "("
646 << program << ", "
647 << bufsize << ", "
648 << static_cast<void*>(length) << ", "
649 << static_cast<void*>(infolog) << ")");
650 helper_->SetBucketSize(kResultBucketId, 0); 525 helper_->SetBucketSize(kResultBucketId, 0);
651 helper_->GetProgramInfoLog(program, kResultBucketId); 526 helper_->GetProgramInfoLog(program, kResultBucketId);
652 std::string str; 527 std::string str;
653 GLsizei max_size = 0; 528 GLsizei max_size = 0;
654 if (GetBucketAsString(kResultBucketId, &str)) { 529 if (GetBucketAsString(kResultBucketId, &str)) {
655 if (bufsize > 0) { 530 if (bufsize > 0) {
656 max_size = 531 max_size =
657 std::min(static_cast<size_t>(bufsize) - 1, str.size()); 532 std::min(static_cast<size_t>(bufsize) - 1, str.size());
658 memcpy(infolog, str.c_str(), max_size); 533 memcpy(infolog, str.c_str(), max_size);
659 infolog[max_size] = '\0'; 534 infolog[max_size] = '\0';
660 GPU_CLIENT_LOG("------\n" << infolog << "\n------");
661 } 535 }
662 } 536 }
663 if (length != NULL) { 537 if (length != NULL) {
664 *length = max_size; 538 *length = max_size;
665 } 539 }
666 CheckGLError(); 540 CheckGLError();
667 } 541 }
668 void GLES2Implementation::GetRenderbufferParameteriv( 542 void GLES2Implementation::GetRenderbufferParameteriv(
669 GLenum target, GLenum pname, GLint* params) { 543 GLenum target, GLenum pname, GLint* params) {
670 GPU_CLIENT_SINGLE_THREAD_CHECK(); 544 GPU_CLIENT_SINGLE_THREAD_CHECK();
671 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 545 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
672 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetRenderbufferParameteriv(" << G LES2Util::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRen derBufferParameter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
673 TRACE_EVENT0("gpu", "GLES2Implementation::GetRenderbufferParameteriv"); 546 TRACE_EVENT0("gpu", "GLES2Implementation::GetRenderbufferParameteriv");
674 if (GetRenderbufferParameterivHelper(target, pname, params)) { 547 if (GetRenderbufferParameterivHelper(target, pname, params)) {
675 return; 548 return;
676 } 549 }
677 typedef cmds::GetRenderbufferParameteriv::Result Result; 550 typedef cmds::GetRenderbufferParameteriv::Result Result;
678 Result* result = GetResultAs<Result*>(); 551 Result* result = GetResultAs<Result*>();
679 if (!result) { 552 if (!result) {
680 return; 553 return;
681 } 554 }
682 result->SetNumResults(0); 555 result->SetNumResults(0);
683 helper_->GetRenderbufferParameteriv(target, pname, 556 helper_->GetRenderbufferParameteriv(target, pname,
684 GetResultShmId(), GetResultShmOffset()); 557 GetResultShmId(), GetResultShmOffset());
685 WaitForCmd(); 558 WaitForCmd();
686 result->CopyResult(params); 559 result->CopyResult(params);
687 GPU_CLIENT_LOG_CODE_BLOCK({
688 for (int32 i = 0; i < result->GetNumResults(); ++i) {
689 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
690 }
691 });
692 CheckGLError(); 560 CheckGLError();
693 } 561 }
694 void GLES2Implementation::GetShaderiv( 562 void GLES2Implementation::GetShaderiv(
695 GLuint shader, GLenum pname, GLint* params) { 563 GLuint shader, GLenum pname, GLint* params) {
696 GPU_CLIENT_SINGLE_THREAD_CHECK(); 564 GPU_CLIENT_SINGLE_THREAD_CHECK();
697 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 565 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
698 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderiv(" << shader << ", " < < GLES2Util::GetStringShaderParameter(pname) << ", " << static_cast<const void*> (params) << ")"); // NOLINT
699 TRACE_EVENT0("gpu", "GLES2Implementation::GetShaderiv"); 566 TRACE_EVENT0("gpu", "GLES2Implementation::GetShaderiv");
700 if (GetShaderivHelper(shader, pname, params)) { 567 if (GetShaderivHelper(shader, pname, params)) {
701 return; 568 return;
702 } 569 }
703 typedef cmds::GetShaderiv::Result Result; 570 typedef cmds::GetShaderiv::Result Result;
704 Result* result = GetResultAs<Result*>(); 571 Result* result = GetResultAs<Result*>();
705 if (!result) { 572 if (!result) {
706 return; 573 return;
707 } 574 }
708 result->SetNumResults(0); 575 result->SetNumResults(0);
709 helper_->GetShaderiv(shader, pname, 576 helper_->GetShaderiv(shader, pname,
710 GetResultShmId(), GetResultShmOffset()); 577 GetResultShmId(), GetResultShmOffset());
711 WaitForCmd(); 578 WaitForCmd();
712 result->CopyResult(params); 579 result->CopyResult(params);
713 GPU_CLIENT_LOG_CODE_BLOCK({
714 for (int32 i = 0; i < result->GetNumResults(); ++i) {
715 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
716 }
717 });
718 CheckGLError(); 580 CheckGLError();
719 } 581 }
720 void GLES2Implementation::GetShaderInfoLog( 582 void GLES2Implementation::GetShaderInfoLog(
721 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) { 583 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) {
722 GPU_CLIENT_SINGLE_THREAD_CHECK(); 584 GPU_CLIENT_SINGLE_THREAD_CHECK();
723 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); 585 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length);
724 GPU_CLIENT_LOG("[" << GetLogPrefix()
725 << "] glGetShaderInfoLog" << "("
726 << shader << ", "
727 << bufsize << ", "
728 << static_cast<void*>(length) << ", "
729 << static_cast<void*>(infolog) << ")");
730 helper_->SetBucketSize(kResultBucketId, 0); 586 helper_->SetBucketSize(kResultBucketId, 0);
731 helper_->GetShaderInfoLog(shader, kResultBucketId); 587 helper_->GetShaderInfoLog(shader, kResultBucketId);
732 std::string str; 588 std::string str;
733 GLsizei max_size = 0; 589 GLsizei max_size = 0;
734 if (GetBucketAsString(kResultBucketId, &str)) { 590 if (GetBucketAsString(kResultBucketId, &str)) {
735 if (bufsize > 0) { 591 if (bufsize > 0) {
736 max_size = 592 max_size =
737 std::min(static_cast<size_t>(bufsize) - 1, str.size()); 593 std::min(static_cast<size_t>(bufsize) - 1, str.size());
738 memcpy(infolog, str.c_str(), max_size); 594 memcpy(infolog, str.c_str(), max_size);
739 infolog[max_size] = '\0'; 595 infolog[max_size] = '\0';
740 GPU_CLIENT_LOG("------\n" << infolog << "\n------");
741 } 596 }
742 } 597 }
743 if (length != NULL) { 598 if (length != NULL) {
744 *length = max_size; 599 *length = max_size;
745 } 600 }
746 CheckGLError(); 601 CheckGLError();
747 } 602 }
748 void GLES2Implementation::GetShaderSource( 603 void GLES2Implementation::GetShaderSource(
749 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { 604 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) {
750 GPU_CLIENT_SINGLE_THREAD_CHECK(); 605 GPU_CLIENT_SINGLE_THREAD_CHECK();
751 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); 606 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length);
752 GPU_CLIENT_LOG("[" << GetLogPrefix()
753 << "] glGetShaderSource" << "("
754 << shader << ", "
755 << bufsize << ", "
756 << static_cast<void*>(length) << ", "
757 << static_cast<void*>(source) << ")");
758 helper_->SetBucketSize(kResultBucketId, 0); 607 helper_->SetBucketSize(kResultBucketId, 0);
759 helper_->GetShaderSource(shader, kResultBucketId); 608 helper_->GetShaderSource(shader, kResultBucketId);
760 std::string str; 609 std::string str;
761 GLsizei max_size = 0; 610 GLsizei max_size = 0;
762 if (GetBucketAsString(kResultBucketId, &str)) { 611 if (GetBucketAsString(kResultBucketId, &str)) {
763 if (bufsize > 0) { 612 if (bufsize > 0) {
764 max_size = 613 max_size =
765 std::min(static_cast<size_t>(bufsize) - 1, str.size()); 614 std::min(static_cast<size_t>(bufsize) - 1, str.size());
766 memcpy(source, str.c_str(), max_size); 615 memcpy(source, str.c_str(), max_size);
767 source[max_size] = '\0'; 616 source[max_size] = '\0';
768 GPU_CLIENT_LOG("------\n" << source << "\n------");
769 } 617 }
770 } 618 }
771 if (length != NULL) { 619 if (length != NULL) {
772 *length = max_size; 620 *length = max_size;
773 } 621 }
774 CheckGLError(); 622 CheckGLError();
775 } 623 }
776 void GLES2Implementation::GetTexParameterfv( 624 void GLES2Implementation::GetTexParameterfv(
777 GLenum target, GLenum pname, GLfloat* params) { 625 GLenum target, GLenum pname, GLfloat* params) {
778 GPU_CLIENT_SINGLE_THREAD_CHECK(); 626 GPU_CLIENT_SINGLE_THREAD_CHECK();
779 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameterfv(" << GLES2Util: :GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
780 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameterfv"); 627 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameterfv");
781 if (GetTexParameterfvHelper(target, pname, params)) { 628 if (GetTexParameterfvHelper(target, pname, params)) {
782 return; 629 return;
783 } 630 }
784 typedef cmds::GetTexParameterfv::Result Result; 631 typedef cmds::GetTexParameterfv::Result Result;
785 Result* result = GetResultAs<Result*>(); 632 Result* result = GetResultAs<Result*>();
786 if (!result) { 633 if (!result) {
787 return; 634 return;
788 } 635 }
789 result->SetNumResults(0); 636 result->SetNumResults(0);
790 helper_->GetTexParameterfv(target, pname, 637 helper_->GetTexParameterfv(target, pname,
791 GetResultShmId(), GetResultShmOffset()); 638 GetResultShmId(), GetResultShmOffset());
792 WaitForCmd(); 639 WaitForCmd();
793 result->CopyResult(params); 640 result->CopyResult(params);
794 GPU_CLIENT_LOG_CODE_BLOCK({
795 for (int32 i = 0; i < result->GetNumResults(); ++i) {
796 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
797 }
798 });
799 CheckGLError(); 641 CheckGLError();
800 } 642 }
801 void GLES2Implementation::GetTexParameteriv( 643 void GLES2Implementation::GetTexParameteriv(
802 GLenum target, GLenum pname, GLint* params) { 644 GLenum target, GLenum pname, GLint* params) {
803 GPU_CLIENT_SINGLE_THREAD_CHECK(); 645 GPU_CLIENT_SINGLE_THREAD_CHECK();
804 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); 646 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params);
805 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameteriv(" << GLES2Util: :GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
806 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameteriv"); 647 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameteriv");
807 if (GetTexParameterivHelper(target, pname, params)) { 648 if (GetTexParameterivHelper(target, pname, params)) {
808 return; 649 return;
809 } 650 }
810 typedef cmds::GetTexParameteriv::Result Result; 651 typedef cmds::GetTexParameteriv::Result Result;
811 Result* result = GetResultAs<Result*>(); 652 Result* result = GetResultAs<Result*>();
812 if (!result) { 653 if (!result) {
813 return; 654 return;
814 } 655 }
815 result->SetNumResults(0); 656 result->SetNumResults(0);
816 helper_->GetTexParameteriv(target, pname, 657 helper_->GetTexParameteriv(target, pname,
817 GetResultShmId(), GetResultShmOffset()); 658 GetResultShmId(), GetResultShmOffset());
818 WaitForCmd(); 659 WaitForCmd();
819 result->CopyResult(params); 660 result->CopyResult(params);
820 GPU_CLIENT_LOG_CODE_BLOCK({
821 for (int32 i = 0; i < result->GetNumResults(); ++i) {
822 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
823 }
824 });
825 CheckGLError(); 661 CheckGLError();
826 } 662 }
827 void GLES2Implementation::Hint(GLenum target, GLenum mode) { 663 void GLES2Implementation::Hint(GLenum target, GLenum mode) {
828 GPU_CLIENT_SINGLE_THREAD_CHECK(); 664 GPU_CLIENT_SINGLE_THREAD_CHECK();
829 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glHint(" << GLES2Util::GetStringHin tTarget(target) << ", " << GLES2Util::GetStringHintMode(mode) << ")"); // NOLIN T
830 helper_->Hint(target, mode); 665 helper_->Hint(target, mode);
831 CheckGLError(); 666 CheckGLError();
832 } 667 }
833 668
834 GLboolean GLES2Implementation::IsBuffer(GLuint buffer) { 669 GLboolean GLES2Implementation::IsBuffer(GLuint buffer) {
835 GPU_CLIENT_SINGLE_THREAD_CHECK(); 670 GPU_CLIENT_SINGLE_THREAD_CHECK();
836 TRACE_EVENT0("gpu", "GLES2Implementation::IsBuffer"); 671 TRACE_EVENT0("gpu", "GLES2Implementation::IsBuffer");
837 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsBuffer(" << buffer << ")");
838 typedef cmds::IsBuffer::Result Result; 672 typedef cmds::IsBuffer::Result Result;
839 Result* result = GetResultAs<Result*>(); 673 Result* result = GetResultAs<Result*>();
840 if (!result) { 674 if (!result) {
841 return GL_FALSE; 675 return GL_FALSE;
842 } 676 }
843 *result = 0; 677 *result = 0;
844 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset()); 678 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset());
845 WaitForCmd(); 679 WaitForCmd();
846 GLboolean result_value = *result; 680 GLboolean result_value = *result;
847 GPU_CLIENT_LOG("returned " << result_value);
848 CheckGLError(); 681 CheckGLError();
849 return result_value; 682 return result_value;
850 } 683 }
851 684
852 GLboolean GLES2Implementation::IsFramebuffer(GLuint framebuffer) { 685 GLboolean GLES2Implementation::IsFramebuffer(GLuint framebuffer) {
853 GPU_CLIENT_SINGLE_THREAD_CHECK(); 686 GPU_CLIENT_SINGLE_THREAD_CHECK();
854 TRACE_EVENT0("gpu", "GLES2Implementation::IsFramebuffer"); 687 TRACE_EVENT0("gpu", "GLES2Implementation::IsFramebuffer");
855 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsFramebuffer(" << framebuffer << ")"); // NOLINT
856 typedef cmds::IsFramebuffer::Result Result; 688 typedef cmds::IsFramebuffer::Result Result;
857 Result* result = GetResultAs<Result*>(); 689 Result* result = GetResultAs<Result*>();
858 if (!result) { 690 if (!result) {
859 return GL_FALSE; 691 return GL_FALSE;
860 } 692 }
861 *result = 0; 693 *result = 0;
862 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset()); 694 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset());
863 WaitForCmd(); 695 WaitForCmd();
864 GLboolean result_value = *result; 696 GLboolean result_value = *result;
865 GPU_CLIENT_LOG("returned " << result_value);
866 CheckGLError(); 697 CheckGLError();
867 return result_value; 698 return result_value;
868 } 699 }
869 700
870 GLboolean GLES2Implementation::IsProgram(GLuint program) { 701 GLboolean GLES2Implementation::IsProgram(GLuint program) {
871 GPU_CLIENT_SINGLE_THREAD_CHECK(); 702 GPU_CLIENT_SINGLE_THREAD_CHECK();
872 TRACE_EVENT0("gpu", "GLES2Implementation::IsProgram"); 703 TRACE_EVENT0("gpu", "GLES2Implementation::IsProgram");
873 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsProgram(" << program << ")");
874 typedef cmds::IsProgram::Result Result; 704 typedef cmds::IsProgram::Result Result;
875 Result* result = GetResultAs<Result*>(); 705 Result* result = GetResultAs<Result*>();
876 if (!result) { 706 if (!result) {
877 return GL_FALSE; 707 return GL_FALSE;
878 } 708 }
879 *result = 0; 709 *result = 0;
880 helper_->IsProgram(program, GetResultShmId(), GetResultShmOffset()); 710 helper_->IsProgram(program, GetResultShmId(), GetResultShmOffset());
881 WaitForCmd(); 711 WaitForCmd();
882 GLboolean result_value = *result; 712 GLboolean result_value = *result;
883 GPU_CLIENT_LOG("returned " << result_value);
884 CheckGLError(); 713 CheckGLError();
885 return result_value; 714 return result_value;
886 } 715 }
887 716
888 GLboolean GLES2Implementation::IsRenderbuffer(GLuint renderbuffer) { 717 GLboolean GLES2Implementation::IsRenderbuffer(GLuint renderbuffer) {
889 GPU_CLIENT_SINGLE_THREAD_CHECK(); 718 GPU_CLIENT_SINGLE_THREAD_CHECK();
890 TRACE_EVENT0("gpu", "GLES2Implementation::IsRenderbuffer"); 719 TRACE_EVENT0("gpu", "GLES2Implementation::IsRenderbuffer");
891 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsRenderbuffer(" << renderbuffer << ")"); // NOLINT
892 typedef cmds::IsRenderbuffer::Result Result; 720 typedef cmds::IsRenderbuffer::Result Result;
893 Result* result = GetResultAs<Result*>(); 721 Result* result = GetResultAs<Result*>();
894 if (!result) { 722 if (!result) {
895 return GL_FALSE; 723 return GL_FALSE;
896 } 724 }
897 *result = 0; 725 *result = 0;
898 helper_->IsRenderbuffer( 726 helper_->IsRenderbuffer(
899 renderbuffer, GetResultShmId(), GetResultShmOffset()); 727 renderbuffer, GetResultShmId(), GetResultShmOffset());
900 WaitForCmd(); 728 WaitForCmd();
901 GLboolean result_value = *result; 729 GLboolean result_value = *result;
902 GPU_CLIENT_LOG("returned " << result_value);
903 CheckGLError(); 730 CheckGLError();
904 return result_value; 731 return result_value;
905 } 732 }
906 733
907 GLboolean GLES2Implementation::IsShader(GLuint shader) { 734 GLboolean GLES2Implementation::IsShader(GLuint shader) {
908 GPU_CLIENT_SINGLE_THREAD_CHECK(); 735 GPU_CLIENT_SINGLE_THREAD_CHECK();
909 TRACE_EVENT0("gpu", "GLES2Implementation::IsShader"); 736 TRACE_EVENT0("gpu", "GLES2Implementation::IsShader");
910 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsShader(" << shader << ")");
911 typedef cmds::IsShader::Result Result; 737 typedef cmds::IsShader::Result Result;
912 Result* result = GetResultAs<Result*>(); 738 Result* result = GetResultAs<Result*>();
913 if (!result) { 739 if (!result) {
914 return GL_FALSE; 740 return GL_FALSE;
915 } 741 }
916 *result = 0; 742 *result = 0;
917 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset()); 743 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset());
918 WaitForCmd(); 744 WaitForCmd();
919 GLboolean result_value = *result; 745 GLboolean result_value = *result;
920 GPU_CLIENT_LOG("returned " << result_value);
921 CheckGLError(); 746 CheckGLError();
922 return result_value; 747 return result_value;
923 } 748 }
924 749
925 GLboolean GLES2Implementation::IsTexture(GLuint texture) { 750 GLboolean GLES2Implementation::IsTexture(GLuint texture) {
926 GPU_CLIENT_SINGLE_THREAD_CHECK(); 751 GPU_CLIENT_SINGLE_THREAD_CHECK();
927 TRACE_EVENT0("gpu", "GLES2Implementation::IsTexture"); 752 TRACE_EVENT0("gpu", "GLES2Implementation::IsTexture");
928 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTexture(" << texture << ")");
929 typedef cmds::IsTexture::Result Result; 753 typedef cmds::IsTexture::Result Result;
930 Result* result = GetResultAs<Result*>(); 754 Result* result = GetResultAs<Result*>();
931 if (!result) { 755 if (!result) {
932 return GL_FALSE; 756 return GL_FALSE;
933 } 757 }
934 *result = 0; 758 *result = 0;
935 helper_->IsTexture(texture, GetResultShmId(), GetResultShmOffset()); 759 helper_->IsTexture(texture, GetResultShmId(), GetResultShmOffset());
936 WaitForCmd(); 760 WaitForCmd();
937 GLboolean result_value = *result; 761 GLboolean result_value = *result;
938 GPU_CLIENT_LOG("returned " << result_value);
939 CheckGLError(); 762 CheckGLError();
940 return result_value; 763 return result_value;
941 } 764 }
942 765
943 void GLES2Implementation::LineWidth(GLfloat width) { 766 void GLES2Implementation::LineWidth(GLfloat width) {
944 GPU_CLIENT_SINGLE_THREAD_CHECK(); 767 GPU_CLIENT_SINGLE_THREAD_CHECK();
945 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")");
946 helper_->LineWidth(width); 768 helper_->LineWidth(width);
947 CheckGLError(); 769 CheckGLError();
948 } 770 }
949 771
950 void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) { 772 void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) {
951 GPU_CLIENT_SINGLE_THREAD_CHECK(); 773 GPU_CLIENT_SINGLE_THREAD_CHECK();
952 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", " << units << ")"); // NOLINT
953 helper_->PolygonOffset(factor, units); 774 helper_->PolygonOffset(factor, units);
954 CheckGLError(); 775 CheckGLError();
955 } 776 }
956 777
957 void GLES2Implementation::ReleaseShaderCompiler() { 778 void GLES2Implementation::ReleaseShaderCompiler() {
958 GPU_CLIENT_SINGLE_THREAD_CHECK(); 779 GPU_CLIENT_SINGLE_THREAD_CHECK();
959 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseShaderCompiler(" << ")");
960 helper_->ReleaseShaderCompiler(); 780 helper_->ReleaseShaderCompiler();
961 CheckGLError(); 781 CheckGLError();
962 } 782 }
963 783
964 void GLES2Implementation::RenderbufferStorage( 784 void GLES2Implementation::RenderbufferStorage(
965 GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { 785 GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
966 GPU_CLIENT_SINGLE_THREAD_CHECK(); 786 GPU_CLIENT_SINGLE_THREAD_CHECK();
967 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorage(" << GLES2Uti l::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRenderBuff erFormat(internalformat) << ", " << width << ", " << height << ")"); // NOLINT
968 if (width < 0) { 787 if (width < 0) {
969 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); 788 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0");
970 return; 789 return;
971 } 790 }
972 if (height < 0) { 791 if (height < 0) {
973 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); 792 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0");
974 return; 793 return;
975 } 794 }
976 helper_->RenderbufferStorage(target, internalformat, width, height); 795 helper_->RenderbufferStorage(target, internalformat, width, height);
977 CheckGLError(); 796 CheckGLError();
978 } 797 }
979 798
980 void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) { 799 void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) {
981 GPU_CLIENT_SINGLE_THREAD_CHECK(); 800 GPU_CLIENT_SINGLE_THREAD_CHECK();
982 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", " << GLES2Util::GetStringBool(invert) << ")"); // NOLINT
983 helper_->SampleCoverage(value, invert); 801 helper_->SampleCoverage(value, invert);
984 CheckGLError(); 802 CheckGLError();
985 } 803 }
986 804
987 void GLES2Implementation::Scissor( 805 void GLES2Implementation::Scissor(
988 GLint x, GLint y, GLsizei width, GLsizei height) { 806 GLint x, GLint y, GLsizei width, GLsizei height) {
989 GPU_CLIENT_SINGLE_THREAD_CHECK(); 807 GPU_CLIENT_SINGLE_THREAD_CHECK();
990 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glScissor(" << x << ", " << y << ", " << width << ", " << height << ")"); // NOLINT
991 if (width < 0) { 808 if (width < 0) {
992 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); 809 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0");
993 return; 810 return;
994 } 811 }
995 if (height < 0) { 812 if (height < 0) {
996 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); 813 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0");
997 return; 814 return;
998 } 815 }
999 helper_->Scissor(x, y, width, height); 816 helper_->Scissor(x, y, width, height);
1000 CheckGLError(); 817 CheckGLError();
1001 } 818 }
1002 819
1003 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { 820 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) {
1004 GPU_CLIENT_SINGLE_THREAD_CHECK(); 821 GPU_CLIENT_SINGLE_THREAD_CHECK();
1005 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" << GLES2Util::GetSt ringCmpFunction(func) << ", " << ref << ", " << mask << ")"); // NOLINT
1006 helper_->StencilFunc(func, ref, mask); 822 helper_->StencilFunc(func, ref, mask);
1007 CheckGLError(); 823 CheckGLError();
1008 } 824 }
1009 825
1010 void GLES2Implementation::StencilFuncSeparate( 826 void GLES2Implementation::StencilFuncSeparate(
1011 GLenum face, GLenum func, GLint ref, GLuint mask) { 827 GLenum face, GLenum func, GLint ref, GLuint mask) {
1012 GPU_CLIENT_SINGLE_THREAD_CHECK(); 828 GPU_CLIENT_SINGLE_THREAD_CHECK();
1013 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFuncSeparate(" << GLES2Uti l::GetStringFaceType(face) << ", " << GLES2Util::GetStringCmpFunction(func) << " , " << ref << ", " << mask << ")"); // NOLINT
1014 helper_->StencilFuncSeparate(face, func, ref, mask); 829 helper_->StencilFuncSeparate(face, func, ref, mask);
1015 CheckGLError(); 830 CheckGLError();
1016 } 831 }
1017 832
1018 void GLES2Implementation::StencilMask(GLuint mask) { 833 void GLES2Implementation::StencilMask(GLuint mask) {
1019 GPU_CLIENT_SINGLE_THREAD_CHECK(); 834 GPU_CLIENT_SINGLE_THREAD_CHECK();
1020 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMask(" << mask << ")");
1021 helper_->StencilMask(mask); 835 helper_->StencilMask(mask);
1022 CheckGLError(); 836 CheckGLError();
1023 } 837 }
1024 838
1025 void GLES2Implementation::StencilMaskSeparate(GLenum face, GLuint mask) { 839 void GLES2Implementation::StencilMaskSeparate(GLenum face, GLuint mask) {
1026 GPU_CLIENT_SINGLE_THREAD_CHECK(); 840 GPU_CLIENT_SINGLE_THREAD_CHECK();
1027 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMaskSeparate(" << GLES2Uti l::GetStringFaceType(face) << ", " << mask << ")"); // NOLINT
1028 helper_->StencilMaskSeparate(face, mask); 841 helper_->StencilMaskSeparate(face, mask);
1029 CheckGLError(); 842 CheckGLError();
1030 } 843 }
1031 844
1032 void GLES2Implementation::StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { 845 void GLES2Implementation::StencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
1033 GPU_CLIENT_SINGLE_THREAD_CHECK(); 846 GPU_CLIENT_SINGLE_THREAD_CHECK();
1034 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOp(" << GLES2Util::GetStri ngStencilOp(fail) << ", " << GLES2Util::GetStringStencilOp(zfail) << ", " << GLE S2Util::GetStringStencilOp(zpass) << ")"); // NOLINT
1035 helper_->StencilOp(fail, zfail, zpass); 847 helper_->StencilOp(fail, zfail, zpass);
1036 CheckGLError(); 848 CheckGLError();
1037 } 849 }
1038 850
1039 void GLES2Implementation::StencilOpSeparate( 851 void GLES2Implementation::StencilOpSeparate(
1040 GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { 852 GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
1041 GPU_CLIENT_SINGLE_THREAD_CHECK(); 853 GPU_CLIENT_SINGLE_THREAD_CHECK();
1042 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOpSeparate(" << GLES2Util: :GetStringFaceType(face) << ", " << GLES2Util::GetStringStencilOp(fail) << ", " << GLES2Util::GetStringStencilOp(zfail) << ", " << GLES2Util::GetStringStencilOp (zpass) << ")"); // NOLINT
1043 helper_->StencilOpSeparate(face, fail, zfail, zpass); 854 helper_->StencilOpSeparate(face, fail, zfail, zpass);
1044 CheckGLError(); 855 CheckGLError();
1045 } 856 }
1046 857
1047 void GLES2Implementation::TexParameterf( 858 void GLES2Implementation::TexParameterf(
1048 GLenum target, GLenum pname, GLfloat param) { 859 GLenum target, GLenum pname, GLfloat param) {
1049 GPU_CLIENT_SINGLE_THREAD_CHECK(); 860 GPU_CLIENT_SINGLE_THREAD_CHECK();
1050 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterf(" << GLES2Util::Get StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter( pname) << ", " << param << ")"); // NOLINT
1051 helper_->TexParameterf(target, pname, param); 861 helper_->TexParameterf(target, pname, param);
1052 CheckGLError(); 862 CheckGLError();
1053 } 863 }
1054 864
1055 void GLES2Implementation::TexParameterfv( 865 void GLES2Implementation::TexParameterfv(
1056 GLenum target, GLenum pname, const GLfloat* params) { 866 GLenum target, GLenum pname, const GLfloat* params) {
1057 GPU_CLIENT_SINGLE_THREAD_CHECK(); 867 GPU_CLIENT_SINGLE_THREAD_CHECK();
1058 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterfv(" << GLES2Util::Ge tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter (pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
1059 GPU_CLIENT_LOG("values: " << params[0]);
1060 helper_->TexParameterfvImmediate(target, pname, params); 868 helper_->TexParameterfvImmediate(target, pname, params);
1061 CheckGLError(); 869 CheckGLError();
1062 } 870 }
1063 871
1064 void GLES2Implementation::TexParameteri( 872 void GLES2Implementation::TexParameteri(
1065 GLenum target, GLenum pname, GLint param) { 873 GLenum target, GLenum pname, GLint param) {
1066 GPU_CLIENT_SINGLE_THREAD_CHECK(); 874 GPU_CLIENT_SINGLE_THREAD_CHECK();
1067 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteri(" << GLES2Util::Get StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter( pname) << ", " << param << ")"); // NOLINT
1068 helper_->TexParameteri(target, pname, param); 875 helper_->TexParameteri(target, pname, param);
1069 CheckGLError(); 876 CheckGLError();
1070 } 877 }
1071 878
1072 void GLES2Implementation::TexParameteriv( 879 void GLES2Implementation::TexParameteriv(
1073 GLenum target, GLenum pname, const GLint* params) { 880 GLenum target, GLenum pname, const GLint* params) {
1074 GPU_CLIENT_SINGLE_THREAD_CHECK(); 881 GPU_CLIENT_SINGLE_THREAD_CHECK();
1075 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteriv(" << GLES2Util::Ge tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter (pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT
1076 GPU_CLIENT_LOG("values: " << params[0]);
1077 helper_->TexParameterivImmediate(target, pname, params); 882 helper_->TexParameterivImmediate(target, pname, params);
1078 CheckGLError(); 883 CheckGLError();
1079 } 884 }
1080 885
1081 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { 886 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) {
1082 GPU_CLIENT_SINGLE_THREAD_CHECK(); 887 GPU_CLIENT_SINGLE_THREAD_CHECK();
1083 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " < < x << ")"); // NOLINT
1084 helper_->Uniform1f(location, x); 888 helper_->Uniform1f(location, x);
1085 CheckGLError(); 889 CheckGLError();
1086 } 890 }
1087 891
1088 void GLES2Implementation::Uniform1fv( 892 void GLES2Implementation::Uniform1fv(
1089 GLint location, GLsizei count, const GLfloat* v) { 893 GLint location, GLsizei count, const GLfloat* v) {
1090 GPU_CLIENT_SINGLE_THREAD_CHECK(); 894 GPU_CLIENT_SINGLE_THREAD_CHECK();
1091 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1fv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1092 GPU_CLIENT_LOG_CODE_BLOCK({
1093 for (GLsizei i = 0; i < count; ++i) {
1094 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]);
1095 }
1096 });
1097 if (count < 0) { 895 if (count < 0) {
1098 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0"); 896 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0");
1099 return; 897 return;
1100 } 898 }
1101 helper_->Uniform1fvImmediate(location, count, v); 899 helper_->Uniform1fvImmediate(location, count, v);
1102 CheckGLError(); 900 CheckGLError();
1103 } 901 }
1104 902
1105 void GLES2Implementation::Uniform1i(GLint location, GLint x) { 903 void GLES2Implementation::Uniform1i(GLint location, GLint x) {
1106 GPU_CLIENT_SINGLE_THREAD_CHECK(); 904 GPU_CLIENT_SINGLE_THREAD_CHECK();
1107 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1i(" << location << ", " < < x << ")"); // NOLINT
1108 helper_->Uniform1i(location, x); 905 helper_->Uniform1i(location, x);
1109 CheckGLError(); 906 CheckGLError();
1110 } 907 }
1111 908
1112 void GLES2Implementation::Uniform1iv( 909 void GLES2Implementation::Uniform1iv(
1113 GLint location, GLsizei count, const GLint* v) { 910 GLint location, GLsizei count, const GLint* v) {
1114 GPU_CLIENT_SINGLE_THREAD_CHECK(); 911 GPU_CLIENT_SINGLE_THREAD_CHECK();
1115 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1iv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1116 GPU_CLIENT_LOG_CODE_BLOCK({
1117 for (GLsizei i = 0; i < count; ++i) {
1118 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]);
1119 }
1120 });
1121 if (count < 0) { 912 if (count < 0) {
1122 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0"); 913 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0");
1123 return; 914 return;
1124 } 915 }
1125 helper_->Uniform1ivImmediate(location, count, v); 916 helper_->Uniform1ivImmediate(location, count, v);
1126 CheckGLError(); 917 CheckGLError();
1127 } 918 }
1128 919
1129 void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) { 920 void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) {
1130 GPU_CLIENT_SINGLE_THREAD_CHECK(); 921 GPU_CLIENT_SINGLE_THREAD_CHECK();
1131 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " < < x << ", " << y << ")"); // NOLINT
1132 helper_->Uniform2f(location, x, y); 922 helper_->Uniform2f(location, x, y);
1133 CheckGLError(); 923 CheckGLError();
1134 } 924 }
1135 925
1136 void GLES2Implementation::Uniform2fv( 926 void GLES2Implementation::Uniform2fv(
1137 GLint location, GLsizei count, const GLfloat* v) { 927 GLint location, GLsizei count, const GLfloat* v) {
1138 GPU_CLIENT_SINGLE_THREAD_CHECK(); 928 GPU_CLIENT_SINGLE_THREAD_CHECK();
1139 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2fv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1140 GPU_CLIENT_LOG_CODE_BLOCK({
1141 for (GLsizei i = 0; i < count; ++i) {
1142 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2]) ; // NOLINT
1143 }
1144 });
1145 if (count < 0) { 929 if (count < 0) {
1146 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0"); 930 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0");
1147 return; 931 return;
1148 } 932 }
1149 helper_->Uniform2fvImmediate(location, count, v); 933 helper_->Uniform2fvImmediate(location, count, v);
1150 CheckGLError(); 934 CheckGLError();
1151 } 935 }
1152 936
1153 void GLES2Implementation::Uniform2i(GLint location, GLint x, GLint y) { 937 void GLES2Implementation::Uniform2i(GLint location, GLint x, GLint y) {
1154 GPU_CLIENT_SINGLE_THREAD_CHECK(); 938 GPU_CLIENT_SINGLE_THREAD_CHECK();
1155 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2i(" << location << ", " < < x << ", " << y << ")"); // NOLINT
1156 helper_->Uniform2i(location, x, y); 939 helper_->Uniform2i(location, x, y);
1157 CheckGLError(); 940 CheckGLError();
1158 } 941 }
1159 942
1160 void GLES2Implementation::Uniform2iv( 943 void GLES2Implementation::Uniform2iv(
1161 GLint location, GLsizei count, const GLint* v) { 944 GLint location, GLsizei count, const GLint* v) {
1162 GPU_CLIENT_SINGLE_THREAD_CHECK(); 945 GPU_CLIENT_SINGLE_THREAD_CHECK();
1163 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2iv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1164 GPU_CLIENT_LOG_CODE_BLOCK({
1165 for (GLsizei i = 0; i < count; ++i) {
1166 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2]) ; // NOLINT
1167 }
1168 });
1169 if (count < 0) { 946 if (count < 0) {
1170 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0"); 947 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0");
1171 return; 948 return;
1172 } 949 }
1173 helper_->Uniform2ivImmediate(location, count, v); 950 helper_->Uniform2ivImmediate(location, count, v);
1174 CheckGLError(); 951 CheckGLError();
1175 } 952 }
1176 953
1177 void GLES2Implementation::Uniform3f( 954 void GLES2Implementation::Uniform3f(
1178 GLint location, GLfloat x, GLfloat y, GLfloat z) { 955 GLint location, GLfloat x, GLfloat y, GLfloat z) {
1179 GPU_CLIENT_SINGLE_THREAD_CHECK(); 956 GPU_CLIENT_SINGLE_THREAD_CHECK();
1180 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3f(" << location << ", " < < x << ", " << y << ", " << z << ")"); // NOLINT
1181 helper_->Uniform3f(location, x, y, z); 957 helper_->Uniform3f(location, x, y, z);
1182 CheckGLError(); 958 CheckGLError();
1183 } 959 }
1184 960
1185 void GLES2Implementation::Uniform3fv( 961 void GLES2Implementation::Uniform3fv(
1186 GLint location, GLsizei count, const GLfloat* v) { 962 GLint location, GLsizei count, const GLfloat* v) {
1187 GPU_CLIENT_SINGLE_THREAD_CHECK(); 963 GPU_CLIENT_SINGLE_THREAD_CHECK();
1188 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3fv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1189 GPU_CLIENT_LOG_CODE_BLOCK({
1190 for (GLsizei i = 0; i < count; ++i) {
1191 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] << ", " << v[2 + i * 3]); // NOLINT
1192 }
1193 });
1194 if (count < 0) { 964 if (count < 0) {
1195 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0"); 965 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0");
1196 return; 966 return;
1197 } 967 }
1198 helper_->Uniform3fvImmediate(location, count, v); 968 helper_->Uniform3fvImmediate(location, count, v);
1199 CheckGLError(); 969 CheckGLError();
1200 } 970 }
1201 971
1202 void GLES2Implementation::Uniform3i( 972 void GLES2Implementation::Uniform3i(
1203 GLint location, GLint x, GLint y, GLint z) { 973 GLint location, GLint x, GLint y, GLint z) {
1204 GPU_CLIENT_SINGLE_THREAD_CHECK(); 974 GPU_CLIENT_SINGLE_THREAD_CHECK();
1205 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3i(" << location << ", " < < x << ", " << y << ", " << z << ")"); // NOLINT
1206 helper_->Uniform3i(location, x, y, z); 975 helper_->Uniform3i(location, x, y, z);
1207 CheckGLError(); 976 CheckGLError();
1208 } 977 }
1209 978
1210 void GLES2Implementation::Uniform3iv( 979 void GLES2Implementation::Uniform3iv(
1211 GLint location, GLsizei count, const GLint* v) { 980 GLint location, GLsizei count, const GLint* v) {
1212 GPU_CLIENT_SINGLE_THREAD_CHECK(); 981 GPU_CLIENT_SINGLE_THREAD_CHECK();
1213 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3iv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1214 GPU_CLIENT_LOG_CODE_BLOCK({
1215 for (GLsizei i = 0; i < count; ++i) {
1216 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] << ", " << v[2 + i * 3]); // NOLINT
1217 }
1218 });
1219 if (count < 0) { 982 if (count < 0) {
1220 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0"); 983 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0");
1221 return; 984 return;
1222 } 985 }
1223 helper_->Uniform3ivImmediate(location, count, v); 986 helper_->Uniform3ivImmediate(location, count, v);
1224 CheckGLError(); 987 CheckGLError();
1225 } 988 }
1226 989
1227 void GLES2Implementation::Uniform4f( 990 void GLES2Implementation::Uniform4f(
1228 GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { 991 GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
1229 GPU_CLIENT_SINGLE_THREAD_CHECK(); 992 GPU_CLIENT_SINGLE_THREAD_CHECK();
1230 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4f(" << location << ", " < < x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT
1231 helper_->Uniform4f(location, x, y, z, w); 993 helper_->Uniform4f(location, x, y, z, w);
1232 CheckGLError(); 994 CheckGLError();
1233 } 995 }
1234 996
1235 void GLES2Implementation::Uniform4fv( 997 void GLES2Implementation::Uniform4fv(
1236 GLint location, GLsizei count, const GLfloat* v) { 998 GLint location, GLsizei count, const GLfloat* v) {
1237 GPU_CLIENT_SINGLE_THREAD_CHECK(); 999 GPU_CLIENT_SINGLE_THREAD_CHECK();
1238 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4fv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1239 GPU_CLIENT_LOG_CODE_BLOCK({
1240 for (GLsizei i = 0; i < count; ++i) {
1241 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] << ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT
1242 }
1243 });
1244 if (count < 0) { 1000 if (count < 0) {
1245 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0"); 1001 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0");
1246 return; 1002 return;
1247 } 1003 }
1248 helper_->Uniform4fvImmediate(location, count, v); 1004 helper_->Uniform4fvImmediate(location, count, v);
1249 CheckGLError(); 1005 CheckGLError();
1250 } 1006 }
1251 1007
1252 void GLES2Implementation::Uniform4i( 1008 void GLES2Implementation::Uniform4i(
1253 GLint location, GLint x, GLint y, GLint z, GLint w) { 1009 GLint location, GLint x, GLint y, GLint z, GLint w) {
1254 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1010 GPU_CLIENT_SINGLE_THREAD_CHECK();
1255 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4i(" << location << ", " < < x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT
1256 helper_->Uniform4i(location, x, y, z, w); 1011 helper_->Uniform4i(location, x, y, z, w);
1257 CheckGLError(); 1012 CheckGLError();
1258 } 1013 }
1259 1014
1260 void GLES2Implementation::Uniform4iv( 1015 void GLES2Implementation::Uniform4iv(
1261 GLint location, GLsizei count, const GLint* v) { 1016 GLint location, GLsizei count, const GLint* v) {
1262 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1017 GPU_CLIENT_SINGLE_THREAD_CHECK();
1263 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4iv(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); // NOLINT
1264 GPU_CLIENT_LOG_CODE_BLOCK({
1265 for (GLsizei i = 0; i < count; ++i) {
1266 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] << ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT
1267 }
1268 });
1269 if (count < 0) { 1018 if (count < 0) {
1270 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0"); 1019 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0");
1271 return; 1020 return;
1272 } 1021 }
1273 helper_->Uniform4ivImmediate(location, count, v); 1022 helper_->Uniform4ivImmediate(location, count, v);
1274 CheckGLError(); 1023 CheckGLError();
1275 } 1024 }
1276 1025
1277 void GLES2Implementation::UniformMatrix2fv( 1026 void GLES2Implementation::UniformMatrix2fv(
1278 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { 1027 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
1279 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1028 GPU_CLIENT_SINGLE_THREAD_CHECK();
1280 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2fv(" << location << ", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_ cast<const void*>(value) << ")"); // NOLINT
1281 GPU_CLIENT_LOG_CODE_BLOCK({
1282 for (GLsizei i = 0; i < count; ++i) {
1283 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 4] << ", " << value[1 + i * 4] << ", " << value[2 + i * 4] << ", " << value[3 + i * 4]); // NOLINT
1284 }
1285 });
1286 if (count < 0) { 1029 if (count < 0) {
1287 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0"); 1030 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0");
1288 return; 1031 return;
1289 } 1032 }
1290 helper_->UniformMatrix2fvImmediate(location, count, transpose, value); 1033 helper_->UniformMatrix2fvImmediate(location, count, transpose, value);
1291 CheckGLError(); 1034 CheckGLError();
1292 } 1035 }
1293 1036
1294 void GLES2Implementation::UniformMatrix3fv( 1037 void GLES2Implementation::UniformMatrix3fv(
1295 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { 1038 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
1296 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1039 GPU_CLIENT_SINGLE_THREAD_CHECK();
1297 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3fv(" << location << ", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_ cast<const void*>(value) << ")"); // NOLINT
1298 GPU_CLIENT_LOG_CODE_BLOCK({
1299 for (GLsizei i = 0; i < count; ++i) {
1300 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 9] << ", " << value[1 + i * 9] << ", " << value[2 + i * 9] << ", " << value[3 + i * 9] << ", " << value [4 + i * 9] << ", " << value[5 + i * 9] << ", " << value[6 + i * 9] << ", " << v alue[7 + i * 9] << ", " << value[8 + i * 9]); // NOLINT
1301 }
1302 });
1303 if (count < 0) { 1040 if (count < 0) {
1304 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0"); 1041 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0");
1305 return; 1042 return;
1306 } 1043 }
1307 helper_->UniformMatrix3fvImmediate(location, count, transpose, value); 1044 helper_->UniformMatrix3fvImmediate(location, count, transpose, value);
1308 CheckGLError(); 1045 CheckGLError();
1309 } 1046 }
1310 1047
1311 void GLES2Implementation::UniformMatrix4fv( 1048 void GLES2Implementation::UniformMatrix4fv(
1312 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { 1049 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
1313 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1050 GPU_CLIENT_SINGLE_THREAD_CHECK();
1314 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4fv(" << location << ", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_ cast<const void*>(value) << ")"); // NOLINT
1315 GPU_CLIENT_LOG_CODE_BLOCK({
1316 for (GLsizei i = 0; i < count; ++i) {
1317 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 16] << ", " << value[1 + i * 16] << ", " << value[2 + i * 16] << ", " << value[3 + i * 16] << ", " << v alue[4 + i * 16] << ", " << value[5 + i * 16] << ", " << value[6 + i * 16] << ", " << value[7 + i * 16] << ", " << value[8 + i * 16] << ", " << value[9 + i * 16 ] << ", " << value[10 + i * 16] << ", " << value[11 + i * 16] << ", " << value[1 2 + i * 16] << ", " << value[13 + i * 16] << ", " << value[14 + i * 16] << ", " << value[15 + i * 16]); // NOLINT
1318 }
1319 });
1320 if (count < 0) { 1051 if (count < 0) {
1321 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0"); 1052 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0");
1322 return; 1053 return;
1323 } 1054 }
1324 helper_->UniformMatrix4fvImmediate(location, count, transpose, value); 1055 helper_->UniformMatrix4fvImmediate(location, count, transpose, value);
1325 CheckGLError(); 1056 CheckGLError();
1326 } 1057 }
1327 1058
1328 void GLES2Implementation::ValidateProgram(GLuint program) { 1059 void GLES2Implementation::ValidateProgram(GLuint program) {
1329 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1060 GPU_CLIENT_SINGLE_THREAD_CHECK();
1330 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glValidateProgram(" << program << " )"); // NOLINT
1331 helper_->ValidateProgram(program); 1061 helper_->ValidateProgram(program);
1332 CheckGLError(); 1062 CheckGLError();
1333 } 1063 }
1334 1064
1335 void GLES2Implementation::VertexAttrib1f(GLuint indx, GLfloat x) { 1065 void GLES2Implementation::VertexAttrib1f(GLuint indx, GLfloat x) {
1336 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1066 GPU_CLIENT_SINGLE_THREAD_CHECK();
1337 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1f(" << indx << ", " << x << ")"); // NOLINT
1338 helper_->VertexAttrib1f(indx, x); 1067 helper_->VertexAttrib1f(indx, x);
1339 CheckGLError(); 1068 CheckGLError();
1340 } 1069 }
1341 1070
1342 void GLES2Implementation::VertexAttrib1fv(GLuint indx, const GLfloat* values) { 1071 void GLES2Implementation::VertexAttrib1fv(GLuint indx, const GLfloat* values) {
1343 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1072 GPU_CLIENT_SINGLE_THREAD_CHECK();
1344 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1fv(" << indx << ", " << static_cast<const void*>(values) << ")"); // NOLINT
1345 GPU_CLIENT_LOG("values: " << values[0]);
1346 helper_->VertexAttrib1fvImmediate(indx, values); 1073 helper_->VertexAttrib1fvImmediate(indx, values);
1347 CheckGLError(); 1074 CheckGLError();
1348 } 1075 }
1349 1076
1350 void GLES2Implementation::VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { 1077 void GLES2Implementation::VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) {
1351 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1078 GPU_CLIENT_SINGLE_THREAD_CHECK();
1352 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2f(" << indx << ", " << x << ", " << y << ")"); // NOLINT
1353 helper_->VertexAttrib2f(indx, x, y); 1079 helper_->VertexAttrib2f(indx, x, y);
1354 CheckGLError(); 1080 CheckGLError();
1355 } 1081 }
1356 1082
1357 void GLES2Implementation::VertexAttrib2fv(GLuint indx, const GLfloat* values) { 1083 void GLES2Implementation::VertexAttrib2fv(GLuint indx, const GLfloat* values) {
1358 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1084 GPU_CLIENT_SINGLE_THREAD_CHECK();
1359 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2fv(" << indx << ", " << static_cast<const void*>(values) << ")"); // NOLINT
1360 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1]);
1361 helper_->VertexAttrib2fvImmediate(indx, values); 1085 helper_->VertexAttrib2fvImmediate(indx, values);
1362 CheckGLError(); 1086 CheckGLError();
1363 } 1087 }
1364 1088
1365 void GLES2Implementation::VertexAttrib3f( 1089 void GLES2Implementation::VertexAttrib3f(
1366 GLuint indx, GLfloat x, GLfloat y, GLfloat z) { 1090 GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
1367 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1091 GPU_CLIENT_SINGLE_THREAD_CHECK();
1368 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3f(" << indx << ", " << x << ", " << y << ", " << z << ")"); // NOLINT
1369 helper_->VertexAttrib3f(indx, x, y, z); 1092 helper_->VertexAttrib3f(indx, x, y, z);
1370 CheckGLError(); 1093 CheckGLError();
1371 } 1094 }
1372 1095
1373 void GLES2Implementation::VertexAttrib3fv(GLuint indx, const GLfloat* values) { 1096 void GLES2Implementation::VertexAttrib3fv(GLuint indx, const GLfloat* values) {
1374 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1097 GPU_CLIENT_SINGLE_THREAD_CHECK();
1375 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3fv(" << indx << ", " << static_cast<const void*>(values) << ")"); // NOLINT
1376 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[ 2]); // NOLINT
1377 helper_->VertexAttrib3fvImmediate(indx, values); 1098 helper_->VertexAttrib3fvImmediate(indx, values);
1378 CheckGLError(); 1099 CheckGLError();
1379 } 1100 }
1380 1101
1381 void GLES2Implementation::VertexAttrib4f( 1102 void GLES2Implementation::VertexAttrib4f(
1382 GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { 1103 GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
1383 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1104 GPU_CLIENT_SINGLE_THREAD_CHECK();
1384 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4f(" << indx << ", " << x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT
1385 helper_->VertexAttrib4f(indx, x, y, z, w); 1105 helper_->VertexAttrib4f(indx, x, y, z, w);
1386 CheckGLError(); 1106 CheckGLError();
1387 } 1107 }
1388 1108
1389 void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) { 1109 void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) {
1390 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1110 GPU_CLIENT_SINGLE_THREAD_CHECK();
1391 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4fv(" << indx << ", " << static_cast<const void*>(values) << ")"); // NOLINT
1392 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[ 2] << ", " << values[3]); // NOLINT
1393 helper_->VertexAttrib4fvImmediate(indx, values); 1111 helper_->VertexAttrib4fvImmediate(indx, values);
1394 CheckGLError(); 1112 CheckGLError();
1395 } 1113 }
1396 1114
1397 void GLES2Implementation::Viewport( 1115 void GLES2Implementation::Viewport(
1398 GLint x, GLint y, GLsizei width, GLsizei height) { 1116 GLint x, GLint y, GLsizei width, GLsizei height) {
1399 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1117 GPU_CLIENT_SINGLE_THREAD_CHECK();
1400 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glViewport(" << x << ", " << y << " , " << width << ", " << height << ")"); // NOLINT
1401 if (width < 0) { 1118 if (width < 0) {
1402 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); 1119 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0");
1403 return; 1120 return;
1404 } 1121 }
1405 if (height < 0) { 1122 if (height < 0) {
1406 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); 1123 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0");
1407 return; 1124 return;
1408 } 1125 }
1409 helper_->Viewport(x, y, width, height); 1126 helper_->Viewport(x, y, width, height);
1410 CheckGLError(); 1127 CheckGLError();
1411 } 1128 }
1412 1129
1413 void GLES2Implementation::BlitFramebufferCHROMIUM( 1130 void GLES2Implementation::BlitFramebufferCHROMIUM(
1414 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, 1131 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
1415 GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { 1132 GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
1416 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1133 GPU_CLIENT_SINGLE_THREAD_CHECK();
1417 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlitFramebufferCHROMIUM(" << srcX 0 << ", " << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", " << dstY1 << ", " << mask << ", " << GLES2Util::G etStringBlitFilter(filter) << ")"); // NOLINT
1418 helper_->BlitFramebufferCHROMIUM( 1134 helper_->BlitFramebufferCHROMIUM(
1419 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); 1135 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
1420 CheckGLError(); 1136 CheckGLError();
1421 } 1137 }
1422 1138
1423 void GLES2Implementation::RenderbufferStorageMultisampleCHROMIUM( 1139 void GLES2Implementation::RenderbufferStorageMultisampleCHROMIUM(
1424 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, 1140 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
1425 GLsizei height) { 1141 GLsizei height) {
1426 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1142 GPU_CLIENT_SINGLE_THREAD_CHECK();
1427 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleCHR OMIUM(" << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) << ", " << width << ", " << height << ")"); // NOLINT
1428 if (samples < 0) { 1143 if (samples < 0) {
1429 SetGLError( 1144 SetGLError(
1430 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "samples < 0"); // NOLINT 1145 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "samples < 0"); // NOLINT
1431 return; 1146 return;
1432 } 1147 }
1433 if (width < 0) { 1148 if (width < 0) {
1434 SetGLError( 1149 SetGLError(
1435 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "width < 0 "); // NOLINT 1150 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "width < 0 "); // NOLINT
1436 return; 1151 return;
1437 } 1152 }
1438 if (height < 0) { 1153 if (height < 0) {
1439 SetGLError( 1154 SetGLError(
1440 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "height < 0"); // NOLINT 1155 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM", "height < 0"); // NOLINT
1441 return; 1156 return;
1442 } 1157 }
1443 helper_->RenderbufferStorageMultisampleCHROMIUM( 1158 helper_->RenderbufferStorageMultisampleCHROMIUM(
1444 target, samples, internalformat, width, height); 1159 target, samples, internalformat, width, height);
1445 CheckGLError(); 1160 CheckGLError();
1446 } 1161 }
1447 1162
1448 void GLES2Implementation::RenderbufferStorageMultisampleEXT( 1163 void GLES2Implementation::RenderbufferStorageMultisampleEXT(
1449 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, 1164 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
1450 GLsizei height) { 1165 GLsizei height) {
1451 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1166 GPU_CLIENT_SINGLE_THREAD_CHECK();
1452 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleEXT (" << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) << ", " << width << ", " << height << ")"); // NOLINT
1453 if (samples < 0) { 1167 if (samples < 0) {
1454 SetGLError( 1168 SetGLError(
1455 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); 1169 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0");
1456 return; 1170 return;
1457 } 1171 }
1458 if (width < 0) { 1172 if (width < 0) {
1459 SetGLError( 1173 SetGLError(
1460 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); 1174 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0");
1461 return; 1175 return;
1462 } 1176 }
1463 if (height < 0) { 1177 if (height < 0) {
1464 SetGLError( 1178 SetGLError(
1465 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); 1179 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
1466 return; 1180 return;
1467 } 1181 }
1468 helper_->RenderbufferStorageMultisampleEXT( 1182 helper_->RenderbufferStorageMultisampleEXT(
1469 target, samples, internalformat, width, height); 1183 target, samples, internalformat, width, height);
1470 CheckGLError(); 1184 CheckGLError();
1471 } 1185 }
1472 1186
1473 void GLES2Implementation::FramebufferTexture2DMultisampleEXT( 1187 void GLES2Implementation::FramebufferTexture2DMultisampleEXT(
1474 GLenum target, GLenum attachment, GLenum textarget, GLuint texture, 1188 GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
1475 GLint level, GLsizei samples) { 1189 GLint level, GLsizei samples) {
1476 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1190 GPU_CLIENT_SINGLE_THREAD_CHECK();
1477 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2DMultisampleEX T(" << GLES2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetSt ringAttachment(attachment) << ", " << GLES2Util::GetStringTextureTarget(textarge t) << ", " << texture << ", " << level << ", " << samples << ")"); // NOLINT
1478 if (samples < 0) { 1191 if (samples < 0) {
1479 SetGLError( 1192 SetGLError(
1480 GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT", "samples < 0") ; // NOLINT 1193 GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT", "samples < 0") ; // NOLINT
1481 return; 1194 return;
1482 } 1195 }
1483 helper_->FramebufferTexture2DMultisampleEXT( 1196 helper_->FramebufferTexture2DMultisampleEXT(
1484 target, attachment, textarget, texture, level, samples); 1197 target, attachment, textarget, texture, level, samples);
1485 CheckGLError(); 1198 CheckGLError();
1486 } 1199 }
1487 1200
1488 void GLES2Implementation::TexStorage2DEXT( 1201 void GLES2Implementation::TexStorage2DEXT(
1489 GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, 1202 GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width,
1490 GLsizei height) { 1203 GLsizei height) {
1491 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1204 GPU_CLIENT_SINGLE_THREAD_CHECK();
1492 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexStorage2DEXT(" << GLES2Util::G etStringTextureTarget(target) << ", " << levels << ", " << GLES2Util::GetStringT extureInternalFormatStorage(internalFormat) << ", " << width << ", " << height < < ")"); // NOLINT
1493 if (levels < 0) { 1205 if (levels < 0) {
1494 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); 1206 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0");
1495 return; 1207 return;
1496 } 1208 }
1497 if (width < 0) { 1209 if (width < 0) {
1498 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); 1210 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0");
1499 return; 1211 return;
1500 } 1212 }
1501 if (height < 0) { 1213 if (height < 0) {
1502 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); 1214 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0");
1503 return; 1215 return;
1504 } 1216 }
1505 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height); 1217 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height);
1506 CheckGLError(); 1218 CheckGLError();
1507 } 1219 }
1508 1220
1509 void GLES2Implementation::GenQueriesEXT(GLsizei n, GLuint* queries) { 1221 void GLES2Implementation::GenQueriesEXT(GLsizei n, GLuint* queries) {
1510 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenQueriesEXT(" << n << ", " << s tatic_cast<const void*>(queries) << ")"); // NOLINT
1511 if (n < 0) { 1222 if (n < 0) {
1512 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0"); 1223 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0");
1513 return; 1224 return;
1514 } 1225 }
1515 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1226 GPU_CLIENT_SINGLE_THREAD_CHECK();
1516 GetIdHandler(id_namespaces::kQueries)-> 1227 GetIdHandler(id_namespaces::kQueries)->
1517 MakeIds(this, 0, n, queries); 1228 MakeIds(this, 0, n, queries);
1518 GenQueriesEXTHelper(n, queries); 1229 GenQueriesEXTHelper(n, queries);
1519 helper_->GenQueriesEXTImmediate(n, queries); 1230 helper_->GenQueriesEXTImmediate(n, queries);
1520 helper_->CommandBufferHelper::Flush(); 1231 helper_->CommandBufferHelper::Flush();
1521 GPU_CLIENT_LOG_CODE_BLOCK({
1522 for (GLsizei i = 0; i < n; ++i) {
1523 GPU_CLIENT_LOG(" " << i << ": " << queries[i]);
1524 }
1525 });
1526 CheckGLError(); 1232 CheckGLError();
1527 } 1233 }
1528 1234
1529 void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) { 1235 void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) {
1530 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1236 GPU_CLIENT_SINGLE_THREAD_CHECK();
1531 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteQueriesEXT(" << n << ", " < < static_cast<const void*>(queries) << ")"); // NOLINT
1532 GPU_CLIENT_LOG_CODE_BLOCK({
1533 for (GLsizei i = 0; i < n; ++i) {
1534 GPU_CLIENT_LOG(" " << i << ": " << queries[i]);
1535 }
1536 });
1537 GPU_CLIENT_DCHECK_CODE_BLOCK({ 1237 GPU_CLIENT_DCHECK_CODE_BLOCK({
1538 for (GLsizei i = 0; i < n; ++i) { 1238 for (GLsizei i = 0; i < n; ++i) {
1539 DCHECK(queries[i] != 0); 1239 DCHECK(queries[i] != 0);
1540 } 1240 }
1541 }); 1241 });
1542 if (n < 0) { 1242 if (n < 0) {
1543 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0"); 1243 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0");
1544 return; 1244 return;
1545 } 1245 }
1546 DeleteQueriesEXTHelper(n, queries); 1246 DeleteQueriesEXTHelper(n, queries);
1547 CheckGLError(); 1247 CheckGLError();
1548 } 1248 }
1549 1249
1550 void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) { 1250 void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) {
1551 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", " << static_cast<const void*>(arrays) << ")"); // NOLINT
1552 if (n < 0) { 1251 if (n < 0) {
1553 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0"); 1252 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0");
1554 return; 1253 return;
1555 } 1254 }
1556 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1255 GPU_CLIENT_SINGLE_THREAD_CHECK();
1557 GetIdHandler(id_namespaces::kVertexArrays)-> 1256 GetIdHandler(id_namespaces::kVertexArrays)->
1558 MakeIds(this, 0, n, arrays); 1257 MakeIds(this, 0, n, arrays);
1559 GenVertexArraysOESHelper(n, arrays); 1258 GenVertexArraysOESHelper(n, arrays);
1560 helper_->GenVertexArraysOESImmediate(n, arrays); 1259 helper_->GenVertexArraysOESImmediate(n, arrays);
1561 helper_->CommandBufferHelper::Flush(); 1260 helper_->CommandBufferHelper::Flush();
1562 GPU_CLIENT_LOG_CODE_BLOCK({
1563 for (GLsizei i = 0; i < n; ++i) {
1564 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]);
1565 }
1566 });
1567 CheckGLError(); 1261 CheckGLError();
1568 } 1262 }
1569 1263
1570 void GLES2Implementation::DeleteVertexArraysOES( 1264 void GLES2Implementation::DeleteVertexArraysOES(
1571 GLsizei n, const GLuint* arrays) { 1265 GLsizei n, const GLuint* arrays) {
1572 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1266 GPU_CLIENT_SINGLE_THREAD_CHECK();
1573 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteVertexArraysOES(" << n << " , " << static_cast<const void*>(arrays) << ")"); // NOLINT
1574 GPU_CLIENT_LOG_CODE_BLOCK({
1575 for (GLsizei i = 0; i < n; ++i) {
1576 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]);
1577 }
1578 });
1579 GPU_CLIENT_DCHECK_CODE_BLOCK({ 1267 GPU_CLIENT_DCHECK_CODE_BLOCK({
1580 for (GLsizei i = 0; i < n; ++i) { 1268 for (GLsizei i = 0; i < n; ++i) {
1581 DCHECK(arrays[i] != 0); 1269 DCHECK(arrays[i] != 0);
1582 } 1270 }
1583 }); 1271 });
1584 if (n < 0) { 1272 if (n < 0) {
1585 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0"); 1273 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0");
1586 return; 1274 return;
1587 } 1275 }
1588 DeleteVertexArraysOESHelper(n, arrays); 1276 DeleteVertexArraysOESHelper(n, arrays);
1589 CheckGLError(); 1277 CheckGLError();
1590 } 1278 }
1591 1279
1592 GLboolean GLES2Implementation::IsVertexArrayOES(GLuint array) { 1280 GLboolean GLES2Implementation::IsVertexArrayOES(GLuint array) {
1593 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1281 GPU_CLIENT_SINGLE_THREAD_CHECK();
1594 TRACE_EVENT0("gpu", "GLES2Implementation::IsVertexArrayOES"); 1282 TRACE_EVENT0("gpu", "GLES2Implementation::IsVertexArrayOES");
1595 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsVertexArrayOES(" << array << ") "); // NOLINT
1596 typedef cmds::IsVertexArrayOES::Result Result; 1283 typedef cmds::IsVertexArrayOES::Result Result;
1597 Result* result = GetResultAs<Result*>(); 1284 Result* result = GetResultAs<Result*>();
1598 if (!result) { 1285 if (!result) {
1599 return GL_FALSE; 1286 return GL_FALSE;
1600 } 1287 }
1601 *result = 0; 1288 *result = 0;
1602 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset()); 1289 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset());
1603 WaitForCmd(); 1290 WaitForCmd();
1604 GLboolean result_value = *result; 1291 GLboolean result_value = *result;
1605 GPU_CLIENT_LOG("returned " << result_value);
1606 CheckGLError(); 1292 CheckGLError();
1607 return result_value; 1293 return result_value;
1608 } 1294 }
1609 1295
1610 void GLES2Implementation::BindVertexArrayOES(GLuint array) { 1296 void GLES2Implementation::BindVertexArrayOES(GLuint array) {
1611 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1297 GPU_CLIENT_SINGLE_THREAD_CHECK();
1612 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindVertexArrayOES(" << array << ")"); // NOLINT
1613 if (IsVertexArrayReservedId(array)) { 1298 if (IsVertexArrayReservedId(array)) {
1614 SetGLError( 1299 SetGLError(
1615 GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id"); 1300 GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id");
1616 return; 1301 return;
1617 } 1302 }
1618 if (BindVertexArrayHelper(array)) { 1303 if (BindVertexArrayHelper(array)) {
1619 helper_->BindVertexArrayOES(array); 1304 helper_->BindVertexArrayOES(array);
1620 } 1305 }
1621 CheckGLError(); 1306 CheckGLError();
1622 } 1307 }
1623 1308
1624 void GLES2Implementation::GetTranslatedShaderSourceANGLE( 1309 void GLES2Implementation::GetTranslatedShaderSourceANGLE(
1625 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { 1310 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) {
1626 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1311 GPU_CLIENT_SINGLE_THREAD_CHECK();
1627 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); 1312 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length);
1628 GPU_CLIENT_LOG("[" << GetLogPrefix()
1629 << "] glGetTranslatedShaderSourceANGLE" << "("
1630 << shader << ", "
1631 << bufsize << ", "
1632 << static_cast<void*>(length) << ", "
1633 << static_cast<void*>(source) << ")");
1634 helper_->SetBucketSize(kResultBucketId, 0); 1313 helper_->SetBucketSize(kResultBucketId, 0);
1635 helper_->GetTranslatedShaderSourceANGLE(shader, kResultBucketId); 1314 helper_->GetTranslatedShaderSourceANGLE(shader, kResultBucketId);
1636 std::string str; 1315 std::string str;
1637 GLsizei max_size = 0; 1316 GLsizei max_size = 0;
1638 if (GetBucketAsString(kResultBucketId, &str)) { 1317 if (GetBucketAsString(kResultBucketId, &str)) {
1639 if (bufsize > 0) { 1318 if (bufsize > 0) {
1640 max_size = 1319 max_size =
1641 std::min(static_cast<size_t>(bufsize) - 1, str.size()); 1320 std::min(static_cast<size_t>(bufsize) - 1, str.size());
1642 memcpy(source, str.c_str(), max_size); 1321 memcpy(source, str.c_str(), max_size);
1643 source[max_size] = '\0'; 1322 source[max_size] = '\0';
1644 GPU_CLIENT_LOG("------\n" << source << "\n------");
1645 } 1323 }
1646 } 1324 }
1647 if (length != NULL) { 1325 if (length != NULL) {
1648 *length = max_size; 1326 *length = max_size;
1649 } 1327 }
1650 CheckGLError(); 1328 CheckGLError();
1651 } 1329 }
1652 void GLES2Implementation::TexImageIOSurface2DCHROMIUM( 1330 void GLES2Implementation::TexImageIOSurface2DCHROMIUM(
1653 GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, 1331 GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
1654 GLuint plane) { 1332 GLuint plane) {
1655 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1333 GPU_CLIENT_SINGLE_THREAD_CHECK();
1656 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexImageIOSurface2DCHROMIUM(" << GLES2Util::GetStringTextureBindTarget(target) << ", " << width << ", " << height << ", " << ioSurfaceId << ", " << plane << ")"); // NOLINT
1657 if (width < 0) { 1334 if (width < 0) {
1658 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); 1335 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0");
1659 return; 1336 return;
1660 } 1337 }
1661 if (height < 0) { 1338 if (height < 0) {
1662 SetGLError( 1339 SetGLError(
1663 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); 1340 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
1664 return; 1341 return;
1665 } 1342 }
1666 helper_->TexImageIOSurface2DCHROMIUM( 1343 helper_->TexImageIOSurface2DCHROMIUM(
1667 target, width, height, ioSurfaceId, plane); 1344 target, width, height, ioSurfaceId, plane);
1668 CheckGLError(); 1345 CheckGLError();
1669 } 1346 }
1670 1347
1671 void GLES2Implementation::CopyTextureCHROMIUM( 1348 void GLES2Implementation::CopyTextureCHROMIUM(
1672 GLenum target, GLenum source_id, GLenum dest_id, GLint level, 1349 GLenum target, GLenum source_id, GLenum dest_id, GLint level,
1673 GLint internalformat, GLenum dest_type) { 1350 GLint internalformat, GLenum dest_type) {
1674 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1351 GPU_CLIENT_SINGLE_THREAD_CHECK();
1675 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTextureCHROMIUM(" << GLES2Uti l::GetStringEnum(target) << ", " << GLES2Util::GetStringEnum(source_id) << ", " << GLES2Util::GetStringEnum(dest_id) << ", " << level << ", " << internalformat << ", " << GLES2Util::GetStringPixelType(dest_type) << ")"); // NOLINT
1676 helper_->CopyTextureCHROMIUM( 1352 helper_->CopyTextureCHROMIUM(
1677 target, source_id, dest_id, level, internalformat, dest_type); 1353 target, source_id, dest_id, level, internalformat, dest_type);
1678 CheckGLError(); 1354 CheckGLError();
1679 } 1355 }
1680 1356
1681 void GLES2Implementation::ProduceTextureCHROMIUM( 1357 void GLES2Implementation::ProduceTextureCHROMIUM(
1682 GLenum target, const GLbyte* mailbox) { 1358 GLenum target, const GLbyte* mailbox) {
1683 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1359 GPU_CLIENT_SINGLE_THREAD_CHECK();
1684 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glProduceTextureCHROMIUM(" << GLES2 Util::GetStringTextureBindTarget(target) << ", " << static_cast<const void*>(mai lbox) << ")"); // NOLINT
1685 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", " << mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9] << ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " << mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16] << ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " << mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23 ] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " < < mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3 0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", " << mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[ 37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", " << mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox [44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ", " << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ", " << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << " , " << mailbox[62] << ", " << mailbox[63]); // NOLINT
1686 helper_->ProduceTextureCHROMIUMImmediate(target, mailbox); 1360 helper_->ProduceTextureCHROMIUMImmediate(target, mailbox);
1687 CheckGLError(); 1361 CheckGLError();
1688 } 1362 }
1689 1363
1690 void GLES2Implementation::ConsumeTextureCHROMIUM( 1364 void GLES2Implementation::ConsumeTextureCHROMIUM(
1691 GLenum target, const GLbyte* mailbox) { 1365 GLenum target, const GLbyte* mailbox) {
1692 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1366 GPU_CLIENT_SINGLE_THREAD_CHECK();
1693 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glConsumeTextureCHROMIUM(" << GLES2 Util::GetStringTextureBindTarget(target) << ", " << static_cast<const void*>(mai lbox) << ")"); // NOLINT
1694 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", " << mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9] << ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " << mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16] << ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " << mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23 ] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " < < mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3 0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", " << mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[ 37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", " << mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox [44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ", " << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ", " << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << " , " << mailbox[62] << ", " << mailbox[63]); // NOLINT
1695 helper_->ConsumeTextureCHROMIUMImmediate(target, mailbox); 1367 helper_->ConsumeTextureCHROMIUMImmediate(target, mailbox);
1696 CheckGLError(); 1368 CheckGLError();
1697 } 1369 }
1698 1370
1699 void GLES2Implementation::BindTexImage2DCHROMIUM( 1371 void GLES2Implementation::BindTexImage2DCHROMIUM(
1700 GLenum target, GLint imageId) { 1372 GLenum target, GLint imageId) {
1701 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1373 GPU_CLIENT_SINGLE_THREAD_CHECK();
1702 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexImage2DCHROMIUM(" << GLES2 Util::GetStringTextureBindTarget(target) << ", " << imageId << ")"); // NOLINT
1703 helper_->BindTexImage2DCHROMIUM(target, imageId); 1374 helper_->BindTexImage2DCHROMIUM(target, imageId);
1704 CheckGLError(); 1375 CheckGLError();
1705 } 1376 }
1706 1377
1707 void GLES2Implementation::ReleaseTexImage2DCHROMIUM( 1378 void GLES2Implementation::ReleaseTexImage2DCHROMIUM(
1708 GLenum target, GLint imageId) { 1379 GLenum target, GLint imageId) {
1709 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1380 GPU_CLIENT_SINGLE_THREAD_CHECK();
1710 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseTexImage2DCHROMIUM(" << GL ES2Util::GetStringTextureBindTarget(target) << ", " << imageId << ")"); // NOLI NT
1711 helper_->ReleaseTexImage2DCHROMIUM(target, imageId); 1381 helper_->ReleaseTexImage2DCHROMIUM(target, imageId);
1712 CheckGLError(); 1382 CheckGLError();
1713 } 1383 }
1714 1384
1715 void GLES2Implementation::DiscardFramebufferEXT( 1385 void GLES2Implementation::DiscardFramebufferEXT(
1716 GLenum target, GLsizei count, const GLenum* attachments) { 1386 GLenum target, GLsizei count, const GLenum* attachments) {
1717 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1387 GPU_CLIENT_SINGLE_THREAD_CHECK();
1718 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDiscardFramebufferEXT(" << GLES2U til::GetStringEnum(target) << ", " << count << ", " << static_cast<const void*>( attachments) << ")"); // NOLINT
1719 GPU_CLIENT_LOG_CODE_BLOCK({
1720 for (GLsizei i = 0; i < count; ++i) {
1721 GPU_CLIENT_LOG(" " << i << ": " << attachments[0 + i * 1]);
1722 }
1723 });
1724 if (count < 0) { 1388 if (count < 0) {
1725 SetGLError(GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); 1389 SetGLError(GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0");
1726 return; 1390 return;
1727 } 1391 }
1728 helper_->DiscardFramebufferEXTImmediate(target, count, attachments); 1392 helper_->DiscardFramebufferEXTImmediate(target, count, attachments);
1729 CheckGLError(); 1393 CheckGLError();
1730 } 1394 }
1731 1395
1732 void GLES2Implementation::LoseContextCHROMIUM(GLenum current, GLenum other) { 1396 void GLES2Implementation::LoseContextCHROMIUM(GLenum current, GLenum other) {
1733 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1397 GPU_CLIENT_SINGLE_THREAD_CHECK();
1734 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLoseContextCHROMIUM(" << GLES2Uti l::GetStringEnum(current) << ", " << GLES2Util::GetStringEnum(other) << ")"); / / NOLINT
1735 helper_->LoseContextCHROMIUM(current, other); 1398 helper_->LoseContextCHROMIUM(current, other);
1736 CheckGLError(); 1399 CheckGLError();
1737 } 1400 }
1738 1401
1739 void GLES2Implementation::WaitSyncPointCHROMIUM(GLuint sync_point) { 1402 void GLES2Implementation::WaitSyncPointCHROMIUM(GLuint sync_point) {
1740 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1403 GPU_CLIENT_SINGLE_THREAD_CHECK();
1741 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glWaitSyncPointCHROMIUM(" << sync_p oint << ")"); // NOLINT
1742 helper_->WaitSyncPointCHROMIUM(sync_point); 1404 helper_->WaitSyncPointCHROMIUM(sync_point);
1743 CheckGLError(); 1405 CheckGLError();
1744 } 1406 }
1745 1407
1746 void GLES2Implementation::DrawBuffersEXT(GLsizei count, const GLenum* bufs) { 1408 void GLES2Implementation::DrawBuffersEXT(GLsizei count, const GLenum* bufs) {
1747 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1409 GPU_CLIENT_SINGLE_THREAD_CHECK();
1748 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDrawBuffersEXT(" << count << ", " << static_cast<const void*>(bufs) << ")"); // NOLINT
1749 GPU_CLIENT_LOG_CODE_BLOCK({
1750 for (GLsizei i = 0; i < count; ++i) {
1751 GPU_CLIENT_LOG(" " << i << ": " << bufs[0 + i * 1]);
1752 }
1753 });
1754 if (count < 0) { 1410 if (count < 0) {
1755 SetGLError(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0"); 1411 SetGLError(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0");
1756 return; 1412 return;
1757 } 1413 }
1758 helper_->DrawBuffersEXTImmediate(count, bufs); 1414 helper_->DrawBuffersEXTImmediate(count, bufs);
1759 CheckGLError(); 1415 CheckGLError();
1760 } 1416 }
1761 1417
1762 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ 1418 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_
1763 1419
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_implementation.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698