Spec-Zone.ru › GTK 4.0

GtkSnapshot

GtkSnapshot — Вспомогательный объект для снимков

Функции

GtkSnapshot * gtk_snapshot_new ()
GskRenderNode * gtk_snapshot_to_node ()
GdkPaintable * gtk_snapshot_to_paintable ()
GskRenderNode * gtk_snapshot_free_to_node ()
GdkPaintable * gtk_snapshot_free_to_paintable ()
void gtk_snapshot_push_opacity ()
void gtk_snapshot_push_color_matrix ()
void gtk_snapshot_push_repeat ()
void gtk_snapshot_push_clip ()
void gtk_snapshot_push_rounded_clip ()
void gtk_snapshot_push_cross_fade ()
void gtk_snapshot_push_blend ()
void gtk_snapshot_push_blur ()
void gtk_snapshot_push_shadow ()
void gtk_snapshot_push_debug ()
void gtk_snapshot_push_gl_shader ()
void gtk_snapshot_pop ()
void gtk_snapshot_gl_shader_pop_texture ()
void gtk_snapshot_save ()
void gtk_snapshot_restore ()
void gtk_snapshot_transform ()
void gtk_snapshot_transform_matrix ()
void gtk_snapshot_translate ()
void gtk_snapshot_translate_3d ()
void gtk_snapshot_rotate ()
void gtk_snapshot_rotate_3d ()
void gtk_snapshot_scale ()
void gtk_snapshot_scale_3d ()
void gtk_snapshot_perspective ()
void gtk_snapshot_append_node ()
cairo_t * gtk_snapshot_append_cairo ()
void gtk_snapshot_append_texture ()
void gtk_snapshot_append_color ()
void gtk_snapshot_append_layout ()
void gtk_snapshot_append_linear_gradient ()
void gtk_snapshot_append_repeating_linear_gradient ()
void gtk_snapshot_append_conic_gradient ()
void gtk_snapshot_append_border ()
void gtk_snapshot_append_inset_shadow ()
void gtk_snapshot_append_outset_shadow ()
void gtk_snapshot_append_radial_gradient ()
void gtk_snapshot_append_repeating_radial_gradient ()
void gtk_snapshot_render_insertion_cursor ()
void gtk_snapshot_render_background ()
void gtk_snapshot_render_frame ()
void gtk_snapshot_render_focus ()
void gtk_snapshot_render_layout ()

Типы и значения

typedef GtkSnapshot

Иерархия объектов

    GObject
    ╰── GdkSnapshot
        ╰── GtkSnapshot

Файлы заголовков

#include <gtk/gtk.h>

Описание

GtkSnapshot — вспомогательный объект, который помогает в создании GskRenderNodes в GdkPaintableInterface.snapshot() vfunc. Он работает аналогично контексту cairo и поддерживает стек узлов отрисовки и связанных с ними преобразований.

Узел на вершине стека — тот, на котором действуют функции gtk_snapshot_append_… . Используйте функции gtk_snapshot_push_… и gtk_snapshot_pop() для изменения текущего узла.

Обычно объект GtkSnapshot получается как аргумент функции GtkWidgetClass.snapshot() vfunc. Если вам нужно создать собственный объект GtkSnapshot, используйте gtk_snapshot_new().

Функции

gtk_snapshot_new ()

GtkSnapshot *
gtk_snapshot_new (void);

Создаёт новый GtkSnapshot.

Возвращает

новый выделенный GtkSnapshot

gtk_snapshot_to_node ()

GskRenderNode *
gtk_snapshot_to_node (GtkSnapshot *snapshot);

Возвращает узел отрисовки, который был создан snapshot. После вызова этой функции больше невозможно добавлять узлы в snapshot. Единственной функцией, которая должна быть вызвана после этого, является g_object_unref().

Параметры

snapshot

a GtkSnapshot

Возвращает

созданный GskRenderNode.

[transfer full]

gtk_snapshot_to_paintable ()

GdkPaintable *
gtk_snapshot_to_paintable (GtkSnapshot *snapshot,
                           const graphene_size_t *size);

Возвращает объект paintable, содержащий узел отрисовки, созданный snapshot. После вызова этой функции больше невозможно добавлять узлы в snapshot. Единственной функцией, которая должна быть вызвана после этого, является g_object_unref().

Параметры

snapshot

a GtkSnapshot

size

Размер результирующего paintable или NULL для использования границ снимка.

[allow-none]

Возвращает

новый GdkPaintable.

[transfer full]

gtk_snapshot_free_to_node ()

GskRenderNode *
gtk_snapshot_free_to_node (GtkSnapshot *snapshot);

Возвращает узел, созданный snapshot, и освобождает snapshot.

[skip]

Параметры

snapshot

a GtkSnapshot.

[transfer full]

Возвращает

новый GskRenderNode.

[transfer full]

gtk_snapshot_free_to_paintable ()

GdkPaintable *
gtk_snapshot_free_to_paintable (GtkSnapshot *snapshot,
                                const graphene_size_t *size);

Возвращает paintable для узла, созданного snapshot, и освобождает snapshot.

[skip]

Параметры

snapshot

a GtkSnapshot.

[transfer full]

size

Размер результирующего paintable или NULL для использования границ снимка.

[allow-none]

Возвращает

новый GdkPaintable.

[transfer full]

gtk_snapshot_push_opacity ()

void
gtk_snapshot_push_opacity (GtkSnapshot *snapshot,
                           double opacity);

Изменяет непрозрачность изображения.

Изображение сохраняется до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

opacity

непрозрачность

gtk_snapshot_push_color_matrix ()

void
gtk_snapshot_push_color_matrix (GtkSnapshot *snapshot,
                                const graphene_matrix_t *color_matrix,
                                const graphene_vec4_t *color_offset);

Изменяет цвета изображения, применяя аффинное преобразование в RGB-пространстве.

Изображение сохраняется до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

color_matrix

матрица цветов

color_offset

смещение цвета

gtk_snapshot_push_repeat ()

void
gtk_snapshot_push_repeat (GtkSnapshot *snapshot,
                          const graphene_rect_t *bounds,
                          const graphene_rect_t *child_bounds);

Создаёт узел, который повторяет дочерний узел.

Дочерний узел сохраняется до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

bounds

границы повторения

child_bounds

границы дочернего узла или NULL для использования полного размера собранного дочернего узла.

[nullable]

gtk_snapshot_push_clip ()

void
gtk_snapshot_push_clip (GtkSnapshot *snapshot,
                        const graphene_rect_t *bounds);

Обрезает изображение до прямоугольника.

Изображение сохраняется до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

bounds

прямоугольник обрезки

gtk_snapshot_push_rounded_clip ()

void
gtk_snapshot_push_rounded_clip (GtkSnapshot *snapshot,
                                const GskRoundedRect *bounds);

Обрезает изображение до скругленного прямоугольника.

Изображение сохраняется до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

bounds

скруглённый прямоугольник обрезки

gtk_snapshot_push_cross_fade ()

void
gtk_snapshot_push_cross_fade (GtkSnapshot *snapshot,
                              double progress);

Создаёт снимок операции перехода между двумя изображениями с заданным progress .

До первого вызова gtk_snapshot_pop() будет сделан снимок начального изображения. После этого вызова до второго вызова gtk_snapshot_pop() будет записано конечное изображение.

Вызов этой функции требует 2 последующих вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

progress

прогресс от 0.0 до 1.0

gtk_snapshot_push_blend ()

void
gtk_snapshot_push_blend (GtkSnapshot *snapshot,
                         GskBlendMode blend_mode);

Смешивает 2 изображения с указанным режимом смешивания.

