Cogs.Core
RenderTarget.h
1#pragma once
2#include "Foundation/Collections/SmallVector.h"
3
4#include "RenderResource.h"
5
6#include <glm/vec4.hpp>
7
8#include <vector>
9#include "Utilities/Expressions.h"
10
11namespace Cogs
12{
13 namespace Core
14 {
15 struct RenderTexture;
16
18 {
19 void update(class Renderer * renderer);
20 void release(class Renderer * renderer);
21
22 Cogs::TextureHandle get(const std::string & name);
23
24 bool checkUpdate();
25
26 std::vector<struct RenderTexture *> textures;
27 struct RenderTexture * depth = nullptr;
28
29 bool expectsSRGB = false;
30
31 uint8_t multiViewBaseIndex = 0;
32 uint8_t multiViewCount = 1;
33 uint8_t multiViewSamples = 1;
34
35 uint16_t layerIndex = 0;
36 uint16_t numLayers = 1;
37
38 uint32_t subresourceIndex = 0;
39 uint32_t depthLayerIndex = 0;
40
41 uint64_t generationHash = 0;
42
45
46 // Mip levels
47 std::vector<Cogs::RenderTargetHandle> mipLevelViews;
48
49 RenderTargetHandle renderTargetHandles[4];
50 DepthStencilHandle depthTargetHandles[4];
51
52 int width = -1;
53 int height = -1;
54 uint32_t samples = 0;
55
56 ExpressionValue<size_t> levels = 0;
57
59
60 const glm::vec4 getClearColor() { return clearColors.empty() ? glm::vec4(0.f) : clearColors[0]; }
61 };
62 }
63}
Core renderer system.
Definition: Renderer.h:28
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
static const Handle_t NoHandle
Represents a handle to nothing.
Definition: Common.h:77