gtkmm 4.10.0
|
Auxiliary object for snapshots. More...
#include <gtkmm/snapshot.h>
Public Member Functions | |
Snapshot (Snapshot && src) noexcept | |
Snapshot & | operator= (Snapshot && src) noexcept |
~Snapshot () noexcept override | |
GtkSnapshot * | gobj () |
Provides access to the underlying C GObject. | |
const GtkSnapshot * | gobj () const |
Provides access to the underlying C GObject. | |
GtkSnapshot * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. | |
void | push_debug (const Glib::ustring & name) |
Creates a new debug node. | |
void | push_opacity (double opacity) |
Modifies the opacity of an image. | |
void | push_blur (double radius) |
Blurs an image. | |
void | push_repeat (const graphene_rect_t * bounds, const graphene_rect_t * child_bounds) |
Creates a node that repeats the child node. | |
void | push_repeat (const Gdk::Rectangle & bounds, const Gdk::Rectangle & child_bounds) |
Creates a node that repeats the child node. | |
void | push_repeat (const Gdk::Rectangle & bounds) |
A push_repeat() convenience overload. | |
void | push_clip (const graphene_rect_t * bounds) |
Clips an image to a rectangle. | |
void | push_clip (const Gdk::Rectangle & bounds) |
Clips an image to a rectangle. | |
void | push_cross_fade (double progress) |
Snapshots a cross-fade operation between two images with the given progress. | |
void | gl_shader_pop_texture () |
Removes the top element from the stack of render nodes and adds it to the nearest Gsk::GLShaderNode below it. | |
void | pop () |
Removes the top element from the stack of render nodes, and appends it to the node underneath it. | |
void | save () |
Makes a copy of the current state of snapshot and saves it on an internal stack. | |
void | restore () |
Restores snapshot to the state saved by a preceding call to save() and removes that state from the stack of saved states. | |
void | rotate (float angle) |
Rotates @ snapshot's coordinate system by angle degrees in 2D space - or in 3D speak, rotates around the Z axis. | |
void | scale (float factor_x, float factor_y) |
Scales snapshot's coordinate system in 2-dimensional space by the given factors. | |
void | scale (float factor_x, float factor_y, float factor_z) |
Scales snapshot's coordinate system by the given factors. | |
void | perspective (float depth) |
Applies a perspective projection transform. | |
Cairo::RefPtr< Cairo::Context > | append_cairo (const graphene_rect_t * bounds) |
Creates a new Gsk::CairoNode and appends it to the current render node of snapshot, without changing the current node. | |
Cairo::RefPtr< Cairo::Context > | append_cairo (const Gdk::Rectangle & bounds) |
Creates a new Gsk::CairoNode and appends it to the current render node of snapshot, without changing the current node. | |
void | append_texture (const Glib::RefPtr< Gdk::Texture > & texture, const graphene_rect_t * bounds) |
Creates a new render node drawing the texture into the given bounds and appends it to the current render node of snapshot. | |
void | append_texture (const Glib::RefPtr< Gdk::Texture > & texture, const Gdk::Rectangle & bounds) |
Creates a new render node drawing the texture into the given bounds and appends it to the current render node of snapshot. | |
void | append_color (const Gdk::RGBA & color, const graphene_rect_t * bounds) |
Creates a new render node drawing the color into the given bounds and appends it to the current render node of snapshot. | |
void | append_color (const Gdk::RGBA & color, const Gdk::Rectangle & bounds) |
Creates a new render node drawing the color into the given bounds and appends it to the current render node of snapshot. | |
void | append_layout (const Glib::RefPtr< Pango::Layout > & layout, const Gdk::RGBA & color) |
Creates render nodes for rendering layout in the given foregound color and appends them to the current node of snapshot without changing the current node. | |
void | render_backgrount (const Glib::RefPtr< StyleContext > & context, double x, double y, double width, double height) |
Creates a render node for the CSS background according to context, and appends it to the current node of snapshot, without changing the current node. | |
void | render_frame (const Glib::RefPtr< StyleContext > & context, double x, double y, double width, double height) |
Creates a render node for the CSS border according to context, and appends it to the current node of snapshot, without changing the current node. | |
void | render_focus (const Glib::RefPtr< StyleContext > & context, double x, double y, double width, double height) |
Creates a render node for the focus outline according to context, and appends it to the current node of snapshot, without changing the current node. | |
void | render_layout (const Glib::RefPtr< StyleContext > & context, double x, double y, const Glib::RefPtr< Pango::Layout > & layout) |
Creates a render node for rendering layout according to the style information in context, and appends it to the current node of snapshot, without changing the current node. | |
void | render_insertion_cursor (const Glib::RefPtr< StyleContext > & context, double x, double y, const Glib::RefPtr< Pango::Layout > & layout, int index, Pango::Direction direction) |
Draws a text caret using snapshot at the specified index of layout. | |
![]() | |
Snapshot (Snapshot && src) noexcept | |
Snapshot & | operator= (Snapshot && src) noexcept |
~Snapshot () noexcept override | |
GdkSnapshot * | gobj () |
Provides access to the underlying C GObject. | |
const GdkSnapshot * | gobj () const |
Provides access to the underlying C GObject. | |
GdkSnapshot * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. | |
Static Public Member Functions | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
static Glib::RefPtr< Snapshot > | create () |
Creates a new Gtk::Snapshot . | |
![]() | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Related Functions | |
(Note that these are not member functions.) | |
Glib::RefPtr< Gtk::Snapshot > | wrap_gtk_snapshot (GtkSnapshot * object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
![]() | |
Glib::RefPtr< Gdk::Snapshot > | wrap (GdkSnapshot * object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Auxiliary object for snapshots.
Snapshot is an auxiliary object that assists in creating GskRenderNodes in Gtk::Widget::snapshot_vfunc(). It functions in a similar way to a cairo context, and maintains a stack of render nodes and their associated transformations.
The node at the top of the stack is the the one that append_node() operates on. Use the push() and pop() functions to change the current node.
The typical way to obtain a Snapshot object is as an argument to Gtk::Widget::snapshot_vfunc(). If you need to create your own Snapshot, use create().
|
noexcept |
|
overridenoexcept |
Cairo::RefPtr< Cairo::Context > Gtk::Snapshot::append_cairo | ( | const Gdk::Rectangle & | bounds | ) |
Creates a new Gsk::CairoNode and appends it to the current render node of snapshot, without changing the current node.
bounds | The bounds for the new node. |
cairo_t
suitable for drawing the contents of the newly created render node. Cairo::RefPtr< Cairo::Context > Gtk::Snapshot::append_cairo | ( | const graphene_rect_t * | bounds | ) |
Creates a new Gsk::CairoNode and appends it to the current render node of snapshot, without changing the current node.
bounds | The bounds for the new node. |
cairo_t
suitable for drawing the contents of the newly created render node. void Gtk::Snapshot::append_color | ( | const Gdk::RGBA & | color, |
const Gdk::Rectangle & | bounds | ||
) |
Creates a new render node drawing the color into the given bounds and appends it to the current render node of snapshot.
You should try to avoid calling this function if color is transparent.
color | The color to draw. |
bounds | The bounds for the new node. |
void Gtk::Snapshot::append_color | ( | const Gdk::RGBA & | color, |
const graphene_rect_t * | bounds | ||
) |
Creates a new render node drawing the color into the given bounds and appends it to the current render node of snapshot.
You should try to avoid calling this function if color is transparent.
color | The color to draw. |
bounds | The bounds for the new node. |
void Gtk::Snapshot::append_layout | ( | const Glib::RefPtr< Pango::Layout > & | layout, |
const Gdk::RGBA & | color | ||
) |
Creates render nodes for rendering layout in the given foregound color and appends them to the current node of snapshot without changing the current node.
layout | The Pango::Layout to render. |
color | The foreground color to render the layout in. |
void Gtk::Snapshot::append_texture | ( | const Glib::RefPtr< Gdk::Texture > & | texture, |
const Gdk::Rectangle & | bounds | ||
) |
Creates a new render node drawing the texture into the given bounds and appends it to the current render node of snapshot.
If the texture needs to be scaled to fill bounds, linear filtering is used. See append_scaled_texture() if you need other filtering, such as nearest-neighbour.
texture | The texture to render. |
bounds | The bounds for the new node. |
void Gtk::Snapshot::append_texture | ( | const Glib::RefPtr< Gdk::Texture > & | texture, |
const graphene_rect_t * | bounds | ||
) |
Creates a new render node drawing the texture into the given bounds and appends it to the current render node of snapshot.
If the texture needs to be scaled to fill bounds, linear filtering is used. See append_scaled_texture() if you need other filtering, such as nearest-neighbour.
texture | The texture to render. |
bounds | The bounds for the new node. |
|
static |
Creates a new Gtk::Snapshot
.
Gtk::Snapshot
.
|
static |
Get the GType for this class, for use with the underlying GObject type system.
void Gtk::Snapshot::gl_shader_pop_texture | ( | ) |
Removes the top element from the stack of render nodes and adds it to the nearest Gsk::GLShaderNode below it.
This must be called the same number of times as the number of textures is needed for the shader in push_gl_shader().
|
inline |
Provides access to the underlying C GObject.
|
inline |
Provides access to the underlying C GObject.
GtkSnapshot * Gtk::Snapshot::gobj_copy | ( | ) |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void Gtk::Snapshot::perspective | ( | float | depth | ) |
Applies a perspective projection transform.
See Gsk::Transform::perspective() for a discussion on the details.
depth | Distance of the z=0 plane. |
void Gtk::Snapshot::pop | ( | ) |
Removes the top element from the stack of render nodes, and appends it to the node underneath it.
void Gtk::Snapshot::push_blur | ( | double | radius | ) |
Blurs an image.
The image is recorded until the next call to pop().
radius | The blur radius to use. Must be positive. |
void Gtk::Snapshot::push_clip | ( | const Gdk::Rectangle & | bounds | ) |
Clips an image to a rectangle.
The image is recorded until the next call to pop().
bounds | The rectangle to clip to. |
void Gtk::Snapshot::push_clip | ( | const graphene_rect_t * | bounds | ) |
Clips an image to a rectangle.
The image is recorded until the next call to pop().
bounds | The rectangle to clip to. |
void Gtk::Snapshot::push_cross_fade | ( | double | progress | ) |
Snapshots a cross-fade operation between two images with the given progress.
Until the first call to pop(), the start image will be snapshot. After that call, the end image will be recorded until the second call to pop().
Calling this function requires two subsequent calls to pop().
progress | Progress between 0.0 and 1.0. |
void Gtk::Snapshot::push_debug | ( | const Glib::ustring & | name | ) |
Creates a new debug node.
name | The name for the new node, or an empty string for no name. |
void Gtk::Snapshot::push_opacity | ( | double | opacity | ) |
Modifies the opacity of an image.
The image is recorded until the next call to pop().
opacity | The opacity to use. |
void Gtk::Snapshot::push_repeat | ( | const Gdk::Rectangle & | bounds | ) |
A push_repeat() convenience overload.
void Gtk::Snapshot::push_repeat | ( | const Gdk::Rectangle & | bounds, |
const Gdk::Rectangle & | child_bounds | ||
) |
Creates a node that repeats the child node.
The child is recorded until the next call to pop().
bounds | The bounds within which to repeat. |
child_bounds | The bounds of the child or nullptr to use the full size of the collected child node. |
void Gtk::Snapshot::push_repeat | ( | const graphene_rect_t * | bounds, |
const graphene_rect_t * | child_bounds | ||
) |
Creates a node that repeats the child node.
The child is recorded until the next call to pop().
bounds | The bounds within which to repeat. |
child_bounds | The bounds of the child or nullptr to use the full size of the collected child node. |
void Gtk::Snapshot::render_backgrount | ( | const Glib::RefPtr< StyleContext > & | context, |
double | x, | ||
double | y, | ||
double | width, | ||
double | height | ||
) |
Creates a render node for the CSS background according to context, and appends it to the current node of snapshot, without changing the current node.
Deprecated: 4.10
context | The style context that defines the background. |
x | X origin of the rectangle. |
y | Y origin of the rectangle. |
width | Rectangle width. |
height | Rectangle height. |
void Gtk::Snapshot::render_focus | ( | const Glib::RefPtr< StyleContext > & | context, |
double | x, | ||
double | y, | ||
double | width, | ||
double | height | ||
) |
Creates a render node for the focus outline according to context, and appends it to the current node of snapshot, without changing the current node.
Deprecated: 4.10
context | The style context that defines the focus ring. |
x | X origin of the rectangle. |
y | Y origin of the rectangle. |
width | Rectangle width. |
height | Rectangle height. |
void Gtk::Snapshot::render_frame | ( | const Glib::RefPtr< StyleContext > & | context, |
double | x, | ||
double | y, | ||
double | width, | ||
double | height | ||
) |
Creates a render node for the CSS border according to context, and appends it to the current node of snapshot, without changing the current node.
Deprecated: 4.10
context | The style context that defines the frame. |
x | X origin of the rectangle. |
y | Y origin of the rectangle. |
width | Rectangle width. |
height | Rectangle height. |
void Gtk::Snapshot::render_insertion_cursor | ( | const Glib::RefPtr< StyleContext > & | context, |
double | x, | ||
double | y, | ||
const Glib::RefPtr< Pango::Layout > & | layout, | ||
int | index, | ||
Pango::Direction | direction | ||
) |
Draws a text caret using snapshot at the specified index of layout.
Deprecated: 4.10
context | A Gtk::StyleContext . |
x | X origin. |
y | Y origin. |
layout | The Pango::Layout of the text. |
index | The index in the Pango::Layout . |
direction | The Pango::Direction of the text. |
void Gtk::Snapshot::render_layout | ( | const Glib::RefPtr< StyleContext > & | context, |
double | x, | ||
double | y, | ||
const Glib::RefPtr< Pango::Layout > & | layout | ||
) |
Creates a render node for rendering layout according to the style information in context, and appends it to the current node of snapshot, without changing the current node.
Deprecated: 4.10
context | The style context that defines the text. |
x | X origin of the rectangle. |
y | Y origin of the rectangle. |
layout | The Pango::Layout to render. |
void Gtk::Snapshot::restore | ( | ) |
Restores snapshot to the state saved by a preceding call to save() and removes that state from the stack of saved states.
void Gtk::Snapshot::rotate | ( | float | angle | ) |
Rotates @ snapshot's coordinate system by angle degrees in 2D space - or in 3D speak, rotates around the Z axis.
To rotate around other axes, use Gsk::Transform::rotate_3d().
angle | The rotation angle, in degrees (clockwise). |
void Gtk::Snapshot::save | ( | ) |
Makes a copy of the current state of snapshot and saves it on an internal stack.
When restore() is called, snapshot will be restored to the saved state. Multiple calls to save() and [class.nosp@m.@Sna.nosp@m.pshot.nosp@m..res.nosp@m.tore] can be nested; each call to restore()
restores the state from the matching paired save()
.
It is necessary to clear all saved states with corresponding calls to restore()
.
void Gtk::Snapshot::scale | ( | float | factor_x, |
float | factor_y | ||
) |
Scales snapshot's coordinate system in 2-dimensional space by the given factors.
Use scale_3d() to scale in all 3 dimensions.
factor_x | Scaling factor on the X axis. |
factor_y | Scaling factor on the Y axis. |
void Gtk::Snapshot::scale | ( | float | factor_x, |
float | factor_y, | ||
float | factor_z | ||
) |
Scales snapshot's coordinate system by the given factors.
factor_x | Scaling factor on the X axis. |
factor_y | Scaling factor on the Y axis. |
factor_z | Scaling factor on the Z axis. |
|
related |
A Glib::wrap() method for this object.
It's not called wrap() because GtkSnapshot is a typedef of GdkSnapshot.
object | The C instance. |
take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |