mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 14:31:10 +00:00
72e9f30937
Allow to specify a D₂ transform when attaching a texture to a subsurface, to handle flipped and rotated content. The Wayland implementation handles these transforms by setting a buffer transform on the subsurface. All callers have been updated to pass GDK_TEXTURE_TRANSFORM_NORMAL.
46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
#pragma once
|
|
|
|
#include "gdksubsurfaceprivate.h"
|
|
|
|
#include "wayland-client-protocol.h"
|
|
|
|
typedef struct _GdkWaylandSubsurface GdkWaylandSubsurface;
|
|
typedef struct _GdkWaylandSubsurfaceClass GdkWaylandSubsurfaceClass;
|
|
|
|
#define GDK_TYPE_WAYLAND_SUBSURFACE (gdk_wayland_subsurface_get_type ())
|
|
#define GDK_WAYLAND_SUBSURFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_SUBSURFACE, GdkWaylandSubsurface))
|
|
#define GDK_WAYLAND_SUBSURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WAYLAND_SUBSURFACE, GdkWaylandSubsurfaceClass))
|
|
#define GDK_IS_WAYLAND_SUBSURFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_SUBSURFACE))
|
|
#define GDK_WAYLAND_SUBSURFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WAYLAND_SUBSURFACE, GdkWaylandSubsurfaceClass))
|
|
|
|
struct _GdkWaylandSubsurface
|
|
{
|
|
GdkSubsurface parent_instance;
|
|
|
|
struct wl_surface *surface;
|
|
struct wl_subsurface *subsurface;
|
|
struct wp_viewport *viewport;
|
|
|
|
GdkTexture *texture;
|
|
cairo_rectangle_int_t dest;
|
|
graphene_rect_t source;
|
|
enum wl_output_transform transform;
|
|
|
|
struct wl_region *opaque_region;
|
|
|
|
struct wl_callback *frame_callback;
|
|
};
|
|
|
|
struct _GdkWaylandSubsurfaceClass
|
|
{
|
|
GdkSubsurfaceClass parent_class;
|
|
};
|
|
|
|
GType gdk_wayland_subsurface_get_type (void) G_GNUC_CONST;
|
|
|
|
void gdk_wayland_subsurface_request_frame (GdkSubsurface *subsurface);
|
|
void gdk_wayland_subsurface_clear_frame_callback (GdkSubsurface *subsurface);
|
|
|
|
GdkSubsurface * gdk_wayland_surface_create_subsurface (GdkSurface *surface);
|
|
|