mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-04 06:06:17 +00:00
xrt: Add interfaces for D3D11
This commit is contained in:
parent
8bcc2cd195
commit
bbfc06cc3e
|
@ -11,6 +11,14 @@
|
||||||
|
|
||||||
#include "xrt/xrt_defines.h"
|
#include "xrt/xrt_defines.h"
|
||||||
#include "xrt/xrt_handles.h"
|
#include "xrt/xrt_handles.h"
|
||||||
|
#include "xrt/xrt_config_os.h"
|
||||||
|
|
||||||
|
#if defined(XRT_OS_WINDOWS)
|
||||||
|
#include "xrt/xrt_windows.h"
|
||||||
|
#include "d3d11.h"
|
||||||
|
#elif defined(XRT_DOXYGEN)
|
||||||
|
struct ID3D11Texture2D;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -1573,6 +1581,53 @@ xrt_compositor_vk(struct xrt_compositor *xc)
|
||||||
return (struct xrt_compositor_vk *)xc;
|
return (struct xrt_compositor_vk *)xc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(XRT_OS_WINDOWS) || defined(XRT_DOXYGEN)
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* D3D11 interface.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Base class for a D3D11 client swapchain.
|
||||||
|
*
|
||||||
|
* @ingroup xrt_iface comp_client
|
||||||
|
* @extends xrt_swapchain
|
||||||
|
*/
|
||||||
|
struct xrt_swapchain_d3d11
|
||||||
|
{
|
||||||
|
//! @public Base
|
||||||
|
struct xrt_swapchain base;
|
||||||
|
|
||||||
|
//! Images to be used by the caller.
|
||||||
|
ID3D11Texture2D *images[XRT_MAX_SWAPCHAIN_IMAGES];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Base class for a D3D11 client compositor.
|
||||||
|
*
|
||||||
|
* @ingroup xrt_iface comp_client
|
||||||
|
* @extends xrt_compositor
|
||||||
|
*/
|
||||||
|
struct xrt_compositor_d3d11
|
||||||
|
{
|
||||||
|
//! @public Base
|
||||||
|
struct xrt_compositor base;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Graphics usage requirements for D3D APIs.
|
||||||
|
*
|
||||||
|
* @ingroup xrt_iface
|
||||||
|
*/
|
||||||
|
struct xrt_d3d_requirements
|
||||||
|
{
|
||||||
|
LUID adapter_luid;
|
||||||
|
D3D_FEATURE_LEVEL min_feature_level;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // XRT_OS_WINDOWS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
|
42
src/xrt/include/xrt/xrt_gfx_d3d11.h
Normal file
42
src/xrt/include/xrt/xrt_gfx_d3d11.h
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Copyright 2021, Collabora, Ltd.
|
||||||
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
|
/*!
|
||||||
|
* @file
|
||||||
|
* @brief Header defining a D3D11 graphics interface
|
||||||
|
* @author Ryan Pavlik <ryan.pavlik@collabora.com>
|
||||||
|
* @ingroup xrt_iface
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "xrt/xrt_device.h"
|
||||||
|
#include "xrt/xrt_compositor.h"
|
||||||
|
#include "xrt/xrt_config_os.h"
|
||||||
|
#include "xrt/xrt_windows.h"
|
||||||
|
|
||||||
|
#if defined(XRT_OS_WINDOWS)
|
||||||
|
#include "d3d11.h"
|
||||||
|
#elif defined(XRT_DOXYGEN)
|
||||||
|
struct ID3D11Device;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XRT_OS_WINDOWS) || defined(XRT_DOXYGEN)
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Create a D3D11 compositor client.
|
||||||
|
*
|
||||||
|
* @ingroup xrt_iface
|
||||||
|
* @public @memberof xrt_compositor_native
|
||||||
|
*/
|
||||||
|
struct xrt_compositor_d3d11 *
|
||||||
|
xrt_gfx_d3d11_provider_create(struct xrt_compositor_native *xcn, ID3D11Device *device);
|
||||||
|
|
||||||
|
#endif // XRT_OS_WINDOWS || XRT_DOXYGEN
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
Loading…
Reference in a new issue