До первого вызова gtk_snapshot_pop() будет записано нижнее изображение для операции смешивания. После этого вызова до второго вызова gtk_snapshot_pop() будет записано верхнее изображение для смешивания.

Вызов этой функции требует 2 последующих вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

blend_mode

используемый режим смешивания

gtk_snapshot_push_blur ()

void
gtk_snapshot_push_blur (GtkSnapshot *snapshot,
                        double radius);

Размывает изображение.

Изображение записывается до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

radius

радиус размытия

gtk_snapshot_push_shadow ()

void
gtk_snapshot_push_shadow (GtkSnapshot *snapshot,
                          const GskShadow *shadow,
                          gsize n_shadows);

Применяет тень к изображению.

Изображение записывается до следующего вызова gtk_snapshot_pop().

Параметры

snapshot

a GtkSnapshot

shadow

первое описание тени

n_shadows

количество описаний тени

gtk_snapshot_push_debug ()

void
gtk_snapshot_push_debug (GtkSnapshot *snapshot,
                         const char *message,
                         ...);

Вставляет узел отладки с сообщением. Узлы отладки никак не влияют на отрисовку, но могут быть полезны для определения частей дерева узлов отрисовки, например, в инспекторе GTK.

Параметры

snapshot

a GtkSnapshot

message

строка формата в стиле printf

...

аргументы для message

gtk_snapshot_push_gl_shader ()

void
gtk_snapshot_push_gl_shader (GtkSnapshot *snapshot,
                             GskGLShader *shader,
                             const graphene_rect_t *bounds,
                             GBytes *take_args);

Добавляет GskGLShaderNode со специфическим GskGLShader и набором значений униформ для использования при отрисовке. Кроме того, это принимает список n_children других узлов, которые будут переданы в GskGLShaderNode.

Аргумент take_args — это блок данных для использования в униформ-аргументах, в соответствии с типами и смещениями, определёнными shader . Обычно это генерируется с помощью gsk_gl_shader_format_args() или GskGLShaderArgBuilder. Создатель снимка получает владение take_args, поэтому вызывающая сторона не должна его освобождать после этого.

Если рендерер не поддерживает GL шейдеры или есть проблемы при компиляции шейдера, то узел будет отрисован розовым цветом. Используйте gsk_gl_shader_compile() для проверки совместимости shader с рендерером перед использованием.

Если шейдер требует текстуры (см. gsk_gl_shader_get_n_textures()), ожидается, что вы вызовете gtk_snapshot_gl_shader_pop_texture() необходимое количество раз. Каждый из этих вызовов создаст узел, который добавится в качестве дочернего к узлу gl шейдера, который, в свою очередь, отрисует их вне экрана и передаст в качестве текстуры шейдеру.

После того, как все текстуры (если они есть) будут сняты, вы должны вызвать стандартную функцию gtk_snapshot_pop().

Если вы хотите использовать существующие текстуры в качестве входных данных для шейдера вместо рендеринга новых, используйте gtk_snapshot_append_texture() для добавления узла текстуры. Они будут использованы непосредственно, а не повторно отрисованы.

Подробности о написании шейдеров см. в GskGLShader.

Параметры

snapshot

a GtkSnapshot

shader

Код для выполнения

bounds

прямоугольник для отрисовки

take_args

Блок данных с аргументами для шейдера.

[transfer full]

gtk_snapshot_pop ()

void
gtk_snapshot_pop (GtkSnapshot *snapshot);

Удаляет верхний элемент из стека узлов отрисовки и добавляет его к узлу под ним.

Параметры

snapshot

a GtkSnapshot

gtk_snapshot_gl_shader_pop_texture ()

void
gtk_snapshot_gl_shader_pop_texture (GtkSnapshot *snapshot);

Удаляет верхний элемент из стека узлов отрисовки и добавляет его к ближайшему GskGLShaderNode ниже него. Это должно вызываться столько раз, сколько нужно текстур для шейдера в gtk_snapshot_push_gl_shader().

Параметры

snapshot

