1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "android_webview/browser/parent_output_surface.h" 6 7 #include "cc/output/output_surface_client.h" 8 #include "gpu/command_buffer/client/gles2_interface.h" 9 10 namespace android_webview { 11 ParentOutputSurface(scoped_refptr<cc::ContextProvider> context_provider)12ParentOutputSurface::ParentOutputSurface( 13 scoped_refptr<cc::ContextProvider> context_provider) 14 : cc::OutputSurface(context_provider) { 15 capabilities_.draw_and_swap_full_viewport_every_frame = true; 16 } 17 ~ParentOutputSurface()18ParentOutputSurface::~ParentOutputSurface() { 19 } 20 SwapBuffers(cc::CompositorFrame * frame)21void ParentOutputSurface::SwapBuffers(cc::CompositorFrame* frame) { 22 context_provider_->ContextGL()->ShallowFlushCHROMIUM(); 23 client_->DidSwapBuffers(); 24 } 25 SetDrawConstraints(const gfx::Size & surface_size,const gfx::Rect & clip)26void ParentOutputSurface::SetDrawConstraints(const gfx::Size& surface_size, 27 const gfx::Rect& clip) { 28 DCHECK(client_); 29 surface_size_ = surface_size; 30 const gfx::Transform identity; 31 const gfx::Rect empty; 32 const bool resourceless_software_draw = false; 33 SetExternalDrawConstraints( 34 identity, empty, clip, clip, identity, resourceless_software_draw); 35 } 36 37 } // namespace android_webview 38