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
10namespace android_webview {
11
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
18ParentOutputSurface::~ParentOutputSurface() {
19}
20
21void ParentOutputSurface::SwapBuffers(cc::CompositorFrame* frame) {
22  context_provider_->ContextGL()->ShallowFlushCHROMIUM();
23  client_->DidSwapBuffers();
24}
25
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