Initial support for mutter-7 (#854)

* meson: Add support for libmutter-7 in the build system

This commit only adds support within the build system, no further attempt to make it build has been tried.

* mutter: Update the .vapi for libmutter-7

* Fix vapi syntax

* Make it work with mutter-7

* Re-enable PIP plugin

* Fix screenshot code

* Fix type

* Cleanup workspaces sooner

So we don't see the workspace removed animation on login

Co-authored-by: Cassidy James Blaede <cassidy@elementary.io>
Co-authored-by: David Hewitt <davidmhewitt@gmail.com>
This commit is contained in:
Corentin Noël 2020-11-17 12:11:52 +01:00 committed by GitHub
parent 492b3bf8bf
commit 381e1d6474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 1417 additions and 30 deletions

View File

@ -149,7 +149,7 @@ namespace Gala {
*/
public void track_actor (Clutter.Actor actor) {
tracked_actors.prepend (actor);
actor.allocation_changed.connect (actor_allocation_changed);
actor.notify["allocation"].connect (on_actor_allocation_changed);
update_region ();
}
@ -162,7 +162,7 @@ namespace Gala {
*/
public void untrack_actor (Clutter.Actor actor) {
tracked_actors.remove (actor);
actor.allocation_changed.disconnect (actor_allocation_changed);
actor.notify["allocation"].disconnect (on_actor_allocation_changed);
}
/**
@ -202,7 +202,7 @@ namespace Gala {
region_changed ();
}
private void actor_allocation_changed (Clutter.ActorBox box, Clutter.AllocationFlags f) {
private void on_actor_allocation_changed (GLib.Object actor_object, GLib.ParamSpec pspec) {
if (!freeze_track)
update_region ();
}

View File

@ -149,7 +149,7 @@ if mutter334_dep.found()
'-DCOGL_ENABLE_EXPERIMENTAL_API', '-DCOGL_ENABLE_EXPERIMENTAL_2_0_API'], language: 'c')
endif
mutter336_dep = dependency('libmutter-6', version: ['>= 3.35.1', '< 3.38'], required: false)
mutter336_dep = dependency('libmutter-6', version: ['>= 3.35.1', '< 3.37'], required: false)
if mutter336_dep.found()
libmutter_dep = dependency('libmutter-6', version: '>= 3.35.1')
mutter_dep = [
@ -162,6 +162,19 @@ if mutter336_dep.found()
'-DCOGL_ENABLE_EXPERIMENTAL_API', '-DCOGL_ENABLE_EXPERIMENTAL_2_0_API'], language: 'c')
endif
mutter338_dep = dependency('libmutter-7', version: ['>= 3.37', '< 3.39'], required: false)
if mutter338_dep.found()
libmutter_dep = dependency('libmutter-7', version: '>= 3.37')
mutter_dep = [
libmutter_dep,
dependency('mutter-cogl-7'), dependency('mutter-cogl-pango-7'),
dependency('mutter-clutter-7')
]
vala_flags = ['--define', 'HAS_MUTTER330', '--define', 'HAS_MUTTER332', '--define', 'HAS_MUTTER334', '--define', 'HAS_MUTTER336', '--define', 'HAS_MUTTER338']
add_project_arguments(['-DCLUTTER_ENABLE_COMPOSITOR_API', '-DCLUTTER_ENABLE_EXPERIMENTAL_API',
'-DCOGL_ENABLE_EXPERIMENTAL_API', '-DCOGL_ENABLE_EXPERIMENTAL_2_0_API'], language: 'c')
endif
if mutter_dep.length() == 0
error ('No supported mutter library found!')
endif

View File

@ -104,11 +104,23 @@ namespace Gala {
}
new_background_actor = create_background_actor ();
#if HAS_MUTTER338
var new_content = (Meta.BackgroundContent)new_background_actor.content;
var old_content = (Meta.BackgroundContent)background_actor.content;
new_content.vignette_sharpness = old_content.vignette_sharpness;
new_content.brightness = old_content.brightness;
#else
new_background_actor.vignette_sharpness = background_actor.vignette_sharpness;
new_background_actor.brightness = background_actor.brightness;
#endif
new_background_actor.visible = background_actor.visible;
#if HAS_MUTTER338
var background = new_content.background.get_data<unowned Background> ("delegate");
#else
var background = new_background_actor.background.get_data<unowned Background> ("delegate");
#endif
if (background.is_loaded) {
swap_background_actor ();
@ -137,7 +149,11 @@ namespace Gala {
var background_actor = new Meta.BackgroundActor (screen, monitor_index);
#endif
#if HAS_MUTTER338
((Meta.BackgroundContent)background_actor.content).background = background.background;
#else
background_actor.background = background.background;
#endif
insert_child_below (background_actor, null);

View File

@ -64,7 +64,9 @@ namespace Gala {
system_background.set_file (background_file, GDesktop.BackgroundStyle.WALLPAPER);
}
#if HAS_MUTTER332
#if HAS_MUTTER338
((Meta.BackgroundContent)background_actor.content).background = system_background;
#elif HAS_MUTTER332
background_actor.background = system_background;
#else
background = system_background;

View File

@ -301,6 +301,39 @@ namespace Gala {
Cairo.ImageSurface take_screenshot (int x, int y, int width, int height, bool include_cursor) {
Cairo.ImageSurface image;
#if HAS_MUTTER338
int image_width, image_height;
float scale;
wm.stage.get_capture_final_size ({x, y, width, height}, out image_width, out image_height, out scale);
image = new Cairo.ImageSurface (Cairo.Format.ARGB32, image_width, image_height);
var paint_flags = Clutter.PaintFlag.NO_CURSORS;
if (include_cursor) {
paint_flags |= Clutter.PaintFlag.FORCE_CURSORS;
}
if (GLib.ByteOrder.HOST == GLib.ByteOrder.LITTLE_ENDIAN) {
wm.stage.paint_to_buffer (
{x, y, width, height},
scale,
image.get_data (),
image.get_stride (),
Cogl.PixelFormat.BGRA_8888_PRE,
paint_flags
);
} else {
wm.stage.paint_to_buffer (
{x, y, width, height},
scale,
image.get_data (),
image.get_stride (),
Cogl.PixelFormat.ARGB_8888_PRE,
paint_flags
);
}
#else
Clutter.Capture[] captures;
wm.stage.capture (false, {x, y, width, height}, out captures);
@ -316,6 +349,7 @@ namespace Gala {
}
image.mark_dirty ();
#endif
return image;
}

View File

@ -350,12 +350,21 @@ namespace Gala {
* according to their given allocations. The first two are placed in a way
* that compensates for invisible borders of the texture.
*/
#if HAS_MUTTER338
public override void allocate (ActorBox box) {
base.allocate (box);
#else
public override void allocate (ActorBox box, AllocationFlags flags) {
base.allocate (box, flags);
#endif
foreach (var child in get_children ()) {
if (child != clone && child != active_shape)
#if HAS_MUTTER338
child.allocate_preferred_size (child.fixed_x, child.fixed_y);
#else
child.allocate_preferred_size (flags);
#endif
}
ActorBox shape_alloc = {
@ -364,7 +373,11 @@ namespace Gala {
box.get_width () + ACTIVE_SHAPE_SIZE,
box.get_height () + ACTIVE_SHAPE_SIZE
};
#if HAS_MUTTER338
active_shape.allocate (shape_alloc);
#else
active_shape.allocate (shape_alloc, flags);
#endif
if (clone == null || dragging)
return;
@ -379,7 +392,11 @@ namespace Gala {
(input_rect.y - outer_rect.y) * scale_factor);
alloc.set_size (actor.width * scale_factor, actor.height * scale_factor);
#if HAS_MUTTER338
clone.allocate (alloc);
#else
clone.allocate (alloc, flags);
#endif
}
public override bool button_press_event (Clutter.ButtonEvent event) {

View File

@ -55,7 +55,25 @@ namespace Gala {
add_effect (effect);
}
#if HAS_MUTTER336
#if HAS_MUTTER338
public override void paint (Clutter.PaintContext context) {
base.paint (context);
unowned Cogl.Framebuffer fb = context.get_framebuffer ();
pipeline.set_color4ub (0, 0, 0, 100);
fb.push_rectangle_clip (0, 0, width, height);
fb.draw_rectangle (pipeline, 0, 0, width, height);
fb.pop_clip ();
var color = Cogl.Color.from_4ub (255, 255, 255, 25);
color.premultiply ();
pipeline.set_color (color);
fb.push_rectangle_clip (0.5f, 0.5f, width - 1, height - 1);
fb.draw_rectangle (pipeline, 0.5f, 0.5f, width - 1, height - 1);
fb.pop_clip ();
}
#elif HAS_MUTTER336
public override void paint (Clutter.PaintContext context) {
base.paint (context);

View File

@ -95,7 +95,7 @@ namespace Gala {
private GLib.Settings animations_settings;
private GLib.Settings behavior_settings;
public WindowManagerGala () {
construct {
info = Meta.PluginInfo () {name = "Gala", version = Config.VERSION, author = "Gala Developers",
license = "GPLv3", description = "A nice elementary window manager"};
@ -109,9 +109,7 @@ namespace Gala {
Meta.Prefs.override_preference_schema ("edge-tiling", Config.SCHEMA + ".behavior");
Meta.Prefs.override_preference_schema ("enable-animations", Config.SCHEMA + ".animations");
#endif
}
construct {
animations_settings = new GLib.Settings (Config.SCHEMA + ".animations");
animations_settings.bind ("enable-animations", this, "enable-animations", GLib.SettingsBindFlags.GET);
behavior_settings = new GLib.Settings (Config.SCHEMA + ".behavior");
@ -119,7 +117,7 @@ namespace Gala {
}
public override void start () {
Meta.Util.later_add (Meta.LaterType.BEFORE_REDRAW, show_stage);
show_stage ();
Bus.watch_name (BusType.SESSION, DAEMON_DBUS_NAME, BusNameWatcherFlags.NONE, daemon_appeared, lost_daemon);
@ -166,6 +164,7 @@ namespace Gala {
DBus.init (this);
DBusAccelerator.init (this);
MediaFeedback.init ();
#if HAS_MUTTER330
WindowListener.init (display);
#else
@ -193,7 +192,10 @@ namespace Gala {
var color = background_settings.get_string ("primary-color");
stage.background_color = Clutter.Color.from_string (color);
WorkspaceManager.init (this);
Meta.Util.later_add (Meta.LaterType.BEFORE_REDRAW, () => {
WorkspaceManager.init (this);
return false;
});
/* our layer structure, copied from gnome-shell (from bottom to top):
* stage
@ -254,6 +256,7 @@ namespace Gala {
ui_group.add_child (pointer_locator);
ui_group.add_child (new DwellClickTimer (this));
#endif
ui_group.add_child (screen_shield);
stage.remove_child (top_window_group);

View File

@ -44,6 +44,9 @@ namespace Gala {
unowned Meta.Display display = wm.get_display ();
unowned Meta.WorkspaceManager manager = display.get_workspace_manager ();
// There are some empty workspace at startup
cleanup ();
if (Prefs.get_dynamic_workspaces ())
manager.override_workspace_layout (DisplayCorner.TOPLEFT, false, 1, -1);
@ -84,9 +87,6 @@ namespace Gala {
&& Utils.get_n_windows (screen.get_workspace_by_index (screen.get_n_workspaces () - 1)) > 0)
append_workspace ();
#endif
// There are some empty workspace at startup
cleanup ();
}
~WorkspaceManager () {

View File

@ -0,0 +1,42 @@
namespace Clutter {
public struct Color {
[CCode (cname = "clutter_color_from_hls")]
public Color.from_hls (float hue, float luminance, float saturation);
[CCode (cname = "clutter_color_from_pixel")]
public Color.from_pixel (uint32 pixel);
[CCode (cname = "clutter_color_from_string")]
public Color.from_string (string str);
[CCode (cname = "clutter_color_from_string")]
public bool parse_string (string str);
}
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 {
}
}

194
vapi/Clutter-7.metadata Normal file
View File

@ -0,0 +1,194 @@
// Non mini-object
ActorBox struct
Color struct
Knot struct
Margin struct
PaintVolume struct
PathNode struct
Perspective struct
Units struct
*.ref unowned
init.argv unowned
init_with_args
.argv unowned
Actor
.apply_transform.matrix ref
.get_abs_allocation_vertices.verts out=false
Canvas
.new symbol_type="constructor"
Event.type#method name="get_type"
Image
.new symbol_type="constructor"
// ???
Actor.has_pointer#method name="get_has_pointer"
InitError errordomain=false
// Not all backing symbols are deprecated
Actor.pick deprecated=false
// Nullable return values
Actor
.get_parent nullable
value_get_color 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
.queue_redraw#signal skip
.queue_redraw#virtual_method skip
Container
.add_actor skip=false
.class_* skip
Text
.activate#method name="try_activate"
.insert_text#signal skip
TextBuffer.get_text#virtual_method name="get_text_with_length"
// virtual/abstract distinction
Container
.lower virtual
.raise virtual
.*_child_meta#virtual_method virtual
// Default values
Container
.lower.sibling nullable default=null
.raise.sibling nullable default=null
Stage.read_pixels
.width default=-1
.height default=-1
Stage.get_capture_final_size
.width out
.height out
.scale out
Stage.paint_to_buffer
.data type="uint8[]"
Text
.position_to_coords.line_height default=null
// Reparented funcs methods can't be instance methods
feature_available skip
feature_get_all skip
// Skipped by g-i for unknown reasons
LayoutManager
.create_child_meta skip=false
// Variadic arguments
Backend
.get_cogl_context skip=false
Container
.child_get skip=false
.child_set skip=false
.remove 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
Script
.get_objects skip=false
// Skipped upstream for unknown reasons
Interval.register_progress_func skip=false
get_option_group skip=false
get_option_group_without_init 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
Units.from_* skip
Color
.new skip
Margin
.new skip
// Class methods
container_class_find_child_property skip
container_class_list_child_properties skip
// Move symbols
color_from_* skip
units_from_* skip
// Struct return values
color_get_static nullable
// Upstream
Event
.get_position.position out
FrameListenerIface skip
FrameClock.new skip
// Remove for clutter-2.0
/////////////////////////
StageView.layout skip
Stage
.event name="emit_event"
.paint_view.redraw_clip type="Cairo.Region"
Capture
.image type="Cairo.ImageSurface"
// *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"
ScrollEvent struct=false base_type="Clutter.Event"
StageStateEvent struct=false base_type="Clutter.Event"
TouchEvent struct=false base_type="Clutter.Event"
TouchpadPinchEvent struct=false base_type="Clutter.Event"
TouchpadSwipeEvent struct=false base_type="Clutter.Event"
ProximityEvent 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"
// Keysyms used to be CLUTTER_X instead of CLUTTER_KEY_X
*#constant skip
COGL skip=false
CURRENT_TIME skip=false
FLAVOUR skip=false
PATH_RELATIVE 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"
// Backwards compatibility
Color.alloc symbol_type="function"
BinAlignment deprecated=false deprecated_since=null
BinAlignment.* deprecated
BinAlignment.start deprecated=false
BinLayout.new.*_align default=Clutter.BinAlignment.START
// Possibly keep
KEY_* skip=false name="KEY_(.+)" type="uint" parent="Clutter.Key"

View File

@ -21,7 +21,7 @@ namespace Cogl {
}
[Compact]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_shader_ref", unref_function = "cogl_shader_unref")]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")]
public class Shader : Cogl.Handle {
}
@ -68,7 +68,7 @@ namespace Cogl {
}
[Compact]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_program_ref", unref_function = "cogl_program_unref")]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")]
public class Program : Cogl.Handle {
}

161
vapi/Cogl-7-custom.vala Normal file
View File

@ -0,0 +1,161 @@
namespace Cogl {
public struct Color {
[Version (since = "1.4")]
[CCode (cname="cogl_color_init_from_4f")]
public Color.from_4f (float red, float green, float blue, float alpha);
[Version (since = "1.4")]
[CCode (cname="cogl_color_init_from_4fv")]
public Color.from_4fv (float color_array);
[Version (since = "1.4")]
[CCode (cname="cogl_color_init_from_4ub")]
public Color.from_4ub (uint8 red, uint8 green, uint8 blue, uint8 alpha);
[Version (since = "1.16")]
[CCode (cname="cogl_color_init_from_hsl")]
public Color.from_hsl (float hue, float saturation, float luminance);
}
[Compact]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")]
public class Shader : Cogl.Handle {
}
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_primitive_get_gtype ()")]
public class Primitive : Cogl.Object {
[CCode (has_construct_function = false)]
protected Primitive ();
[Version (since = "1.10")]
public Cogl.Primitive copy ();
[Version (since = "1.16")]
public void draw (Cogl.Framebuffer framebuffer, Cogl.Pipeline pipeline);
public int get_first_vertex ();
public Cogl.VerticesMode get_mode ();
[Version (since = "1.8")]
public int get_n_vertices ();
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
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)]
[Version (since = "1.6")]
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)]
[Version (since = "1.6")]
public Primitive.p2t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2[] data);
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
public Primitive.p2t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2C4[] data);
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
public Primitive.p3 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3[] data);
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
public Primitive.p3c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3C4[] data);
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
public Primitive.p3t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2[] data);
[CCode (has_construct_function = false)]
[Version (since = "1.6")]
public Primitive.p3t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2C4[] data);
public void set_first_vertex (int first_vertex);
public void set_mode (Cogl.VerticesMode mode);
[Version (since = "1.8")]
public void set_n_vertices (int n_vertices);
}
[Compact]
[CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")]
public class Program : Cogl.Handle {
}
[Compact]
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")]
public class Handle {
[CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_material")]
[Version (deprecated = true, deprecated_since = "1.16")]
public bool is_material ();
[CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_program")]
[Version (deprecated = true, deprecated_since = "1.16")]
public bool is_program (Cogl.Handle handle);
[CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_shader")]
[Version (deprecated = true, deprecated_since = "1.16")]
public bool is_shader ();
[CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_texture")]
public bool is_texture ();
}
[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;
public uint8 r;
public uint8 g;
public uint8 b;
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;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
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)]
[Version (since = "1.6")]
public struct VertexP3 {
public float x;
public float y;
public float z;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3C4 {
public float x;
public float y;
public float z;
public uint8 r;
public uint8 g;
public uint8 b;
public uint8 a;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3T2 {
public float x;
public float y;
public float z;
public float s;
public float t;
}
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.6")]
public struct VertexP3T2C4 {
public float x;
public float y;
public float z;
public float s;
public float t;
public uint8 r;
public uint8 g;
public uint8 b;
public uint8 a;
}
}

85
vapi/Cogl-7.metadata Normal file
View File

@ -0,0 +1,85 @@
* cheader_filename="cogl/cogl.h"
Color struct
Matrix struct
Material base_type="Cogl.Handle"
MaterialLayer base_type="Cogl.Handle"
_ColorSizeCheck skip
_MatrixSizeCheck skip
_TextureVertexSizeCheck skip
Color
.init_* skip
color_init_from_hsl skip
color_equal.v1 type="Cogl.Color"
color_equal.v2 type="Cogl.Color"
color_equal symbol_type=method
texture_new_* name="texture_new_(.+)" parent="Cogl.Texture"
Texture
.get_data.data type="uint8[]"
.new_from_data.data type="uint8[]"
.set_data.data type="uint8[]"
.set_region.data type="uint8[]"
Texture2D
.new_from_data skip=false
.new_from_data.data array=true
Matrix
.transform_points.points_in type="uint8[]"
.transform_points.stride_out out
.transform_points.points_out out type="uint8[]"
.project_points.points_in type="uint8[]"
.project_points.stride_out out
.project_points.points_out out type="uint8[]"
matrix_equal.v1 type="Cogl.Matrix"
matrix_equal.v2 type="Cogl.Matrix"
matrix_equal symbol_type=method
shader_* name="shader_(.+)" parent="Cogl.Shader"
shader_* symbol_type="method" instance_idx=0
program_* name="program_(.+)" parent="Cogl.Program"
program_attach_shader symbol_type="method" instance_idx=0
program_get_uniform_location symbol_type="method" instance_idx=0
program_link symbol_type="method" instance_idx=0
program_set_uniform_1f symbol_type="method" instance_idx=0
program_set_uniform_1i symbol_type="method" instance_idx=0
program_set_uniform_float symbol_type="method" instance_idx=0
program_set_uniform_int symbol_type="method" instance_idx=0
program_set_uniform_matrix symbol_type="method" instance_idx=0
is_bitmap parent="Cogl.Object" symbol_type="method" instance_idx=0
is_offscreen parent="Cogl.Object" symbol_type="method" instance_idx=0
is_program parent="Cogl.Handle"
is_shader parent="Cogl.Handle"
is_texture parent="Cogl.Object" symbol_type="method" instance_idx=0
is_context parent="Cogl.Object" symbol_type="method" instance_idx=0
is_framebuffer parent="Cogl.Object" symbol_type="method" instance_idx=0
is_frame_info parent="Cogl.Object" symbol_type="method" instance_idx=0
is_onscreen parent="Cogl.Object" symbol_type="method" instance_idx=0
is_pipeline parent="Cogl.Object" symbol_type="method" instance_idx=0
is_texture_2d parent="Cogl.Object" symbol_type="method" instance_idx=0
is_texture_2d_sliced parent="Cogl.Object" symbol_type="method" instance_idx=0
create_program type="unowned Cogl.Program" name="create" parent="Cogl.Program"
create_shader type="unowned Cogl.Shader" name="create" parent="Cogl.Shader"
foreach_feature parent="Cogl.Context" symbol_type="method" instance_idx=0
get_clock_time parent="Cogl.Context" symbol_type="method" instance_idx=0
get_graphics_reset_status parent="Cogl.Context" symbol_type="method" instance_idx=0
has_feature parent="Cogl.Context" symbol_type="method" instance_idx=0
Bitmap.error_quark parent="Cogl.BitmapError" name="quark"
Texture.error_quark parent="Cogl.TextureError" name="quark"
texture_error_quark skip
BitmapError errordomain
BlendStringError errordomain
RendererError errordomain
SystemError errordomain
TextureError errordomain

192
vapi/Meta-7.metadata Normal file
View File

@ -0,0 +1,192 @@
* skip=false
*.* skip=false
* cheader_filename="meta/main.h"
Backend cheader_filename="meta/meta-backend.h"
Backend.gpu_added skip
get_backend parent="Meta.Backend" cheader_filename="meta/meta-backend.h"
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"
ButtonFunction cheader_filename="meta/common.h"
ButtonLayout cheader_filename="meta/common.h"
Compositor cheader_filename="meta/compositor.h"
Compositor.sync_stack.stack type_arguments="Meta.Window"
get_feedback_group_for_display parent="Meta.Display" symbol_type="method" name="get_feedback_group" instance_idx=0 cheader_filename="meta/compositor-mutter.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"
focus_stage_window parent="Meta.Display" symbol_type="method" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
CompEffect cheader_filename="meta/compositor.h"
CloseDialog cheader_filename="meta/meta-close-dialog.h"
CloseDialogResponse cheader_filename="meta/meta-close-dialog.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.x out
CursorTracker.get_pointer.y out
CursorTracker.get_pointer.mods out
DebugTopic cheader_filename="meta/util.h"
Direction cheader_filename="meta/common.h"
Display cheader_filename="meta/display.h"
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"
Frame cheader_filename="meta/types.h"
FrameBorders cheader_filename="meta/common.h"
FrameFlags cheader_filename="meta/common.h"
FrameType cheader_filename="meta/common.h"
GrabOp cheader_filename="meta/common.h"
Group cheader_filename="meta/group.h"
Group.property_notify.event type="X.Event" ref
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"
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"
LaunchContext cheader_filename="meta/meta-launch-context.h"
LaterType cheader_filename="meta/util.h"
LocaleDirection cheader_filename="meta/util.h"
MaximizeFlags cheader_filename="meta/window.h"
ModalOptions cheader_filename="meta/meta-plugin.h"
MonitorManager cheader_filename="meta/meta-monitor-manager.h"
MonitorSwitchConfigType cheader_filename="meta/meta-monitor-manager.h"
MotionDirection cheader_filename="meta/common.h"
PadActionType cheader_filename="meta/display.h"
Plugin cheader_filename="meta/meta-plugin.h"
Plugin.xevent_filter.event type="X.Event" ref
PluginInfo cheader_filename="meta/meta-plugin.h"
PluginVersion cheader_filename="meta/meta-plugin.h"
Preference cheader_filename="meta/prefs.h"
PrefsChangedFunc cheader_filename="meta/prefs.h"
Rectangle cheader_filename="meta/boxes.h" struct
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"
Shadow cheader_filename="meta/meta-shadow-factory.h"
ShadowFactory cheader_filename="meta/meta-shadow-factory.h"
ShadowMode cheader_filename="meta/meta-window-actor.h"
ShadowParams cheader_filename="meta/meta-shadow-factory.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"
Stage.is_focused parent="Meta.Display" symbol_type="method" name="stage_is_focused" instance_idx=0 cheader_filename="meta/compositor-mutter.h"
Strut cheader_filename="meta/boxes.h"
TabList cheader_filename="meta/display.h"
TabShowType cheader_filename="meta/display.h"
Theme cheader_filename="meta/theme.h"
theme_get_default cheader_filename="meta/theme.h"
theme_new cheader_filename="meta/theme.h"
VirtualModifier cheader_filename="meta/common.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.icon type="Cairo.Surface"
Window.mini_icon type="Cairo.Surface"
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"
WindowShape cheader_filename="meta/meta-window-shape.h"
WindowType cheader_filename="meta/window.h"
X11Display cheader_filename="meta/meta-x11-display.h"
rect 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"
CURRENT_TIME cheader_filename="meta/common.h"
ICON_WIDTH cheader_filename="meta/common.h"
ICON_HEIGHT cheader_filename="meta/common.h"
MINI_ICON_WIDTH cheader_filename="meta/common.h"
MINI_ICON_HEIGHT cheader_filename="meta/common.h"
DEFAULT_ICON_NAME 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"
MAJOR_VERSION cheader_filename="meta/meta-version.h"
MINOR_VERSION cheader_filename="meta/meta-version.h"
MICRO_VERSION cheader_filename="meta/meta-version.h"
PLUGIN_API_VERSION cheader_filename="meta/meta-version.h"
add_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h"
bug parent="Meta.Util" cheader_filename="meta/util.h"
debug_spew_real 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"
get_locale_direction parent="Meta.Util" cheader_filename="meta/util.h"
gravity_to_string parent="Meta.Gravity" name="to_string" cheader_filename="meta/util.h" symbol_type="method" instance_idx=0
is_debugging parent="Meta.Util" cheader_filename="meta/util.h"
is_syncing 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"
later_add parent="Meta.Util" cheader_filename="meta/util.h"
later_remove 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"
show_dialog parent="Meta.Util" cheader_filename="meta/util.h"
show_dialog.columns type_arguments="string" nullable default=null
show_dialog.entries type_arguments="string" nullable default=null
show_dialog.transient_for default=0
show_dialog.icon_name nullable default=null
show_dialog.cancel_text nullable default=null
show_dialog.ok_text nullable default=null
show_dialog.display nullable default=null
show_dialog.timeout nullable default=null
topic_real 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?"
verbose_real parent="Meta.Util" cheader_filename="meta/util.h"
warning parent="Meta.Util" cheader_filename="meta/util.h"
set_gnome_wm_keybindings parent="Meta.Util"
set_wm_name parent="Meta.Util"
x11_error_trap_pop parent="Meta.X11Display" symbol_type="method" name="error_trap_pop" instance_idx=0 cheader_filename="meta/meta-x11-errors.h"
x11_error_trap_pop_with_return parent="Meta.X11Display" symbol_type="method" name="error_trap_pop_with_return" instance_idx=0 cheader_filename="meta/meta-x11-errors.h"
x11_error_trap_push parent="Meta.X11Display" symbol_type="method" name="error_trap_push" instance_idx=0 cheader_filename="meta/meta-x11-errors.h"
x11_init_gdk_display parent="Meta.X11Display" cheader_filename="meta/meta-x11-display.h"

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

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

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

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

View File

@ -217,10 +217,23 @@ namespace Meta {
public BackgroundActor (Meta.Display display, int monitor);
#else
public BackgroundActor (Meta.Screen screen, int monitor);
#endif
#if HAS_MUTTER338
[NoAccessorMethod]
public Meta.Display meta_display { owned get; construct; }
[NoAccessorMethod]
public int monitor { get; construct; }
}
[CCode (cheader_filename = "meta/meta-background-content.h", type_id = "meta_background_content_get_type ()")]
public class BackgroundContent : GLib.Object, Clutter.Content {
[CCode (has_construct_function = false, type = "ClutterContent*")]
public BackgroundContent (Meta.Display display, int monitor);
#endif
public void set_background (Meta.Background background);
public void set_gradient (bool enabled, int height, double tone_start);
#if !HAS_MUTTER338
public void set_monitor (int monitor);
#endif
public void set_vignette (bool enabled, double brightness, double sharpness);
[NoAccessorMethod]
public Meta.Background background { owned get; set; }
@ -343,6 +356,10 @@ namespace Meta {
public void unmanage ();
public void window_opacity_changed (Meta.Window window);
public void window_shape_changed (Meta.Window window);
#if HAS_MUTTER338
[NoAccessorMethod]
public Meta.Backend backend { owned get; construct; }
#endif
#if HAS_MUTTER334
[NoAccessorMethod]
public Meta.Display display { owned get; construct; }
@ -361,6 +378,10 @@ namespace Meta {
#endif
public unowned Cogl.Texture get_sprite ();
public void set_pointer_visible (bool visible);
#if HAS_MUTTER338
[NoAccessorMethod]
public Meta.Backend backend { owned get; construct; }
#endif
public signal void cursor_changed ();
#if HAS_MUTTER332
public signal void cursor_moved (float x, float y);
@ -660,10 +681,16 @@ namespace Meta {
public static int get_display_configuration_timeout ();
public bool get_is_builtin_display_on ();
public int get_monitor_for_connector (string connector);
#if HAS_MUTTER338
public bool get_panel_orientation_managed ();
#endif
public Meta.MonitorSwitchConfigType get_switch_config ();
public void switch_config (Meta.MonitorSwitchConfigType config_type);
[NoAccessorMethod]
public Meta.Backend backend { owned get; construct; }
#if HAS_MUTTER338
public bool panel_orientation_managed { get; }
#endif
public signal void confirm_display_change ();
#if HAS_MUTTER332
public signal void monitors_changed ();
@ -743,6 +770,10 @@ namespace Meta {
public class RemoteAccessController : GLib.Object {
[CCode (has_construct_function = false)]
protected RemoteAccessController ();
#if HAS_MUTTER338
public void inhibit_remote_access ();
public void uninhibit_remote_access ();
#endif
public signal void new_handle (Meta.RemoteAccessHandle object);
}
[CCode (cheader_filename = "meta/meta-remote-access-controller.h", type_id = "meta_remote_access_handle_get_type ()")]
@ -753,6 +784,10 @@ namespace Meta {
public bool get_disable_animations ();
#endif
public virtual void stop ();
#if HAS_MUTTER338
[NoAccessorMethod]
public bool is_recording { get; construct; }
#endif
public signal void stopped ();
}
#else
@ -957,6 +992,18 @@ namespace Meta {
[CCode (cheader_filename = "meta/theme.h")]
public static unowned Meta.Theme @new ();
}
#if HAS_MUTTER338
[CCode (cheader_filename = "meta/main.h", type_id = "meta_wayland_client_get_type ()")]
public class WaylandClient : GLib.Object {
[CCode (has_construct_function = false)]
public WaylandClient (GLib.SubprocessLauncher launcher) throws GLib.Error;
public void hide_from_window_list (Meta.Window window);
public bool owns_window (Meta.Window window);
public void show_in_window_list (Meta.Window window);
public GLib.Subprocess spawn (Meta.Display display, GLib.Error? error, string argv0, ...);
public GLib.Subprocess spawnv (Meta.Display display, [CCode (array_length = false, array_null_terminated = true)] string[] argv) throws GLib.Error;
}
#endif
[CCode (cheader_filename = "meta/window.h", type_id = "meta_window_get_type ()")]
public abstract class Window : GLib.Object {
[CCode (has_construct_function = false)]
@ -1057,8 +1104,10 @@ namespace Meta {
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);
public void raise ();
#if !HAS_MUTTER338
public bool requested_bypass_compositor ();
public bool requested_dont_bypass_compositor ();
#endif
public void set_compositor_private (GLib.Object priv);
public void set_demands_attention ();
public void set_icon_geometry (Meta.Rectangle? rect);
@ -1116,7 +1165,7 @@ namespace Meta {
public string wm_class { get; }
[CCode (cname = "focus")]
public signal void focused ();
#if HAS_MUTTER334
#if HAS_MUTTER334 && !HAS_MUTTER338
public signal void monitor_changed (int old_monitor);
#endif
public signal void position_changed ();
@ -1139,6 +1188,9 @@ namespace Meta {
#endif
[CCode (has_construct_function = false)]
protected WindowActor ();
#if HAS_MUTTER338
public void freeze ();
#endif
#if HAS_MUTTER334
public Cairo.Surface? get_image (Cairo.RectangleInt? clip);
#endif
@ -1154,11 +1206,16 @@ namespace Meta {
#endif
public bool is_destroyed ();
public void sync_visibility ();
#if HAS_MUTTER338
public void thaw ();
#endif
public Meta.Window meta_window { get; construct; }
#if !HAS_MUTTER338
[NoAccessorMethod]
public string shadow_class { owned get; set; }
[NoAccessorMethod]
public Meta.ShadowMode shadow_mode { get; set; }
#endif
#if HAS_MUTTER334
public signal void damaged ();
#endif
@ -1204,6 +1261,10 @@ namespace Meta {
public int index ();
public GLib.List<weak Meta.Window> list_windows ();
public void set_builtin_struts (GLib.SList<Meta.Strut?> struts);
#if HAS_MUTTER338
[NoAccessorMethod]
public bool active { get; }
#endif
[NoAccessorMethod]
public uint n_windows { get; }
[NoAccessorMethod]
@ -1430,8 +1491,19 @@ namespace Meta {
POINTING_HAND,
CROSSHAIR,
IBEAM,
#if HAS_MUTTER338
BLANK,
#endif
LAST
}
#if HAS_MUTTER338
[CCode (cheader_filename = "meta/main.h", cprefix = "META_DEBUG_PAINT_", type_id = "meta_debug_paint_flag_get_type ()")]
[Flags]
public enum DebugPaintFlag {
NONE,
OPAQUE_REGION
}
#endif
[CCode (cheader_filename = "meta/util.h", cprefix = "META_DEBUG_", type_id = "meta_debug_topic_get_type ()")]
[Flags]
public enum DebugTopic {
@ -1957,10 +2029,20 @@ namespace Meta {
public const int VIRTUAL_CORE_POINTER_ID;
[CCode (cheader_filename = "meta/main.h")]
public static bool activate_session ();
#if HAS_MUTTER338
[CCode (cheader_filename = "meta/main.h")]
public static void add_clutter_debug_flags (Clutter.DebugFlag debug_flags, Clutter.DrawDebugFlag draw_flags, Clutter.PickDebugFlag pick_flags);
[CCode (cheader_filename = "meta/main.h")]
public static void add_debug_paint_flag (Meta.DebugPaintFlag flag);
#endif
[CCode (cheader_filename = "meta/main.h")]
public static void clutter_init ();
[CCode (cheader_filename = "meta/main.h")]
public static void exit (Meta.ExitCode code);
#if HAS_MUTTER338
[CCode (cheader_filename = "meta/main.h")]
public static Meta.DebugPaintFlag get_debug_paint_flags ();
#endif
[CCode (cheader_filename = "meta/main.h")]
public static unowned GLib.OptionContext get_option_context ();
[CCode (cheader_filename = "meta/main.h")]
@ -1973,6 +2055,12 @@ namespace Meta {
public static void quit (Meta.ExitCode code);
[CCode (cheader_filename = "meta/main.h")]
public static void register_with_session ();
#if HAS_MUTTER338
[CCode (cheader_filename = "meta/main.h")]
public static void remove_clutter_debug_flags (Clutter.DebugFlag debug_flags, Clutter.DrawDebugFlag draw_flags, Clutter.PickDebugFlag pick_flags);
[CCode (cheader_filename = "meta/main.h")]
public static void remove_debug_paint_flag (Meta.DebugPaintFlag flag);
#endif
[CCode (cheader_filename = "meta/main.h")]
public static void restart (string? message);
[CCode (cheader_filename = "meta/main.h")]

View File

@ -335,3 +335,72 @@ if mutter336_dep.found()
output: 'libmutter-6.vapi'
)
endif
if mutter338_dep.found()
cogl_target = custom_target('mutter-cogl-7',
command: [
vapigen,
mutter_typelib_dir / 'Cogl-7.gir',
'--library=mutter-cogl-7',
'--pkg=gobject-2.0',
'--pkg=cairo',
'--pkg=graphene-gobject-1.0',
vapigen_args,
files('Cogl-7-custom.vala')
],
output: 'mutter-cogl-7.vapi'
)
cogl_pango_target = custom_target('mutter-cogl-pango-7',
command: [
vapigen,
mutter_typelib_dir / 'CoglPango-7.gir',
'--library=mutter-cogl-pango-7',
'--pkg=mutter-cogl-7',
'--pkg=pangocairo',
vapigen_args
],
depends: cogl_target,
output: 'mutter-cogl-pango-7.vapi'
)
clutter_target = custom_target('mutter-clutter-7',
command: [
vapigen,
mutter_typelib_dir / 'Clutter-7.gir',
'--library=mutter-clutter-7',
'--pkg=graphene-gobject-1.0',
'--pkg=mutter-cogl-7',
'--pkg=mutter-cogl-pango-7',
'--pkg=atk',
'--pkg=gio-2.0',
'--pkg=json-glib-1.0',
'--pkg=pangocairo',
vapigen_args,
files('Clutter-7-custom.vala')
],
depends: [ cogl_target, cogl_pango_target ],
output: 'mutter-clutter-7.vapi'
)
libmutter_target = custom_target('libmutter-7',
command: [
vapigen,
mutter_typelib_dir / 'Meta-7.gir',
'--library=libmutter-7',
'--pkg=graphene-gobject-1.0',
'--pkg=mutter-cogl-7',
'--pkg=mutter-cogl-pango-7',
'--pkg=mutter-clutter-7',
'--pkg=atk',
'--pkg=gio-2.0',
'--pkg=json-glib-1.0',
'--pkg=pangocairo',
'--pkg=gtk+-3.0',
'--pkg=x11',
'--pkg=xfixes-4.0',
vapigen_args
],
depends: [ cogl_target, cogl_pango_target, clutter_target ],
output: 'libmutter-7.vapi'
)
endif

View File

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

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

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

File diff suppressed because it is too large Load Diff

View File

@ -35,12 +35,28 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_has_feature")]
[Version (since = "1.10")]
public bool has_feature (Cogl.FeatureID feature);
#if HAS_MUTTER338
public bool is_hardware_accelerated ();
#endif
}
[CCode (cheader_filename = "cogl/cogl.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "cogl_frame_closure_get_gtype ()")]
[Compact]
[Version (since = "1.14")]
public class FrameClosure {
}
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_frame_info_get_gtype ()")]
public class FrameInfo : Cogl.Object {
[CCode (has_construct_function = false)]
protected FrameInfo ();
[Version (since = "1.14")]
public int64 get_frame_counter ();
[Version (since = "1.14")]
public int64 get_presentation_time ();
[Version (since = "1.14")]
public float get_refresh_rate ();
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", ref_function = "cogl_object_ref", type_id = "cogl_handle_get_gtype ()", unref_function = "cogl_object_unref")]
[Compact]
public class Handle {
@ -106,6 +122,9 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_is_framebuffer")]
[Version (since = "1.10")]
public bool is_framebuffer ();
[Version (since = "2.0")]
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_is_frame_info")]
public bool is_frame_info ();
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_is_offscreen")]
public bool is_offscreen ();
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_is_onscreen")]
@ -138,6 +157,10 @@ namespace Cogl {
protected Onscreen ();
[Version (since = "1.16")]
public Cogl.OnscreenDirtyClosure add_dirty_callback ([CCode (delegate_target_pos = 1.5)] Cogl.OnscreenDirtyCallback callback, Cogl.UserDataDestroyCallback? destroy);
#if HAS_MUTTER338
[Version (since = "1.14")]
public Cogl.FrameClosure add_frame_callback ([CCode (delegate_target_pos = 1.5)] Cogl.FrameCallback callback, Cogl.UserDataDestroyCallback? destroy);
#endif
[Version (since = "2.0")]
public Cogl.OnscreenResizeClosure add_resize_callback ([CCode (delegate_target_pos = 1.5)] Cogl.OnscreenResizeCallback callback, Cogl.UserDataDestroyCallback? destroy);
[Version (since = "1.14")]
@ -158,12 +181,21 @@ namespace Cogl {
public void set_resizable (bool resizable);
[Version (since = "2.0")]
public void show ();
#if HAS_MUTTER338
[Version (since = "1.10")]
public void swap_buffers (Cogl.FrameInfo frame_info);
[Version (since = "1.16")]
public void swap_buffers_with_damage (int rectangles, int n_rectangles, Cogl.FrameInfo frame_info);
[Version (since = "1.10")]
public void swap_region (int rectangles, int n_rectangles, Cogl.FrameInfo frame_info);
#else
[Version (since = "1.10")]
public void swap_buffers ();
[Version (since = "1.16")]
public void swap_buffers_with_damage (int rectangles, int n_rectangles);
[Version (since = "1.10")]
public void swap_region (int rectangles, int n_rectangles);
#endif
}
[CCode (cheader_filename = "cogl/cogl.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "cogl_onscreen_dirty_closure_get_gtype ()")]
[Compact]
@ -242,6 +274,9 @@ namespace Cogl {
public void set_layer_filters (int layer_index, Cogl.PipelineFilter min_filter, Cogl.PipelineFilter mag_filter);
[Version (since = "1.10")]
public void set_layer_matrix (int layer_index, Cogl.Matrix matrix);
#if HAS_MUTTER338
public void set_layer_max_mipmap_level (int layer, int max_level);
#endif
[Version (since = "1.10")]
public void set_layer_null_texture (int layer_index);
[Version (since = "2.0")]
@ -311,7 +346,7 @@ namespace Cogl {
[Version (since = "1.8")]
public void set_n_vertices (int n_vertices);
}
[CCode (cheader_filename = "cogl/cogl.h", cname = "CoglHandle", ref_function = "cogl_program_ref", type_id = "cogl_handle_get_gtype ()", unref_function = "cogl_program_unref")]
[CCode (cheader_filename = "cogl/cogl.h", cname = "CoglHandle", ref_function = "cogl_object_ref", type_id = "cogl_handle_get_gtype ()", unref_function = "cogl_object_unref")]
[Compact]
public class Program : Cogl.Handle {
[CCode (cheader_filename = "cogl/cogl.h")]
@ -342,7 +377,13 @@ namespace Cogl {
[Version (deprecated = true, deprecated_since = "1.16", since = "1.4")]
public void set_uniform_matrix (int uniform_location, int dimensions, bool transpose, [CCode (array_length_cname = "count", array_length_pos = 2.5)] float[] value);
}
[CCode (cheader_filename = "cogl/cogl.h", cname = "CoglHandle", ref_function = "cogl_shader_ref", type_id = "cogl_handle_get_gtype ()", unref_function = "cogl_shader_unref")]
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Compact]
public class Scanout {
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", cname = "CoglHandle", ref_function = "cogl_object_ref", type_id = "cogl_handle_get_gtype ()", unref_function = "cogl_object_unref")]
[Compact]
public class Shader : Cogl.Handle {
[CCode (cheader_filename = "cogl/cogl.h", cname = "cogl_create_shader")]
@ -376,6 +417,12 @@ namespace Cogl {
[Version (since = "1.16")]
public Texture2DSliced.from_bitmap (Cogl.Bitmap bmp, int max_waste);
}
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Compact]
public class TraceContext {
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_framebuffer_get_gtype ()")]
public interface Framebuffer : Cogl.Object {
[Version (since = "1.8")]
@ -486,8 +533,10 @@ namespace Cogl {
public void set_stereo_mode (Cogl.StereoMode stereo_mode);
[Version (since = "1.8")]
public void set_viewport (float x, float y, float width, float height);
#if !HAS_MUTTER338
[CCode (cheader_filename = "cogl-path/cogl-path.h")]
public void stroke_path (Cogl.Pipeline pipeline, Cogl.Path path);
#endif
[Version (since = "1.10")]
public void transform (Cogl.Matrix matrix);
[Version (since = "1.10")]
@ -684,6 +733,13 @@ namespace Cogl {
public float ty;
public Cogl.Color color;
}
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
public struct TraceHead {
public uint64 begin_time;
public weak string name;
}
#endif
[CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)]
[Version (since = "1.4")]
public struct UserDataKey {
@ -825,6 +881,10 @@ namespace Cogl {
OGL_FEATURE_ID_TEXTURE_RG,
[CCode (cname = "COGL_FEATURE_ID_BUFFER_AGE")]
OGL_FEATURE_ID_BUFFER_AGE,
#if HAS_MUTTER338
[CCode (cname = "COGL_FEATURE_ID_BLIT_FRAMEBUFFER")]
OGL_FEATURE_ID_BLIT_FRAMEBUFFER,
#endif
[CCode (cname = "COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL")]
OGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL
}
@ -944,6 +1004,12 @@ namespace Cogl {
BGRA_1010102,
ARGB_2101010,
ABGR_2101010,
#if HAS_MUTTER338
RGBA_FP_16161616,
BGRA_FP_16161616,
ARGB_FP_16161616,
ABGR_FP_16161616,
#endif
RGBA_8888_PRE,
BGRA_8888_PRE,
ARGB_8888_PRE,
@ -954,6 +1020,12 @@ namespace Cogl {
BGRA_1010102_PRE,
ARGB_2101010_PRE,
ABGR_2101010_PRE,
#if HAS_MUTTER338
RGBA_FP_16161616_PRE,
BGRA_FP_16161616_PRE,
ARGB_FP_16161616_PRE,
ABGR_FP_16161616_PRE,
#endif
DEPTH_16,
DEPTH_32,
DEPTH_24_STENCIL_8;
@ -1020,7 +1092,9 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", cprefix = "COGL_WINSYS_FEATURE_", has_type_id = false)]
public enum WinsysFeature {
MULTIPLE_ONSCREEN,
#if !HAS_MUTTER338
SWAP_THROTTLE,
#endif
VBLANK_COUNTER,
VBLANK_WAIT,
TEXTURE_FROM_PIXMAP,
@ -1076,6 +1150,11 @@ namespace Cogl {
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 1.9)]
[Version (since = "0.10")]
public delegate void FeatureCallback (Cogl.FeatureID feature);
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 3.9)]
[Version (since = "1.14")]
public delegate void FrameCallback (Cogl.Onscreen onscreen, Cogl.FrameEvent event, Cogl.FrameInfo info);
#endif
[CCode (cheader_filename = "cogl/cogl.h", instance_pos = 2.9)]
[Version (since = "1.16")]
public delegate void OnscreenDirtyCallback (Cogl.Onscreen onscreen, Cogl.OnscreenDirtyInfo info);
@ -1140,11 +1219,15 @@ namespace Cogl {
[Version (deprecated = true, deprecated_since = "1.16")]
public static void set_depth_test_enabled (bool setting);
[CCode (cheader_filename = "cogl/cogl.h")]
public static void set_tracing_disabled_on_thread (void* data);
public static void set_tracing_disabled_on_thread (GLib.MainContext main_context);
[CCode (cheader_filename = "cogl/cogl.h")]
public static void set_tracing_enabled_on_thread (void* data, string group, string filename);
public static void set_tracing_enabled_on_thread (GLib.MainContext main_context, string group, string filename);
[CCode (cheader_filename = "cogl/cogl.h")]
public static void set_tracing_enabled_on_thread_with_fd (void* data, string group, int fd);
public static void set_tracing_enabled_on_thread_with_fd (GLib.MainContext main_context, string group, int fd);
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl/cogl.h")]
public static void trace_end (Cogl.TraceHead head);
#endif
[CCode (cheader_filename = "cogl/cogl.h")]
[Version (since = "1.10")]
public static uint32 x11_onscreen_get_window_xid (Cogl.Onscreen onscreen);

1
vapi/mutter-cogl-7.deps Symbolic link
View File

@ -0,0 +1 @@
mutter-cogl-6.deps

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

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

View File

@ -2,10 +2,15 @@
[CCode (cprefix = "CoglPango", gir_namespace = "CoglPango", gir_version = "6", lower_case_cprefix = "cogl_pango_")]
namespace CoglPango {
#if HAS_MUTTER338
[CCode (cheader_filename = "cogl-pango.h")]
public interface FontMap : Pango.CairoFontMap, GLib.Object {
#else
[CCode (cheader_filename = "cogl-pango.h", type_id = "pango_font_map_get_type ()")]
public class FontMap : Pango.FontMap {
[CCode (has_construct_function = false)]
protected FontMap ();
#endif
[Version (since = "1.0")]
public void clear_glyph_cache ();
public Pango.Context create_context ();

View File

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

View File

@ -0,0 +1 @@
mutter-cogl-path-6.vapi