LeiaSR SDK 720218b2 v1.32.7.6322 2025-02-13T14:55:38Z
Stable
Public Member Functions | List of all members
SR::DX12Weaver Class Reference

#include <dx12weaver.h>

Inheritance diagram for SR::DX12Weaver:
[legend]
Collaboration diagram for SR::DX12Weaver:
[legend]

Public Member Functions

 DX12Weaver (SR::SRContext &context, ID3D12Device *device, ID3D12CommandAllocator *commandAllocator, ID3D12CommandQueue *commandQueue, ID3D12Resource *inputFramebuffer, ID3D12Resource *outputFramebuffer)
 Constructs a class to be used for weaving an input image of a certain size. More...
 
 DX12Weaver (SR::SRContext &context, ID3D12Device *device, ID3D12CommandAllocator *commandAllocator, ID3D12CommandQueue *commandQueue, ID3D12Resource *inputFramebuffer, ID3D12Resource *outputFramebuffer, HWND window)
 Constructs a class to be used for weaving an input image of a certain size. More...
 
 DX12Weaver (SR::SRContext &context, ID3D12Device *device, ID3D12CommandAllocator *commandAllocator, ID3D12CommandQueue *commandQueue, ID3D12Resource *inputFramebuffer, ID3D12Resource *outputFramebuffer, HWND window, DXGI_FORMAT inputBufferViewFormat)
 Constructs a class to be used for weaving an input image of a certain size This constructor should be used to specify the fully qualified format via inputBufferViewFormat when the inputFramebuffer is a texture created with a typeless format. More...
 
 ~DX12Weaver ()
 Handles proper destruction of all weaver related classes, buffers and references. More...
 
- Public Member Functions inherited from SR::DX12WeaverBase
 DX12WeaverBase ()
 
 ~DX12WeaverBase ()
 
ID3D12Resource * getFrameBuffer ()
 Returns the input buffer of the weaver. When weave(...) is called on this object, this buffer should contain a side-by-side view that will be used as input for the weaver. More...
 
void setInputFrameBuffer (ID3D12Resource *frameBuffer)
 Sets the input buffer of the weaver. When weave(...) is called on this object, this buffer should contain a side-by-side view that will be used as input for the weaver. More...
 
void setInputFrameBuffer (ID3D12Resource *frameBuffer, DXGI_FORMAT bufferViewFormat)
 Sets the input buffer of the weaver. This overload of the function should be used to specify the fully qualified format via bufferViewFormat when the framebuffer is a texture created with a typeless format When weave(...) is called on this object, this buffer should contain a side-by-side view that will be used as input for the weaver. More...
 
void setOutputFrameBuffer (ID3D12Resource *frameBuffer)
 Sets the output buffer of the weaver. After weave(...) has been called on this object, the weaved image will be written to this buffer. More...
 
void setCommandList (ID3D12GraphicsCommandList *commandList)
 Sets the command list for the weaver to use. Must be set before the weave() function can be called. More...
 
void setWindowHandle (HWND handle)
 Sets the window handle of the application window. If the weaver was created using a deprecated constructor, setting window handle has no effect. More...
 
void setContrast (float contrast)
 Sets the weaving contrast. More...
 
float getContrast () const
 Gets the current weaving contrast. More...
 
void setShaderSRGBConversion (bool read, bool write)
 Sets whether to apply shader sRGB<->Linear color space conversions to the input framebuffer during weaving. More...
 
void setACTMode (WeaverACTMode mode)
 Sets the anti-crosstalk mode. More...
 
WeaverACTMode getACTMode () const
 Gets the anti-crosstalk mode. More...
 
void setCrosstalkStaticFactor (float factor)
 Sets the anti-crosstalk factor. More...
 
float getCrosstalkStaticFactor () const
 Gets the anti-crosstalk factor. More...
 
void setCrosstalkDynamicFactor (float factor)
 Sets the anti-crosstalk dynamic factor. More...
 
float getCrosstalkDynamicFactor () const
 Gets the anti-crosstalk dynamic factor. More...
 
bool canWeave ()
 Used to determine if software weaving is possible on this device. Always returns false if the input or output buffer is not set. More...
 
bool canWeave (unsigned int width, unsigned int height)
 Used to determine if software weaving is possible for certain size and visibility to the currently bound framebuffer. Always returns false if the input or output buffer is not set. More...
 
bool canWeave (unsigned int width, unsigned int height, unsigned int xOffset, unsigned int yOffset)
 Used to determine if software weaving is possible for certain size and visibility to the currently bound framebuffer. Always returns false if the input or output buffer is not set. More...
 
void weave (unsigned int width, unsigned int height)
 Can be called to render a weaved image of inputFramebuffer provided to DX12Weaver::DX12Weaver(...) (Must be D3D12_RESOURCE_STATE_UNORDERED_ACCESS) to the currently bound rendertarget (Must be D3D12_RESOURCE_STATE_RENDER_TARGET) A commandlist must be set before calling this function or weaving will not be executed. More...
 
