20 std::is_base_of_v<BaseMesh, T>,
BaseMesh,
27 std::conditional_t<std::is_base_of_v<BaseTexture, T>,
56 template <
typename ResourceTy>
61 template <
typename ResourceTy>
65 template <
typename ResourceTy>
82ResourceRef<StoredResourceTy<T>>
85 static_assert(!std::is_void_v<StoredTy>,
86 "ResourceManager::Add received an unsupported resource type.");
104 static_assert(!std::is_void_v<StoredTy>,
105 "ResourceManager::Add received an unsupported resource type.");
109 if constexpr (std::is_same_v<StoredTy, BaseMesh>) {
114 }
else if constexpr (std::is_same_v<StoredTy, BaseTexture>) {
122 if constexpr (std::is_same_v<T, BaseMesh>)
124 if constexpr (std::is_same_v<T, BaseMaterial>)
126 if constexpr (std::is_same_v<T, BaseShaderComponent>)
128 if constexpr (std::is_same_v<T, BaseShader>)
130 if constexpr (std::is_same_v<T, BaseTexture>)
142 if constexpr (std::is_same_v<T, BaseMesh>) {
144 }
else if constexpr (std::is_same_v<T, BaseMaterial>) {
146 }
else if constexpr (std::is_same_v<T, BaseShaderComponent>) {
148 }
else if constexpr (std::is_same_v<T, BaseShader>) {
150 }
else if constexpr (std::is_same_v<T, BaseTexture>) {
155 "ResourceManager::Pool received an unsupported resource type.");
159template <
typename ResourceTy>
168template <
typename ResourceTy>
173template <
typename ResourceTy>
与图形后端无关的 RGBA8 纹理资源。
Definition BaseTexture.h:19
应用级资源所有者和类型安全查询入口。 Manager 本身不是单例:Application 显式拥有它
Definition ResourceManager.h:34
ResourcePool< BaseShader > ShaderPrograms
Definition ResourceManager.h:39
ResourceTy * TryGet(ResourceRef< ResourceTy > reference)
Definition ResourceManager.h:169
ResourceManager()
Definition ResourceManager.h:42
static bool MatchesType(ResourceTy type)
Definition ResourceManager.h:121
ResourcePool< T > & Pool()
Definition ResourceManager.h:135
ResourcePool< BaseShaderComponent > Shaders
Definition ResourceManager.h:38
ResourcePool< BaseMaterial > Materials
Definition ResourceManager.h:37
ResourceRef< ResourceTy > Resolve(const ResourceRef< ResourceTy > &reference) const
Definition ResourceManager.h:161
ResourcePool< BaseTexture > Textures
Definition ResourceManager.h:40
ResourceRef< StoredResourceTy< T > > Add(std::unique_ptr< T > resource)
Definition ResourceManager.h:83
ResourcePool< BaseMesh > Meshes
Definition ResourceManager.h:36
void RegisterBuiltinResources()
Definition ResourceManager.cpp:10
资源的强类型引用,同时覆盖持久化 ID 与运行时索引两种边界。
Definition ResourceRef.h:36
std::string Id
Definition ResourceRef.h:39
const std::string & GetId() const
Definition ResourceRef.h:52
bool IsResolved() const
Definition ResourceRef.h:54
世界矩阵 描述坐标系,左手坐标系 使用 DirectX12 坐标系的描述
Definition Application.h:15
ResourceTy
Definition ResourceRef.h:10
std::conditional_t< std::is_base_of_v< BaseMesh, T >, BaseMesh, std::conditional_t< std::is_base_of_v< BaseMaterial, T >, BaseMaterial, std::conditional_t< std::is_base_of_v< BaseShaderComponent, T >, BaseShaderComponent, std::conditional_t< std::is_base_of_v< BaseShader, T >, BaseShader, std::conditional_t< std::is_base_of_v< BaseTexture, T >, BaseTexture, void > > > > > StoredResourceTy
Definition ResourceManager.h:19
材质 基于 Cook‑Torrance BRDF
Definition BaseMaterial.h:20
Shader 派生类共享的后端无关编译描述。
Definition BaseShaderComponent.h:28
一次图形绘制使用的完整 Shader 与固定管线状态描述。
Definition BaseShader.h:17