compositor_frame_producer.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2016 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. #ifndef ANDROID_WEBVIEW_BROWSER_GFX_COMPOSITOR_FRAME_PRODUCER_H_
  5. #define ANDROID_WEBVIEW_BROWSER_GFX_COMPOSITOR_FRAME_PRODUCER_H_
  6. #include <vector>
  7. #include "base/memory/weak_ptr.h"
  8. #include "components/viz/common/resources/returned_resource.h"
  9. namespace viz {
  10. class FrameSinkId;
  11. }
  12. namespace android_webview {
  13. class CompositorFrameConsumer;
  14. class CompositorFrameProducer {
  15. public:
  16. virtual base::WeakPtr<CompositorFrameProducer> GetWeakPtr() = 0;
  17. virtual void ReturnUsedResources(std::vector<viz::ReturnedResource> resources,
  18. const viz::FrameSinkId& frame_sink_id,
  19. uint32_t layer_tree_frame_sink_id) = 0;
  20. virtual void OnParentDrawDataUpdated(
  21. CompositorFrameConsumer* compositor_frame_consumer) = 0;
  22. virtual void OnViewTreeForceDarkStateChanged(
  23. bool view_tree_force_dark_state) = 0;
  24. virtual void RemoveCompositorFrameConsumer(
  25. CompositorFrameConsumer* consumer) = 0;
  26. virtual void ChildSurfaceWasEvicted() = 0;
  27. protected:
  28. virtual ~CompositorFrameProducer() {}
  29. };
  30. } // namespace android_webview
  31. #endif // ANDROID_WEBVIEW_BROWSER_GFX_COMPOSITOR_FRAME_PRODUCER_H_