Cogs.Core
Source
Renderer
RenderStateUpdater.h
1
#pragma once
2
3
#include "Rendering/IContext.h"
4
#include "Rendering/IBuffers.h"
5
#include "Rendering/ITextures.h"
6
7
#include "Renderer/ParameterBuffers.h"
8
#include "Renderer/Renderer.h"
9
#include "Renderer/RenderTexture.h"
10
#include "Renderer/RenderMaterialInstance.h"
11
#include "Renderer/RenderResources.h"
12
13
namespace
Cogs::Core
14
{
15
struct
RenderItem;
16
struct
RenderTaskContext;
17
struct
ListObjectBuffer;
18
struct
RenderListTask;
19
20
struct
DrawContext
21
{
22
Context
* context =
nullptr
;
23
Renderer
* renderer =
nullptr
;
24
IGraphicsDevice
* device =
nullptr
;
25
IContext
* deviceContext =
nullptr
;
26
const
CameraData
* cameraData =
nullptr
;
27
EnginePermutation
* permutation =
nullptr
;
28
size_t
permutationIndex = 0;
29
EngineBuffers
* engineBuffers =
nullptr
;
30
RenderTarget
* renderTarget =
nullptr
;
31
RenderTaskContext
* taskContext =
nullptr
;
32
RenderListTask
* task =
nullptr
;
33
ListObjectBuffer
* listObjectBuffer =
nullptr
;
34
ClipShapeCache
* clipShapeCache =
nullptr
;
35
};
36
37
void
applyMaterialProperties(
const
DrawContext
* drawContext,
38
const
Material
* material,
39
const
ConstantBufferBindingHandle
& bufferBinding,
40
const
BufferHandle
& constantBuffer);
41
42
COGSCORE_DLL_API
void
updateSceneBindings(
const
DrawContext
* drawContext,
const
CameraData
* cameraData,
const
EffectBinding
* bindings);
43
COGSCORE_DLL_API
void
updateSceneBindings(
const
RenderTaskContext
* taskContext,
const
EffectBinding
* bindings);
44
COGSCORE_DLL_API
void
updateEnvironmentBindings(
const
DrawContext
* drawContext,
const
EffectBinding
* bindings);
45
COGSCORE_DLL_API
void
updateMaterialBindings(
const
DrawContext
* drawContext,
const
RenderMaterialInstance
* renderMaterialInstance,
const
EffectBinding
* bindings,
bool
perInstance);
46
47
COGSCORE_DLL_API
void
applyMaterialPermutation(
RenderTaskContext
* taskContext,
const
DrawContext
* drawContext,
const
EffectBinding
* bindings,
const
RenderMaterialInstance
* renderMaterialInstance);
48
COGSCORE_DLL_API
void
applyMaterialInstance(
const
DrawContext
* drawContext,
const
EffectBinding
* bindings,
const
RenderMaterialInstance
* renderMaterialInstance);
49
COGSCORE_DLL_API
void
applyMaterialPerObject(
const
DrawContext
* drawContext,
const
RenderMaterialInstance
* renderMaterialInstance,
const
RenderItem
& renderItem);
50
51
size_t
populateObjectBuffer(
const
DrawContext
* drawContext,
const
RenderItem
* items,
size_t
o,
size_t
n);
52
void
applyMaterialPerObjectBatched(
const
DrawContext
* drawContext,
const
RenderMaterialInstance
* renderMaterialInstance,
const
RenderItem
& renderItem,
size_t
o);
53
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::Renderer
Core renderer system.
Definition:
Renderer.h:28
Cogs::IGraphicsDevice
Represents a graphics device used to manage graphics resources and issue drawing commands.
Definition:
IGraphicsDevice.h:169
Cogs::Core
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Definition:
ComponentFunctions.h:10
Cogs::Core::CameraData
Contains data describing a Camera instance and its derived data structured such as matrix data and vi...
Definition:
CameraSystem.h:67
Cogs::Core::ClipShapeCache
Definition:
GenerateListTask.h:33
Cogs::Core::DrawContext
Definition:
RenderStateUpdater.h:21
Cogs::Core::EffectBinding
Definition:
EffectBinding.h:55
Cogs::Core::EngineBuffers
Definition:
EngineBuffers.h:22
Cogs::Core::EnginePermutation
Definition:
EnginePermutations.h:59
Cogs::Core::ListObjectBuffer
Definition:
GenerateListTask.h:21
Cogs::Core::Material
Material resources define the how of geometry rendering (the what is defined by Mesh and Texture reso...
Definition:
Material.h:82
Cogs::Core::RenderItem
Definition:
RenderList.h:84
Cogs::Core::RenderListTask
Definition:
RenderListTask.h:12
Cogs::Core::RenderMaterialInstance
Definition:
RenderMaterialInstance.h:21
Cogs::Core::RenderTarget
Definition:
RenderTarget.h:18
Cogs::Core::RenderTaskContext
Definition:
RenderTask.h:53
Cogs::Handle_t< ConstantBufferBindingTag >
Cogs::IContext
Represents a graphics device context which can receive rendering commands.
Definition:
IContext.h:43
Generated by
1.9.6