Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::IDeviceContextD3D11 Struct Referenceabstract

Exposes Direct3D11-specific functionality of a device context. More...

#include <DeviceContextD3D11.h>

Inheritance diagram for Diligent::IDeviceContextD3D11:
Diligent.IDeviceContext Diligent.IObject

Public Member Functions

virtual ID3D11DeviceContext *DILIGENT_CALL_TYPE GetD3D11DeviceContext ()=0
 Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object.
 
- Public Member Functions inherited from Diligent.IDeviceContext
virtual const DeviceContextDesc &DILIGENT_CALL_TYPE GetDesc () const =0
 Returns the context description.
 
virtual void DILIGENT_CALL_TYPE Begin (Uint32 ImmediateContextId)=0
 Begins recording commands in the deferred context.
 
virtual void DILIGENT_CALL_TYPE SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state.
 
virtual void DILIGENT_CALL_TYPE TransitionShaderResources (IShaderResourceBinding *pShaderResourceBinding)=0
 
virtual void DILIGENT_CALL_TYPE CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 Commits shader resources to the device context.
 
virtual void DILIGENT_CALL_TYPE SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value.
 
virtual void DILIGENT_CALL_TYPE SetBlendFactors (const float *pBlendFactors=nullptr)=0
 Sets the blend factors for alpha blending.
 
virtual void DILIGENT_CALL_TYPE SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer *const *ppBuffers, const Uint64 *pOffsets, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode, SET_VERTEX_BUFFERS_FLAGS Flags=SET_VERTEX_BUFFERS_FLAG_NONE)=0
 Binds vertex buffers to the pipeline.
 
virtual void DILIGENT_CALL_TYPE InvalidateState ()=0
 Invalidates the cached context state.
 
