Added SkinnedMeshRendererComponent

This commit is contained in:
Simon Lübeß
2021-09-11 16:58:00 +02:00
parent c4ed04ba96
commit 89bb475994
@@ -0,0 +1,51 @@
using System;
using GlitchyEngine.Renderer;
using GlitchyEngine.Renderer.Animation;
namespace GlitchyEngine.World
{
/// A component that allows to render a skinned mesh.
public struct SkinnedMeshRendererComponent : IDisposableComponent
{
private Material _material;
private Skeleton _skeleton;
public Material Material
{
[Inline]
get => _material;
set mut
{
if(_material == value)
return;
_material?.ReleaseRef();
_material = value;
_material?.AddRef();
}
}
public Skeleton Skeleton
{
[Inline]
get => _skeleton;
set mut
{
if(_skeleton == value)
return;
_skeleton?.ReleaseRef();
_skeleton = value;
_skeleton?.AddRef();
}
}
public static void DisposeComponent(void* component)
{
Self* meshRenderComponent = (Self*)component;
meshRenderComponent._material?.ReleaseRef();
meshRenderComponent._skeleton?.ReleaseRef();
}
}
}