Cogs.Core
RenderTexture.h
1#pragma once
2
3#include "RenderResourceBase.h"
4
5#include <array>
6
7#include "Rendering/TextureData.h"
8#include "Utilities/Expressions.h"
9
10namespace Cogs
11{
12 class IGraphicsDevice;
13 class ISwapChain;
14
15 namespace Core
16 {
17 struct Texture;
18
19 struct COGSCORE_DLL_API RenderTexture : RenderResourceBase<Texture>
20 {
22
23 ActivationResult update(Texture * texture, IGraphicsDevice * device, class RenderResources * resources);
24 void update(class Renderer * renderer);
25 void release(class Renderer * renderer);
26
27 TextureDescription description;
28
30
31 // Hook for pushing a set of external textures into a rendertarget. Only used if override is set.
32 Cogs::TextureHandle textureHandles[4];
33 int count = 0;
34
36 ExpressionValue<size_t> height = 0;
37 ExpressionValue<size_t> levels = 0;
38 ExpressionValue<size_t> layers = 0;
40 ExpressionValue<size_t> samples = 1;
41
42 float clearColor[4] = {};
43 bool clearColorSet = false;
44
45 Cogs::ISwapChain* swapChain = nullptr;
46 RenderResource * sizeSource = nullptr;
47 RenderTexture * depthTexture = nullptr;
48 struct RenderTarget * renderTarget = nullptr;
49 std::array<RenderTarget *, 36> renderTargets = {};
50
51 std::unordered_map<size_t, Cogs::TextureViewHandle> views;
52 };
53 }
54}
Contains render resources used by the renderer.
Core renderer system.
Definition: Renderer.h:28
Represents a graphics device used to manage graphics resources and issue drawing commands.
ActivationResult
Defines results for resource activation.
Definition: ResourceBase.h:14
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Render resources represent Engine resources like Mesh, Effect or MaterialInstance,...
Texture resources contain raster bitmap data to use for texturing.
Definition: Texture.h:91
static const Handle_t NoHandle
Represents a handle to nothing.
Definition: Common.h:77