Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
fl_view_renderer.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_VIEW_RENDERER_H_
6#define FLUTTER_SHELL_PLATFORM_LINUX_FL_VIEW_RENDERER_H_
7
8#include <gtk/gtk.h>
9
11
12G_BEGIN_DECLS
13
15 fl_view_renderer,
16 FL,
17 VIEW_RENDERER,
18 GtkDrawingArea)
19
20/**
21 * FlViewRenderer:
22 *
23 * #FlViewRenderer is a GTK widget that renders the contents of a Flutter view.
24 * Input handling and other view responsibilities are handled by #FlView.
25 *
26 * Subclasses implement rendering for a particular backend, for example
27 * #FlViewRendererOpenGL and #FlViewRendererSoftware. The "first-frame" signal
28 * is emitted when the first frame has been rendered.
29 */
30
31struct _FlViewRendererClass {
32 GtkDrawingAreaClass parent_class;
33
34 /**
35 * Composites a frame into the renderer. May be called from any thread.
36 *
37 * This method is abstract and must be implemented by subclasses.
38 */
39 void (*present_layers)(FlViewRenderer* renderer,
40 const FlutterLayer** layers,
41 size_t layers_count);
42};
43
44/**
45 * fl_view_renderer_set_background_color:
46 * @renderer: an #FlViewRenderer.
47 * @color: the background color.
48 *
49 * Sets the background color drawn behind the Flutter frame.
50 */
51void fl_view_renderer_set_background_color(FlViewRenderer* renderer,
52 const GdkRGBA* color);
53
54/**
55 * fl_view_renderer_paint_background:
56 * @renderer: an #FlViewRenderer.
57 * @cr: a #cairo_t to paint to.
58 *
59 * Paints the background color behind the Flutter frame. Subclasses call this
60 * at the start of their draw implementation.
61 */
62void fl_view_renderer_paint_background(FlViewRenderer* renderer, cairo_t* cr);
63
64/**
65 * fl_view_renderer_present_layers:
66 * @renderer: an #FlViewRenderer.
67 * @layers: layers to draw.
68 * @layers_count: number of layers.
69 *
70 * Composites a frame into the renderer. This method can be called from any
71 * thread.
72 */
73void fl_view_renderer_present_layers(FlViewRenderer* renderer,
74 const FlutterLayer** layers,
75 size_t layers_count);
76
77/**
78 * fl_view_renderer_notify_frame:
79 * @renderer: an #FlViewRenderer.
80 *
81 * Notifies that a frame has been rendered. Subclasses call this on each frame.
82 * The "first-frame" signal is emitted on the first call.
83 */
84void fl_view_renderer_notify_frame(FlViewRenderer* renderer);
85
86G_END_DECLS
87
88#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_VIEW_RENDERER_H_
const FlutterLayer size_t layers_count
const FlutterLayer ** layers
void fl_view_renderer_present_layers(FlViewRenderer *renderer, const FlutterLayer **layers, size_t layers_count)
void fl_view_renderer_set_background_color(FlViewRenderer *renderer, const GdkRGBA *color)
void fl_view_renderer_notify_frame(FlViewRenderer *renderer)
void fl_view_renderer_paint_background(FlViewRenderer *renderer, cairo_t *cr)
G_BEGIN_DECLS G_DECLARE_DERIVABLE_TYPE(FlViewRenderer, fl_view_renderer, FL, VIEW_RENDERER, GtkDrawingArea) struct _FlViewRendererClass