235 lines
6.7 KiB
Python
235 lines
6.7 KiB
Python
|
# This file has been autogenerated by the pywayland scanner
|
||
|
|
||
|
# Copyright © 2008-2011 Kristian Høgsberg
|
||
|
# Copyright © 2010-2011 Intel Corporation
|
||
|
# Copyright © 2012-2013 Collabora, Ltd.
|
||
|
#
|
||
|
# Permission is hereby granted, free of charge, to any person
|
||
|
# obtaining a copy of this software and associated documentation files
|
||
|
# (the "Software"), to deal in the Software without restriction,
|
||
|
# including without limitation the rights to use, copy, modify, merge,
|
||
|
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||
|
# and to permit persons to whom the Software is furnished to do so,
|
||
|
# subject to the following conditions:
|
||
|
#
|
||
|
# The above copyright notice and this permission notice (including the
|
||
|
# next paragraph) shall be included in all copies or substantial
|
||
|
# portions of the Software.
|
||
|
#
|
||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
|
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||
|
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||
|
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||
|
# SOFTWARE.
|
||
|
|
||
|
from __future__ import annotations
|
||
|
|
||
|
import enum
|
||
|
|
||
|
from pywayland.protocol_core import (
|
||
|
Argument,
|
||
|
ArgumentType,
|
||
|
Global,
|
||
|
Interface,
|
||
|
Proxy,
|
||
|
Resource,
|
||
|
)
|
||
|
from .wl_shm_pool import WlShmPool
|
||
|
|
||
|
|
||
|
class WlShm(Interface):
|
||
|
"""Shared memory support
|
||
|
|
||
|
A singleton global object that provides support for shared memory.
|
||
|
|
||
|
Clients can create :class:`~pywayland.protocol.wayland.WlShmPool` objects
|
||
|
using the create_pool request.
|
||
|
|
||
|
On binding the :class:`WlShm` object one or more format events are emitted
|
||
|
to inform clients about the valid pixel formats that can be used for
|
||
|
buffers.
|
||
|
"""
|
||
|
|
||
|
name = "wl_shm"
|
||
|
version = 1
|
||
|
|
||
|
class error(enum.IntEnum):
|
||
|
invalid_format = 0
|
||
|
invalid_stride = 1
|
||
|
invalid_fd = 2
|
||
|
|
||
|
class format(enum.IntEnum):
|
||
|
argb8888 = 0
|
||
|
xrgb8888 = 1
|
||
|
c8 = 0x20203843
|
||
|
rgb332 = 0x38424752
|
||
|
bgr233 = 0x38524742
|
||
|
xrgb4444 = 0x32315258
|
||
|
xbgr4444 = 0x32314258
|
||
|
rgbx4444 = 0x32315852
|
||
|
bgrx4444 = 0x32315842
|
||
|
argb4444 = 0x32315241
|
||
|
abgr4444 = 0x32314241
|
||
|
rgba4444 = 0x32314152
|
||
|
bgra4444 = 0x32314142
|
||
|
xrgb1555 = 0x35315258
|
||
|
xbgr1555 = 0x35314258
|
||
|
rgbx5551 = 0x35315852
|
||
|
bgrx5551 = 0x35315842
|
||
|
argb1555 = 0x35315241
|
||
|
abgr1555 = 0x35314241
|
||
|
rgba5551 = 0x35314152
|
||
|
bgra5551 = 0x35314142
|
||
|
rgb565 = 0x36314752
|
||
|
bgr565 = 0x36314742
|
||
|
rgb888 = 0x34324752
|
||
|
bgr888 = 0x34324742
|
||
|
xbgr8888 = 0x34324258
|
||
|
rgbx8888 = 0x34325852
|
||
|
bgrx8888 = 0x34325842
|
||
|
abgr8888 = 0x34324241
|
||
|
rgba8888 = 0x34324152
|
||
|
bgra8888 = 0x34324142
|
||
|
xrgb2101010 = 0x30335258
|
||
|
xbgr2101010 = 0x30334258
|
||
|
rgbx1010102 = 0x30335852
|
||
|
bgrx1010102 = 0x30335842
|
||
|
argb2101010 = 0x30335241
|
||
|
abgr2101010 = 0x30334241
|
||
|
rgba1010102 = 0x30334152
|
||
|
bgra1010102 = 0x30334142
|
||
|
yuyv = 0x56595559
|
||
|
yvyu = 0x55595659
|
||
|
uyvy = 0x59565955
|
||
|
vyuy = 0x59555956
|
||
|
ayuv = 0x56555941
|
||
|
nv12 = 0x3231564E
|
||
|
nv21 = 0x3132564E
|
||
|
nv16 = 0x3631564E
|
||
|
nv61 = 0x3136564E
|
||
|
yuv410 = 0x39565559
|
||
|
yvu410 = 0x39555659
|
||
|
yuv411 = 0x31315559
|
||
|
yvu411 = 0x31315659
|
||
|
yuv420 = 0x32315559
|
||
|
yvu420 = 0x32315659
|
||
|
yuv422 = 0x36315559
|
||
|
yvu422 = 0x36315659
|
||
|
yuv444 = 0x34325559
|
||
|
yvu444 = 0x34325659
|
||
|
r8 = 0x20203852
|
||
|
r16 = 0x20363152
|
||
|
rg88 = 0x38384752
|
||
|
gr88 = 0x38385247
|
||
|
rg1616 = 0x32334752
|
||
|
gr1616 = 0x32335247
|
||
|
xrgb16161616f = 0x48345258
|
||
|
xbgr16161616f = 0x48344258
|
||
|
argb16161616f = 0x48345241
|
||
|
abgr16161616f = 0x48344241
|
||
|
xyuv8888 = 0x56555958
|
||
|
vuy888 = 0x34325556
|
||
|
vuy101010 = 0x30335556
|
||
|
y210 = 0x30313259
|
||
|
y212 = 0x32313259
|
||
|
y216 = 0x36313259
|
||
|
y410 = 0x30313459
|
||
|
y412 = 0x32313459
|
||
|
y416 = 0x36313459
|
||
|
xvyu2101010 = 0x30335658
|
||
|
xvyu12_16161616 = 0x36335658
|
||
|
xvyu16161616 = 0x38345658
|
||
|
y0l0 = 0x304C3059
|
||
|
x0l0 = 0x304C3058
|
||
|
y0l2 = 0x324C3059
|
||
|
x0l2 = 0x324C3058
|
||
|
yuv420_8bit = 0x38305559
|
||
|
yuv420_10bit = 0x30315559
|
||
|
xrgb8888_a8 = 0x38415258
|
||
|
xbgr8888_a8 = 0x38414258
|
||
|
rgbx8888_a8 = 0x38415852
|
||
|
bgrx8888_a8 = 0x38415842
|
||
|
rgb888_a8 = 0x38413852
|
||
|
bgr888_a8 = 0x38413842
|
||
|
rgb565_a8 = 0x38413552
|
||
|
bgr565_a8 = 0x38413542
|
||
|
nv24 = 0x3432564E
|
||
|
nv42 = 0x3234564E
|
||
|
p210 = 0x30313250
|
||
|
p010 = 0x30313050
|
||
|
p012 = 0x32313050
|
||
|
p016 = 0x36313050
|
||
|
axbxgxrx106106106106 = 0x30314241
|
||
|
nv15 = 0x3531564E
|
||
|
q410 = 0x30313451
|
||
|
q401 = 0x31303451
|
||
|
xrgb16161616 = 0x38345258
|
||
|
xbgr16161616 = 0x38344258
|
||
|
argb16161616 = 0x38345241
|
||
|
abgr16161616 = 0x38344241
|
||
|
|
||
|
|
||
|
class WlShmProxy(Proxy[WlShm]):
|
||
|
interface = WlShm
|
||
|
|
||
|
@WlShm.request(
|
||
|
Argument(ArgumentType.NewId, interface=WlShmPool),
|
||
|
Argument(ArgumentType.FileDescriptor),
|
||
|
Argument(ArgumentType.Int),
|
||
|
)
|
||
|
def create_pool(self, fd: int, size: int) -> Proxy[WlShmPool]:
|
||
|
"""Create a shm pool
|
||
|
|
||
|
Create a new :class:`~pywayland.protocol.wayland.WlShmPool` object.
|
||
|
|
||
|
The pool can be used to create shared memory based buffer objects. The
|
||
|
server will mmap size bytes of the passed file descriptor, to use as
|
||
|
backing memory for the pool.
|
||
|
|
||
|
:param fd:
|
||
|
file descriptor for the pool
|
||
|
:type fd:
|
||
|
`ArgumentType.FileDescriptor`
|
||
|
:param size:
|
||
|
pool size, in bytes
|
||
|
:type size:
|
||
|
`ArgumentType.Int`
|
||
|
:returns:
|
||
|
:class:`~pywayland.protocol.wayland.WlShmPool` -- pool to create
|
||
|
"""
|
||
|
id = self._marshal_constructor(0, WlShmPool, fd, size)
|
||
|
return id
|
||
|
|
||
|
|
||
|
class WlShmResource(Resource):
|
||
|
interface = WlShm
|
||
|
|
||
|
@WlShm.event(
|
||
|
Argument(ArgumentType.Uint),
|
||
|
)
|
||
|
def format(self, format: int) -> None:
|
||
|
"""Pixel format description
|
||
|
|
||
|
Informs the client about a valid pixel format that can be used for
|
||
|
buffers. Known formats include argb8888 and xrgb8888.
|
||
|
|
||
|
:param format:
|
||
|
buffer pixel format
|
||
|
:type format:
|
||
|
`ArgumentType.Uint`
|
||
|
"""
|
||
|
self._post_event(0, format)
|
||
|
|
||
|
|
||
|
class WlShmGlobal(Global):
|
||
|
interface = WlShm
|
||
|
|
||
|
|
||
|
WlShm._gen_c()
|
||
|
WlShm.proxy_class = WlShmProxy
|
||
|
WlShm.resource_class = WlShmResource
|
||
|
WlShm.global_class = WlShmGlobal
|