Optimize asset references to support direct registration to reduce Delegate memory allocations and overhead

This commit is contained in:
Wojtek Figat
2025-06-08 00:58:15 +02:00
parent bffb175a9b
commit 73c30d3d89
26 changed files with 365 additions and 141 deletions

View File

@@ -11,7 +11,7 @@
/// Renders model on the screen.
/// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Model\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API StaticModel : public ModelInstanceActor
class FLAXENGINE_API StaticModel : public ModelInstanceActor, IAssetReference
{
DECLARE_SCENE_OBJECT(StaticModel);
private:
@@ -154,11 +154,14 @@ public:
API_FUNCTION() void RemoveVertexColors();
private:
void OnModelChanged();
void OnModelLoaded();
void OnModelResidencyChanged();
void FlushVertexColors();
// [IAssetReference]
void OnAssetChanged(Asset* asset, void* caller) override;
void OnAssetLoaded(Asset* asset, void* caller) override;
void OnAssetUnloaded(Asset* asset, void* caller) override;
public:
// [ModelInstanceActor]
bool HasContentLoaded() const override;