Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter_windows.h File Reference
#include <dxgi.h>
#include <stddef.h>
#include <stdint.h>
#include <windows.h>
#include "flutter_export.h"
#include "flutter_messenger.h"
#include "flutter_plugin_registrar.h"

Go to the source code of this file.

Classes

struct  FlutterDesktopEngineProperties
 

Typedefs

typedef void(* VoidCallback) (void *)
 
typedef struct FlutterDesktopViewController * FlutterDesktopViewControllerRef
 
typedef struct FlutterDesktopView * FlutterDesktopViewRef
 
typedef struct FlutterDesktopEngine * FlutterDesktopEngineRef
 
typedef int64_t FlutterDesktopViewId
 
typedef bool(* FlutterDesktopWindowProcCallback) (HWND, UINT, WPARAM, LPARAM, void *, LRESULT *result)
 

Enumerations

enum  FlutterDesktopGpuPreference {
  NoPreference ,
  LowPowerPreference ,
  HighPerformancePreference
}
 
enum  FlutterDesktopUIThreadPolicy {
  Default ,
  RunOnPlatformThread ,
  RunOnSeparateThread
}
 
enum  FlutterDesktopAccessibilityMode {
  DefaultAccessibilityMode ,
  IAccessibleMode ,
  IAccessibleExMode
}
 
enum  FlutterDesktopImpellerSwitch {
  DefaultImpeller ,
  EnabledImpeller ,
  DisabledImpeller
}
 

Functions

