Cogs.Core
ContextNull.h
1#pragma once
2
3#include "../IContext.h"
4#include "../Statistics.h"
5
6namespace Cogs {
7 class ContextNull : public IContext {
8 public:
9 virtual const FrameStatistics& getLastFrameStatistics() override { return frame_statistics; }
10 virtual const UploadStatistics& getLastUploadStatistics() override { return upload_statistics; }
11 virtual void frameStatisticsConfigure(bool /*enable*/) override {}
12 virtual void signal(FenceHandle /*fenceHandle*/) override {}
13
14 virtual void clearRenderTarget(const float* /*value*/) override {}
15 virtual void clearRenderTarget(const float** /*values*/, const int /*numvalues*/) override {}
16 virtual void clearDepth(const float /*depth*/ = 1.0f) override {}
17
18 virtual void beginRenderPass(const RenderPassInfo &/*info*/) override {}
19 virtual void endRenderPass() override {}
20
21 virtual void setRenderTarget(const RenderTargetHandle /*handle*/, const DepthStencilHandle /*depthStencilHandle*/) override {}
22 virtual void setViewport(const float /*x*/, const float /*y*/, const float /*width*/, const float /*height*/) override {}
23 virtual void setScissor(const int /*x*/, const int /*y*/, const int /*width*/, const int /*height*/) override {}
24 virtual void setDepthStencilState(const DepthStencilStateHandle /*handle*/) override {}
25 virtual void setBlendState(const BlendStateHandle /*handle*/, const float* /*constant*/) override {}
26 virtual void setRasterizerState(const RasterizerStateHandle /*handle*/) override {}
27 virtual void setEffect(EffectHandle /*handle*/) override {}
28
29 virtual void setTexture(const StringView& /*name*/, unsigned int /*unit*/, TextureHandle /*textureHandle*/) override {}
30 virtual void setTexture(const TextureBindingHandle /*textureBindingHandle*/, const TextureHandle /*textureHandle*/) override {}
31 virtual void setTexture(const StringView& /*name*/, TextureViewHandle /*textureViewHandle*/) override {}
32 virtual void setTexture(const TextureBindingHandle /*textureBindingHandle*/, TextureViewHandle /*textureViewHandle*/) override {}
33
34 virtual void setSamplerState(const StringView& /*name*/, unsigned int /*unit*/, SamplerStateHandle /*samplerStateHandle*/) override {}
35 virtual void setSamplerState(const SamplerStateBindingHandle /*samplerStateBindingHandle*/, const SamplerStateHandle /*samplerStateHandle*/) override {}
36
37 virtual void setInputLayout(const InputLayoutHandle /*inputLayoutHandle*/) override {}
38
39 virtual void setVertexBuffers(const VertexBufferHandle* /*vertexBufferHandles*/, const size_t /*count*/, const uint32_t* /*strides*/, const uint32_t* /*offsets*/) override {}
40 virtual void setVertexBuffers(const VertexBufferHandle* /*vertexBufferHandles*/, const size_t /*count*/) override {}
41
42 virtual void setIndexBuffer(IndexBufferHandle /*bufferHandle*/, uint32_t /*stride*/ = 4, uint32_t /*offset*/ = 0) override {}
43
44 virtual void setVertexArrayObject(VertexArrayObjectHandle /*vertexArrayObject*/) override {}
45
46 virtual void setConstantBuffer(const StringView& /*name*/, const BufferHandle /*bufferHandle*/, const uint32_t /*offset*/ = 0, const uint32_t /*size*/ = ~0u) override {}
47 virtual void setConstantBuffer(const ConstantBufferBindingHandle /*bufferBindingHandle*/, const BufferHandle /*bufferHandle*/, const uint32_t /*offset*/ = 0, const uint32_t /*size*/ = ~0u) override {}
48 virtual void setBuffer(const StringView& /*name*/, BufferHandle /*bufferHandle*/) override {}
49 virtual void setBuffer(const BufferBindingHandle /*bufferBindingHandle*/, BufferHandle /*bufferHandle*/) override {}
50 virtual void setBufferCounter(BufferHandle /*bufferHandle*/, uint32_t /*value*/) override {}
51 virtual void setBufferCounter(BufferHandle /*bufferHandle*/, BufferHandle /*sourceBufferHandle*/) override {}
52
53 virtual void getBufferCounter(BufferHandle /*bufferHandle*/, BufferHandle /*destinationBufferHandle*/) override {}
54 virtual uint32_t getBufferCounter(BufferHandle /*bufferHandle*/) override { return 0; }
55
56 virtual void draw(PrimitiveType /*primitiveType*/, const size_t /*startVertex*/, const size_t /*numVertexes*/) override {}
57 virtual void drawIndexed(PrimitiveType /*primitiveType*/, const size_t /*startIndex*/, const size_t /*numIndexes*/, const size_t /*startVertex*/ = 0) override {}
58 virtual void drawInstanced(PrimitiveType /*primitiveType*/, const size_t /*startVertex*/, const size_t /*numVertexes*/, const size_t /*startInstance*/, const size_t /*numInstances*/) override {}
59 virtual void drawInstancedIndexed(PrimitiveType /*primitiveType*/, const size_t /*startInstance*/, const size_t /*numInstances*/, const size_t /*startIndex*/, const size_t /*numIndexes*/) override {}
60
61 virtual void dispatchCompute(const unsigned int /*threadGroupsX*/, const unsigned int /*threadGroupsY*/, const unsigned int /*threadGroupsZ*/) override {}
62
63 virtual void readDepthBuffer(BufferHandle /*bufferHandle*/, int /*x*/, int /*y*/, int /*width*/, int /*height*/, Framebuffer /*framebuffer*/) override {}
64 virtual void readColorBuffer(BufferHandle /*bufferHandle*/, int /*x*/, int /*y*/, int /*width*/, int /*height*/, Framebuffer /*framebuffer*/) override {}
65
66 virtual void*map(BufferHandle /*bufferHandle*/, MapMode::EMapMode /*mapMode*/, uint32_t* /*stride*/ = nullptr) override { return nullptr; }
67 virtual void*map(TextureHandle /*textureHandle*/, MapMode::EMapMode /*accessMode*/, uint32_t* /*rowPitch*/, uint32_t* /*depthPitch*/) override { return nullptr; }
68 virtual void unmap(BufferHandle /*bufferHandle*/) override {}
69 virtual void unmap(TextureHandle /*textureHandle*/) override {}
70 virtual void updateBuffer(BufferHandle /*bufferHandle*/, const void* /*data*/, const size_t /*size*/) override {}
71
72 virtual void updateSubTexture(TextureHandle /*textureHandle*/, const size_t /*level*/, const void* /*data*/) override {}
73 virtual void updateSubBuffer(BufferHandle /*bufferHandle*/, const size_t /*offset*/, const size_t /*size*/, const void* /*data*/) override {}
74
75 virtual void resolveResource(TextureHandle /*source*/, TextureHandle /*destination*/) override {}
76 virtual void copyResource(BufferHandle /*destinationHandle*/, BufferHandle /*sourceHandle*/) override {}
77 virtual void copyResource(TextureHandle /*destinationHandle*/, TextureHandle /*sourceHandle*/) override {}
78 virtual void copyTexture(TextureHandle /*dstHandle*/, unsigned /*dstSub*/, unsigned /*dstX*/, unsigned /*dstY*/, unsigned /*dstZ*/, TextureHandle /*sourceHandle*/, unsigned /*srcSub*/) override {}
79
80 virtual void clearResource(BufferHandle /*destinationHandle*/, uint32_t* /*values*/) override {}
81 virtual void clearResource(BufferHandle /*destinationHandle*/, float* /*values*/) override {}
82
83 FrameStatistics frame_statistics{};
84 UploadStatistics upload_statistics{};
85 };
86}
virtual void draw(PrimitiveType, const size_t, const size_t) override
Draws non-indexed, non-instanced primitives.
Definition: ContextNull.h:56
virtual void setConstantBuffer(const ConstantBufferBindingHandle, const BufferHandle, const uint32_t=0, const uint32_t=~0u) override
Sets a constant buffer to the given constant buffer binding.
Definition: ContextNull.h:47
virtual void setRasterizerState(const RasterizerStateHandle) override
Set the current rasterizer state.
Definition: ContextNull.h:26
virtual uint32_t getBufferCounter(BufferHandle) override
Get the associated counter of a buffer.
Definition: ContextNull.h:54
virtual void clearDepth(const float=1.0f) override
Clear the currently set depth/stencil target to the given depth.
Definition: ContextNull.h:16
virtual void dispatchCompute(const unsigned int, const unsigned int, const unsigned int) override
Dispatch computing work on the graphics device using the desired thread group count.
Definition: ContextNull.h:61
virtual void clearRenderTarget(const float *) override
Clear the currently set render target to the given value (4 component floating point RGBA).
Definition: ContextNull.h:14
virtual void setSamplerState(const SamplerStateBindingHandle, const SamplerStateHandle) override
Sets the sampler state binding given to the given sampler state.
Definition: ContextNull.h:35
virtual void setConstantBuffer(const StringView &, const BufferHandle, const uint32_t=0, const uint32_t=~0u) override
Sets a constant buffer to be bound to the given name and slot.
Definition: ContextNull.h:46
virtual void signal(FenceHandle) override
Insert a fence in the command stream that will signal when all commands before the fence are complete...
Definition: ContextNull.h:12
virtual void setVertexBuffers(const VertexBufferHandle *, const size_t, const uint32_t *, const uint32_t *) override
Sets the current vertex buffers.
Definition: ContextNull.h:39
virtual void endRenderPass() override
End a render pass.
Definition: ContextNull.h:19
virtual void setEffect(EffectHandle) override
Set the current effect.
Definition: ContextNull.h:27
virtual void setTexture(const TextureBindingHandle, const TextureHandle) override
Sets the texture given to the binding given by textureBindingHandle.
Definition: ContextNull.h:30
virtual void setBlendState(const BlendStateHandle, const float *) override
Set the current blend state.
Definition: ContextNull.h:25
virtual void setBufferCounter(BufferHandle, BufferHandle) override
Set the associated counter of a buffer.
Definition: ContextNull.h:51
virtual void readColorBuffer(BufferHandle, int, int, int, int, Framebuffer) override
Reads data from the current render target into the given bufferHandle.
Definition: ContextNull.h:64
virtual void setInputLayout(const InputLayoutHandle) override
Sets the current input layout.
Definition: ContextNull.h:37
virtual void getBufferCounter(BufferHandle, BufferHandle) override
Get the associated counter of a buffer.
Definition: ContextNull.h:53
virtual void setScissor(const int, const int, const int, const int) override
Sets the current scissor rectangle.
Definition: ContextNull.h:23
virtual void unmap(TextureHandle) override
Release a host mapping of a staging texture.
Definition: ContextNull.h:69
virtual void drawIndexed(PrimitiveType, const size_t, const size_t, const size_t=0) override
Draws indexed, non-instanced primitives.
Definition: ContextNull.h:57
virtual void updateBuffer(BufferHandle, const void *, const size_t) override
Replace contents of buffer with new data.
Definition: ContextNull.h:70
virtual void unmap(BufferHandle) override
Unmaps the given buffer, applying any synchronization necessary to reflect changes in the mapped memo...
Definition: ContextNull.h:68
virtual void setRenderTarget(const RenderTargetHandle, const DepthStencilHandle) override
Sets the current render target and an associated depth stencil target.
Definition: ContextNull.h:21
virtual void setBufferCounter(BufferHandle, uint32_t) override
Set the associated counter of a buffer.
Definition: ContextNull.h:50
virtual void setViewport(const float, const float, const float, const float) override
Sets the current viewport to the given location and dimensions.
Definition: ContextNull.h:22
virtual void setBuffer(const StringView &, BufferHandle) override
Sets the given buffer to the buffer binding slot with the given name.
Definition: ContextNull.h:48
virtual void updateSubBuffer(BufferHandle, const size_t, const size_t, const void *) override
Update a region of data in a buffer.
Definition: ContextNull.h:73
virtual void setIndexBuffer(IndexBufferHandle, uint32_t=4, uint32_t=0) override
Sets the current index buffer.
Definition: ContextNull.h:42
virtual void setVertexArrayObject(VertexArrayObjectHandle) override
Sets vertexBuffers and index buffers using a prevalidated vertex array object.
Definition: ContextNull.h:44
virtual void beginRenderPass(const RenderPassInfo &) override
Begin a render pass.
Definition: ContextNull.h:18
virtual void setDepthStencilState(const DepthStencilStateHandle) override
Set the current depth stencil state.
Definition: ContextNull.h:24
virtual void drawInstanced(PrimitiveType, const size_t, const size_t, const size_t, const size_t) override
Draws non-indexed, instanced primitives.
Definition: ContextNull.h:58
virtual void setVertexBuffers(const VertexBufferHandle *, const size_t) override
Overload provided to support transitioning.
Definition: ContextNull.h:40
virtual void drawInstancedIndexed(PrimitiveType, const size_t, const size_t, const size_t, const size_t) override
Draws indexed, instanced primitives.
Definition: ContextNull.h:59
virtual void updateSubTexture(TextureHandle, const size_t, const void *) override
Update the data of a level in the given texture.
Definition: ContextNull.h:72
virtual void setSamplerState(const StringView &, unsigned int, SamplerStateHandle) override
Sets the sampler slot given by unit with the given name to contain the given sampler state.
Definition: ContextNull.h:34
virtual void * map(TextureHandle, MapMode::EMapMode, uint32_t *, uint32_t *) override
Create host mapping of a staging texture.
Definition: ContextNull.h:67
virtual void resolveResource(TextureHandle, TextureHandle) override
Resolves the given source resource target into the given destination texture.
Definition: ContextNull.h:75
virtual void * map(BufferHandle, MapMode::EMapMode, uint32_t *=nullptr) override
Maps the given buffer so it can be accessed.
Definition: ContextNull.h:66
virtual void readDepthBuffer(BufferHandle, int, int, int, int, Framebuffer) override
Reads data from the current depth target into the given bufferHandle.
Definition: ContextNull.h:63
virtual void setTexture(const StringView &, unsigned int, TextureHandle) override
Sets the texture slot given by unit with the given name to contain the given texture.
Definition: ContextNull.h:29
virtual void clearRenderTarget(const float **, const int) override
Clear the currently set render target, setting the individual render target views to the given values...
Definition: ContextNull.h:15
virtual void setBuffer(const BufferBindingHandle, BufferHandle) override
Sets a buffer to bind to the given binding.
Definition: ContextNull.h:49
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
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
Handle template class used to provide opaque, non-converting handles.
Definition: Common.h:23
Represents a graphics device context which can receive rendering commands.
Definition: IContext.h:43
EMapMode
Mapping mode enumeration.
Definition: Flags.h:93