Blender V4.3
GHOST_IXrGraphicsBinding.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2020-2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include <memory>
12#include <optional>
13#include <string>
14#include <vector>
15
17
19 public:
20 union {
21#if defined(WITH_GHOST_X11)
22 XrGraphicsBindingEGLMNDX egl;
23 XrGraphicsBindingOpenGLXlibKHR glx;
24#elif defined(WIN32)
25 XrGraphicsBindingOpenGLWin32KHR wgl;
26 XrGraphicsBindingD3D11KHR d3d11;
27#endif
28#if defined(WITH_GHOST_WAYLAND)
29 XrGraphicsBindingOpenGLWaylandKHR wl;
30#endif
32
33 virtual ~GHOST_IXrGraphicsBinding() = default;
34
42 virtual bool checkVersionRequirements(class GHOST_Context &ghost_ctx,
43 XrInstance instance,
44 XrSystemId system_id,
45 std::string *r_requirement_info) const = 0;
46 virtual void initFromGhostContext(class GHOST_Context &ghost_ctx) = 0;
47 virtual std::optional<int64_t> chooseSwapchainFormat(const std::vector<int64_t> &runtime_formats,
48 GHOST_TXrSwapchainFormat &r_format,
49 bool &r_is_rgb_format) const = 0;
50 virtual std::vector<XrSwapchainImageBaseHeader *> createSwapchainImages(
51 uint32_t image_count) = 0;
52 virtual void submitToSwapchainImage(XrSwapchainImageBaseHeader &swapchain_image,
53 const GHOST_XrDrawViewInfo &draw_info) = 0;
54 virtual bool needsUpsideDownDrawing(GHOST_Context &ghost_ctx) const = 0;
55
56 protected:
57 /* Use GHOST_XrGraphicsBindingCreateFromType! */
59};
60
61std::unique_ptr<GHOST_IXrGraphicsBinding> GHOST_XrGraphicsBindingCreateFromType(
62 GHOST_TXrGraphicsBinding type, GHOST_Context &context);
std::unique_ptr< GHOST_IXrGraphicsBinding > GHOST_XrGraphicsBindingCreateFromType(GHOST_TXrGraphicsBinding type, GHOST_Context &context)
virtual ~GHOST_IXrGraphicsBinding()=default
union GHOST_IXrGraphicsBinding::@1476 oxr_binding
GHOST_IXrGraphicsBinding()=default
virtual bool needsUpsideDownDrawing(GHOST_Context &ghost_ctx) const =0
virtual std::vector< XrSwapchainImageBaseHeader * > createSwapchainImages(uint32_t image_count)=0
virtual bool checkVersionRequirements(class GHOST_Context &ghost_ctx, XrInstance instance, XrSystemId system_id, std::string *r_requirement_info) const =0
virtual std::optional< int64_t > chooseSwapchainFormat(const std::vector< int64_t > &runtime_formats, GHOST_TXrSwapchainFormat &r_format, bool &r_is_rgb_format) const =0
virtual void initFromGhostContext(class GHOST_Context &ghost_ctx)=0
virtual void submitToSwapchainImage(XrSwapchainImageBaseHeader &swapchain_image, const GHOST_XrDrawViewInfo &draw_info)=0
unsigned int uint32_t
Definition stdint.h:80