Cogs.Core
EngineBuffers.h
1#pragma once
2
3#include "Base.h"
4
5#include "Rendering/Common.h"
6
7#include "ParameterBuffers.h"
8
9namespace Cogs
10{
11 struct IBuffers;
12 struct ICapabilities;
13
14 namespace Core
15 {
16 struct RenderTaskContext;
17 struct CameraData;
18 struct LightData;
19 struct RenderTarget;
20
22 {
23 SceneParameters sceneParameters;
24 ObjectBuffer objectBuffer;
25 LightBuffer lightParameters;
26 ShadowBuffer shadowBuffer;
27
28 BufferHandle sceneBufferHandle;
29 BufferHandle viewBufferHandle; // CPU backing is CameraArrayData.
30 BufferHandle lightBufferHandle;
31 BufferHandle objectBufferHandle;
32 BufferHandle shadowBufferHandle;
33
34 struct {
35 BufferHandle bufferHandle;
36 uint32_t stride = 0;
37 uint32_t count = 0;
38 } objectBatch;
39
40 BufferHandle animationBuffer;
41 };
42
43 void initializeEngineBuffers(IBuffers * buffers, ICapabilities* capabilites, EngineBuffers & engineBuffers);
44 void COGSCORE_DLL_API updateEngineBuffers(RenderTaskContext * context, const RenderTarget* renderTarget, const CameraData * viewportData, const std::array<glm::vec4, 6>* clipEquations);
45 void COGSCORE_DLL_API updateViewportBuffer(RenderTaskContext* context, BufferHandle& sceneBufferHandle, BufferHandle& viewBufferHandle, const RenderTarget* renderTarget, const CameraData* viewportData, const std::array<glm::vec4, 6>* clipEquations);
46 }
47}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Contains data describing a Camera instance and its derived data structured such as matrix data and vi...
Definition: CameraSystem.h:67
Provides buffer management functionality.
Definition: IBuffers.h:13
Provides capability query functionality.