Flutter Windows Embedder
flutter_texture_registrar.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "flutter_export.h"

Go to the source code of this file.

Classes

struct  FlutterDesktopPixelBuffer
 
struct  FlutterDesktopGpuSurfaceDescriptor
 
struct  FlutterDesktopPixelBufferTextureConfig
 
struct  FlutterDesktopGpuSurfaceTextureConfig
 
struct  FlutterDesktopTextureInfo
 

Typedefs

typedef struct FlutterDesktopTextureRegistrar * FlutterDesktopTextureRegistrarRef
 

Enumerations

enum  FlutterDesktopTextureType {
  kFlutterDesktopPixelBufferTexture,
  kFlutterDesktopGpuSurfaceTexture
}
 
enum  FlutterDesktopGpuSurfaceType {
  kFlutterDesktopGpuSurfaceTypeNone,
  kFlutterDesktopGpuSurfaceTypeDxgiSharedHandle,
  kFlutterDesktopGpuSurfaceTypeD3d11Texture2D
}
 
enum  FlutterDesktopPixelFormat {
  kFlutterDesktopPixelFormatNone,
  kFlutterDesktopPixelFormatRGBA8888,
  kFlutterDesktopPixelFormatBGRA8888
}
 

Functions

FLUTTER_EXPORT int64_t FlutterDesktopTextureRegistrarRegisterExternalTexture (FlutterDesktopTextureRegistrarRef texture_registrar, const FlutterDesktopTextureInfo *info)
 
FLUTTER_EXPORT void FlutterDesktopTextureRegistrarUnregisterExternalTexture (FlutterDesktopTextureRegistrarRef texture_registrar, int64_t texture_id, void(*callback)(void *user_data), void *user_data)
 
FLUTTER_EXPORT bool FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable (FlutterDesktopTextureRegistrarRef texture_registrar, int64_t texture_id)
 

Variables

const typedef FlutterDesktopPixelBuffer *(* FlutterDesktopPixelBufferTextureCallback )(size_t width, size_t height, void *user_data)
 
const typedef FlutterDesktopGpuSurfaceDescriptor *(* FlutterDesktopGpuSurfaceTextureCallback )(size_t width, size_t height, void *user_data)
 

Typedef Documentation

◆ FlutterDesktopTextureRegistrarRef

typedef struct FlutterDesktopTextureRegistrar* FlutterDesktopTextureRegistrarRef

Definition at line 19 of file flutter_texture_registrar.h.

Enumeration Type Documentation

◆ FlutterDesktopGpuSurfaceType

Enumerator
kFlutterDesktopGpuSurfaceTypeNone 
kFlutterDesktopGpuSurfaceTypeDxgiSharedHandle 
kFlutterDesktopGpuSurfaceTypeD3d11Texture2D 

Definition at line 32 of file flutter_texture_registrar.h.

