OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file is auto-generated from | 5 // This file is auto-generated from |
6 // gpu/command_buffer/build_gles2_cmd_buffer.py | 6 // gpu/command_buffer/build_gles2_cmd_buffer.py |
7 // It's formatted by clang-format using chromium coding style: | 7 // It's formatted by clang-format using chromium coding style: |
8 // clang-format -i -style=chromium filename | 8 // clang-format -i -style=chromium filename |
9 // DO NOT EDIT! | 9 // DO NOT EDIT! |
10 | 10 |
11 // This file is included by gles2_implementation.cc to define the | 11 // This file is included by gles2_implementation.cc to define the |
12 // GL api functions. | 12 // GL api functions. |
13 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ | 13 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
14 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ | 14 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
15 | 15 |
16 void GLES2Implementation::AttachShader(GLuint program, GLuint shader) { | 16 void GLES2Implementation::AttachShader(GLuint program, GLuint shader) { |
17 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 17 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
18 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glAttachShader(" << program << ", " | 18 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glAttachShader(" << program << ", " |
19 << shader << ")"); // NOLINT | 19 << shader << ")"); |
20 helper_->AttachShader(program, shader); | 20 helper_->AttachShader(program, shader); |
21 CheckGLError(); | 21 CheckGLError(); |
22 } | 22 } |
23 | 23 |
24 void GLES2Implementation::BindBuffer(GLenum target, GLuint buffer) { | 24 void GLES2Implementation::BindBuffer(GLenum target, GLuint buffer) { |
25 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 25 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
26 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindBuffer(" | 26 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindBuffer(" |
27 << GLES2Util::GetStringBufferTarget(target) << ", " | 27 << GLES2Util::GetStringBufferTarget(target) << ", " |
28 << buffer << ")"); // NOLINT | 28 << buffer << ")"); |
29 if (IsBufferReservedId(buffer)) { | 29 if (IsBufferReservedId(buffer)) { |
30 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id"); | 30 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id"); |
31 return; | 31 return; |
32 } | 32 } |
33 if (BindBufferHelper(target, buffer)) { | 33 if (BindBufferHelper(target, buffer)) { |
34 helper_->BindBuffer(target, buffer); | 34 helper_->BindBuffer(target, buffer); |
35 } | 35 } |
36 CheckGLError(); | 36 CheckGLError(); |
37 } | 37 } |
38 | 38 |
39 void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) { | 39 void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) { |
40 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 40 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
41 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindFramebuffer(" | 41 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindFramebuffer(" |
42 << GLES2Util::GetStringFrameBufferTarget(target) << ", " | 42 << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
43 << framebuffer << ")"); // NOLINT | 43 << framebuffer << ")"); |
44 if (IsFramebufferReservedId(framebuffer)) { | 44 if (IsFramebufferReservedId(framebuffer)) { |
45 SetGLError( | 45 SetGLError( |
46 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id"); | 46 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id"); |
47 return; | 47 return; |
48 } | 48 } |
49 if (BindFramebufferHelper(target, framebuffer)) { | 49 if (BindFramebufferHelper(target, framebuffer)) { |
50 helper_->BindFramebuffer(target, framebuffer); | 50 helper_->BindFramebuffer(target, framebuffer); |
51 } | 51 } |
52 CheckGLError(); | 52 CheckGLError(); |
53 } | 53 } |
54 | 54 |
55 void GLES2Implementation::BindRenderbuffer(GLenum target, GLuint renderbuffer) { | 55 void GLES2Implementation::BindRenderbuffer(GLenum target, GLuint renderbuffer) { |
56 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 56 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
57 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindRenderbuffer(" | 57 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindRenderbuffer(" |
58 << GLES2Util::GetStringRenderBufferTarget(target) << ", " | 58 << GLES2Util::GetStringRenderBufferTarget(target) << ", " |
59 << renderbuffer << ")"); // NOLINT | 59 << renderbuffer << ")"); |
60 if (IsRenderbufferReservedId(renderbuffer)) { | 60 if (IsRenderbufferReservedId(renderbuffer)) { |
61 SetGLError( | 61 SetGLError( |
62 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id"); | 62 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id"); |
63 return; | 63 return; |
64 } | 64 } |
65 if (BindRenderbufferHelper(target, renderbuffer)) { | 65 if (BindRenderbufferHelper(target, renderbuffer)) { |
66 helper_->BindRenderbuffer(target, renderbuffer); | 66 helper_->BindRenderbuffer(target, renderbuffer); |
67 } | 67 } |
68 CheckGLError(); | 68 CheckGLError(); |
69 } | 69 } |
70 | 70 |
71 void GLES2Implementation::BindTexture(GLenum target, GLuint texture) { | 71 void GLES2Implementation::BindTexture(GLenum target, GLuint texture) { |
72 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 72 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
73 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexture(" | 73 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexture(" |
74 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 74 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
75 << texture << ")"); // NOLINT | 75 << texture << ")"); |
76 if (IsTextureReservedId(texture)) { | 76 if (IsTextureReservedId(texture)) { |
77 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id"); | 77 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id"); |
78 return; | 78 return; |
79 } | 79 } |
80 if (BindTextureHelper(target, texture)) { | 80 if (BindTextureHelper(target, texture)) { |
81 helper_->BindTexture(target, texture); | 81 helper_->BindTexture(target, texture); |
82 } | 82 } |
83 CheckGLError(); | 83 CheckGLError(); |
84 } | 84 } |
85 | 85 |
86 void GLES2Implementation::BlendColor(GLclampf red, | 86 void GLES2Implementation::BlendColor(GLclampf red, |
87 GLclampf green, | 87 GLclampf green, |
88 GLclampf blue, | 88 GLclampf blue, |
89 GLclampf alpha) { | 89 GLclampf alpha) { |
90 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 90 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
91 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendColor(" << red << ", " | 91 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendColor(" << red << ", " |
92 << green << ", " << blue << ", " << alpha | 92 << green << ", " << blue << ", " << alpha << ")"); |
93 << ")"); // NOLINT | |
94 helper_->BlendColor(red, green, blue, alpha); | 93 helper_->BlendColor(red, green, blue, alpha); |
95 CheckGLError(); | 94 CheckGLError(); |
96 } | 95 } |
97 | 96 |
98 void GLES2Implementation::BlendEquation(GLenum mode) { | 97 void GLES2Implementation::BlendEquation(GLenum mode) { |
99 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 98 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
100 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquation(" | 99 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquation(" |
101 << GLES2Util::GetStringEquation(mode) << ")"); // NOLINT | 100 << GLES2Util::GetStringEquation(mode) << ")"); |
102 helper_->BlendEquation(mode); | 101 helper_->BlendEquation(mode); |
103 CheckGLError(); | 102 CheckGLError(); |
104 } | 103 } |
105 | 104 |
106 void GLES2Implementation::BlendEquationSeparate(GLenum modeRGB, | 105 void GLES2Implementation::BlendEquationSeparate(GLenum modeRGB, |
107 GLenum modeAlpha) { | 106 GLenum modeAlpha) { |
108 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 107 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
109 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquationSeparate(" | 108 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquationSeparate(" |
110 << GLES2Util::GetStringEquation(modeRGB) << ", " | 109 << GLES2Util::GetStringEquation(modeRGB) << ", " |
111 << GLES2Util::GetStringEquation(modeAlpha) | 110 << GLES2Util::GetStringEquation(modeAlpha) << ")"); |
112 << ")"); // NOLINT | |
113 helper_->BlendEquationSeparate(modeRGB, modeAlpha); | 111 helper_->BlendEquationSeparate(modeRGB, modeAlpha); |
114 CheckGLError(); | 112 CheckGLError(); |
115 } | 113 } |
116 | 114 |
117 void GLES2Implementation::BlendFunc(GLenum sfactor, GLenum dfactor) { | 115 void GLES2Implementation::BlendFunc(GLenum sfactor, GLenum dfactor) { |
118 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 116 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
119 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFunc(" | 117 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFunc(" |
120 << GLES2Util::GetStringSrcBlendFactor(sfactor) << ", " | 118 << GLES2Util::GetStringSrcBlendFactor(sfactor) << ", " |
121 << GLES2Util::GetStringDstBlendFactor(dfactor) | 119 << GLES2Util::GetStringDstBlendFactor(dfactor) << ")"); |
122 << ")"); // NOLINT | |
123 helper_->BlendFunc(sfactor, dfactor); | 120 helper_->BlendFunc(sfactor, dfactor); |
124 CheckGLError(); | 121 CheckGLError(); |
125 } | 122 } |
126 | 123 |
127 void GLES2Implementation::BlendFuncSeparate(GLenum srcRGB, | 124 void GLES2Implementation::BlendFuncSeparate(GLenum srcRGB, |
128 GLenum dstRGB, | 125 GLenum dstRGB, |
129 GLenum srcAlpha, | 126 GLenum srcAlpha, |
130 GLenum dstAlpha) { | 127 GLenum dstAlpha) { |
131 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 128 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
132 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFuncSeparate(" | 129 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFuncSeparate(" |
133 << GLES2Util::GetStringSrcBlendFactor(srcRGB) << ", " | 130 << GLES2Util::GetStringSrcBlendFactor(srcRGB) << ", " |
134 << GLES2Util::GetStringDstBlendFactor(dstRGB) << ", " | 131 << GLES2Util::GetStringDstBlendFactor(dstRGB) << ", " |
135 << GLES2Util::GetStringSrcBlendFactor(srcAlpha) << ", " | 132 << GLES2Util::GetStringSrcBlendFactor(srcAlpha) << ", " |
136 << GLES2Util::GetStringDstBlendFactor(dstAlpha) | 133 << GLES2Util::GetStringDstBlendFactor(dstAlpha) << ")"); |
137 << ")"); // NOLINT | |
138 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); | 134 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); |
139 CheckGLError(); | 135 CheckGLError(); |
140 } | 136 } |
141 | 137 |
142 GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) { | 138 GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) { |
143 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 139 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
144 TRACE_EVENT0("gpu", "GLES2Implementation::CheckFramebufferStatus"); | 140 TRACE_EVENT0("gpu", "GLES2Implementation::CheckFramebufferStatus"); |
145 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCheckFramebufferStatus(" | 141 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCheckFramebufferStatus(" |
146 << GLES2Util::GetStringFrameBufferTarget(target) | 142 << GLES2Util::GetStringFrameBufferTarget(target) << ")"); |
147 << ")"); // NOLINT | |
148 typedef cmds::CheckFramebufferStatus::Result Result; | 143 typedef cmds::CheckFramebufferStatus::Result Result; |
149 Result* result = GetResultAs<Result*>(); | 144 Result* result = GetResultAs<Result*>(); |
150 if (!result) { | 145 if (!result) { |
151 return GL_FRAMEBUFFER_UNSUPPORTED; | 146 return GL_FRAMEBUFFER_UNSUPPORTED; |
152 } | 147 } |
153 *result = 0; | 148 *result = 0; |
154 helper_->CheckFramebufferStatus( | 149 helper_->CheckFramebufferStatus( |
155 target, GetResultShmId(), GetResultShmOffset()); | 150 target, GetResultShmId(), GetResultShmOffset()); |
156 WaitForCmd(); | 151 WaitForCmd(); |
157 GLenum result_value = *result; | 152 GLenum result_value = *result; |
158 GPU_CLIENT_LOG("returned " << result_value); | 153 GPU_CLIENT_LOG("returned " << result_value); |
159 CheckGLError(); | 154 CheckGLError(); |
160 return result_value; | 155 return result_value; |
161 } | 156 } |
162 | 157 |
163 void GLES2Implementation::Clear(GLbitfield mask) { | 158 void GLES2Implementation::Clear(GLbitfield mask) { |
164 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 159 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
165 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClear(" << mask << ")"); | 160 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClear(" << mask << ")"); |
166 helper_->Clear(mask); | 161 helper_->Clear(mask); |
167 CheckGLError(); | 162 CheckGLError(); |
168 } | 163 } |
169 | 164 |
170 void GLES2Implementation::ClearColor(GLclampf red, | 165 void GLES2Implementation::ClearColor(GLclampf red, |
171 GLclampf green, | 166 GLclampf green, |
172 GLclampf blue, | 167 GLclampf blue, |
173 GLclampf alpha) { | 168 GLclampf alpha) { |
174 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 169 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
175 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearColor(" << red << ", " | 170 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearColor(" << red << ", " |
176 << green << ", " << blue << ", " << alpha | 171 << green << ", " << blue << ", " << alpha << ")"); |
177 << ")"); // NOLINT | |
178 helper_->ClearColor(red, green, blue, alpha); | 172 helper_->ClearColor(red, green, blue, alpha); |
179 CheckGLError(); | 173 CheckGLError(); |
180 } | 174 } |
181 | 175 |
182 void GLES2Implementation::ClearDepthf(GLclampf depth) { | 176 void GLES2Implementation::ClearDepthf(GLclampf depth) { |
183 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 177 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
184 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearDepthf(" << depth << ")"); | 178 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearDepthf(" << depth << ")"); |
185 helper_->ClearDepthf(depth); | 179 helper_->ClearDepthf(depth); |
186 CheckGLError(); | 180 CheckGLError(); |
187 } | 181 } |
188 | 182 |
189 void GLES2Implementation::ClearStencil(GLint s) { | 183 void GLES2Implementation::ClearStencil(GLint s) { |
190 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 184 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
191 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearStencil(" << s << ")"); | 185 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearStencil(" << s << ")"); |
192 helper_->ClearStencil(s); | 186 helper_->ClearStencil(s); |
193 CheckGLError(); | 187 CheckGLError(); |
194 } | 188 } |
195 | 189 |
196 void GLES2Implementation::ColorMask(GLboolean red, | 190 void GLES2Implementation::ColorMask(GLboolean red, |
197 GLboolean green, | 191 GLboolean green, |
198 GLboolean blue, | 192 GLboolean blue, |
199 GLboolean alpha) { | 193 GLboolean alpha) { |
200 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 194 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
201 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glColorMask(" | 195 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glColorMask(" |
202 << GLES2Util::GetStringBool(red) << ", " | 196 << GLES2Util::GetStringBool(red) << ", " |
203 << GLES2Util::GetStringBool(green) << ", " | 197 << GLES2Util::GetStringBool(green) << ", " |
204 << GLES2Util::GetStringBool(blue) << ", " | 198 << GLES2Util::GetStringBool(blue) << ", " |
205 << GLES2Util::GetStringBool(alpha) << ")"); // NOLINT | 199 << GLES2Util::GetStringBool(alpha) << ")"); |
206 helper_->ColorMask(red, green, blue, alpha); | 200 helper_->ColorMask(red, green, blue, alpha); |
207 CheckGLError(); | 201 CheckGLError(); |
208 } | 202 } |
209 | 203 |
210 void GLES2Implementation::CompileShader(GLuint shader) { | 204 void GLES2Implementation::CompileShader(GLuint shader) { |
211 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 205 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
212 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCompileShader(" << shader | 206 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCompileShader(" << shader |
213 << ")"); // NOLINT | 207 << ")"); |
214 helper_->CompileShader(shader); | 208 helper_->CompileShader(shader); |
215 CheckGLError(); | 209 CheckGLError(); |
216 } | 210 } |
217 | 211 |
218 void GLES2Implementation::CopyTexImage2D(GLenum target, | 212 void GLES2Implementation::CopyTexImage2D(GLenum target, |
219 GLint level, | 213 GLint level, |
220 GLenum internalformat, | 214 GLenum internalformat, |
221 GLint x, | 215 GLint x, |
222 GLint y, | 216 GLint y, |
223 GLsizei width, | 217 GLsizei width, |
224 GLsizei height, | 218 GLsizei height, |
225 GLint border) { | 219 GLint border) { |
226 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 220 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
227 GPU_CLIENT_LOG( | 221 GPU_CLIENT_LOG( |
228 "[" << GetLogPrefix() << "] glCopyTexImage2D(" | 222 "[" << GetLogPrefix() << "] glCopyTexImage2D(" |
229 << GLES2Util::GetStringTextureTarget(target) << ", " << level << ", " | 223 << GLES2Util::GetStringTextureTarget(target) << ", " << level << ", " |
230 << GLES2Util::GetStringTextureInternalFormat(internalformat) << ", " | 224 << GLES2Util::GetStringTextureInternalFormat(internalformat) << ", " |
231 << x << ", " << y << ", " << width << ", " << height << ", " << border | 225 << x << ", " << y << ", " << width << ", " << height << ", " << border |
232 << ")"); // NOLINT | 226 << ")"); |
233 if (width < 0) { | 227 if (width < 0) { |
234 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); | 228 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); |
235 return; | 229 return; |
236 } | 230 } |
237 if (height < 0) { | 231 if (height < 0) { |
238 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); | 232 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); |
239 return; | 233 return; |
240 } | 234 } |
241 helper_->CopyTexImage2D( | 235 helper_->CopyTexImage2D( |
242 target, level, internalformat, x, y, width, height, border); | 236 target, level, internalformat, x, y, width, height, border); |
243 CheckGLError(); | 237 CheckGLError(); |
244 } | 238 } |
245 | 239 |
246 void GLES2Implementation::CopyTexSubImage2D(GLenum target, | 240 void GLES2Implementation::CopyTexSubImage2D(GLenum target, |
247 GLint level, | 241 GLint level, |
248 GLint xoffset, | 242 GLint xoffset, |
249 GLint yoffset, | 243 GLint yoffset, |
250 GLint x, | 244 GLint x, |
251 GLint y, | 245 GLint y, |
252 GLsizei width, | 246 GLsizei width, |
253 GLsizei height) { | 247 GLsizei height) { |
254 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 248 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
255 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexSubImage2D(" | 249 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexSubImage2D(" |
256 << GLES2Util::GetStringTextureTarget(target) << ", " | 250 << GLES2Util::GetStringTextureTarget(target) << ", " |
257 << level << ", " << xoffset << ", " << yoffset << ", " << x | 251 << level << ", " << xoffset << ", " << yoffset << ", " << x |
258 << ", " << y << ", " << width << ", " << height | 252 << ", " << y << ", " << width << ", " << height << ")"); |
259 << ")"); // NOLINT | |
260 if (width < 0) { | 253 if (width < 0) { |
261 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); | 254 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); |
262 return; | 255 return; |
263 } | 256 } |
264 if (height < 0) { | 257 if (height < 0) { |
265 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); | 258 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); |
266 return; | 259 return; |
267 } | 260 } |
268 helper_->CopyTexSubImage2D( | 261 helper_->CopyTexSubImage2D( |
269 target, level, xoffset, yoffset, x, y, width, height); | 262 target, level, xoffset, yoffset, x, y, width, height); |
270 CheckGLError(); | 263 CheckGLError(); |
271 } | 264 } |
272 | 265 |
273 GLuint GLES2Implementation::CreateProgram() { | 266 GLuint GLES2Implementation::CreateProgram() { |
274 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 267 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
275 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateProgram(" | 268 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateProgram(" |
276 << ")"); | 269 << ")"); |
277 GLuint client_id; | 270 GLuint client_id; |
278 GetIdHandler(id_namespaces::kProgramsAndShaders) | 271 GetIdHandler(id_namespaces::kProgramsAndShaders) |
279 ->MakeIds(this, 0, 1, &client_id); | 272 ->MakeIds(this, 0, 1, &client_id); |
280 helper_->CreateProgram(client_id); | 273 helper_->CreateProgram(client_id); |
281 GPU_CLIENT_LOG("returned " << client_id); | 274 GPU_CLIENT_LOG("returned " << client_id); |
282 CheckGLError(); | 275 CheckGLError(); |
283 return client_id; | 276 return client_id; |
284 } | 277 } |
285 | 278 |
286 GLuint GLES2Implementation::CreateShader(GLenum type) { | 279 GLuint GLES2Implementation::CreateShader(GLenum type) { |
287 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 280 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
288 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateShader(" | 281 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateShader(" |
289 << GLES2Util::GetStringShaderType(type) << ")"); // NOLINT | 282 << GLES2Util::GetStringShaderType(type) << ")"); |
290 GLuint client_id; | 283 GLuint client_id; |
291 GetIdHandler(id_namespaces::kProgramsAndShaders) | 284 GetIdHandler(id_namespaces::kProgramsAndShaders) |
292 ->MakeIds(this, 0, 1, &client_id); | 285 ->MakeIds(this, 0, 1, &client_id); |
293 helper_->CreateShader(type, client_id); | 286 helper_->CreateShader(type, client_id); |
294 GPU_CLIENT_LOG("returned " << client_id); | 287 GPU_CLIENT_LOG("returned " << client_id); |
295 CheckGLError(); | 288 CheckGLError(); |
296 return client_id; | 289 return client_id; |
297 } | 290 } |
298 | 291 |
299 void GLES2Implementation::CullFace(GLenum mode) { | 292 void GLES2Implementation::CullFace(GLenum mode) { |
300 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 293 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
301 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCullFace(" | 294 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCullFace(" |
302 << GLES2Util::GetStringFaceType(mode) << ")"); // NOLINT | 295 << GLES2Util::GetStringFaceType(mode) << ")"); |
303 helper_->CullFace(mode); | 296 helper_->CullFace(mode); |
304 CheckGLError(); | 297 CheckGLError(); |
305 } | 298 } |
306 | 299 |
307 void GLES2Implementation::DeleteBuffers(GLsizei n, const GLuint* buffers) { | 300 void GLES2Implementation::DeleteBuffers(GLsizei n, const GLuint* buffers) { |
308 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 301 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
309 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteBuffers(" << n << ", " | 302 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteBuffers(" << n << ", " |
310 << static_cast<const void*>(buffers) << ")"); // NOLINT | 303 << static_cast<const void*>(buffers) << ")"); |
311 GPU_CLIENT_LOG_CODE_BLOCK({ | 304 GPU_CLIENT_LOG_CODE_BLOCK({ |
312 for (GLsizei i = 0; i < n; ++i) { | 305 for (GLsizei i = 0; i < n; ++i) { |
313 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); | 306 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); |
314 } | 307 } |
315 }); | 308 }); |
316 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 309 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
317 for (GLsizei i = 0; i < n; ++i) { | 310 for (GLsizei i = 0; i < n; ++i) { |
318 DCHECK(buffers[i] != 0); | 311 DCHECK(buffers[i] != 0); |
319 } | 312 } |
320 }); | 313 }); |
321 if (n < 0) { | 314 if (n < 0) { |
322 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0"); | 315 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0"); |
323 return; | 316 return; |
324 } | 317 } |
325 DeleteBuffersHelper(n, buffers); | 318 DeleteBuffersHelper(n, buffers); |
326 CheckGLError(); | 319 CheckGLError(); |
327 } | 320 } |
328 | 321 |
329 void GLES2Implementation::DeleteFramebuffers(GLsizei n, | 322 void GLES2Implementation::DeleteFramebuffers(GLsizei n, |
330 const GLuint* framebuffers) { | 323 const GLuint* framebuffers) { |
331 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 324 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
332 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteFramebuffers(" << n << ", " | 325 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteFramebuffers(" << n << ", " |
333 << static_cast<const void*>(framebuffers) | 326 << static_cast<const void*>(framebuffers) << ")"); |
334 << ")"); // NOLINT | |
335 GPU_CLIENT_LOG_CODE_BLOCK({ | 327 GPU_CLIENT_LOG_CODE_BLOCK({ |
336 for (GLsizei i = 0; i < n; ++i) { | 328 for (GLsizei i = 0; i < n; ++i) { |
337 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); | 329 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); |
338 } | 330 } |
339 }); | 331 }); |
340 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 332 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
341 for (GLsizei i = 0; i < n; ++i) { | 333 for (GLsizei i = 0; i < n; ++i) { |
342 DCHECK(framebuffers[i] != 0); | 334 DCHECK(framebuffers[i] != 0); |
343 } | 335 } |
344 }); | 336 }); |
345 if (n < 0) { | 337 if (n < 0) { |
346 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0"); | 338 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0"); |
347 return; | 339 return; |
348 } | 340 } |
349 DeleteFramebuffersHelper(n, framebuffers); | 341 DeleteFramebuffersHelper(n, framebuffers); |
350 CheckGLError(); | 342 CheckGLError(); |
351 } | 343 } |
352 | 344 |
353 void GLES2Implementation::DeleteProgram(GLuint program) { | 345 void GLES2Implementation::DeleteProgram(GLuint program) { |
354 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 346 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
355 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteProgram(" << program | 347 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteProgram(" << program |
356 << ")"); // NOLINT | 348 << ")"); |
357 GPU_CLIENT_DCHECK(program != 0); | 349 GPU_CLIENT_DCHECK(program != 0); |
358 DeleteProgramHelper(program); | 350 DeleteProgramHelper(program); |
359 CheckGLError(); | 351 CheckGLError(); |
360 } | 352 } |
361 | 353 |
362 void GLES2Implementation::DeleteRenderbuffers(GLsizei n, | 354 void GLES2Implementation::DeleteRenderbuffers(GLsizei n, |
363 const GLuint* renderbuffers) { | 355 const GLuint* renderbuffers) { |
364 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 356 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
365 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteRenderbuffers(" << n | 357 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteRenderbuffers(" << n |
366 << ", " << static_cast<const void*>(renderbuffers) | 358 << ", " << static_cast<const void*>(renderbuffers) << ")"); |
367 << ")"); // NOLINT | |
368 GPU_CLIENT_LOG_CODE_BLOCK({ | 359 GPU_CLIENT_LOG_CODE_BLOCK({ |
369 for (GLsizei i = 0; i < n; ++i) { | 360 for (GLsizei i = 0; i < n; ++i) { |
370 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); | 361 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); |
371 } | 362 } |
372 }); | 363 }); |
373 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 364 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
374 for (GLsizei i = 0; i < n; ++i) { | 365 for (GLsizei i = 0; i < n; ++i) { |
375 DCHECK(renderbuffers[i] != 0); | 366 DCHECK(renderbuffers[i] != 0); |
376 } | 367 } |
377 }); | 368 }); |
378 if (n < 0) { | 369 if (n < 0) { |
379 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0"); | 370 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0"); |
380 return; | 371 return; |
381 } | 372 } |
382 DeleteRenderbuffersHelper(n, renderbuffers); | 373 DeleteRenderbuffersHelper(n, renderbuffers); |
383 CheckGLError(); | 374 CheckGLError(); |
384 } | 375 } |
385 | 376 |
386 void GLES2Implementation::DeleteShader(GLuint shader) { | 377 void GLES2Implementation::DeleteShader(GLuint shader) { |
387 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 378 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
388 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")"); | 379 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")"); |
389 GPU_CLIENT_DCHECK(shader != 0); | 380 GPU_CLIENT_DCHECK(shader != 0); |
390 DeleteShaderHelper(shader); | 381 DeleteShaderHelper(shader); |
391 CheckGLError(); | 382 CheckGLError(); |
392 } | 383 } |
393 | 384 |
394 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) { | 385 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) { |
395 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 386 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
396 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTextures(" << n << ", " | 387 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTextures(" << n << ", " |
397 << static_cast<const void*>(textures) << ")"); // NOLINT | 388 << static_cast<const void*>(textures) << ")"); |
398 GPU_CLIENT_LOG_CODE_BLOCK({ | 389 GPU_CLIENT_LOG_CODE_BLOCK({ |
399 for (GLsizei i = 0; i < n; ++i) { | 390 for (GLsizei i = 0; i < n; ++i) { |
400 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); | 391 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); |
401 } | 392 } |
402 }); | 393 }); |
403 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 394 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
404 for (GLsizei i = 0; i < n; ++i) { | 395 for (GLsizei i = 0; i < n; ++i) { |
405 DCHECK(textures[i] != 0); | 396 DCHECK(textures[i] != 0); |
406 } | 397 } |
407 }); | 398 }); |
408 if (n < 0) { | 399 if (n < 0) { |
409 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0"); | 400 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0"); |
410 return; | 401 return; |
411 } | 402 } |
412 DeleteTexturesHelper(n, textures); | 403 DeleteTexturesHelper(n, textures); |
413 CheckGLError(); | 404 CheckGLError(); |
414 } | 405 } |
415 | 406 |
416 void GLES2Implementation::DepthFunc(GLenum func) { | 407 void GLES2Implementation::DepthFunc(GLenum func) { |
417 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 408 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
418 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc(" | 409 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc(" |
419 << GLES2Util::GetStringCmpFunction(func) | 410 << GLES2Util::GetStringCmpFunction(func) << ")"); |
420 << ")"); // NOLINT | |
421 helper_->DepthFunc(func); | 411 helper_->DepthFunc(func); |
422 CheckGLError(); | 412 CheckGLError(); |
423 } | 413 } |
424 | 414 |
425 void GLES2Implementation::DepthMask(GLboolean flag) { | 415 void GLES2Implementation::DepthMask(GLboolean flag) { |
426 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 416 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
427 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthMask(" | 417 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthMask(" |
428 << GLES2Util::GetStringBool(flag) << ")"); // NOLINT | 418 << GLES2Util::GetStringBool(flag) << ")"); |
429 helper_->DepthMask(flag); | 419 helper_->DepthMask(flag); |
430 CheckGLError(); | 420 CheckGLError(); |
431 } | 421 } |
432 | 422 |
433 void GLES2Implementation::DepthRangef(GLclampf zNear, GLclampf zFar) { | 423 void GLES2Implementation::DepthRangef(GLclampf zNear, GLclampf zFar) { |
434 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 424 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
435 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthRangef(" << zNear << ", " | 425 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthRangef(" << zNear << ", " |
436 << zFar << ")"); // NOLINT | 426 << zFar << ")"); |
437 helper_->DepthRangef(zNear, zFar); | 427 helper_->DepthRangef(zNear, zFar); |
438 CheckGLError(); | 428 CheckGLError(); |
439 } | 429 } |
440 | 430 |
441 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) { | 431 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) { |
442 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 432 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
443 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", " | 433 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", " |
444 << shader << ")"); // NOLINT | 434 << shader << ")"); |
445 helper_->DetachShader(program, shader); | 435 helper_->DetachShader(program, shader); |
446 CheckGLError(); | 436 CheckGLError(); |
447 } | 437 } |
448 | 438 |
449 void GLES2Implementation::FramebufferRenderbuffer(GLenum target, | 439 void GLES2Implementation::FramebufferRenderbuffer(GLenum target, |
450 GLenum attachment, | 440 GLenum attachment, |
451 GLenum renderbuffertarget, | 441 GLenum renderbuffertarget, |
452 GLuint renderbuffer) { | 442 GLuint renderbuffer) { |
453 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 443 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
454 GPU_CLIENT_LOG( | 444 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" |
455 "[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" | 445 << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
456 << GLES2Util::GetStringFrameBufferTarget(target) << ", " | 446 << GLES2Util::GetStringAttachment(attachment) << ", " |
457 << GLES2Util::GetStringAttachment(attachment) << ", " | 447 << GLES2Util::GetStringRenderBufferTarget( |
458 << GLES2Util::GetStringRenderBufferTarget(renderbuffertarget) << ", " | 448 renderbuffertarget) << ", " << renderbuffer << ")"); |
459 << renderbuffer << ")"); // NOLINT | |
460 helper_->FramebufferRenderbuffer( | 449 helper_->FramebufferRenderbuffer( |
461 target, attachment, renderbuffertarget, renderbuffer); | 450 target, attachment, renderbuffertarget, renderbuffer); |
462 CheckGLError(); | 451 CheckGLError(); |
463 } | 452 } |
464 | 453 |
465 void GLES2Implementation::FramebufferTexture2D(GLenum target, | 454 void GLES2Implementation::FramebufferTexture2D(GLenum target, |
466 GLenum attachment, | 455 GLenum attachment, |
467 GLenum textarget, | 456 GLenum textarget, |
468 GLuint texture, | 457 GLuint texture, |
469 GLint level) { | 458 GLint level) { |
470 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 459 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
471 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2D(" | 460 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2D(" |
472 << GLES2Util::GetStringFrameBufferTarget(target) << ", " | 461 << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
473 << GLES2Util::GetStringAttachment(attachment) << ", " | 462 << GLES2Util::GetStringAttachment(attachment) << ", " |
474 << GLES2Util::GetStringTextureTarget(textarget) << ", " | 463 << GLES2Util::GetStringTextureTarget(textarget) << ", " |
475 << texture << ", " << level << ")"); // NOLINT | 464 << texture << ", " << level << ")"); |
476 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level); | 465 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level); |
477 CheckGLError(); | 466 CheckGLError(); |
478 } | 467 } |
479 | 468 |
480 void GLES2Implementation::FrontFace(GLenum mode) { | 469 void GLES2Implementation::FrontFace(GLenum mode) { |
481 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 470 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
482 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" | 471 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" |
483 << GLES2Util::GetStringFaceMode(mode) << ")"); // NOLINT | 472 << GLES2Util::GetStringFaceMode(mode) << ")"); |
484 helper_->FrontFace(mode); | 473 helper_->FrontFace(mode); |
485 CheckGLError(); | 474 CheckGLError(); |
486 } | 475 } |
487 | 476 |
488 void GLES2Implementation::GenBuffers(GLsizei n, GLuint* buffers) { | 477 void GLES2Implementation::GenBuffers(GLsizei n, GLuint* buffers) { |
489 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenBuffers(" << n << ", " | 478 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenBuffers(" << n << ", " |
490 << static_cast<const void*>(buffers) << ")"); // NOLINT | 479 << static_cast<const void*>(buffers) << ")"); |
491 if (n < 0) { | 480 if (n < 0) { |
492 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0"); | 481 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0"); |
493 return; | 482 return; |
494 } | 483 } |
495 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 484 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
496 GetIdHandler(id_namespaces::kBuffers)->MakeIds(this, 0, n, buffers); | 485 GetIdHandler(id_namespaces::kBuffers)->MakeIds(this, 0, n, buffers); |
497 GenBuffersHelper(n, buffers); | 486 GenBuffersHelper(n, buffers); |
498 helper_->GenBuffersImmediate(n, buffers); | 487 helper_->GenBuffersImmediate(n, buffers); |
499 if (share_group_->bind_generates_resource()) | 488 if (share_group_->bind_generates_resource()) |
500 helper_->CommandBufferHelper::Flush(); | 489 helper_->CommandBufferHelper::Flush(); |
501 GPU_CLIENT_LOG_CODE_BLOCK({ | 490 GPU_CLIENT_LOG_CODE_BLOCK({ |
502 for (GLsizei i = 0; i < n; ++i) { | 491 for (GLsizei i = 0; i < n; ++i) { |
503 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); | 492 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); |
504 } | 493 } |
505 }); | 494 }); |
506 CheckGLError(); | 495 CheckGLError(); |
507 } | 496 } |
508 | 497 |
509 void GLES2Implementation::GenerateMipmap(GLenum target) { | 498 void GLES2Implementation::GenerateMipmap(GLenum target) { |
510 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 499 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
511 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenerateMipmap(" | 500 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenerateMipmap(" |
512 << GLES2Util::GetStringTextureBindTarget(target) | 501 << GLES2Util::GetStringTextureBindTarget(target) << ")"); |
513 << ")"); // NOLINT | |
514 helper_->GenerateMipmap(target); | 502 helper_->GenerateMipmap(target); |
515 CheckGLError(); | 503 CheckGLError(); |
516 } | 504 } |
517 | 505 |
518 void GLES2Implementation::GenFramebuffers(GLsizei n, GLuint* framebuffers) { | 506 void GLES2Implementation::GenFramebuffers(GLsizei n, GLuint* framebuffers) { |
519 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenFramebuffers(" << n << ", " | 507 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenFramebuffers(" << n << ", " |
520 << static_cast<const void*>(framebuffers) | 508 << static_cast<const void*>(framebuffers) << ")"); |
521 << ")"); // NOLINT | |
522 if (n < 0) { | 509 if (n < 0) { |
523 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0"); | 510 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0"); |
524 return; | 511 return; |
525 } | 512 } |
526 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 513 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
527 GetIdHandler(id_namespaces::kFramebuffers)->MakeIds(this, 0, n, framebuffers); | 514 GetIdHandler(id_namespaces::kFramebuffers)->MakeIds(this, 0, n, framebuffers); |
528 GenFramebuffersHelper(n, framebuffers); | 515 GenFramebuffersHelper(n, framebuffers); |
529 helper_->GenFramebuffersImmediate(n, framebuffers); | 516 helper_->GenFramebuffersImmediate(n, framebuffers); |
530 if (share_group_->bind_generates_resource()) | 517 if (share_group_->bind_generates_resource()) |
531 helper_->CommandBufferHelper::Flush(); | 518 helper_->CommandBufferHelper::Flush(); |
532 GPU_CLIENT_LOG_CODE_BLOCK({ | 519 GPU_CLIENT_LOG_CODE_BLOCK({ |
533 for (GLsizei i = 0; i < n; ++i) { | 520 for (GLsizei i = 0; i < n; ++i) { |
534 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); | 521 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); |
535 } | 522 } |
536 }); | 523 }); |
537 CheckGLError(); | 524 CheckGLError(); |
538 } | 525 } |
539 | 526 |
540 void GLES2Implementation::GenRenderbuffers(GLsizei n, GLuint* renderbuffers) { | 527 void GLES2Implementation::GenRenderbuffers(GLsizei n, GLuint* renderbuffers) { |
541 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenRenderbuffers(" << n << ", " | 528 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenRenderbuffers(" << n << ", " |
542 << static_cast<const void*>(renderbuffers) | 529 << static_cast<const void*>(renderbuffers) << ")"); |
543 << ")"); // NOLINT | |
544 if (n < 0) { | 530 if (n < 0) { |
545 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0"); | 531 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0"); |
546 return; | 532 return; |
547 } | 533 } |
548 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 534 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
549 GetIdHandler(id_namespaces::kRenderbuffers) | 535 GetIdHandler(id_namespaces::kRenderbuffers) |
550 ->MakeIds(this, 0, n, renderbuffers); | 536 ->MakeIds(this, 0, n, renderbuffers); |
551 GenRenderbuffersHelper(n, renderbuffers); | 537 GenRenderbuffersHelper(n, renderbuffers); |
552 helper_->GenRenderbuffersImmediate(n, renderbuffers); | 538 helper_->GenRenderbuffersImmediate(n, renderbuffers); |
553 if (share_group_->bind_generates_resource()) | 539 if (share_group_->bind_generates_resource()) |
554 helper_->CommandBufferHelper::Flush(); | 540 helper_->CommandBufferHelper::Flush(); |
555 GPU_CLIENT_LOG_CODE_BLOCK({ | 541 GPU_CLIENT_LOG_CODE_BLOCK({ |
556 for (GLsizei i = 0; i < n; ++i) { | 542 for (GLsizei i = 0; i < n; ++i) { |
557 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); | 543 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); |
558 } | 544 } |
559 }); | 545 }); |
560 CheckGLError(); | 546 CheckGLError(); |
561 } | 547 } |
562 | 548 |
563 void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) { | 549 void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) { |
564 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTextures(" << n << ", " | 550 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTextures(" << n << ", " |
565 << static_cast<const void*>(textures) << ")"); // NOLINT | 551 << static_cast<const void*>(textures) << ")"); |
566 if (n < 0) { | 552 if (n < 0) { |
567 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0"); | 553 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0"); |
568 return; | 554 return; |
569 } | 555 } |
570 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 556 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
571 GetIdHandler(id_namespaces::kTextures)->MakeIds(this, 0, n, textures); | 557 GetIdHandler(id_namespaces::kTextures)->MakeIds(this, 0, n, textures); |
572 GenTexturesHelper(n, textures); | 558 GenTexturesHelper(n, textures); |
573 helper_->GenTexturesImmediate(n, textures); | 559 helper_->GenTexturesImmediate(n, textures); |
574 if (share_group_->bind_generates_resource()) | 560 if (share_group_->bind_generates_resource()) |
575 helper_->CommandBufferHelper::Flush(); | 561 helper_->CommandBufferHelper::Flush(); |
576 GPU_CLIENT_LOG_CODE_BLOCK({ | 562 GPU_CLIENT_LOG_CODE_BLOCK({ |
577 for (GLsizei i = 0; i < n; ++i) { | 563 for (GLsizei i = 0; i < n; ++i) { |
578 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); | 564 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); |
579 } | 565 } |
580 }); | 566 }); |
581 CheckGLError(); | 567 CheckGLError(); |
582 } | 568 } |
583 | 569 |
584 void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) { | 570 void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) { |
585 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 571 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
586 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params); | 572 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params); |
587 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBooleanv(" | 573 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBooleanv(" |
588 << GLES2Util::GetStringGLState(pname) << ", " | 574 << GLES2Util::GetStringGLState(pname) << ", " |
589 << static_cast<const void*>(params) << ")"); // NOLINT | 575 << static_cast<const void*>(params) << ")"); |
590 TRACE_EVENT0("gpu", "GLES2Implementation::GetBooleanv"); | 576 TRACE_EVENT0("gpu", "GLES2Implementation::GetBooleanv"); |
591 if (GetBooleanvHelper(pname, params)) { | 577 if (GetBooleanvHelper(pname, params)) { |
592 return; | 578 return; |
593 } | 579 } |
594 typedef cmds::GetBooleanv::Result Result; | 580 typedef cmds::GetBooleanv::Result Result; |
595 Result* result = GetResultAs<Result*>(); | 581 Result* result = GetResultAs<Result*>(); |
596 if (!result) { | 582 if (!result) { |
597 return; | 583 return; |
598 } | 584 } |
599 result->SetNumResults(0); | 585 result->SetNumResults(0); |
600 helper_->GetBooleanv(pname, GetResultShmId(), GetResultShmOffset()); | 586 helper_->GetBooleanv(pname, GetResultShmId(), GetResultShmOffset()); |
601 WaitForCmd(); | 587 WaitForCmd(); |
602 result->CopyResult(params); | 588 result->CopyResult(params); |
603 GPU_CLIENT_LOG_CODE_BLOCK({ | 589 GPU_CLIENT_LOG_CODE_BLOCK({ |
604 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 590 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
605 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 591 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
606 } | 592 } |
607 }); | 593 }); |
608 CheckGLError(); | 594 CheckGLError(); |
609 } | 595 } |
610 void GLES2Implementation::GetBufferParameteriv(GLenum target, | 596 void GLES2Implementation::GetBufferParameteriv(GLenum target, |
611 GLenum pname, | 597 GLenum pname, |
612 GLint* params) { | 598 GLint* params) { |
613 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 599 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
614 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 600 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
615 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBufferParameteriv(" | 601 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBufferParameteriv(" |
616 << GLES2Util::GetStringBufferTarget(target) << ", " | 602 << GLES2Util::GetStringBufferTarget(target) << ", " |
617 << GLES2Util::GetStringBufferParameter(pname) << ", " | 603 << GLES2Util::GetStringBufferParameter(pname) << ", " |
618 << static_cast<const void*>(params) << ")"); // NOLINT | 604 << static_cast<const void*>(params) << ")"); |
619 TRACE_EVENT0("gpu", "GLES2Implementation::GetBufferParameteriv"); | 605 TRACE_EVENT0("gpu", "GLES2Implementation::GetBufferParameteriv"); |
620 if (GetBufferParameterivHelper(target, pname, params)) { | 606 if (GetBufferParameterivHelper(target, pname, params)) { |
621 return; | 607 return; |
622 } | 608 } |
623 typedef cmds::GetBufferParameteriv::Result Result; | 609 typedef cmds::GetBufferParameteriv::Result Result; |
624 Result* result = GetResultAs<Result*>(); | 610 Result* result = GetResultAs<Result*>(); |
625 if (!result) { | 611 if (!result) { |
626 return; | 612 return; |
627 } | 613 } |
628 result->SetNumResults(0); | 614 result->SetNumResults(0); |
629 helper_->GetBufferParameteriv( | 615 helper_->GetBufferParameteriv( |
630 target, pname, GetResultShmId(), GetResultShmOffset()); | 616 target, pname, GetResultShmId(), GetResultShmOffset()); |
631 WaitForCmd(); | 617 WaitForCmd(); |
632 result->CopyResult(params); | 618 result->CopyResult(params); |
633 GPU_CLIENT_LOG_CODE_BLOCK({ | 619 GPU_CLIENT_LOG_CODE_BLOCK({ |
634 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 620 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
635 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 621 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
636 } | 622 } |
637 }); | 623 }); |
638 CheckGLError(); | 624 CheckGLError(); |
639 } | 625 } |
640 void GLES2Implementation::GetFloatv(GLenum pname, GLfloat* params) { | 626 void GLES2Implementation::GetFloatv(GLenum pname, GLfloat* params) { |
641 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 627 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
642 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFloatv(" | 628 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFloatv(" |
643 << GLES2Util::GetStringGLState(pname) << ", " | 629 << GLES2Util::GetStringGLState(pname) << ", " |
644 << static_cast<const void*>(params) << ")"); // NOLINT | 630 << static_cast<const void*>(params) << ")"); |
645 TRACE_EVENT0("gpu", "GLES2Implementation::GetFloatv"); | 631 TRACE_EVENT0("gpu", "GLES2Implementation::GetFloatv"); |
646 if (GetFloatvHelper(pname, params)) { | 632 if (GetFloatvHelper(pname, params)) { |
647 return; | 633 return; |
648 } | 634 } |
649 typedef cmds::GetFloatv::Result Result; | 635 typedef cmds::GetFloatv::Result Result; |
650 Result* result = GetResultAs<Result*>(); | 636 Result* result = GetResultAs<Result*>(); |
651 if (!result) { | 637 if (!result) { |
652 return; | 638 return; |
653 } | 639 } |
654 result->SetNumResults(0); | 640 result->SetNumResults(0); |
(...skipping 11 matching lines...) Expand all Loading... |
666 GLenum attachment, | 652 GLenum attachment, |
667 GLenum pname, | 653 GLenum pname, |
668 GLint* params) { | 654 GLint* params) { |
669 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 655 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
670 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 656 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
671 GPU_CLIENT_LOG("[" << GetLogPrefix() | 657 GPU_CLIENT_LOG("[" << GetLogPrefix() |
672 << "] glGetFramebufferAttachmentParameteriv(" | 658 << "] glGetFramebufferAttachmentParameteriv(" |
673 << GLES2Util::GetStringFrameBufferTarget(target) << ", " | 659 << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
674 << GLES2Util::GetStringAttachment(attachment) << ", " | 660 << GLES2Util::GetStringAttachment(attachment) << ", " |
675 << GLES2Util::GetStringFrameBufferParameter(pname) << ", " | 661 << GLES2Util::GetStringFrameBufferParameter(pname) << ", " |
676 << static_cast<const void*>(params) << ")"); // NOLINT | 662 << static_cast<const void*>(params) << ")"); |
677 TRACE_EVENT0( | 663 TRACE_EVENT0("gpu", |
678 "gpu", | 664 "GLES2Implementation::GetFramebufferAttachmentParameteriv"); |
679 "GLES2Implementation::GetFramebufferAttachmentParameteriv"); // NOLINT | |
680 if (GetFramebufferAttachmentParameterivHelper( | 665 if (GetFramebufferAttachmentParameterivHelper( |
681 target, attachment, pname, params)) { | 666 target, attachment, pname, params)) { |
682 return; | 667 return; |
683 } | 668 } |
684 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; | 669 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; |
685 Result* result = GetResultAs<Result*>(); | 670 Result* result = GetResultAs<Result*>(); |
686 if (!result) { | 671 if (!result) { |
687 return; | 672 return; |
688 } | 673 } |
689 result->SetNumResults(0); | 674 result->SetNumResults(0); |
690 helper_->GetFramebufferAttachmentParameteriv( | 675 helper_->GetFramebufferAttachmentParameteriv( |
691 target, attachment, pname, GetResultShmId(), GetResultShmOffset()); | 676 target, attachment, pname, GetResultShmId(), GetResultShmOffset()); |
692 WaitForCmd(); | 677 WaitForCmd(); |
693 result->CopyResult(params); | 678 result->CopyResult(params); |
694 GPU_CLIENT_LOG_CODE_BLOCK({ | 679 GPU_CLIENT_LOG_CODE_BLOCK({ |
695 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 680 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
696 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 681 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
697 } | 682 } |
698 }); | 683 }); |
699 CheckGLError(); | 684 CheckGLError(); |
700 } | 685 } |
701 void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) { | 686 void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) { |
702 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 687 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
703 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 688 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
704 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetIntegerv(" | 689 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetIntegerv(" |
705 << GLES2Util::GetStringGLState(pname) << ", " | 690 << GLES2Util::GetStringGLState(pname) << ", " |
706 << static_cast<const void*>(params) << ")"); // NOLINT | 691 << static_cast<const void*>(params) << ")"); |
707 TRACE_EVENT0("gpu", "GLES2Implementation::GetIntegerv"); | 692 TRACE_EVENT0("gpu", "GLES2Implementation::GetIntegerv"); |
708 if (GetIntegervHelper(pname, params)) { | 693 if (GetIntegervHelper(pname, params)) { |
709 return; | 694 return; |
710 } | 695 } |
711 typedef cmds::GetIntegerv::Result Result; | 696 typedef cmds::GetIntegerv::Result Result; |
712 Result* result = GetResultAs<Result*>(); | 697 Result* result = GetResultAs<Result*>(); |
713 if (!result) { | 698 if (!result) { |
714 return; | 699 return; |
715 } | 700 } |
716 result->SetNumResults(0); | 701 result->SetNumResults(0); |
717 helper_->GetIntegerv(pname, GetResultShmId(), GetResultShmOffset()); | 702 helper_->GetIntegerv(pname, GetResultShmId(), GetResultShmOffset()); |
718 WaitForCmd(); | 703 WaitForCmd(); |
719 result->CopyResult(params); | 704 result->CopyResult(params); |
720 GPU_CLIENT_LOG_CODE_BLOCK({ | 705 GPU_CLIENT_LOG_CODE_BLOCK({ |
721 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 706 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
722 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 707 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
723 } | 708 } |
724 }); | 709 }); |
725 CheckGLError(); | 710 CheckGLError(); |
726 } | 711 } |
727 void GLES2Implementation::GetProgramiv(GLuint program, | 712 void GLES2Implementation::GetProgramiv(GLuint program, |
728 GLenum pname, | 713 GLenum pname, |
729 GLint* params) { | 714 GLint* params) { |
730 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 715 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
731 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 716 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
732 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetProgramiv(" << program << ", " | 717 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetProgramiv(" << program << ", " |
733 << GLES2Util::GetStringProgramParameter(pname) << ", " | 718 << GLES2Util::GetStringProgramParameter(pname) << ", " |
734 << static_cast<const void*>(params) << ")"); // NOLINT | 719 << static_cast<const void*>(params) << ")"); |
735 TRACE_EVENT0("gpu", "GLES2Implementation::GetProgramiv"); | 720 TRACE_EVENT0("gpu", "GLES2Implementation::GetProgramiv"); |
736 if (GetProgramivHelper(program, pname, params)) { | 721 if (GetProgramivHelper(program, pname, params)) { |
737 return; | 722 return; |
738 } | 723 } |
739 typedef cmds::GetProgramiv::Result Result; | 724 typedef cmds::GetProgramiv::Result Result; |
740 Result* result = GetResultAs<Result*>(); | 725 Result* result = GetResultAs<Result*>(); |
741 if (!result) { | 726 if (!result) { |
742 return; | 727 return; |
743 } | 728 } |
744 result->SetNumResults(0); | 729 result->SetNumResults(0); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 CheckGLError(); | 765 CheckGLError(); |
781 } | 766 } |
782 void GLES2Implementation::GetRenderbufferParameteriv(GLenum target, | 767 void GLES2Implementation::GetRenderbufferParameteriv(GLenum target, |
783 GLenum pname, | 768 GLenum pname, |
784 GLint* params) { | 769 GLint* params) { |
785 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 770 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
786 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 771 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
787 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetRenderbufferParameteriv(" | 772 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetRenderbufferParameteriv(" |
788 << GLES2Util::GetStringRenderBufferTarget(target) << ", " | 773 << GLES2Util::GetStringRenderBufferTarget(target) << ", " |
789 << GLES2Util::GetStringRenderBufferParameter(pname) << ", " | 774 << GLES2Util::GetStringRenderBufferParameter(pname) << ", " |
790 << static_cast<const void*>(params) << ")"); // NOLINT | 775 << static_cast<const void*>(params) << ")"); |
791 TRACE_EVENT0("gpu", "GLES2Implementation::GetRenderbufferParameteriv"); | 776 TRACE_EVENT0("gpu", "GLES2Implementation::GetRenderbufferParameteriv"); |
792 if (GetRenderbufferParameterivHelper(target, pname, params)) { | 777 if (GetRenderbufferParameterivHelper(target, pname, params)) { |
793 return; | 778 return; |
794 } | 779 } |
795 typedef cmds::GetRenderbufferParameteriv::Result Result; | 780 typedef cmds::GetRenderbufferParameteriv::Result Result; |
796 Result* result = GetResultAs<Result*>(); | 781 Result* result = GetResultAs<Result*>(); |
797 if (!result) { | 782 if (!result) { |
798 return; | 783 return; |
799 } | 784 } |
800 result->SetNumResults(0); | 785 result->SetNumResults(0); |
801 helper_->GetRenderbufferParameteriv( | 786 helper_->GetRenderbufferParameteriv( |
802 target, pname, GetResultShmId(), GetResultShmOffset()); | 787 target, pname, GetResultShmId(), GetResultShmOffset()); |
803 WaitForCmd(); | 788 WaitForCmd(); |
804 result->CopyResult(params); | 789 result->CopyResult(params); |
805 GPU_CLIENT_LOG_CODE_BLOCK({ | 790 GPU_CLIENT_LOG_CODE_BLOCK({ |
806 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 791 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
807 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 792 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
808 } | 793 } |
809 }); | 794 }); |
810 CheckGLError(); | 795 CheckGLError(); |
811 } | 796 } |
812 void GLES2Implementation::GetShaderiv(GLuint shader, | 797 void GLES2Implementation::GetShaderiv(GLuint shader, |
813 GLenum pname, | 798 GLenum pname, |
814 GLint* params) { | 799 GLint* params) { |
815 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 800 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
816 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 801 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
817 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderiv(" << shader << ", " | 802 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderiv(" << shader << ", " |
818 << GLES2Util::GetStringShaderParameter(pname) << ", " | 803 << GLES2Util::GetStringShaderParameter(pname) << ", " |
819 << static_cast<const void*>(params) << ")"); // NOLINT | 804 << static_cast<const void*>(params) << ")"); |
820 TRACE_EVENT0("gpu", "GLES2Implementation::GetShaderiv"); | 805 TRACE_EVENT0("gpu", "GLES2Implementation::GetShaderiv"); |
821 if (GetShaderivHelper(shader, pname, params)) { | 806 if (GetShaderivHelper(shader, pname, params)) { |
822 return; | 807 return; |
823 } | 808 } |
824 typedef cmds::GetShaderiv::Result Result; | 809 typedef cmds::GetShaderiv::Result Result; |
825 Result* result = GetResultAs<Result*>(); | 810 Result* result = GetResultAs<Result*>(); |
826 if (!result) { | 811 if (!result) { |
827 return; | 812 return; |
828 } | 813 } |
829 result->SetNumResults(0); | 814 result->SetNumResults(0); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 } | 876 } |
892 CheckGLError(); | 877 CheckGLError(); |
893 } | 878 } |
894 void GLES2Implementation::GetTexParameterfv(GLenum target, | 879 void GLES2Implementation::GetTexParameterfv(GLenum target, |
895 GLenum pname, | 880 GLenum pname, |
896 GLfloat* params) { | 881 GLfloat* params) { |
897 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 882 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
898 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameterfv(" | 883 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameterfv(" |
899 << GLES2Util::GetStringGetTexParamTarget(target) << ", " | 884 << GLES2Util::GetStringGetTexParamTarget(target) << ", " |
900 << GLES2Util::GetStringTextureParameter(pname) << ", " | 885 << GLES2Util::GetStringTextureParameter(pname) << ", " |
901 << static_cast<const void*>(params) << ")"); // NOLINT | 886 << static_cast<const void*>(params) << ")"); |
902 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameterfv"); | 887 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameterfv"); |
903 if (GetTexParameterfvHelper(target, pname, params)) { | 888 if (GetTexParameterfvHelper(target, pname, params)) { |
904 return; | 889 return; |
905 } | 890 } |
906 typedef cmds::GetTexParameterfv::Result Result; | 891 typedef cmds::GetTexParameterfv::Result Result; |
907 Result* result = GetResultAs<Result*>(); | 892 Result* result = GetResultAs<Result*>(); |
908 if (!result) { | 893 if (!result) { |
909 return; | 894 return; |
910 } | 895 } |
911 result->SetNumResults(0); | 896 result->SetNumResults(0); |
912 helper_->GetTexParameterfv( | 897 helper_->GetTexParameterfv( |
913 target, pname, GetResultShmId(), GetResultShmOffset()); | 898 target, pname, GetResultShmId(), GetResultShmOffset()); |
914 WaitForCmd(); | 899 WaitForCmd(); |
915 result->CopyResult(params); | 900 result->CopyResult(params); |
916 GPU_CLIENT_LOG_CODE_BLOCK({ | 901 GPU_CLIENT_LOG_CODE_BLOCK({ |
917 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 902 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
918 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 903 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
919 } | 904 } |
920 }); | 905 }); |
921 CheckGLError(); | 906 CheckGLError(); |
922 } | 907 } |
923 void GLES2Implementation::GetTexParameteriv(GLenum target, | 908 void GLES2Implementation::GetTexParameteriv(GLenum target, |
924 GLenum pname, | 909 GLenum pname, |
925 GLint* params) { | 910 GLint* params) { |
926 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 911 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
927 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 912 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
928 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameteriv(" | 913 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameteriv(" |
929 << GLES2Util::GetStringGetTexParamTarget(target) << ", " | 914 << GLES2Util::GetStringGetTexParamTarget(target) << ", " |
930 << GLES2Util::GetStringTextureParameter(pname) << ", " | 915 << GLES2Util::GetStringTextureParameter(pname) << ", " |
931 << static_cast<const void*>(params) << ")"); // NOLINT | 916 << static_cast<const void*>(params) << ")"); |
932 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameteriv"); | 917 TRACE_EVENT0("gpu", "GLES2Implementation::GetTexParameteriv"); |
933 if (GetTexParameterivHelper(target, pname, params)) { | 918 if (GetTexParameterivHelper(target, pname, params)) { |
934 return; | 919 return; |
935 } | 920 } |
936 typedef cmds::GetTexParameteriv::Result Result; | 921 typedef cmds::GetTexParameteriv::Result Result; |
937 Result* result = GetResultAs<Result*>(); | 922 Result* result = GetResultAs<Result*>(); |
938 if (!result) { | 923 if (!result) { |
939 return; | 924 return; |
940 } | 925 } |
941 result->SetNumResults(0); | 926 result->SetNumResults(0); |
942 helper_->GetTexParameteriv( | 927 helper_->GetTexParameteriv( |
943 target, pname, GetResultShmId(), GetResultShmOffset()); | 928 target, pname, GetResultShmId(), GetResultShmOffset()); |
944 WaitForCmd(); | 929 WaitForCmd(); |
945 result->CopyResult(params); | 930 result->CopyResult(params); |
946 GPU_CLIENT_LOG_CODE_BLOCK({ | 931 GPU_CLIENT_LOG_CODE_BLOCK({ |
947 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 932 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
948 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 933 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
949 } | 934 } |
950 }); | 935 }); |
951 CheckGLError(); | 936 CheckGLError(); |
952 } | 937 } |
953 void GLES2Implementation::Hint(GLenum target, GLenum mode) { | 938 void GLES2Implementation::Hint(GLenum target, GLenum mode) { |
954 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 939 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
955 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glHint(" | 940 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glHint(" |
956 << GLES2Util::GetStringHintTarget(target) << ", " | 941 << GLES2Util::GetStringHintTarget(target) << ", " |
957 << GLES2Util::GetStringHintMode(mode) << ")"); // NOLINT | 942 << GLES2Util::GetStringHintMode(mode) << ")"); |
958 helper_->Hint(target, mode); | 943 helper_->Hint(target, mode); |
959 CheckGLError(); | 944 CheckGLError(); |
960 } | 945 } |
961 | 946 |
962 GLboolean GLES2Implementation::IsBuffer(GLuint buffer) { | 947 GLboolean GLES2Implementation::IsBuffer(GLuint buffer) { |
963 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 948 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
964 TRACE_EVENT0("gpu", "GLES2Implementation::IsBuffer"); | 949 TRACE_EVENT0("gpu", "GLES2Implementation::IsBuffer"); |
965 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsBuffer(" << buffer << ")"); | 950 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsBuffer(" << buffer << ")"); |
966 typedef cmds::IsBuffer::Result Result; | 951 typedef cmds::IsBuffer::Result Result; |
967 Result* result = GetResultAs<Result*>(); | 952 Result* result = GetResultAs<Result*>(); |
968 if (!result) { | 953 if (!result) { |
969 return GL_FALSE; | 954 return GL_FALSE; |
970 } | 955 } |
971 *result = 0; | 956 *result = 0; |
972 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset()); | 957 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset()); |
973 WaitForCmd(); | 958 WaitForCmd(); |
974 GLboolean result_value = *result; | 959 GLboolean result_value = *result; |
975 GPU_CLIENT_LOG("returned " << result_value); | 960 GPU_CLIENT_LOG("returned " << result_value); |
976 CheckGLError(); | 961 CheckGLError(); |
977 return result_value; | 962 return result_value; |
978 } | 963 } |
979 | 964 |
980 GLboolean GLES2Implementation::IsFramebuffer(GLuint framebuffer) { | 965 GLboolean GLES2Implementation::IsFramebuffer(GLuint framebuffer) { |
981 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 966 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
982 TRACE_EVENT0("gpu", "GLES2Implementation::IsFramebuffer"); | 967 TRACE_EVENT0("gpu", "GLES2Implementation::IsFramebuffer"); |
983 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsFramebuffer(" << framebuffer | 968 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsFramebuffer(" << framebuffer |
984 << ")"); // NOLINT | 969 << ")"); |
985 typedef cmds::IsFramebuffer::Result Result; | 970 typedef cmds::IsFramebuffer::Result Result; |
986 Result* result = GetResultAs<Result*>(); | 971 Result* result = GetResultAs<Result*>(); |
987 if (!result) { | 972 if (!result) { |
988 return GL_FALSE; | 973 return GL_FALSE; |
989 } | 974 } |
990 *result = 0; | 975 *result = 0; |
991 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset()); | 976 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset()); |
992 WaitForCmd(); | 977 WaitForCmd(); |
993 GLboolean result_value = *result; | 978 GLboolean result_value = *result; |
994 GPU_CLIENT_LOG("returned " << result_value); | 979 GPU_CLIENT_LOG("returned " << result_value); |
(...skipping 16 matching lines...) Expand all Loading... |
1011 GLboolean result_value = *result; | 996 GLboolean result_value = *result; |
1012 GPU_CLIENT_LOG("returned " << result_value); | 997 GPU_CLIENT_LOG("returned " << result_value); |
1013 CheckGLError(); | 998 CheckGLError(); |
1014 return result_value; | 999 return result_value; |
1015 } | 1000 } |
1016 | 1001 |
1017 GLboolean GLES2Implementation::IsRenderbuffer(GLuint renderbuffer) { | 1002 GLboolean GLES2Implementation::IsRenderbuffer(GLuint renderbuffer) { |
1018 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1003 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1019 TRACE_EVENT0("gpu", "GLES2Implementation::IsRenderbuffer"); | 1004 TRACE_EVENT0("gpu", "GLES2Implementation::IsRenderbuffer"); |
1020 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsRenderbuffer(" << renderbuffer | 1005 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsRenderbuffer(" << renderbuffer |
1021 << ")"); // NOLINT | 1006 << ")"); |
1022 typedef cmds::IsRenderbuffer::Result Result; | 1007 typedef cmds::IsRenderbuffer::Result Result; |
1023 Result* result = GetResultAs<Result*>(); | 1008 Result* result = GetResultAs<Result*>(); |
1024 if (!result) { | 1009 if (!result) { |
1025 return GL_FALSE; | 1010 return GL_FALSE; |
1026 } | 1011 } |
1027 *result = 0; | 1012 *result = 0; |
1028 helper_->IsRenderbuffer(renderbuffer, GetResultShmId(), GetResultShmOffset()); | 1013 helper_->IsRenderbuffer(renderbuffer, GetResultShmId(), GetResultShmOffset()); |
1029 WaitForCmd(); | 1014 WaitForCmd(); |
1030 GLboolean result_value = *result; | 1015 GLboolean result_value = *result; |
1031 GPU_CLIENT_LOG("returned " << result_value); | 1016 GPU_CLIENT_LOG("returned " << result_value); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 void GLES2Implementation::LineWidth(GLfloat width) { | 1057 void GLES2Implementation::LineWidth(GLfloat width) { |
1073 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1058 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1074 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")"); | 1059 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")"); |
1075 helper_->LineWidth(width); | 1060 helper_->LineWidth(width); |
1076 CheckGLError(); | 1061 CheckGLError(); |
1077 } | 1062 } |
1078 | 1063 |
1079 void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) { | 1064 void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) { |
1080 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1065 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1081 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", " | 1066 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", " |
1082 << units << ")"); // NOLINT | 1067 << units << ")"); |
1083 helper_->PolygonOffset(factor, units); | 1068 helper_->PolygonOffset(factor, units); |
1084 CheckGLError(); | 1069 CheckGLError(); |
1085 } | 1070 } |
1086 | 1071 |
1087 void GLES2Implementation::ReleaseShaderCompiler() { | 1072 void GLES2Implementation::ReleaseShaderCompiler() { |
1088 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1073 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1089 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseShaderCompiler(" | 1074 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseShaderCompiler(" |
1090 << ")"); | 1075 << ")"); |
1091 helper_->ReleaseShaderCompiler(); | 1076 helper_->ReleaseShaderCompiler(); |
1092 CheckGLError(); | 1077 CheckGLError(); |
1093 } | 1078 } |
1094 | 1079 |
1095 void GLES2Implementation::RenderbufferStorage(GLenum target, | 1080 void GLES2Implementation::RenderbufferStorage(GLenum target, |
1096 GLenum internalformat, | 1081 GLenum internalformat, |
1097 GLsizei width, | 1082 GLsizei width, |
1098 GLsizei height) { | 1083 GLsizei height) { |
1099 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1084 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1100 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorage(" | 1085 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorage(" |
1101 << GLES2Util::GetStringRenderBufferTarget(target) << ", " | 1086 << GLES2Util::GetStringRenderBufferTarget(target) << ", " |
1102 << GLES2Util::GetStringRenderBufferFormat(internalformat) | 1087 << GLES2Util::GetStringRenderBufferFormat(internalformat) |
1103 << ", " << width << ", " << height << ")"); // NOLINT | 1088 << ", " << width << ", " << height << ")"); |
1104 if (width < 0) { | 1089 if (width < 0) { |
1105 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); | 1090 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); |
1106 return; | 1091 return; |
1107 } | 1092 } |
1108 if (height < 0) { | 1093 if (height < 0) { |
1109 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); | 1094 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); |
1110 return; | 1095 return; |
1111 } | 1096 } |
1112 helper_->RenderbufferStorage(target, internalformat, width, height); | 1097 helper_->RenderbufferStorage(target, internalformat, width, height); |
1113 CheckGLError(); | 1098 CheckGLError(); |
1114 } | 1099 } |
1115 | 1100 |
1116 void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) { | 1101 void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) { |
1117 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1102 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1118 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", " | 1103 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", " |
1119 << GLES2Util::GetStringBool(invert) << ")"); // NOLINT | 1104 << GLES2Util::GetStringBool(invert) << ")"); |
1120 helper_->SampleCoverage(value, invert); | 1105 helper_->SampleCoverage(value, invert); |
1121 CheckGLError(); | 1106 CheckGLError(); |
1122 } | 1107 } |
1123 | 1108 |
1124 void GLES2Implementation::Scissor(GLint x, | 1109 void GLES2Implementation::Scissor(GLint x, |
1125 GLint y, | 1110 GLint y, |
1126 GLsizei width, | 1111 GLsizei width, |
1127 GLsizei height) { | 1112 GLsizei height) { |
1128 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1113 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1129 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glScissor(" << x << ", " << y | 1114 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glScissor(" << x << ", " << y |
1130 << ", " << width << ", " << height << ")"); // NOLINT | 1115 << ", " << width << ", " << height << ")"); |
1131 if (width < 0) { | 1116 if (width < 0) { |
1132 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); | 1117 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); |
1133 return; | 1118 return; |
1134 } | 1119 } |
1135 if (height < 0) { | 1120 if (height < 0) { |
1136 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); | 1121 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); |
1137 return; | 1122 return; |
1138 } | 1123 } |
1139 helper_->Scissor(x, y, width, height); | 1124 helper_->Scissor(x, y, width, height); |
1140 CheckGLError(); | 1125 CheckGLError(); |
1141 } | 1126 } |
1142 | 1127 |
1143 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { | 1128 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { |
1144 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1129 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1145 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" | 1130 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" |
1146 << GLES2Util::GetStringCmpFunction(func) << ", " << ref | 1131 << GLES2Util::GetStringCmpFunction(func) << ", " << ref |
1147 << ", " << mask << ")"); // NOLINT | 1132 << ", " << mask << ")"); |
1148 helper_->StencilFunc(func, ref, mask); | 1133 helper_->StencilFunc(func, ref, mask); |
1149 CheckGLError(); | 1134 CheckGLError(); |
1150 } | 1135 } |
1151 | 1136 |
1152 void GLES2Implementation::StencilFuncSeparate(GLenum face, | 1137 void GLES2Implementation::StencilFuncSeparate(GLenum face, |
1153 GLenum func, | 1138 GLenum func, |
1154 GLint ref, | 1139 GLint ref, |
1155 GLuint mask) { | 1140 GLuint mask) { |
1156 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1141 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1157 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFuncSeparate(" | 1142 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFuncSeparate(" |
1158 << GLES2Util::GetStringFaceType(face) << ", " | 1143 << GLES2Util::GetStringFaceType(face) << ", " |
1159 << GLES2Util::GetStringCmpFunction(func) << ", " << ref | 1144 << GLES2Util::GetStringCmpFunction(func) << ", " << ref |
1160 << ", " << mask << ")"); // NOLINT | 1145 << ", " << mask << ")"); |
1161 helper_->StencilFuncSeparate(face, func, ref, mask); | 1146 helper_->StencilFuncSeparate(face, func, ref, mask); |
1162 CheckGLError(); | 1147 CheckGLError(); |
1163 } | 1148 } |
1164 | 1149 |
1165 void GLES2Implementation::StencilMask(GLuint mask) { | 1150 void GLES2Implementation::StencilMask(GLuint mask) { |
1166 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1151 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1167 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMask(" << mask << ")"); | 1152 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMask(" << mask << ")"); |
1168 helper_->StencilMask(mask); | 1153 helper_->StencilMask(mask); |
1169 CheckGLError(); | 1154 CheckGLError(); |
1170 } | 1155 } |
1171 | 1156 |
1172 void GLES2Implementation::StencilMaskSeparate(GLenum face, GLuint mask) { | 1157 void GLES2Implementation::StencilMaskSeparate(GLenum face, GLuint mask) { |
1173 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1158 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1174 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMaskSeparate(" | 1159 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMaskSeparate(" |
1175 << GLES2Util::GetStringFaceType(face) << ", " << mask | 1160 << GLES2Util::GetStringFaceType(face) << ", " << mask |
1176 << ")"); // NOLINT | 1161 << ")"); |
1177 helper_->StencilMaskSeparate(face, mask); | 1162 helper_->StencilMaskSeparate(face, mask); |
1178 CheckGLError(); | 1163 CheckGLError(); |
1179 } | 1164 } |
1180 | 1165 |
1181 void GLES2Implementation::StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { | 1166 void GLES2Implementation::StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { |
1182 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1167 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1183 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOp(" | 1168 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOp(" |
1184 << GLES2Util::GetStringStencilOp(fail) << ", " | 1169 << GLES2Util::GetStringStencilOp(fail) << ", " |
1185 << GLES2Util::GetStringStencilOp(zfail) << ", " | 1170 << GLES2Util::GetStringStencilOp(zfail) << ", " |
1186 << GLES2Util::GetStringStencilOp(zpass) << ")"); // NOLINT | 1171 << GLES2Util::GetStringStencilOp(zpass) << ")"); |
1187 helper_->StencilOp(fail, zfail, zpass); | 1172 helper_->StencilOp(fail, zfail, zpass); |
1188 CheckGLError(); | 1173 CheckGLError(); |
1189 } | 1174 } |
1190 | 1175 |
1191 void GLES2Implementation::StencilOpSeparate(GLenum face, | 1176 void GLES2Implementation::StencilOpSeparate(GLenum face, |
1192 GLenum fail, | 1177 GLenum fail, |
1193 GLenum zfail, | 1178 GLenum zfail, |
1194 GLenum zpass) { | 1179 GLenum zpass) { |
1195 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1180 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1196 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOpSeparate(" | 1181 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOpSeparate(" |
1197 << GLES2Util::GetStringFaceType(face) << ", " | 1182 << GLES2Util::GetStringFaceType(face) << ", " |
1198 << GLES2Util::GetStringStencilOp(fail) << ", " | 1183 << GLES2Util::GetStringStencilOp(fail) << ", " |
1199 << GLES2Util::GetStringStencilOp(zfail) << ", " | 1184 << GLES2Util::GetStringStencilOp(zfail) << ", " |
1200 << GLES2Util::GetStringStencilOp(zpass) << ")"); // NOLINT | 1185 << GLES2Util::GetStringStencilOp(zpass) << ")"); |
1201 helper_->StencilOpSeparate(face, fail, zfail, zpass); | 1186 helper_->StencilOpSeparate(face, fail, zfail, zpass); |
1202 CheckGLError(); | 1187 CheckGLError(); |
1203 } | 1188 } |
1204 | 1189 |
1205 void GLES2Implementation::TexParameterf(GLenum target, | 1190 void GLES2Implementation::TexParameterf(GLenum target, |
1206 GLenum pname, | 1191 GLenum pname, |
1207 GLfloat param) { | 1192 GLfloat param) { |
1208 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1193 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1209 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterf(" | 1194 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterf(" |
1210 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1195 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
1211 << GLES2Util::GetStringTextureParameter(pname) << ", " | 1196 << GLES2Util::GetStringTextureParameter(pname) << ", " |
1212 << param << ")"); // NOLINT | 1197 << param << ")"); |
1213 helper_->TexParameterf(target, pname, param); | 1198 helper_->TexParameterf(target, pname, param); |
1214 CheckGLError(); | 1199 CheckGLError(); |
1215 } | 1200 } |
1216 | 1201 |
1217 void GLES2Implementation::TexParameterfv(GLenum target, | 1202 void GLES2Implementation::TexParameterfv(GLenum target, |
1218 GLenum pname, | 1203 GLenum pname, |
1219 const GLfloat* params) { | 1204 const GLfloat* params) { |
1220 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1205 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1221 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterfv(" | 1206 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterfv(" |
1222 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1207 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
1223 << GLES2Util::GetStringTextureParameter(pname) << ", " | 1208 << GLES2Util::GetStringTextureParameter(pname) << ", " |
1224 << static_cast<const void*>(params) << ")"); // NOLINT | 1209 << static_cast<const void*>(params) << ")"); |
1225 GPU_CLIENT_LOG("values: " << params[0]); | 1210 GPU_CLIENT_LOG("values: " << params[0]); |
1226 helper_->TexParameterfvImmediate(target, pname, params); | 1211 helper_->TexParameterfvImmediate(target, pname, params); |
1227 CheckGLError(); | 1212 CheckGLError(); |
1228 } | 1213 } |
1229 | 1214 |
1230 void GLES2Implementation::TexParameteri(GLenum target, | 1215 void GLES2Implementation::TexParameteri(GLenum target, |
1231 GLenum pname, | 1216 GLenum pname, |
1232 GLint param) { | 1217 GLint param) { |
1233 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1218 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1234 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteri(" | 1219 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteri(" |
1235 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1220 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
1236 << GLES2Util::GetStringTextureParameter(pname) << ", " | 1221 << GLES2Util::GetStringTextureParameter(pname) << ", " |
1237 << param << ")"); // NOLINT | 1222 << param << ")"); |
1238 helper_->TexParameteri(target, pname, param); | 1223 helper_->TexParameteri(target, pname, param); |
1239 CheckGLError(); | 1224 CheckGLError(); |
1240 } | 1225 } |
1241 | 1226 |
1242 void GLES2Implementation::TexParameteriv(GLenum target, | 1227 void GLES2Implementation::TexParameteriv(GLenum target, |
1243 GLenum pname, | 1228 GLenum pname, |
1244 const GLint* params) { | 1229 const GLint* params) { |
1245 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1230 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1246 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteriv(" | 1231 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteriv(" |
1247 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1232 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
1248 << GLES2Util::GetStringTextureParameter(pname) << ", " | 1233 << GLES2Util::GetStringTextureParameter(pname) << ", " |
1249 << static_cast<const void*>(params) << ")"); // NOLINT | 1234 << static_cast<const void*>(params) << ")"); |
1250 GPU_CLIENT_LOG("values: " << params[0]); | 1235 GPU_CLIENT_LOG("values: " << params[0]); |
1251 helper_->TexParameterivImmediate(target, pname, params); | 1236 helper_->TexParameterivImmediate(target, pname, params); |
1252 CheckGLError(); | 1237 CheckGLError(); |
1253 } | 1238 } |
1254 | 1239 |
1255 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { | 1240 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { |
1256 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1241 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1257 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " | 1242 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " |
1258 << x << ")"); // NOLINT | 1243 << x << ")"); |
1259 helper_->Uniform1f(location, x); | 1244 helper_->Uniform1f(location, x); |
1260 CheckGLError(); | 1245 CheckGLError(); |
1261 } | 1246 } |
1262 | 1247 |
1263 void GLES2Implementation::Uniform1fv(GLint location, | 1248 void GLES2Implementation::Uniform1fv(GLint location, |
1264 GLsizei count, | 1249 GLsizei count, |
1265 const GLfloat* v) { | 1250 const GLfloat* v) { |
1266 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1251 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1267 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1fv(" << location << ", " | 1252 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1fv(" << location << ", " |
1268 << count << ", " << static_cast<const void*>(v) | 1253 << count << ", " << static_cast<const void*>(v) << ")"); |
1269 << ")"); // NOLINT | |
1270 GPU_CLIENT_LOG_CODE_BLOCK({ | 1254 GPU_CLIENT_LOG_CODE_BLOCK({ |
1271 for (GLsizei i = 0; i < count; ++i) { | 1255 for (GLsizei i = 0; i < count; ++i) { |
1272 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); | 1256 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); |
1273 } | 1257 } |
1274 }); | 1258 }); |
1275 if (count < 0) { | 1259 if (count < 0) { |
1276 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0"); | 1260 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0"); |
1277 return; | 1261 return; |
1278 } | 1262 } |
1279 helper_->Uniform1fvImmediate(location, count, v); | 1263 helper_->Uniform1fvImmediate(location, count, v); |
1280 CheckGLError(); | 1264 CheckGLError(); |
1281 } | 1265 } |
1282 | 1266 |
1283 void GLES2Implementation::Uniform1i(GLint location, GLint x) { | 1267 void GLES2Implementation::Uniform1i(GLint location, GLint x) { |
1284 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1268 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1285 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1i(" << location << ", " | 1269 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1i(" << location << ", " |
1286 << x << ")"); // NOLINT | 1270 << x << ")"); |
1287 helper_->Uniform1i(location, x); | 1271 helper_->Uniform1i(location, x); |
1288 CheckGLError(); | 1272 CheckGLError(); |
1289 } | 1273 } |
1290 | 1274 |
1291 void GLES2Implementation::Uniform1iv(GLint location, | 1275 void GLES2Implementation::Uniform1iv(GLint location, |
1292 GLsizei count, | 1276 GLsizei count, |
1293 const GLint* v) { | 1277 const GLint* v) { |
1294 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1278 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1295 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1iv(" << location << ", " | 1279 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1iv(" << location << ", " |
1296 << count << ", " << static_cast<const void*>(v) | 1280 << count << ", " << static_cast<const void*>(v) << ")"); |
1297 << ")"); // NOLINT | |
1298 GPU_CLIENT_LOG_CODE_BLOCK({ | 1281 GPU_CLIENT_LOG_CODE_BLOCK({ |
1299 for (GLsizei i = 0; i < count; ++i) { | 1282 for (GLsizei i = 0; i < count; ++i) { |
1300 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); | 1283 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); |
1301 } | 1284 } |
1302 }); | 1285 }); |
1303 if (count < 0) { | 1286 if (count < 0) { |
1304 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0"); | 1287 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0"); |
1305 return; | 1288 return; |
1306 } | 1289 } |
1307 helper_->Uniform1ivImmediate(location, count, v); | 1290 helper_->Uniform1ivImmediate(location, count, v); |
1308 CheckGLError(); | 1291 CheckGLError(); |
1309 } | 1292 } |
1310 | 1293 |
1311 void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) { | 1294 void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) { |
1312 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1295 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1313 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " | 1296 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " |
1314 << x << ", " << y << ")"); // NOLINT | 1297 << x << ", " << y << ")"); |
1315 helper_->Uniform2f(location, x, y); | 1298 helper_->Uniform2f(location, x, y); |
1316 CheckGLError(); | 1299 CheckGLError(); |
1317 } | 1300 } |
1318 | 1301 |
1319 void GLES2Implementation::Uniform2fv(GLint location, | 1302 void GLES2Implementation::Uniform2fv(GLint location, |
1320 GLsizei count, | 1303 GLsizei count, |
1321 const GLfloat* v) { | 1304 const GLfloat* v) { |
1322 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1305 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1323 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2fv(" << location << ", " | 1306 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2fv(" << location << ", " |
1324 << count << ", " << static_cast<const void*>(v) | 1307 << count << ", " << static_cast<const void*>(v) << ")"); |
1325 << ")"); // NOLINT | |
1326 GPU_CLIENT_LOG_CODE_BLOCK({ | 1308 GPU_CLIENT_LOG_CODE_BLOCK({ |
1327 for (GLsizei i = 0; i < count; ++i) { | 1309 for (GLsizei i = 0; i < count; ++i) { |
1328 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " | 1310 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2]); |
1329 << v[1 + i * 2]); // NOLINT | |
1330 } | 1311 } |
1331 }); | 1312 }); |
1332 if (count < 0) { | 1313 if (count < 0) { |
1333 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0"); | 1314 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0"); |
1334 return; | 1315 return; |
1335 } | 1316 } |
1336 helper_->Uniform2fvImmediate(location, count, v); | 1317 helper_->Uniform2fvImmediate(location, count, v); |
1337 CheckGLError(); | 1318 CheckGLError(); |
1338 } | 1319 } |
1339 | 1320 |
1340 void GLES2Implementation::Uniform2i(GLint location, GLint x, GLint y) { | 1321 void GLES2Implementation::Uniform2i(GLint location, GLint x, GLint y) { |
1341 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1322 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1342 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2i(" << location << ", " | 1323 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2i(" << location << ", " |
1343 << x << ", " << y << ")"); // NOLINT | 1324 << x << ", " << y << ")"); |
1344 helper_->Uniform2i(location, x, y); | 1325 helper_->Uniform2i(location, x, y); |
1345 CheckGLError(); | 1326 CheckGLError(); |
1346 } | 1327 } |
1347 | 1328 |
1348 void GLES2Implementation::Uniform2iv(GLint location, | 1329 void GLES2Implementation::Uniform2iv(GLint location, |
1349 GLsizei count, | 1330 GLsizei count, |
1350 const GLint* v) { | 1331 const GLint* v) { |
1351 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1332 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1352 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2iv(" << location << ", " | 1333 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2iv(" << location << ", " |
1353 << count << ", " << static_cast<const void*>(v) | 1334 << count << ", " << static_cast<const void*>(v) << ")"); |
1354 << ")"); // NOLINT | |
1355 GPU_CLIENT_LOG_CODE_BLOCK({ | 1335 GPU_CLIENT_LOG_CODE_BLOCK({ |
1356 for (GLsizei i = 0; i < count; ++i) { | 1336 for (GLsizei i = 0; i < count; ++i) { |
1357 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " | 1337 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2]); |
1358 << v[1 + i * 2]); // NOLINT | |
1359 } | 1338 } |
1360 }); | 1339 }); |
1361 if (count < 0) { | 1340 if (count < 0) { |
1362 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0"); | 1341 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0"); |
1363 return; | 1342 return; |
1364 } | 1343 } |
1365 helper_->Uniform2ivImmediate(location, count, v); | 1344 helper_->Uniform2ivImmediate(location, count, v); |
1366 CheckGLError(); | 1345 CheckGLError(); |
1367 } | 1346 } |
1368 | 1347 |
1369 void GLES2Implementation::Uniform3f(GLint location, | 1348 void GLES2Implementation::Uniform3f(GLint location, |
1370 GLfloat x, | 1349 GLfloat x, |
1371 GLfloat y, | 1350 GLfloat y, |
1372 GLfloat z) { | 1351 GLfloat z) { |
1373 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1352 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1374 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3f(" << location << ", " | 1353 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3f(" << location << ", " |
1375 << x << ", " << y << ", " << z << ")"); // NOLINT | 1354 << x << ", " << y << ", " << z << ")"); |
1376 helper_->Uniform3f(location, x, y, z); | 1355 helper_->Uniform3f(location, x, y, z); |
1377 CheckGLError(); | 1356 CheckGLError(); |
1378 } | 1357 } |
1379 | 1358 |
1380 void GLES2Implementation::Uniform3fv(GLint location, | 1359 void GLES2Implementation::Uniform3fv(GLint location, |
1381 GLsizei count, | 1360 GLsizei count, |
1382 const GLfloat* v) { | 1361 const GLfloat* v) { |
1383 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1362 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1384 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3fv(" << location << ", " | 1363 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3fv(" << location << ", " |
1385 << count << ", " << static_cast<const void*>(v) | 1364 << count << ", " << static_cast<const void*>(v) << ")"); |
1386 << ")"); // NOLINT | |
1387 GPU_CLIENT_LOG_CODE_BLOCK({ | 1365 GPU_CLIENT_LOG_CODE_BLOCK({ |
1388 for (GLsizei i = 0; i < count; ++i) { | 1366 for (GLsizei i = 0; i < count; ++i) { |
1389 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] | 1367 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] |
1390 << ", " << v[2 + i * 3]); // NOLINT | 1368 << ", " << v[2 + i * 3]); |
1391 } | 1369 } |
1392 }); | 1370 }); |
1393 if (count < 0) { | 1371 if (count < 0) { |
1394 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0"); | 1372 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0"); |
1395 return; | 1373 return; |
1396 } | 1374 } |
1397 helper_->Uniform3fvImmediate(location, count, v); | 1375 helper_->Uniform3fvImmediate(location, count, v); |
1398 CheckGLError(); | 1376 CheckGLError(); |
1399 } | 1377 } |
1400 | 1378 |
1401 void GLES2Implementation::Uniform3i(GLint location, GLint x, GLint y, GLint z) { | 1379 void GLES2Implementation::Uniform3i(GLint location, GLint x, GLint y, GLint z) { |
1402 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1380 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1403 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3i(" << location << ", " | 1381 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3i(" << location << ", " |
1404 << x << ", " << y << ", " << z << ")"); // NOLINT | 1382 << x << ", " << y << ", " << z << ")"); |
1405 helper_->Uniform3i(location, x, y, z); | 1383 helper_->Uniform3i(location, x, y, z); |
1406 CheckGLError(); | 1384 CheckGLError(); |
1407 } | 1385 } |
1408 | 1386 |
1409 void GLES2Implementation::Uniform3iv(GLint location, | 1387 void GLES2Implementation::Uniform3iv(GLint location, |
1410 GLsizei count, | 1388 GLsizei count, |
1411 const GLint* v) { | 1389 const GLint* v) { |
1412 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1390 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1413 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3iv(" << location << ", " | 1391 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3iv(" << location << ", " |
1414 << count << ", " << static_cast<const void*>(v) | 1392 << count << ", " << static_cast<const void*>(v) << ")"); |
1415 << ")"); // NOLINT | |
1416 GPU_CLIENT_LOG_CODE_BLOCK({ | 1393 GPU_CLIENT_LOG_CODE_BLOCK({ |
1417 for (GLsizei i = 0; i < count; ++i) { | 1394 for (GLsizei i = 0; i < count; ++i) { |
1418 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] | 1395 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] |
1419 << ", " << v[2 + i * 3]); // NOLINT | 1396 << ", " << v[2 + i * 3]); |
1420 } | 1397 } |
1421 }); | 1398 }); |
1422 if (count < 0) { | 1399 if (count < 0) { |
1423 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0"); | 1400 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0"); |
1424 return; | 1401 return; |
1425 } | 1402 } |
1426 helper_->Uniform3ivImmediate(location, count, v); | 1403 helper_->Uniform3ivImmediate(location, count, v); |
1427 CheckGLError(); | 1404 CheckGLError(); |
1428 } | 1405 } |
1429 | 1406 |
1430 void GLES2Implementation::Uniform4f(GLint location, | 1407 void GLES2Implementation::Uniform4f(GLint location, |
1431 GLfloat x, | 1408 GLfloat x, |
1432 GLfloat y, | 1409 GLfloat y, |
1433 GLfloat z, | 1410 GLfloat z, |
1434 GLfloat w) { | 1411 GLfloat w) { |
1435 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1412 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1436 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4f(" << location << ", " | 1413 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4f(" << location << ", " |
1437 << x << ", " << y << ", " << z << ", " << w | 1414 << x << ", " << y << ", " << z << ", " << w << ")"); |
1438 << ")"); // NOLINT | |
1439 helper_->Uniform4f(location, x, y, z, w); | 1415 helper_->Uniform4f(location, x, y, z, w); |
1440 CheckGLError(); | 1416 CheckGLError(); |
1441 } | 1417 } |
1442 | 1418 |
1443 void GLES2Implementation::Uniform4fv(GLint location, | 1419 void GLES2Implementation::Uniform4fv(GLint location, |
1444 GLsizei count, | 1420 GLsizei count, |
1445 const GLfloat* v) { | 1421 const GLfloat* v) { |
1446 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1422 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1447 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4fv(" << location << ", " | 1423 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4fv(" << location << ", " |
1448 << count << ", " << static_cast<const void*>(v) | 1424 << count << ", " << static_cast<const void*>(v) << ")"); |
1449 << ")"); // NOLINT | |
1450 GPU_CLIENT_LOG_CODE_BLOCK({ | 1425 GPU_CLIENT_LOG_CODE_BLOCK({ |
1451 for (GLsizei i = 0; i < count; ++i) { | 1426 for (GLsizei i = 0; i < count; ++i) { |
1452 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] | 1427 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] |
1453 << ", " << v[2 + i * 4] << ", " | 1428 << ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); |
1454 << v[3 + i * 4]); // NOLINT | |
1455 } | 1429 } |
1456 }); | 1430 }); |
1457 if (count < 0) { | 1431 if (count < 0) { |
1458 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0"); | 1432 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0"); |
1459 return; | 1433 return; |
1460 } | 1434 } |
1461 helper_->Uniform4fvImmediate(location, count, v); | 1435 helper_->Uniform4fvImmediate(location, count, v); |
1462 CheckGLError(); | 1436 CheckGLError(); |
1463 } | 1437 } |
1464 | 1438 |
1465 void GLES2Implementation::Uniform4i(GLint location, | 1439 void GLES2Implementation::Uniform4i(GLint location, |
1466 GLint x, | 1440 GLint x, |
1467 GLint y, | 1441 GLint y, |
1468 GLint z, | 1442 GLint z, |
1469 GLint w) { | 1443 GLint w) { |
1470 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1444 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1471 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4i(" << location << ", " | 1445 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4i(" << location << ", " |
1472 << x << ", " << y << ", " << z << ", " << w | 1446 << x << ", " << y << ", " << z << ", " << w << ")"); |
1473 << ")"); // NOLINT | |
1474 helper_->Uniform4i(location, x, y, z, w); | 1447 helper_->Uniform4i(location, x, y, z, w); |
1475 CheckGLError(); | 1448 CheckGLError(); |
1476 } | 1449 } |
1477 | 1450 |
1478 void GLES2Implementation::Uniform4iv(GLint location, | 1451 void GLES2Implementation::Uniform4iv(GLint location, |
1479 GLsizei count, | 1452 GLsizei count, |
1480 const GLint* v) { | 1453 const GLint* v) { |
1481 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1454 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1482 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4iv(" << location << ", " | 1455 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4iv(" << location << ", " |
1483 << count << ", " << static_cast<const void*>(v) | 1456 << count << ", " << static_cast<const void*>(v) << ")"); |
1484 << ")"); // NOLINT | |
1485 GPU_CLIENT_LOG_CODE_BLOCK({ | 1457 GPU_CLIENT_LOG_CODE_BLOCK({ |
1486 for (GLsizei i = 0; i < count; ++i) { | 1458 for (GLsizei i = 0; i < count; ++i) { |
1487 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] | 1459 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] |
1488 << ", " << v[2 + i * 4] << ", " | 1460 << ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); |
1489 << v[3 + i * 4]); // NOLINT | |
1490 } | 1461 } |
1491 }); | 1462 }); |
1492 if (count < 0) { | 1463 if (count < 0) { |
1493 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0"); | 1464 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0"); |
1494 return; | 1465 return; |
1495 } | 1466 } |
1496 helper_->Uniform4ivImmediate(location, count, v); | 1467 helper_->Uniform4ivImmediate(location, count, v); |
1497 CheckGLError(); | 1468 CheckGLError(); |
1498 } | 1469 } |
1499 | 1470 |
1500 void GLES2Implementation::UniformMatrix2fv(GLint location, | 1471 void GLES2Implementation::UniformMatrix2fv(GLint location, |
1501 GLsizei count, | 1472 GLsizei count, |
1502 GLboolean transpose, | 1473 GLboolean transpose, |
1503 const GLfloat* value) { | 1474 const GLfloat* value) { |
1504 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1475 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1505 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2fv(" << location | 1476 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2fv(" << location |
1506 << ", " << count << ", " | 1477 << ", " << count << ", " |
1507 << GLES2Util::GetStringBool(transpose) << ", " | 1478 << GLES2Util::GetStringBool(transpose) << ", " |
1508 << static_cast<const void*>(value) << ")"); // NOLINT | 1479 << static_cast<const void*>(value) << ")"); |
1509 GPU_CLIENT_LOG_CODE_BLOCK({ | 1480 GPU_CLIENT_LOG_CODE_BLOCK({ |
1510 for (GLsizei i = 0; i < count; ++i) { | 1481 for (GLsizei i = 0; i < count; ++i) { |
1511 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 4] << ", " | 1482 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 4] << ", " |
1512 << value[1 + i * 4] << ", " << value[2 + i * 4] | 1483 << value[1 + i * 4] << ", " << value[2 + i * 4] |
1513 << ", " << value[3 + i * 4]); // NOLINT | 1484 << ", " << value[3 + i * 4]); |
1514 } | 1485 } |
1515 }); | 1486 }); |
1516 if (count < 0) { | 1487 if (count < 0) { |
1517 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0"); | 1488 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0"); |
1518 return; | 1489 return; |
1519 } | 1490 } |
1520 helper_->UniformMatrix2fvImmediate(location, count, transpose, value); | 1491 helper_->UniformMatrix2fvImmediate(location, count, transpose, value); |
1521 CheckGLError(); | 1492 CheckGLError(); |
1522 } | 1493 } |
1523 | 1494 |
1524 void GLES2Implementation::UniformMatrix3fv(GLint location, | 1495 void GLES2Implementation::UniformMatrix3fv(GLint location, |
1525 GLsizei count, | 1496 GLsizei count, |
1526 GLboolean transpose, | 1497 GLboolean transpose, |
1527 const GLfloat* value) { | 1498 const GLfloat* value) { |
1528 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1499 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1529 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3fv(" << location | 1500 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3fv(" << location |
1530 << ", " << count << ", " | 1501 << ", " << count << ", " |
1531 << GLES2Util::GetStringBool(transpose) << ", " | 1502 << GLES2Util::GetStringBool(transpose) << ", " |
1532 << static_cast<const void*>(value) << ")"); // NOLINT | 1503 << static_cast<const void*>(value) << ")"); |
1533 GPU_CLIENT_LOG_CODE_BLOCK({ | 1504 GPU_CLIENT_LOG_CODE_BLOCK({ |
1534 for (GLsizei i = 0; i < count; ++i) { | 1505 for (GLsizei i = 0; i < count; ++i) { |
1535 GPU_CLIENT_LOG( | 1506 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 9] << ", " |
1536 " " << i << ": " << value[0 + i * 9] << ", " << value[1 + i * 9] | 1507 << value[1 + i * 9] << ", " << value[2 + i * 9] |
1537 << ", " << value[2 + i * 9] << ", " << value[3 + i * 9] << ", " | 1508 << ", " << value[3 + i * 9] << ", " |
1538 << value[4 + i * 9] << ", " << value[5 + i * 9] << ", " | 1509 << value[4 + i * 9] << ", " << value[5 + i * 9] |
1539 << value[6 + i * 9] << ", " << value[7 + i * 9] << ", " | 1510 << ", " << value[6 + i * 9] << ", " |
1540 << value[8 + i * 9]); // NOLINT | 1511 << value[7 + i * 9] << ", " << value[8 + i * 9]); |
1541 } | 1512 } |
1542 }); | 1513 }); |
1543 if (count < 0) { | 1514 if (count < 0) { |
1544 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0"); | 1515 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0"); |
1545 return; | 1516 return; |
1546 } | 1517 } |
1547 helper_->UniformMatrix3fvImmediate(location, count, transpose, value); | 1518 helper_->UniformMatrix3fvImmediate(location, count, transpose, value); |
1548 CheckGLError(); | 1519 CheckGLError(); |
1549 } | 1520 } |
1550 | 1521 |
1551 void GLES2Implementation::UniformMatrix4fv(GLint location, | 1522 void GLES2Implementation::UniformMatrix4fv(GLint location, |
1552 GLsizei count, | 1523 GLsizei count, |
1553 GLboolean transpose, | 1524 GLboolean transpose, |
1554 const GLfloat* value) { | 1525 const GLfloat* value) { |
1555 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1526 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1556 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4fv(" << location | 1527 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4fv(" << location |
1557 << ", " << count << ", " | 1528 << ", " << count << ", " |
1558 << GLES2Util::GetStringBool(transpose) << ", " | 1529 << GLES2Util::GetStringBool(transpose) << ", " |
1559 << static_cast<const void*>(value) << ")"); // NOLINT | 1530 << static_cast<const void*>(value) << ")"); |
1560 GPU_CLIENT_LOG_CODE_BLOCK({ | 1531 GPU_CLIENT_LOG_CODE_BLOCK({ |
1561 for (GLsizei i = 0; i < count; ++i) { | 1532 for (GLsizei i = 0; i < count; ++i) { |
1562 GPU_CLIENT_LOG( | 1533 GPU_CLIENT_LOG( |
1563 " " << i << ": " << value[0 + i * 16] << ", " << value[1 + i * 16] | 1534 " " << i << ": " << value[0 + i * 16] << ", " << value[1 + i * 16] |
1564 << ", " << value[2 + i * 16] << ", " << value[3 + i * 16] << ", " | 1535 << ", " << value[2 + i * 16] << ", " << value[3 + i * 16] << ", " |
1565 << value[4 + i * 16] << ", " << value[5 + i * 16] << ", " | 1536 << value[4 + i * 16] << ", " << value[5 + i * 16] << ", " |
1566 << value[6 + i * 16] << ", " << value[7 + i * 16] << ", " | 1537 << value[6 + i * 16] << ", " << value[7 + i * 16] << ", " |
1567 << value[8 + i * 16] << ", " << value[9 + i * 16] << ", " | 1538 << value[8 + i * 16] << ", " << value[9 + i * 16] << ", " |
1568 << value[10 + i * 16] << ", " << value[11 + i * 16] << ", " | 1539 << value[10 + i * 16] << ", " << value[11 + i * 16] << ", " |
1569 << value[12 + i * 16] << ", " << value[13 + i * 16] << ", " | 1540 << value[12 + i * 16] << ", " << value[13 + i * 16] << ", " |
1570 << value[14 + i * 16] << ", " << value[15 + i * 16]); // NOLINT | 1541 << value[14 + i * 16] << ", " << value[15 + i * 16]); |
1571 } | 1542 } |
1572 }); | 1543 }); |
1573 if (count < 0) { | 1544 if (count < 0) { |
1574 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0"); | 1545 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0"); |
1575 return; | 1546 return; |
1576 } | 1547 } |
1577 helper_->UniformMatrix4fvImmediate(location, count, transpose, value); | 1548 helper_->UniformMatrix4fvImmediate(location, count, transpose, value); |
1578 CheckGLError(); | 1549 CheckGLError(); |
1579 } | 1550 } |
1580 | 1551 |
1581 void GLES2Implementation::ValidateProgram(GLuint program) { | 1552 void GLES2Implementation::ValidateProgram(GLuint program) { |
1582 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1553 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1583 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glValidateProgram(" << program | 1554 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glValidateProgram(" << program |
1584 << ")"); // NOLINT | 1555 << ")"); |
1585 helper_->ValidateProgram(program); | 1556 helper_->ValidateProgram(program); |
1586 CheckGLError(); | 1557 CheckGLError(); |
1587 } | 1558 } |
1588 | 1559 |
1589 void GLES2Implementation::VertexAttrib1f(GLuint indx, GLfloat x) { | 1560 void GLES2Implementation::VertexAttrib1f(GLuint indx, GLfloat x) { |
1590 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1561 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1591 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1f(" << indx << ", " | 1562 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1f(" << indx << ", " |
1592 << x << ")"); // NOLINT | 1563 << x << ")"); |
1593 helper_->VertexAttrib1f(indx, x); | 1564 helper_->VertexAttrib1f(indx, x); |
1594 CheckGLError(); | 1565 CheckGLError(); |
1595 } | 1566 } |
1596 | 1567 |
1597 void GLES2Implementation::VertexAttrib1fv(GLuint indx, const GLfloat* values) { | 1568 void GLES2Implementation::VertexAttrib1fv(GLuint indx, const GLfloat* values) { |
1598 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1569 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1599 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1fv(" << indx << ", " | 1570 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1fv(" << indx << ", " |
1600 << static_cast<const void*>(values) << ")"); // NOLINT | 1571 << static_cast<const void*>(values) << ")"); |
1601 GPU_CLIENT_LOG("values: " << values[0]); | 1572 GPU_CLIENT_LOG("values: " << values[0]); |
1602 helper_->VertexAttrib1fvImmediate(indx, values); | 1573 helper_->VertexAttrib1fvImmediate(indx, values); |
1603 CheckGLError(); | 1574 CheckGLError(); |
1604 } | 1575 } |
1605 | 1576 |
1606 void GLES2Implementation::VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { | 1577 void GLES2Implementation::VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { |
1607 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1578 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1608 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2f(" << indx << ", " | 1579 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2f(" << indx << ", " |
1609 << x << ", " << y << ")"); // NOLINT | 1580 << x << ", " << y << ")"); |
1610 helper_->VertexAttrib2f(indx, x, y); | 1581 helper_->VertexAttrib2f(indx, x, y); |
1611 CheckGLError(); | 1582 CheckGLError(); |
1612 } | 1583 } |
1613 | 1584 |
1614 void GLES2Implementation::VertexAttrib2fv(GLuint indx, const GLfloat* values) { | 1585 void GLES2Implementation::VertexAttrib2fv(GLuint indx, const GLfloat* values) { |
1615 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1586 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1616 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2fv(" << indx << ", " | 1587 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2fv(" << indx << ", " |
1617 << static_cast<const void*>(values) << ")"); // NOLINT | 1588 << static_cast<const void*>(values) << ")"); |
1618 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1]); | 1589 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1]); |
1619 helper_->VertexAttrib2fvImmediate(indx, values); | 1590 helper_->VertexAttrib2fvImmediate(indx, values); |
1620 CheckGLError(); | 1591 CheckGLError(); |
1621 } | 1592 } |
1622 | 1593 |
1623 void GLES2Implementation::VertexAttrib3f(GLuint indx, | 1594 void GLES2Implementation::VertexAttrib3f(GLuint indx, |
1624 GLfloat x, | 1595 GLfloat x, |
1625 GLfloat y, | 1596 GLfloat y, |
1626 GLfloat z) { | 1597 GLfloat z) { |
1627 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1598 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1628 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3f(" << indx << ", " | 1599 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3f(" << indx << ", " |
1629 << x << ", " << y << ", " << z << ")"); // NOLINT | 1600 << x << ", " << y << ", " << z << ")"); |
1630 helper_->VertexAttrib3f(indx, x, y, z); | 1601 helper_->VertexAttrib3f(indx, x, y, z); |
1631 CheckGLError(); | 1602 CheckGLError(); |
1632 } | 1603 } |
1633 | 1604 |
1634 void GLES2Implementation::VertexAttrib3fv(GLuint indx, const GLfloat* values) { | 1605 void GLES2Implementation::VertexAttrib3fv(GLuint indx, const GLfloat* values) { |
1635 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1606 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1636 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3fv(" << indx << ", " | 1607 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3fv(" << indx << ", " |
1637 << static_cast<const void*>(values) << ")"); // NOLINT | 1608 << static_cast<const void*>(values) << ")"); |
1638 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " | 1609 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " |
1639 << values[2]); // NOLINT | 1610 << values[2]); |
1640 helper_->VertexAttrib3fvImmediate(indx, values); | 1611 helper_->VertexAttrib3fvImmediate(indx, values); |
1641 CheckGLError(); | 1612 CheckGLError(); |
1642 } | 1613 } |
1643 | 1614 |
1644 void GLES2Implementation::VertexAttrib4f(GLuint indx, | 1615 void GLES2Implementation::VertexAttrib4f(GLuint indx, |
1645 GLfloat x, | 1616 GLfloat x, |
1646 GLfloat y, | 1617 GLfloat y, |
1647 GLfloat z, | 1618 GLfloat z, |
1648 GLfloat w) { | 1619 GLfloat w) { |
1649 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1620 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1650 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4f(" << indx << ", " | 1621 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4f(" << indx << ", " |
1651 << x << ", " << y << ", " << z << ", " << w | 1622 << x << ", " << y << ", " << z << ", " << w << ")"); |
1652 << ")"); // NOLINT | |
1653 helper_->VertexAttrib4f(indx, x, y, z, w); | 1623 helper_->VertexAttrib4f(indx, x, y, z, w); |
1654 CheckGLError(); | 1624 CheckGLError(); |
1655 } | 1625 } |
1656 | 1626 |
1657 void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) { | 1627 void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) { |
1658 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1628 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1659 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4fv(" << indx << ", " | 1629 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4fv(" << indx << ", " |
1660 << static_cast<const void*>(values) << ")"); // NOLINT | 1630 << static_cast<const void*>(values) << ")"); |
1661 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " | 1631 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " |
1662 << values[2] << ", " << values[3]); // NOLINT | 1632 << values[2] << ", " << values[3]); |
1663 helper_->VertexAttrib4fvImmediate(indx, values); | 1633 helper_->VertexAttrib4fvImmediate(indx, values); |
1664 CheckGLError(); | 1634 CheckGLError(); |
1665 } | 1635 } |
1666 | 1636 |
1667 void GLES2Implementation::Viewport(GLint x, | 1637 void GLES2Implementation::Viewport(GLint x, |
1668 GLint y, | 1638 GLint y, |
1669 GLsizei width, | 1639 GLsizei width, |
1670 GLsizei height) { | 1640 GLsizei height) { |
1671 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1641 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1672 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glViewport(" << x << ", " << y | 1642 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glViewport(" << x << ", " << y |
1673 << ", " << width << ", " << height << ")"); // NOLINT | 1643 << ", " << width << ", " << height << ")"); |
1674 if (width < 0) { | 1644 if (width < 0) { |
1675 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); | 1645 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); |
1676 return; | 1646 return; |
1677 } | 1647 } |
1678 if (height < 0) { | 1648 if (height < 0) { |
1679 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); | 1649 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); |
1680 return; | 1650 return; |
1681 } | 1651 } |
1682 helper_->Viewport(x, y, width, height); | 1652 helper_->Viewport(x, y, width, height); |
1683 CheckGLError(); | 1653 CheckGLError(); |
1684 } | 1654 } |
1685 | 1655 |
1686 void GLES2Implementation::BlitFramebufferCHROMIUM(GLint srcX0, | 1656 void GLES2Implementation::BlitFramebufferCHROMIUM(GLint srcX0, |
1687 GLint srcY0, | 1657 GLint srcY0, |
1688 GLint srcX1, | 1658 GLint srcX1, |
1689 GLint srcY1, | 1659 GLint srcY1, |
1690 GLint dstX0, | 1660 GLint dstX0, |
1691 GLint dstY0, | 1661 GLint dstY0, |
1692 GLint dstX1, | 1662 GLint dstX1, |
1693 GLint dstY1, | 1663 GLint dstY1, |
1694 GLbitfield mask, | 1664 GLbitfield mask, |
1695 GLenum filter) { | 1665 GLenum filter) { |
1696 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1666 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1697 GPU_CLIENT_LOG( | 1667 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlitFramebufferCHROMIUM(" |
1698 "[" << GetLogPrefix() << "] glBlitFramebufferCHROMIUM(" << srcX0 << ", " | 1668 << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " << srcY1 |
1699 << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " | 1669 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", " |
1700 << dstY0 << ", " << dstX1 << ", " << dstY1 << ", " << mask << ", " | 1670 << dstY1 << ", " << mask << ", " |
1701 << GLES2Util::GetStringBlitFilter(filter) << ")"); // NOLINT | 1671 << GLES2Util::GetStringBlitFilter(filter) << ")"); |
1702 helper_->BlitFramebufferCHROMIUM( | 1672 helper_->BlitFramebufferCHROMIUM( |
1703 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); | 1673 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
1704 CheckGLError(); | 1674 CheckGLError(); |
1705 } | 1675 } |
1706 | 1676 |
1707 void GLES2Implementation::RenderbufferStorageMultisampleCHROMIUM( | 1677 void GLES2Implementation::RenderbufferStorageMultisampleCHROMIUM( |
1708 GLenum target, | 1678 GLenum target, |
1709 GLsizei samples, | 1679 GLsizei samples, |
1710 GLenum internalformat, | 1680 GLenum internalformat, |
1711 GLsizei width, | 1681 GLsizei width, |
1712 GLsizei height) { | 1682 GLsizei height) { |
1713 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1683 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1714 GPU_CLIENT_LOG( | 1684 GPU_CLIENT_LOG( |
1715 "[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleCHROMIUM(" | 1685 "[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleCHROMIUM(" |
1716 << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples | 1686 << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples |
1717 << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) | 1687 << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) |
1718 << ", " << width << ", " << height << ")"); // NOLINT | 1688 << ", " << width << ", " << height << ")"); |
1719 if (samples < 0) { | 1689 if (samples < 0) { |
1720 SetGLError(GL_INVALID_VALUE, | 1690 SetGLError(GL_INVALID_VALUE, |
1721 "glRenderbufferStorageMultisampleCHROMIUM", | 1691 "glRenderbufferStorageMultisampleCHROMIUM", |
1722 "samples < 0"); // NOLINT | 1692 "samples < 0"); |
1723 return; | 1693 return; |
1724 } | 1694 } |
1725 if (width < 0) { | 1695 if (width < 0) { |
1726 SetGLError(GL_INVALID_VALUE, | 1696 SetGLError(GL_INVALID_VALUE, |
1727 "glRenderbufferStorageMultisampleCHROMIUM", | 1697 "glRenderbufferStorageMultisampleCHROMIUM", |
1728 "width < 0"); // NOLINT | 1698 "width < 0"); |
1729 return; | 1699 return; |
1730 } | 1700 } |
1731 if (height < 0) { | 1701 if (height < 0) { |
1732 SetGLError(GL_INVALID_VALUE, | 1702 SetGLError(GL_INVALID_VALUE, |
1733 "glRenderbufferStorageMultisampleCHROMIUM", | 1703 "glRenderbufferStorageMultisampleCHROMIUM", |
1734 "height < 0"); // NOLINT | 1704 "height < 0"); |
1735 return; | 1705 return; |
1736 } | 1706 } |
1737 helper_->RenderbufferStorageMultisampleCHROMIUM( | 1707 helper_->RenderbufferStorageMultisampleCHROMIUM( |
1738 target, samples, internalformat, width, height); | 1708 target, samples, internalformat, width, height); |
1739 CheckGLError(); | 1709 CheckGLError(); |
1740 } | 1710 } |
1741 | 1711 |
1742 void GLES2Implementation::RenderbufferStorageMultisampleEXT( | 1712 void GLES2Implementation::RenderbufferStorageMultisampleEXT( |
1743 GLenum target, | 1713 GLenum target, |
1744 GLsizei samples, | 1714 GLsizei samples, |
1745 GLenum internalformat, | 1715 GLenum internalformat, |
1746 GLsizei width, | 1716 GLsizei width, |
1747 GLsizei height) { | 1717 GLsizei height) { |
1748 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1718 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1749 GPU_CLIENT_LOG( | 1719 GPU_CLIENT_LOG( |
1750 "[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleEXT(" | 1720 "[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleEXT(" |
1751 << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples | 1721 << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples |
1752 << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) | 1722 << ", " << GLES2Util::GetStringRenderBufferFormat(internalformat) |
1753 << ", " << width << ", " << height << ")"); // NOLINT | 1723 << ", " << width << ", " << height << ")"); |
1754 if (samples < 0) { | 1724 if (samples < 0) { |
1755 SetGLError( | 1725 SetGLError( |
1756 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); | 1726 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); |
1757 return; | 1727 return; |
1758 } | 1728 } |
1759 if (width < 0) { | 1729 if (width < 0) { |
1760 SetGLError( | 1730 SetGLError( |
1761 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); | 1731 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); |
1762 return; | 1732 return; |
1763 } | 1733 } |
1764 if (height < 0) { | 1734 if (height < 0) { |
1765 SetGLError( | 1735 SetGLError( |
1766 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); | 1736 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); |
1767 return; | 1737 return; |
1768 } | 1738 } |
1769 helper_->RenderbufferStorageMultisampleEXT( | 1739 helper_->RenderbufferStorageMultisampleEXT( |
1770 target, samples, internalformat, width, height); | 1740 target, samples, internalformat, width, height); |
1771 CheckGLError(); | 1741 CheckGLError(); |
1772 } | 1742 } |
1773 | 1743 |
1774 void GLES2Implementation::FramebufferTexture2DMultisampleEXT(GLenum target, | 1744 void GLES2Implementation::FramebufferTexture2DMultisampleEXT(GLenum target, |
1775 GLenum attachment, | 1745 GLenum attachment, |
1776 GLenum textarget, | 1746 GLenum textarget, |
1777 GLuint texture, | 1747 GLuint texture, |
1778 GLint level, | 1748 GLint level, |
1779 GLsizei samples) { | 1749 GLsizei samples) { |
1780 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1750 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1781 GPU_CLIENT_LOG( | 1751 GPU_CLIENT_LOG("[" << GetLogPrefix() |
1782 "[" << GetLogPrefix() << "] glFramebufferTexture2DMultisampleEXT(" | 1752 << "] glFramebufferTexture2DMultisampleEXT(" |
1783 << GLES2Util::GetStringFrameBufferTarget(target) << ", " | 1753 << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
1784 << GLES2Util::GetStringAttachment(attachment) << ", " | 1754 << GLES2Util::GetStringAttachment(attachment) << ", " |
1785 << GLES2Util::GetStringTextureTarget(textarget) << ", " << texture | 1755 << GLES2Util::GetStringTextureTarget(textarget) << ", " |
1786 << ", " << level << ", " << samples << ")"); // NOLINT | 1756 << texture << ", " << level << ", " << samples << ")"); |
1787 if (samples < 0) { | 1757 if (samples < 0) { |
1788 SetGLError(GL_INVALID_VALUE, | 1758 SetGLError(GL_INVALID_VALUE, |
1789 "glFramebufferTexture2DMultisampleEXT", | 1759 "glFramebufferTexture2DMultisampleEXT", |
1790 "samples < 0"); // NOLINT | 1760 "samples < 0"); |
1791 return; | 1761 return; |
1792 } | 1762 } |
1793 helper_->FramebufferTexture2DMultisampleEXT( | 1763 helper_->FramebufferTexture2DMultisampleEXT( |
1794 target, attachment, textarget, texture, level, samples); | 1764 target, attachment, textarget, texture, level, samples); |
1795 CheckGLError(); | 1765 CheckGLError(); |
1796 } | 1766 } |
1797 | 1767 |
1798 void GLES2Implementation::TexStorage2DEXT(GLenum target, | 1768 void GLES2Implementation::TexStorage2DEXT(GLenum target, |
1799 GLsizei levels, | 1769 GLsizei levels, |
1800 GLenum internalFormat, | 1770 GLenum internalFormat, |
1801 GLsizei width, | 1771 GLsizei width, |
1802 GLsizei height) { | 1772 GLsizei height) { |
1803 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1773 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1804 GPU_CLIENT_LOG( | 1774 GPU_CLIENT_LOG( |
1805 "[" << GetLogPrefix() << "] glTexStorage2DEXT(" | 1775 "[" << GetLogPrefix() << "] glTexStorage2DEXT(" |
1806 << GLES2Util::GetStringTextureTarget(target) << ", " << levels << ", " | 1776 << GLES2Util::GetStringTextureTarget(target) << ", " << levels << ", " |
1807 << GLES2Util::GetStringTextureInternalFormatStorage(internalFormat) | 1777 << GLES2Util::GetStringTextureInternalFormatStorage(internalFormat) |
1808 << ", " << width << ", " << height << ")"); // NOLINT | 1778 << ", " << width << ", " << height << ")"); |
1809 if (levels < 0) { | 1779 if (levels < 0) { |
1810 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); | 1780 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); |
1811 return; | 1781 return; |
1812 } | 1782 } |
1813 if (width < 0) { | 1783 if (width < 0) { |
1814 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); | 1784 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); |
1815 return; | 1785 return; |
1816 } | 1786 } |
1817 if (height < 0) { | 1787 if (height < 0) { |
1818 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); | 1788 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); |
1819 return; | 1789 return; |
1820 } | 1790 } |
1821 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height); | 1791 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height); |
1822 CheckGLError(); | 1792 CheckGLError(); |
1823 } | 1793 } |
1824 | 1794 |
1825 void GLES2Implementation::GenQueriesEXT(GLsizei n, GLuint* queries) { | 1795 void GLES2Implementation::GenQueriesEXT(GLsizei n, GLuint* queries) { |
1826 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenQueriesEXT(" << n << ", " | 1796 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenQueriesEXT(" << n << ", " |
1827 << static_cast<const void*>(queries) << ")"); // NOLINT | 1797 << static_cast<const void*>(queries) << ")"); |
1828 if (n < 0) { | 1798 if (n < 0) { |
1829 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0"); | 1799 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0"); |
1830 return; | 1800 return; |
1831 } | 1801 } |
1832 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1802 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1833 GetIdHandler(id_namespaces::kQueries)->MakeIds(this, 0, n, queries); | 1803 GetIdHandler(id_namespaces::kQueries)->MakeIds(this, 0, n, queries); |
1834 GenQueriesEXTHelper(n, queries); | 1804 GenQueriesEXTHelper(n, queries); |
1835 helper_->GenQueriesEXTImmediate(n, queries); | 1805 helper_->GenQueriesEXTImmediate(n, queries); |
1836 if (share_group_->bind_generates_resource()) | 1806 if (share_group_->bind_generates_resource()) |
1837 helper_->CommandBufferHelper::Flush(); | 1807 helper_->CommandBufferHelper::Flush(); |
1838 GPU_CLIENT_LOG_CODE_BLOCK({ | 1808 GPU_CLIENT_LOG_CODE_BLOCK({ |
1839 for (GLsizei i = 0; i < n; ++i) { | 1809 for (GLsizei i = 0; i < n; ++i) { |
1840 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); | 1810 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); |
1841 } | 1811 } |
1842 }); | 1812 }); |
1843 CheckGLError(); | 1813 CheckGLError(); |
1844 } | 1814 } |
1845 | 1815 |
1846 void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) { | 1816 void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) { |
1847 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1817 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1848 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteQueriesEXT(" << n << ", " | 1818 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteQueriesEXT(" << n << ", " |
1849 << static_cast<const void*>(queries) << ")"); // NOLINT | 1819 << static_cast<const void*>(queries) << ")"); |
1850 GPU_CLIENT_LOG_CODE_BLOCK({ | 1820 GPU_CLIENT_LOG_CODE_BLOCK({ |
1851 for (GLsizei i = 0; i < n; ++i) { | 1821 for (GLsizei i = 0; i < n; ++i) { |
1852 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); | 1822 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); |
1853 } | 1823 } |
1854 }); | 1824 }); |
1855 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 1825 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
1856 for (GLsizei i = 0; i < n; ++i) { | 1826 for (GLsizei i = 0; i < n; ++i) { |
1857 DCHECK(queries[i] != 0); | 1827 DCHECK(queries[i] != 0); |
1858 } | 1828 } |
1859 }); | 1829 }); |
1860 if (n < 0) { | 1830 if (n < 0) { |
1861 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0"); | 1831 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0"); |
1862 return; | 1832 return; |
1863 } | 1833 } |
1864 DeleteQueriesEXTHelper(n, queries); | 1834 DeleteQueriesEXTHelper(n, queries); |
1865 CheckGLError(); | 1835 CheckGLError(); |
1866 } | 1836 } |
1867 | 1837 |
1868 void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) { | 1838 void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) { |
1869 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", " | 1839 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", " |
1870 << static_cast<const void*>(arrays) << ")"); // NOLINT | 1840 << static_cast<const void*>(arrays) << ")"); |
1871 if (n < 0) { | 1841 if (n < 0) { |
1872 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0"); | 1842 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0"); |
1873 return; | 1843 return; |
1874 } | 1844 } |
1875 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1845 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1876 GetIdHandler(id_namespaces::kVertexArrays)->MakeIds(this, 0, n, arrays); | 1846 GetIdHandler(id_namespaces::kVertexArrays)->MakeIds(this, 0, n, arrays); |
1877 GenVertexArraysOESHelper(n, arrays); | 1847 GenVertexArraysOESHelper(n, arrays); |
1878 helper_->GenVertexArraysOESImmediate(n, arrays); | 1848 helper_->GenVertexArraysOESImmediate(n, arrays); |
1879 if (share_group_->bind_generates_resource()) | 1849 if (share_group_->bind_generates_resource()) |
1880 helper_->CommandBufferHelper::Flush(); | 1850 helper_->CommandBufferHelper::Flush(); |
1881 GPU_CLIENT_LOG_CODE_BLOCK({ | 1851 GPU_CLIENT_LOG_CODE_BLOCK({ |
1882 for (GLsizei i = 0; i < n; ++i) { | 1852 for (GLsizei i = 0; i < n; ++i) { |
1883 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); | 1853 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); |
1884 } | 1854 } |
1885 }); | 1855 }); |
1886 CheckGLError(); | 1856 CheckGLError(); |
1887 } | 1857 } |
1888 | 1858 |
1889 void GLES2Implementation::DeleteVertexArraysOES(GLsizei n, | 1859 void GLES2Implementation::DeleteVertexArraysOES(GLsizei n, |
1890 const GLuint* arrays) { | 1860 const GLuint* arrays) { |
1891 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1861 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1892 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteVertexArraysOES(" << n | 1862 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteVertexArraysOES(" << n |
1893 << ", " << static_cast<const void*>(arrays) | 1863 << ", " << static_cast<const void*>(arrays) << ")"); |
1894 << ")"); // NOLINT | |
1895 GPU_CLIENT_LOG_CODE_BLOCK({ | 1864 GPU_CLIENT_LOG_CODE_BLOCK({ |
1896 for (GLsizei i = 0; i < n; ++i) { | 1865 for (GLsizei i = 0; i < n; ++i) { |
1897 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); | 1866 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); |
1898 } | 1867 } |
1899 }); | 1868 }); |
1900 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 1869 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
1901 for (GLsizei i = 0; i < n; ++i) { | 1870 for (GLsizei i = 0; i < n; ++i) { |
1902 DCHECK(arrays[i] != 0); | 1871 DCHECK(arrays[i] != 0); |
1903 } | 1872 } |
1904 }); | 1873 }); |
1905 if (n < 0) { | 1874 if (n < 0) { |
1906 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0"); | 1875 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0"); |
1907 return; | 1876 return; |
1908 } | 1877 } |
1909 DeleteVertexArraysOESHelper(n, arrays); | 1878 DeleteVertexArraysOESHelper(n, arrays); |
1910 CheckGLError(); | 1879 CheckGLError(); |
1911 } | 1880 } |
1912 | 1881 |
1913 GLboolean GLES2Implementation::IsVertexArrayOES(GLuint array) { | 1882 GLboolean GLES2Implementation::IsVertexArrayOES(GLuint array) { |
1914 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1883 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1915 TRACE_EVENT0("gpu", "GLES2Implementation::IsVertexArrayOES"); | 1884 TRACE_EVENT0("gpu", "GLES2Implementation::IsVertexArrayOES"); |
1916 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsVertexArrayOES(" << array | 1885 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsVertexArrayOES(" << array |
1917 << ")"); // NOLINT | 1886 << ")"); |
1918 typedef cmds::IsVertexArrayOES::Result Result; | 1887 typedef cmds::IsVertexArrayOES::Result Result; |
1919 Result* result = GetResultAs<Result*>(); | 1888 Result* result = GetResultAs<Result*>(); |
1920 if (!result) { | 1889 if (!result) { |
1921 return GL_FALSE; | 1890 return GL_FALSE; |
1922 } | 1891 } |
1923 *result = 0; | 1892 *result = 0; |
1924 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset()); | 1893 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset()); |
1925 WaitForCmd(); | 1894 WaitForCmd(); |
1926 GLboolean result_value = *result; | 1895 GLboolean result_value = *result; |
1927 GPU_CLIENT_LOG("returned " << result_value); | 1896 GPU_CLIENT_LOG("returned " << result_value); |
1928 CheckGLError(); | 1897 CheckGLError(); |
1929 return result_value; | 1898 return result_value; |
1930 } | 1899 } |
1931 | 1900 |
1932 void GLES2Implementation::BindVertexArrayOES(GLuint array) { | 1901 void GLES2Implementation::BindVertexArrayOES(GLuint array) { |
1933 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1902 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1934 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindVertexArrayOES(" << array | 1903 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindVertexArrayOES(" << array |
1935 << ")"); // NOLINT | 1904 << ")"); |
1936 if (IsVertexArrayReservedId(array)) { | 1905 if (IsVertexArrayReservedId(array)) { |
1937 SetGLError(GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id"); | 1906 SetGLError(GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id"); |
1938 return; | 1907 return; |
1939 } | 1908 } |
1940 if (BindVertexArrayHelper(array)) { | 1909 if (BindVertexArrayHelper(array)) { |
1941 helper_->BindVertexArrayOES(array); | 1910 helper_->BindVertexArrayOES(array); |
1942 } | 1911 } |
1943 CheckGLError(); | 1912 CheckGLError(); |
1944 } | 1913 } |
1945 | 1914 |
(...skipping 26 matching lines...) Expand all Loading... |
1972 } | 1941 } |
1973 void GLES2Implementation::TexImageIOSurface2DCHROMIUM(GLenum target, | 1942 void GLES2Implementation::TexImageIOSurface2DCHROMIUM(GLenum target, |
1974 GLsizei width, | 1943 GLsizei width, |
1975 GLsizei height, | 1944 GLsizei height, |
1976 GLuint ioSurfaceId, | 1945 GLuint ioSurfaceId, |
1977 GLuint plane) { | 1946 GLuint plane) { |
1978 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1947 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1979 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexImageIOSurface2DCHROMIUM(" | 1948 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexImageIOSurface2DCHROMIUM(" |
1980 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1949 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
1981 << width << ", " << height << ", " << ioSurfaceId << ", " | 1950 << width << ", " << height << ", " << ioSurfaceId << ", " |
1982 << plane << ")"); // NOLINT | 1951 << plane << ")"); |
1983 if (width < 0) { | 1952 if (width < 0) { |
1984 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); | 1953 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); |
1985 return; | 1954 return; |
1986 } | 1955 } |
1987 if (height < 0) { | 1956 if (height < 0) { |
1988 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); | 1957 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); |
1989 return; | 1958 return; |
1990 } | 1959 } |
1991 helper_->TexImageIOSurface2DCHROMIUM( | 1960 helper_->TexImageIOSurface2DCHROMIUM( |
1992 target, width, height, ioSurfaceId, plane); | 1961 target, width, height, ioSurfaceId, plane); |
1993 CheckGLError(); | 1962 CheckGLError(); |
1994 } | 1963 } |
1995 | 1964 |
1996 void GLES2Implementation::CopyTextureCHROMIUM(GLenum target, | 1965 void GLES2Implementation::CopyTextureCHROMIUM(GLenum target, |
1997 GLenum source_id, | 1966 GLenum source_id, |
1998 GLenum dest_id, | 1967 GLenum dest_id, |
1999 GLint level, | 1968 GLint level, |
2000 GLint internalformat, | 1969 GLint internalformat, |
2001 GLenum dest_type) { | 1970 GLenum dest_type) { |
2002 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1971 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2003 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTextureCHROMIUM(" | 1972 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTextureCHROMIUM(" |
2004 << GLES2Util::GetStringEnum(target) << ", " | 1973 << GLES2Util::GetStringEnum(target) << ", " |
2005 << GLES2Util::GetStringEnum(source_id) << ", " | 1974 << GLES2Util::GetStringEnum(source_id) << ", " |
2006 << GLES2Util::GetStringEnum(dest_id) << ", " << level | 1975 << GLES2Util::GetStringEnum(dest_id) << ", " << level |
2007 << ", " << internalformat << ", " | 1976 << ", " << internalformat << ", " |
2008 << GLES2Util::GetStringPixelType(dest_type) | 1977 << GLES2Util::GetStringPixelType(dest_type) << ")"); |
2009 << ")"); // NOLINT | |
2010 helper_->CopyTextureCHROMIUM( | 1978 helper_->CopyTextureCHROMIUM( |
2011 target, source_id, dest_id, level, internalformat, dest_type); | 1979 target, source_id, dest_id, level, internalformat, dest_type); |
2012 CheckGLError(); | 1980 CheckGLError(); |
2013 } | 1981 } |
2014 | 1982 |
2015 void GLES2Implementation::BindTexImage2DCHROMIUM(GLenum target, GLint imageId) { | 1983 void GLES2Implementation::BindTexImage2DCHROMIUM(GLenum target, GLint imageId) { |
2016 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1984 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2017 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexImage2DCHROMIUM(" | 1985 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexImage2DCHROMIUM(" |
2018 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1986 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
2019 << imageId << ")"); // NOLINT | 1987 << imageId << ")"); |
2020 helper_->BindTexImage2DCHROMIUM(target, imageId); | 1988 helper_->BindTexImage2DCHROMIUM(target, imageId); |
2021 CheckGLError(); | 1989 CheckGLError(); |
2022 } | 1990 } |
2023 | 1991 |
2024 void GLES2Implementation::ReleaseTexImage2DCHROMIUM(GLenum target, | 1992 void GLES2Implementation::ReleaseTexImage2DCHROMIUM(GLenum target, |
2025 GLint imageId) { | 1993 GLint imageId) { |
2026 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1994 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2027 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseTexImage2DCHROMIUM(" | 1995 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseTexImage2DCHROMIUM(" |
2028 << GLES2Util::GetStringTextureBindTarget(target) << ", " | 1996 << GLES2Util::GetStringTextureBindTarget(target) << ", " |
2029 << imageId << ")"); // NOLINT | 1997 << imageId << ")"); |
2030 helper_->ReleaseTexImage2DCHROMIUM(target, imageId); | 1998 helper_->ReleaseTexImage2DCHROMIUM(target, imageId); |
2031 CheckGLError(); | 1999 CheckGLError(); |
2032 } | 2000 } |
2033 | 2001 |
2034 void GLES2Implementation::DiscardFramebufferEXT(GLenum target, | 2002 void GLES2Implementation::DiscardFramebufferEXT(GLenum target, |
2035 GLsizei count, | 2003 GLsizei count, |
2036 const GLenum* attachments) { | 2004 const GLenum* attachments) { |
2037 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 2005 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2038 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDiscardFramebufferEXT(" | 2006 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDiscardFramebufferEXT(" |
2039 << GLES2Util::GetStringEnum(target) << ", " << count | 2007 << GLES2Util::GetStringEnum(target) << ", " << count |
2040 << ", " << static_cast<const void*>(attachments) | 2008 << ", " << static_cast<const void*>(attachments) << ")"); |
2041 << ")"); // NOLINT | |
2042 GPU_CLIENT_LOG_CODE_BLOCK({ | 2009 GPU_CLIENT_LOG_CODE_BLOCK({ |
2043 for (GLsizei i = 0; i < count; ++i) { | 2010 for (GLsizei i = 0; i < count; ++i) { |
2044 GPU_CLIENT_LOG(" " << i << ": " << attachments[0 + i * 1]); | 2011 GPU_CLIENT_LOG(" " << i << ": " << attachments[0 + i * 1]); |
2045 } | 2012 } |
2046 }); | 2013 }); |
2047 if (count < 0) { | 2014 if (count < 0) { |
2048 SetGLError(GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); | 2015 SetGLError(GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); |
2049 return; | 2016 return; |
2050 } | 2017 } |
2051 helper_->DiscardFramebufferEXTImmediate(target, count, attachments); | 2018 helper_->DiscardFramebufferEXTImmediate(target, count, attachments); |
2052 CheckGLError(); | 2019 CheckGLError(); |
2053 } | 2020 } |
2054 | 2021 |
2055 void GLES2Implementation::LoseContextCHROMIUM(GLenum current, GLenum other) { | 2022 void GLES2Implementation::LoseContextCHROMIUM(GLenum current, GLenum other) { |
2056 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 2023 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2057 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLoseContextCHROMIUM(" | 2024 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLoseContextCHROMIUM(" |
2058 << GLES2Util::GetStringEnum(current) << ", " | 2025 << GLES2Util::GetStringEnum(current) << ", " |
2059 << GLES2Util::GetStringEnum(other) << ")"); // NOLINT | 2026 << GLES2Util::GetStringEnum(other) << ")"); |
2060 helper_->LoseContextCHROMIUM(current, other); | 2027 helper_->LoseContextCHROMIUM(current, other); |
2061 CheckGLError(); | 2028 CheckGLError(); |
2062 } | 2029 } |
2063 | 2030 |
2064 void GLES2Implementation::WaitSyncPointCHROMIUM(GLuint sync_point) { | 2031 void GLES2Implementation::WaitSyncPointCHROMIUM(GLuint sync_point) { |
2065 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 2032 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2066 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glWaitSyncPointCHROMIUM(" | 2033 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glWaitSyncPointCHROMIUM(" |
2067 << sync_point << ")"); // NOLINT | 2034 << sync_point << ")"); |
2068 helper_->WaitSyncPointCHROMIUM(sync_point); | 2035 helper_->WaitSyncPointCHROMIUM(sync_point); |
2069 CheckGLError(); | 2036 CheckGLError(); |
2070 } | 2037 } |
2071 | 2038 |
2072 void GLES2Implementation::DrawBuffersEXT(GLsizei count, const GLenum* bufs) { | 2039 void GLES2Implementation::DrawBuffersEXT(GLsizei count, const GLenum* bufs) { |
2073 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 2040 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2074 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDrawBuffersEXT(" << count << ", " | 2041 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDrawBuffersEXT(" << count << ", " |
2075 << static_cast<const void*>(bufs) << ")"); // NOLINT | 2042 << static_cast<const void*>(bufs) << ")"); |
2076 GPU_CLIENT_LOG_CODE_BLOCK({ | 2043 GPU_CLIENT_LOG_CODE_BLOCK({ |
2077 for (GLsizei i = 0; i < count; ++i) { | 2044 for (GLsizei i = 0; i < count; ++i) { |
2078 GPU_CLIENT_LOG(" " << i << ": " << bufs[0 + i * 1]); | 2045 GPU_CLIENT_LOG(" " << i << ": " << bufs[0 + i * 1]); |
2079 } | 2046 } |
2080 }); | 2047 }); |
2081 if (count < 0) { | 2048 if (count < 0) { |
2082 SetGLError(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0"); | 2049 SetGLError(GL_INVALID_VALUE, "glDrawBuffersEXT", "count < 0"); |
2083 return; | 2050 return; |
2084 } | 2051 } |
2085 helper_->DrawBuffersEXTImmediate(count, bufs); | 2052 helper_->DrawBuffersEXTImmediate(count, bufs); |
2086 CheckGLError(); | 2053 CheckGLError(); |
2087 } | 2054 } |
2088 | 2055 |
2089 void GLES2Implementation::DiscardBackbufferCHROMIUM() { | 2056 void GLES2Implementation::DiscardBackbufferCHROMIUM() { |
2090 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 2057 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2091 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDiscardBackbufferCHROMIUM(" | 2058 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDiscardBackbufferCHROMIUM(" |
2092 << ")"); // NOLINT | 2059 << ")"); |
2093 helper_->DiscardBackbufferCHROMIUM(); | 2060 helper_->DiscardBackbufferCHROMIUM(); |
2094 CheckGLError(); | 2061 CheckGLError(); |
2095 } | 2062 } |
2096 | 2063 |
2097 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ | 2064 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
OLD | NEW |