SRSDK  0.10.39
Loading...
Searching...
No Matches
interlacer.d3d12.hpp
Go to the documentation of this file.
1#ifndef CNSDK_LEIA_CORE_CXX_INTERLACER_D3D12_HPP
2#define CNSDK_LEIA_CORE_CXX_INTERLACER_D3D12_HPP
3
6
12namespace leia {
13
18public:
19 InterlacerD3D12(Core& core, InterlacerInitConfiguration const& config, ID3D12Device* device, ID3D12CommandQueue* commandQueue)
20 : Interlacer(leia_interlacer_d3d12_initialize(core.GetHandle(), config.GetHandle(), device, commandQueue), true)
21 {
22 }
27
28 InterlacerD3D12(leia_interlacer* nonOwningInterlacer) : Interlacer(nonOwningInterlacer, false)
29 {
30 }
31
32 void DoPostProcess(int32_t width, int32_t height, bool blendedInterlace, ID3D12Resource* renderTarget)
33 {
34 leia_interlacer_d3d12_do_post_process(_interlacer, width, height, blendedInterlace, renderTarget);
35 }
36
48 void SetSourceViews(ID3D12Resource* resource, int viewIndex = 0, int layer = 0)
49 {
50 leia_interlacer_d3d12_set_source_views(_interlacer, resource, viewIndex, layer);
51 }
52};
53
56{
57 if (interlacer && interlacer->GetGraphicsAPI() == LEIA_GRAPHICS_API_D3D12)
58 {
59 return static_cast<InterlacerD3D12*>(interlacer);
60 }
61 return nullptr;
62}
63
64} // namespace leia
65
70#endif // CNSDK_LEIA_CORE_CXX_INTERLACER_D3D12_HPP
C++ wrapper for leia_core.
Definition core.hpp:151
C++ wrapper for D3D12 leia_interlacer.
Definition interlacer.d3d12.hpp:17
InterlacerD3D12(InterlacerD3D12 &&)=default
InterlacerD3D12(InterlacerD3D12 const &)=delete
InterlacerD3D12(Core &core, InterlacerInitConfiguration const &config, ID3D12Device *device, ID3D12CommandQueue *commandQueue)
Definition interlacer.d3d12.hpp:19
InterlacerD3D12(leia_interlacer *nonOwningInterlacer)
Definition interlacer.d3d12.hpp:28
InterlacerD3D12 & operator=(InterlacerD3D12 const &)=delete
InterlacerD3D12 & operator=(InterlacerD3D12 &&)=default
void SetSourceViews(ID3D12Resource *resource, int viewIndex=0, int layer=0)
Set Direct3D 12 view texture.
Definition interlacer.d3d12.hpp:48
void DoPostProcess(int32_t width, int32_t height, bool blendedInterlace, ID3D12Resource *renderTarget)
Definition interlacer.d3d12.hpp:32
C++ wrapper for leia_interlacer.
Definition interlacer.hpp:26
leia_interlacer * _interlacer
Definition interlacer.hpp:367
LEIA_NODISCARD GraphicsAPI GetGraphicsAPI()
Definition interlacer.hpp:344
LEIA_NODISCARD leia_interlacer * GetHandle() const
Definition interlacer.hpp:350
C++ wrapper for leia_interlacer_init_configuration.
Definition interlacer.hpp:604
@ LEIA_GRAPHICS_API_D3D12
Definition types.h:16
#define LEIA_NODISCARD
Definition defines.h:86
Definition types.hpp:10
LEIA_NODISCARD InterlacerD3D12 * AsD3D12(Interlacer *interlacer)
Definition interlacer.d3d12.hpp:55
The main entity used for performing interlacing on Leia devices.
Definition interlacer.h:41