17 EGLDisplay egl_display = eglGetCurrentDisplay();
18 if (egl_display == EGL_NO_DISPLAY) {
19 g_warning(
"Failed to create EGL image: Failed to get current EGL display");
20 return EGL_NO_IMAGE_KHR;
23 EGLContext egl_context = eglGetCurrentContext();
24 if (egl_context == EGL_NO_CONTEXT) {
25 g_warning(
"Failed to create EGL image: Failed to get current EGL context");
26 return EGL_NO_IMAGE_KHR;
29 return eglCreateImageKHR(
30 egl_display, egl_context, EGL_GL_TEXTURE_2D,
31 reinterpret_cast<EGLClientBuffer
>(
static_cast<intptr_t
>(
texture_id)),
38 FlEGLImage*
self = FL_EGL_IMAGE(
object);
40 if (self->image != EGL_NO_IMAGE_KHR) {
41 EGLDisplay egl_display = eglGetCurrentDisplay();
42 if (egl_display == EGL_NO_DISPLAY) {
44 "Failed to destroy EGL image: Failed to get current EGL display");
46 eglDestroyImageKHR(egl_display, self->image);
50 G_OBJECT_CLASS(fl_egl_image_parent_class)->dispose(
object);
61 FL_EGL_IMAGE(g_object_new(fl_egl_image_get_type(),
nullptr));
69 g_return_val_if_fail(FL_IS_EGL_IMAGE(image), EGL_NO_IMAGE_KHR);
G_DEFINE_TYPE(FlBasicMessageChannelResponseHandle, fl_basic_message_channel_response_handle, G_TYPE_OBJECT) static void fl_basic_message_channel_response_handle_dispose(GObject *object)
static EGLImage create_egl_image(GLuint texture_id)
FlEGLImage * fl_egl_image_new(GLuint texture)
static void fl_egl_image_init(FlEGLImage *self)
EGLImage fl_egl_image_get_image(FlEGLImage *image)
static void fl_egl_image_dispose(GObject *object)
static void fl_egl_image_class_init(FlEGLImageClass *klass)