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;
329 virtual void draw(
PrimitiveType primitiveType,
const size_t startVertex,
const size_t numVertexes) = 0;
339 virtual void drawIndexed(
PrimitiveType primitiveType,
const size_t startIndex,
const size_t numIndexes,
const size_t startVertex = 0) = 0;
350 virtual void drawInstanced(
PrimitiveType primitiveType,
const size_t startVertex,
const size_t numVertexes,
const size_t startInstance,
const size_t numInstances) = 0;
370 virtual void dispatchCompute(
const unsigned int threadGroupsX,
const unsigned int threadGroupsY,
const unsigned int threadGroupsZ) = 0;
Framebuffer
Framebuffers to select from when doing framebuffer operations.
Definition: Common.h:147
PrimitiveType
Primitive types for interpreting vertex data sent to the graphics pipeline.
Definition: Common.h:112
LoadOp
Definition: IContext.h:12
StoreOp
Definition: IContext.h:18
Definition: Statistics.h:7
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 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 drawIndexed(PrimitiveType primitiveType, const size_t startIndex, const size_t numIndexes, const size_t startVertex=0)=0
Draws indexed, non-instanced primitives.
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 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 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 * 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 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 drawInstancedIndexed(PrimitiveType primitiveType, const size_t startInstance, const size_t numInstances, const size_t startIndex, const size_t numIndexes)=0
Draws indexed, instanced primitives.
virtual void setTexture(const StringView &name, TextureViewHandle textureViewHandle)=0
virtual void endRenderPass()=0
End a render pass.
virtual void frameStatisticsConfigure(bool enable)=0
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:505
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 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 drawInstanced(PrimitiveType 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 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 copyTexture(TextureHandle dstHandle, unsigned dstSub, unsigned dstX, unsigned dstY, unsigned dstZ, TextureHandle sourceHandle, unsigned srcSub)=0
virtual void updateBuffer(BufferHandle bufferHandle, const void *data, size_t size)=0
Replace contents of buffer with new data.
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 setBuffer(const StringView &name, BufferHandle bufferHandle)=0
Sets the given buffer to the buffer binding slot with the given name.
virtual void readDepthBuffer(BufferHandle bufferHandle, int x, int y, int width, int height, Framebuffer framebuffer)=0
Reads data from the current depth target into the given bufferHandle.
virtual void draw(PrimitiveType 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 clearResource(BufferHandle destinationHandle, float *Values)=0
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 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
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