Flutter Windows Embedder
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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
 
typedef const FlutterDesktopPixelBuffer *(* FlutterDesktopPixelBufferTextureCallback) (size_t width, size_t height, void *user_data)
 
typedef const FlutterDesktopGpuSurfaceDescriptor *(* FlutterDesktopGpuSurfaceTextureCallback) (size_t width, size_t height, void *user_data)
 

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)
 

Typedef Documentation

◆ FlutterDesktopGpuSurfaceTextureCallback

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

Definition at line 124 of file flutter_texture_registrar.h.

◆ FlutterDesktopPixelBufferTextureCallback

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

Definition at line 115 of file flutter_texture_registrar.h.

◆ FlutterDesktopTextureRegistrarRef

typedef struct FlutterDesktopTextureRegistrar* FlutterDesktopTextureRegistrarRef

Definition at line 20 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).
FlutterDesktopGpuSurfaceType
@ kFlutterDesktopGpuSurfaceTypeDxgiSharedHandle
@ kFlutterDesktopGpuSurfaceTypeD3d11Texture2D
@ kFlutterDesktopGpuSurfaceTypeNone

◆ 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.
FlutterDesktopPixelFormat
@ kFlutterDesktopPixelFormatBGRA8888
@ kFlutterDesktopPixelFormatNone
@ kFlutterDesktopPixelFormatRGBA8888

◆ 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.
FlutterDesktopTextureType
@ kFlutterDesktopGpuSurfaceTexture
@ kFlutterDesktopPixelBufferTexture

Function Documentation

◆ FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable()

FLUTTER_EXPORT bool FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable ( FlutterDesktopTextureRegistrarRef  texture_registrar,
int64_t  texture_id 
)

Definition at line 448 of file flutter_windows.cc.

450  {
451  return TextureRegistrarFromHandle(texture_registrar)
453 }
uint32_t texture_id
static flutter::FlutterWindowsTextureRegistrar * TextureRegistrarFromHandle(FlutterDesktopTextureRegistrarRef ref)

References flutter::FlutterWindowsTextureRegistrar::MarkTextureFrameAvailable(), texture_id, and TextureRegistrarFromHandle().

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

◆ FlutterDesktopTextureRegistrarRegisterExternalTexture()

FLUTTER_EXPORT int64_t FlutterDesktopTextureRegistrarRegisterExternalTexture ( FlutterDesktopTextureRegistrarRef  texture_registrar,
const FlutterDesktopTextureInfo info 
)

Definition at line 427 of file flutter_windows.cc.

429  {
430  return TextureRegistrarFromHandle(texture_registrar)
431  ->RegisterTexture(texture_info);
432 }
int64_t RegisterTexture(const FlutterDesktopTextureInfo *texture_info)

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 434 of file flutter_windows.cc.

438  {
439  auto registrar = TextureRegistrarFromHandle(texture_registrar);
440  if (callback) {
441  registrar->UnregisterTexture(
443  return;
444  }
445  registrar->UnregisterTexture(texture_id);
446 }
FlutterDesktopBinaryReply callback

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

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