Cogs.Core
Source
Renderer
EffectCache.h
1
#pragma once
2
3
#include "Rendering/Common.h"
4
#include "Rendering/IEffects.h"
5
6
#include "Foundation/StringView.h"
7
8
#include <unordered_map>
9
10
namespace
Cogs
11
{
12
namespace
Core
13
{
14
struct
EffectDescription
15
{
16
std::string vs;
17
std::string ps;
18
std::string cs;
19
20
PreprocessorDefinitions
definitions;
21
};
22
23
struct
CachedEffect
24
{
25
EffectDescription
description;
26
27
Cogs::EffectHandle
handle;
28
29
uint32_t usage = 0;
30
};
31
32
struct
EffectCache
33
{
34
void
reload(
struct
RenderTaskContext
* context);
35
void
reload(
struct
RenderTaskContext
* context,
CachedEffect
* effect);
36
37
CachedEffect
* loadEffect(
struct
RenderTaskContext
* context,
StringView
cs);
38
CachedEffect
* loadEffect(
struct
RenderTaskContext
* context,
StringView
vs,
StringView
ps);
39
CachedEffect
* loadEffect(
struct
RenderTaskContext
* context,
EffectDescription
& desc);
40
void
release(
struct
RenderTaskContext
* context,
CachedEffect
* effect);
41
42
private
:
43
std::unordered_map<size_t, CachedEffect> effects;
44
};
45
}
46
}
Cogs::StringView
Provides a weakly referenced view over the contents of a string.
Definition:
StringView.h:24
Cogs
Contains all Cogs related functionality.
Definition:
FieldSetter.h:23
Cogs::PreprocessorDefinitions
std::vector< PreprocessorDefinition > PreprocessorDefinitions
A set of preprocessor definitions.
Definition:
IEffects.h:13
Cogs::Core::CachedEffect
Definition:
EffectCache.h:24
Cogs::Core::EffectCache
Definition:
EffectCache.h:33
Cogs::Core::EffectDescription
Definition:
EffectCache.h:15
Cogs::Core::RenderTaskContext
Definition:
RenderTask.h:53
Cogs::Handle_t< EffectTag >
Generated by
1.9.6