blob: c447ccc7eb9f1d99539e30b5983d153eb69b9896 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#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>
// Added here to stop the compiler from optimising this function away.
G_MODULE_EXPORT GType fl_texture_gl_get_type();
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))
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) {
uint32_t target = 0, name = 0;
if (!FL_TEXTURE_GL_GET_CLASS(self)->populate(self, &target, &name, &width,
&height, error)) {
return FALSE;
}
opengl_texture->target = target;
opengl_texture->name = name;
opengl_texture->format = GL_RGBA8;
opengl_texture->destruction_callback = nullptr;
opengl_texture->user_data = nullptr;
opengl_texture->width = width;
opengl_texture->height = height;
return TRUE;
}