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 setVariable(const EffectVariableHandle /*index*/, const uint8_t* /*data*/, size_t /*size*/) override {}
30
31 virtual void setScalarVariable(const StringView& /*name*/, const float /*value*/) override {}
32 virtual void setScalarVariable(const StringView& /*name*/, int /*value*/) override {}
33 virtual void setScalarVariable(const EffectVariableHandle /*variableHandle*/, const float /*value*/) override {}
34 virtual void setScalarVariable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/, size_t /*count*/) override {}
35 virtual void setScalarVariable(const EffectVariableHandle /*variableHandle*/, int /*value*/) override {}
36 virtual void setScalarVariable(const EffectVariableHandle /*variableHandle*/, const int* /*value*/, size_t /*count*/) override {}
37
38 virtual void setVector2Variable(const StringView& /*name*/, const float* /*value*/) override {}
39 virtual void setVector2Variable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/, size_t /*count*/ = 1) override {}
40
41 virtual void setVector3Variable(const StringView& /*name*/, const float* /*value*/) override {}
42 virtual void setVector3Variable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/, size_t /*count*/ = 1) override {}
43
44 virtual void setVector4Variable(const StringView& /*name*/, const float* /*value*/) override {}
45 virtual void setVector4Variable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/, size_t /*count*/ = 1) override {}
46 virtual void setVector4Variable(const EffectVariableHandle /*variableHandle*/, const int* /*value*/, size_t /*count*/ = 1) override {}
47
48 virtual void setMatrixVariable(const StringView& /*name*/, const float* /*value*/) override {}
49 virtual void setMatrixVariable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/) override {}
50 virtual void setMatrixVariable(const EffectVariableHandle /*variableHandle*/, const float* /*value*/, size_t /*count*/) override {}
51
52 virtual void setTexture(const StringView& /*name*/, unsigned int /*unit*/, TextureHandle /*textureHandle*/) override {}
53 virtual void setTexture(const TextureBindingHandle /*textureBindingHandle*/, const TextureHandle /*textureHandle*/) override {}
54 virtual void setTexture(const StringView& /*name*/, TextureViewHandle /*textureViewHandle*/) override {}
55 virtual void setTexture(const TextureBindingHandle /*textureBindingHandle*/, TextureViewHandle /*textureViewHandle*/) override {}
56
57 virtual void setSamplerState(const StringView& /*name*/, unsigned int /*unit*/, SamplerStateHandle /*samplerStateHandle*/) override {}
58 virtual void setSamplerState(const SamplerStateBindingHandle /*samplerStateBindingHandle*/, const SamplerStateHandle /*samplerStateHandle*/) override {}
59
60 virtual void setInputLayout(const InputLayoutHandle /*inputLayoutHandle*/) override {}
61
62 virtual void setVertexBuffers(const VertexBufferHandle* /*vertexBufferHandles*/, const size_t /*count*/, const uint32_t* /*strides*/, const uint32_t* /*offsets*/) override {}
63 virtual void setVertexBuffers(const VertexBufferHandle* /*vertexBufferHandles*/, const size_t /*count*/) override {}
64
65 virtual void setIndexBuffer(IndexBufferHandle /*bufferHandle*/, uint32_t /*stride*/ = 4, uint32_t /*offset*/ = 0) override {}
66
67 virtual void setVertexArrayObject(VertexArrayObjectHandle /*vertexArrayObject*/) override {}
68
69 virtual void setConstantBuffer(const StringView& /*name*/, const BufferHandle /*bufferHandle*/, const uint32_t /*offset*/ = 0, const uint32_t /*size*/ = ~0u) override {}
70 virtual void setConstantBuffer(const ConstantBufferBindingHandle /*bufferBindingHandle*/, const BufferHandle /*bufferHandle*/, const uint32_t /*offset*/ = 0, const uint32_t /*size*/ = ~0u) override {}
71 virtual void setBuffer(const StringView& /*name*/, BufferHandle /*bufferHandle*/) override {}
72 virtual void setBuffer(const BufferBindingHandle /*bufferBindingHandle*/, BufferHandle /*bufferHandle*/) override {}
73 virtual void setBufferCounter(BufferHandle /*bufferHandle*/, uint32_t /*value*/) override {}
74 virtual void setBufferCounter(BufferHandle /*bufferHandle*/, BufferHandle /*sourceBufferHandle*/) override {}
75
76 virtual void getBufferCounter(BufferHandle /*bufferHandle*/, BufferHandle /*destinationBufferHandle*/) override {}
77 virtual uint32_t getBufferCounter(BufferHandle /*bufferHandle*/) override { return 0; }
78
79 virtual void draw(PrimitiveType::EPrimitiveType /*primitiveType*/, const size_t /*startVertex*/, const size_t /*numVertexes*/) override {}
80 virtual void drawIndexed(PrimitiveType::EPrimitiveType /*primitiveType*/, const size_t /*startIndex*/, const size_t /*numIndexes*/, const size_t /*startVertex*/ = 0) override {}
81 virtual void drawInstanced(PrimitiveType::EPrimitiveType /*primitiveType*/, const size_t /*startVertex*/, const size_t /*numVertexes*/, const size_t /*startInstance*/, const size_t /*numInstances*/) override {}
82 virtual void drawInstancedIndexed(PrimitiveType::EPrimitiveType /*primitiveType*/, const size_t /*startInstance*/, const size_t /*numInstances*/, const size_t /*startIndex*/, const size_t /*numIndexes*/) override {}
83
84 virtual void dispatchCompute(const unsigned int /*threadGroupsX*/, const unsigned int /*threadGroupsY*/, const unsigned int /*threadGroupsZ*/) override {}
85
86 virtual void readDepthBuffer(BufferHandle /*bufferHandle*/, int /*x*/, int /*y*/, int /*width*/, int /*height*/, Framebuffer::EFrameBuffer /*framebuffer*/) override {}
87 virtual void readColorBuffer(BufferHandle /*bufferHandle*/, int /*x*/, int /*y*/, int /*width*/, int /*height*/, Framebuffer::EFrameBuffer /*framebuffer*/) override {}
88
89 virtual void*map(BufferHandle /*bufferHandle*/, MapMode::EMapMode /*mapMode*/, uint32_t* /*stride*/ = nullptr) override { return nullptr; }
90 virtual void*map(TextureHandle /*textureHandle*/, MapMode::EMapMode /*accessMode*/, uint32_t* /*rowPitch*/, uint32_t* /*depthPitch*/) override { return nullptr; }
91 virtual void unmap(BufferHandle /*bufferHandle*/) override {}
92 virtual void unmap(TextureHandle /*textureHandle*/) override {}
93 virtual void updateBuffer(BufferHandle /*bufferHandle*/, const void* /*data*/, const size_t /*size*/) override {}
94
95 virtual void updateSubTexture(TextureHandle /*textureHandle*/, const size_t /*level*/, const void* /*data*/) override {}
96 virtual void updateSubBuffer(BufferHandle /*bufferHandle*/, const size_t /*offset*/, const size_t /*size*/, const void* /*data*/) override {}
97
98 virtual void resolveResource(TextureHandle /*source*/, TextureHandle /*destination*/) override {}
99 virtual void copyResource(BufferHandle /*destinationHandle*/, BufferHandle /*sourceHandle*/) override {}
100 virtual void copyResource(TextureHandle /*destinationHandle*/, TextureHandle /*sourceHandle*/) override {}
101 virtual void copyTexture(TextureHandle /*dstHandle*/, unsigned /*dstSub*/, unsigned /*dstX*/, unsigned /*dstY*/, unsigned /*dstZ*/, TextureHandle /*sourceHandle*/, unsigned /*srcSub*/) override {}
102
103 virtual void clearResource(BufferHandle /*destinationHandle*/, uint32_t* /*values*/) override {}
104 virtual void clearResource(BufferHandle /*destinationHandle*/, float* /*values*/) override {}
105
106 FrameStatistics frame_statistics{};
107 UploadStatistics upload_statistics{};
108 };
109}
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:70
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:77
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 setVector2Variable(const EffectVariableHandle, const float *, size_t=1) override
Sets the given vector variable to the given two-component value.
Definition: ContextNull.h:39
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:84
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 setVector4Variable(const EffectVariableHandle, const float *, size_t=1) override
Sets the given vector variable to the given four-component value.
Definition: ContextNull.h:45
virtual void setSamplerState(const SamplerStateBindingHandle, const SamplerStateHandle) override
Sets the sampler state binding given to the given sampler state.
Definition: ContextNull.h:58
virtual void setMatrixVariable(const StringView &, const float *) override
Sets the matrix variable with the given name in the current effect to value.
Definition: ContextNull.h:48
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:69
virtual void setVector2Variable(const StringView &, const float *) override
Sets the vector variable with the given name to the given two-component value.
Definition: ContextNull.h:38
virtual void setScalarVariable(const EffectVariableHandle, const float *, size_t) override
Sets the given scalar integer point variable to the given value.
Definition: ContextNull.h:34
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 setVector4Variable(const EffectVariableHandle, const int *, size_t=1) override
Sets the given vector variable to the given four-component value.
Definition: ContextNull.h:46
virtual void setVertexBuffers(const VertexBufferHandle *, const size_t, const uint32_t *, const uint32_t *) override
Sets the current vertex buffers.
Definition: ContextNull.h:62
virtual void endRenderPass() override
End a render pass.
Definition: ContextNull.h:19
virtual void readColorBuffer(BufferHandle, int, int, int, int, Framebuffer::EFrameBuffer) override
Reads data from the current render target into the given bufferHandle.
Definition: ContextNull.h:87
virtual void setEffect(EffectHandle) override
Set the current effect.
Definition: ContextNull.h:27
virtual void setVariable(const EffectVariableHandle, const uint8_t *, size_t) override
Sets the variable with the given name and size.
Definition: ContextNull.h:29
virtual void setTexture(const TextureBindingHandle, const TextureHandle) override
Sets the texture given to the binding given by textureBindingHandle.
Definition: ContextNull.h:53
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:74
virtual void setInputLayout(const InputLayoutHandle) override
Sets the current input layout.
Definition: ContextNull.h:60
virtual void getBufferCounter(BufferHandle, BufferHandle) override
Get the associated counter of a buffer.
Definition: ContextNull.h:76
virtual void setScissor(const int, const int, const int, const int) override
Sets the current scissor rectangle.
Definition: ContextNull.h:23
virtual void setScalarVariable(const StringView &, int) override
Sets the scalar integer variable with the given name to the given value.
Definition: ContextNull.h:32
virtual void setScalarVariable(const EffectVariableHandle, int) override
Sets the given scalar integer point variable to the given value.
Definition: ContextNull.h:35
virtual void setVector3Variable(const EffectVariableHandle, const float *, size_t=1) override
Sets the given vector variable to the given three-component value.
Definition: ContextNull.h:42
virtual void unmap(TextureHandle) override
Release a host mapping of a staging texture.
Definition: ContextNull.h:92
virtual void readDepthBuffer(BufferHandle, int, int, int, int, Framebuffer::EFrameBuffer) override
Reads data from the current depth target into the given bufferHandle.
Definition: ContextNull.h:86
virtual void updateBuffer(BufferHandle, const void *, const size_t) override
Replace contents of buffer with new data.
Definition: ContextNull.h:93
virtual void drawInstanced(PrimitiveType::EPrimitiveType, const size_t, const size_t, const size_t, const size_t) override
Draws non-indexed, instanced primitives.
Definition: ContextNull.h:81
virtual void setVector3Variable(const StringView &, const float *) override
Sets the vector variable with the given name to the given three-component value.
Definition: ContextNull.h:41
virtual void drawInstancedIndexed(PrimitiveType::EPrimitiveType, const size_t, const size_t, const size_t, const size_t) override
Draws indexed, instanced primitives.
Definition: ContextNull.h:82
virtual void setScalarVariable(const EffectVariableHandle, const float) override
Sets the given scalar floating point variable to the given value.
Definition: ContextNull.h:33
virtual void setScalarVariable(const EffectVariableHandle, const int *, size_t) override
Sets the given scalar integer point variable to the given value.
Definition: ContextNull.h:36
virtual void setMatrixVariable(const EffectVariableHandle, const float *, size_t) override
Sets the given matrix variable to value.
Definition: ContextNull.h:50
virtual void setScalarVariable(const StringView &, const float) override
Sets the scalar floating point variable with the given name to the given value.
Definition: ContextNull.h:31
virtual void setMatrixVariable(const EffectVariableHandle, const float *) override
Sets the given matrix variable to value.
Definition: ContextNull.h:49
virtual void unmap(BufferHandle) override
Unmaps the given buffer, applying any synchronization necessary to reflect changes in the mapped memo...
Definition: ContextNull.h:91
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:73
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:71
virtual void updateSubBuffer(BufferHandle, const size_t, const size_t, const void *) override
Update a region of data in a buffer.
Definition: ContextNull.h:96
virtual void setIndexBuffer(IndexBufferHandle, uint32_t=4, uint32_t=0) override
Sets the current index buffer.
Definition: ContextNull.h:65
virtual void setVertexArrayObject(VertexArrayObjectHandle) override
Sets vertexBuffers and index buffers using a prevalidated vertex array object.
Definition: ContextNull.h:67
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 setVertexBuffers(const VertexBufferHandle *, const size_t) override
Overload provided to support transitioning.
Definition: ContextNull.h:63
virtual void updateSubTexture(TextureHandle, const size_t, const void *) override
Update the data of a level in the given texture.
Definition: ContextNull.h:95
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:57
virtual void draw(PrimitiveType::EPrimitiveType, const size_t, const size_t) override
Draws non-indexed, non-instanced primitives.
Definition: ContextNull.h:79
virtual void * map(TextureHandle, MapMode::EMapMode, uint32_t *, uint32_t *) override
Create host mapping of a staging texture.
Definition: ContextNull.h:90
virtual void setVector4Variable(const StringView &, const float *) override
Sets the vector variable with the given name to the given four-component value.
Definition: ContextNull.h:44
virtual void drawIndexed(PrimitiveType::EPrimitiveType, const size_t, const size_t, const size_t=0) override
Draws indexed, non-instanced primitives.
Definition: ContextNull.h:80
virtual void resolveResource(TextureHandle, TextureHandle) override
Resolves the given source resource target into the given destination texture.
Definition: ContextNull.h:98
virtual void * map(BufferHandle, MapMode::EMapMode, uint32_t *=nullptr) override
Maps the given buffer so it can be accessed.
Definition: ContextNull.h:89
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:52
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:72
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Handle template class used to provide opaque, non-converting handles.
Definition: Common.h:22
Represents a graphics device context which can receive rendering commands.
Definition: IContext.h:43
EMapMode
Mapping mode enumeration.
Definition: Flags.h:93
EPrimitiveType
Primitive type enumeration.
Definition: Common.h:114