react-x11 2.13.0 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -8
- package/src/Reconciler.js +34 -21
- package/src/components/Select.js +8 -2
- package/src/events.js +8 -2
- package/src/index.d.ts +5 -0
- package/src/nodes/boxpaint.js +9 -0
- package/src/nodes/preedit.js +64 -14
- package/src/scale.js +52 -22
- package/src/screencolor.js +104 -17
- package/src/wayland/app.js +560 -0
- package/src/wayland/backendwindow.js +1123 -0
- package/src/wayland/clipboard.js +326 -0
- package/src/wayland/connection.js +482 -0
- package/src/wayland/context2d.js +2133 -0
- package/src/wayland/decorations.js +476 -0
- package/src/wayland/dmabuf.js +89 -0
- package/src/wayland/dnd.js +581 -0
- package/src/wayland/fdutil.js +108 -0
- package/src/wayland/framestyle.js +257 -0
- package/src/wayland/glarea.js +371 -0
- package/src/wayland/glcontext.js +415 -0
- package/src/wayland/glyphatlas.js +237 -0
- package/src/wayland/input.js +417 -0
- package/src/wayland/keysymnames.js +35 -0
- package/src/wayland/layershell.js +363 -0
- package/src/wayland/outputs.js +601 -0
- package/src/wayland/protocols/cursor-shape-v1.json +1 -0
- package/src/wayland/protocols/ext-idle-notify-v1.json +1 -0
- package/src/wayland/protocols/ext-image-capture-source-v1.json +1 -0
- package/src/wayland/protocols/ext-image-copy-capture-v1.json +1 -0
- package/src/wayland/protocols/fractional-scale-v1.json +1 -0
- package/src/wayland/protocols/index.json +127 -0
- package/src/wayland/protocols/keyboard-shortcuts-inhibit-unstable-v1.json +1 -0
- package/src/wayland/protocols/linux-dmabuf-v1.json +1 -0
- package/src/wayland/protocols/pointer-constraints-unstable-v1.json +1 -0
- package/src/wayland/protocols/presentation-time.json +1 -0
- package/src/wayland/protocols/primary-selection-unstable-v1.json +1 -0
- package/src/wayland/protocols/relative-pointer-unstable-v1.json +1 -0
- package/src/wayland/protocols/tablet-v2.json +1 -0
- package/src/wayland/protocols/text-input-unstable-v3.json +1 -0
- package/src/wayland/protocols/viewporter.json +1 -0
- package/src/wayland/protocols/wayland.json +1 -0
- package/src/wayland/protocols/wlr-layer-shell-unstable-v1.json +1 -0
- package/src/wayland/protocols/wlr-screencopy-unstable-v1.json +1 -0
- package/src/wayland/protocols/xdg-activation-v1.json +1 -0
- package/src/wayland/protocols/xdg-decoration-unstable-v1.json +1 -0
- package/src/wayland/protocols/xdg-output-unstable-v1.json +1 -0
- package/src/wayland/protocols/xdg-shell.json +1 -0
- package/src/wayland/protocols/xdg-toplevel-icon-v1.json +1 -0
- package/src/wayland/readback.js +99 -0
- package/src/wayland/screencopy.js +584 -0
- package/src/wayland/seat.js +584 -0
- package/src/wayland/shm.js +226 -0
- package/src/wayland/ssd.js +106 -0
- package/src/wayland/surface.js +123 -0
- package/src/wayland/swapchain.js +411 -0
- package/src/wayland/tablet.js +522 -0
- package/src/wayland/target.js +263 -0
- package/src/wayland/text.js +113 -0
- package/src/wayland/textinput.js +671 -0
- package/src/wayland/touch.js +284 -0
- package/src/wayland/window.js +827 -0
- package/src/wayland/xkb.js +425 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wayland": [
|
|
3
|
+
"wl_display",
|
|
4
|
+
"wl_registry",
|
|
5
|
+
"wl_callback",
|
|
6
|
+
"wl_compositor",
|
|
7
|
+
"wl_shm_pool",
|
|
8
|
+
"wl_shm",
|
|
9
|
+
"wl_buffer",
|
|
10
|
+
"wl_data_offer",
|
|
11
|
+
"wl_data_source",
|
|
12
|
+
"wl_data_device",
|
|
13
|
+
"wl_data_device_manager",
|
|
14
|
+
"wl_shell",
|
|
15
|
+
"wl_shell_surface",
|
|
16
|
+
"wl_surface",
|
|
17
|
+
"wl_seat",
|
|
18
|
+
"wl_pointer",
|
|
19
|
+
"wl_keyboard",
|
|
20
|
+
"wl_touch",
|
|
21
|
+
"wl_output",
|
|
22
|
+
"wl_region",
|
|
23
|
+
"wl_subcompositor",
|
|
24
|
+
"wl_subsurface"
|
|
25
|
+
],
|
|
26
|
+
"xdg-shell": [
|
|
27
|
+
"xdg_wm_base",
|
|
28
|
+
"xdg_positioner",
|
|
29
|
+
"xdg_surface",
|
|
30
|
+
"xdg_toplevel",
|
|
31
|
+
"xdg_popup"
|
|
32
|
+
],
|
|
33
|
+
"linux-dmabuf-v1": [
|
|
34
|
+
"zwp_linux_dmabuf_v1",
|
|
35
|
+
"zwp_linux_buffer_params_v1",
|
|
36
|
+
"zwp_linux_dmabuf_feedback_v1"
|
|
37
|
+
],
|
|
38
|
+
"presentation-time": [
|
|
39
|
+
"wp_presentation",
|
|
40
|
+
"wp_presentation_feedback"
|
|
41
|
+
],
|
|
42
|
+
"viewporter": [
|
|
43
|
+
"wp_viewporter",
|
|
44
|
+
"wp_viewport"
|
|
45
|
+
],
|
|
46
|
+
"tablet-v2": [
|
|
47
|
+
"zwp_tablet_manager_v2",
|
|
48
|
+
"zwp_tablet_seat_v2",
|
|
49
|
+
"zwp_tablet_tool_v2",
|
|
50
|
+
"zwp_tablet_v2",
|
|
51
|
+
"zwp_tablet_pad_ring_v2",
|
|
52
|
+
"zwp_tablet_pad_strip_v2",
|
|
53
|
+
"zwp_tablet_pad_group_v2",
|
|
54
|
+
"zwp_tablet_pad_v2",
|
|
55
|
+
"zwp_tablet_pad_dial_v2"
|
|
56
|
+
],
|
|
57
|
+
"fractional-scale-v1": [
|
|
58
|
+
"wp_fractional_scale_manager_v1",
|
|
59
|
+
"wp_fractional_scale_v1"
|
|
60
|
+
],
|
|
61
|
+
"cursor-shape-v1": [
|
|
62
|
+
"wp_cursor_shape_manager_v1",
|
|
63
|
+
"wp_cursor_shape_device_v1"
|
|
64
|
+
],
|
|
65
|
+
"xdg-activation-v1": [
|
|
66
|
+
"xdg_activation_v1",
|
|
67
|
+
"xdg_activation_token_v1"
|
|
68
|
+
],
|
|
69
|
+
"ext-idle-notify-v1": [
|
|
70
|
+
"ext_idle_notifier_v1",
|
|
71
|
+
"ext_idle_notification_v1"
|
|
72
|
+
],
|
|
73
|
+
"xdg-toplevel-icon-v1": [
|
|
74
|
+
"xdg_toplevel_icon_manager_v1",
|
|
75
|
+
"xdg_toplevel_icon_v1"
|
|
76
|
+
],
|
|
77
|
+
"xdg-decoration-unstable-v1": [
|
|
78
|
+
"zxdg_decoration_manager_v1",
|
|
79
|
+
"zxdg_toplevel_decoration_v1"
|
|
80
|
+
],
|
|
81
|
+
"primary-selection-unstable-v1": [
|
|
82
|
+
"zwp_primary_selection_device_manager_v1",
|
|
83
|
+
"zwp_primary_selection_device_v1",
|
|
84
|
+
"zwp_primary_selection_offer_v1",
|
|
85
|
+
"zwp_primary_selection_source_v1"
|
|
86
|
+
],
|
|
87
|
+
"text-input-unstable-v3": [
|
|
88
|
+
"zwp_text_input_v3",
|
|
89
|
+
"zwp_text_input_manager_v3"
|
|
90
|
+
],
|
|
91
|
+
"pointer-constraints-unstable-v1": [
|
|
92
|
+
"zwp_pointer_constraints_v1",
|
|
93
|
+
"zwp_locked_pointer_v1",
|
|
94
|
+
"zwp_confined_pointer_v1"
|
|
95
|
+
],
|
|
96
|
+
"relative-pointer-unstable-v1": [
|
|
97
|
+
"zwp_relative_pointer_manager_v1",
|
|
98
|
+
"zwp_relative_pointer_v1"
|
|
99
|
+
],
|
|
100
|
+
"xdg-output-unstable-v1": [
|
|
101
|
+
"zxdg_output_manager_v1",
|
|
102
|
+
"zxdg_output_v1"
|
|
103
|
+
],
|
|
104
|
+
"wlr-layer-shell-unstable-v1": [
|
|
105
|
+
"zwlr_layer_shell_v1",
|
|
106
|
+
"zwlr_layer_surface_v1"
|
|
107
|
+
],
|
|
108
|
+
"wlr-screencopy-unstable-v1": [
|
|
109
|
+
"zwlr_screencopy_manager_v1",
|
|
110
|
+
"zwlr_screencopy_frame_v1"
|
|
111
|
+
],
|
|
112
|
+
"ext-image-capture-source-v1": [
|
|
113
|
+
"ext_image_capture_source_v1",
|
|
114
|
+
"ext_output_image_capture_source_manager_v1",
|
|
115
|
+
"ext_foreign_toplevel_image_capture_source_manager_v1"
|
|
116
|
+
],
|
|
117
|
+
"ext-image-copy-capture-v1": [
|
|
118
|
+
"ext_image_copy_capture_manager_v1",
|
|
119
|
+
"ext_image_copy_capture_session_v1",
|
|
120
|
+
"ext_image_copy_capture_frame_v1",
|
|
121
|
+
"ext_image_copy_capture_cursor_session_v1"
|
|
122
|
+
],
|
|
123
|
+
"keyboard-shortcuts-inhibit-unstable-v1": [
|
|
124
|
+
"zwp_keyboard_shortcuts_inhibit_manager_v1",
|
|
125
|
+
"zwp_keyboard_shortcuts_inhibitor_v1"
|
|
126
|
+
]
|
|
127
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_keyboard_shortcuts_inhibit_manager_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"inhibit_shortcuts","args":[{"name":"id","type":"new_id","interface":"zwp_keyboard_shortcuts_inhibitor_v1"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"seat","type":"object","interface":"wl_seat"}]}],"events":[],"enums":{"error":{"entries":[{"name":"already_inhibited","value":0}]}}},{"name":"zwp_keyboard_shortcuts_inhibitor_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"active","args":[]},{"name":"inactive","args":[]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_linux_dmabuf_v1","version":5,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"create_params","args":[{"name":"params_id","type":"new_id","interface":"zwp_linux_buffer_params_v1"}]},{"name":"get_default_feedback","since":4,"args":[{"name":"id","type":"new_id","interface":"zwp_linux_dmabuf_feedback_v1"}]},{"name":"get_surface_feedback","since":4,"args":[{"name":"id","type":"new_id","interface":"zwp_linux_dmabuf_feedback_v1"},{"name":"surface","type":"object","interface":"wl_surface"}]}],"events":[{"name":"format","args":[{"name":"format","type":"uint"}]},{"name":"modifier","since":3,"args":[{"name":"format","type":"uint"},{"name":"modifier_hi","type":"uint"},{"name":"modifier_lo","type":"uint"}]}],"enums":{}},{"name":"zwp_linux_buffer_params_v1","version":5,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"add","args":[{"name":"fd","type":"fd"},{"name":"plane_idx","type":"uint"},{"name":"offset","type":"uint"},{"name":"stride","type":"uint"},{"name":"modifier_hi","type":"uint"},{"name":"modifier_lo","type":"uint"}]},{"name":"create","args":[{"name":"width","type":"int"},{"name":"height","type":"int"},{"name":"format","type":"uint"},{"name":"flags","type":"uint","enum":"flags"}]},{"name":"create_immed","since":2,"args":[{"name":"buffer_id","type":"new_id","interface":"wl_buffer"},{"name":"width","type":"int"},{"name":"height","type":"int"},{"name":"format","type":"uint"},{"name":"flags","type":"uint","enum":"flags"}]}],"events":[{"name":"created","args":[{"name":"buffer","type":"new_id","interface":"wl_buffer"}]},{"name":"failed","args":[]}],"enums":{"error":{"entries":[{"name":"already_used","value":0},{"name":"plane_idx","value":1},{"name":"plane_set","value":2},{"name":"incomplete","value":3},{"name":"invalid_format","value":4},{"name":"invalid_dimensions","value":5},{"name":"out_of_bounds","value":6},{"name":"invalid_wl_buffer","value":7}]},"flags":{"entries":[{"name":"y_invert","value":1},{"name":"interlaced","value":2},{"name":"bottom_first","value":4}]}}},{"name":"zwp_linux_dmabuf_feedback_v1","version":5,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"done","args":[]},{"name":"format_table","args":[{"name":"fd","type":"fd"},{"name":"size","type":"uint"}]},{"name":"main_device","args":[{"name":"device","type":"array"}]},{"name":"tranche_done","args":[]},{"name":"tranche_target_device","args":[{"name":"device","type":"array"}]},{"name":"tranche_formats","args":[{"name":"indices","type":"array"}]},{"name":"tranche_flags","args":[{"name":"flags","type":"uint","enum":"tranche_flags"}]}],"enums":{"tranche_flags":{"entries":[{"name":"scanout","value":1}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_pointer_constraints_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"lock_pointer","args":[{"name":"id","type":"new_id","interface":"zwp_locked_pointer_v1"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"pointer","type":"object","interface":"wl_pointer"},{"name":"region","type":"object","interface":"wl_region","allow-null":"true"},{"name":"lifetime","type":"uint","enum":"lifetime"}]},{"name":"confine_pointer","args":[{"name":"id","type":"new_id","interface":"zwp_confined_pointer_v1"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"pointer","type":"object","interface":"wl_pointer"},{"name":"region","type":"object","interface":"wl_region","allow-null":"true"},{"name":"lifetime","type":"uint","enum":"lifetime"}]}],"events":[],"enums":{"error":{"entries":[{"name":"already_constrained","value":1}]},"lifetime":{"entries":[{"name":"oneshot","value":1},{"name":"persistent","value":2}]}}},{"name":"zwp_locked_pointer_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_cursor_position_hint","args":[{"name":"surface_x","type":"fixed"},{"name":"surface_y","type":"fixed"}]},{"name":"set_region","args":[{"name":"region","type":"object","interface":"wl_region","allow-null":"true"}]}],"events":[{"name":"locked","args":[]},{"name":"unlocked","args":[]}],"enums":{}},{"name":"zwp_confined_pointer_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_region","args":[{"name":"region","type":"object","interface":"wl_region","allow-null":"true"}]}],"events":[{"name":"confined","args":[]},{"name":"unconfined","args":[]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"wp_presentation","version":2,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"feedback","args":[{"name":"surface","type":"object","interface":"wl_surface"},{"name":"callback","type":"new_id","interface":"wp_presentation_feedback"}]}],"events":[{"name":"clock_id","args":[{"name":"clk_id","type":"uint"}]}],"enums":{"error":{"entries":[{"name":"invalid_timestamp","value":0},{"name":"invalid_flag","value":1}]}}},{"name":"wp_presentation_feedback","version":2,"requests":[],"events":[{"name":"sync_output","args":[{"name":"output","type":"object","interface":"wl_output"}]},{"name":"presented","args":[{"name":"tv_sec_hi","type":"uint"},{"name":"tv_sec_lo","type":"uint"},{"name":"tv_nsec","type":"uint"},{"name":"refresh","type":"uint"},{"name":"seq_hi","type":"uint"},{"name":"seq_lo","type":"uint"},{"name":"flags","type":"uint","enum":"kind"}]},{"name":"discarded","args":[]}],"enums":{"kind":{"entries":[{"name":"vsync","value":1},{"name":"hw_clock","value":2},{"name":"hw_completion","value":4},{"name":"zero_copy","value":8}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_primary_selection_device_manager_v1","version":1,"requests":[{"name":"create_source","args":[{"name":"id","type":"new_id","interface":"zwp_primary_selection_source_v1"}]},{"name":"get_device","args":[{"name":"id","type":"new_id","interface":"zwp_primary_selection_device_v1"},{"name":"seat","type":"object","interface":"wl_seat"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[],"enums":{}},{"name":"zwp_primary_selection_device_v1","version":1,"requests":[{"name":"set_selection","args":[{"name":"source","type":"object","interface":"zwp_primary_selection_source_v1","allow-null":"true"},{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"data_offer","args":[{"name":"offer","type":"new_id","interface":"zwp_primary_selection_offer_v1"}]},{"name":"selection","args":[{"name":"id","type":"object","interface":"zwp_primary_selection_offer_v1","allow-null":"true"}]}],"enums":{}},{"name":"zwp_primary_selection_offer_v1","version":1,"requests":[{"name":"receive","args":[{"name":"mime_type","type":"string"},{"name":"fd","type":"fd"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"offer","args":[{"name":"mime_type","type":"string"}]}],"enums":{}},{"name":"zwp_primary_selection_source_v1","version":1,"requests":[{"name":"offer","args":[{"name":"mime_type","type":"string"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"send","args":[{"name":"mime_type","type":"string"},{"name":"fd","type":"fd"}]},{"name":"cancelled","args":[]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_relative_pointer_manager_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_relative_pointer","args":[{"name":"id","type":"new_id","interface":"zwp_relative_pointer_v1"},{"name":"pointer","type":"object","interface":"wl_pointer"}]}],"events":[],"enums":{}},{"name":"zwp_relative_pointer_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"relative_motion","args":[{"name":"utime_hi","type":"uint"},{"name":"utime_lo","type":"uint"},{"name":"dx","type":"fixed"},{"name":"dy","type":"fixed"},{"name":"dx_unaccel","type":"fixed"},{"name":"dy_unaccel","type":"fixed"}]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_tablet_manager_v2","version":2,"requests":[{"name":"get_tablet_seat","args":[{"name":"tablet_seat","type":"new_id","interface":"zwp_tablet_seat_v2"},{"name":"seat","type":"object","interface":"wl_seat"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[],"enums":{}},{"name":"zwp_tablet_seat_v2","version":2,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"tablet_added","args":[{"name":"id","type":"new_id","interface":"zwp_tablet_v2"}]},{"name":"tool_added","args":[{"name":"id","type":"new_id","interface":"zwp_tablet_tool_v2"}]},{"name":"pad_added","args":[{"name":"id","type":"new_id","interface":"zwp_tablet_pad_v2"}]}],"enums":{}},{"name":"zwp_tablet_tool_v2","version":2,"requests":[{"name":"set_cursor","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface","allow-null":"true"},{"name":"hotspot_x","type":"int"},{"name":"hotspot_y","type":"int"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"type","args":[{"name":"tool_type","type":"uint","enum":"type"}]},{"name":"hardware_serial","args":[{"name":"hardware_serial_hi","type":"uint"},{"name":"hardware_serial_lo","type":"uint"}]},{"name":"hardware_id_wacom","args":[{"name":"hardware_id_hi","type":"uint"},{"name":"hardware_id_lo","type":"uint"}]},{"name":"capability","args":[{"name":"capability","type":"uint","enum":"capability"}]},{"name":"done","args":[]},{"name":"removed","args":[]},{"name":"proximity_in","args":[{"name":"serial","type":"uint"},{"name":"tablet","type":"object","interface":"zwp_tablet_v2"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"proximity_out","args":[]},{"name":"down","args":[{"name":"serial","type":"uint"}]},{"name":"up","args":[]},{"name":"motion","args":[{"name":"x","type":"fixed"},{"name":"y","type":"fixed"}]},{"name":"pressure","args":[{"name":"pressure","type":"uint"}]},{"name":"distance","args":[{"name":"distance","type":"uint"}]},{"name":"tilt","args":[{"name":"tilt_x","type":"fixed"},{"name":"tilt_y","type":"fixed"}]},{"name":"rotation","args":[{"name":"degrees","type":"fixed"}]},{"name":"slider","args":[{"name":"position","type":"int"}]},{"name":"wheel","args":[{"name":"degrees","type":"fixed"},{"name":"clicks","type":"int"}]},{"name":"button","args":[{"name":"serial","type":"uint"},{"name":"button","type":"uint"},{"name":"state","type":"uint","enum":"button_state"}]},{"name":"frame","args":[{"name":"time","type":"uint"}]}],"enums":{"type":{"entries":[{"name":"pen","value":320},{"name":"eraser","value":321},{"name":"brush","value":322},{"name":"pencil","value":323},{"name":"airbrush","value":324},{"name":"finger","value":325},{"name":"mouse","value":326},{"name":"lens","value":327}]},"capability":{"entries":[{"name":"tilt","value":1},{"name":"pressure","value":2},{"name":"distance","value":3},{"name":"rotation","value":4},{"name":"slider","value":5},{"name":"wheel","value":6}]},"button_state":{"entries":[{"name":"released","value":0},{"name":"pressed","value":1}]},"error":{"entries":[{"name":"role","value":0}]}}},{"name":"zwp_tablet_v2","version":2,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"name","args":[{"name":"name","type":"string"}]},{"name":"id","args":[{"name":"vid","type":"uint"},{"name":"pid","type":"uint"}]},{"name":"path","args":[{"name":"path","type":"string"}]},{"name":"done","args":[]},{"name":"removed","args":[]},{"name":"bustype","since":2,"args":[{"name":"bustype","type":"uint","enum":"bustype"}]}],"enums":{"bustype":{"since":2,"entries":[{"name":"usb","value":3},{"name":"bluetooth","value":5},{"name":"virtual","value":6},{"name":"serial","value":17},{"name":"i2c","value":24}]}}},{"name":"zwp_tablet_pad_ring_v2","version":2,"requests":[{"name":"set_feedback","args":[{"name":"description","type":"string"},{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"source","args":[{"name":"source","type":"uint","enum":"source"}]},{"name":"angle","args":[{"name":"degrees","type":"fixed"}]},{"name":"stop","args":[]},{"name":"frame","args":[{"name":"time","type":"uint"}]}],"enums":{"source":{"entries":[{"name":"finger","value":1}]}}},{"name":"zwp_tablet_pad_strip_v2","version":2,"requests":[{"name":"set_feedback","args":[{"name":"description","type":"string"},{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"source","args":[{"name":"source","type":"uint","enum":"source"}]},{"name":"position","args":[{"name":"position","type":"uint"}]},{"name":"stop","args":[]},{"name":"frame","args":[{"name":"time","type":"uint"}]}],"enums":{"source":{"entries":[{"name":"finger","value":1}]}}},{"name":"zwp_tablet_pad_group_v2","version":2,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"buttons","args":[{"name":"buttons","type":"array"}]},{"name":"ring","args":[{"name":"ring","type":"new_id","interface":"zwp_tablet_pad_ring_v2"}]},{"name":"strip","args":[{"name":"strip","type":"new_id","interface":"zwp_tablet_pad_strip_v2"}]},{"name":"modes","args":[{"name":"modes","type":"uint"}]},{"name":"done","args":[]},{"name":"mode_switch","args":[{"name":"time","type":"uint"},{"name":"serial","type":"uint"},{"name":"mode","type":"uint"}]},{"name":"dial","since":2,"args":[{"name":"dial","type":"new_id","interface":"zwp_tablet_pad_dial_v2"}]}],"enums":{}},{"name":"zwp_tablet_pad_v2","version":2,"requests":[{"name":"set_feedback","args":[{"name":"button","type":"uint"},{"name":"description","type":"string"},{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"group","args":[{"name":"pad_group","type":"new_id","interface":"zwp_tablet_pad_group_v2"}]},{"name":"path","args":[{"name":"path","type":"string"}]},{"name":"buttons","args":[{"name":"buttons","type":"uint"}]},{"name":"done","args":[]},{"name":"button","args":[{"name":"time","type":"uint"},{"name":"button","type":"uint"},{"name":"state","type":"uint","enum":"button_state"}]},{"name":"enter","args":[{"name":"serial","type":"uint"},{"name":"tablet","type":"object","interface":"zwp_tablet_v2"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"leave","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"removed","args":[]}],"enums":{"button_state":{"entries":[{"name":"released","value":0},{"name":"pressed","value":1}]}}},{"name":"zwp_tablet_pad_dial_v2","version":2,"requests":[{"name":"set_feedback","args":[{"name":"description","type":"string"},{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"delta","args":[{"name":"value120","type":"int"}]},{"name":"frame","args":[{"name":"time","type":"uint"}]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwp_text_input_v3","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"enable","args":[]},{"name":"disable","args":[]},{"name":"set_surrounding_text","args":[{"name":"text","type":"string"},{"name":"cursor","type":"int"},{"name":"anchor","type":"int"}]},{"name":"set_text_change_cause","args":[{"name":"cause","type":"uint","enum":"change_cause"}]},{"name":"set_content_type","args":[{"name":"hint","type":"uint","enum":"content_hint"},{"name":"purpose","type":"uint","enum":"content_purpose"}]},{"name":"set_cursor_rectangle","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"commit","args":[]}],"events":[{"name":"enter","args":[{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"leave","args":[{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"preedit_string","args":[{"name":"text","type":"string","allow-null":"true"},{"name":"cursor_begin","type":"int"},{"name":"cursor_end","type":"int"}]},{"name":"commit_string","args":[{"name":"text","type":"string","allow-null":"true"}]},{"name":"delete_surrounding_text","args":[{"name":"before_length","type":"uint"},{"name":"after_length","type":"uint"}]},{"name":"done","args":[{"name":"serial","type":"uint"}]}],"enums":{"change_cause":{"entries":[{"name":"input_method","value":0},{"name":"other","value":1}]},"content_hint":{"entries":[{"name":"none","value":0},{"name":"completion","value":1},{"name":"spellcheck","value":2},{"name":"auto_capitalization","value":4},{"name":"lowercase","value":8},{"name":"uppercase","value":16},{"name":"titlecase","value":32},{"name":"hidden_text","value":64},{"name":"sensitive_data","value":128},{"name":"latin","value":256},{"name":"multiline","value":512}]},"content_purpose":{"entries":[{"name":"normal","value":0},{"name":"alpha","value":1},{"name":"digits","value":2},{"name":"number","value":3},{"name":"phone","value":4},{"name":"url","value":5},{"name":"email","value":6},{"name":"name","value":7},{"name":"password","value":8},{"name":"pin","value":9},{"name":"date","value":10},{"name":"time","value":11},{"name":"datetime","value":12},{"name":"terminal","value":13}]}}},{"name":"zwp_text_input_manager_v3","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_text_input","args":[{"name":"id","type":"new_id","interface":"zwp_text_input_v3"},{"name":"seat","type":"object","interface":"wl_seat"}]}],"events":[],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"wp_viewporter","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_viewport","args":[{"name":"id","type":"new_id","interface":"wp_viewport"},{"name":"surface","type":"object","interface":"wl_surface"}]}],"events":[],"enums":{"error":{"entries":[{"name":"viewport_exists","value":0}]}}},{"name":"wp_viewport","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_source","args":[{"name":"x","type":"fixed"},{"name":"y","type":"fixed"},{"name":"width","type":"fixed"},{"name":"height","type":"fixed"}]},{"name":"set_destination","args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]}],"events":[],"enums":{"error":{"entries":[{"name":"bad_value","value":0},{"name":"bad_size","value":1},{"name":"out_of_buffer","value":2},{"name":"no_surface","value":3}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"wl_display","version":1,"requests":[{"name":"sync","args":[{"name":"callback","type":"new_id","interface":"wl_callback"}]},{"name":"get_registry","args":[{"name":"registry","type":"new_id","interface":"wl_registry"}]}],"events":[{"name":"error","args":[{"name":"object_id","type":"object"},{"name":"code","type":"uint"},{"name":"message","type":"string"}]},{"name":"delete_id","args":[{"name":"id","type":"uint"}]}],"enums":{"error":{"entries":[{"name":"invalid_object","value":0},{"name":"invalid_method","value":1},{"name":"no_memory","value":2},{"name":"implementation","value":3}]}}},{"name":"wl_registry","version":1,"requests":[{"name":"bind","args":[{"name":"name","type":"uint"},{"name":"id","type":"new_id"}]}],"events":[{"name":"global","args":[{"name":"name","type":"uint"},{"name":"interface","type":"string"},{"name":"version","type":"uint"}]},{"name":"global_remove","args":[{"name":"name","type":"uint"}]}],"enums":{}},{"name":"wl_callback","version":1,"requests":[],"events":[{"name":"done","args":[{"name":"callback_data","type":"uint"}]}],"enums":{}},{"name":"wl_compositor","version":6,"requests":[{"name":"create_surface","args":[{"name":"id","type":"new_id","interface":"wl_surface"}]},{"name":"create_region","args":[{"name":"id","type":"new_id","interface":"wl_region"}]}],"events":[],"enums":{}},{"name":"wl_shm_pool","version":2,"requests":[{"name":"create_buffer","args":[{"name":"id","type":"new_id","interface":"wl_buffer"},{"name":"offset","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"},{"name":"stride","type":"int"},{"name":"format","type":"uint","enum":"wl_shm.format"}]},{"name":"destroy","type":"destructor","args":[]},{"name":"resize","args":[{"name":"size","type":"int"}]}],"events":[],"enums":{}},{"name":"wl_shm","version":2,"requests":[{"name":"create_pool","args":[{"name":"id","type":"new_id","interface":"wl_shm_pool"},{"name":"fd","type":"fd"},{"name":"size","type":"int"}]},{"name":"release","type":"destructor","since":2,"args":[]}],"events":[{"name":"format","args":[{"name":"format","type":"uint","enum":"format"}]}],"enums":{"error":{"entries":[{"name":"invalid_format","value":0},{"name":"invalid_stride","value":1},{"name":"invalid_fd","value":2}]},"format":{"entries":[{"name":"argb8888","value":0},{"name":"xrgb8888","value":1},{"name":"c8","value":538982467},{"name":"rgb332","value":943867730},{"name":"bgr233","value":944916290},{"name":"xrgb4444","value":842093144},{"name":"xbgr4444","value":842089048},{"name":"rgbx4444","value":842094674},{"name":"bgrx4444","value":842094658},{"name":"argb4444","value":842093121},{"name":"abgr4444","value":842089025},{"name":"rgba4444","value":842088786},{"name":"bgra4444","value":842088770},{"name":"xrgb1555","value":892424792},{"name":"xbgr1555","value":892420696},{"name":"rgbx5551","value":892426322},{"name":"bgrx5551","value":892426306},{"name":"argb1555","value":892424769},{"name":"abgr1555","value":892420673},{"name":"rgba5551","value":892420434},{"name":"bgra5551","value":892420418},{"name":"rgb565","value":909199186},{"name":"bgr565","value":909199170},{"name":"rgb888","value":875710290},{"name":"bgr888","value":875710274},{"name":"xbgr8888","value":875709016},{"name":"rgbx8888","value":875714642},{"name":"bgrx8888","value":875714626},{"name":"abgr8888","value":875708993},{"name":"rgba8888","value":875708754},{"name":"bgra8888","value":875708738},{"name":"xrgb2101010","value":808669784},{"name":"xbgr2101010","value":808665688},{"name":"rgbx1010102","value":808671314},{"name":"bgrx1010102","value":808671298},{"name":"argb2101010","value":808669761},{"name":"abgr2101010","value":808665665},{"name":"rgba1010102","value":808665426},{"name":"bgra1010102","value":808665410},{"name":"yuyv","value":1448695129},{"name":"yvyu","value":1431918169},{"name":"uyvy","value":1498831189},{"name":"vyuy","value":1498765654},{"name":"ayuv","value":1448433985},{"name":"nv12","value":842094158},{"name":"nv21","value":825382478},{"name":"nv16","value":909203022},{"name":"nv61","value":825644622},{"name":"yuv410","value":961959257},{"name":"yvu410","value":961893977},{"name":"yuv411","value":825316697},{"name":"yvu411","value":825316953},{"name":"yuv420","value":842093913},{"name":"yvu420","value":842094169},{"name":"yuv422","value":909202777},{"name":"yvu422","value":909203033},{"name":"yuv444","value":875713881},{"name":"yvu444","value":875714137},{"name":"r8","value":538982482},{"name":"r16","value":540422482},{"name":"rg88","value":943212370},{"name":"gr88","value":943215175},{"name":"rg1616","value":842221394},{"name":"gr1616","value":842224199},{"name":"xrgb16161616f","value":1211388504},{"name":"xbgr16161616f","value":1211384408},{"name":"argb16161616f","value":1211388481},{"name":"abgr16161616f","value":1211384385},{"name":"xyuv8888","value":1448434008},{"name":"vuy888","value":875713878},{"name":"vuy101010","value":808670550},{"name":"y210","value":808530521},{"name":"y212","value":842084953},{"name":"y216","value":909193817},{"name":"y410","value":808531033},{"name":"y412","value":842085465},{"name":"y416","value":909194329},{"name":"xvyu2101010","value":808670808},{"name":"xvyu12_16161616","value":909334104},{"name":"xvyu16161616","value":942954072},{"name":"y0l0","value":810299481},{"name":"x0l0","value":810299480},{"name":"y0l2","value":843853913},{"name":"x0l2","value":843853912},{"name":"yuv420_8bit","value":942691673},{"name":"yuv420_10bit","value":808539481},{"name":"xrgb8888_a8","value":943805016},{"name":"xbgr8888_a8","value":943800920},{"name":"rgbx8888_a8","value":943806546},{"name":"bgrx8888_a8","value":943806530},{"name":"rgb888_a8","value":943798354},{"name":"bgr888_a8","value":943798338},{"name":"rgb565_a8","value":943797586},{"name":"bgr565_a8","value":943797570},{"name":"nv24","value":875714126},{"name":"nv42","value":842290766},{"name":"p210","value":808530512},{"name":"p010","value":808530000},{"name":"p012","value":842084432},{"name":"p016","value":909193296},{"name":"axbxgxrx106106106106","value":808534593},{"name":"nv15","value":892425806},{"name":"q410","value":808531025},{"name":"q401","value":825242705},{"name":"xrgb16161616","value":942953048},{"name":"xbgr16161616","value":942948952},{"name":"argb16161616","value":942953025},{"name":"abgr16161616","value":942948929},{"name":"c1","value":538980675},{"name":"c2","value":538980931},{"name":"c4","value":538981443},{"name":"d1","value":538980676},{"name":"d2","value":538980932},{"name":"d4","value":538981444},{"name":"d8","value":538982468},{"name":"r1","value":538980690},{"name":"r2","value":538980946},{"name":"r4","value":538981458},{"name":"r10","value":540029266},{"name":"r12","value":540160338},{"name":"avuy8888","value":1498764865},{"name":"xvuy8888","value":1498764888},{"name":"p030","value":808661072}]}}},{"name":"wl_buffer","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"release","args":[]}],"enums":{}},{"name":"wl_data_offer","version":3,"requests":[{"name":"accept","args":[{"name":"serial","type":"uint"},{"name":"mime_type","type":"string","allow-null":"true"}]},{"name":"receive","args":[{"name":"mime_type","type":"string"},{"name":"fd","type":"fd"}]},{"name":"destroy","type":"destructor","args":[]},{"name":"finish","since":3,"args":[]},{"name":"set_actions","since":3,"args":[{"name":"dnd_actions","type":"uint","enum":"wl_data_device_manager.dnd_action"},{"name":"preferred_action","type":"uint","enum":"wl_data_device_manager.dnd_action"}]}],"events":[{"name":"offer","args":[{"name":"mime_type","type":"string"}]},{"name":"source_actions","since":3,"args":[{"name":"source_actions","type":"uint","enum":"wl_data_device_manager.dnd_action"}]},{"name":"action","since":3,"args":[{"name":"dnd_action","type":"uint","enum":"wl_data_device_manager.dnd_action"}]}],"enums":{"error":{"entries":[{"name":"invalid_finish","value":0},{"name":"invalid_action_mask","value":1},{"name":"invalid_action","value":2},{"name":"invalid_offer","value":3}]}}},{"name":"wl_data_source","version":3,"requests":[{"name":"offer","args":[{"name":"mime_type","type":"string"}]},{"name":"destroy","type":"destructor","args":[]},{"name":"set_actions","since":3,"args":[{"name":"dnd_actions","type":"uint","enum":"wl_data_device_manager.dnd_action"}]}],"events":[{"name":"target","args":[{"name":"mime_type","type":"string","allow-null":"true"}]},{"name":"send","args":[{"name":"mime_type","type":"string"},{"name":"fd","type":"fd"}]},{"name":"cancelled","args":[]},{"name":"dnd_drop_performed","since":3,"args":[]},{"name":"dnd_finished","since":3,"args":[]},{"name":"action","since":3,"args":[{"name":"dnd_action","type":"uint","enum":"wl_data_device_manager.dnd_action"}]}],"enums":{"error":{"entries":[{"name":"invalid_action_mask","value":0},{"name":"invalid_source","value":1}]}}},{"name":"wl_data_device","version":3,"requests":[{"name":"start_drag","args":[{"name":"source","type":"object","interface":"wl_data_source","allow-null":"true"},{"name":"origin","type":"object","interface":"wl_surface"},{"name":"icon","type":"object","interface":"wl_surface","allow-null":"true"},{"name":"serial","type":"uint"}]},{"name":"set_selection","args":[{"name":"source","type":"object","interface":"wl_data_source","allow-null":"true"},{"name":"serial","type":"uint"}]},{"name":"release","type":"destructor","since":2,"args":[]}],"events":[{"name":"data_offer","args":[{"name":"id","type":"new_id","interface":"wl_data_offer"}]},{"name":"enter","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"x","type":"fixed"},{"name":"y","type":"fixed"},{"name":"id","type":"object","interface":"wl_data_offer","allow-null":"true"}]},{"name":"leave","args":[]},{"name":"motion","args":[{"name":"time","type":"uint"},{"name":"x","type":"fixed"},{"name":"y","type":"fixed"}]},{"name":"drop","args":[]},{"name":"selection","args":[{"name":"id","type":"object","interface":"wl_data_offer","allow-null":"true"}]}],"enums":{"error":{"entries":[{"name":"role","value":0},{"name":"used_source","value":1}]}}},{"name":"wl_data_device_manager","version":3,"requests":[{"name":"create_data_source","args":[{"name":"id","type":"new_id","interface":"wl_data_source"}]},{"name":"get_data_device","args":[{"name":"id","type":"new_id","interface":"wl_data_device"},{"name":"seat","type":"object","interface":"wl_seat"}]}],"events":[],"enums":{"dnd_action":{"since":3,"entries":[{"name":"none","value":0},{"name":"copy","value":1},{"name":"move","value":2},{"name":"ask","value":4}]}}},{"name":"wl_shell","version":1,"requests":[{"name":"get_shell_surface","args":[{"name":"id","type":"new_id","interface":"wl_shell_surface"},{"name":"surface","type":"object","interface":"wl_surface"}]}],"events":[],"enums":{"error":{"entries":[{"name":"role","value":0}]}}},{"name":"wl_shell_surface","version":1,"requests":[{"name":"pong","args":[{"name":"serial","type":"uint"}]},{"name":"move","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"}]},{"name":"resize","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"},{"name":"edges","type":"uint","enum":"resize"}]},{"name":"set_toplevel","args":[]},{"name":"set_transient","args":[{"name":"parent","type":"object","interface":"wl_surface"},{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"flags","type":"uint","enum":"transient"}]},{"name":"set_fullscreen","args":[{"name":"method","type":"uint","enum":"fullscreen_method"},{"name":"framerate","type":"uint"},{"name":"output","type":"object","interface":"wl_output","allow-null":"true"}]},{"name":"set_popup","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"},{"name":"parent","type":"object","interface":"wl_surface"},{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"flags","type":"uint","enum":"transient"}]},{"name":"set_maximized","args":[{"name":"output","type":"object","interface":"wl_output","allow-null":"true"}]},{"name":"set_title","args":[{"name":"title","type":"string"}]},{"name":"set_class","args":[{"name":"class_","type":"string"}]}],"events":[{"name":"ping","args":[{"name":"serial","type":"uint"}]},{"name":"configure","args":[{"name":"edges","type":"uint","enum":"resize"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"popup_done","args":[]}],"enums":{"resize":{"entries":[{"name":"none","value":0},{"name":"top","value":1},{"name":"bottom","value":2},{"name":"left","value":4},{"name":"top_left","value":5},{"name":"bottom_left","value":6},{"name":"right","value":8},{"name":"top_right","value":9},{"name":"bottom_right","value":10}]},"transient":{"entries":[{"name":"inactive","value":1}]},"fullscreen_method":{"entries":[{"name":"default","value":0},{"name":"scale","value":1},{"name":"driver","value":2},{"name":"fill","value":3}]}}},{"name":"wl_surface","version":6,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"attach","args":[{"name":"buffer","type":"object","interface":"wl_buffer","allow-null":"true"},{"name":"x","type":"int"},{"name":"y","type":"int"}]},{"name":"damage","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"frame","args":[{"name":"callback","type":"new_id","interface":"wl_callback"}]},{"name":"set_opaque_region","args":[{"name":"region","type":"object","interface":"wl_region","allow-null":"true"}]},{"name":"set_input_region","args":[{"name":"region","type":"object","interface":"wl_region","allow-null":"true"}]},{"name":"commit","args":[]},{"name":"set_buffer_transform","since":2,"args":[{"name":"transform","type":"int","enum":"wl_output.transform"}]},{"name":"set_buffer_scale","since":3,"args":[{"name":"scale","type":"int"}]},{"name":"damage_buffer","since":4,"args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"offset","since":5,"args":[{"name":"x","type":"int"},{"name":"y","type":"int"}]}],"events":[{"name":"enter","args":[{"name":"output","type":"object","interface":"wl_output"}]},{"name":"leave","args":[{"name":"output","type":"object","interface":"wl_output"}]},{"name":"preferred_buffer_scale","since":6,"args":[{"name":"factor","type":"int"}]},{"name":"preferred_buffer_transform","since":6,"args":[{"name":"transform","type":"uint","enum":"wl_output.transform"}]}],"enums":{"error":{"entries":[{"name":"invalid_scale","value":0},{"name":"invalid_transform","value":1},{"name":"invalid_size","value":2},{"name":"invalid_offset","value":3},{"name":"defunct_role_object","value":4}]}}},{"name":"wl_seat","version":9,"requests":[{"name":"get_pointer","args":[{"name":"id","type":"new_id","interface":"wl_pointer"}]},{"name":"get_keyboard","args":[{"name":"id","type":"new_id","interface":"wl_keyboard"}]},{"name":"get_touch","args":[{"name":"id","type":"new_id","interface":"wl_touch"}]},{"name":"release","type":"destructor","since":5,"args":[]}],"events":[{"name":"capabilities","args":[{"name":"capabilities","type":"uint","enum":"capability"}]},{"name":"name","since":2,"args":[{"name":"name","type":"string"}]}],"enums":{"capability":{"entries":[{"name":"pointer","value":1},{"name":"keyboard","value":2},{"name":"touch","value":4}]},"error":{"entries":[{"name":"missing_capability","value":0}]}}},{"name":"wl_pointer","version":9,"requests":[{"name":"set_cursor","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface","allow-null":"true"},{"name":"hotspot_x","type":"int"},{"name":"hotspot_y","type":"int"}]},{"name":"release","type":"destructor","since":3,"args":[]}],"events":[{"name":"enter","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"surface_x","type":"fixed"},{"name":"surface_y","type":"fixed"}]},{"name":"leave","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"motion","args":[{"name":"time","type":"uint"},{"name":"surface_x","type":"fixed"},{"name":"surface_y","type":"fixed"}]},{"name":"button","args":[{"name":"serial","type":"uint"},{"name":"time","type":"uint"},{"name":"button","type":"uint"},{"name":"state","type":"uint","enum":"button_state"}]},{"name":"axis","args":[{"name":"time","type":"uint"},{"name":"axis","type":"uint","enum":"axis"},{"name":"value","type":"fixed"}]},{"name":"frame","since":5,"args":[]},{"name":"axis_source","since":5,"args":[{"name":"axis_source","type":"uint","enum":"axis_source"}]},{"name":"axis_stop","since":5,"args":[{"name":"time","type":"uint"},{"name":"axis","type":"uint","enum":"axis"}]},{"name":"axis_discrete","since":5,"args":[{"name":"axis","type":"uint","enum":"axis"},{"name":"discrete","type":"int"}]},{"name":"axis_value120","since":8,"args":[{"name":"axis","type":"uint","enum":"axis"},{"name":"value120","type":"int"}]},{"name":"axis_relative_direction","since":9,"args":[{"name":"axis","type":"uint","enum":"axis"},{"name":"direction","type":"uint","enum":"axis_relative_direction"}]}],"enums":{"error":{"entries":[{"name":"role","value":0}]},"button_state":{"entries":[{"name":"released","value":0},{"name":"pressed","value":1}]},"axis":{"entries":[{"name":"vertical_scroll","value":0},{"name":"horizontal_scroll","value":1}]},"axis_source":{"entries":[{"name":"wheel","value":0},{"name":"finger","value":1},{"name":"continuous","value":2},{"name":"wheel_tilt","value":3}]},"axis_relative_direction":{"entries":[{"name":"identical","value":0},{"name":"inverted","value":1}]}}},{"name":"wl_keyboard","version":9,"requests":[{"name":"release","type":"destructor","since":3,"args":[]}],"events":[{"name":"keymap","args":[{"name":"format","type":"uint","enum":"keymap_format"},{"name":"fd","type":"fd"},{"name":"size","type":"uint"}]},{"name":"enter","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"keys","type":"array"}]},{"name":"leave","args":[{"name":"serial","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"key","args":[{"name":"serial","type":"uint"},{"name":"time","type":"uint"},{"name":"key","type":"uint"},{"name":"state","type":"uint","enum":"key_state"}]},{"name":"modifiers","args":[{"name":"serial","type":"uint"},{"name":"mods_depressed","type":"uint"},{"name":"mods_latched","type":"uint"},{"name":"mods_locked","type":"uint"},{"name":"group","type":"uint"}]},{"name":"repeat_info","since":4,"args":[{"name":"rate","type":"int"},{"name":"delay","type":"int"}]}],"enums":{"keymap_format":{"entries":[{"name":"no_keymap","value":0},{"name":"xkb_v1","value":1}]},"key_state":{"entries":[{"name":"released","value":0},{"name":"pressed","value":1}]}}},{"name":"wl_touch","version":9,"requests":[{"name":"release","type":"destructor","since":3,"args":[]}],"events":[{"name":"down","args":[{"name":"serial","type":"uint"},{"name":"time","type":"uint"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"id","type":"int"},{"name":"x","type":"fixed"},{"name":"y","type":"fixed"}]},{"name":"up","args":[{"name":"serial","type":"uint"},{"name":"time","type":"uint"},{"name":"id","type":"int"}]},{"name":"motion","args":[{"name":"time","type":"uint"},{"name":"id","type":"int"},{"name":"x","type":"fixed"},{"name":"y","type":"fixed"}]},{"name":"frame","args":[]},{"name":"cancel","args":[]},{"name":"shape","since":6,"args":[{"name":"id","type":"int"},{"name":"major","type":"fixed"},{"name":"minor","type":"fixed"}]},{"name":"orientation","since":6,"args":[{"name":"id","type":"int"},{"name":"orientation","type":"fixed"}]}],"enums":{}},{"name":"wl_output","version":4,"requests":[{"name":"release","type":"destructor","since":3,"args":[]}],"events":[{"name":"geometry","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"physical_width","type":"int"},{"name":"physical_height","type":"int"},{"name":"subpixel","type":"int","enum":"subpixel"},{"name":"make","type":"string"},{"name":"model","type":"string"},{"name":"transform","type":"int","enum":"transform"}]},{"name":"mode","args":[{"name":"flags","type":"uint","enum":"mode"},{"name":"width","type":"int"},{"name":"height","type":"int"},{"name":"refresh","type":"int"}]},{"name":"done","since":2,"args":[]},{"name":"scale","since":2,"args":[{"name":"factor","type":"int"}]},{"name":"name","since":4,"args":[{"name":"name","type":"string"}]},{"name":"description","since":4,"args":[{"name":"description","type":"string"}]}],"enums":{"subpixel":{"entries":[{"name":"unknown","value":0},{"name":"none","value":1},{"name":"horizontal_rgb","value":2},{"name":"horizontal_bgr","value":3},{"name":"vertical_rgb","value":4},{"name":"vertical_bgr","value":5}]},"transform":{"entries":[{"name":"normal","value":0},{"name":"90","value":1},{"name":"180","value":2},{"name":"270","value":3},{"name":"flipped","value":4},{"name":"flipped_90","value":5},{"name":"flipped_180","value":6},{"name":"flipped_270","value":7}]},"mode":{"entries":[{"name":"current","value":1},{"name":"preferred","value":2}]}}},{"name":"wl_region","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"add","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"subtract","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]}],"events":[],"enums":{}},{"name":"wl_subcompositor","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_subsurface","args":[{"name":"id","type":"new_id","interface":"wl_subsurface"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"parent","type":"object","interface":"wl_surface"}]}],"events":[],"enums":{"error":{"entries":[{"name":"bad_surface","value":0},{"name":"bad_parent","value":1}]}}},{"name":"wl_subsurface","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_position","args":[{"name":"x","type":"int"},{"name":"y","type":"int"}]},{"name":"place_above","args":[{"name":"sibling","type":"object","interface":"wl_surface"}]},{"name":"place_below","args":[{"name":"sibling","type":"object","interface":"wl_surface"}]},{"name":"set_sync","args":[]},{"name":"set_desync","args":[]}],"events":[],"enums":{"error":{"entries":[{"name":"bad_surface","value":0}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwlr_layer_shell_v1","version":5,"requests":[{"name":"get_layer_surface","args":[{"name":"id","type":"new_id","interface":"zwlr_layer_surface_v1"},{"name":"surface","type":"object","interface":"wl_surface"},{"name":"output","type":"object","interface":"wl_output","allow-null":"true"},{"name":"layer","type":"uint","enum":"layer"},{"name":"namespace","type":"string"}]},{"name":"destroy","type":"destructor","since":3,"args":[]}],"events":[],"enums":{"error":{"entries":[{"name":"role","value":0},{"name":"invalid_layer","value":1},{"name":"already_constructed","value":2}]},"layer":{"entries":[{"name":"background","value":0},{"name":"bottom","value":1},{"name":"top","value":2},{"name":"overlay","value":3}]}}},{"name":"zwlr_layer_surface_v1","version":5,"requests":[{"name":"set_size","args":[{"name":"width","type":"uint"},{"name":"height","type":"uint"}]},{"name":"set_anchor","args":[{"name":"anchor","type":"uint","enum":"anchor"}]},{"name":"set_exclusive_zone","args":[{"name":"zone","type":"int"}]},{"name":"set_margin","args":[{"name":"top","type":"int"},{"name":"right","type":"int"},{"name":"bottom","type":"int"},{"name":"left","type":"int"}]},{"name":"set_keyboard_interactivity","args":[{"name":"keyboard_interactivity","type":"uint","enum":"keyboard_interactivity"}]},{"name":"get_popup","args":[{"name":"popup","type":"object","interface":"xdg_popup"}]},{"name":"ack_configure","args":[{"name":"serial","type":"uint"}]},{"name":"destroy","type":"destructor","args":[]},{"name":"set_layer","since":2,"args":[{"name":"layer","type":"uint","enum":"zwlr_layer_shell_v1.layer"}]},{"name":"set_exclusive_edge","since":5,"args":[{"name":"edge","type":"uint","enum":"anchor"}]}],"events":[{"name":"configure","args":[{"name":"serial","type":"uint"},{"name":"width","type":"uint"},{"name":"height","type":"uint"}]},{"name":"closed","args":[]}],"enums":{"keyboard_interactivity":{"entries":[{"name":"none","value":0},{"name":"exclusive","value":1},{"name":"on_demand","value":2}]},"error":{"entries":[{"name":"invalid_surface_state","value":0},{"name":"invalid_size","value":1},{"name":"invalid_anchor","value":2},{"name":"invalid_keyboard_interactivity","value":3},{"name":"invalid_exclusive_edge","value":4}]},"anchor":{"entries":[{"name":"top","value":1},{"name":"bottom","value":2},{"name":"left","value":4},{"name":"right","value":8}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zwlr_screencopy_manager_v1","version":3,"requests":[{"name":"capture_output","args":[{"name":"frame","type":"new_id","interface":"zwlr_screencopy_frame_v1"},{"name":"overlay_cursor","type":"int"},{"name":"output","type":"object","interface":"wl_output"}]},{"name":"capture_output_region","args":[{"name":"frame","type":"new_id","interface":"zwlr_screencopy_frame_v1"},{"name":"overlay_cursor","type":"int"},{"name":"output","type":"object","interface":"wl_output"},{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"destroy","type":"destructor","args":[]}],"events":[],"enums":{}},{"name":"zwlr_screencopy_frame_v1","version":3,"requests":[{"name":"copy","args":[{"name":"buffer","type":"object","interface":"wl_buffer"}]},{"name":"destroy","type":"destructor","args":[]},{"name":"copy_with_damage","since":2,"args":[{"name":"buffer","type":"object","interface":"wl_buffer"}]}],"events":[{"name":"buffer","args":[{"name":"format","type":"uint","enum":"wl_shm.format"},{"name":"width","type":"uint"},{"name":"height","type":"uint"},{"name":"stride","type":"uint"}]},{"name":"flags","args":[{"name":"flags","type":"uint","enum":"flags"}]},{"name":"ready","args":[{"name":"tv_sec_hi","type":"uint"},{"name":"tv_sec_lo","type":"uint"},{"name":"tv_nsec","type":"uint"}]},{"name":"failed","args":[]},{"name":"damage","since":2,"args":[{"name":"x","type":"uint"},{"name":"y","type":"uint"},{"name":"width","type":"uint"},{"name":"height","type":"uint"}]},{"name":"linux_dmabuf","since":3,"args":[{"name":"format","type":"uint"},{"name":"width","type":"uint"},{"name":"height","type":"uint"}]},{"name":"buffer_done","since":3,"args":[]}],"enums":{"error":{"entries":[{"name":"already_used","value":0},{"name":"invalid_buffer","value":1}]},"flags":{"entries":[{"name":"y_invert","value":1}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"xdg_activation_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_activation_token","args":[{"name":"id","type":"new_id","interface":"xdg_activation_token_v1"}]},{"name":"activate","args":[{"name":"token","type":"string"},{"name":"surface","type":"object","interface":"wl_surface"}]}],"events":[],"enums":{}},{"name":"xdg_activation_token_v1","version":1,"requests":[{"name":"set_serial","args":[{"name":"serial","type":"uint"},{"name":"seat","type":"object","interface":"wl_seat"}]},{"name":"set_app_id","args":[{"name":"app_id","type":"string"}]},{"name":"set_surface","args":[{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"commit","args":[]},{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"done","args":[{"name":"token","type":"string"}]}],"enums":{"error":{"entries":[{"name":"already_used","value":0}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zxdg_decoration_manager_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_toplevel_decoration","args":[{"name":"id","type":"new_id","interface":"zxdg_toplevel_decoration_v1"},{"name":"toplevel","type":"object","interface":"xdg_toplevel"}]}],"events":[],"enums":{}},{"name":"zxdg_toplevel_decoration_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_mode","args":[{"name":"mode","type":"uint","enum":"mode"}]},{"name":"unset_mode","args":[]}],"events":[{"name":"configure","args":[{"name":"mode","type":"uint","enum":"mode"}]}],"enums":{"error":{"entries":[{"name":"unconfigured_buffer","value":0},{"name":"already_constructed","value":1},{"name":"orphaned","value":2},{"name":"invalid_mode","value":3}]},"mode":{"entries":[{"name":"client_side","value":1},{"name":"server_side","value":2}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"zxdg_output_manager_v1","version":3,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_xdg_output","args":[{"name":"id","type":"new_id","interface":"zxdg_output_v1"},{"name":"output","type":"object","interface":"wl_output"}]}],"events":[],"enums":{}},{"name":"zxdg_output_v1","version":3,"requests":[{"name":"destroy","type":"destructor","args":[]}],"events":[{"name":"logical_position","args":[{"name":"x","type":"int"},{"name":"y","type":"int"}]},{"name":"logical_size","args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"done","args":[]},{"name":"name","since":2,"args":[{"name":"name","type":"string"}]},{"name":"description","since":2,"args":[{"name":"description","type":"string"}]}],"enums":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"xdg_wm_base","version":7,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"create_positioner","args":[{"name":"id","type":"new_id","interface":"xdg_positioner"}]},{"name":"get_xdg_surface","args":[{"name":"id","type":"new_id","interface":"xdg_surface"},{"name":"surface","type":"object","interface":"wl_surface"}]},{"name":"pong","args":[{"name":"serial","type":"uint"}]}],"events":[{"name":"ping","args":[{"name":"serial","type":"uint"}]}],"enums":{"error":{"entries":[{"name":"role","value":0},{"name":"defunct_surfaces","value":1},{"name":"not_the_topmost_popup","value":2},{"name":"invalid_popup_parent","value":3},{"name":"invalid_surface_state","value":4},{"name":"invalid_positioner","value":5},{"name":"unresponsive","value":6}]}}},{"name":"xdg_positioner","version":7,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_size","args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"set_anchor_rect","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"set_anchor","args":[{"name":"anchor","type":"uint","enum":"anchor"}]},{"name":"set_gravity","args":[{"name":"gravity","type":"uint","enum":"gravity"}]},{"name":"set_constraint_adjustment","args":[{"name":"constraint_adjustment","type":"uint","enum":"constraint_adjustment"}]},{"name":"set_offset","args":[{"name":"x","type":"int"},{"name":"y","type":"int"}]},{"name":"set_reactive","since":3,"args":[]},{"name":"set_parent_size","since":3,"args":[{"name":"parent_width","type":"int"},{"name":"parent_height","type":"int"}]},{"name":"set_parent_configure","since":3,"args":[{"name":"serial","type":"uint"}]}],"events":[],"enums":{"error":{"entries":[{"name":"invalid_input","value":0}]},"anchor":{"entries":[{"name":"none","value":0},{"name":"top","value":1},{"name":"bottom","value":2},{"name":"left","value":3},{"name":"right","value":4},{"name":"top_left","value":5},{"name":"bottom_left","value":6},{"name":"top_right","value":7},{"name":"bottom_right","value":8}]},"gravity":{"entries":[{"name":"none","value":0},{"name":"top","value":1},{"name":"bottom","value":2},{"name":"left","value":3},{"name":"right","value":4},{"name":"top_left","value":5},{"name":"bottom_left","value":6},{"name":"top_right","value":7},{"name":"bottom_right","value":8}]},"constraint_adjustment":{"entries":[{"name":"none","value":0},{"name":"slide_x","value":1},{"name":"slide_y","value":2},{"name":"flip_x","value":4},{"name":"flip_y","value":8},{"name":"resize_x","value":16},{"name":"resize_y","value":32}]}}},{"name":"xdg_surface","version":7,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"get_toplevel","args":[{"name":"id","type":"new_id","interface":"xdg_toplevel"}]},{"name":"get_popup","args":[{"name":"id","type":"new_id","interface":"xdg_popup"},{"name":"parent","type":"object","interface":"xdg_surface","allow-null":"true"},{"name":"positioner","type":"object","interface":"xdg_positioner"}]},{"name":"set_window_geometry","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"ack_configure","args":[{"name":"serial","type":"uint"}]}],"events":[{"name":"configure","args":[{"name":"serial","type":"uint"}]}],"enums":{"error":{"entries":[{"name":"not_constructed","value":1},{"name":"already_constructed","value":2},{"name":"unconfigured_buffer","value":3},{"name":"invalid_serial","value":4},{"name":"invalid_size","value":5},{"name":"defunct_role_object","value":6}]}}},{"name":"xdg_toplevel","version":7,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_parent","args":[{"name":"parent","type":"object","interface":"xdg_toplevel","allow-null":"true"}]},{"name":"set_title","args":[{"name":"title","type":"string"}]},{"name":"set_app_id","args":[{"name":"app_id","type":"string"}]},{"name":"show_window_menu","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"},{"name":"x","type":"int"},{"name":"y","type":"int"}]},{"name":"move","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"}]},{"name":"resize","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"},{"name":"edges","type":"uint","enum":"resize_edge"}]},{"name":"set_max_size","args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"set_min_size","args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"set_maximized","args":[]},{"name":"unset_maximized","args":[]},{"name":"set_fullscreen","args":[{"name":"output","type":"object","interface":"wl_output","allow-null":"true"}]},{"name":"unset_fullscreen","args":[]},{"name":"set_minimized","args":[]}],"events":[{"name":"configure","args":[{"name":"width","type":"int"},{"name":"height","type":"int"},{"name":"states","type":"array"}]},{"name":"close","args":[]},{"name":"configure_bounds","since":4,"args":[{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"wm_capabilities","since":5,"args":[{"name":"capabilities","type":"array"}]}],"enums":{"error":{"entries":[{"name":"invalid_resize_edge","value":0},{"name":"invalid_parent","value":1},{"name":"invalid_size","value":2}]},"resize_edge":{"entries":[{"name":"none","value":0},{"name":"top","value":1},{"name":"bottom","value":2},{"name":"left","value":4},{"name":"top_left","value":5},{"name":"bottom_left","value":6},{"name":"right","value":8},{"name":"top_right","value":9},{"name":"bottom_right","value":10}]},"state":{"entries":[{"name":"maximized","value":1},{"name":"fullscreen","value":2},{"name":"resizing","value":3},{"name":"activated","value":4},{"name":"tiled_left","value":5},{"name":"tiled_right","value":6},{"name":"tiled_top","value":7},{"name":"tiled_bottom","value":8},{"name":"suspended","value":9},{"name":"constrained_left","value":10},{"name":"constrained_right","value":11},{"name":"constrained_top","value":12},{"name":"constrained_bottom","value":13}]},"wm_capabilities":{"since":5,"entries":[{"name":"window_menu","value":1},{"name":"maximize","value":2},{"name":"fullscreen","value":3},{"name":"minimize","value":4}]}}},{"name":"xdg_popup","version":7,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"grab","args":[{"name":"seat","type":"object","interface":"wl_seat"},{"name":"serial","type":"uint"}]},{"name":"reposition","since":3,"args":[{"name":"positioner","type":"object","interface":"xdg_positioner"},{"name":"token","type":"uint"}]}],"events":[{"name":"configure","args":[{"name":"x","type":"int"},{"name":"y","type":"int"},{"name":"width","type":"int"},{"name":"height","type":"int"}]},{"name":"popup_done","args":[]},{"name":"repositioned","since":3,"args":[{"name":"token","type":"uint"}]}],"enums":{"error":{"entries":[{"name":"invalid_grab","value":0}]}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"xdg_toplevel_icon_manager_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"create_icon","args":[{"name":"id","type":"new_id","interface":"xdg_toplevel_icon_v1"}]},{"name":"set_icon","args":[{"name":"toplevel","type":"object","interface":"xdg_toplevel"},{"name":"icon","type":"object","interface":"xdg_toplevel_icon_v1","allow-null":"true"}]}],"events":[{"name":"icon_size","args":[{"name":"size","type":"int"}]},{"name":"done","args":[]}],"enums":{}},{"name":"xdg_toplevel_icon_v1","version":1,"requests":[{"name":"destroy","type":"destructor","args":[]},{"name":"set_name","args":[{"name":"icon_name","type":"string"}]},{"name":"add_buffer","args":[{"name":"buffer","type":"object","interface":"wl_buffer"},{"name":"scale","type":"int"}]}],"events":[],"enums":{"error":{"entries":[{"name":"invalid_buffer","value":1},{"name":"immutable","value":2},{"name":"no_buffer","value":3}]}}}]
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Reading a frame back off the GPU, as a PNG.
|
|
2
|
+
//
|
|
3
|
+
// This exists for testing, and it is the Wayland side of a property the RFC
|
|
4
|
+
// singles out: on X11 a pixel assertion is a `GetImage` round trip to the
|
|
5
|
+
// server, and here every committed buffer is just memory. `glReadPixels`
|
|
6
|
+
// against the frame that is about to be handed over answers "what did we
|
|
7
|
+
// actually draw" with no compositor, no display and no screenshot portal in
|
|
8
|
+
// the way — which is the only way to check rendering on a machine whose
|
|
9
|
+
// compositor will not serve `wlr-screencopy`, and the right way regardless,
|
|
10
|
+
// because it isolates the renderer from everything downstream of it.
|
|
11
|
+
//
|
|
12
|
+
// The PNG encoder is here rather than as a dependency because it is forty
|
|
13
|
+
// lines and a test helper should not add a package to the tree.
|
|
14
|
+
|
|
15
|
+
import zlib from 'node:zlib';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Read the current framebuffer as straight (un-premultiplied) RGBA.
|
|
19
|
+
*
|
|
20
|
+
* @returns {{width:number, height:number, data:Uint8Array}} top-row-first,
|
|
21
|
+
* which is the opposite of what GL hands back.
|
|
22
|
+
*/
|
|
23
|
+
export function readFramebuffer(gl, width, height) {
|
|
24
|
+
const raw = new Uint8Array(width * height * 4);
|
|
25
|
+
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, raw);
|
|
26
|
+
// GL's origin is bottom-left; flip into image order.
|
|
27
|
+
const data = new Uint8Array(raw.length);
|
|
28
|
+
const rowBytes = width * 4;
|
|
29
|
+
for (let y = 0; y < height; y++) {
|
|
30
|
+
const src = (height - 1 - y) * rowBytes;
|
|
31
|
+
data.set(raw.subarray(src, src + rowBytes), y * rowBytes);
|
|
32
|
+
}
|
|
33
|
+
// The renderer composites premultiplied; undo it so the PNG looks right in
|
|
34
|
+
// a viewer, which expects straight alpha.
|
|
35
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
36
|
+
const a = data[i + 3];
|
|
37
|
+
if (a === 0 || a === 255) continue;
|
|
38
|
+
data[i] = Math.min(255, Math.round((data[i] * 255) / a));
|
|
39
|
+
data[i + 1] = Math.min(255, Math.round((data[i + 1] * 255) / a));
|
|
40
|
+
data[i + 2] = Math.min(255, Math.round((data[i + 2] * 255) / a));
|
|
41
|
+
}
|
|
42
|
+
return { width, height, data };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const CRC_TABLE = (() => {
|
|
46
|
+
const t = new Int32Array(256);
|
|
47
|
+
for (let n = 0; n < 256; n++) {
|
|
48
|
+
let c = n;
|
|
49
|
+
for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
50
|
+
t[n] = c;
|
|
51
|
+
}
|
|
52
|
+
return t;
|
|
53
|
+
})();
|
|
54
|
+
|
|
55
|
+
function crc32(buf) {
|
|
56
|
+
let c = -1;
|
|
57
|
+
for (let i = 0; i < buf.length; i++)
|
|
58
|
+
c = CRC_TABLE[(c ^ buf[i]) & 0xff] ^ (c >>> 8);
|
|
59
|
+
return (c ^ -1) >>> 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function chunk(type, body) {
|
|
63
|
+
const len = Buffer.alloc(4);
|
|
64
|
+
len.writeUInt32BE(body.length);
|
|
65
|
+
const td = Buffer.concat([Buffer.from(type, 'ascii'), body]);
|
|
66
|
+
const crc = Buffer.alloc(4);
|
|
67
|
+
crc.writeUInt32BE(crc32(td));
|
|
68
|
+
return Buffer.concat([len, td, crc]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Encode straight RGBA as a PNG. */
|
|
72
|
+
export function encodePNG({ width, height, data }) {
|
|
73
|
+
const ihdr = Buffer.alloc(13);
|
|
74
|
+
ihdr.writeUInt32BE(width, 0);
|
|
75
|
+
ihdr.writeUInt32BE(height, 4);
|
|
76
|
+
ihdr[8] = 8; // bit depth
|
|
77
|
+
ihdr[9] = 6; // RGBA
|
|
78
|
+
const rowBytes = width * 4;
|
|
79
|
+
// One filter byte (0 = None) in front of each scanline.
|
|
80
|
+
const raw = Buffer.alloc((rowBytes + 1) * height);
|
|
81
|
+
for (let y = 0; y < height; y++) {
|
|
82
|
+
raw[y * (rowBytes + 1)] = 0;
|
|
83
|
+
raw.set(
|
|
84
|
+
data.subarray(y * rowBytes, (y + 1) * rowBytes),
|
|
85
|
+
y * (rowBytes + 1) + 1,
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
return Buffer.concat([
|
|
89
|
+
Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]),
|
|
90
|
+
chunk('IHDR', ihdr),
|
|
91
|
+
chunk('IDAT', zlib.deflateSync(raw, { level: 6 })),
|
|
92
|
+
chunk('IEND', Buffer.alloc(0)),
|
|
93
|
+
]);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** Read the framebuffer and encode it in one step. */
|
|
97
|
+
export function snapshotPNG(gl, width, height) {
|
|
98
|
+
return encodePNG(readFramebuffer(gl, width, height));
|
|
99
|
+
}
|