OLD | NEW |
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 |
OLD | NEW |