4#include "MaterialInstance.h"
5#include "EffectManager.h"
6#include "MeshStreamsLayout.h"
8#include "MaterialDefinitionManager.h"
10#include "Foundation/StringView.h"
17 struct RenderPassOptions;
60 void initializeDefaultMaterial();
85 [[nodiscard]]
bool setupMaterial(
Material * material);
99 void handleDeletion(
Material * resource)
override;
104 std::unordered_map<std::string, MaterialHandle> materials;
106 std::unique_ptr<MaterialDefinitionManager> materialDefinitionManager;
122 void initialize()
override;
124 void initializeDefaultMaterialInstance();
146 int getUpdateQuota()
const override;
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Material instance manager handles creation, processing and lifetime for MaterialInstance resources.
MaterialInstanceManager(Context *context)
Constructs a MaterialInstanceManager in the given context.
Material manager handling loading and processing of Material resources.
void clear() override
Override clear to do nothing as we let loaded materials persists through clears.
MaterialManager(Context *context)
Constructs a MaterialManager in the given context.
The generic resource manager provides a base implementation for specialized resource managers to buil...
Provides a weakly referenced view over the contents of a string.
ClipShapeType
Specifices what kind of shape a clip shape has.
ActivationResult
Defines results for resource activation.
MaterialLoadFlags
Material loading flags.
@ DelayVariantLoading
Do not load any material variants, will be specified later.
Contains all Cogs related functionality.
Material instances represent a specialized Material combined with state for all its buffers and prope...
Defines loading information for Material resources.
Material resources define the how of geometry rendering (the what is defined by Mesh and Texture reso...
Resource handle base class handling reference counting of resources derived from ResourceBase.