Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index e58ed0b73b7c33c01b62ae654d8ec3bdf1664704..e1e66fafbb1a5ec6cc140bfd6fd7f89d6528336d 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -2150,10 +2150,14 @@ uint8_t* ResourceProvider::MapImage(const Resource* resource, int* stride) { |
DCHECK(resource->image_id); |
GLES2Interface* gl = ContextGL(); |
DCHECK(gl); |
+ // For SurfaceTexture-backed GpuMemoryBuffer, the actual |
+ // Stride can only be got after it is mapped and ANativeWindow_Buffer |
+ // is locked. |
reveman
2014/02/26 08:02:34
We should probably make this a general requirement
|
+ uint8_t* ret = static_cast<uint8_t*>( |
+ gl->MapImageCHROMIUM(resource->image_id, GL_READ_WRITE)); |
gl->GetImageParameterivCHROMIUM( |
resource->image_id, GL_IMAGE_ROWBYTES_CHROMIUM, stride); |
- return static_cast<uint8_t*>( |
- gl->MapImageCHROMIUM(resource->image_id, GL_READ_WRITE)); |
+ return ret; |
} |
DCHECK_EQ(Bitmap, resource->type); |
*stride = 0; |