Index: content/renderer/pepper/ppb_graphics_3d_impl.cc |
diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.cc b/content/renderer/pepper/ppb_graphics_3d_impl.cc |
index 8545095efc5a7003c311e8aff5c03bffb002bd06..816c3a3ffb63f5277f03065a410a1bfc68253357 100644 |
--- a/content/renderer/pepper/ppb_graphics_3d_impl.cc |
+++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc |
@@ -168,7 +168,8 @@ |
} |
int32_t PPB_Graphics3D_Impl::DoSwapBuffers(const gpu::SyncToken& sync_token, |
- const gfx::Size& size) { |
+ int32_t width, |
+ int32_t height) { |
DCHECK(command_buffer_); |
if (taken_front_buffer_.IsZero()) { |
DLOG(ERROR) << "TakeFrontBuffer should be called before DoSwapBuffers"; |
@@ -183,11 +184,16 @@ |
// |
// Don't need to check for NULL from GetPluginInstance since when we're |
// bound, we know our instance is valid. |
+ if (width < 0 || height < 0) { |
+ width = original_width_; |
+ height = original_height_; |
+ } |
bool is_overlay_candidate = use_image_chromium_; |
GLenum target = |
is_overlay_candidate ? GL_TEXTURE_RECTANGLE_ARB : GL_TEXTURE_2D; |
cc::TextureMailbox texture_mailbox(taken_front_buffer_, sync_token, target, |
- size, is_overlay_candidate, false); |
+ gfx::Size(width, height), |
+ is_overlay_candidate, false); |
taken_front_buffer_.SetZero(); |
HostGlobals::Get() |
->GetInstance(pp_instance()) |
@@ -255,6 +261,8 @@ |
std::move(channel), gpu::kNullSurfaceHandle, share_buffer, |
gpu::GPU_STREAM_DEFAULT, gpu::GpuStreamPriority::NORMAL, attrib_helper, |
GURL::EmptyGURL(), base::ThreadTaskRunnerHandle::Get()); |
+ original_width_ = attrib_helper.offscreen_framebuffer_size.width(); |
+ original_height_ = attrib_helper.offscreen_framebuffer_size.height(); |
if (!command_buffer_) |
return false; |