| // 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_XVMC_H_ |
| #define UI_GFX_X_GENERATED_PROTOS_XVMC_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" |
| #include "xv.h" |
| |
| namespace x11 { |
| |
| class Connection; |
| |
| template <typename Reply> |
| struct Response; |
| |
| template <typename Reply> |
| class Future; |
| |
| class COMPONENT_EXPORT(X11) XvMC { |
| public: |
| static constexpr unsigned major_version = 1; |
| static constexpr unsigned minor_version = 1; |
| |
| XvMC(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_; } |
| |
| enum class Context : uint32_t {}; |
| |
| enum class Surface : uint32_t {}; |
| |
| enum class SubPicture : uint32_t {}; |
| |
| struct SurfaceInfo { |
| Surface id{}; |
| uint16_t chroma_format{}; |
| uint16_t pad0{}; |
| uint16_t max_width{}; |
| uint16_t max_height{}; |
| uint16_t subpicture_max_width{}; |
| uint16_t subpicture_max_height{}; |
| uint32_t mc_type{}; |
| uint32_t flags{}; |
| }; |
| |
| struct QueryVersionRequest {}; |
| |
| struct QueryVersionReply { |
| uint16_t sequence{}; |
| uint32_t major{}; |
| uint32_t minor{}; |
| }; |
| |
| using QueryVersionResponse = Response<QueryVersionReply>; |
| |
| Future<QueryVersionReply> QueryVersion(const QueryVersionRequest& request); |
| |
| Future<QueryVersionReply> QueryVersion(); |
| |
| struct ListSurfaceTypesRequest { |
| Xv::Port port_id{}; |
| }; |
| |
| struct ListSurfaceTypesReply { |
| uint16_t sequence{}; |
| std::vector<SurfaceInfo> surfaces{}; |
| }; |
| |
| using ListSurfaceTypesResponse = Response<ListSurfaceTypesReply>; |
| |
| Future<ListSurfaceTypesReply> ListSurfaceTypes( |
| const ListSurfaceTypesRequest& request); |
| |
| Future<ListSurfaceTypesReply> ListSurfaceTypes(const Xv::Port& port_id = {}); |
| |
| struct CreateContextRequest { |
| Context context_id{}; |
| Xv::Port port_id{}; |
| Surface surface_id{}; |
| uint16_t width{}; |
| uint16_t height{}; |
| uint32_t flags{}; |
| }; |
| |
| struct CreateContextReply { |
| uint16_t sequence{}; |
| uint16_t width_actual{}; |
| uint16_t height_actual{}; |
| uint32_t flags_return{}; |
| std::vector<uint32_t> priv_data{}; |
| }; |
| |
| using CreateContextResponse = Response<CreateContextReply>; |
| |
| Future<CreateContextReply> CreateContext(const CreateContextRequest& request); |
| |
| Future<CreateContextReply> CreateContext(const Context& context_id = {}, |
| const Xv::Port& port_id = {}, |
| const Surface& surface_id = {}, |
| const uint16_t& width = {}, |
| const uint16_t& height = {}, |
| const uint32_t& flags = {}); |
| |
| struct DestroyContextRequest { |
| Context context_id{}; |
| }; |
| |
| using DestroyContextResponse = Response<void>; |
| |
| Future<void> DestroyContext(const DestroyContextRequest& request); |
| |
| Future<void> DestroyContext(const Context& context_id = {}); |
| |
| struct CreateSurfaceRequest { |
| Surface surface_id{}; |
| Context context_id{}; |
| }; |
| |
| struct CreateSurfaceReply { |
| uint16_t sequence{}; |
| std::vector<uint32_t> priv_data{}; |
| }; |
| |
| using CreateSurfaceResponse = Response<CreateSurfaceReply>; |
| |
| Future<CreateSurfaceReply> CreateSurface(const CreateSurfaceRequest& request); |
| |
| Future<CreateSurfaceReply> CreateSurface(const Surface& surface_id = {}, |
| const Context& context_id = {}); |
| |
| struct DestroySurfaceRequest { |
| Surface surface_id{}; |
| }; |
| |
| using DestroySurfaceResponse = Response<void>; |
| |
| Future<void> DestroySurface(const DestroySurfaceRequest& request); |
| |
| Future<void> DestroySurface(const Surface& surface_id = {}); |
| |
| struct CreateSubpictureRequest { |
| SubPicture subpicture_id{}; |
| Context context{}; |
| uint32_t xvimage_id{}; |
| uint16_t width{}; |
| uint16_t height{}; |
| }; |
| |
| struct CreateSubpictureReply { |
| uint16_t sequence{}; |
| uint16_t width_actual{}; |
| uint16_t height_actual{}; |
| uint16_t num_palette_entries{}; |
| uint16_t entry_bytes{}; |
| std::array<uint8_t, 4> component_order{}; |
| std::vector<uint32_t> priv_data{}; |
| }; |
| |
| using CreateSubpictureResponse = Response<CreateSubpictureReply>; |
| |
| Future<CreateSubpictureReply> CreateSubpicture( |
| const CreateSubpictureRequest& request); |
| |
| Future<CreateSubpictureReply> CreateSubpicture( |
| const SubPicture& subpicture_id = {}, |
| const Context& context = {}, |
| const uint32_t& xvimage_id = {}, |
| const uint16_t& width = {}, |
| const uint16_t& height = {}); |
| |
| struct DestroySubpictureRequest { |
| SubPicture subpicture_id{}; |
| }; |
| |
| using DestroySubpictureResponse = Response<void>; |
| |
| Future<void> DestroySubpicture(const DestroySubpictureRequest& request); |
| |
| Future<void> DestroySubpicture(const SubPicture& subpicture_id = {}); |
| |
| struct ListSubpictureTypesRequest { |
| Xv::Port port_id{}; |
| Surface surface_id{}; |
| }; |
| |
| struct ListSubpictureTypesReply { |
| uint16_t sequence{}; |
| std::vector<Xv::ImageFormatInfo> types{}; |
| }; |
| |
| using ListSubpictureTypesResponse = Response<ListSubpictureTypesReply>; |
| |
| Future<ListSubpictureTypesReply> ListSubpictureTypes( |
| const ListSubpictureTypesRequest& request); |
| |
| Future<ListSubpictureTypesReply> ListSubpictureTypes( |
| const Xv::Port& port_id = {}, |
| const Surface& surface_id = {}); |
| |
| private: |
| Connection* const connection_; |
| x11::QueryExtensionReply info_{}; |
| }; |
| |
| } // namespace x11 |
| |
| #endif // UI_GFX_X_GENERATED_PROTOS_XVMC_H_ |