| Flutter Linux Embedder |

fl_compositor_opengl.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_COMPOSITOR_OPENGL_H_
6 #define FLUTTER_SHELL_PLATFORM_LINUX_FL_COMPOSITOR_OPENGL_H_
7
8 #include <gtk/gtk.h>
9
10 #include "flutter/shell/platform/embedder/embedder.h"
11 #include "flutter/shell/platform/linux/fl_compositor.h"
12 #include "flutter/shell/platform/linux/fl_framebuffer.h"
13 #include "flutter/shell/platform/linux/fl_opengl_manager.h"
14 #include "flutter/shell/platform/linux/fl_task_runner.h"
15
16 G_BEGIN_DECLS
17
18 G_DECLARE_FINAL_TYPE(FlCompositorOpenGL,
19 fl_compositor_opengl,
20 FL,
21 COMPOSITOR_OPENGL,
22 FlCompositor)
23
24 /**
25 * FlCompositorOpenGL:
26 *
27 * #FlCompositorOpenGL is class that implements compositing using OpenGL.
28 */
29
30 /**
31 * fl_compositor_opengl_new:
32 * @task_runner: an #FlTaskRunnner.
33 * @opengl_manager: an #FlOpenGLManager
34 * @shareable: %TRUE if the can use a framebuffer that is shared between
35 * contexts.
36 *
37 * Creates a new OpenGL compositor.
38 *
39 * Returns: a new #FlCompositorOpenGL.
40 */
41 FlCompositorOpenGL* fl_compositor_opengl_new(FlTaskRunner* task_runner,
42 FlOpenGLManager* opengl_manager,
43 gboolean shareable);
44
45 /**
46 * fl_compositor_opengl_render:
47 * @compositor: an #FlCompositorOpenGL.
48 * @width: output width in pixels.
49 * @height: output height in pixels.
50 *
51 * Renders the current frame.
52 */
53 void fl_compositor_opengl_render(FlCompositorOpenGL* compositor,
54 size_t width,
55 size_t height);
56
57 G_END_DECLS
58
59 #endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_COMPOSITOR_OPENGL_H_
FL
FL
Definition: fl_binary_messenger.cc:27
fl_compositor.h
fl_compositor_opengl_new
FlCompositorOpenGL * fl_compositor_opengl_new(FlTaskRunner *task_runner, FlOpenGLManager *opengl_manager, gboolean shareable)
Definition: fl_compositor_opengl.cc:415
G_DECLARE_FINAL_TYPE
G_BEGIN_DECLS G_DECLARE_FINAL_TYPE(FlCompositorOpenGL, fl_compositor_opengl, FL, COMPOSITOR_OPENGL, FlCompositor) FlCompositorOpenGL *fl_compositor_opengl_new(FlTaskRunner *task_runner
fl_compositor_opengl_render
void fl_compositor_opengl_render(FlCompositorOpenGL *compositor, size_t width, size_t height)
shareable
G_BEGIN_DECLS FlOpenGLManager gboolean shareable
Definition: fl_compositor_opengl.h:43
opengl_manager
G_BEGIN_DECLS FlOpenGLManager * opengl_manager
Definition: fl_compositor_opengl.h:42
height
self height
Definition: fl_compositor_software.cc:43
width
self width
Definition: fl_compositor_software.cc:42
fl_framebuffer.h
fl_opengl_manager.h
fl_task_runner.h