a GtkSnapshot

gtk_snapshot_save ()

void
gtk_snapshot_save (GtkSnapshot *snapshot);

Создаёт копию текущего состояния snapshot и сохраняет её во внутреннем стеке сохранённых состояний для snapshot . При вызове gtk_snapshot_restore(), snapshot будет восстановлено до сохранённого состояния. Многократные вызовы gtk_snapshot_save() и gtk_snapshot_restore() могут быть вложены; каждый вызов gtk_snapshot_restore() восстанавливает состояние из соответствующего сохранённого состояния, сохранённого вызовом gtk_snapshot_save().

Необходимо очистить все сохранённые состояния соответствующими вызовами gtk_snapshot_restore().

Параметры

snapshot

a GtkSnapshot

gtk_snapshot_restore ()

void
gtk_snapshot_restore (GtkSnapshot *snapshot);

Восстанавливает snapshot до состояния, сохранённого предыдущим вызовом gtk_snapshot_save(), и удаляет это состояние из стека сохранённых состояний.

Параметры

snapshot

объект GtkSnapshot

gtk_snapshot_transform ()

void
gtk_snapshot_transform (GtkSnapshot *snapshot,
                        GskTransform *transform);

Преобразует систему координат snapshot с помощью заданного transform.

Параметры

snapshot

объект GtkSnapshot

transform

преобразование для применения.

[allow-none]

gtk_snapshot_transform_matrix ()

void
gtk_snapshot_transform_matrix (GtkSnapshot *snapshot,
                               const graphene_matrix_t *matrix);

Преобразует систему координат snapshot с помощью заданной matrix.

Параметры

snapshot

объект GtkSnapshot

matrix

матрица, с которой будет умножаться преобразование

gtk_snapshot_translate ()

void
gtk_snapshot_translate (GtkSnapshot *snapshot,
                        const graphene_point_t *point);

Производит сдвиг системы координат snapshot на point в двумерном пространстве.

Параметры

snapshot

объект GtkSnapshot

point

точка, на которую необходимо сдвинуть снимок

gtk_snapshot_translate_3d ()

void
gtk_snapshot_translate_3d (GtkSnapshot *snapshot,
                           const graphene_point3d_t *point);

Производит сдвиг системы координат snapshot на point.

Параметры

snapshot

объект GtkSnapshot

point

точка, на которую необходимо сдвинуть снимок

gtk_snapshot_rotate ()

void
gtk_snapshot_rotate (GtkSnapshot *snapshot,
                     float angle);

Поворачивает систему координат @snapshot на angle градусов в 2D пространстве — или, говоря на языке 3D, вокруг оси z.

Параметры

snapshot

объект GtkSnapshot

angle

угол поворота в градусах (по часовой стрелке)

gtk_snapshot_rotate_3d ()

void
gtk_snapshot_rotate_3d (GtkSnapshot *snapshot,
                        float angle,
                        const graphene_vec3_t *axis);

Поворачивает систему координат snapshot на angle градусов вокруг axis.

Для поворота в 2D пространстве используйте gsk_transform_rotate().

Параметры

snapshot

объект GtkSnapshot

angle

угол поворота в градусах (по часовой стрелке)

axis

ось поворота

gtk_snapshot_scale ()

void
gtk_snapshot_scale (GtkSnapshot *snapshot,
                    float factor_x,
                    float factor_y);

Масштабирует систему координат snapshot в двумерном пространстве с заданными коэффициентами.

Используйте gtk_snapshot_scale_3d() для масштабирования во всех 3 измерениях.

Параметры

snapshot

объект GtkSnapshot

factor_x

коэффициент масштабирования по оси X

factor_y

коэффициент масштабирования по оси Y

gtk_snapshot_scale_3d ()

void
gtk_snapshot_scale_3d (GtkSnapshot *snapshot,
                       float factor_x,
                       float factor_y,
                       float factor_z);

