Struct Manager
Defined in File shader-asset-mgr.h
Inheritance Relationships
Base Types
public CE::Assets::Cache::Store< const Asset, std::string >(Template Struct Store)public CE::State::Singleton< Manager >(Template Class Singleton)
Struct Documentation
-
struct Manager : public CE::Assets::Cache::Store<const Asset, std::string>, public CE::State::Singleton<Manager>
Declaration:
finalQualified identities share the existing provider domain.
Metadata and the resource it describes are published as one immutable generation.
Public Functions
-
std::shared_ptr<const Program> find_program(const std::string &id) const
Declaration:
[[nodiscard]]Look up an exact qualified program identity without compiling/uploading.
- Parameters:
id – Exact namespace:name key, copied only for lookup as needed.
- Returns:
Retained immutable recipe/executable pair, or null when missing. A material identity throws invalid_args. Shared cache locking protects lookup; retained handles survive replacement/clearing but retain the original native-domain limits.
-
std::shared_ptr<const CE::Rendering::Resources::Material> find_material(const std::string &id) const
Declaration:
[[nodiscard]]Look up an exact qualified material identity without native work.
- Parameters:
id – Exact namespace:name key.
- Returns:
Retained immutable material, or null when missing. A program identity throws invalid_args. Shared cache locking protects lookup; retained handles survive replacement/clearing but native use needs the original live domain.
-
void validate(const std::vector<Manifest> &manifests, CE::Rendering::Resources::Provider &provider, bool replace = false) const
Validate the complete selected recipe batch and backend CPU capabilities before publication.
- Parameters:
manifests – Stable selected program/material recipes; material program references must be selected in this batch.
provider – Compatible active loading-owner domain; a nonempty batch requires its optional Builder.
replace – False reuses existing same-kind generations; true validates replacement candidates. Duplicate/wrong-kind IDs, unselected programs, invalid recipes or unsupported capabilities reject without native construction/cache publication. An empty batch is allowed; existing provider-owner restrictions still apply.
-
void load(const std::vector<Manifest> &manifests, CE::Rendering::Resources::Provider &provider, bool replace = false)
Validate then build/publish programs before materials on the active provider owner/current context.
See also
- Parameters:
manifests – Stable selected complete recipe batch.
provider – Single supported provider domain with shader builder capability.
replace – False preserves existing same-kind keys; true replaces each successful candidate independently. Metadata/executable pairs publish as immutable generations. Native/allocation/publication failure can leave earlier new entries/replacements visible; no batch rollback occurs. Existing retained readers keep old generations.
-
std::shared_ptr<const Program> find_program(const std::string &id) const