void weave (unsigned int width, unsigned int height, unsigned int xOffset, unsigned int yOffset)
 Can be called to render a weaved image of inputFramebuffer provided to DX12Weaver::DX12Weaver(...) (Must be D3D12_RESOURCE_STATE_UNORDERED_ACCESS) to the currently bound rendertarget (Must be D3D12_RESOURCE_STATE_RENDER_TARGET) A commandlist must be set before calling this function or weaving will not be executed. More...
 
void weave (ID3D12GraphicsCommandList *commandList, unsigned int width, unsigned int height)
 Can be called to render a weaved image of inputFramebuffer provided to DX12Weaver::DX12Weaver(...) (Must be D3D12_RESOURCE_STATE_UNORDERED_ACCESS) to the currently bound rendertarget (Must be D3D12_RESOURCE_STATE_RENDER_TARGET) More...
 
void weave (ID3D12GraphicsCommandList *commandList, unsigned int width, unsigned int height, unsigned int xOffset, unsigned int yOffset)
 Can be called to render a weaved image of inputFramebuffer provided to DX12Weaver::DX12Weaver(...) (Must be D3D12_RESOURCE_STATE_UNORDERED_ACCESS) to the currently bound rendertarget (Must be D3D12_RESOURCE_STATE_RENDER_TARGET) More...
 

Additional Inherited Members

- Protected Attributes inherited from SR::DX12WeaverBase
std::unique_ptr< Impl > pimpl
 

Constructor & Destructor Documentation

◆ DX12Weaver() [1/3]

SR::DX12Weaver::DX12Weaver ( SR::SRContext context,
ID3D12Device *  device,
ID3D12CommandAllocator *  commandAllocator,
ID3D12CommandQueue *  commandQueue,
ID3D12Resource *  inputFramebuffer,
ID3D12Resource *  outputFramebuffer 
)

Constructs a class to be used for weaving an input image of a certain size.

Deprecated:
Parameters
contextto connect to, needs to be valid for the lifetime of the weaver object.
deviceinterface used to create resources
commandAllocatorused for command list generation during setup
commandQueueused for command list execution during setup
inputFramebufferA pointer to a frame buffer resource containing the side-by-side image to be weaved together. A reference to this resource will be maintained by the object until a different input buffer is set by calling setInputFrameBuffer or until the object is destroyed.
outputFramebufferA pointer to a frame buffer resource where the output of the weaver will be written to (usually the backbuffer). No reference to the output framebuffer is kept by the weaver object.
Exceptions
std::exceptionif inputFramebuffer is a texture resource created with a typeless format

◆ DX12Weaver() [2/3]

SR::DX12Weaver::DX12Weaver ( SR::SRContext context,
ID3D12Device *  device,
ID3D12CommandAllocator *  commandAllocator,
ID3D12CommandQueue *  commandQueue,
ID3D12Resource *  inputFramebuffer,
ID3D12Resource *  outputFramebuffer,
HWND  window 
)

Constructs a class to be used for weaving an input image of a certain size.

Parameters
contextto connect to, needs to be valid for the lifetime of the weaver object.
deviceinterface used to create resources
commandAllocatorused for command list generation during setup
commandQueueused for command list execution during setup
inputFramebufferA pointer to a frame buffer resource containing the side-by-side image to be weaved together. A reference to this resource will be maintained by the object until a different input buffer is set by calling setInputFrameBuffer or until the object is destroyed.
outputFramebufferA pointer to a frame buffer resource where the output of the weaver will be written to (usually the backbuffer). No reference to the output framebuffer is kept by the weaver object.
windowHandle of the application window
Exceptions
std::exceptionif inputFramebuffer is a texture resource created with a typeless format

◆ DX12Weaver() [3/3]

SR::DX12Weaver::DX12Weaver ( SR::SRContext context,
ID3D12Device *  device,
ID3D12CommandAllocator *  commandAllocator,
ID3D12CommandQueue *  commandQueue,
ID3D12Resource *  inputFramebuffer,
ID3D12Resource *  outputFramebuffer,
HWND  window,
DXGI_FORMAT  inputBufferViewFormat 
)

Constructs a class to be used for weaving an input image of a certain size This constructor should be used to specify the fully qualified format via inputBufferViewFormat when the inputFramebuffer is a texture created with a typeless format.

Parameters
contextto connect to, needs to be valid for the lifetime of the weaver object.
deviceinterface used to create resources
commandAllocatorused for command list generation during setup
commandQueueused for command list execution during setup
inputFramebufferA pointer to a frame buffer resource containing the side-by-side image to be weaved together. A reference to this resource will be maintained by the object until a different input buffer is set by calling setInputFrameBuffer or until the object is destroyed.
outputFramebufferA pointer to a frame buffer resource where the output of the weaver will be written to (usually the backbuffer). No reference to the output framebuffer is kept by the weaver object.
windowHandle of the application window
inputBufferViewFormatThe fully qualified shader resource view format for the input frame buffer. This specification is required for textures created with typeless format. It can also be used to cast an already specified fully qualified format to another.
Exceptions
std::exceptionif inputFramebuffer is a texture resource created with a typeless format and inputBufferViewFormat's value is DXGI_FORMAT_UNKNOWN

◆ ~DX12Weaver()

SR::DX12Weaver::~DX12Weaver ( )

Handles proper destruction of all weaver related classes, buffers and references.


The documentation for this class was generated from the following file: