27class QOpenXRGraphicsD3D12 :
public QAbstractOpenXRGraphics
30 QOpenXRGraphicsD3D12();
32 bool initialize(
const QVector<XrExtensionProperties> &extensions) override;
33 QVector<
const char *> getRequiredExtensions()
const override;
34 const XrBaseInStructure *handle()
const override;
35 bool setupGraphics(
const XrInstance &instance, XrSystemId &systemId,
const QQuickGraphicsConfiguration &quickConfig) override;
36 bool finializeGraphics(QRhi *rhi) override;
37 int64_t colorSwapchainFormat(
const QVector<int64_t> &swapchainFormats)
const override;
38 int64_t depthSwapchainFormat(
const QVector<int64_t> &swapchainFormats)
const override;
39 QVector<XrSwapchainImageBaseHeader*> allocateSwapchainImages(
int count, XrSwapchain swapchain) override;
40 QQuickRenderTarget renderTarget(
const XrSwapchainSubImage &subImage,
const XrSwapchainImageBaseHeader *swapchainImage,
41 quint64 swapchainFormat,
int samples,
int arraySize,
42 const XrSwapchainImageBaseHeader *depthSwapchainImage, quint64 depthSwapchainFormat)
const override;
43 QRhi *rhi()
const override {
return m_rhi; }
44 void setupWindow(QQuickWindow *quickWindow) override;
47 QRhi *m_rhi =
nullptr;
48 XrGraphicsBindingD3D12KHR m_graphicsBinding = {};
49 QMap<XrSwapchain, QVector<XrSwapchainImageD3D12KHR>> m_swapchainImageBuffer;
50 XrGraphicsRequirementsD3D12KHR m_graphicsRequirements = {};