Масштабирует систему координат snapshot с заданными коэффициентами.

Параметры

snapshot

объект GtkSnapshot

factor_x

коэффициент масштабирования по оси X

factor_y

коэффициент масштабирования по оси Y

factor_z

коэффициент масштабирования по оси Z

gtk_snapshot_perspective ()

void
gtk_snapshot_perspective (GtkSnapshot *snapshot,
                          float depth);

Применяет преобразование перспективного проецирования.

Подробную информацию см. в gsk_transform_perspective().

Параметры

snapshot

объект GtkSnapshot

depth

расстояние до плоскости z=0

gtk_snapshot_append_node ()

void
gtk_snapshot_append_node (GtkSnapshot *snapshot,
                          GskRenderNode *node);

Добавляет node к текущему узлу отрисовки snapshot без изменения текущего узла. Если у snapshot ещё нет текущего узла, node станет начальным узлом.

Параметры

snapshot

объект GtkSnapshot

node

объект GskRenderNode

gtk_snapshot_append_cairo ()

cairo_t *
gtk_snapshot_append_cairo (GtkSnapshot *snapshot,
                           const graphene_rect_t *bounds);

Создаёт новый узел отрисовки и добавляет его к текущему узлу отрисовки snapshot без изменения текущего узла.

Параметры

snapshot

объект GtkSnapshot

bounds

пределы для нового узла

Возвращаемое значение

объект cairo_t, подходящий для отрисовки содержимого вновь созданного узла отрисовки

gtk_snapshot_append_texture ()

void
gtk_snapshot_append_texture (GtkSnapshot *snapshot,
                             GdkTexture *texture,
                             const graphene_rect_t *bounds);

Создаёт новый узел отрисовки, рисующий texture в заданном bounds и добавляет его к текущему узлу отрисовки snapshot.

Параметры

snapshot

объект GtkSnapshot

texture

текстура GdkTexture для отрисовки

bounds

границы нового узла

gtk_snapshot_append_color ()

void
gtk_snapshot_append_color (GtkSnapshot *snapshot,
                           const GdkRGBA *color,
                           const graphene_rect_t *bounds);

Создаёт новый узел отрисовки, рисующий заданный color в заданном bounds и добавляет его к текущему узлу отрисовки snapshot.

Следует избегать вызова этой функции, если color прозрачна.

Параметры

snapshot

объект GtkSnapshot

color

цвет GdkRGBA для отрисовки

bounds

границы нового узла

gtk_snapshot_append_layout ()

void
gtk_snapshot_append_layout (GtkSnapshot *snapshot,
                            PangoLayout *layout,
                            const GdkRGBA *color);

Создаёт узлы отрисовки для отрисовки layout в заданном переднем color и добавляет их к текущему узлу snapshot, без изменения текущего узла.

Параметры

snapshot

объект GtkSnapshot

layout

объект PangoLayout для отрисовки

color

цвет переднего плана для отрисовки макета

gtk_snapshot_append_linear_gradient ()

void
gtk_snapshot_append_linear_gradient (GtkSnapshot *snapshot,
                                     const graphene_rect_t *bounds,
                                     const graphene_point_t *start_point,
                                     const graphene_point_t *end_point,
                                     const GskColorStop *stops,
                                     gsize n_stops);

Добавляет узел линейного градиента с заданными оттенками к snapshot .

Параметры

snapshot

объект GtkSnapshot

bounds

прямоугольник для отрисовки линейного градиента

start_point

точка начала линейного градиента

end_point

точка окончания линейного градиента

stops

указатель на массив GskColorStop, определяющий градиент.

[массив length=n_stops]

n_stops

количество элементов в stops

gtk_snapshot_append_repeating_linear_gradient ()

void
gtk_snapshot_append_repeating_linear_gradient
                               (GtkSnapshot *snapshot,
                                const graphene_rect_t *bounds,
                                const graphene_point_t *start_point,
                                const graphene_point_t *end_point,
                                const GskColorStop *stops,
                                gsize n_stops);

