Cogs.Core
Extensions
TexAtlas
Source
TexAtlasRenderer.h
1
#pragma once
2
#include "Renderer/IRenderer.h"
3
#include "Resources/MaterialInstance.h"
4
5
namespace
Cogs::Core
{
6
7
struct
TexAtlasSystem;
8
9
struct
TexAtlasRenderer
:
public
IRendererExtension
10
{
11
explicit
TexAtlasRenderer
(
TexAtlasSystem
* texAtlasSystem) : texAtlasSystem(texAtlasSystem) {}
12
~TexAtlasRenderer
()
override
;
13
14
void
initialize
(
Context
* context,
IGraphicsDevice
* device)
override
;
15
void
handleEvent
(uint32_t eventId,
const
DrawContext
* renderingContext)
override
;
16
void
generateCommands(
const
RenderTaskContext
* renderingContext,
RenderList
* renderList)
override
;
17
18
TexAtlasSystem
* texAtlasSystem =
nullptr
;
19
20
struct
{
21
MeshStreamsLayout
streamsLayout;
22
Cogs::VertexBufferHandle
vertices;
23
Cogs::BufferHandle
paramBuffer;
24
} fullScreenTriangle;
25
26
// WebGL on VR headsets have an issue with copy/blits from texture arrays, so we use shader instead
27
struct
{
28
Cogs::EffectHandle
effect =
Cogs::EffectHandle::NoHandle
;
29
Cogs::InputLayoutHandle
inputLayout =
Cogs::InputLayoutHandle::NoHandle
;
30
Cogs::TextureBindingHandle
srcTexBinding =
Cogs::TextureBindingHandle::NoHandle
;
31
Cogs::SamplerStateBindingHandle
srcSamplerBinding =
Cogs::SamplerStateBindingHandle::NoHandle
;
32
Cogs::ConstantBufferBindingHandle
paramBinding =
Cogs::ConstantBufferBindingHandle::NoHandle
;
33
34
Cogs::BufferHandle
paramBuffer =
Cogs::BufferHandle::NoHandle
;
35
Cogs::SamplerStateHandle
samplerState =
Cogs::SamplerStateHandle::NoHandle
;
36
Cogs::TextureHandle
sourceTexture =
Cogs::TextureHandle::NoHandle
;
37
Cogs::DepthStencilStateHandle
depthStencilState =
Cogs::DepthStencilStateHandle::NoHandle
;
38
Cogs::BlendStateHandle
blendState =
Cogs::BlendStateHandle::NoHandle
;
39
} atlasBlit;
40
41
42
glm::vec4 frustumCorners[8];
43
bool
renderFrustum =
false
;
44
45
MeshStreamsLayout
wireStreamsLayout;
46
MaterialHandle
debugMaterial;
47
MaterialInstanceHandle
debugMaterialNoneInstance;
48
MaterialInstanceHandle
debugMaterialEvalInstance;
49
50
Cogs::IGraphicsDevice
* device =
nullptr
;
51
Cogs::VertexBufferHandle
wireBoxVertices;
52
Cogs::IndexBufferHandle
wireBoxIndices;
53
Cogs::BufferHandle
wireBoxConstants;
54
uint32_t wireBoxIndexStride = 0;
55
uint32_t wireBoxIndexCount = 0;
56
57
};
58
59
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::IRendererExtension
Defines an extension to the renderer, capable of doing custom rendering.
Definition:
IRenderer.h:123
Cogs::IGraphicsDevice
Represents a graphics device used to manage graphics resources and issue drawing commands.
Definition:
IGraphicsDevice.h:170
Cogs::Core
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Definition:
ComponentFunctions.h:10
Cogs::Core::DrawContext
Definition:
RenderStateUpdater.h:21
Cogs::Core::MeshStreamsLayout
Definition:
MeshStreamsLayout.h:12
Cogs::Core::RenderList
Definition:
RenderList.h:302
Cogs::Core::RenderTaskContext
Definition:
RenderTask.h:53
Cogs::Core::ResourceHandle_t< Material >
Cogs::Core::TexAtlasRenderer
Definition:
TexAtlasRenderer.h:10
Cogs::Core::TexAtlasRenderer::handleEvent
void handleEvent(uint32_t eventId, const DrawContext *renderingContext) override
Called when rendering events occur.
Definition:
TexAtlasRenderer.cpp:468
Cogs::Core::TexAtlasRenderer::initialize
void initialize(Context *context, IGraphicsDevice *device) override
Initialize the extension using the given context and device.
Definition:
TexAtlasRenderer.cpp:398
Cogs::Core::TexAtlasSystem
Definition:
TexAtlasSystem.h:203
Cogs::Handle_t< BufferTag, BufferHandle >
Cogs::Handle_t< EffectTag >::NoHandle
static const Handle_t NoHandle
Represents a handle to nothing.
Definition:
Common.h:78
Generated by
1.9.6