5#ifndef FLUTTER_IMPELLER_PLAYGROUND_PLAYGROUND_H_
6#define FLUTTER_IMPELLER_PLAYGROUND_PLAYGROUND_H_
11#include "flutter/fml/closure.h"
12#include "flutter/fml/macros.h"
13#include "flutter/fml/status.h"
14#include "flutter/fml/time/time_delta.h"
88 std::shared_ptr<fml::Mapping> mapping);
91 const std::shared_ptr<CompressedImage>& compressed);
94 const std::shared_ptr<Context>& context,
95 std::shared_ptr<fml::Mapping> mapping,
96 bool enable_mipmapping =
false);
99 const char* fixture_name,
100 bool enable_mipmapping =
false)
const;
103 std::array<const char*, 6> fixture_names)
const;
108 std::string asset_name)
const = 0;
113 const std::shared_ptr<Capabilities>& capabilities);
128 std::unique_ptr<PlaygroundImpl> impl_;
129 std::shared_ptr<Context> context_;
130 std::unique_ptr<Renderer> renderer_;
131 Point cursor_position_;
std::shared_ptr< Context > MakeContext() const
bool IsPlaygroundEnabled() const
virtual bool ShouldKeepRendering() const
static bool ShouldOpenNewPlaygrounds()
Point GetCursorPosition() const
void SetWindowSize(ISize size)
static std::shared_ptr< CompressedImage > LoadFixtureImageCompressed(std::shared_ptr< fml::Mapping > mapping)
ISize GetWindowSize() const
std::function< bool(RenderPass &pass)> SinglePassCallback
void SetupContext(PlaygroundBackend backend, const PlaygroundSwitches &switches)
bool WillRenderSomething() const
virtual std::string GetWindowTitle() const =0
const PlaygroundSwitches switches_
std::shared_ptr< Context > GetContext() const
bool OpenPlaygroundHere(const Renderer::RenderCallback &render_callback)
static bool SupportsBackend(PlaygroundBackend backend)
static std::shared_ptr< Texture > CreateTextureForMapping(const std::shared_ptr< Context > &context, std::shared_ptr< fml::Mapping > mapping, bool enable_mipmapping=false)
virtual std::unique_ptr< fml::Mapping > OpenAssetAsMapping(std::string asset_name) const =0
Point GetContentScale() const
std::shared_ptr< Texture > CreateTextureForFixture(const char *fixture_name, bool enable_mipmapping=false) const
Scalar GetSecondsElapsed() const
Get the amount of time elapsed from the start of the playground's execution.
static std::optional< DecompressedImage > DecodeImageRGBA(const std::shared_ptr< CompressedImage > &compressed)
std::shared_ptr< Texture > CreateTextureCubeForFixture(std::array< const char *, 6 > fixture_names) const
fml::Status SetCapabilities(const std::shared_ptr< Capabilities > &capabilities)
Render passes encode render commands directed as one specific render target into an underlying comman...
std::function< bool(RenderTarget &render_target)> RenderCallback
#define FML_UNREACHABLE()
std::string PlaygroundBackendToString(PlaygroundBackend backend)
constexpr RuntimeStageBackend PlaygroundBackendToRuntimeStageBackend(PlaygroundBackend backend)