5#include "Resources/Buffer.h"
6#include "Resources/MaterialOptions.h"
8#include "Rendering/Base.h"
9#include "Rendering/SamplerState.h"
10#include "Rendering/Common.h"
12#include "Foundation/Reflection/TypeDatabase.h"
13#include "Foundation/Reflection/Field.h"
22 enum class PointerType;
23 enum MouseButton : int;
26 namespace ComponentModel
52template<>
inline Cogs::StringView getName<std::vector<glm::vec2>>() {
return "vector<vec2>"; }
53template<>
inline Cogs::StringView getName<std::vector<glm::vec3>>() {
return "vector<vec3>"; }
54template<>
inline Cogs::StringView getName<std::vector<glm::vec4>>() {
return "vector<vec4>"; }
55template<>
inline Cogs::StringView getName<std::vector<glm::quat>>() {
return "vector<quat>"; }
56template<>
inline Cogs::StringView getName<std::vector<glm::mat4>>() {
return "vector<mat4>"; }
58template<>
inline Cogs::StringView getName<std::vector<glm::dvec2>>() {
return "vector<dvec2>"; }
59template<>
inline Cogs::StringView getName<std::vector<glm::dvec3>>() {
return "vector<dvec3>"; }
60template<>
inline Cogs::StringView getName<std::vector<glm::dvec4>>() {
return "vector<dvec4>"; }
61template<>
inline Cogs::StringView getName<std::vector<glm::dquat>>() {
return "vector<dquat>"; }
62template<>
inline Cogs::StringView getName<std::vector<glm::dmat4>>() {
return "vector<dmat4>"; }
64template<>
inline Cogs::StringView getName<Cogs::Core::EntityPtr>() {
return "shared_entity"; }
65template<>
inline Cogs::StringView getName<Cogs::Core::WeakEntityPtr>() {
return "weak_shared_entity"; }
67template<>
inline Cogs::StringView getName<std::vector<std::shared_ptr<Cogs::ComponentModel::Entity>>>() {
return "vector<shared_entity>"; }
68template<>
inline Cogs::StringView getName<std::vector<std::weak_ptr<Cogs::ComponentModel::Entity>>>() {
return "vector<weak_shared_entity>"; }
70template<>
inline Cogs::StringView getName<Cogs::Core::ResourceBufferHandle>() {
return "ResourceBufferHandle"; }
71template<>
inline Cogs::StringView getName<Cogs::Core::MeshHandle>() {
return "MeshHandle"; }
72template<>
inline Cogs::StringView getName<Cogs::Core::FontHandle>() {
return "FontHandle"; }
73template<>
inline Cogs::StringView getName<Cogs::Core::ModelHandle>() {
return "ModelHandle"; }
74template<>
inline Cogs::StringView getName<Cogs::Core::MaterialHandle>() {
return "MaterialHandle"; }
75template<>
inline Cogs::StringView getName<Cogs::Core::MaterialInstanceHandle>() {
return "MaterialInstanceHandle"; }
76template<>
inline Cogs::StringView getName<Cogs::Core::TextureHandle>() {
return "TextureHandle"; }
77template<>
inline Cogs::StringView getName<Cogs::Core::AnimationHandle>() {
return "AnimationHandle"; }
78template<>
inline Cogs::StringView getName<Cogs::Core::GuiDocumentHandle>() {
return "GuiDocumentHandle"; }
79template<>
inline Cogs::StringView getName<Cogs::Core::AssetHandle>() {
return "AssetHandle"; }
81template<>
inline Cogs::StringView getName<std::vector<Cogs::Core::TextureHandle>>() {
return "vector<TextureHandle>"; }
82template<>
inline Cogs::StringView getName<std::vector<Cogs::Core::MaterialHandle>>() {
return "vector<MaterialHandle>"; }
83template<>
inline Cogs::StringView getName<std::vector<Cogs::Core::MaterialInstanceHandle>>() {
return "vector<MaterialInstanceHandle>"; }
85template<>
inline Cogs::StringView getName<Cogs::Core::BufferView<int>>() {
return "BufferView<int>"; }
86template<>
inline Cogs::StringView getName<Cogs::Core::BufferView<float>>() {
return "BufferView<float>"; }
87template<>
inline Cogs::StringView getName<Cogs::Core::BufferView<glm::vec3>>() {
return "BufferView<glm::vec3>"; }
88template<>
inline Cogs::StringView getName<Cogs::Core::BufferView<glm::vec4>>() {
return "BufferView<glm::vec4>"; }
90template<>
inline Cogs::StringView getName<Cogs::SamplerState::AddressMode>() {
return "AddressMode"; }
91template<>
inline Cogs::StringView getName<Cogs::SamplerState::FilterMode>() {
return "FilterMode"; }
92template<>
inline Cogs::StringView getName<Cogs::PrimitiveType>() {
return "PrimitiveType"; }
94template<>
inline Cogs::StringView getName<Cogs::GraphicsDeviceType>() {
return "GraphicsDeviceType"; }
97template<>
inline Cogs::StringView getName<Cogs::PointerType>() {
return "PointerType"; }
98template<>
inline Cogs::StringView getName<Cogs::MouseButton>() {
return "MouseButton"; }
100template<>
inline Cogs::StringView getName<Cogs::FileContentsHints>() {
return "FileContentsHints"; }
102template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::vec2>>() {
return "RangeAttribute"; }
103template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::vec3>>() {
return "RangeAttribute"; }
104template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::vec4>>() {
return "RangeAttribute"; }
106template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::ivec2>>() {
return "RangeAttribute"; }
107template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::ivec3>>() {
return "RangeAttribute"; }
108template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::ivec4>>() {
return "RangeAttribute"; }
110template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::uvec2>>() {
return "RangeAttribute"; }
111template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::uvec3>>() {
return "RangeAttribute"; }
112template<>
inline Cogs::StringView getName<Cogs::ComponentModel::RangeAttribute<glm::uvec4>>() {
return "RangeAttribute"; }
118 void initializeTypes();
Provides a weakly referenced view over the contents of a string.
Contains all Cogs related functionality.