<?xml version="1.0" encoding="UTF-8"?>
<protocol name="shm_emulation_server_buffer">
    <copyright>
 Copyright (C) 2017 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="qt_shm_emulation_server_buffer" version="1">
    <description summary="shm-based server buffer for testing on desktop">
      This is software-based implementation of the qt_server_buffer extension.
      It is intended for testing and debugging purposes only.
    </description>
  <enum name="format">
    <entry name="RGBA32" value="0"/>
    <entry name="A8" value="1"/>
  </enum>
    <event name="server_buffer_created">
      <description summary="shm buffer information">
        Informs the client about a newly created server buffer.
        The "key" argument contains a QSharedMemory key.
      </description>
      <arg name="id" type="new_id" interface="qt_server_buffer"/>
      <arg name="key" type="string"/>
      <arg name="width" type="int"/>
      <arg name="height" type="int"/>
      <arg name="bytes_per_line" type="int"/>
      <arg name="format" type="int"/>
    </event>
  </interface>
</protocol>

