XII Release 0.1.0
Loading...
Searching...
No Matches
xiiMaterialManager Class Reference

#include <MaterialManager.h>

Static Public Member Functions

static xiiResult Configure (const xiiMaterialGpuStorageDescription &description)
static bool IsSubsystemInitialized ()
static bool IsInitialized ()
static xiiResult EnsureInitialized ()
static void BeginFrame (xiiUInt64 uiFrameIndex, xiiUInt64 uiCompletedFrame)
static void PrepareGpuResources ()
static xiiMaterialGpuHandle RegisterMaterial (xiiSharedPtr< xiiMaterialInstance > pInstance)
static void UnregisterMaterial (xiiMaterialGpuHandle handle)
static xiiMaterialGpuHandle AcquireMaterialResource (const xiiMaterialResourceHandle &hMaterial)
static void ReleaseMaterialResource (const xiiMaterialResourceHandle &hMaterial)
static xiiMaterialGpuStorage::UploadHandles AddUploadPasses (xiiRenderGraph &graph)
static xiiRenderGraphBufferHandle AddUploadPass (xiiRenderGraph &graph)
static xiiResult ExtractRenderData (xiiMaterialGpuHandle handle, xiiMaterialRenderData &out_renderData)
static xiiMaterialGpuStorage & GetGpuStorage ()
static xiiResult CreateRuntimeMaterial (const xiiMaterialSchemaDescription &description, const xiiMaterialRuntimeState &runtimeState, xiiSharedPtr< xiiMaterialSchema > &out_pSchema, xiiSharedPtr< xiiMaterialInstance > &out_pInstance, xiiStringBuilder *out_pError=nullptr)
 Builds a generated material using the same schema validation as resource-backed materials.

Detailed Description

Process-wide facade for material instances and the frame-sliced GPU material table.

State is allocated during GraphicsCore startup rather than by a global constructor or renderer owner. This guarantees that Foundation allocators and the default GAL device are available and that all GPU references are released before device and allocator shutdown.

Member Function Documentation

◆ AcquireMaterialResource()

xiiMaterialGpuHandle xiiMaterialManager::AcquireMaterialResource ( const xiiMaterialResourceHandle & hMaterial)
staticnodiscard

Acquires the resource's immutable default instance in the global GPU table. Repeated acquisitions share one stable slot; hot reloads replace its contents without changing the slot index stored in GPU scene instances.

◆ Configure()

xiiResult xiiMaterialManager::Configure ( const xiiMaterialGpuStorageDescription & description)
staticnodiscard

Reconfigures the global GPU table. This is only valid before materials are registered. Before first consumption the description is retained without allocating GPU buffers.

◆ PrepareGpuResources()

void xiiMaterialManager::PrepareGpuResources ( )
static

Refreshes resource-backed instances and bindless texture indices after extraction has acquired new materials for the current frame. Safe to call more than once per frame.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Material/MaterialManager.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Material/Implementation/MaterialManager.cpp