FLUTTER_EXPORT FlutterDesktopViewControllerRef FlutterDesktopViewControllerCreate (int width, int height, FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT void FlutterDesktopViewControllerDestroy (FlutterDesktopViewControllerRef controller)
 
FLUTTER_EXPORT FlutterDesktopViewId FlutterDesktopViewControllerGetViewId (FlutterDesktopViewControllerRef view_controller)
 
FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopViewControllerGetEngine (FlutterDesktopViewControllerRef controller)
 
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopViewControllerGetView (FlutterDesktopViewControllerRef controller)
 
FLUTTER_EXPORT void FlutterDesktopViewControllerForceRedraw (FlutterDesktopViewControllerRef controller)
 
FLUTTER_EXPORT bool FlutterDesktopViewControllerHandleTopLevelWindowProc (FlutterDesktopViewControllerRef controller, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
 
FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopEngineCreate (const FlutterDesktopEngineProperties *engine_properties)
 
FLUTTER_EXPORT bool FlutterDesktopEngineDestroy (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT bool FlutterDesktopEngineRun (FlutterDesktopEngineRef engine, const char *entry_point)
 
FLUTTER_EXPORT uint64_t FlutterDesktopEngineProcessMessages (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT void FlutterDesktopEngineReloadSystemFonts (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT FlutterDesktopPluginRegistrarRef FlutterDesktopEngineGetPluginRegistrar (FlutterDesktopEngineRef engine, const char *plugin_name)
 
FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopEngineGetMessenger (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT FlutterDesktopTextureRegistrarRef FlutterDesktopEngineGetTextureRegistrar (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT void FlutterDesktopEngineSetNextFrameCallback (FlutterDesktopEngineRef engine, VoidCallback callback, void *user_data)
 
FLUTTER_EXPORT bool FlutterDesktopEngineIsPlatformThread (FlutterDesktopEngineRef engine)
 
FLUTTER_EXPORT void FlutterDesktopEnginePostPlatformThreadTask (FlutterDesktopEngineRef engine, VoidCallback callback, VoidCallback on_cancel, void *user_data)
 
FLUTTER_EXPORT HWND FlutterDesktopViewGetHWND (FlutterDesktopViewRef view)
 
FLUTTER_EXPORT IDXGIAdapter * FlutterDesktopViewGetGraphicsAdapter (FlutterDesktopViewRef view)
 
FLUTTER_EXPORT bool FlutterDesktopEngineGetGraphicsAdapter (FlutterDesktopEngineRef engine, IDXGIAdapter **adapter_out)
 
FLUTTER_EXPORT bool FlutterDesktopEngineProcessExternalWindowMessage (FlutterDesktopEngineRef engine, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
 
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetView (FlutterDesktopPluginRegistrarRef registrar)
 
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetViewById (FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopViewId view_id)
 
FLUTTER_EXPORT void FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate (FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopWindowProcCallback delegate, void *user_data)
 
FLUTTER_EXPORT void FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate (FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopWindowProcCallback delegate)
 
FLUTTER_EXPORT bool FlutterDesktopPluginRegistrarGetGraphicsAdapter (FlutterDesktopPluginRegistrarRef registrar, IDXGIAdapter **adapter_out)
 
FLUTTER_EXPORT UINT FlutterDesktopGetDpiForHWND (HWND hwnd)
 
FLUTTER_EXPORT UINT FlutterDesktopGetDpiForMonitor (HMONITOR monitor)
 
FLUTTER_EXPORT void FlutterDesktopResyncOutputStreams ()
 

Typedef Documentation

◆ FlutterDesktopEngineRef

typedef struct FlutterDesktopEngine* FlutterDesktopEngineRef

Definition at line 33 of file flutter_windows.h.

◆ FlutterDesktopViewControllerRef

typedef struct FlutterDesktopViewController* FlutterDesktopViewControllerRef

Definition at line 25 of file flutter_windows.h.

◆ FlutterDesktopViewId

typedef int64_t FlutterDesktopViewId

Definition at line 36 of file flutter_windows.h.

◆ FlutterDesktopViewRef

typedef struct FlutterDesktopView* FlutterDesktopViewRef

Definition at line 29 of file flutter_windows.h.

◆ FlutterDesktopWindowProcCallback

typedef bool(* FlutterDesktopWindowProcCallback) (HWND, UINT, WPARAM, LPARAM, void *, LRESULT *result)

Definition at line 334 of file flutter_windows.h.

◆ VoidCallback

typedef void(* VoidCallback) (void *)

Definition at line 21 of file flutter_windows.h.

Enumeration Type Documentation

◆ FlutterDesktopAccessibilityMode

Enumerator
DefaultAccessibilityMode 
IAccessibleMode 
IAccessibleExMode 

Definition at line 64 of file flutter_windows.h.

64 {
65 // Default value. Flutter will automatically select the best available
66 // implementation.
68 // Use the IAccessible implementation.
70 // Use the experimental IAccessibleEx implementation.
FlutterDesktopAccessibilityMode
@ IAccessibleMode
@ IAccessibleExMode
@ DefaultAccessibilityMode

◆ FlutterDesktopGpuPreference

Enumerator
NoPreference 
LowPowerPreference 
HighPerformancePreference 

Definition at line 39 of file flutter_windows.h.

39 {
40 // No preference.
42 // Prefer energy efficiency over performance, such as an integrated GPU.
43 // This falls back to a high performance GPU if no low power GPU is
44 // available.
46 // Prefer performance over energy efficiency, such as a discrete GPU or
47 // dedicated GPU.
48 // This falls back to a low power GPU if no high performance GPU is available.
FlutterDesktopGpuPreference
@ LowPowerPreference
@ HighPerformancePreference
@ NoPreference

◆ FlutterDesktopImpellerSwitch

Enumerator
DefaultImpeller 
EnabledImpeller 
DisabledImpeller 

Definition at line 75 of file flutter_windows.h.

75 {
76 // Use the default Impeller enablement behavior.
78 // Enable Impeller.
80 // Disable Impeller.
FlutterDesktopImpellerSwitch
@ DefaultImpeller
@ EnabledImpeller
@ DisabledImpeller

◆ FlutterDesktopUIThreadPolicy

Enumerator
Default 
RunOnPlatformThread 
RunOnSeparateThread 

Definition at line 53 of file flutter_windows.h.

53 {
54 // Default value. Currently will run the UI isolate on separate thread,
55 // later will be changed to running the UI isolate on platform thread.
56 Default,
57 // Run the UI isolate on platform thread.
59 // Run the UI isolate on a separate thread.
FlutterDesktopUIThreadPolicy
@ RunOnPlatformThread
@ RunOnSeparateThread
@ Default

Function Documentation

◆ FlutterDesktopEngineCreate()

FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopEngineCreate ( const FlutterDesktopEngineProperties engine_properties)

Definition at line 94 of file stub_flutter_windows_api.cc.

95 {
97 return s_stub_implementation->EngineCreate(*engine_properties);
98 }
99 return nullptr;
100}
virtual FlutterDesktopEngineRef EngineCreate(const FlutterDesktopEngineProperties &engine_properties)
static flutter::testing::StubFlutterWindowsApi * s_stub_implementation

References engine, flutter::testing::StubFlutterWindowsApi::EngineCreate(), HandleForEngine(), and s_stub_implementation.

Referenced by flutter::FlutterEngine::FlutterEngine(), flutter::testing::WindowsConfigBuilder::InitializeEngine(), and flutter::testing::TEST().

◆ FlutterDesktopEngineDestroy()

◆ FlutterDesktopEngineGetGraphicsAdapter()

◆ FlutterDesktopEngineGetMessenger()

FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopEngineGetMessenger ( FlutterDesktopEngineRef  engine)

Definition at line 162 of file stub_flutter_windows_api.cc.

163 {
164 // The stub ignores this, so just return an arbitrary non-zero value.
165 return reinterpret_cast<FlutterDesktopMessengerRef>(2);
166}

References engine, EngineFromHandle(), and flutter::FlutterWindowsEngine::messenger().

Referenced by flutter::FlutterEngine::FlutterEngine().

◆ FlutterDesktopEngineGetPluginRegistrar()

FLUTTER_EXPORT FlutterDesktopPluginRegistrarRef FlutterDesktopEngineGetPluginRegistrar ( FlutterDesktopEngineRef  engine,
const char *  plugin_name 
)

Definition at line 155 of file stub_flutter_windows_api.cc.

157 {
158 // The stub ignores this, so just return an arbitrary non-zero value.
159 return reinterpret_cast<FlutterDesktopPluginRegistrarRef>(1);
160}

References engine, EngineFromHandle(), and flutter::FlutterWindowsEngine::GetRegistrar().

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ FlutterDesktopEngineGetTextureRegistrar()

FLUTTER_EXPORT FlutterDesktopTextureRegistrarRef FlutterDesktopEngineGetTextureRegistrar ( FlutterDesktopEngineRef  engine)

Definition at line 168 of file stub_flutter_windows_api.cc.

169 {
170 // The stub ignores this, so just return an arbitrary non-zero value.
171 return reinterpret_cast<FlutterDesktopTextureRegistrarRef>(3);
172}
struct FlutterDesktopTextureRegistrar * FlutterDesktopTextureRegistrarRef

References engine, EngineFromHandle(), HandleForTextureRegistrar(), and texture_registrar.

Referenced by flutter::testing::TEST().

◆ FlutterDesktopEngineIsPlatformThread()

◆ FlutterDesktopEnginePostPlatformThreadTask()

◆ FlutterDesktopEngineProcessExternalWindowMessage()

FLUTTER_EXPORT bool FlutterDesktopEngineProcessExternalWindowMessage ( FlutterDesktopEngineRef  engine,
HWND  hwnd,
UINT  message,
WPARAM  wparam,
LPARAM  lparam,
LRESULT result 
)

Definition at line 196 of file stub_flutter_windows_api.cc.

202 {
205 engine, hwnd, message, wparam, lparam, result);
206 }
207 return false;
208}
virtual bool EngineProcessExternalWindowMessage(FlutterDesktopEngineRef engine, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
FlutterEngine engine
Definition main.cc:84
const char * message

References engine, EngineFromHandle(), flutter::testing::StubFlutterWindowsApi::EngineProcessExternalWindowMessage(), message, flutter::FlutterWindowsEngine::ProcessExternalWindowMessage(), and s_stub_implementation.

Referenced by flutter::FlutterEngine::ProcessExternalWindowMessage().

◆ FlutterDesktopEngineProcessMessages()

FLUTTER_EXPORT uint64_t FlutterDesktopEngineProcessMessages ( FlutterDesktopEngineRef  engine)

◆ FlutterDesktopEngineReloadSystemFonts()

◆ FlutterDesktopEngineRun()

◆ FlutterDesktopEngineSetNextFrameCallback()

◆ FlutterDesktopGetDpiForHWND()

FLUTTER_EXPORT UINT FlutterDesktopGetDpiForHWND ( HWND  hwnd)

Definition at line 370 of file flutter_windows.cc.

370 {
371 return flutter::GetDpiForHWND(hwnd);
372}
UINT GetDpiForHWND(HWND hwnd)
Definition dpi_utils.cc:128

References flutter::GetDpiForHWND().

Referenced by flutter::HostWindow::GetWindowContentSize().

◆ FlutterDesktopGetDpiForMonitor()

FLUTTER_EXPORT UINT FlutterDesktopGetDpiForMonitor ( HMONITOR  monitor)

Definition at line 374 of file flutter_windows.cc.

374 {
375 return flutter::GetDpiForMonitor(monitor);
376}
UINT GetDpiForMonitor(HMONITOR monitor)
Definition dpi_utils.cc:132

References flutter::GetDpiForMonitor().

◆ FlutterDesktopPluginRegistrarGetGraphicsAdapter()

FLUTTER_EXPORT bool FlutterDesktopPluginRegistrarGetGraphicsAdapter ( FlutterDesktopPluginRegistrarRef  registrar,
IDXGIAdapter **  adapter_out 
)

◆ FlutterDesktopPluginRegistrarGetView()

◆ FlutterDesktopPluginRegistrarGetViewById()

◆ FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate()

FLUTTER_EXPORT void FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate ( FlutterDesktopPluginRegistrarRef  registrar,
FlutterDesktopWindowProcCallback  delegate,
void *  user_data 
)

◆ FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate()

◆ FlutterDesktopResyncOutputStreams()

FLUTTER_EXPORT void FlutterDesktopResyncOutputStreams ( )

Definition at line 378 of file flutter_windows.cc.

378 {
379 FILE* unused;
380 if (freopen_s(&unused, "CONOUT$", "w", stdout)) {
381 _dup2(_fileno(stdout), 1);
382 }
383 if (freopen_s(&unused, "CONOUT$", "w", stderr)) {
384 _dup2(_fileno(stdout), 2);
385 }
386 std::ios::sync_with_stdio();
387}

◆ FlutterDesktopViewControllerCreate()

FLUTTER_EXPORT FlutterDesktopViewControllerRef FlutterDesktopViewControllerCreate ( int  width,
int  height,
FlutterDesktopEngineRef  engine 
)

◆ FlutterDesktopViewControllerDestroy()

◆ FlutterDesktopViewControllerForceRedraw()

◆ FlutterDesktopViewControllerGetEngine()

◆ FlutterDesktopViewControllerGetView()

FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopViewControllerGetView ( FlutterDesktopViewControllerRef  controller)

Definition at line 67 of file stub_flutter_windows_api.cc.

68 {
69 // The stub ignores this, so just return an arbitrary non-zero value.
70 return reinterpret_cast<FlutterDesktopViewRef>(1);
71}
struct FlutterDesktopView * FlutterDesktopViewRef

References HandleForView(), and ViewControllerFromHandle().

Referenced by flutter::FlutterViewController::FlutterViewController(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ FlutterDesktopViewControllerGetViewId()

FLUTTER_EXPORT FlutterDesktopViewId FlutterDesktopViewControllerGetViewId ( FlutterDesktopViewControllerRef  view_controller)

Definition at line 55 of file stub_flutter_windows_api.cc.

56 {
57 // The stub ignores this, so just return an arbitrary non-zero value.
58 return static_cast<FlutterDesktopViewId>(1);
59}
int64_t FlutterDesktopViewId

References ViewControllerFromHandle().

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::FlutterViewController::view_id().

◆ FlutterDesktopViewControllerHandleTopLevelWindowProc()

FLUTTER_EXPORT bool FlutterDesktopViewControllerHandleTopLevelWindowProc ( FlutterDesktopViewControllerRef  controller,
HWND  hwnd,
UINT  message,
WPARAM  wparam,
LPARAM  lparam,
LRESULT result 
)

Definition at line 80 of file stub_flutter_windows_api.cc.

86 {
89 hwnd, message, wparam, lparam, result);
90 }
91 return false;
92}
virtual bool ViewControllerHandleTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)

References message, s_stub_implementation, ViewControllerFromHandle(), and flutter::testing::StubFlutterWindowsApi::ViewControllerHandleTopLevelWindowProc().

Referenced by flutter::FlutterViewController::HandleTopLevelWindowProc().

◆ FlutterDesktopViewGetGraphicsAdapter()

◆ FlutterDesktopViewGetHWND()