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#ifndef UI_BASE_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_
6#define UI_BASE_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_
7
8#include "cc/output/copy_output_request.h"
9#include "ui/base/android/system_ui_resource_manager.h"
10#include "ui/base/ui_base_export.h"
11
12namespace cc {
13class Layer;
14}
15
16namespace ui {
17
18// Android interface for compositor-related tasks.
19class UI_BASE_EXPORT WindowAndroidCompositor {
20 public:
21  virtual ~WindowAndroidCompositor() {}
22
23  virtual void AttachLayerForReadback(scoped_refptr<cc::Layer> layer) = 0;
24  virtual void RequestCopyOfOutputOnRootLayer(
25      scoped_ptr<cc::CopyOutputRequest> request) = 0;
26  virtual void OnVSync(base::TimeTicks frame_time,
27                       base::TimeDelta vsync_period) = 0;
28  virtual void SetNeedsAnimate() = 0;
29  virtual SystemUIResourceManager& GetSystemUIResourceManager() = 0;
30};
31
32}  // namespace ui
33
34#endif  // UI_BASE_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_
35