blob: 6f36daa83ab7d89c92fe169ff1b4528ef1c59752 [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.
#ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_
#define FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_
#include <gtk/gtk.h>
#include <cstdint>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE(FlBackingStoreProvider,
fl_backing_store_provider,
FL,
BACKING_STORE_PROVIDER,
GObject)
/**
* FlBackingStoreProvider:
*
* #FlBackingStoreProvider creates framebuffers and their backing textures
* for embedder compositor.
*/
/**
* fl_backing_store_provider_new:
* @width: width of texture.
* @height: height of texture.
*
* Creates a new frame buffer. fl_renderer_make_current() must be called
* first.
*
* Returns: a new #FlBackingStoreProvider.
*/
FlBackingStoreProvider* fl_backing_store_provider_new(int width, int height);
/**
* fl_backing_store_provider_get_gl_framebuffer_id:
* @provider: an #FlBackingStoreProvider.
*
* Gets created framebuffer id.
*
* Returns: gl framebuffer id, 0 if creation failed.
*/
uint32_t fl_backing_store_provider_get_gl_framebuffer_id(
FlBackingStoreProvider* provider);
/**
* fl_backing_store_provider_get_gl_texture_id:
* @provider: an #FlBackingStoreProvider.
*
* Gets created texture id.
*
* Returns: gl texture id, 0 if creation failed.
*/
uint32_t fl_backing_store_provider_get_gl_texture_id(
FlBackingStoreProvider* provider);
/**
* fl_backing_store_provider_get_gl_target:
* @provider: an #FlBackingStoreProvider.
*
* Gets target texture (example GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE).
*
* Returns: target texture.
*/
uint32_t fl_backing_store_provider_get_gl_target(
FlBackingStoreProvider* provider);
/**
* fl_backing_store_provider_get_gl_format:
* @provider: an #FlBackingStoreProvider.
*
* Gets texture format (example GL_RGBA8).
*
* Returns: texture format.
*/
uint32_t fl_backing_store_provider_get_gl_format(
FlBackingStoreProvider* provider);
/**
* fl_backing_store_provider_get_geometry:
* @provider: an #FlBackingStoreProvider.
*
* Gets geometry of framebuffer.
*
* Returns: geometry of backing store.
*/
GdkRectangle fl_backing_store_provider_get_geometry(
FlBackingStoreProvider* provider);
G_END_DECLS
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_