blob: 42cbd474f513cc14feed4f76388ebcf579eab3ec [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file was automatically generated with:
// ../../ui/gfx/x/gen_xproto.py \
// ../../third_party/xcbproto/src \
// gen/ui/gfx/x \
// bigreq \
// composite \
// damage \
// dpms \
// dri2 \
// dri3 \
// ge \
// glx \
// present \
// randr \
// record \
// render \
// res \
// screensaver \
// shape \
// shm \
// sync \
// xc_misc \
// xevie \
// xf86dri \
// xf86vidmode \
// xfixes \
// xinerama \
// xinput \
// xkb \
// xprint \
// xproto \
// xselinux \
// xtest \
// xv \
// xvmc
#ifndef UI_GFX_X_GENERATED_PROTOS_XF86DRI_H_
#define UI_GFX_X_GENERATED_PROTOS_XF86DRI_H_
#include <array>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <vector>
#include "base/component_export.h"
#include "base/files/scoped_file.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_refptr.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/x/error.h"
#include "ui/gfx/x/ref_counted_fd.h"
#include "xproto.h"
namespace x11 {
class Connection;
template <typename Reply>
struct Response;
template <typename Reply>
class Future;
class COMPONENT_EXPORT(X11) XF86Dri {
public:
static constexpr unsigned major_version = 4;
static constexpr unsigned minor_version = 1;
XF86Dri(Connection* connection, const x11::QueryExtensionReply& info);
uint8_t present() const { return info_.present; }
uint8_t major_opcode() const { return info_.major_opcode; }
uint8_t first_event() const { return info_.first_event; }
uint8_t first_error() const { return info_.first_error; }
Connection* connection() const { return connection_; }
struct DrmClipRect {
int16_t x1{};
int16_t y1{};
int16_t x2{};
int16_t x3{};
};
struct QueryVersionRequest {};
struct QueryVersionReply {
uint16_t sequence{};
uint16_t dri_major_version{};
uint16_t dri_minor_version{};
uint32_t dri_minor_patch{};
};
using QueryVersionResponse = Response<QueryVersionReply>;
Future<QueryVersionReply> QueryVersion(const QueryVersionRequest& request);
Future<QueryVersionReply> QueryVersion();
struct QueryDirectRenderingCapableRequest {
uint32_t screen{};
};
struct QueryDirectRenderingCapableReply {
uint16_t sequence{};
uint8_t is_capable{};
};
using QueryDirectRenderingCapableResponse =
Response<QueryDirectRenderingCapableReply>;
Future<QueryDirectRenderingCapableReply> QueryDirectRenderingCapable(
const QueryDirectRenderingCapableRequest& request);
Future<QueryDirectRenderingCapableReply> QueryDirectRenderingCapable(
const uint32_t& screen = {});
struct OpenConnectionRequest {
uint32_t screen{};
};
struct OpenConnectionReply {
uint16_t sequence{};
uint32_t sarea_handle_low{};
uint32_t sarea_handle_high{};
std::string bus_id{};
};
using OpenConnectionResponse = Response<OpenConnectionReply>;
Future<OpenConnectionReply> OpenConnection(
const OpenConnectionRequest& request);
Future<OpenConnectionReply> OpenConnection(const uint32_t& screen = {});
struct CloseConnectionRequest {
uint32_t screen{};
};
using CloseConnectionResponse = Response<void>;
Future<void> CloseConnection(const CloseConnectionRequest& request);
Future<void> CloseConnection(const uint32_t& screen = {});
struct GetClientDriverNameRequest {
uint32_t screen{};
};
struct GetClientDriverNameReply {
uint16_t sequence{};
uint32_t client_driver_major_version{};
uint32_t client_driver_minor_version{};
uint32_t client_driver_patch_version{};
std::string client_driver_name{};
};
using GetClientDriverNameResponse = Response<GetClientDriverNameReply>;
Future<GetClientDriverNameReply> GetClientDriverName(
const GetClientDriverNameRequest& request);
Future<GetClientDriverNameReply> GetClientDriverName(
const uint32_t& screen = {});
struct CreateContextRequest {
uint32_t screen{};
uint32_t visual{};
uint32_t context{};
};
struct CreateContextReply {
uint16_t sequence{};
uint32_t hw_context{};
};
using CreateContextResponse = Response<CreateContextReply>;
Future<CreateContextReply> CreateContext(const CreateContextRequest& request);
Future<CreateContextReply> CreateContext(const uint32_t& screen = {},
const uint32_t& visual = {},
const uint32_t& context = {});
struct DestroyContextRequest {
uint32_t screen{};
uint32_t context{};
};
using DestroyContextResponse = Response<void>;
Future<void> DestroyContext(const DestroyContextRequest& request);
Future<void> DestroyContext(const uint32_t& screen = {},
const uint32_t& context = {});
struct CreateDrawableRequest {
uint32_t screen{};
uint32_t drawable{};
};
struct CreateDrawableReply {
uint16_t sequence{};
uint32_t hw_drawable_handle{};
};
using CreateDrawableResponse = Response<CreateDrawableReply>;
Future<CreateDrawableReply> CreateDrawable(
const CreateDrawableRequest& request);
Future<CreateDrawableReply> CreateDrawable(const uint32_t& screen = {},
const uint32_t& drawable = {});
struct DestroyDrawableRequest {
uint32_t screen{};
uint32_t drawable{};
};
using DestroyDrawableResponse = Response<void>;
Future<void> DestroyDrawable(const DestroyDrawableRequest& request);
Future<void> DestroyDrawable(const uint32_t& screen = {},
const uint32_t& drawable = {});
struct GetDrawableInfoRequest {
uint32_t screen{};
uint32_t drawable{};
};
struct GetDrawableInfoReply {
uint16_t sequence{};
uint32_t drawable_table_index{};
uint32_t drawable_table_stamp{};
int16_t drawable_origin_X{};
int16_t drawable_origin_Y{};
int16_t drawable_size_W{};
int16_t drawable_size_H{};
int16_t back_x{};
int16_t back_y{};
std::vector<DrmClipRect> clip_rects{};
std::vector<DrmClipRect> back_clip_rects{};
};
using GetDrawableInfoResponse = Response<GetDrawableInfoReply>;
Future<GetDrawableInfoReply> GetDrawableInfo(
const GetDrawableInfoRequest& request);
Future<GetDrawableInfoReply> GetDrawableInfo(const uint32_t& screen = {},
const uint32_t& drawable = {});
struct GetDeviceInfoRequest {
uint32_t screen{};
};
struct GetDeviceInfoReply {
uint16_t sequence{};
uint32_t framebuffer_handle_low{};
uint32_t framebuffer_handle_high{};
uint32_t framebuffer_origin_offset{};
uint32_t framebuffer_size{};
uint32_t framebuffer_stride{};
std::vector<uint32_t> device_private{};
};
using GetDeviceInfoResponse = Response<GetDeviceInfoReply>;
Future<GetDeviceInfoReply> GetDeviceInfo(const GetDeviceInfoRequest& request);
Future<GetDeviceInfoReply> GetDeviceInfo(const uint32_t& screen = {});
struct AuthConnectionRequest {
uint32_t screen{};
uint32_t magic{};
};
struct AuthConnectionReply {
uint16_t sequence{};
uint32_t authenticated{};
};
using AuthConnectionResponse = Response<AuthConnectionReply>;
Future<AuthConnectionReply> AuthConnection(
const AuthConnectionRequest& request);
Future<AuthConnectionReply> AuthConnection(const uint32_t& screen = {},
const uint32_t& magic = {});
private:
Connection* const connection_;
x11::QueryExtensionReply info_{};
};
} // namespace x11
#endif // UI_GFX_X_GENERATED_PROTOS_XF86DRI_H_