Добавляет узел повторяющегося линейного градиента с заданными оттенками к snapshot.

Параметры

snapshot

объект GtkSnapshot

bounds

прямоугольник для отрисовки линейного градиента

start_point

точка начала линейного градиента

end_point

точка окончания линейного градиента

stops

указатель на массив GskColorStop, определяющий градиент.

[массив length=n_stops]

n_stops

количество элементов в stops

gtk_snapshot_append_conic_gradient ()

void
gtk_snapshot_append_conic_gradient (GtkSnapshot *snapshot,
                                    const graphene_rect_t *bounds,
                                    const graphene_point_t *center,
                                    float rotation,
                                    const GskColorStop *stops,
                                    gsize n_stops);

Добавляет узел конического градиента с заданными оттенками к snapshot.

Параметры

snapshot

объект GtkSnapshot

bounds

прямоугольник для отрисовки градиента

center

центр конического градиента

rotation

поворот по часовой стрелке в градусах начального угла. 0 означает, что начальный угол находится вверху.

stops

указатель на массив GskColorStop, определяющий градиент.

[массив length=n_stops]

n_stops

количество элементов в stops

gtk_snapshot_append_border ()

void
gtk_snapshot_append_border (GtkSnapshot *snapshot,
                            const GskRoundedRect *outline,
                            const float border_width[4],
                            const GdkRGBA border_color[4]);

Добавляет прямоугольник обводки в заданном outline. Четыре стороны границы могут иметь разные ширины и цвета.

Параметры

snapshot

объект GtkSnapshot

outline

объект GskRoundedRect, описывающий контур границы

border_width

ширина штриха границы для верхней, правой, нижней и левой стороны соответственно.

[массив fixed-size=4]

border_color

цвет, используемый для верхней, правой, нижней и левой стороны.

[массив fixed-size=4]

gtk_snapshot_append_inset_shadow ()

void
gtk_snapshot_append_inset_shadow (GtkSnapshot *snapshot,
                                  const GskRoundedRect *outline,
                                  const GdkRGBA *color,
                                  float dx,
                                  float dy,
                                  float spread,
                                  float blur_radius);

Добавляет тень с отступом в заданный прямоугольник outline.

Параметры

snapshot

объект GtkSnapshot

outline

контур области, окружённой тенью

color

цвет тени

dx

горизонтальное смещение тени

dy

вертикальное смещение тени

spread

распространение тени внутрь

blur_radius

степень размытия тени

gtk_snapshot_append_outset_shadow ()

void
gtk_snapshot_append_outset_shadow (GtkSnapshot *snapshot,
                                   const GskRoundedRect *outline,
                                   const GdkRGBA *color,
                                   float dx,
                                   float dy,
                                   float spread,
                                   float blur_radius);

Добавляет тень с выступом вокруг заданной области outline .

Параметры

snapshot

объект GtkSnapshot

outline

контур области, окружённой тенью

color

цвет тени

dx

горизонтальное смещение тени

dy

вертикальное смещение тени

spread

распространение тени наружу

blur_radius

степень размытия тени

gtk_snapshot_append_radial_gradient ()

void
gtk_snapshot_append_radial_gradient (GtkSnapshot *snapshot,
                                     const graphene_rect_t *bounds,
                                     const graphene_point_t *center,
                                     float hradius,
                                     float vradius,
                                     float start,
                                     float end,
                                     const GskColorStop *stops,
                                     gsize n_stops);

Добавляет узел радиального градиента с заданными цветами в snapshot .

Параметры

snapshot

объект GtkSnapshot

bounds

прямоугольник для отрисовки радиального градиента

center

центр радиального градиента

hradius

горизонтальный радиус

vradius

вертикальный радиус

start

начальная точка (по горизонтали)

end

конечная точка (по горизонтали)

stops

указатель на массив GskColorStop, определяющий градиент.

