<?xml version="1.0" encoding="UTF-8"?>
<protocol name="qt_vulkan_server_buffer_unstable_v1">
    <copyright>
 Copyright (C) 2019 The Qt Company Ltd.
 Contact: http://www.qt.io/licensing/

 This file is part of the plugins of the Qt Toolkit.

 $QT_BEGIN_LICENSE:BSD$
 You may use this file under the terms of the BSD license as follows:

 "Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:
   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
   * Neither the name of The Qt Company Ltd nor the names of its
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.


 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

 $QT_END_LICENSE$
    </copyright>
  <interface name="zqt_vulkan_server_buffer_v1" version="1">
    <description summary="Internal protocol for buffer sharing using Vulkan external memory">
      This protocol is used internally by Qt for implementing the
      qt_server_buffer extension on hardware that supports Vulkan external memory .

      This protocol is not part of the Qt API.  It exists purely as an
      implementation detail and may change from version to
      version without notice, or even be removed.
    </description>
    <event name="server_buffer_created">
      <description summary="vulkan buffer information">
        Informs the client about a newly created server buffer.
        The "fd" argument is a POSIX file descriptor representing the
        underlying resources of a Vulkan device memory object as defined
        in the GL_EXT_memory_object_fd extension.
      </description>
      <arg name="id" type="new_id" interface="qt_server_buffer"/>
      <arg name="fd" type="fd" summary="GL_EXT_memory_object_fd"/>
      <arg name="width" type="uint"/>
      <arg name="height" type="uint"/>
      <arg name="memory_size" type="uint" summary="size in bytes"/>
      <arg name="format" type="uint" summary="GL internal format"/>
    </event>
  </interface>
</protocol>
