Add support for Mutter47

This commit is contained in:
Corentin Noël 2024-10-15 13:32:05 +02:00 committed by Danielle Foré
parent 20a0573289
commit c1e7ada659
32 changed files with 1448 additions and 763 deletions

View File

@ -158,8 +158,8 @@ public class Gala.App : GLib.Object {
return windows.data;
}
public GLib.SList<Posix.pid_t?> get_pids () {
var results = new GLib.SList<Posix.pid_t?> ();
public GLib.SList<pid_t?> get_pids () {
var results = new GLib.SList<pid_t?> ();
foreach (unowned var window in windows) {
var pid = window.get_pid ();
if (pid < 1) {

View File

@ -158,6 +158,17 @@ if mutter46_dep.found()
vala_flags = ['--define', 'HAS_MUTTER43', '--define', 'HAS_MUTTER44', '--define', 'HAS_MUTTER45', '--define', 'HAS_MUTTER46']
endif
mutter47_dep = dependency('libmutter-15', version: ['>= 47', '< 48'], required: false)
if mutter47_dep.found()
libmutter_dep = dependency('libmutter-15', version: '>= 47')
mutter_dep = [
libmutter_dep,
dependency('mutter-mtk-15'), dependency('mutter-cogl-15'),
dependency('mutter-cogl-pango-15'), dependency('mutter-clutter-15')
]
vala_flags = ['--define', 'HAS_MUTTER43', '--define', 'HAS_MUTTER44', '--define', 'HAS_MUTTER45', '--define', 'HAS_MUTTER46', '--define', 'HAS_MUTTER47']
endif
if mutter_dep.length() == 0
error ('No supported mutter library found!')
endif

View File

@ -108,7 +108,18 @@ namespace Gala {
var settings = background_source.gnome_background_settings;
color_string = settings.get_string ("primary-color");
#if HAS_MUTTER47
var color = Cogl.Color.from_string (color_string);
#else
var color = Clutter.Color.from_string (color_string);
#endif
if (color == null) {
#if HAS_MUTTER47
color = Cogl.Color.from_string ("black");
#else
color = Clutter.Color.from_string ("black");
#endif
}
var shading_type = settings.get_enum ("color-shading-type");
@ -116,7 +127,19 @@ namespace Gala {
background.set_color (color);
} else {
color_string = settings.get_string ("secondary-color");
#if HAS_MUTTER47
var second_color = Cogl.Color.from_string (color_string);
#else
var second_color = Clutter.Color.from_string (color_string);
#endif
if (second_color == null) {
#if HAS_MUTTER47
second_color = Cogl.Color.from_string ("black");
#else
second_color = Clutter.Color.from_string ("black");
#endif
}
background.set_gradient ((GDesktop.BackgroundShading) shading_type, color, second_color);
}
}

View File

@ -49,7 +49,11 @@ namespace Gala {
}
public void set_black_background (bool black) {
#if HAS_MUTTER47
set_background_color (black ? Cogl.Color.from_string ("Black") : null);
#else
set_background_color (black ? Clutter.Color.from_string ("Black") : null);
#endif
}
private void update () {

View File

@ -71,8 +71,12 @@ namespace Gala {
}
unowned Meta.X11Display x11display = display.get_x11_display ();
#if HAS_MUTTER47
x11display.set_stage_input_region (rects);
#else
var xregion = X.Fixes.create_region (x11display.get_xdisplay (), rects);
x11display.set_stage_input_region (xregion);
#endif
}
/**

View File

@ -65,7 +65,9 @@ namespace Gala {
var flash_actor = new Clutter.Actor ();
flash_actor.set_size (width, height);
flash_actor.set_position (x, y);
#if HAS_MUTTER46
#if HAS_MUTTER47
flash_actor.set_background_color (Cogl.Color.from_string ("white"));
#elif HAS_MUTTER46
flash_actor.set_background_color (Clutter.Color.from_pixel (0xffffffffu));
#else
flash_actor.set_background_color (Clutter.Color.get_static (Clutter.StaticColor.WHITE));
@ -151,8 +153,12 @@ namespace Gala {
window_actor.get_position (out actor_x, out actor_y);
var rect = window.get_frame_rect ();
#if HAS_MUTTER45
if (!include_frame) {
#if else
if ((include_frame && window.is_client_decorated ()) ||
(!include_frame && !window.is_client_decorated ())) {
#endif
rect = window.frame_rect_to_client_rect (rect);
}

View File

@ -114,6 +114,9 @@ namespace Gala {
var height = InternalUtils.scale_to_int (WorkspaceClone.BOTTOM_OFFSET, scale_factor);
var backdrop_opacity_int = (uint8) (BACKDROP_ABSOLUTE_OPACITY * backdrop_opacity);
#if HAS_MUTTER47
//FIXME: TODO!
#else
Cogl.VertexP2T2C4 vertices[4];
vertices[0] = { x, y + height, 0, 1, backdrop_opacity_int, backdrop_opacity_int, backdrop_opacity_int, backdrop_opacity_int };
vertices[1] = { x, y, 0, 0, 0, 0, 0, 0 };
@ -123,6 +126,7 @@ namespace Gala {
var primitive = new Cogl.Primitive.p2t2c4 (context.get_framebuffer ().get_context (), Cogl.VerticesMode.TRIANGLE_STRIP, vertices);
var pipeline = new Cogl.Pipeline (context.get_framebuffer ().get_context ());
primitive.draw (context.get_framebuffer (), pipeline);
#endif
base.paint (context);
}

View File

@ -133,7 +133,11 @@ namespace Gala {
return Clutter.EVENT_STOP;
});
#if HAS_MUTTER47
background_color = Cogl.Color.from_string ("black");
#else
background_color = Clutter.Color.from_string ("black");
#endif
expand_to_screen_size ();

View File

@ -22,7 +22,11 @@ public class Gala.Tooltip : CanvasActor {
construct {
max_width = 200;
#if HAS_MUTTER47
Cogl.Color text_color = {
#else
Clutter.Color text_color = {
#endif
(uint8) Drawing.Color.TOOLTIP_TEXT_COLOR.red * uint8.MAX,
(uint8) Drawing.Color.TOOLTIP_TEXT_COLOR.green * uint8.MAX,
(uint8) Drawing.Color.TOOLTIP_TEXT_COLOR.blue * uint8.MAX,

View File

@ -161,7 +161,11 @@ public class Gala.WindowSwitcher : CanvasActor {
var stroke_width = scaling_factor;
#if HAS_MUTTER47
caption.color = Cogl.Color.from_string (caption_color);
#else
caption.color = Clutter.Color.from_string (caption_color);
#endif
ctx.save ();
ctx.set_operator (Cairo.Operator.CLEAR);

View File

@ -177,7 +177,11 @@ namespace Gala {
stage = display.get_stage () as Clutter.Stage;
var background_settings = new GLib.Settings ("org.gnome.desktop.background");
var color = background_settings.get_string ("primary-color");
#if HAS_MUTTER47
stage.background_color = Cogl.Color.from_string (color);
#else
stage.background_color = Clutter.Color.from_string (color);
#endif
unowned var laters = display.get_compositor ().get_laters ();
laters.add (Meta.LaterType.BEFORE_REDRAW, () => {

View File

@ -52,7 +52,7 @@ public class Gala.WindowTracker : GLib.Object {
return get_app_from_id (id);
}
private static unowned Gala.App? get_app_from_pid (Posix.pid_t pid) {
private static unowned Gala.App? get_app_from_pid (pid_t pid) {
var running_apps = Gala.AppSystem.get_default ().get_running_apps ();
foreach (unowned Gala.App app in running_apps) {
var app_pids = app.get_pids ();

View File

@ -0,0 +1,30 @@
namespace Clutter {
public interface Container : GLib.Object {
public void add (params Clutter.Actor[] actors);
[CCode (cname = "clutter_container_class_find_child_property")]
public class unowned GLib.ParamSpec find_child_property (string property_name);
[CCode (cname = "clutter_container_class_list_child_properties")]
public class unowned GLib.ParamSpec[] list_child_properties ();
}
public struct Units {
[CCode (cname = "clutter_units_from_cm")]
public Units.from_cm (float cm);
[CCode (cname = "clutter_units_from_em")]
public Units.from_em (float em);
[CCode (cname = "clutter_units_from_em_for_font")]
public Units.from_em_for_font (string font_name, float em);
[CCode (cname = "clutter_units_from_mm")]
public Units.from_mm (float mm);
[CCode (cname = "clutter_units_from_pixels")]
public Units.from_pixels (int px);
[CCode (cname = "clutter_units_from_pt")]
public Units.from_pt (float pt);
[CCode (cname = "clutter_units_from_string")]
public Units.from_string (string str);
}
[CCode (cheader_filename = "clutter/clutter.h", has_copy_function = false, has_destroy_function = false, has_type_id = false)]
public struct Capture {
}
}

139
vapi/Clutter-15.metadata Normal file
View File

@ -0,0 +1,139 @@
// Non mini-object
ActorBox struct
Margin struct
PaintVolume struct
Perspective struct
*.ref unowned
Actor
.apply_transform.matrix ref
.get_abs_allocation_vertices.verts out=false
Event.type#method name="get_type"
Image
.new symbol_type="constructor"
// ???
Actor.has_pointer#method name="get_has_pointer"
// Not all backing symbols are deprecated
Actor.pick deprecated=false
// Nullable return values
Actor
.get_parent nullable
// method/virtual-method/signal don't match
Actor
.event#method name="emit_event"
.get_paint_volume#virtual_method name="get_paint_volume_vfunc"
.get_paint_volume#virtual_method.volume out
Text
.activate#method name="try_activate"
.insert_text#signal skip
TextBuffer.get_text#virtual_method name="get_text_with_length"
// Default values
Stage.read_pixels
.width default=-1
.height default=-1
Stage.paint_to_buffer
.data type="uint8[]"
Text
.position_to_coords.line_height default=null
// Skipped by g-i for unknown reasons
LayoutManager
.create_child_meta skip=false
// Variadic arguments
Backend
.get_cogl_context skip=false
Interval
.new skip=false
.get_interval skip=false
.set_final skip=false
.set_initial skip=false
.set_interval skip=false
LayoutManager
.child_get skip=false
.child_set skip=false
// Skipped upstream for unknown reasons
Interval.register_progress_func skip=false
threads_add_idle skip=false
threads_add_idle_full skip=false
threads_add_timeout skip=false
threads_add_timeout_full skip=false
// struct/class confusion
ActorBox
.new skip
.from_vertices skip
Margin
.new skip
// Upstream
Event
.get_position.position out
TransferFunction.get_default_luminances
.min_lum_out out
.max_lum_out out
.ref_lum_out out
FrameListenerIface skip
FrameClock.new skip
// Remove for clutter-2.0
/////////////////////////
StageView.layout skip
Stage
.paint_view.redraw_clip type="Cairo.Region"
// *Event should be compact classes derived from Clutter.Event
Event.type skip=false
AnyEvent struct=false base_type="Clutter.Event"
ButtonEvent struct=false base_type="Clutter.Event"
CrossingEvent struct=false base_type="Clutter.Event"
DeviceEvent struct=false base_type="Clutter.Event"
IMEvent struct=false base_type="Clutter.Event"
KeyEvent struct=false base_type="Clutter.Event"
MotionEvent struct=false base_type="Clutter.Event"
PadButtonEvent struct=false base_type="Clutter.Event"
PadRingEvent struct=false base_type="Clutter.Event"
PadStripEvent struct=false base_type="Clutter.Event"
ProximityEvent struct=false base_type="Clutter.Event"
ScrollEvent struct=false base_type="Clutter.Event"
TouchEvent struct=false base_type="Clutter.Event"
TouchpadHoldEvent struct=false base_type="Clutter.Event"
TouchpadPinchEvent struct=false base_type="Clutter.Event"
TouchpadSwipeEvent struct=false base_type="Clutter.Event"
// Keysyms used to be CLUTTER_X instead of CLUTTER_KEY_X
*#constant skip
CURRENT_TIME skip=false
PRIORITY_REDRAW skip=false
// Clutter devs don't like us creating nested namespaces
value_* name="value_(.+)" parent="Clutter.Value"
threads_* name="threads_(.+)" parent="Clutter.Threads"
threads_add_idle name="add" parent="Clutter.Threads.Idle"
threads_add_idle_full name="add_full" parent="Clutter.Threads.Idle"
threads_add_timeout name="add" parent="Clutter.Threads.Timeout"
threads_add_timeout_full name="add_full" parent="Clutter.Threads.Timeout"
// There is no way to know sealed classes before GLib 2.70
ColorState sealed
FrameClock sealed
TextureContent sealed
TextureContent.new_from_texture symbol_type="constructor"
// Possibly keep
KEY_* skip=false name="KEY_(.+)" type="uint" parent="Clutter.Key"
BUTTON_* skip=false name="BUTTON_(.+)" type="uint32" parent="Clutter.Button"
EVENT_STOP skip=false type="bool"
EVENT_PROPAGATE skip=false type="bool"

66
vapi/Cogl-15-custom.vala Normal file
View File

@ -0,0 +1,66 @@
namespace Cogl {
public struct Color {
[CCode (cname="cogl_color_init_from_4f")]
public Color.from_4f (float red, float green, float blue, float alpha);
[CCode (cname="cogl_color_init_from_hsl")]
public Color.from_hsl (float hue, float saturation, float luminance);
[CCode (cname = "_vala_cogl_color_from_string")]
public static Cogl.Color? from_string (string str) {
Cogl.Color color = {};
if (color.init_from_string (str))
return color;
return null;
}
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP2 {
public float x;
public float y;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP2C4 {
public float x;
public float y;
public uint8 r;
public uint8 g;
public uint8 b;
public uint8 a;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP2T2 {
public float x;
public float y;
public float s;
public float t;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP2T2C4 {
public float x;
public float y;
public float s;
public float t;
public uint8 r;
public uint8 g;
public uint8 b;
public uint8 a;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP3 {
public float x;
public float y;
public float z;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct VertexP3T2 {
public float x;
public float y;
public float z;
public float s;
public float t;
}
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_PIXEL_FORMAT_", type_id = "cogl_pixel_format_get_type ()")]
public enum PixelFormat {
CAIRO_ARGB32_COMPAT;
}
}

46
vapi/Cogl-15.metadata Normal file
View File

@ -0,0 +1,46 @@
* cheader_filename="cogl/cogl.h"
Color struct
Color.equal.v1 type="Cogl.Color"
Color.equal.v2 type="Cogl.Color"
Color.from_string name="init_from_string"
Context.free_timestamp_query.query owned
Bitmap.* skip=false
Bitmap.new_for_data.data type="owned uint8[]"
Bitmap.get_buffer type="unowned Cogl.Buffer?"
Primitive.new skip=false
Texture
.get_data.data type="uint8[]"
.set_data.data type="uint8[]"
.set_region.data type="uint8[]"
Texture2D
.new_from_data skip=false
Texture.error_quark parent="Cogl.TextureError" name="quark"
Scanout.error_quark parent="Cogl.ScanoutError" name="quark"
RendererError errordomain
SystemError errordomain
TextureError errordomain
FramebufferError errordomain
ScanoutError errordomain
blit_framebuffer parent="Cogl.Framebuffer" symbol_type="method" instance_idx=0 name="blit"
meta_texture_foreach_in_region parent="Cogl.Texture" symbol_type="method" instance_idx=0 name="foreach_in_region"
Onscreen
.add_frame_callback unowned
A_BIT parent="Cogl.Bits" name="A"
BGR_BIT parent="Cogl.Bits" name="BGR"
AFIRST_BIT parent="Cogl.Bits" name="AFIRST"
PREMULT_BIT parent="Cogl.Bits" name="PREMULT"
DEPTH_BIT parent="Cogl.Bits" name="DEPTH"
STENCIL_BIT parent="Cogl.Bits" name="STENCIL"
PIXEL_FORMAT_MAX_PLANES parent = "Cogl.PixelFormat" name="MAX_PLANES"

189
vapi/Meta-15.metadata Normal file
View File

@ -0,0 +1,189 @@
* skip=false
*.* skip=false
* cheader_filename="meta/main.h"
Backend cheader_filename="meta/meta-backend.h"
Backend.gpu_added skip
Background cheader_filename="meta/meta-background.h"
Background.set_file.file nullable
BackgroundContent.new symbol_type="constructor"
BackgroundActor cheader_filename="meta/meta-background-actor.h"
BackgroundContent cheader_filename="meta/meta-background-content.h"
BackgroundGroup cheader_filename="meta/meta-background-group.h"
BackgroundImage cheader_filename="meta/meta-background-image.h"
BackgroundImageCache cheader_filename="meta/meta-background-image.h"
Barrier cheader_filename="meta/barrier.h"
BarrierDirection cheader_filename="meta/barrier.h"
BarrierEvent cheader_filename="meta/barrier.h"
BarrierFlags cheader_filename="meta/barrier.h"
ButtonFunction cheader_filename="meta/common.h"
ButtonLayout cheader_filename="meta/common.h"
Compositor cheader_filename="meta/compositor.h"
get_stage_for_display parent="Meta.Display" symbol_type="method" name="get_stage" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
get_top_window_group_for_display parent="Meta.Display" symbol_type="method" name="get_top_window_group" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
get_window_group_for_display parent="Meta.Display" symbol_type="method" name="get_window_group" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
disable_unredirect_for_display parent="Meta.Display" symbol_type="method" name="disable_unredirect" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
enable_unredirect_for_display parent="Meta.Display" symbol_type="method" name="enable_unredirect" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
get_window_actors parent="Meta.Display" symbol_type="method" instance_idx=0 cheader_filename="meta/compositor-mutter.h" type_arguments="Meta.WindowActor"
CompEffect cheader_filename="meta/compositor.h"
CloseDialog cheader_filename="meta/meta-close-dialog.h"
CloseDialogResponse cheader_filename="meta/meta-close-dialog.h"
Context cheader_filename="meta/meta-context.h"
CompositorType cheader_filename="meta/meta-enums.h"
Cursor cheader_filename="meta/common.h"
CursorTracker cheader_filename="meta/meta-cursor-tracker.h"
CursorTracker.get_for_display parent="Meta.Display" symbol_type="method" instance_idx=0 name="get_cursor_tracker"
CursorTracker.get_pointer.mods out
DebugControl cheader_filename="meta/meta-debug-control.h"
DebugTopic cheader_filename="meta/util.h"
DebugPaintFlag cheader_filename="meta/util.h"
Direction cheader_filename="meta/common.h"
Display cheader_filename="meta/display.h"
Display.focus_window#signal name="do_focus_window"
DisplayCorner cheader_filename="meta/display.h"
DisplayDirection cheader_filename="meta/display.h"
Dnd cheader_filename="meta/meta-dnd.h"
EdgeType cheader_filename="meta/boxes.h"
Edge cheader_filename="meta/boxes.h"
FrameBorders cheader_filename="meta/common.h"
FrameType cheader_filename="meta/common.h"
GrabOp cheader_filename="meta/common.h"
Gravity cheader_filename="meta/common.h"
Group cheader_filename="meta/meta-x11-types.h"
IdleMonitor cheader_filename="meta/meta-idle-monitor.h"
IdleMonitorWatchFunc cheader_filename="meta/meta-idle-monitor.h"
InhibitShortcutsDialog cheader_filename="meta/meta-inhibit-shortcuts-dialog.h"
InhibitShortcutsDialogResponse cheader_filename="meta/meta-inhibit-shortcuts-dialog.h"
KeyboardA11yFlags cheader_filename="meta/meta-enums.h"
KeyBinding cheader_filename="meta/keybindings.h"
keybindings_set_custom_handler parent="Meta.KeyBinding" name="set_custom_handler" cheader_filename="meta/keybindings.h"
KeyBindingAction cheader_filename="meta/prefs.h"
KeyBindingFlags cheader_filename="meta/prefs.h"
KeyHandlerFunc cheader_filename="meta/prefs.h"
KeyHandlerFunc.event type="Clutter.KeyEvent?"
KeyHandlerFunc.window nullable
LaunchContext cheader_filename="meta/meta-launch-context.h"
Laters cheader_filename="meta/types.h"
LaterType cheader_filename="meta/util.h"
MaximizeFlags cheader_filename="meta/window.h"
MultiTexture cheader_filename="meta/meta-multi-texture.h"
MultiTextureFormat cheader_filename="meta/meta-multi-texture-format.h"
MonitorManager cheader_filename="meta/meta-monitor-manager.h"
MonitorSwitchConfigType cheader_filename="meta/meta-monitor-manager.h"
MotionDirection cheader_filename="meta/common.h"
Orientation cheader_filename="meta/meta-orientation-manager.h"
OrientationManager cheader_filename="meta/meta-orientation-manager.h"
PadDirection cheader_filename="meta/display.h"
PadFeatureType cheader_filename="meta/display.h"
Plugin cheader_filename="meta/meta-plugin.h"
PluginInfo cheader_filename="meta/meta-plugin.h"
PowerSaveChangeReason cheader_filename="meta/meta-monitor-manager.h"
Preference cheader_filename="meta/prefs.h"
PrefsChangedFunc cheader_filename="meta/prefs.h"
RemoteAccessController cheader_filename="meta/meta-remote-access-controller.h"
RemoteAccessHandle cheader_filename="meta/meta-remote-access-controller.h"
Selection cheader_filename="meta/meta-selection.h"
SelectionSource cheader_filename="meta/meta-selection-source.h"
SelectionSourceMemory cheader_filename="meta/meta-selection-source-memory.h"
SelectionType cheader_filename="meta/meta-selection-source.h"
Settings cheader_filename="meta/meta-settings.h"
ShapedTexture cheader_filename="meta/meta-shaped-texture.h"
Side cheader_filename="meta/common.h"
SizeChange cheader_filename="meta/compositor.h"
SoundPlayer cheader_filename="meta/meta-sound-player.h"
StartupNotification cheader_filename="meta/meta-startup-notification.h"
StartupNotification.changed.object type="Meta.StartupSequence"
StartupNotification.get_sequences type_arguments="Meta.StartupSequence"
StartupSequence cheader_filename="meta/meta-startup-notification.h"
StackLayer cheader_filename="meta/common.h"
Stage cheader_filename="meta/meta-stage.h"
Strut cheader_filename="meta/boxes.h"
TabList cheader_filename="meta/display.h"
TabShowType cheader_filename="meta/display.h"
WaylandClient cheader_filename="meta/meta-wayland-client.h"
WaylandCompositor cheader_filename="meta/meta-wayland-compositor.h"
Workspace cheader_filename="meta/workspace.h"
WorkspaceManager cheader_filename="meta/meta-workspace-manager.h"
Window cheader_filename="meta/window.h"
Window.focus#signal name="focused"
Window.suspend_state skip
Window.main_monitor skip
WindowActor cheader_filename="meta/meta-window-actor.h"
WindowClientType cheader_filename="meta/window.h"
WindowForeachFunc cheader_filename="meta/window.h"
WindowGroup cheader_filename="meta/meta-window-group.h"
WindowMenuType cheader_filename="meta/compositor.h"
WindowType cheader_filename="meta/window.h"
X11Display cheader_filename="meta/meta-x11-display.h"
X11Display.add_event_func skip
X11DisplayEventFunc skip
X11Display.set_stage_input_region.rects type="X.Xrectangle[]" array_length_idx=1
WaylandSurface.scanout_candidate skip
WaylandSurface.main_monitor skip
// As per https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2287
MonitorManager.monitor_privacy_screen_changed skip
prefs_* parent="Meta.Prefs" name="prefs_(.+)" cheader_filename="meta/prefs.h"
g_utf8_strndup skip
preference_to_string cheader_filename="meta/prefs.h"
frame_type_to_string cheader_filename="meta/util.h"
topic_to_string parent="Meta.DebugTopic" name="to_string" cheader_filename="meta/util.h"
CURRENT_TIME cheader_filename="meta/common.h"
PRIORITY_RESIZE cheader_filename="meta/common.h"
PRIORITY_BEFORE_REDRAW cheader_filename="meta/common.h"
PRIORITY_REDRAW cheader_filename="meta/common.h"
PRIORITY_PREFS_NOTIFY cheader_filename="meta/common.h"
VIRTUAL_CORE_POINTER_ID cheader_filename="meta/common.h"
VIRTUAL_CORE_KEYBOARD_ID cheader_filename="meta/common.h"
Display.window_visibility_updated
.object name="unplaced" type="GLib.List<unowned Meta.Window>"
.p0 name="should_show" type="GLib.List<unowned Meta.Window>"
.p1 name="should_hide" type="GLib.List<unowned Meta.Window>"
add_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h"
bug parent="Meta.Util" cheader_filename="meta/util.h"
external_binding_name_for_action parent="Meta.Util" cheader_filename="meta/util.h"
fatal parent="Meta.Util" cheader_filename="meta/util.h"
is_verbose parent="Meta.Util" cheader_filename="meta/util.h"
is_wayland_compositor parent="Meta.Util" cheader_filename="meta/util.h"
pop_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h"
push_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h"
remove_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h"
unsigned_long_equal parent="Meta.Util" name="ulong_equal" cheader_filename="meta/util.h"
unsigned_long_equal.v1 type="ulong?"
unsigned_long_equal.v2 type="ulong?"
unsigned_long_hash parent="Meta.Util" name="ulong_hash" cheader_filename="meta/util.h"
unsigned_long_hash.v type="ulong?"
warning parent="Meta.Util" cheader_filename="meta/util.h"
create_context parent="Meta.Context" name="new" symbol_type="constructor" cheader_filename="meta/meta-context.h"
Plugin.create_close_dialog unowned=false nullable
Plugin.create_inhibit_shortcuts_dialog unowned=false
BackgroundActor sealed
BackgroundContent sealed
BackgroundImage sealed
BackgroundImageCache sealed
Background sealed
Dnd sealed
IdleMonitor sealed
LaunchContext sealed
RemoteAccessController sealed
SelectionSourceMemory sealed
Selection sealed
ShapedTexture sealed
SoundPlayer sealed
Stage sealed
StartupNotification sealed
WaylandClient sealed
WindowGroup sealed
WorkspaceManager sealed
X11Display sealed

6
vapi/Mtk-15.metadata Normal file
View File

@ -0,0 +1,6 @@
Rectangle struct
RECTANGLE_MAX_STACK_RECTS parent="Mtk.Rectangle" name="MAX_STACK_RECTS"
REGION_BUILDER_MAX_LEVELS parent="Mtk.RegionBuilder" name="MAX_LEVELS"
MONITOR_ALL_TRANSFORMS parent="Mtk.MonitorTransform" name="ALL"
MONITOR_N_TRANSFORMS skip

1
vapi/libmutter-15.deps Symbolic link
View File

@ -0,0 +1 @@
libmutter-14.deps

1
vapi/libmutter-15.vapi Symbolic link
View File

@ -0,0 +1 @@
libmutter-14.vapi

View File

@ -109,8 +109,10 @@ namespace Meta {
public static string external_binding_name_for_action (uint keybinding_action);
[CCode (cheader_filename = "meta/util.h", cname = "meta_fatal")]
public static void fatal (string format, ...);
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/util.h", cname = "meta_get_locale_direction")]
public static Meta.LocaleDirection get_locale_direction ();
#endif
#if !HAS_MUTTER43
[CCode (cheader_filename = "meta/util.h", cname = "meta_is_syncing")]
public static bool is_syncing ();
@ -160,6 +162,9 @@ namespace Meta {
public unowned Meta.IdleMonitor get_core_idle_monitor ();
public unowned Meta.Dnd get_dnd ();
public unowned Meta.MonitorManager get_monitor_manager ();
#if HAS_MUTTER47
public unowned Meta.OrientationManager get_orientation_manager ();
#endif
public unowned Meta.RemoteAccessController get_remote_access_controller ();
public unowned Meta.Settings get_settings ();
public unowned Clutter.Actor get_stage ();
@ -189,9 +194,17 @@ namespace Meta {
public Background (Meta.Display display);
public static void refresh_all ();
public void set_blend (GLib.File file1, GLib.File file2, double blend_factor, GDesktop.BackgroundStyle style);
#if HAS_MUTTER47
public void set_color (Cogl.Color color);
#else
public void set_color (Clutter.Color color);
#endif
public void set_file (GLib.File? file, GDesktop.BackgroundStyle style);
#if HAS_MUTTER47
public void set_gradient (GDesktop.BackgroundShading shading_direction, Cogl.Color color, Cogl.Color second_color);
#else
public void set_gradient (GDesktop.BackgroundShading shading_direction, Clutter.Color color, Clutter.Color second_color);
#endif
[NoAccessorMethod]
public Meta.Display meta_display { owned get; construct; }
public signal void changed ();
@ -368,6 +381,9 @@ namespace Meta {
public void destroy ();
public unowned Meta.Backend get_backend ();
public Meta.CompositorType get_compositor_type ();
#if HAS_MUTTER47
public unowned Meta.DebugControl get_debug_control ();
#endif
public unowned Meta.Display get_display ();
#if HAS_MUTTER45
public unowned Meta.WaylandCompositor? get_wayland_compositor ();
@ -386,6 +402,10 @@ namespace Meta {
public void terminate_with_error (GLib.Error error);
[NoAccessorMethod]
public string name { owned get; construct; }
#if HAS_MUTTER47
[NoAccessorMethod]
public string nick { owned get; construct; }
#endif
[NoAccessorMethod]
public bool unsafe_mode { get; set; }
#if HAS_MUTTER44
@ -409,6 +429,18 @@ namespace Meta {
public signal void position_invalidated ();
public signal void visibility_changed ();
}
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-debug-control.h", type_id = "meta_debug_control_get_type ()")]
public class DebugControl : GLib.DBusInterfaceSkeleton, GLib.DBusInterface {
[CCode (has_construct_function = false)]
protected DebugControl ();
public void set_exported (bool exported);
[NoAccessorMethod]
public Meta.Context context { owned get; construct; }
[NoAccessorMethod]
public bool exported { get; set; }
}
#endif
[CCode (cheader_filename = "meta/display.h", type_id = "meta_display_get_type ()")]
public class Display : GLib.Object {
[CCode (has_construct_function = false)]
@ -521,6 +553,9 @@ namespace Meta {
public Clutter.ModifierType compositor_modifiers { get; }
public Meta.Window focus_window { get; }
public signal void accelerator_activated (uint object, Clutter.InputDevice p0, uint p1);
#if HAS_MUTTER47
public signal void accelerator_deactivated (uint object, Clutter.InputDevice p0, uint p1);
#endif
public signal void closing ();
public signal void cursor_updated ();
[CCode (cname = "focus-window")]
@ -563,18 +598,31 @@ namespace Meta {
public signal void dnd_leave ();
public signal void dnd_position_change (int object, int p0);
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/types.h", has_type_id = false)]
[Compact]
public class Frame {
}
#endif
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-x11-types.h", has_type_id = false)]
#else
[CCode (cheader_filename = "meta/group.h", has_type_id = false)]
#endif
[Compact]
public class Group {
#if !HAS_MUTTER47
public int get_size ();
public unowned string get_startup_id ();
#endif
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-x11-group.h")]
#endif
public GLib.SList<weak Meta.Window> list_windows ();
#if !HAS_MUTTER47
public bool property_notify ([CCode (type = "XEvent*")] ref X.Event event);
public void update_layers ();
#endif
}
[CCode (cheader_filename = "meta/meta-idle-monitor.h", type_id = "meta_idle_monitor_get_type ()")]
public sealed class IdleMonitor : GLib.Object {
@ -681,6 +729,17 @@ namespace Meta {
public MultiTexture.simple (owned Cogl.Texture plane);
public string to_string ();
}
#endif
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-orientation-manager.h", type_id = "meta_orientation_manager_get_type ()")]
public class OrientationManager : GLib.Object {
[CCode (has_construct_function = false)]
protected OrientationManager ();
public Meta.Orientation get_orientation ();
[NoAccessorMethod]
public bool has_accelerometer { get; }
public signal void orientation_changed ();
}
#endif
[CCode (cheader_filename = "meta/meta-plugin.h", type_id = "meta_plugin_get_type ()")]
public abstract class Plugin : GLib.Object {
@ -804,6 +863,7 @@ namespace Meta {
public int get_font_dpi ();
public int get_ui_scaling_factor ();
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-shadow-factory.h", ref_function = "meta_shadow_ref", type_id = "meta_shadow_get_type ()", unref_function = "meta_shadow_unref")]
[Compact]
public class Shadow {
@ -830,6 +890,7 @@ namespace Meta {
public void set_params (string class_name, bool focused, Meta.ShadowParams @params);
public signal void changed ();
}
#endif
[CCode (cheader_filename = "meta/meta-shaped-texture.h", type_id = "meta_shaped_texture_get_type ()")]
public sealed class ShapedTexture : GLib.Object, Clutter.Content {
[CCode (has_construct_function = false)]
@ -843,6 +904,12 @@ namespace Meta {
#endif
public void set_create_mipmaps (bool create_mipmaps);
public void set_mask_texture (Cogl.Texture mask_texture);
#if HAS_MUTTER47
[NoAccessorMethod]
public Clutter.Context clutter_context { owned get; construct; }
[NoAccessorMethod]
public Clutter.ColorState color_state { owned get; construct; }
#endif
public signal void size_changed ();
}
[CCode (cheader_filename = "meta/meta-sound-player.h", type_id = "meta_sound_player_get_type ()")]
@ -1016,7 +1083,9 @@ namespace Meta {
public unowned GLib.Object get_compositor_private ();
public unowned string get_description ();
public unowned Meta.Display get_display ();
#if !HAS_MUTTER46
public unowned Meta.Frame get_frame ();
#endif
#if HAS_MUTTER46
public unowned Mtk.Region? get_frame_bounds ();
#else
@ -1048,7 +1117,7 @@ namespace Meta {
public Meta.MaximizeFlags get_maximized ();
public int get_monitor ();
public unowned string? get_mutter_hints ();
public int get_pid ();
public pid_t get_pid ();
public unowned string get_role ();
public unowned string? get_sandboxed_app_id ();
public uint get_stable_sequence ();
@ -1083,7 +1152,9 @@ namespace Meta {
public bool is_always_on_all_workspaces ();
public bool is_ancestor_of_transient (Meta.Window transient);
public bool is_attached_dialog ();
#if !HAS_MUTTER47
public bool is_client_decorated ();
#endif
public bool is_fullscreen ();
public bool is_hidden ();
public bool is_monitor_sized ();
@ -1107,6 +1178,9 @@ namespace Meta {
public void move_frame (bool user_op, int root_x_nw, int root_y_nw);
public void move_resize_frame (bool user_op, int root_x_nw, int root_y_nw, int w, int h);
public void move_to_monitor (int monitor);
#if HAS_MUTTER47
public Mtk.Rectangle protocol_to_stage_rect (Mtk.Rectangle protocol_rect);
#endif
public void raise ();
#if HAS_MUTTER46
public void raise_and_make_recent_on_workspace (Meta.Workspace workspace);
@ -1121,10 +1195,15 @@ namespace Meta {
public void set_icon_geometry (Meta.Rectangle? rect);
public void shade (uint32 timestamp);
#endif
#if !HAS_MUTTER47
public void shove_titlebar_onscreen ();
#endif
public bool showing_on_its_workspace ();
#if !HAS_MUTTER46
public void shutdown_group ();
#endif
#if HAS_MUTTER47
public Mtk.Rectangle stage_to_protocol_rect (Mtk.Rectangle stage_rect);
#endif
public void stick ();
public bool titlebar_is_onscreen ();
@ -1138,6 +1217,9 @@ namespace Meta {
#endif
public void unstick ();
#if HAS_MUTTER46
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-x11-group.h")]
#endif
public unowned Meta.Group? x11_get_group ();
#endif
[NoAccessorMethod]
@ -1167,6 +1249,10 @@ namespace Meta {
#endif
[NoAccessorMethod]
public bool is_alive { get; }
#if HAS_MUTTER47
[NoAccessorMethod]
public bool mapped { get; }
#endif
[NoAccessorMethod]
public bool maximized_horizontally { get; }
[NoAccessorMethod]
@ -1190,7 +1276,7 @@ namespace Meta {
public uint user_time { get; }
public Meta.WindowType window_type { get; }
public string wm_class { get; }
#if HAS_MUTTER44
#if HAS_MUTTER44 && !HAS_MUTTER47
public ulong xwindow { get; construct; }
#endif
[CCode (cname = "focus")]
@ -1245,6 +1331,7 @@ namespace Meta {
[CCode (has_construct_function = false)]
protected WindowGroup ();
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-window-shape.h", ref_function = "meta_window_shape_ref", type_id = "meta_window_shape_get_type ()", unref_function = "meta_window_shape_unref")]
[Compact]
public class WindowShape {
@ -1265,6 +1352,7 @@ namespace Meta {
#endif
public void unref ();
}
#endif
[CCode (cheader_filename = "meta/workspace.h", type_id = "meta_workspace_get_type ()")]
public class Workspace : GLib.Object {
[CCode (has_construct_function = false)]
@ -1332,12 +1420,14 @@ namespace Meta {
#if !HAS_MUTTER44
public void clear_stage_input_region ();
#endif
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-x11-errors.h", cname = "meta_x11_error_trap_pop")]
public void error_trap_pop ();
[CCode (cheader_filename = "meta/meta-x11-errors.h", cname = "meta_x11_error_trap_pop_with_return")]
public int error_trap_pop_with_return ();
[CCode (cheader_filename = "meta/meta-x11-errors.h", cname = "meta_x11_error_trap_push")]
public void error_trap_push ();
#endif
#if !HAS_MUTTER45
public int get_damage_event_base ();
public int get_screen_number ();
@ -1362,7 +1452,11 @@ namespace Meta {
#if !HAS_MUTTER45
public void set_cm_selection ();
#endif
#if HAS_MUTTER47
public void set_stage_input_region ([CCode (array_length_cname = "n_rects", array_length_pos = 1.1, type = "XRectangle*")] X.Xrectangle[] rects);
#else
public void set_stage_input_region (X.XserverRegion region);
#endif
#if !HAS_MUTTER44
[CCode (cheader_filename = "meta/meta-x11-display.h", cname = "meta_x11_init_gdk_display")]
public static bool x11_init_gdk_display () throws GLib.Error;
@ -1462,6 +1556,7 @@ namespace Meta {
public bool vert_overlap (Meta.Rectangle rect2);
}
#endif
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-shadow-factory.h", has_type_id = false)]
public struct ShadowParams {
public int radius;
@ -1470,6 +1565,7 @@ namespace Meta {
public int y_offset;
public uint8 opacity;
}
#endif
[CCode (cheader_filename = "meta/boxes.h", has_type_id = false)]
public struct Strut {
#if HAS_MUTTER45
@ -1557,6 +1653,10 @@ namespace Meta {
[Flags]
public enum DebugPaintFlag {
NONE,
#if HAS_MUTTER47
SYNC_CURSOR_PRIMARY,
DISABLE_DIRECT_SCANOUT,
#endif
OPAQUE_REGION
}
[CCode (cheader_filename = "meta/util.h", cprefix = "META_DEBUG_", type_id = "meta_debug_topic_get_type ()")]
@ -1594,6 +1694,10 @@ namespace Meta {
#if HAS_MUTTER45
INPUT_EVENTS,
EIS,
#endif
#if HAS_MUTTER47
KMS_DEADLINE,
SESSION_MANAGEMENT,
#endif
RENDER;
[CCode (cheader_filename = "meta/util.h", cname = "meta_topic_to_string")]
@ -1829,6 +1933,9 @@ namespace Meta {
IGNORE_AUTOREPEAT,
#if HAS_MUTTER45
CUSTOM_TRIGGER,
#endif
#if HAS_MUTTER47
TRIGGER_RELEASE,
#endif
NO_AUTO_GRAB
}
@ -1861,11 +1968,13 @@ namespace Meta {
BEFORE_REDRAW,
IDLE
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/util.h", cprefix = "META_LOCALE_DIRECTION_", type_id = "meta_locale_direction_get_type ()")]
public enum LocaleDirection {
LTR,
RTL
}
#endif
[CCode (cheader_filename = "meta/window.h", cprefix = "META_MAXIMIZE_", type_id = "meta_maximize_flags_get_type ()")]
[Flags]
public enum MaximizeFlags {
@ -1904,6 +2013,17 @@ namespace Meta {
#endif
YUV420
}
#if HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-orientation-manager.h", cprefix = "META_ORIENTATION_", type_id = "meta_orientation_get_type ()")]
public enum Orientation {
UNDEFINED,
NORMAL,
BOTTOM_UP,
LEFT_UP,
RIGHT_UP;
public Mtk.MonitorTransform to_transform ();
}
#endif
[CCode (cheader_filename = "meta/display.h", cprefix = "META_PAD_DIRECTION_", type_id = "meta_pad_direction_get_type ()")]
public enum PadDirection {
UP,
@ -1980,12 +2100,14 @@ namespace Meta {
SELECTION_DND,
N_SELECTION_TYPES
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "meta/meta-window-actor.h", cprefix = "META_SHADOW_MODE_", type_id = "meta_shadow_mode_get_type ()")]
public enum ShadowMode {
AUTO,
FORCED_OFF,
FORCED_ON
}
#endif
[CCode (cheader_filename = "meta/common.h", cprefix = "META_SIDE_", type_id = "meta_side_get_type ()")]
public enum Side {
LEFT,

View File

@ -395,3 +395,94 @@ if mutter46_dep.found()
output: 'libmutter-14.vapi'
)
endif
if mutter47_dep.found()
mtk_target = custom_target('mutter-mtk-15',
command: [
vapigen,
mutter_typelib_dir / 'Mtk-15.gir',
'--library=mutter-mtk-15',
'--pkg=gobject-2.0',
'--pkg=gio-2.0',
'--pkg=cairo',
'--pkg=graphene-gobject-1.0',
vapigen_args
],
output: 'mutter-mtk-15.vapi'
)
cogl_target = custom_target('mutter-cogl-15',
command: [
vapigen,
mutter_typelib_dir / 'Cogl-15.gir',
'--library=mutter-cogl-15',
'--pkg=mutter-mtk-15',
'--pkg=gobject-2.0',
'--pkg=gio-2.0',
'--pkg=cairo',
'--pkg=graphene-gobject-1.0',
'--pkg=x11',
vapigen_args,
files('Cogl-15-custom.vala')
],
depends: mtk_target,
output: 'mutter-cogl-15.vapi'
)
cogl_pango_target = custom_target('mutter-cogl-pango-15',
command: [
vapigen,
mutter_typelib_dir / 'CoglPango-15.gir',
'--library=mutter-cogl-pango-15',
'--pkg=mutter-mtk-15',
'--pkg=mutter-cogl-15',
'--pkg=pangocairo',
'--pkg=gio-2.0',
'--pkg=glib-2.0',
'--pkg=x11',
vapigen_args
],
depends: [mtk_target, cogl_target],
output: 'mutter-cogl-pango-15.vapi'
)
clutter_target = custom_target('mutter-clutter-15',
command: [
vapigen,
mutter_typelib_dir / 'Clutter-15.gir',
'--library=mutter-clutter-15',
'--pkg=graphene-gobject-1.0',
'--pkg=mutter-mtk-15',
'--pkg=mutter-cogl-15',
'--pkg=mutter-cogl-pango-15',
'--pkg=atk',
'--pkg=gio-2.0',
'--pkg=json-glib-1.0',
'--pkg=pangocairo',
'--pkg=x11',
vapigen_args,
files('Clutter-15-custom.vala')
],
depends: [ cogl_target, cogl_pango_target, mtk_target ],
output: 'mutter-clutter-15.vapi'
)
libmutter_target = custom_target('libmutter-15',
command: [
vapigen,
mutter_typelib_dir / 'Meta-15.gir',
'--library=libmutter-15',
'--pkg=graphene-gobject-1.0',
'--pkg=mutter-cogl-15',
'--pkg=mutter-cogl-pango-15',
'--pkg=mutter-clutter-15',
'--pkg=atk',
'--pkg=gio-2.0',
'--pkg=json-glib-1.0',
'--pkg=pangocairo',
'--pkg=x11',
'--pkg=xfixes-4.0',
vapigen_args
],
depends: [ cogl_target, cogl_pango_target, clutter_target ],
output: 'libmutter-15.vapi'
)
endif

View File

@ -0,0 +1,6 @@
atk
cairo
pango
json-glib-1.0
mutter-cogl-15
graphene-gobject-1.0

1
vapi/mutter-clutter-15.vapi Symbolic link
View File

@ -0,0 +1 @@
mutter-clutter-14.vapi

File diff suppressed because it is too large Load Diff

View File

@ -2,14 +2,38 @@
[CCode (cprefix = "Cogl", gir_namespace = "Cogl", gir_version = "14", lower_case_cprefix = "cogl_")]
namespace Cogl {
#if HAS_MUTTER47
namespace Bits {
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_A_BIT")]
public const int A;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_AFIRST_BIT")]
public const int AFIRST;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_BGR_BIT")]
public const int BGR;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_DEPTH_BIT")]
public const int DEPTH;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_PREMULT_BIT")]
public const int PREMULT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_STENCIL_BIT")]
public const int STENCIL;
}
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_atlas_get_type ()")]
public class Atlas : GLib.Object {
[CCode (has_construct_function = false)]
protected Atlas ();
public bool reserve_space (uint width, uint height, void* user_data);
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_atlas_texture_get_type ()")]
public sealed class AtlasTexture : Cogl.Texture {
[CCode (has_construct_function = false)]
protected AtlasTexture ();
[CCode (has_construct_function = false, type = "CoglTexture*")]
public AtlasTexture.from_bitmap (Cogl.Bitmap bmp);
#if !HAS_MUTTER47
[CCode (has_construct_function = false, type = "CoglTexture*")]
public AtlasTexture.from_data (Cogl.Context ctx, int width, int height, Cogl.PixelFormat format, int rowstride, uint8 data) throws GLib.Error;
#endif
[CCode (has_construct_function = false, type = "CoglTexture*")]
public AtlasTexture.with_size (Cogl.Context ctx, int width, int height);
}
@ -17,6 +41,7 @@ namespace Cogl {
public class Attribute : GLib.Object {
[CCode (has_construct_function = false)]
public Attribute (Cogl.AttributeBuffer attribute_buffer, string name, size_t stride, size_t offset, int components, Cogl.AttributeType type);
#if !HAS_MUTTER47
[CCode (has_construct_function = false)]
public Attribute.const_1f (Cogl.Context context, string name, float value);
[CCode (has_construct_function = false)]
@ -37,9 +62,12 @@ namespace Cogl {
public Attribute.const_4fv (Cogl.Context context, string name, float value);
[CCode (has_construct_function = false)]
public Attribute.const_4x4fv (Cogl.Context context, string name, float matrix4x4, bool transpose);
#endif
public unowned Cogl.AttributeBuffer get_buffer ();
#if !HAS_MUTTER47
public bool get_normalized ();
public void set_buffer (Cogl.AttributeBuffer attribute_buffer);
#endif
public void set_normalized (bool normalized);
}
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_attribute_buffer_get_type ()")]
@ -88,17 +116,28 @@ namespace Cogl {
public class Context : GLib.Object {
[CCode (has_construct_function = false)]
public Context (Cogl.Display? display) throws GLib.Error;
#if HAS_MUTTER47
public void flush ();
#else
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_foreach_feature")]
public void foreach_feature (Cogl.FeatureCallback callback);
#endif
public void free_timestamp_query (owned Cogl.TimestampQuery query);
public unowned Cogl.Display get_display ();
public int64 get_gpu_time_ns ();
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_get_graphics_reset_status")]
#endif
public Cogl.GraphicsResetStatus get_graphics_reset_status ();
public unowned Cogl.Pipeline get_named_pipeline (Cogl.PipelineKey key);
public unowned Cogl.Renderer get_renderer ();
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_has_feature")]
#endif
public bool has_feature (Cogl.FeatureID feature);
#if HAS_MUTTER47
public bool has_winsys_feature (Cogl.WinsysFeature feature);
#endif
public bool is_hardware_accelerated ();
public void set_named_pipeline (Cogl.PipelineKey key, Cogl.Pipeline? pipeline);
public int64 timestamp_query_get_time_ns (Cogl.TimestampQuery query);
@ -106,9 +145,15 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_display_get_type ()")]
public class Display : GLib.Object {
[CCode (has_construct_function = false)]
#if HAS_MUTTER47
public Display (Cogl.Renderer renderer);
#else
public Display (Cogl.Renderer renderer, Cogl.OnscreenTemplate onscreen_template);
#endif
public unowned Cogl.Renderer get_renderer ();
#if !HAS_MUTTER47
public void set_onscreen_template (Cogl.OnscreenTemplate onscreen_template);
#endif
public bool setup () throws GLib.Error;
}
[CCode (cheader_filename = "cogl/cogl.h", free_function = "cogl_dma_buf_handle_free", has_type_id = false)]
@ -128,6 +173,7 @@ namespace Cogl {
public bool sync_read_end () throws GLib.Error;
public bool sync_read_start () throws GLib.Error;
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Compact]
public class Fence {
@ -137,6 +183,7 @@ namespace Cogl {
public class FenceClosure {
public void* get_user_data ();
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "cogl_frame_closure_get_type ()")]
[Compact]
public class FrameClosure {
@ -153,6 +200,9 @@ namespace Cogl {
public int64 get_rendering_duration_ns ();
public uint get_sequence ();
public int64 get_time_before_buffer_swap_us ();
#if HAS_MUTTER47
public bool has_valid_gpu_rendering_duration ();
#endif
public bool is_hw_clock ();
public bool is_vsync ();
public bool is_zero_copy ();
@ -161,11 +211,15 @@ namespace Cogl {
public abstract class Framebuffer : GLib.Object {
[CCode (has_construct_function = false)]
protected Framebuffer ();
#if !HAS_MUTTER47
public unowned Cogl.FenceClosure? add_fence_callback ([CCode (scope = "async")] Cogl.FenceCallback callback);
#endif
public virtual bool allocate () throws GLib.Error;
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_blit_framebuffer")]
public bool blit (Cogl.Framebuffer dst, int src_x, int src_y, int dst_x, int dst_y, int width, int height) throws GLib.Error;
#if !HAS_MUTTER47
public void cancel_fence_callback (Cogl.FenceClosure closure);
#endif
public void clear (ulong buffers, Cogl.Color color);
public void clear4f (ulong buffers, float red, float green, float blue, float alpha);
public void discard_buffers (ulong buffers);
@ -181,24 +235,32 @@ namespace Cogl {
public int get_alpha_bits ();
public int get_blue_bits ();
public unowned Cogl.Context get_context ();
#if !HAS_MUTTER47
public int get_depth_bits ();
#endif
public bool get_depth_write_enabled ();
public bool get_dither_enabled ();
public int get_green_bits ();
public int get_height ();
#if !HAS_MUTTER47
public bool get_is_stereo ();
#endif
public Graphene.Matrix get_modelview_matrix ();
public Graphene.Matrix get_projection_matrix ();
public int get_red_bits ();
#if !HAS_MUTTER47
public int get_samples_per_pixel ();
public Cogl.StereoMode get_stereo_mode ();
#endif
public void get_viewport4fv ([CCode (array_length = false)] out unowned float viewport[4]);
public float get_viewport_height ();
public float get_viewport_width ();
public float get_viewport_x ();
public float get_viewport_y ();
public int get_width ();
#if !HAS_MUTTER47
public void identity_matrix ();
#endif
[NoWrapper]
public virtual bool is_y_flipped ();
public void orthographic (float x_1, float y_1, float x_2, float y_2, float near, float far);
@ -206,22 +268,30 @@ namespace Cogl {
public void pop_clip ();
public void pop_matrix ();
public void push_matrix ();
#if !HAS_MUTTER47
public void push_primitive_clip (Cogl.Primitive primitive, float bounds_x1, float bounds_y1, float bounds_x2, float bounds_y2);
#endif
public void push_rectangle_clip (float x_1, float y_1, float x_2, float y_2);
public void push_region_clip (Mtk.Region region);
public bool read_pixels (int x, int y, int width, int height, Cogl.PixelFormat format, uint8 pixels);
public bool read_pixels_into_bitmap (int x, int y, Cogl.ReadPixelsFlags source, Cogl.Bitmap bitmap);
#if !HAS_MUTTER47
public void resolve_samples ();
public void resolve_samples_region (int x, int y, int width, int height);
#endif
public void rotate (float angle, float x, float y, float z);
#if !HAS_MUTTER47
public void rotate_euler (Graphene.Euler euler);
#endif
public void scale (float x, float y, float z);
public void set_depth_write_enabled (bool depth_write_enabled);
public void set_dither_enabled (bool dither_enabled);
public void set_modelview_matrix (Graphene.Matrix matrix);
public void set_projection_matrix (Graphene.Matrix matrix);
#if !HAS_MUTTER47
public void set_samples_per_pixel (int samples_per_pixel);
public void set_stereo_mode (Cogl.StereoMode stereo_mode);
#endif
public void set_viewport (float x, float y, float width, float height);
public void transform (Graphene.Matrix matrix);
public void translate (float x, float y, float z);
@ -234,10 +304,12 @@ namespace Cogl {
public int width { get; set construct; }
public signal void destroy ();
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Compact]
public class FramebufferDriverConfig {
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_index_buffer_get_type ()")]
public sealed class IndexBuffer : Cogl.Buffer {
[CCode (has_construct_function = false)]
@ -258,7 +330,9 @@ namespace Cogl {
[Compact]
public class MatrixEntry {
public bool calculate_translation (Cogl.MatrixEntry entry1, out float x, out float y, out float z);
#if !HAS_MUTTER47
public bool equal (Cogl.MatrixEntry entry1);
#endif
public Graphene.Matrix? @get (out Graphene.Matrix matrix);
public bool is_identity ();
public Cogl.MatrixEntry @ref ();
@ -271,11 +345,15 @@ namespace Cogl {
public void frustum (float left, float right, float bottom, float top, float z_near, float z_far);
public Graphene.Matrix? @get (out Graphene.Matrix matrix);
public unowned Cogl.MatrixEntry get_entry ();
#if !HAS_MUTTER47
public bool get_inverse (out Graphene.Matrix inverse);
#endif
public void load_identity ();
public void multiply (Graphene.Matrix matrix);
#if !HAS_MUTTER47
public void orthographic (float x_1, float y_1, float x_2, float y_2, float near, float far);
public void perspective (float fov_y, float aspect, float z_near, float z_far);
#endif
public void pop ();
public void push ();
public void rotate (float angle, float x, float y, float z);
@ -296,7 +374,9 @@ namespace Cogl {
public class Onscreen : Cogl.Framebuffer {
[CCode (has_construct_function = false)]
protected Onscreen ();
#if !HAS_MUTTER47
public unowned Cogl.OnscreenDirtyClosure add_dirty_callback (owned Cogl.OnscreenDirtyCallback callback);
#endif
public unowned Cogl.FrameClosure add_frame_callback (owned Cogl.FrameCallback callback);
public void add_frame_info (owned Cogl.FrameInfo info);
[NoWrapper]
@ -304,15 +384,22 @@ namespace Cogl {
public virtual bool direct_scanout (Cogl.Scanout scanout, Cogl.FrameInfo info) throws GLib.Error;
public virtual int get_buffer_age ();
public int64 get_frame_counter ();
#if !HAS_MUTTER47
public void hide ();
#endif
public virtual void queue_damage_region ([CCode (array_length_cname = "n_rectangles", array_length_pos = 1.1)] int[] rectangles);
#if !HAS_MUTTER47
public void remove_dirty_callback (Cogl.OnscreenDirtyClosure closure);
#endif
public void remove_frame_callback (Cogl.FrameClosure closure);
#if !HAS_MUTTER47
public void show ();
#endif
public void swap_buffers (Cogl.FrameInfo frame_info, void* user_data);
public virtual void swap_buffers_with_damage ([CCode (array_length_cname = "n_rectangles", array_length_pos = 1.5)] int[] rectangles, Cogl.FrameInfo info);
public virtual void swap_region ([CCode (array_length_cname = "n_rectangles", array_length_pos = 1.5)] int[] rectangles, Cogl.FrameInfo info);
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "cogl_onscreen_dirty_closure_get_type ()")]
[Compact]
public class OnscreenDirtyClosure {
@ -337,6 +424,7 @@ namespace Cogl {
public int get_x ();
public int get_y ();
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_pipeline_get_type ()")]
public sealed class Pipeline : GLib.Object {
[CCode (has_construct_function = false)]
@ -382,6 +470,9 @@ namespace Cogl {
public void set_layer_wrap_mode_t (int layer_index, Cogl.PipelineWrapMode mode);
public bool set_per_vertex_point_size (bool enable) throws GLib.Error;
public void set_point_size (float point_size);
#if HAS_MUTTER47
public void set_static_name (string name);
#endif
public void set_uniform_1f (int uniform_location, float value);
public void set_uniform_1i (int uniform_location, int value);
public void set_uniform_float (int uniform_location, int n_components, int count, float value);
@ -398,35 +489,49 @@ namespace Cogl {
public class Primitive : GLib.Object {
[CCode (has_construct_function = false)]
public Primitive (Cogl.VerticesMode mode, int n_vertices, ...);
#if !HAS_MUTTER47
public Cogl.Primitive copy ();
#endif
public void draw (Cogl.Framebuffer framebuffer, Cogl.Pipeline pipeline);
#if !HAS_MUTTER47
public void foreach_attribute (Cogl.PrimitiveAttributeCallback callback);
public int get_first_vertex ();
[CCode (array_length = false)]
public unowned Cogl.Indices[]? get_indices ();
public Cogl.VerticesMode get_mode ();
public int get_n_vertices ();
#endif
[CCode (has_construct_function = false)]
public Primitive.p2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2[] data);
[CCode (has_construct_function = false)]
public Primitive.p2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2C4[] data);
[CCode (has_construct_function = false)]
public Primitive.p2t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2[] data);
#if !HAS_MUTTER47
[CCode (has_construct_function = false)]
public Primitive.p2t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2C4[] data);
#endif
[CCode (has_construct_function = false)]
public Primitive.p3 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3[] data);
#if !HAS_MUTTER47
[CCode (has_construct_function = false)]
public Primitive.p3c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3C4[] data);
#endif
[CCode (has_construct_function = false)]
public Primitive.p3t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2[] data);
#if !HAS_MUTTER47
[CCode (has_construct_function = false)]
public Primitive.p3t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2C4[] data);
#endif
public void set_first_vertex (int first_vertex);
public void set_indices ([CCode (array_length_cname = "n_indices", array_length_pos = 1.1)] Cogl.Indices[] indices);
#if !HAS_MUTTER47
public void set_mode (Cogl.VerticesMode mode);
#endif
public void set_n_vertices (int n_vertices);
#if !HAS_MUTTER47
public static void texture_set_auto_mipmap (Cogl.Texture primitive_texture, bool value);
#endif
[CCode (has_construct_function = false)]
public Primitive.with_attributes (Cogl.VerticesMode mode, int n_vertices, [CCode (array_length_cname = "n_attributes", array_length_pos = 3.1)] Cogl.Attribute[] attributes);
}
@ -436,9 +541,11 @@ namespace Cogl {
protected Program ();
[Version (deprecated = true, deprecated_since = "1.16")]
public void attach_shader (Cogl.Shader shader);
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_create_program")]
[Version (deprecated = true, deprecated_since = "1.16")]
public static Cogl.Program create ();
#endif
[Version (deprecated = true, deprecated_since = "1.16")]
public int get_uniform_location (string uniform_name);
[Version (deprecated = true, deprecated_since = "1.16")]
@ -458,18 +565,31 @@ namespace Cogl {
public class Renderer : GLib.Object {
[CCode (has_construct_function = false)]
public Renderer ();
#if !HAS_MUTTER47
public void add_constraint (Cogl.RendererConstraint constraint);
#endif
public void bind_api ();
#if !HAS_MUTTER47
public bool check_onscreen_template (Cogl.OnscreenTemplate onscreen_template) throws GLib.Error;
#endif
public bool connect () throws GLib.Error;
public static uint32 error_quark ();
#if !HAS_MUTTER47
public void foreach_output (Cogl.OutputCallback callback);
#endif
public Cogl.Driver get_driver ();
#if HAS_MUTTER47
public void* get_proc_address (string name);
#endif
public Cogl.WinsysID get_winsys_id ();
public bool is_dma_buf_supported ();
#if !HAS_MUTTER47
public void remove_constraint (Cogl.RendererConstraint constraint);
#endif
public void set_driver (Cogl.Driver driver);
#if !HAS_MUTTER47
public void set_winsys_id (Cogl.WinsysID winsys_id);
#endif
}
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_scanout_get_type ()")]
public sealed class Scanout : GLib.Object {
@ -487,10 +607,15 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_shader_get_type ()")]
public class Shader : GLib.Object {
[CCode (has_construct_function = false)]
#if HAS_MUTTER47
[Version (deprecated = true, deprecated_since = "1.16")]
public Shader (Cogl.ShaderType shader_type);
#else
protected Shader ();
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_create_shader")]
[Version (deprecated = true, deprecated_since = "1.16")]
public static Cogl.Shader create (Cogl.ShaderType shader_type);
#endif
[Version (deprecated = true, deprecated_since = "1.16")]
public Cogl.ShaderType get_shader_type ();
[Version (deprecated = true, deprecated_since = "1.16")]
@ -505,6 +630,9 @@ namespace Cogl {
public unowned string get_post ();
public unowned string get_pre ();
public unowned string get_replace ();
#if HAS_MUTTER47
public void set_capability (GLib.Quark domain, uint capability);
#endif
public void set_declarations (string declarations);
public void set_post (string post);
public void set_pre (string pre);
@ -516,6 +644,7 @@ namespace Cogl {
public SubTexture (Cogl.Context ctx, Cogl.Texture parent_texture, int sub_x, int sub_y, int sub_width, int sub_height);
public unowned Cogl.Texture get_parent ();
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_swap_chain_get_type ()")]
public class SwapChain : GLib.Object {
[CCode (has_construct_function = false)]
@ -523,13 +652,22 @@ namespace Cogl {
public void set_has_alpha (bool has_alpha);
public void set_length (int length);
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_texture_get_type ()")]
public abstract class Texture : GLib.Object {
[CCode (has_construct_function = false)]
protected Texture ();
public bool allocate () throws GLib.Error;
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_meta_texture_foreach_in_region")]
public void foreach_in_region (float tx_1, float ty_1, float tx_2, float ty_2, Cogl.PipelineWrapMode wrap_s, Cogl.PipelineWrapMode wrap_t, Cogl.MetaTextureCallback callback);
public Cogl.TextureComponents get_components ();
#if HAS_MUTTER47
public unowned Cogl.Context get_context ();
#endif
public int get_data (Cogl.PixelFormat format, uint rowstride, [CCode (array_length = false)] uint8[] data);
#if HAS_MUTTER47
public Cogl.PixelFormat get_format ();
#endif
public bool get_gl_texture (out uint out_gl_handle, out uint out_gl_target);
public uint get_height ();
public int get_max_waste ();
@ -537,6 +675,9 @@ namespace Cogl {
public uint get_width ();
public bool is_get_data_supported ();
public bool is_sliced ();
#if HAS_MUTTER47
public void set_auto_mipmap (bool value);
#endif
public void set_components (Cogl.TextureComponents components);
public bool set_data (Cogl.PixelFormat format, int rowstride, [CCode (array_length = false)] uint8[] data, int level) throws GLib.Error;
public void set_premultiplied (bool premultiplied);
@ -562,7 +703,6 @@ namespace Cogl {
[CCode (has_construct_function = false, type = "CoglTexture*")]
public Texture2D.from_data (Cogl.Context ctx, int width, int height, Cogl.PixelFormat format, int rowstride, [CCode (array_length = false)] uint8[] data) throws GLib.Error;
[CCode (has_construct_function = false, type = "CoglTexture*")]
[Version (since = "2.0")]
public Texture2D.with_format (Cogl.Context ctx, int width, int height, Cogl.PixelFormat format);
[CCode (has_construct_function = false, type = "CoglTexture*")]
public Texture2D.with_size (Cogl.Context ctx, int width, int height);
@ -573,8 +713,10 @@ namespace Cogl {
protected Texture2DSliced ();
[CCode (has_construct_function = false, type = "CoglTexture*")]
public Texture2DSliced.from_bitmap (Cogl.Bitmap bmp, int max_waste);
#if !HAS_MUTTER47
[CCode (has_construct_function = false, type = "CoglTexture*")]
public Texture2DSliced.from_data (Cogl.Context ctx, int width, int height, int max_waste, Cogl.PixelFormat format, int rowstride, [CCode (array_length = false)] uint8[] data) throws GLib.Error;
#endif
[CCode (has_construct_function = false, type = "CoglTexture*")]
public Texture2DSliced.with_size (Cogl.Context ctx, int width, int height, int max_waste);
}
@ -589,39 +731,69 @@ namespace Cogl {
}
[CCode (cheader_filename = "cogl/cogl.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "cogl_color_get_type ()")]
public struct Color {
#if HAS_MUTTER47
public uint8 red;
public uint8 green;
public uint8 blue;
public uint8 alpha;
#endif
public Cogl.Color? copy ();
public bool equal ([CCode (type = "void*")] Cogl.Color v2);
#if !HAS_MUTTER47
public void free ();
#endif
[CCode (cname = "cogl_color_init_from_4f")]
[Version (since = "1.4")]
public Color.from_4f (float red, float green, float blue, float alpha);
#if !HAS_MUTTER47
[CCode (cname = "cogl_color_init_from_4fv")]
[Version (since = "1.4")]
public Color.from_4fv (float color_array);
#endif
[CCode (cname = "cogl_color_init_from_hsl")]
[Version (since = "1.16")]
public Color.from_hsl (float hue, float saturation, float luminance);
#if HAS_MUTTER47
[CCode (cname = "_vala_cogl_color_from_string")]
public static Cogl.Color? from_string (string str) {
Cogl.Color color = { };
if (color.init_from_string (str)) {
return color;
}
return null;
}
#endif
public float get_alpha ();
public float get_blue ();
public float get_green ();
public float get_red ();
#if HAS_MUTTER47
public uint hash ();
#endif
public void init_from_4f (float red, float green, float blue, float alpha);
public void init_from_hsl (float hue, float saturation, float luminance);
#if HAS_MUTTER47
[CCode (cname = "cogl_color_from_string")]
public bool init_from_string (string str);
#endif
public void premultiply ();
public void to_hsl (out float hue, out float saturation, out float luminance);
#if HAS_MUTTER47
public string to_string ();
#endif
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct DepthState {
#if !HAS_MUTTER47
public void get_range (float near_val, float far_val);
public bool get_test_enabled ();
public Cogl.DepthTestFunction get_test_function ();
public bool get_write_enabled ();
#endif
public void init ();
public void set_range (float near_val, float far_val);
public void set_test_enabled (bool enable);
public void set_test_function (Cogl.DepthTestFunction function);
public void set_write_enabled (bool enable);
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct OnscreenDirtyInfo {
public int x;
@ -629,10 +801,12 @@ namespace Cogl {
public int width;
public int height;
}
#endif
[CCode (cheader_filename = "cogl/cogl.h")]
[SimpleType]
public struct PipelineKey : char {
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct PollFD {
public int fd;
@ -646,14 +820,13 @@ namespace Cogl {
public float ty;
public Cogl.Color color;
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP2 {
public float x;
public float y;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP2C4 {
public float x;
public float y;
@ -663,15 +836,14 @@ namespace Cogl {
public uint8 a;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP2T2 {
public float x;
public float y;
public float s;
public float t;
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP2T2C4 {
public float x;
public float y;
@ -682,15 +854,15 @@ namespace Cogl {
public uint8 b;
public uint8 a;
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3 {
public float x;
public float y;
public float z;
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3C4 {
public float x;
public float y;
@ -700,8 +872,8 @@ namespace Cogl {
public uint8 b;
public uint8 a;
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3T2 {
public float x;
public float y;
@ -709,8 +881,8 @@ namespace Cogl {
public float s;
public float t;
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3T2C4 {
public float x;
public float y;
@ -722,6 +894,13 @@ namespace Cogl {
public uint8 b;
public uint8 a;
}
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_ATLAS_", has_type_id = false)]
[Flags]
public enum AtlasFlags {
CLEAR_TEXTURE,
DISABLE_MIGRATION
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_ATTRIBUTE_TYPE_", has_type_id = false)]
public enum AttributeType {
BYTE,
@ -752,22 +931,26 @@ namespace Cogl {
DEPTH,
STENCIL
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_BUFFER_ERROR_", type_id = "cogl_buffer_error_get_type ()")]
public enum BufferError {
MAP
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_BUFFER_MAP_HINT_", type_id = "cogl_buffer_map_hint_get_type ()")]
[Flags]
public enum BufferMapHint {
DISCARD,
DISCARD_RANGE
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_", has_type_id = false)]
[Flags]
public enum BufferTarget {
WINDOW_BUFFER,
OFFSCREEN_BUFFER
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_BUFFER_UPDATE_HINT_", type_id = "cogl_buffer_update_hint_get_type ()")]
public enum BufferUpdateHint {
STATIC,
@ -822,6 +1005,10 @@ namespace Cogl {
OGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL,
[CCode (cname = "COGL_FEATURE_ID_BLIT_FRAMEBUFFER")]
OGL_FEATURE_ID_BLIT_FRAMEBUFFER,
#if HAS_MUTTER47
[CCode (cname = "COGL_FEATURE_ID_SYNC_FD")]
OGL_FEATURE_ID_SYNC_FD,
#endif
[CCode (cname = "COGL_FEATURE_ID_TIMESTAMP_QUERY")]
OGL_FEATURE_ID_TIMESTAMP_QUERY
}
@ -943,7 +1130,10 @@ namespace Cogl {
public int get_bytes_per_pixel (int plane);
public int get_n_planes ();
public unowned string to_string ();
[CCode (cheader_filename = "cogl/cogl.h")]
public const int MAX_PLANES;
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_POLL_FD_EVENT_", has_type_id = false)]
public enum PollFDEvent {
IN,
@ -953,12 +1143,14 @@ namespace Cogl {
HUP,
NVAL
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_READ_PIXELS_COLOR_", has_type_id = false)]
[Flags]
public enum ReadPixelsFlags {
[CCode (cname = "COGL_READ_PIXELS_COLOR_BUFFER")]
READ_PIXELS_COLOR_BUFFER
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_RENDERER_CONSTRAINT_USES_", has_type_id = false)]
[Flags]
public enum RendererConstraint {
@ -966,6 +1158,7 @@ namespace Cogl {
XLIB,
EGL
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_SHADER_TYPE_", has_type_id = false)]
public enum ShaderType {
VERTEX,
@ -983,6 +1176,7 @@ namespace Cogl {
LAYER_FRAGMENT,
TEXTURE_LOOKUP
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_STEREO_", has_type_id = false)]
public enum StereoMode {
BOTH,
@ -998,6 +1192,7 @@ namespace Cogl {
VERTICAL_RGB,
VERTICAL_BGR
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_TEXTURE_COMPONENTS_", has_type_id = false)]
public enum TextureComponents {
A,
@ -1042,6 +1237,7 @@ namespace Cogl {
EGL_XLIB,
CUSTOM
}
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_BITMAP_ERROR_", has_type_id = false)]
public errordomain BitmapError {
FAILED,
@ -1058,6 +1254,7 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h")]
public static uint32 quark ();
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_FRAMEBUFFER_ERROR_", has_type_id = false)]
public errordomain FramebufferError {
[CCode (cname = "COGL_FRAMEBUFFER_ERROR_ALLOCATE")]
@ -1087,40 +1284,38 @@ namespace Cogl {
TYPE;
public static uint32 quark ();
}
#if HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 0.9)]
public delegate void AtlasUpdatePositionCallback (Cogl.Texture new_texture, Mtk.Rectangle rect);
#endif
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 1.9)]
public delegate void FeatureCallback (Cogl.FeatureID feature);
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 1.9)]
public delegate void FenceCallback (Cogl.Fence fence);
#endif
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 3.9)]
public delegate void FrameCallback (Cogl.Onscreen onscreen, Cogl.FrameEvent event, Cogl.FrameInfo info);
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 3.9)]
public delegate void MetaTextureCallback (Cogl.Texture sub_texture, float sub_texture_coords, float meta_coords);
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 2.9)]
public delegate void OnscreenDirtyCallback (Cogl.Onscreen onscreen, Cogl.OnscreenDirtyInfo info);
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 1.9)]
public delegate void OutputCallback (Cogl.Output output);
#endif
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 2.9)]
public delegate bool PipelineLayerCallback (Cogl.Pipeline pipeline, int layer_index);
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 2.9)]
public delegate bool PrimitiveAttributeCallback (Cogl.Primitive primitive, Cogl.Attribute attribute);
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_AFIRST_BIT")]
public const int AFIRST_BIT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_A_BIT")]
public const int A_BIT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_BGR_BIT")]
public const int BGR_BIT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_DEPTH_BIT")]
public const int DEPTH_BIT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_PIXEL_FORMAT_MAX_PLANES")]
public const int PIXEL_FORMAT_MAX_PLANES;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_PREMULT_BIT")]
public const int PREMULT_BIT;
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_STENCIL_BIT")]
public const int STENCIL_BIT;
#endif
[CCode (cheader_filename = "cogl/cogl.h", cname = "COGL_TEXTURE_MAX_WASTE")]
public const int TEXTURE_MAX_WASTE;
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h")]
public static bool clutter_winsys_has_feature (Cogl.WinsysFeature feature);
#endif
[CCode (cheader_filename = "cogl/cogl.h")]
[Version (replacement = "Color.init_from_hsl")]
public static void color_init_from_hsl (out Cogl.Color color, float hue, float saturation, float luminance);
@ -1130,10 +1325,15 @@ namespace Cogl {
public static void flush ();
[CCode (cheader_filename = "cogl/cogl.h")]
public static unowned Cogl.Indices get_rectangle_indices (Cogl.Context context, int n_rectangles);
#if HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h")]
public static GLib.Source glib_source_new (Cogl.Renderer renderer, int priority);
#else
[CCode (cheader_filename = "cogl/cogl.h")]
public static GLib.Source glib_renderer_source_new (Cogl.Renderer renderer, int priority);
[CCode (cheader_filename = "cogl/cogl.h")]
public static GLib.Source glib_source_new (Cogl.Context context, int priority);
#endif
[CCode (cheader_filename = "cogl/cogl.h")]
public static void graphene_matrix_project_point (Graphene.Matrix matrix, ref float x, ref float y, ref float z, ref float w);
[CCode (cheader_filename = "cogl/cogl.h")]
@ -1141,8 +1341,6 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h")]
public static void graphene_matrix_transform_points (Graphene.Matrix matrix, int n_components, size_t stride_in, void* points_in, size_t stride_out, void* points_out, int n_points);
[CCode (cheader_filename = "cogl/cogl.h")]
public static void meta_texture_foreach_in_region (Cogl.Texture texture, float tx_1, float ty_1, float tx_2, float ty_2, Cogl.PipelineWrapMode wrap_s, Cogl.PipelineWrapMode wrap_t, Cogl.MetaTextureCallback callback);
[CCode (cheader_filename = "cogl/cogl.h")]
[Version (replacement = "PixelFormat.get_bytes_per_pixel")]
public static int pixel_format_get_bytes_per_pixel (Cogl.PixelFormat format, int plane);
[CCode (cheader_filename = "cogl/cogl.h")]
@ -1151,10 +1349,12 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h")]
[Version (replacement = "PixelFormat.to_string")]
public static unowned string pixel_format_to_string (Cogl.PixelFormat format);
#if !HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h")]
public static void poll_renderer_dispatch (Cogl.Renderer renderer, Cogl.PollFD poll_fds, int n_poll_fds);
[CCode (cheader_filename = "cogl/cogl.h")]
public static int poll_renderer_get_info (Cogl.Renderer renderer, Cogl.PollFD poll_fds, int n_poll_fds, int64 timeout);
#endif
[CCode (cheader_filename = "cogl/cogl.h")]
public static void set_tracing_disabled_on_thread (void* data);
[CCode (cheader_filename = "cogl/cogl.h")]
@ -1165,4 +1365,10 @@ namespace Cogl {
public static bool start_tracing_with_path (string filename) throws GLib.Error;
[CCode (cheader_filename = "cogl/cogl.h")]
public static void stop_tracing ();
#if HAS_MUTTER47
[CCode (cheader_filename = "cogl/cogl.h")]
public static unowned Cogl.Color? value_get_color (GLib.Value value);
[CCode (cheader_filename = "cogl/cogl.h")]
public static void value_set_color (GLib.Value value, Cogl.Color color);
#endif
}

5
vapi/mutter-cogl-15.deps Normal file
View File

@ -0,0 +1,5 @@
pango
glib-2.0
gio-2.0
mutter-mtk-15
x11

1
vapi/mutter-cogl-15.vapi Symbolic link
View File

@ -0,0 +1 @@
mutter-cogl-14.vapi

View File

@ -0,0 +1 @@
mutter-cogl-pango-14.vapi

View File

@ -2,22 +2,6 @@
[CCode (cprefix = "CoglPango", gir_namespace = "CoglPango", gir_version = "6", lower_case_cprefix = "cogl_pango_")]
namespace CoglPango {
[CCode (cheader_filename = "cogl-pango.h")]
public interface FontMap : Pango.CairoFontMap, GLib.Object {
[Version (since = "1.0")]
public void clear_glyph_cache ();
public Pango.Context create_context ();
[Version (since = "1.0")]
public unowned Pango.Renderer get_renderer ();
[Version (since = "1.0")]
public bool get_use_mipmapping ();
[Version (since = "1.14")]
public static Pango.FontMap @new ();
[Version (since = "1.14")]
public void set_resolution (double dpi);
[Version (since = "1.0")]
public void set_use_mipmapping (bool value);
}
[CCode (cheader_filename = "cogl-pango.h", type_id = "cogl_pango_renderer_get_type ()")]
public class Renderer : Pango.Renderer {
[CCode (has_construct_function = false)]
@ -26,6 +10,25 @@ namespace CoglPango {
public Cogl.Context context { construct; }
}
[CCode (cheader_filename = "cogl-pango.h")]
[Version (since = "1.0")]
public interface FontMap : Pango.CairoFontMap, GLib.Object {
#if !HAS_MUTTER47
public void clear_glyph_cache ();
#endif
public Pango.Context create_context ();
public unowned Pango.Renderer get_renderer ();
#if !HAS_MUTTER47
public bool get_use_mipmapping ();
#endif
public static Pango.FontMap @new ();
public void set_resolution (double dpi);
#if !HAS_MUTTER47
public void set_use_mipmapping (bool value);
#endif
}
#if HAS_MUTTER47
[CCode (cheader_filename = "cogl-pango.h", instance_pos = 1.9)]
public delegate void PipelineSetup (Cogl.Pipeline pipeline);
#endif
[CCode (cheader_filename = "cogl-pango.h")]
public static void ensure_glyph_cache_for_layout (Pango.Layout layout);
}

View File

@ -49,6 +49,10 @@ namespace Mtk {
public bool could_fit_rect (Mtk.Rectangle inner_rect);
#if HAS_MUTTER46
public void crop_and_scale (Graphene.Rect src_rect, int dst_width, int dst_height, Mtk.Rectangle dest);
#endif
#if HAS_MUTTER47
[CCode (has_construct_function = false, type = "MtkRectangle*")]
public Rectangle.empty ();
#endif
public bool equal (Mtk.Rectangle src2);
public void free ();
@ -63,6 +67,9 @@ namespace Mtk {
public void scale_double (double scale, Mtk.RoundingStrategy rounding_strategy, Mtk.Rectangle dest);
#endif
public Graphene.Rect? to_graphene_rect ();
#if HAS_MUTTER47
public void transform (Mtk.MonitorTransform transform, int width, int height, Mtk.Rectangle dest);
#endif
public Mtk.Rectangle union (Mtk.Rectangle rect2);
public bool vert_overlap (Mtk.Rectangle rect2);
}
@ -89,6 +96,25 @@ namespace Mtk {
public void init (Mtk.Region region);
public void next ();
}
#if HAS_MUTTER47
[CCode (cheader_filename = "mtk/mtk.h", cprefix = "MTK_MONITOR_TRANSFORM_", has_type_id = false)]
public enum MonitorTransform {
NORMAL,
@90,
@180,
@270,
FLIPPED,
FLIPPED_90,
FLIPPED_180,
FLIPPED_270;
public Mtk.MonitorTransform invert ();
public Mtk.MonitorTransform transform (Mtk.MonitorTransform other);
public void transform_matrix (Graphene.Matrix matrix);
public void transform_point (int area_width, int area_height, int point_x, int point_y);
[CCode (cname = "MTK_MONITOR_ALL_TRANSFORMS")]
public const int ALL;
}
#endif
[CCode (cheader_filename = "mtk/mtk.h", cprefix = "MTK_REGION_OVERLAP_", has_type_id = false)]
public enum RegionOverlap {
OUT,

1
vapi/mutter-mtk-15.vapi Symbolic link
View File

@ -0,0 +1 @@
mutter-mtk-14.vapi