More asset handles

This commit is contained in:
Simon Lübeß
2023-03-13 20:35:36 +01:00
parent c22d122921
commit c3fb9bbd5d
11 changed files with 97 additions and 75 deletions
+8 -7
View File
@@ -3,6 +3,7 @@ using GlitchyEngine.Math;
using GlitchyEngine.Renderer;
using GlitchyEngine.Core;
using Box2D;
using GlitchyEngine.Content;
namespace GlitchyEngine.World
{
@@ -44,19 +45,19 @@ namespace GlitchyEngine.World
}
[Component("Sprite Renderer")]
struct SpriterRendererComponent : IDisposableComponent
struct SpriterRendererComponent// : IDisposableComponent
{
private Texture2D _sprite = null;
private AssetHandle<Texture2D> _sprite = .Invalid;
public Texture2D Sprite
public AssetHandle<Texture2D> Sprite
{
get => _sprite;
set mut
{
if (_sprite == value)
return;
SetReference!(_sprite, value);
_sprite = value;
//SetReference!(_sprite, value);
}
}
@@ -74,10 +75,10 @@ namespace GlitchyEngine.World
Color = color;
}
public void Dispose()
/*public void Dispose()
{
_sprite?.ReleaseRef();
}
}*/
}
struct SceneCamera : Camera
@@ -1,14 +1,15 @@
using GlitchyEngine.Renderer;
using System;
using GlitchyEngine.Content;
namespace GlitchyEngine.World
{
/// A component that allows to render a mesh.
public struct MeshRendererComponent : IDisposableComponent
public struct MeshRendererComponent// : IDisposableComponent
{
private Material _material;
private AssetHandle<Material> _material;
public Material Material
public AssetHandle<Material> Material
{
[Inline]
get => _material;
@@ -17,15 +18,13 @@ namespace GlitchyEngine.World
if(_material == value)
return;
_material?.ReleaseRef();
_material = value;
_material?.AddRef();
}
}
public void Dispose() mut
/*public void Dispose() mut
{
_material?.ReleaseRef();
}
}*/
}
}
+1 -1
View File
@@ -88,7 +88,7 @@ namespace GlitchyEngine.World
{
Serialize.Value(writer, "Color", component.Color);
Serialize.Value(writer, "IsCircle", component.IsCircle);
Serialize.Value(writer, "Sprite", component.Sprite?.Identifier);
Serialize.Value(writer, "Sprite", component.Sprite.Get().Identifier);
Serialize.Value(writer, "UvTransform", component.UvTransform);
});