Flutter Linux Embedder
fl_texture_gl.cc File Reference
#include "flutter/shell/platform/linux/public/flutter_linux/fl_texture_gl.h"
#include "flutter/shell/platform/linux/fl_texture_gl_private.h"
#include <epoxy/gl.h>
#include <gmodule.h>
#include <cstdio>

Go to the source code of this file.

Classes

struct  FlTextureGLPrivate
 

Functions

static void fl_texture_gl_texture_iface_init (FlTextureInterface *iface)
 
 G_DEFINE_TYPE_WITH_CODE (FlTextureGL, fl_texture_gl, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(fl_texture_get_type(), fl_texture_gl_texture_iface_init);G_ADD_PRIVATE(FlTextureGL)) static void fl_texture_gl_set_id(FlTexture *texture
 
static int64_t fl_texture_gl_get_id (FlTexture *texture)
 
static void fl_texture_gl_class_init (FlTextureGLClass *klass)
 
static void fl_texture_gl_init (FlTextureGL *self)
 
gboolean fl_texture_gl_populate (FlTextureGL *self, uint32_t width, uint32_t height, FlutterOpenGLTexture *opengl_texture, GError **error)
 

Variables

int64_t id
 
FlTextureGLPrivatepriv
 

Function Documentation

◆ fl_texture_gl_class_init()

static void fl_texture_gl_class_init ( FlTextureGLClass *  klass)
static

Definition at line 46 of file fl_texture_gl.cc.

46 {}

◆ fl_texture_gl_get_id()

static int64_t fl_texture_gl_get_id ( FlTexture *  texture)
static

Definition at line 34 of file fl_texture_gl.cc.

34  {
35  FlTextureGL* self = FL_TEXTURE_GL(texture);
36  FlTextureGLPrivate* priv = reinterpret_cast<FlTextureGLPrivate*>(
37  fl_texture_gl_get_instance_private(self));
38  return priv->id;
39 }

References FlTextureGLPrivate::id, and priv.

Referenced by fl_texture_gl_texture_iface_init().

◆ fl_texture_gl_init()

static void fl_texture_gl_init ( FlTextureGL *  self)
static

Definition at line 48 of file fl_texture_gl.cc.

48 {}

◆ fl_texture_gl_populate()

gboolean fl_texture_gl_populate ( FlTextureGL *  texture,
uint32_t  width,
uint32_t  height,
FlutterOpenGLTexture *  opengl_texture,
GError **  error 
)

fl_texture_gl_populate: @texture: an #FlTextureGL. @width: width of the texture. @height: height of the texture. @opengl_texture: (out): return an #FlutterOpenGLTexture. @error: (allow-none): #GError location to store the error occurring, or NULL to ignore.

Attempts to populate the specified @opengl_texture with texture details such as the name, width, height and the pixel format.

Returns: TRUE on success.

Definition at line 50 of file fl_texture_gl.cc.

54  {
55  uint32_t target = 0, name = 0;
56  if (!FL_TEXTURE_GL_GET_CLASS(self)->populate(self, &target, &name, &width,
57  &height, error)) {
58  return FALSE;
59  }
60 
61  opengl_texture->target = target;
62  opengl_texture->name = name;
63  opengl_texture->format = GL_RGBA8;
64  opengl_texture->destruction_callback = nullptr;
65  opengl_texture->user_data = nullptr;
66  opengl_texture->width = width;
67  opengl_texture->height = height;
68 
69  return TRUE;
70 }

References error, height, target, TRUE, and width.

Referenced by fl_engine_gl_external_texture_frame_callback(), and TEST().

◆ fl_texture_gl_texture_iface_init()

static void fl_texture_gl_texture_iface_init ( FlTextureInterface *  iface)
static

Definition at line 41 of file fl_texture_gl.cc.

41  {
42  iface->set_id = fl_texture_gl_set_id;
43  iface->get_id = fl_texture_gl_get_id;
44 }

References fl_texture_gl_get_id().

◆ G_DEFINE_TYPE_WITH_CODE()

G_DEFINE_TYPE_WITH_CODE ( FlTextureGL  ,
fl_texture_gl  ,
G_TYPE_OBJECT  ,
G_IMPLEMENT_INTERFACE(fl_texture_get_type(), fl_texture_gl_texture_iface_init);G_ADD_PRIVATE(FlTextureGL)   
)

Variable Documentation

◆ id

priv id
Initial value:
{
FlTextureGL* self = FL_TEXTURE_GL(texture)

Definition at line 26 of file fl_texture_gl.cc.

◆ priv

Initial value:
= reinterpret_cast<FlTextureGLPrivate*>(
fl_texture_gl_get_instance_private(self))

Definition at line 28 of file fl_texture_gl.cc.

Referenced by fl_texture_gl_get_id().

fl_texture_gl_get_id
static int64_t fl_texture_gl_get_id(FlTexture *texture)
Definition: fl_texture_gl.cc:34
FlTextureGLPrivate
Definition: fl_texture_gl.cc:12
FlTextureGLPrivate::id
int64_t id
Definition: fl_texture_gl.cc:13
height
G_BEGIN_DECLS int height
Definition: fl_backing_store_provider.h:37
TRUE
return TRUE
Definition: fl_pixel_buffer_texture_test.cc:53
priv
FlTextureGLPrivate * priv
Definition: fl_texture_gl.cc:28
error
const uint8_t uint32_t uint32_t GError ** error
Definition: fl_pixel_buffer_texture_test.cc:40
target
uint32_t * target
Definition: fl_texture_registrar_test.cc:40
width
const uint8_t uint32_t * width
Definition: fl_pixel_buffer_texture_test.cc:38