#include <playground.h>
Public Types | |
| using | SinglePassCallback = std::function< bool(RenderPass &pass)> |
| using | RenderCallback = std::function< bool(RenderTarget &render_target)> |
| using | GLProcAddressResolver = std::function< void *(const char *proc_name)> |
| using | VKProcAddressResolver = std::function< void *(void *instance, const char *proc_name)> |
Public Member Functions | |
| Playground (PlaygroundBackend backend, const PlaygroundSwitches &switches) | |
| virtual | ~Playground () |
| bool | IsPlaygroundEnabled () const |
| Point | GetCursorPosition () const |
| ISize | GetWindowSize () const |
| IRect | GetWindowBounds () const |
| Point | GetContentScale () const |
| Scalar | GetSecondsElapsed () const |
| Get the amount of time elapsed from the start of the playground's execution. | |
| std::shared_ptr< Context > | GetContext () const |
| std::shared_ptr< Context > | MakeContext () const |
| ContentContext & | GetContentContext () const |
| std::shared_ptr< TypographerContext > | GetTypographerContext () const |
| bool | OpenPlaygroundHere (const RenderCallback &render_callback) |
| bool | OpenPlaygroundHere (SinglePassCallback pass_callback) |
| std::shared_ptr< Texture > | CreateTextureForFixture (const char *fixture_name, bool enable_mipmapping=false) const |
| std::shared_ptr< Texture > | CreateTextureCubeForFixture (std::array< const char *, 6 > fixture_names) const |
| virtual std::unique_ptr< fml::Mapping > | OpenAssetAsMapping (std::string asset_name) const =0 |
| virtual std::string | GetWindowTitle () const =0 |
| fml::Status | SetCapabilities (const std::shared_ptr< Capabilities > &capabilities) |
| bool | WillRenderSomething () const |
Returns true if OpenPlaygroundHere will actually render anything. | |
| GLProcAddressResolver | CreateGLProcAddressResolver () const |
| VKProcAddressResolver | CreateVKProcAddressResolver () const |
| void | SetGPUDisabled (bool disabled) const |
| Mark the GPU as unavilable. | |
| RuntimeStageBackend | GetRuntimeStageBackend () const |
Static Public Member Functions | |
| static bool | ShouldOpenNewPlaygrounds () |
| static std::shared_ptr< CompressedImage > | LoadFixtureImageCompressed (std::shared_ptr< fml::Mapping > mapping) |
| static std::optional< DecompressedImage > | DecodeImageRGBA (const std::shared_ptr< CompressedImage > &compressed) |
| static std::shared_ptr< Texture > | CreateTextureForMapping (const std::shared_ptr< Context > &context, std::shared_ptr< fml::Mapping > mapping, bool enable_mipmapping=false) |
| static bool | SupportsBackend (PlaygroundBackend backend) |
Protected Member Functions | |
| void | TearDownContextData () |
| virtual bool | ShouldKeepRendering () const |
| virtual void | EnsureContextIsUnique () |
| Make sure that when the context is later created that it will not be shared with any other playgrounds. | |
| bool | PlatformSupportsWideGamutTests () const |
| Returns true if the platform can support wide gamuts. | |
| virtual bool | EnsureContextSupportsWideGamut () |
| Make sure that when the context is later created that it will support wide gamuts if the platform supports it. Returns whether the platform supports wide gamut. | |
| virtual void | EnsureContextSupportsAntialiasLines () |
| Make sure that when the context is later created that it will support the experimental AA lines flag. | |
| const PlaygroundSwitches & | GetSwitches () const |
| Return an unmodifiable reference to the current switches. The switches might change at the start of a test as it has a brief opportunity to call any of the Ensure* methods that define the environment it expects, but should be stable by the time any subsequent methods that might perform work are called. | |
| void | SetTypographerContext (std::shared_ptr< TypographerContext > typographer_context) |
| void | SetWindowSize (ISize size) |
Definition at line 37 of file playground.h.
| using impeller::Playground::GLProcAddressResolver = std::function<void*(const char* proc_name)> |
Definition at line 107 of file playground.h.
| using impeller::Playground::RenderCallback = std::function<bool(RenderTarget& render_target)> |
Definition at line 70 of file playground.h.
| using impeller::Playground::SinglePassCallback = std::function<bool(RenderPass& pass)> |
Definition at line 39 of file playground.h.
| using impeller::Playground::VKProcAddressResolver = std::function<void*(void* instance, const char* proc_name)> |
Definition at line 110 of file playground.h.
|
explicit |
Definition at line 90 of file playground.cc.
References impeller::InitializeGLFWOnce(), flutter::testing::SetupSwiftshaderOnce(), and impeller::PlaygroundSwitches::use_swiftshader.
|
virtualdefault |
| Playground::GLProcAddressResolver impeller::Playground::CreateGLProcAddressResolver | ( | ) | const |
Definition at line 610 of file playground.cc.
Referenced by impeller::interop::testing::PlaygroundTest::CreateContext().
| std::shared_ptr< Texture > impeller::Playground::CreateTextureCubeForFixture | ( | std::array< const char *, 6 > | fixture_names | ) | const |
Definition at line 547 of file playground.cc.
References impeller::DeviceBuffer::AsBufferView(), DecodeImageRGBA(), impeller::TextureDescriptor::format, GetContext(), i, image, images, impeller::kDevicePrivate, impeller::kR8G8B8A8UNormInt, impeller::kTextureCube, LoadFixtureImageCompressed(), impeller::TextureDescriptor::mip_count, OpenAssetAsMapping(), impeller::TextureDescriptor::size, impeller::TextureDescriptor::storage_mode, texture, impeller::TextureDescriptor::type, and VALIDATION_LOG.
| std::shared_ptr< Texture > impeller::Playground::CreateTextureForFixture | ( | const char * | fixture_name, |
| bool | enable_mipmapping = false |
||
| ) | const |
Definition at line 535 of file playground.cc.
References CreateTextureForMapping(), GetContext(), OpenAssetAsMapping(), and texture.
|
static |
Definition at line 522 of file playground.cc.
References context, impeller::CreateTextureForDecompressedImage(), DecodeImageRGBA(), image, and LoadFixtureImageCompressed().
Referenced by impeller::DlPlayground::CreateDlImageForFixture(), impeller::GoldenPlaygroundTest::CreateTextureForFixture(), and CreateTextureForFixture().
| Playground::VKProcAddressResolver impeller::Playground::CreateVKProcAddressResolver | ( | ) | const |
Definition at line 615 of file playground.cc.
Referenced by impeller::interop::testing::PlaygroundTest::CreateContext().
|
static |
Definition at line 461 of file playground.cc.
References image, and VALIDATION_LOG.
Referenced by CreateTextureCubeForFixture(), CreateTextureForMapping(), and impeller::interop::testing::PlaygroundTest::OpenAssetAsHPPTexture().
|
protectedvirtual |
Make sure that when the context is later created that it will not be shared with any other playgrounds.
Must be called before any other method except for the Ensure family of methods.
Definition at line 99 of file playground.cc.
References impeller::PlaygroundSwitches::can_share_context, and FML_CHECK.
|
protectedvirtual |
Make sure that when the context is later created that it will support the experimental AA lines flag.
Must be called before any other method except for the Ensure family of methods.
Definition at line 121 of file playground.cc.
References impeller::Flags::antialiased_lines, impeller::PlaygroundSwitches::flags, and FML_CHECK.
|
protectedvirtual |
Make sure that when the context is later created that it will support wide gamuts if the platform supports it. Returns whether the platform supports wide gamut.
Must be called before any other method except for the Ensure family of methods.
Callers should abort (such as via GTEST_SKIP) if the method returns false if their behavior depends on the wide gamut support.
Definition at line 112 of file playground.cc.
References impeller::PlaygroundSwitches::enable_wide_gamut, FML_CHECK, and PlatformSupportsWideGamutTests().
| ContentContext & impeller::Playground::GetContentContext | ( | ) | const |
Definition at line 146 of file playground.cc.
References FML_CHECK, GetContext(), and GetTypographerContext().
Referenced by impeller::testing::BlendFilterContentsTest::MakeTexture(), impeller::testing::GaussianBlurFilterContentsTest::MakeTexture(), impeller::testing::MatrixFilterContentsTest::MakeTexture(), impeller::testing::MorphologyFilterContentsTest::MakeTexture(), impeller::EntityPlayground::OpenPlaygroundHere(), and impeller::EntityPlayground::OpenPlaygroundHere().
| Point impeller::Playground::GetContentScale | ( | ) | const |
Definition at line 275 of file playground.cc.
Referenced by impeller::testing::CanRenderConicalGradientWithDithering(), impeller::testing::CanRenderSweepGradientWithDithering(), and impeller::testing::MaskBlurVariantTest().
| std::shared_ptr< Context > impeller::Playground::GetContext | ( | ) | const |
Definition at line 126 of file playground.cc.
Referenced by impeller::DlPlayground::CreateDlImageForFixture(), CreateTextureCubeForFixture(), CreateTextureForFixture(), GetContentContext(), impeller::interop::testing::PlaygroundTest::GetInteropContext(), impeller::testing::RendererDartTest::GetIsolate(), impeller::testing::BlendFilterContentsTest::MakeTexture(), impeller::testing::GaussianBlurFilterContentsTest::MakeTexture(), impeller::testing::MatrixFilterContentsTest::MakeTexture(), impeller::testing::MorphologyFilterContentsTest::MakeTexture(), impeller::AiksPlayground::OpenPlaygroundHere(), OpenPlaygroundHere(), impeller::DlPlayground::OpenPlaygroundHere(), OpenPlaygroundHere(), impeller::RuntimeStagePlayground::RegisterStage(), and impeller::testing::RendererDartTest::RenderDartToPlayground().
| Point impeller::Playground::GetCursorPosition | ( | ) | const |
Definition at line 263 of file playground.cc.
| RuntimeStageBackend impeller::Playground::GetRuntimeStageBackend | ( | ) | const |
Definition at line 624 of file playground.cc.
| Scalar impeller::Playground::GetSecondsElapsed | ( | ) | const |
Get the amount of time elapsed from the start of the playground's execution.
Definition at line 279 of file playground.cc.
References fml::TimePoint::Now().
|
inlineprotected |
Return an unmodifiable reference to the current switches. The switches might change at the start of a test as it has a brief opportunity to call any of the Ensure* methods that define the environment it expects, but should be stable by the time any subsequent methods that might perform work are called.
Definition at line 167 of file playground.h.
Referenced by impeller::interop::testing::PlaygroundTest::CreateContext(), and impeller::PlaygroundTest::GetWindowTitle().
| std::shared_ptr< TypographerContext > impeller::Playground::GetTypographerContext | ( | ) | const |
Definition at line 155 of file playground.cc.
References impeller::TypographerContextSkia::Make().
Referenced by GetContentContext().
| IRect impeller::Playground::GetWindowBounds | ( | ) | const |
Definition at line 271 of file playground.cc.
References impeller::TRect< T >::MakeSize().
| ISize impeller::Playground::GetWindowSize | ( | ) | const |
Definition at line 267 of file playground.cc.
Referenced by impeller::testing::RendererDartTest::GetRenderedTextureFromDart(), OpenPlaygroundHere(), and impeller::testing::RendererDartTest::RunDartFunctionWithWindowSize().
|
pure virtual |
Implemented in impeller::ComputePlaygroundTest, and impeller::PlaygroundTest.
Referenced by OpenPlaygroundHere().
| bool impeller::Playground::IsPlaygroundEnabled | ( | ) | const |
Definition at line 224 of file playground.cc.
References impeller::PlaygroundSwitches::enable_playground.
Referenced by impeller::DlPlayground::OpenPlaygroundHere(), impeller::EntityPlayground::OpenPlaygroundHere(), impeller::EntityPlayground::OpenPlaygroundHere(), and impeller::testing::RendererDartTest::RenderDartToPlayground().
|
static |
Definition at line 450 of file playground.cc.
References impeller::CompressedImageSkia::Create(), and VALIDATION_LOG.
Referenced by CreateTextureCubeForFixture(), CreateTextureForMapping(), and impeller::interop::testing::PlaygroundTest::OpenAssetAsHPPTexture().
| std::shared_ptr< Context > impeller::Playground::MakeContext | ( | ) | const |
Definition at line 133 of file playground.cc.
References impeller::PlaygroundSwitches::can_share_context, and FML_CHECK.
|
pure virtual |
Implemented in impeller::ComputePlaygroundTest, and impeller::PlaygroundTest.
Referenced by CreateTextureCubeForFixture(), and CreateTextureForFixture().
| bool impeller::Playground::OpenPlaygroundHere | ( | const RenderCallback & | render_callback | ) |
Definition at line 287 of file playground.cc.
References context, impeller::HostBuffer::Create(), impeller::PlaygroundSwitches::enable_playground, FML_CHECK, impeller::RenderTarget::GetColorAttachment(), GetContext(), GetWindowSize(), GetWindowTitle(), height, ImGui_ImplImpeller_Init(), ImGui_ImplImpeller_RenderDrawData(), ImGui_ImplImpeller_Shutdown(), impeller::kLoad, impeller::kStore, impeller::Attachment::load_action, impeller::TSize< T >::Max(), impeller::PlaygroundKeyCallback(), impeller::RenderTarget::SetColorAttachment(), impeller::RenderTarget::SetDepthAttachment(), impeller::RenderTarget::SetStencilAttachment(), SetWindowSize(), ShouldKeepRendering(), surface, VALIDATION_LOG, width, window, x, and y.
Referenced by impeller::AiksPlayground::OpenPlaygroundHere(), impeller::DlPlayground::OpenPlaygroundHere(), impeller::EntityPlayground::OpenPlaygroundHere(), impeller::EntityPlayground::OpenPlaygroundHere(), impeller::interop::testing::PlaygroundTest::OpenPlaygroundHere(), OpenPlaygroundHere(), impeller::testing::RendererDartTest::RenderDartToPlayground(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
| bool impeller::Playground::OpenPlaygroundHere | ( | SinglePassCallback | pass_callback | ) |
Definition at line 423 of file playground.cc.
References context, GetContext(), and OpenPlaygroundHere().
|
protected |
Returns true if the platform can support wide gamuts.
Definition at line 104 of file playground.cc.
References impeller::kMetal.
Referenced by EnsureContextSupportsWideGamut().
| fml::Status impeller::Playground::SetCapabilities | ( | const std::shared_ptr< Capabilities > & | capabilities | ) |
Definition at line 601 of file playground.cc.
| void impeller::Playground::SetGPUDisabled | ( | bool | disabled | ) | const |
Mark the GPU as unavilable.
Only supported on the Metal backend.
Definition at line 620 of file playground.cc.
References value.
|
protected |
Definition at line 162 of file playground.cc.
References FML_CHECK.
|
protected |
Definition at line 593 of file playground.cc.
Referenced by OpenPlaygroundHere().
|
protectedvirtual |
Definition at line 597 of file playground.cc.
Referenced by OpenPlaygroundHere().
|
static |
Definition at line 246 of file playground.cc.
References impeller::gShouldOpenNewPlaygrounds.
Referenced by impeller::ComputePlaygroundTest::SetUp(), and impeller::PlaygroundTest::SetUp().
|
static |
Definition at line 169 of file playground.cc.
References FML_UNREACHABLE, impeller::PlaygroundImplVK::IsVulkanDriverPresent(), impeller::kMetal, impeller::kMetalSDF, impeller::kOpenGLES, impeller::kOpenGLESSDF, and impeller::kVulkan.
Referenced by impeller::ComputePlaygroundTest::SetUp(), and impeller::PlaygroundTest::SetUp().
|
protected |
Definition at line 228 of file playground.cc.
References FML_CHECK.
Referenced by impeller::ComputePlaygroundTest::TearDown(), and impeller::PlaygroundTest::TearDown().
| bool impeller::Playground::WillRenderSomething | ( | ) | const |
Returns true if OpenPlaygroundHere will actually render anything.
Definition at line 606 of file playground.cc.
References impeller::PlaygroundSwitches::enable_playground.