// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_ #define UI_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_ #include #include "base/memory/weak_ptr.h" #include "components/viz/common/frame_sinks/copy_output_request.h" #include "components/viz/common/surfaces/frame_sink_id.h" #include "ui/android/ui_android_export.h" #include "ui/compositor/compositor_lock.h" namespace ui { class ResourceManager; // Android interface for compositor-related tasks. class UI_ANDROID_EXPORT WindowAndroidCompositor { public: virtual ~WindowAndroidCompositor() {} virtual base::WeakPtr GetWeakPtr() = 0; virtual void IncrementReadbackRequestCount() = 0; virtual void DecrementReadbackRequestCount() = 0; virtual void RequestCopyOfOutputOnRootLayer( std::unique_ptr request) = 0; virtual void SetNeedsAnimate() = 0; virtual ResourceManager& GetResourceManager() = 0; virtual viz::FrameSinkId GetFrameSinkId() = 0; virtual void AddChildFrameSink(const viz::FrameSinkId& frame_sink_id) = 0; virtual void RemoveChildFrameSink(const viz::FrameSinkId& frame_sink_id) = 0; virtual std::unique_ptr GetCompositorLock( CompositorLockClient* client, base::TimeDelta timeout) = 0; virtual bool IsDrawingFirstVisibleFrame() const = 0; }; } // namespace ui #endif // UI_ANDROID_WINDOW_ANDROID_COMPOSITOR_H_