Index: gpu/command_buffer/client/gles2_implementation_impl_autogen.h |
diff --git a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h |
index 8541e777423328292af595862b808c9e04b9562d..d67e7edf0059f85c44d8fea7d026fe6585ae0cca 100644 |
--- a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h |
+++ b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h |
@@ -209,6 +209,34 @@ void GLES2Implementation::CompileShader(GLuint shader) { |
CheckGLError(); |
} |
+void GLES2Implementation::CopyBufferSubData(GLenum readtarget, |
+ GLenum writetarget, |
+ GLintptr readoffset, |
+ GLintptr writeoffset, |
+ GLsizeiptr size) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyBufferSubData(" |
+ << GLES2Util::GetStringBufferTarget(readtarget) << ", " |
+ << GLES2Util::GetStringBufferTarget(writetarget) << ", " |
+ << readoffset << ", " << writeoffset << ", " << size |
+ << ")"); |
+ if (readoffset < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glCopyBufferSubData", "readoffset < 0"); |
+ return; |
+ } |
+ if (writeoffset < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glCopyBufferSubData", "writeoffset < 0"); |
+ return; |
+ } |
+ if (size < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glCopyBufferSubData", "size < 0"); |
+ return; |
+ } |
+ helper_->CopyBufferSubData(readtarget, writetarget, readoffset, writeoffset, |
+ size); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::CopyTexImage2D(GLenum target, |
GLint level, |
GLenum internalformat, |
@@ -474,6 +502,20 @@ void GLES2Implementation::FramebufferTexture2D(GLenum target, |
CheckGLError(); |
} |
+void GLES2Implementation::FramebufferTextureLayer(GLenum target, |
+ GLenum attachment, |
+ GLuint texture, |
+ GLint level, |
+ GLint layer) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTextureLayer(" |
+ << GLES2Util::GetStringFrameBufferTarget(target) << ", " |
+ << GLES2Util::GetStringAttachment(attachment) << ", " |
+ << texture << ", " << level << ", " << layer << ")"); |
+ helper_->FramebufferTextureLayer(target, attachment, texture, level, layer); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::FrontFace(GLenum mode) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" |
@@ -717,6 +759,44 @@ void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) { |
}); |
CheckGLError(); |
} |
+void GLES2Implementation::GetInternalformativ(GLenum target, |
+ GLenum format, |
+ GLenum pname, |
+ GLsizei bufSize, |
+ GLint* params) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetInternalformativ(" |
+ << GLES2Util::GetStringRenderBufferTarget(target) << ", " |
+ << GLES2Util::GetStringRenderBufferFormat(format) << ", " |
+ << GLES2Util::GetStringRenderBufferParameter(pname) << ", " |
+ << bufSize << ", " << static_cast<const void*>(params) |
+ << ")"); |
+ if (bufSize < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glGetInternalformativ", "bufSize < 0"); |
+ return; |
+ } |
+ TRACE_EVENT0("gpu", "GLES2Implementation::GetInternalformativ"); |
+ if (GetInternalformativHelper(target, format, pname, bufSize, params)) { |
+ return; |
+ } |
+ typedef cmds::GetInternalformativ::Result Result; |
+ Result* result = GetResultAs<Result*>(); |
+ if (!result) { |
+ return; |
+ } |
+ result->SetNumResults(0); |
+ helper_->GetInternalformativ(target, format, pname, bufSize, GetResultShmId(), |
+ GetResultShmOffset()); |
+ WaitForCmd(); |
+ result->CopyResult(params); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (int32_t i = 0; i < result->GetNumResults(); ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
+ } |
+ }); |
+ CheckGLError(); |
+} |
void GLES2Implementation::GetProgramiv(GLuint program, |
GLenum pname, |
GLint* params) { |
@@ -1245,6 +1325,39 @@ void GLES2Implementation::TexParameteriv(GLenum target, |
CheckGLError(); |
} |
+void GLES2Implementation::TexStorage3D(GLenum target, |
+ GLsizei levels, |
+ GLenum internalFormat, |
+ GLsizei width, |
+ GLsizei height, |
+ GLsizei depth) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG( |
+ "[" << GetLogPrefix() << "] glTexStorage3D(" |
+ << GLES2Util::GetStringTexture3DTarget(target) << ", " << levels |
+ << ", " |
+ << GLES2Util::GetStringTextureInternalFormatStorage(internalFormat) |
+ << ", " << width << ", " << height << ", " << depth << ")"); |
+ if (levels < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glTexStorage3D", "levels < 0"); |
+ return; |
+ } |
+ if (width < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glTexStorage3D", "width < 0"); |
+ return; |
+ } |
+ if (height < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glTexStorage3D", "height < 0"); |
+ return; |
+ } |
+ if (depth < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glTexStorage3D", "depth < 0"); |
+ return; |
+ } |
+ helper_->TexStorage3D(target, levels, internalFormat, width, height, depth); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " |
@@ -1299,6 +1412,33 @@ void GLES2Implementation::Uniform1iv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::Uniform1ui(GLint location, GLuint x) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1ui(" << location << ", " |
+ << x << ")"); |
+ helper_->Uniform1ui(location, x); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::Uniform1uiv(GLint location, |
+ GLsizei count, |
+ const GLuint* v) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1uiv(" << location << ", " |
+ << count << ", " << static_cast<const void*>(v) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniform1uiv", "count < 0"); |
+ return; |
+ } |
+ helper_->Uniform1uivImmediate(location, count, v); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " |
@@ -1353,6 +1493,33 @@ void GLES2Implementation::Uniform2iv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::Uniform2ui(GLint location, GLuint x, GLuint y) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2ui(" << location << ", " |
+ << x << ", " << y << ")"); |
+ helper_->Uniform2ui(location, x, y); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::Uniform2uiv(GLint location, |
+ GLsizei count, |
+ const GLuint* v) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2uiv(" << location << ", " |
+ << count << ", " << static_cast<const void*>(v) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniform2uiv", "count < 0"); |
+ return; |
+ } |
+ helper_->Uniform2uivImmediate(location, count, v); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Uniform3f(GLint location, |
GLfloat x, |
GLfloat y, |
@@ -1412,6 +1579,37 @@ void GLES2Implementation::Uniform3iv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::Uniform3ui(GLint location, |
+ GLuint x, |
+ GLuint y, |
+ GLuint z) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3ui(" << location << ", " |
+ << x << ", " << y << ", " << z << ")"); |
+ helper_->Uniform3ui(location, x, y, z); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::Uniform3uiv(GLint location, |
+ GLsizei count, |
+ const GLuint* v) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3uiv(" << location << ", " |
+ << count << ", " << static_cast<const void*>(v) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3] |
+ << ", " << v[2 + i * 3]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniform3uiv", "count < 0"); |
+ return; |
+ } |
+ helper_->Uniform3uivImmediate(location, count, v); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Uniform4f(GLint location, |
GLfloat x, |
GLfloat y, |
@@ -1476,6 +1674,38 @@ void GLES2Implementation::Uniform4iv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::Uniform4ui(GLint location, |
+ GLuint x, |
+ GLuint y, |
+ GLuint z, |
+ GLuint w) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4ui(" << location << ", " |
+ << x << ", " << y << ", " << z << ", " << w << ")"); |
+ helper_->Uniform4ui(location, x, y, z, w); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::Uniform4uiv(GLint location, |
+ GLsizei count, |
+ const GLuint* v) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4uiv(" << location << ", " |
+ << count << ", " << static_cast<const void*>(v) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4] |
+ << ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniform4uiv", "count < 0"); |
+ return; |
+ } |
+ helper_->Uniform4uivImmediate(location, count, v); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::UniformMatrix2fv(GLint location, |
GLsizei count, |
GLboolean transpose, |
@@ -1505,6 +1735,67 @@ void GLES2Implementation::UniformMatrix2fv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::UniformMatrix2x3fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2x3fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 6] << ", " |
+ << value[1 + i * 6] << ", " << value[2 + i * 6] |
+ << ", " << value[3 + i * 6] << ", " |
+ << value[4 + i * 6] << ", " << value[5 + i * 6]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix2x3fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix2x3fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix2x3fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::UniformMatrix2x4fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2x4fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG( |
+ " " << i << ": " << value[0 + i * 8] << ", " << value[1 + i * 8] |
+ << ", " << value[2 + i * 8] << ", " << value[3 + i * 8] << ", " |
+ << value[4 + i * 8] << ", " << value[5 + i * 8] << ", " |
+ << value[6 + i * 8] << ", " << value[7 + i * 8]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix2x4fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix2x4fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix2x4fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::UniformMatrix3fv(GLint location, |
GLsizei count, |
GLboolean transpose, |
@@ -1537,6 +1828,69 @@ void GLES2Implementation::UniformMatrix3fv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::UniformMatrix3x2fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3x2fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 6] << ", " |
+ << value[1 + i * 6] << ", " << value[2 + i * 6] |
+ << ", " << value[3 + i * 6] << ", " |
+ << value[4 + i * 6] << ", " << value[5 + i * 6]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix3x2fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix3x2fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix3x2fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::UniformMatrix3x4fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3x4fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG( |
+ " " << i << ": " << value[0 + i * 12] << ", " << value[1 + i * 12] |
+ << ", " << value[2 + i * 12] << ", " << value[3 + i * 12] << ", " |
+ << value[4 + i * 12] << ", " << value[5 + i * 12] << ", " |
+ << value[6 + i * 12] << ", " << value[7 + i * 12] << ", " |
+ << value[8 + i * 12] << ", " << value[9 + i * 12] << ", " |
+ << value[10 + i * 12] << ", " << value[11 + i * 12]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix3x4fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix3x4fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix3x4fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::UniformMatrix4fv(GLint location, |
GLsizei count, |
GLboolean transpose, |
@@ -1572,6 +1926,70 @@ void GLES2Implementation::UniformMatrix4fv(GLint location, |
CheckGLError(); |
} |
+void GLES2Implementation::UniformMatrix4x2fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4x2fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG( |
+ " " << i << ": " << value[0 + i * 8] << ", " << value[1 + i * 8] |
+ << ", " << value[2 + i * 8] << ", " << value[3 + i * 8] << ", " |
+ << value[4 + i * 8] << ", " << value[5 + i * 8] << ", " |
+ << value[6 + i * 8] << ", " << value[7 + i * 8]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix4x2fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix4x2fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix4x2fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::UniformMatrix4x3fv(GLint location, |
+ GLsizei count, |
+ GLboolean transpose, |
+ const GLfloat* value) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4x3fv(" << location |
+ << ", " << count << ", " |
+ << GLES2Util::GetStringBool(transpose) << ", " |
+ << static_cast<const void*>(value) << ")"); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (GLsizei i = 0; i < count; ++i) { |
+ GPU_CLIENT_LOG( |
+ " " << i << ": " << value[0 + i * 12] << ", " << value[1 + i * 12] |
+ << ", " << value[2 + i * 12] << ", " << value[3 + i * 12] << ", " |
+ << value[4 + i * 12] << ", " << value[5 + i * 12] << ", " |
+ << value[6 + i * 12] << ", " << value[7 + i * 12] << ", " |
+ << value[8 + i * 12] << ", " << value[9 + i * 12] << ", " |
+ << value[10 + i * 12] << ", " << value[11 + i * 12]); |
+ } |
+ }); |
+ if (count < 0) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix4x3fv", "count < 0"); |
+ return; |
+ } |
+ if (transpose != false) { |
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix4x3fv", |
+ "transpose GL_INVALID_VALUE"); |
+ return; |
+ } |
+ helper_->UniformMatrix4x3fvImmediate(location, count, value); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::UseProgram(GLuint program) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUseProgram(" << program << ")"); |
@@ -1670,6 +2088,51 @@ void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) { |
CheckGLError(); |
} |
+void GLES2Implementation::VertexAttribI4i(GLuint indx, |
+ GLint x, |
+ GLint y, |
+ GLint z, |
+ GLint w) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttribI4i(" << indx << ", " |
+ << x << ", " << y << ", " << z << ", " << w << ")"); |
+ helper_->VertexAttribI4i(indx, x, y, z, w); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::VertexAttribI4iv(GLuint indx, const GLint* values) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttribI4iv(" << indx |
+ << ", " << static_cast<const void*>(values) << ")"); |
+ GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " |
+ << values[2] << ", " << values[3]); |
+ helper_->VertexAttribI4ivImmediate(indx, values); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::VertexAttribI4ui(GLuint indx, |
+ GLuint x, |
+ GLuint y, |
+ GLuint z, |
+ GLuint w) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttribI4ui(" << indx |
+ << ", " << x << ", " << y << ", " << z << ", " << w |
+ << ")"); |
+ helper_->VertexAttribI4ui(indx, x, y, z, w); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::VertexAttribI4uiv(GLuint indx, const GLuint* values) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttribI4uiv(" << indx |
+ << ", " << static_cast<const void*>(values) << ")"); |
+ GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " |
+ << values[2] << ", " << values[3]); |
+ helper_->VertexAttribI4uivImmediate(indx, values); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Viewport(GLint x, |
GLint y, |
GLsizei width, |