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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 549201: Implements glGetVertexAttribPointerv (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
===================================================================
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 37435)
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy)
@@ -413,6 +413,10 @@
return buffer_;
}
+ GLsizei offset() const {
+ return offset_;
+ }
+
void Clear() {
buffer_ = 0;
SetBufferSize(0);
@@ -1726,7 +1730,7 @@
}
// TODO(gman): Validate internal_format
if (!ValidateGLenumTextureTarget(target)) {
- SetGLError(GL_INVALID_VALUE);
+ SetGLError(GL_INVALID_ENUM);
return parse_error::kParseNoError;
}
scoped_array<int8> zero;
@@ -1756,7 +1760,7 @@
}
// TODO(gman): Validate internal_format
if (!ValidateGLenumTextureTarget(target)) {
- SetGLError(GL_INVALID_VALUE);
+ SetGLError(GL_INVALID_ENUM);
return parse_error::kParseNoError;
}
glCompressedTexImage2D(
@@ -1790,7 +1794,7 @@
!ValidateGLenumTextureFormat(internal_format) ||
!ValidateGLenumTextureFormat(format) ||
!ValidateGLenumPixelType(type)) {
- SetGLError(GL_INVALID_VALUE);
+ SetGLError(GL_INVALID_ENUM);
return parse_error::kParseNoError;
}
scoped_array<int8> zero;
@@ -1826,7 +1830,7 @@
!ValidateGLenumTextureFormat(internal_format) ||
!ValidateGLenumTextureFormat(format) ||
!ValidateGLenumPixelType(type)) {
- SetGLError(GL_INVALID_VALUE);
+ SetGLError(GL_INVALID_ENUM);
return parse_error::kParseNoError;
}
glTexImage2D(
@@ -1837,43 +1841,66 @@
parse_error::ParseError GLES2DecoderImpl::HandleGetVertexAttribPointerv(
uint32 immediate_data_size, const gles2::GetVertexAttribPointerv& c) {
- // TODO(gman): Implement.
+ GLuint index = static_cast<GLuint>(c.index);
+ GLenum pname = static_cast<GLenum>(c.pname);
+ SizedResult* result = GetSharedMemoryAs<SizedResult*>(
+ c.pointer_shm_id, c.pointer_shm_offset, sizeof(SizedResult));
+ if (!result) {
+ return parse_error::kParseOutOfBounds;
+ }
+ result->size = 0;
+ if (!ValidateGLenumVertexPointer(pname)) {
+ SetGLError(GL_INVALID_ENUM);
+ return parse_error::kParseNoError;
+ }
+ if (index >= max_vertex_attribs_) {
+ SetGLError(GL_INVALID_VALUE);
+ return parse_error::kParseNoError;
+ }
+ result->size = sizeof(GLuint);
+ *result->GetDataAs<GLuint*>() = vertex_attrib_infos_[index].offset();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetUniformiv(
uint32 immediate_data_size, const gles2::GetUniformiv& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetUniformfv(
uint32 immediate_data_size, const gles2::GetUniformfv& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetShaderPrecisionFormat(
uint32 immediate_data_size, const gles2::GetShaderPrecisionFormat& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetAttachedShaders(
uint32 immediate_data_size, const gles2::GetAttachedShaders& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetActiveUniform(
uint32 immediate_data_size, const gles2::GetActiveUniform& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
parse_error::ParseError GLES2DecoderImpl::HandleGetActiveAttrib(
uint32 immediate_data_size, const gles2::GetActiveAttrib& c) {
// TODO(gman): Implement.
+ NOTREACHED();
return parse_error::kParseNoError;
}
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_format.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698