5#include "Utilities/Strings.h"
7#include "Rendering/Common.h"
8#include "Rendering/DataFormat.h"
12 enum class RenderResourceType : uint8_t
23 RenderMaterialInstance,
58 void setDelayed() { flags |= RenderResourceFlags::Delayed; }
59 void setFailed() { flags |= RenderResourceFlags::Failed; }
60 void setReleased() { flags |= RenderResourceFlags::Released; flags &=
~RenderResourceFlags::Active; }
61 void setOwned() { flags |= RenderResourceFlags::Owned; }
62 void setPersistent() { flags |= RenderResourceFlags::Persistent; }
63 void setOverride() { flags |= RenderResourceFlags::Override; }
71 bool isActive()
const {
return isSet(RenderResourceFlags::Active); }
79 bool isDelayed()
const {
return isSet(RenderResourceFlags::Delayed); }
82 bool isPersistent()
const {
return isSet(RenderResourceFlags::Persistent); }
83 bool isOverride()
const {
return isSet(RenderResourceFlags::Override); }
84 bool hasFailed()
const {
return isSet(RenderResourceFlags::Failed); }
85 bool isReleased()
const {
return isSet(RenderResourceFlags::Released); }
86 bool isOwned()
const {
return isSet(RenderResourceFlags::Owned); }
88 void setName(
const StringView & str) { name = Strings::add(str); }
89 StringView getName()
const {
return Strings::get(name); }
91 RenderResourceType getType()
const {
return type; }
94 void incrementGeneration() { ++generation; }
95 uint16_t getGeneration() {
return generation; }
99 Id getIdentity()
const {
return identity; }
102 StringRef name = NoString;
104 RenderResourceType type = RenderResourceType::Unknown;
107 uint16_t generation = 0;
110 friend class RenderResources;
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
@ Persistent
The resource will persist from frame to frame, and can be considered ready for use at the beginning o...
@ Override
The resource contents are overridden from external code, and should not be updated automatically.
bool isDelayed() const
Get if the render resource is in a delayed state.
bool isActive() const
Get if the render resource is active and can be used for rendering.