[массив length=n_stops]

n_stops

количество элементов в stops

gtk_snapshot_append_repeating_radial_gradient ()

void
gtk_snapshot_append_repeating_radial_gradient
                               (GtkSnapshot *snapshot,
                                const graphene_rect_t *bounds,
                                const graphene_point_t *center,
                                float hradius,
                                float vradius,
                                float start,
                                float end,
                                const GskColorStop *stops,
                                gsize n_stops);

Добавляет узел повторяющегося радиального градиента с заданными цветами в snapshot .

Параметры

snapshot

объект GtkSnapshot

bounds

прямоугольник для отрисовки радиального градиента

center

центр радиального градиента

hradius

горизонтальный радиус

vradius

вертикальный радиус

start

начальная точка (по горизонтали)

end

конечная точка (по горизонтали)

stops

указатель на массив GskColorStop, определяющий градиент.

[массив length=n_stops]

n_stops

количество элементов в stops

gtk_snapshot_render_insertion_cursor ()

void
gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot,
                                      GtkStyleContext *context,
                                      double x,
                                      double y,
                                      PangoLayout *layout,
                                      int index,
                                      PangoDirection direction);

Отрисовывает курсор вставки текста, используя snapshot в указанном индексе layout.

Параметры

snapshot

объект для отрисовки

context

объект GtkStyleContext

x

координата X начала

y

координата Y начала

layout

объект PangoLayout текста

index

индекс в объекте PangoLayout

direction

направление текста PangoDirection

gtk_snapshot_render_background ()

void
gtk_snapshot_render_background (GtkSnapshot *snapshot,
                                GtkStyleContext *context,
                                double x,
                                double y,
                                double width,
                                double height);

Создаёт узел отрисовки для фонового CSS согласно context и добавляет его к текущему узлу snapshot, не меняя текущий узел.

Параметры

snapshot

объект GtkSnapshot

context

используемый GtkStyleContext

x

координата X начала прямоугольника

y

координата Y начала прямоугольника

width

ширина прямоугольника

height

высота прямоугольника

gtk_snapshot_render_frame ()

void
gtk_snapshot_render_frame (GtkSnapshot *snapshot,
                           GtkStyleContext *context,
                           double x,
                           double y,
                           double width,
                           double height);

Создаёт узел отрисовки для рамки CSS в соответствии с context и добавляет его к текущему узлу snapshot без изменения текущего узла.

Параметры

snapshot

объект GtkSnapshot

context

используемый GtkStyleContext

x

начало координаты X прямоугольника

y

начало координаты Y прямоугольника

width

ширина прямоугольника

height

высота прямоугольника

gtk_snapshot_render_focus ()

void
gtk_snapshot_render_focus (GtkSnapshot *snapshot,
                           GtkStyleContext *context,
                           double x,
                           double y,
                           double width,
                           double height);

Создаёт узел отрисовки для контура фокуса в соответствии с context и добавляет его к текущему узлу snapshot без изменения текущего узла.

Параметры

snapshot

объект GtkSnapshot

context

используемый GtkStyleContext

x

начало координаты X прямоугольника

y

начало координаты Y прямоугольника

width

ширина прямоугольника

height

высота прямоугольника

gtk_snapshot_render_layout ()

void
gtk_snapshot_render_layout (GtkSnapshot *snapshot,
                            GtkStyleContext *context,
                            double x,
                            double y,
                            PangoLayout *layout);

Создаёт узел отрисовки для отображения layout в соответствии с информацией о стиле в context и добавляет его к текущему узлу snapshot без изменения текущего узла.

Параметры

snapshot

объект GtkSnapshot

context

используемый GtkStyleContext

x

начало координаты X прямоугольника

y

начало координаты Y прямоугольника

layout

объект PangoLayout для отображения

Типы и значения

GtkSnapshot

typedef GdkSnapshot                    GtkSnapshot;

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkSnapshot.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API