mirror of
https://github.com/Frogging-Family/nvidia-all
synced 2024-10-30 15:20:10 +00:00
162 lines
8.0 KiB
XML
162 lines
8.0 KiB
XML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<protocol name="stream">
|
||
|
|
||
|
<copyright>
|
||
|
Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved.
|
||
|
|
||
|
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 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.
|
||
|
</copyright>
|
||
|
|
||
|
<!-- wl_eglstream stub interface. Currently, this isn't actually used. Enums
|
||
|
must belong to an interface, and the name of it is prepended to the enum
|
||
|
values. This interface lets us define WL_EGLSTREAM_ERROR_*,
|
||
|
WL_EGLSTREAM_ATTRIB_* and WL_EGLSTREAM_HANDLE_TYPE_* enums -->
|
||
|
<interface name="wl_eglstream" version="1">
|
||
|
<enum name="error">
|
||
|
<entry name="bad_alloc" value="0" summary="Bad allocation error"/>
|
||
|
<entry name="bad_handle" value="1" summary="Bad handle error"/>
|
||
|
<entry name="bad_attribs" value="2" summary="Bad attributes error"/>
|
||
|
<entry name="bad_address" value="3" summary="Bad IP address error"/>
|
||
|
</enum>
|
||
|
|
||
|
<!-- wl_buffer handle types. This enum defines what the handle given to a
|
||
|
create_stream request represents -->
|
||
|
<enum name="handle_type">
|
||
|
<description summary="Stream handle type">
|
||
|
- fd: The given handle represents a file descriptor, and the
|
||
|
EGLStream connection must be done as described in
|
||
|
EGL_KHR_stream_cross_process_fd
|
||
|
|
||
|
- inet: The EGLStream connection must be done using an inet address
|
||
|
and port as described in EGL_NV_stream_socket. The given
|
||
|
handle can be ignored, but both inet address and port must
|
||
|
be given as attributes.
|
||
|
|
||
|
- socket: The given handle represents a unix socket, and the EGLStream
|
||
|
connection must be done as described in EGL_NV_stream_socket.
|
||
|
</description>
|
||
|
<entry name="fd" value="0" summary="File descriptor"/>
|
||
|
<entry name="inet" value="1" summary="Inet connection"/>
|
||
|
<entry name="socket" value="2" summary="Unix socket"/>
|
||
|
</enum>
|
||
|
|
||
|
<!-- EGLStream creation attributes. This enum defines possible attributes to
|
||
|
be passed to a create_stream request -->
|
||
|
<enum name="attrib">
|
||
|
<description summary="Stream creation attributes">
|
||
|
- inet_addr: The given attribute encodes an IPv4 address of a client
|
||
|
socket. Both IPv4 address and port must be set at the same
|
||
|
time.
|
||
|
|
||
|
- inet_port: The given attribute encodes a port of a client socket. Both
|
||
|
IPv4 address and port must be set at the same time.
|
||
|
</description>
|
||
|
<entry name="inet_addr" value="0" summary="Inet IPv4 address"/>
|
||
|
<entry name="inet_port" value="1" summary="IP port"/>
|
||
|
</enum>
|
||
|
</interface>
|
||
|
|
||
|
<!-- EGLStream support. This object is created by the server and published
|
||
|
using the display's global event. It represents the binding between an
|
||
|
EGL display and a wayland display -->
|
||
|
<interface name="wl_eglstream_display" version="1">
|
||
|
<!-- wl_eglstream_display capabilities. This enum defines a series of
|
||
|
capability flags that will be advertised by the server to all its
|
||
|
clients -->
|
||
|
<enum name="cap">
|
||
|
<description summary="wl_eglstream_display capability codes">
|
||
|
This enum values should be used as bit masks.
|
||
|
|
||
|
- stream_fd: The server supports EGLStream connections as described
|
||
|
in EGL_KHR_stream_cross_process_fd
|
||
|
|
||
|
- stream_inet: The server supports EGLStream inet connections as
|
||
|
described in EGL_NV_stream_socket.
|
||
|
|
||
|
- stream_socket: The server supports EGLStream unix socket connections
|
||
|
as described in EGL_NV_stream_socket.
|
||
|
</description>
|
||
|
<entry name="stream_fd" value="1" summary="Stream connection with FD"/>
|
||
|
<entry name="stream_inet" value="2" summary="Stream inet connection"/>
|
||
|
<entry name="stream_socket" value="4" summary="Stream unix connection"/>
|
||
|
</enum>
|
||
|
|
||
|
<!-- Advertise server capabilities as a bit mask. Clients might listen to
|
||
|
this event in order to know what features are supported by the server
|
||
|
-->
|
||
|
<event name="caps">
|
||
|
<description summary="Server capabilities event">
|
||
|
The capabilities event is sent out at wl_eglstream_display binding
|
||
|
time. It allows the server to advertise what features it supports so
|
||
|
clients may know what is safe to be used.
|
||
|
</description>
|
||
|
<arg name="caps" type="int" summary="Capabilities mask"/>
|
||
|
</event>
|
||
|
|
||
|
<event name="swapinterval_override">
|
||
|
<description summary="Server Swap interval override event">
|
||
|
The swapinterval_override event is sent out whenever a client requests
|
||
|
a swapinterval setting through swap_interval() and there is an override
|
||
|
in place that will make such request to be ignored.
|
||
|
The swapinterval_override event will provide the override value so
|
||
|
that the client is made aware of it.
|
||
|
</description>
|
||
|
<arg name="swapinterval" type="int"
|
||
|
summary="Server swap interval override value"/>
|
||
|
<arg name="stream" type="object" interface="wl_buffer"
|
||
|
summary="wl_buffer corresponding to an EGLStream"/>
|
||
|
</event>
|
||
|
|
||
|
<!-- Create a wl_buffer for the given handle. The attributes array may
|
||
|
define additional EGLStream connection data (e.g. inet address/port).
|
||
|
The server can use the wl_buffer to create the actual EGLStream handle
|
||
|
on its side and attach a consumer. -->
|
||
|
<request name="create_stream">
|
||
|
<description summary="Create a wl_buffer from the given handle">
|
||
|
Create a wl_buffer corresponding to given handle. The attributes list
|
||
|
may be used to define additional EGLStream connection data (e.g inet
|
||
|
address/port). The server can create its EGLStream handle using the
|
||
|
information encoded in the wl_buffer.
|
||
|
</description>
|
||
|
<arg name="id" type="new_id" interface="wl_buffer" summary="New ID"/>
|
||
|
<arg name="width" type="int" summary="Stream framebuffer width"/>
|
||
|
<arg name="height" type="int" summary="Stream framebuffer height"/>
|
||
|
<arg name="handle" type="fd" summary="Handle for the stream creation"/>
|
||
|
<arg name="type" type="int" summary="Handle type"/>
|
||
|
<arg name="attribs" type="array" summary="Stream extra connection attribs">
|
||
|
<description summary="List of attributes with extra connection data">
|
||
|
It contains key-value pairs compatible with intptr_t type. A key must
|
||
|
be one of wl_eglstream_display_attrib enumeration values. What a value
|
||
|
represents is attribute-specific.
|
||
|
</description>
|
||
|
</arg>
|
||
|
</request>
|
||
|
|
||
|
<request name="swap_interval">
|
||
|
<description summary="change the swap interval of an EGLStream consumer">
|
||
|
Set the swap interval for the consumer of the given EGLStream. The swap
|
||
|
interval is silently clamped to the valid range on the server side.
|
||
|
</description>
|
||
|
<arg name="stream" type="object" interface="wl_buffer"
|
||
|
summary="wl_buffer corresponding to an EGLStream"/>
|
||
|
<arg name="interval" type="int" summary="new swap interval"/>
|
||
|
</request>
|
||
|
</interface>
|
||
|
</protocol>
|