mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 21:01:52 +00:00
Added SkinnedMeshRendererComponent
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user