76 FlPixelBufferTexture*
self = FL_PIXEL_BUFFER_TEXTURE(
texture);
79 fl_pixel_buffer_texture_get_instance_private(
self));
81 const uint8_t*
buffer =
nullptr;
82 if (!FL_PIXEL_BUFFER_TEXTURE_GET_CLASS(
self)->copy_pixels(
92 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
94 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
96 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
98 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
104 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8,
width,
height, 0, GL_RGBA,
105 GL_UNSIGNED_BYTE,
buffer);
108 opengl_texture->
target = GL_TEXTURE_2D;
110 opengl_texture->
format = GL_RGBA8;
static void fl_pixel_buffer_texture_class_init(FlPixelBufferTextureClass *klass)
static void check_gl_error(int line)
static void fl_pixel_buffer_texture_iface_init(FlTextureInterface *iface)
FlPixelBufferTexturePrivate * priv
static void fl_pixel_buffer_texture_init(FlPixelBufferTexture *self)
gboolean fl_pixel_buffer_texture_populate(FlPixelBufferTexture *texture, uint32_t width, uint32_t height, FlutterOpenGLTexture *opengl_texture, GError **error)
G_DEFINE_TYPE_WITH_CODE(FlPixelBufferTexture, fl_pixel_buffer_texture, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(fl_texture_get_type(), fl_pixel_buffer_texture_iface_init);G_ADD_PRIVATE(FlPixelBufferTexture)) static void fl_pixel_buffer_texture_set_id(FlTexture *texture
static int64_t fl_pixel_buffer_texture_get_id(FlTexture *texture)
static void fl_pixel_buffer_texture_dispose(GObject *object)
static const uint8_t buffer[]
const uint8_t uint32_t uint32_t GError ** error
VoidCallback destruction_callback
void * user_data
User data to be returned on the invocation of the destruction callback.
uint32_t format
The texture format (example GL_RGBA8).