11#include "third_party/skia/include/core/SkSurface.h"
17 sk_sp<GrDirectContext> context)
18 : surface_size_(surface_size), context_(
std::move(context)) {
25 for (
const auto&
callback : callbacks) {
68 <<
"Could not update the off-screen composition in the test compositor";
size_t GetBackingStoresCreatedCount() const
void AddOnCreateRenderTargetCallback(const fml::closure &callback)
bool present_callback_is_one_shot_
void AddOnPresentCallback(const fml::closure &callback)
void SetNextSceneCallback(const NextSceneCallback &next_scene_callback)
sk_sp< SkSurface > GetSurface(const FlutterBackingStore *backing_store) const
size_t GetBackingStoresCollectedCount() const
void AddOnCollectRenderTargetCallback(const fml::closure &callback)
const DlISize surface_size_
std::vector< fml::closure > on_create_render_target_callbacks_
sk_sp< SkImage > GetLastComposition()
std::vector< fml::closure > on_present_callbacks_
size_t GetPendingBackingStoresCount() const
std::function< void(FlutterViewId view_id, const FlutterLayer **layers, size_t layers_count)> PresentCallback
bool CollectBackingStore(const FlutterBackingStore *backing_store)
std::function< void(sk_sp< SkImage > image)> NextSceneCallback
std::vector< fml::closure > on_collect_render_target_callbacks_
NextSceneCallback next_scene_callback_
EmbedderTestCompositor(DlISize surface_size, sk_sp< GrDirectContext > context)
sk_sp< GrDirectContext > GetGrContext()
bool CreateBackingStore(const FlutterBackingStoreConfig *config, FlutterBackingStore *backing_store_out)
void SetNextPresentCallback(const PresentCallback &next_present_callback)
Allows tests to install a callback to notify them when the entire render tree has been finalized so t...
size_t backing_stores_created_
bool Present(FlutterViewId view_id, const FlutterLayer **layers, size_t layers_count)
sk_sp< GrDirectContext > context_
PresentCallback present_callback_
virtual bool UpdateOffscrenComposition(const FlutterLayer **layers, size_t layers_count)=0
size_t backing_stores_collected_
sk_sp< SkImage > last_composition_
virtual ~EmbedderTestCompositor()
void SetPresentCallback(const PresentCallback &present_callback, bool one_shot)
std::unique_ptr< EmbedderTestBackingStoreProducer > backingstore_producer_
std::function< sk_sp< SkImage >(const FlutterLayer &layer, GrDirectContext *context)> PlatformViewRendererCallback
PlatformViewRendererCallback platform_view_renderer_callback_
void SetPlatformViewRendererCallback(const PlatformViewRendererCallback &callback)
const FlutterLayer size_t layers_count
const FlutterLayer ** layers
G_BEGIN_DECLS FlutterViewId view_id
FlutterDesktopBinaryReply callback
#define FML_LOG(severity)
#define FML_CHECK(condition)
static void InvokeAllCallbacks(const std::vector< fml::closure > &callbacks)
std::function< void()> closure
constexpr bool IsEmpty() const
Returns true if either of the width or height are 0, negative, or NaN.