8 #ifndef LLUVIA_CORE_OBJECT_H_
9 #define LLUVIA_CORE_OBJECT_H_
59 template <
typename T = std::
string>
Objects to manage raw portions of allocated memory.
Definition: Buffer.h:57
Represents portions of a ll::Image to be sent as parameter to a GLSL shader.
Definition: ImageView.h:149
Objects to manage images.
Definition: Image.h:74
Base class for all types that can be used in computer shaders.
Definition: Object.h:94
Object & operator=(Object &&)=delete
Move assignment.
virtual ~Object()=default
Object & operator=(const Object &)=delete
Copy assignment.
Object()=default
Default constructor.
Object(const Object &)=delete
Copy constructor.
Object(Object &&)=delete
Move constructor.
virtual ll::ObjectType getType() const noexcept=0
Gets the object type.
constexpr const std::array< std::tuple< const char *, ll::ObjectType >, 3 > ObjectTypeStrings
Object type string values used for converting ll::ObjectType to std::string and vice-versa.
Definition: Object.h:42
E stringToEnum(T &&stringValue)
Definition: enums.h:172
std::string enumToString(E &&value) noexcept
Definition: enums.h:146
ObjectType
Object types.
Definition: Object.h:29
ll::ObjectType stringToObjectType(T &&stringValue)
Converts from a string-like object to ll::ObjectType enum.
Definition: Object.h:81
T objectTypeToString(ll::ObjectType &&value) noexcept
Converts from ll::ObjectType enum value to std::string.
Definition: Object.h:60
uint32_t enum_t
Definition: enums.h:23