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