Class AssetRegistry
Inheritance
AssetRegistry
Assembly: PopcorningGuineaPig.Engine.dll
Syntax
public class AssetRegistry : IAssetRegistry, IDisposable
Constructors
|
Edit this page
View Source
AssetRegistry()
Default constructor — resolves VFS lazily through
Instance. Preserves legacy behavior for callers
(Game, tests, tools) that construct the registry before any host
abstraction exists.
Declaration
|
Edit this page
View Source
AssetRegistry(IVirtualFileSystem?)
Host-injected constructor. The editor's SceneBridge passes its own
VFS so asset loading from a previewed scene routes through the
editor's filesystem context instead of falling through to
Instance's VFS (story 4-1, AC #3).
Declaration
public AssetRegistry(IVirtualFileSystem? vfs)
Parameters
Methods
|
Edit this page
View Source
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
|
Edit this page
View Source
EstimateTextureBytes()
Estimates the total bytes consumed by all registered textures by
iterating texture pixel format and dimensions. O(N) over registered textures.
Intended for diagnostic snapshots — NOT for the per-frame render loop.
Declaration
public long EstimateTextureBytes()
Returns
|
Edit this page
View Source
EstimateTextureBytesByScene()
Returns texture bytes grouped by scene tag (Story 12.3). Untagged
assets are aggregated under the empty-string key. O(N) over registered
textures — intended for diagnostic snapshots.
Declaration
public IReadOnlyDictionary<string, long> EstimateTextureBytesByScene()
Returns
|
Edit this page
View Source
EstimateTextureBytesForFormat(int, int, PixelFormat)
Estimates the bytes consumed by a single texture given its pixel format.
Compressed formats round up to the next 4x4 block boundary.
Mip levels are intentionally ignored — the asset pipeline does not request mips.
Unknown formats fall back to 4 bytes/pixel (RGBA8) and emit a one-time
console warning per unknown format value so silent drift becomes visible.
Public so editor-side workshop cache estimators (e.g. ThumbnailService,
ModelThumbnailRenderer in story 12.3) can reuse the same arithmetic without
duplicating the pixel-format table.
Declaration
public static long EstimateTextureBytesForFormat(int width, int height, PixelFormat format)
Parameters
| Type |
Name |
Description |
| int |
width |
|
| int |
height |
|
| PixelFormat |
format |
|
Returns
|
Edit this page
View Source
GetAssetCounts()
Returns the current count of registered assets in each category.
O(1) — reads dictionary counts only, no enumeration.
Declaration
public AssetCounts GetAssetCounts()
Returns
|
Edit this page
View Source
GetAssetCountsByScene()
Returns asset counts grouped by scene tag (Story 12.3). The empty-string
key holds untagged assets. O(N) over registrations.
Declaration
public IReadOnlyDictionary<string, AssetCounts> GetAssetCountsByScene()
Returns
|
Edit this page
View Source
GetAsset<T>(string)
Declaration
public T GetAsset<T>(string id) where T : struct
Parameters
| Type |
Name |
Description |
| string |
id |
|
Returns
Type Parameters
|
Edit this page
View Source
GetFont(string)
Declaration
public Font? GetFont(string id)
Parameters
| Type |
Name |
Description |
| string |
id |
|
Returns
|
Edit this page
View Source
GetModelAsset(string)
Declaration
public AnimatedModelData? GetModelAsset(string id)
Parameters
| Type |
Name |
Description |
| string |
id |
|
Returns
|
Edit this page
View Source
GetShader(string)
Declaration
public Shader? GetShader(string id)
Parameters
| Type |
Name |
Description |
| string |
id |
|
Returns
|
Edit this page
View Source
GetShaderCount()
Returns the count of registered shaders. Shader GPU memory is opaque to
the engine, so byte estimation is intentionally not provided. O(1).
Declaration
public int GetShaderCount()
Returns
|
Edit this page
View Source
GetSoundAsset(string)
Declaration
public IAudioSource? GetSoundAsset(string id)
Parameters
| Type |
Name |
Description |
| string |
id |
|
Returns
| Type |
Description |
| IAudioSource |
|
|
Edit this page
View Source
RegisterAsset(string, string, AssetType)
Declaration
public void RegisterAsset(string id, string path, AssetType type)
Parameters
|
Edit this page
View Source
RegisterAsset(string, string, AssetType, string?)
Registers an asset and tags it with a scene identifier so per-scene
memory breakdowns are possible (Story 12.3 Task 1 — diagnostics
snapshots report bytes attributed by source scene). When
sceneTag is null or empty the asset is treated as
untagged ("shared" in snapshot reports). Tags are free-form and chosen
by the caller — SceneLoader uses Scene.GetType().Name.
Declaration
public void RegisterAsset(string id, string path, AssetType type, string? sceneTag)
Parameters
|
Edit this page
View Source
RegisterShader(string, string?, string?)
Declaration
public void RegisterShader(string id, string? vertexPath, string? fragmentPath)
Parameters
|
Edit this page
View Source
RegisterShader(string, string?, string?, string?)
Declaration
public void RegisterShader(string id, string? vertexPath, string? fragmentPath, string? sceneTag)
Parameters
Implements