5#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_SURFACE_PRODUCER_H_
6#define FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_SURFACE_PRODUCER_H_
8#include <fuchsia/ui/composition/cpp/fidl.h>
9#include <lib/zx/event.h>
44 virtual fuchsia::ui::composition::BufferCollectionImportToken
59 const std::function<
void(
void)>& on_writes_committed) = 0;
78 std::vector<std::unique_ptr<SurfaceProducerSurface>> surfaces) = 0;
virtual fuchsia::ui::composition::BufferCollectionImportToken GetBufferCollectionImportToken()=0
virtual sk_sp< SkSurface > GetSkiaSurface() const =0
virtual size_t AdvanceAndGetAge()=0
virtual zx::event GetReleaseFence()=0
virtual zx::event GetAcquireFence()=0
virtual SkISize GetSize() const =0
virtual uint32_t GetImageId()=0
virtual ~SurfaceProducerSurface()=default
virtual bool IsValid() const =0
virtual void SignalWritesFinished(const std::function< void(void)> &on_writes_committed)=0
virtual void SetImageId(uint32_t image_id)=0
virtual bool FlushSessionAcquireAndReleaseEvents()=0
virtual void SetReleaseImageCallback(ReleaseImageCallback release_image_callback)=0
virtual ~SurfaceProducer()=default
virtual void SubmitSurfaces(std::vector< std::unique_ptr< SurfaceProducerSurface > > surfaces)=0
virtual GrDirectContext * gr_context() const =0
virtual std::unique_ptr< SurfaceProducerSurface > ProduceSurface(const SkISize &size)=0
virtual std::unique_ptr< SurfaceProducerSurface > ProduceOffscreenSurface(const SkISize &size)=0
std::function< void()> ReleaseImageCallback