virtual void DILIGENT_CALL_TYPE SetIndexBuffer (IBuffer *pIndexBuffer, Uint64 ByteOffset, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 Binds an index buffer to the pipeline.
 
virtual void DILIGENT_CALL_TYPE SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports.
 
virtual void DILIGENT_CALL_TYPE SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects.
 
virtual void DILIGENT_CALL_TYPE SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 
virtual void DILIGENT_CALL_TYPE SetRenderTargetsExt (const SetRenderTargetsAttribs &Attribs)=0
 
virtual void DILIGENT_CALL_TYPE BeginRenderPass (const BeginRenderPassAttribs &Attribs)=0
 Begins a new render pass.
 
virtual void DILIGENT_CALL_TYPE NextSubpass ()=0
 Transitions to the next subpass in the render pass instance.
 
virtual void DILIGENT_CALL_TYPE EndRenderPass ()=0
 Ends current render pass.
 
virtual void DILIGENT_CALL_TYPE Draw (const DrawAttribs &Attribs)=0
 Executes a draw command.
 
virtual void DILIGENT_CALL_TYPE DrawIndexed (const DrawIndexedAttribs &Attribs)=0
 Executes an indexed draw command.
 
virtual void DILIGENT_CALL_TYPE DrawIndirect (const DrawIndirectAttribs &Attribs)=0
 Executes an indirect draw command.
 
virtual void DILIGENT_CALL_TYPE DrawIndexedIndirect (const DrawIndexedIndirectAttribs &Attribs)=0
 Executes an indexed indirect draw command.
 
virtual void DILIGENT_CALL_TYPE DrawMesh (const DrawMeshAttribs &Attribs)=0
 Executes a mesh draw command.
 
virtual void DILIGENT_CALL_TYPE DrawMeshIndirect (const DrawMeshIndirectAttribs &Attribs)=0
 Executes an indirect mesh draw command.
 
virtual void DILIGENT_CALL_TYPE MultiDraw (const MultiDrawAttribs &Attribs)=0
 Executes a multi-draw command.
 
virtual void DILIGENT_CALL_TYPE MultiDrawIndexed (const MultiDrawIndexedAttribs &Attribs)=0
 Executes an indexed multi-draw command.
 
virtual void DILIGENT_CALL_TYPE DispatchCompute (const DispatchComputeAttribs &Attribs)=0
 Executes a dispatch compute command.
 
virtual void DILIGENT_CALL_TYPE DispatchComputeIndirect (const DispatchComputeIndirectAttribs &Attribs)=0
 Executes an indirect dispatch compute command.
 
virtual void DILIGENT_CALL_TYPE DispatchTile (const DispatchTileAttribs &Attribs)=0
 Executes a dispatch tile command.
 
virtual void DILIGENT_CALL_TYPE GetTileSize (Uint32 &TileSizeX, Uint32 &TileSizeY)=0
 Returns current render pass tile size.
 
virtual void DILIGENT_CALL_TYPE ClearDepthStencil (ITextureView *pView, CLEAR_DEPTH_STENCIL_FLAGS ClearFlags, float fDepth, Uint8 Stencil, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 Clears a depth-stencil view.
 
virtual void DILIGENT_CALL_TYPE ClearRenderTarget (ITextureView *pView, const void *RGBA, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 Clears a render target view.
 
virtual void DILIGENT_CALL_TYPE FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list.
 
virtual void DILIGENT_CALL_TYPE ExecuteCommandLists (Uint32 NumCommandLists, ICommandList *const *ppCommandLists)=0
 Submits an array of recorded command lists for execution.
 
virtual void DILIGENT_CALL_TYPE EnqueueSignal (IFence *pFence, Uint64 Value)=0
 Tells the GPU to set a fence to a specified value after all previous work has completed.
 
virtual void DILIGENT_CALL_TYPE DeviceWaitForFence (IFence *pFence, Uint64 Value)=0
 Waits until the specified fence reaches or exceeds the specified value, on the device.
 
virtual void DILIGENT_CALL_TYPE WaitForIdle ()=0
 Submits all outstanding commands for execution to the GPU and waits until they are complete.
 
virtual void DILIGENT_CALL_TYPE BeginQuery (IQuery *pQuery)=0
 Marks the beginning of a query.
 
virtual void DILIGENT_CALL_TYPE EndQuery (IQuery *pQuery)=0
 Marks the end of a query.
 
virtual void DILIGENT_CALL_TYPE Flush ()=0
 Submits all pending commands in the context for execution to the command queue.
 
virtual void DILIGENT_CALL_TYPE UpdateBuffer (IBuffer *pBuffer, Uint64 Offset, Uint64 Size, const void *pData, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)=0
 Updates the data in the buffer.
 
virtual void DILIGENT_CALL_TYPE CopyBuffer (IBuffer *pSrcBuffer, Uint64 SrcOffset, RESOURCE_STATE_TRANSITION_MODE SrcBufferTransitionMode, IBuffer *pDstBuffer, Uint64 DstOffset, Uint64 Size, RESOURCE_STATE_TRANSITION_MODE DstBufferTransitionMode)=0
 Copies the data from one buffer to another.
 
virtual void DILIGENT_CALL_TYPE MapBuffer (IBuffer *pBuffer, MAP_TYPE MapType, MAP_FLAGS MapFlags, PVoid &pMappedData)=0
 Maps the buffer.
 
virtual void DILIGENT_CALL_TYPE UnmapBuffer (IBuffer *pBuffer, MAP_TYPE MapType)=0
 Unmaps the previously mapped buffer.
 
virtual void DILIGENT_CALL_TYPE UpdateTexture (ITexture *pTexture, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData, RESOURCE_STATE_TRANSITION_MODE SrcBufferTransitionMode, RESOURCE_STATE_TRANSITION_MODE TextureTransitionMode)=0
 Updates the data in the texture.
 
virtual void DILIGENT_CALL_TYPE CopyTexture (const CopyTextureAttribs &CopyAttribs)=0
 Copies data from one texture to another.
 
virtual void DILIGENT_CALL_TYPE MapTextureSubresource (ITexture *pTexture, Uint32 MipLevel, Uint32 ArraySlice, MAP_TYPE MapType, MAP_FLAGS MapFlags, const Box *pMapRegion, MappedTextureSubresource &MappedData)=0
 Maps the texture subresource.
 
virtual void DILIGENT_CALL_TYPE UnmapTextureSubresource (ITexture *pTexture, Uint32 MipLevel, Uint32 ArraySlice)=0
 Unmaps the texture subresource.
 
virtual void DILIGENT_CALL_TYPE GenerateMips (ITextureView *pTextureView)=0
 Generates a mipmap chain.
 
virtual void DILIGENT_CALL_TYPE FinishFrame ()=0
 Finishes the current frame and releases dynamic resources allocated by the context.
 
virtual Uint64 DILIGENT_CALL_TYPE GetFrameNumber () const =0
 Returns the current frame number.
 
virtual void DILIGENT_CALL_TYPE TransitionResourceStates (Uint32 BarrierCount, const StateTransitionDesc *pResourceBarriers)=0
 Transitions resource states.
 
virtual void DILIGENT_CALL_TYPE ResolveTextureSubresource (ITexture *pSrcTexture, ITexture *pDstTexture, const ResolveTextureSubresourceAttribs &ResolveAttribs)=0
 Resolves a multi-sampled texture subresource into a non-multi-sampled texture subresource.
 
virtual void DILIGENT_CALL_TYPE BuildBLAS (const BuildBLASAttribs &Attribs)=0
 Builds a bottom-level acceleration structure with the specified geometries.
 
virtual void DILIGENT_CALL_TYPE BuildTLAS (const BuildTLASAttribs &Attribs)=0
 Builds a top-level acceleration structure with the specified instances.
 
virtual void DILIGENT_CALL_TYPE CopyBLAS (const CopyBLASAttribs &Attribs)=0
 Copies data from one acceleration structure to another.
 
virtual void DILIGENT_CALL_TYPE CopyTLAS (const CopyTLASAttribs &Attribs)=0
 Copies data from one acceleration structure to another.
 
virtual void DILIGENT_CALL_TYPE WriteBLASCompactedSize (const WriteBLASCompactedSizeAttribs &Attribs)=0
 Writes a bottom-level acceleration structure memory size required for compacting operation to a buffer.
 
virtual void DILIGENT_CALL_TYPE WriteTLASCompactedSize (const WriteTLASCompactedSizeAttribs &Attribs)=0
 Writes a top-level acceleration structure memory size required for compacting operation to a buffer.
 
virtual void DILIGENT_CALL_TYPE TraceRays (const TraceRaysAttribs &Attribs)=0
 Executes a trace rays command.
 
virtual void DILIGENT_CALL_TYPE TraceRaysIndirect (const TraceRaysIndirectAttribs &Attribs)=0
 Executes an indirect trace rays command.
 
virtual void DILIGENT_CALL_TYPE UpdateSBT (IShaderBindingTable *pSBT, const UpdateIndirectRTBufferAttribs *pUpdateIndirectBufferAttribs=nullptr)=0
 Updates SBT with the pending data that were recorded in IShaderBindingTable::Bind*** calls.
 
virtual void DILIGENT_CALL_TYPE SetUserData (IObject *pUserData)=0
 Stores a pointer to the user-provided data object.
 
virtual IObject *DILIGENT_CALL_TYPE GetUserData () const =0
 Returns a pointer to the user data object previously.
 
virtual void DILIGENT_CALL_TYPE BeginDebugGroup (const Char *Name, const float *pColor=nullptr)=0
 Begins a debug group with name and color.
 
virtual void DILIGENT_CALL_TYPE EndDebugGroup ()=0
 Ends a debug group that was previously started with BeginDebugGroup().
 
virtual void DILIGENT_CALL_TYPE InsertDebugLabel (const Char *Label, const float *pColor=nullptr)=0
 Inserts a debug label with name and color.
 
virtual ICommandQueue *DILIGENT_CALL_TYPE LockCommandQueue ()=0
 Locks the internal mutex and returns a pointer to the command queue that is associated with this device context.
 
virtual void DILIGENT_CALL_TYPE UnlockCommandQueue ()=0
 Unlocks the command queue that was previously locked by LockCommandQueue().
 
virtual void DILIGENT_CALL_TYPE SetShadingRate (SHADING_RATE BaseRate, SHADING_RATE_COMBINER PrimitiveCombiner, SHADING_RATE_COMBINER TextureCombiner)=0
 Sets the shading base rate and combiners.
 
virtual void DILIGENT_CALL_TYPE BindSparseResourceMemory (const BindSparseResourceMemoryAttribs &Attribs)=0
 Binds or unbinds memory objects to sparse buffer and sparse textures.
 
virtual void DILIGENT_CALL_TYPE ClearStats ()=0
 Clears the device context statistics.
 
virtual const DeviceContextStats &DILIGENT_CALL_TYPE GetStats () const =0
 Returns the device context statistics, see Diligent::DeviceContextStats.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Exposes Direct3D11-specific functionality of a device context.

Member Function Documentation

◆ GetD3D11DeviceContext()

virtual ID3D11DeviceContext *DILIGENT_CALL_TYPE Diligent::IDeviceContextD3D11::GetD3D11DeviceContext ( )
pure virtual

Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object.

The method does NOT increment the reference counter of the returned object, so Release() must not be called.