Flutter Linux Embedder
fl_opengl_manager.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_OPENGL_MANAGER_H_
6 #define FLUTTER_SHELL_PLATFORM_LINUX_FL_OPENGL_MANAGER_H_
7 
8 #include <gtk/gtk.h>
9 
10 G_BEGIN_DECLS
11 
12 G_DECLARE_FINAL_TYPE(FlOpenGLManager,
13  fl_opengl_manager,
14  FL,
15  OPENGL_MANAGER,
16  GObject)
17 
18 /**
19  * fl_opengl_manager_new:
20  *
21  * Creates an object that allows Flutter to render by OpenGL ES.
22  *
23  * Returns: a new #FlOpenGLManager.
24  */
25 FlOpenGLManager* fl_opengl_manager_new();
26 
27 /**
28  * fl_opengl_manager_create_contexts:
29  * @manager: an #FlOpenGLManager.
30  * @window: the window that is being rendered on.
31  * @error: (allow-none): #GError location to store the error occurring, or
32  * %NULL to ignore.
33  *
34  * Create rendering contexts.
35  *
36  * Returns: %TRUE if contexts were created, %FALSE if there was an error.
37  */
38 gboolean fl_opengl_manager_create_contexts(FlOpenGLManager* manager,
39  GdkWindow* window,
40  GError** error);
41 
42 /**
43  * fl_opengl_manager_get_context:
44  * @manager: an #FlOpenGLManager.
45  *
46  * Returns: the main context used for rendering.
47  */
48 GdkGLContext* fl_opengl_manager_get_context(FlOpenGLManager* manager);
49 
50 /**
51  * fl_opengl_manager_make_current:
52  * @manager: an #FlOpenGLManager.
53  *
54  * Makes the rendering context current.
55  */
56 void fl_opengl_manager_make_current(FlOpenGLManager* manager);
57 
58 /**
59  * fl_opengl_manager_make_resource_current:
60  * @manager: an #FlOpenGLManager.
61  *
62  * Makes the resource rendering context current.
63  */
64 void fl_opengl_manager_make_resource_current(FlOpenGLManager* manager);
65 
66 /**
67  * fl_opengl_manager_clear_current:
68  * @manager: an #FlOpenGLManager.
69  *
70  * Clears the current rendering context.
71  */
72 void fl_opengl_manager_clear_current(FlOpenGLManager* manager);
73 
74 G_END_DECLS
75 
76 #endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_OPENGL_MANAGER_H_
return window
FlOpenGLManager * fl_opengl_manager_new()
GdkGLContext * fl_opengl_manager_get_context(FlOpenGLManager *manager)
void fl_opengl_manager_make_current(FlOpenGLManager *manager)
void fl_opengl_manager_clear_current(FlOpenGLManager *manager)
G_BEGIN_DECLS G_DECLARE_FINAL_TYPE(FlOpenGLManager, fl_opengl_manager, FL, OPENGL_MANAGER, GObject) FlOpenGLManager *fl_opengl_manager_new()
void fl_opengl_manager_make_resource_current(FlOpenGLManager *manager)
gboolean fl_opengl_manager_create_contexts(FlOpenGLManager *manager, GdkWindow *window, GError **error)
const uint8_t uint32_t uint32_t GError ** error