30 std::optional<std::string>& out_error) {
32 if (override_context) {
33 return override_context;
37 if (!dart_state->IsImpellerEnabled()) {
39 "Flutter GPU requires the Impeller rendering backend to be enabled.";
43 std::promise<std::shared_ptr<impeller::Context>> context_promise;
44 auto impeller_context_future = context_promise.get_future();
46 dart_state->GetTaskRunners().GetIOTaskRunner(),
48 io_manager = dart_state->GetIOManager()]()
mutable {
49 promise.set_value(io_manager ? io_manager->GetImpellerContext()
52 auto context = impeller_context_future.get();
55 out_error =
"Unable to retrieve the Impeller context.";
static std::shared_ptr< impeller::Context > GetOverrideContext()
Context(std::shared_ptr< impeller::Context > context)
std::shared_ptr< impeller::Context > GetContext()
static std::shared_ptr< impeller::Context > GetDefaultContext(std::optional< std::string > &out_error)
static void SetOverrideContext(std::shared_ptr< impeller::Context > context)
int InternalFlutterGpu_Context_GetDefaultDepthStencilFormat(flutter::gpu::Context *wrapper)
Dart_Handle InternalFlutterGpu_Context_InitializeDefault(Dart_Handle wrapper)
int InternalFlutterGpu_Context_GetDefaultColorFormat(flutter::gpu::Context *wrapper)
int InternalFlutterGpu_Context_GetDefaultStencilFormat(flutter::gpu::Context *wrapper)