9 struct FrameStatistics;
10 struct UploadStatistics;
103 virtual void setViewport(
const float x,
const float y,
const float width,
const float height) = 0;
110 virtual void setScissor(
const int x,
const int y,
const int width,
const int height) = 0;
458 virtual void dispatchCompute(
const unsigned int threadGroupsX,
const unsigned int threadGroupsY,
const unsigned int threadGroupsZ) = 0;
LoadOp
Definition: IContext.h:12
StoreOp
Definition: IContext.h:18
Definition: Statistics.h:7
EFrameBuffer
Definition: Common.h:150
Represents a graphics device context which can receive rendering commands.
Definition: IContext.h:43
virtual void * map(TextureHandle textureHandle, MapMode::EMapMode accessMode, uint32_t *rowPitch, uint32_t *depthPitch)=0
Create host mapping of a staging texture.
virtual void clearRenderTarget(const float **values, const int numvalues)=0
Clear the currently set render target, setting the individual render target views to the given values...
virtual void updateSubBuffer(BufferHandle bufferHandle, const size_t offset, const size_t size, const void *data)=0
Update a region of data in a buffer.
virtual void drawIndexed(PrimitiveType::EPrimitiveType primitiveType, const size_t startIndex, const size_t numIndexes, const size_t startVertex=0)=0
Draws indexed, non-instanced primitives.
virtual void setTexture(const StringView &name, unsigned int unit, TextureHandle textureHandle)=0
Sets the texture slot given by unit with the given name to contain the given texture.
virtual uint32_t getBufferCounter(BufferHandle bufferHandle)=0
Get the associated counter of a buffer.
virtual void clearResource(BufferHandle destinationHandle, uint32_t *Values)=0
virtual void setRasterizerState(const RasterizerStateHandle handle)=0
Set the current rasterizer state.
virtual void setBufferCounter(BufferHandle bufferHandle, BufferHandle sourceBufferHandle)=0
Set the associated counter of a buffer.
virtual void setBlendState(const BlendStateHandle handle, const float *constant=nullptr)=0
Set the current blend state.
virtual void signal(FenceHandle fenceHandle)=0
Insert a fence in the command stream that will signal when all commands before the fence are complete...
virtual void updateSubTexture(TextureHandle textureHandle, const size_t level, const void *data)=0
Update the data of a level in the given texture.
virtual void setVector4Variable(const EffectVariableHandle variableHandle, const int *value, size_t count=1)=0
Sets the given vector variable to the given four-component value.
virtual void unmap(TextureHandle textureHandle)=0
Release a host mapping of a staging texture.
virtual void setBuffer(const BufferBindingHandle bufferBindingHandle, BufferHandle bufferHandle)=0
Sets a buffer to bind to the given binding.
virtual void setInputLayout(const InputLayoutHandle inputLayoutHandle)=0
Sets the current input layout.
virtual void readColorBuffer(BufferHandle bufferHandle, int x, int y, int width, int height, Framebuffer::EFrameBuffer framebuffer)=0
Reads data from the current render target into the given bufferHandle.
virtual void setAnnotationMarker(const StringView &name)
Add a tag in the sequence of commands in graphics debugger.
Definition: IContext.h:72
virtual void setVector4Variable(const StringView &name, const float *value)=0
Sets the vector variable with the given name to the given four-component value.
virtual void setScalarVariable(const EffectVariableHandle variableHandle, int value)=0
Sets the given scalar integer point variable to the given value.
virtual void * map(BufferHandle bufferHandle, MapMode::EMapMode mapMode, uint32_t *stride=nullptr)=0
Maps the given buffer so it can be accessed.
virtual void unmap(BufferHandle bufferHandle)=0
Unmaps the given buffer, applying any synchronization necessary to reflect changes in the mapped memo...
virtual void setMatrixVariable(const EffectVariableHandle variableHandle, const float *value, size_t count)=0
Sets the given matrix variable to value.
virtual void drawInstancedIndexed(PrimitiveType::EPrimitiveType primitiveType, const size_t startInstance, const size_t numInstances, const size_t startIndex, const size_t numIndexes)=0
Draws indexed, instanced primitives.
virtual void dispatchCompute(const unsigned int threadGroupsX, const unsigned int threadGroupsY, const unsigned int threadGroupsZ)=0
Dispatch computing work on the graphics device using the desired thread group count.
virtual void setVertexArrayObject(VertexArrayObjectHandle vertexArrayObject)=0
Sets vertexBuffers and index buffers using a prevalidated vertex array object.
virtual void setScissor(const int x, const int y, const int width, const int height)=0
Sets the current scissor rectangle.
virtual void clearRenderTarget(const float *value)=0
Clear the currently set render target to the given value (4 component floating point RGBA).
virtual void setSamplerState(const SamplerStateBindingHandle samplerStateBindingHandle, const SamplerStateHandle samplerStateHandle)=0
Sets the sampler state binding given to the given sampler state.
virtual void setScalarVariable(const StringView &name, int value)=0
Sets the scalar integer variable with the given name to the given value.
virtual void setMatrixVariable(const EffectVariableHandle variableHandle, const float *value)=0
Sets the given matrix variable to value.
virtual void setMatrixVariable(const StringView &name, const float *value)=0
Sets the matrix variable with the given name in the current effect to value.
virtual void setScalarVariable(const EffectVariableHandle variableHandle, const float *value, size_t count)=0
Sets the given scalar integer point variable to the given value.
virtual void setTexture(const StringView &name, TextureViewHandle textureViewHandle)=0
virtual void endRenderPass()=0
End a render pass.
virtual void setVector3Variable(const StringView &name, const float *value)=0
Sets the vector variable with the given name to the given three-component value.
virtual void frameStatisticsConfigure(bool enable)=0
virtual void setScalarVariable(const EffectVariableHandle variableHandle, const int *value, size_t count)=0
Sets the given scalar integer point variable to the given value.
virtual void setIndexBuffer(IndexBufferHandle bufferHandle, uint32_t stride=4, uint32_t offset=0)=0
Sets the current index buffer.
virtual void copyResource(BufferHandle destinationHandle, BufferHandle sourceHandle)=0
virtual void setTexture(const TextureBindingHandle textureBindingHandle, const TextureHandle textureHandle)=0
Sets the texture given to the binding given by textureBindingHandle.
virtual void reset()
Resets all state changes made to the GPU since the last call to beginFrame.
Definition: IContext.h:593
virtual void setVector3Variable(const EffectVariableHandle variableHandle, const float *value, size_t count=1)=0
Sets the given vector variable to the given three-component value.
virtual void setConstantBuffer(const ConstantBufferBindingHandle bufferBindingHandle, const BufferHandle bufferHandle, const uint32_t offset=0, const uint32_t size=~0u)=0
Sets a constant buffer to the given constant buffer binding.
virtual void setDepthStencilState(const DepthStencilStateHandle handle)=0
Set the current depth stencil state.
virtual void getBufferCounter(BufferHandle bufferHandle, BufferHandle destinationBufferHandle)=0
Get the associated counter of a buffer.
virtual void setScalarVariable(const EffectVariableHandle variableHandle, const float value)=0
Sets the given scalar floating point variable to the given value.
virtual const Cogs::FrameStatistics & getLastFrameStatistics()=0
virtual void resolveResource(TextureHandle source, TextureHandle destination)=0
Resolves the given source resource target into the given destination texture.
virtual void clearCachedState()
Prepare context for external manipulation of graphics device.
Definition: IContext.h:55
virtual void clearDepth(const float depth=1.0f)=0
Clear the currently set depth/stencil target to the given depth.
virtual void setConstantBuffer(const StringView &name, const BufferHandle bufferHandle, const uint32_t offset=0, const uint32_t size=~0u)=0
Sets a constant buffer to be bound to the given name and slot.
virtual void setScalarVariable(const StringView &name, const float value)=0
Sets the scalar floating point variable with the given name to the given value.
virtual void copyTexture(TextureHandle dstHandle, unsigned dstSub, unsigned dstX, unsigned dstY, unsigned dstZ, TextureHandle sourceHandle, unsigned srcSub)=0
virtual void setVector2Variable(const EffectVariableHandle variableHandle, const float *value, size_t count=1)=0
Sets the given vector variable to the given two-component value.
virtual void updateBuffer(BufferHandle bufferHandle, const void *data, size_t size)=0
Replace contents of buffer with new data.
virtual void setVector4Variable(const EffectVariableHandle variableHandle, const float *value, size_t count=1)=0
Sets the given vector variable to the given four-component value.
virtual void setTexture(const TextureBindingHandle textureBindingHandle, TextureViewHandle textureViewHandle)=0
virtual void setVertexBuffers(const VertexBufferHandle *vertexBufferHandles, const size_t count)=0
Overload provided to support transitioning.
virtual void setViewport(const float x, const float y, const float width, const float height)=0
Sets the current viewport to the given location and dimensions.
virtual void readDepthBuffer(BufferHandle bufferHandle, int x, int y, int width, int height, Framebuffer::EFrameBuffer framebuffer)=0
Reads data from the current depth target into the given bufferHandle.
virtual void setBuffer(const StringView &name, BufferHandle bufferHandle)=0
Sets the given buffer to the buffer binding slot with the given name.
virtual void draw(PrimitiveType::EPrimitiveType primitiveType, const size_t startVertex, const size_t numVertexes)=0
Draws non-indexed, non-instanced primitives.
virtual void popCommandGroupAnnotation()
End to tag a sequence of commands as a group in graphics debugger.
Definition: IContext.h:67
virtual void beginRenderPass(const RenderPassInfo &info)=0
Begin a render pass.
virtual void setBufferCounter(BufferHandle bufferHandle, uint32_t value)=0
Set the associated counter of a buffer.
virtual void copyResource(TextureHandle destinationHandle, TextureHandle sourceHandle)=0
virtual void pushCommandGroupAnnotation(const StringView &name)
Begin to tag a sequence of commands as a group in graphics debugger.
Definition: IContext.h:62
virtual const Cogs::UploadStatistics & getLastUploadStatistics()=0
virtual void setVector2Variable(const StringView &name, const float *value)=0
Sets the vector variable with the given name to the given two-component value.
virtual void clearResource(BufferHandle destinationHandle, float *Values)=0
virtual void drawInstanced(PrimitiveType::EPrimitiveType primitiveType, const size_t startVertex, const size_t numVertexes, const size_t startInstance, const size_t numInstances)=0
Draws non-indexed, instanced primitives.
virtual void setSamplerState(const StringView &name, unsigned int unit, SamplerStateHandle samplerStateHandle)=0
Sets the sampler slot given by unit with the given name to contain the given sampler state.
virtual void setVertexBuffers(const VertexBufferHandle *vertexBufferHandles, const size_t count, const uint32_t *strides, const uint32_t *offsets)=0
Sets the current vertex buffers.
virtual void setVariable(const EffectVariableHandle index, const uint8_t *data, size_t size)=0
Sets the variable with the given name and size.
virtual void setEffect(EffectHandle handle)=0
Set the current effect.
virtual void setRenderTarget(const RenderTargetHandle handle, const DepthStencilHandle depthStencilHandle)=0
Sets the current render target and an associated depth stencil target.
EMapMode
Mapping mode enumeration.
Definition: Flags.h:93
EPrimitiveType
Primitive type enumeration.
Definition: Common.h:114
Definition: IContext.h:24
TextureViewHandle resolveHandle[8]
Definition: IContext.h:27
StoreOp depthStoreOp
Definition: IContext.h:34
StoreOp storeOp[8]
Definition: IContext.h:30
DepthStencilHandle depthStencilHandle
Definition: IContext.h:26
LoadOp loadOp[8]
Definition: IContext.h:29
float clearValue[8][4]
Definition: IContext.h:31
bool depthReadOnly
Definition: IContext.h:36
float depthClearValue
Definition: IContext.h:35
LoadOp depthLoadOp
Definition: IContext.h:33
RenderTargetHandle renderTargetHandle
Definition: IContext.h:25
Definition: Statistics.h:33