Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 33748) |
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
@@ -921,7 +921,22 @@ |
parse_error::ParseError GLES2DecoderImpl::HandleReadPixels( |
uint32 immediate_data_size, const gles2::ReadPixels& c) { |
- // TODO(gman): Implement. |
+ GLint x = c.x; |
+ GLint y = c.y; |
+ GLsizei width = c.width; |
+ GLsizei height = c.height; |
+ GLenum format = c.format; |
+ GLenum type = c.type; |
+ uint32 pixels_size = GLES2Util::ComputeImageDataSize( |
+ width, height, format, type, pack_alignment_); |
+ void* pixels = GetSharedMemoryAs<void*>( |
+ c.pixels_shm_id, c.pixels_shm_offset, pixels_size); |
+ parse_error::ParseError result = ValidateReadPixels( |
+ this, immediate_data_size, x, y, width, height, format, type, pixels); |
+ if (result != parse_error::kParseNoError) { |
+ return result; |
+ } |
+ glReadPixels(x, y, width, height, format, type, pixels); |
return parse_error::kParseNoError; |
} |