32  {
33  // Uninitialized.
35  // A DXGI shared texture handle (Windows only).
36  // See
37  // https://docs.microsoft.com/en-us/windows/win32/api/dxgi/nf-dxgi-idxgiresource-getsharedhandle
39  // A |ID3D11Texture2D| (Windows only).

◆ FlutterDesktopPixelFormat

Enumerator
kFlutterDesktopPixelFormatNone 
kFlutterDesktopPixelFormatRGBA8888 
kFlutterDesktopPixelFormatBGRA8888 

Definition at line 44 of file flutter_texture_registrar.h.

44  {
45  // Uninitialized.
47  // Represents a 32-bit RGBA color format with 8 bits each for red, green, blue
48  // and alpha.
50  // Represents a 32-bit BGRA color format with 8 bits each for blue, green, red
51  // and alpha.

◆ FlutterDesktopTextureType

Enumerator
kFlutterDesktopPixelBufferTexture 
kFlutterDesktopGpuSurfaceTexture 

Definition at line 24 of file flutter_texture_registrar.h.

24  {
25  // A Pixel buffer-based texture.
27  // A platform-specific GPU surface-backed texture.

Function Documentation

◆ FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable()

FLUTTER_EXPORT bool FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable ( FlutterDesktopTextureRegistrarRef  texture_registrar,
int64_t  texture_id 
)

◆ FlutterDesktopTextureRegistrarRegisterExternalTexture()

FLUTTER_EXPORT int64_t FlutterDesktopTextureRegistrarRegisterExternalTexture ( FlutterDesktopTextureRegistrarRef  texture_registrar,
const FlutterDesktopTextureInfo info 
)

Definition at line 422 of file flutter_windows.cc.

424  {
425  return TextureRegistrarFromHandle(texture_registrar)
426  ->RegisterTexture(texture_info);
427 }

References flutter::FlutterWindowsTextureRegistrar::RegisterTexture(), and TextureRegistrarFromHandle().

Referenced by flutter::TextureRegistrarImpl::RegisterTexture().

◆ FlutterDesktopTextureRegistrarUnregisterExternalTexture()

FLUTTER_EXPORT void FlutterDesktopTextureRegistrarUnregisterExternalTexture ( FlutterDesktopTextureRegistrarRef  texture_registrar,
int64_t  texture_id,
void(*)(void *user_data callback,
void *  user_data 
)

Definition at line 429 of file flutter_windows.cc.

433  {
434  auto registrar = TextureRegistrarFromHandle(texture_registrar);
435  if (callback) {
436  registrar->UnregisterTexture(
438  return;
439  }
440  registrar->UnregisterTexture(texture_id);
441 }

References callback, texture_id, TextureRegistrarFromHandle(), and user_data.

Referenced by flutter::TextureRegistrarImpl::UnregisterTexture().

Variable Documentation

◆ FlutterDesktopGpuSurfaceTextureCallback

const typedef FlutterDesktopGpuSurfaceDescriptor*( * FlutterDesktopGpuSurfaceTextureCallback) (size_t width, size_t height, void *user_data)

Definition at line 125 of file flutter_texture_registrar.h.

◆ FlutterDesktopPixelBufferTextureCallback

const typedef FlutterDesktopPixelBuffer*( * FlutterDesktopPixelBufferTextureCallback) (size_t width, size_t height, void *user_data)

Definition at line 116 of file flutter_texture_registrar.h.

TextureRegistrarFromHandle
static flutter::FlutterWindowsTextureRegistrar * TextureRegistrarFromHandle(FlutterDesktopTextureRegistrarRef ref)
Definition: flutter_windows.cc:64
kFlutterDesktopGpuSurfaceTexture
@ kFlutterDesktopGpuSurfaceTexture
Definition: flutter_texture_registrar.h:28
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:52
flutter::FlutterWindowsTextureRegistrar::MarkTextureFrameAvailable
bool MarkTextureFrameAvailable(int64_t texture_id)
Definition: flutter_windows_texture_registrar.cc:103
kFlutterDesktopGpuSurfaceTypeNone
@ kFlutterDesktopGpuSurfaceTypeNone
Definition: flutter_texture_registrar.h:34
FlutterDesktopTextureType
FlutterDesktopTextureType
Definition: flutter_texture_registrar.h:24
kFlutterDesktopPixelFormatBGRA8888
@ kFlutterDesktopPixelFormatBGRA8888
Definition: flutter_texture_registrar.h:52
FlutterDesktopGpuSurfaceType
FlutterDesktopGpuSurfaceType
Definition: flutter_texture_registrar.h:32
FlutterDesktopPixelFormat
FlutterDesktopPixelFormat
Definition: flutter_texture_registrar.h:44
kFlutterDesktopGpuSurfaceTypeD3d11Texture2D
@ kFlutterDesktopGpuSurfaceTypeD3d11Texture2D
Definition: flutter_texture_registrar.h:40
kFlutterDesktopGpuSurfaceTypeDxgiSharedHandle
@ kFlutterDesktopGpuSurfaceTypeDxgiSharedHandle
Definition: flutter_texture_registrar.h:38
kFlutterDesktopPixelFormatNone
@ kFlutterDesktopPixelFormatNone
Definition: flutter_texture_registrar.h:46
kFlutterDesktopPixelBufferTexture
@ kFlutterDesktopPixelBufferTexture
Definition: flutter_texture_registrar.h:26
texture_id
uint32_t texture_id
Definition: compositor_opengl.cc:20
kFlutterDesktopPixelFormatRGBA8888
@ kFlutterDesktopPixelFormatRGBA8888
Definition: flutter_texture_registrar.h:49
flutter::FlutterWindowsTextureRegistrar::RegisterTexture
int64_t RegisterTexture(const FlutterDesktopTextureInfo *texture_info)
Definition: flutter_windows_texture_registrar.cc:26
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:51