.
This commit is contained in:
26
Engine/src/Graphics/Render/Mesh/MeshRenderer.cs
Normal file
26
Engine/src/Graphics/Render/Mesh/MeshRenderer.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Engine.Graphics.Shader;
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
using OpenTK.Mathematics;
|
||||
|
||||
namespace Engine.Graphics.Render.Mesh;
|
||||
|
||||
public class MeshRenderer : InstancedRenderer<Asset.Mesh.Mesh.Vertex, MeshInstanceVertex>
|
||||
{
|
||||
public MeshRenderer(Renderer parRenderer, int parInstanceCount, Asset.Mesh.Mesh parMesh)
|
||||
: base(parRenderer, PrimitiveType.Triangles, parInstanceCount, parMesh.Indices.ToArray(),
|
||||
parMesh.Vertices.ToArray(),
|
||||
ProgramLoader.LoadFromSource(ShaderResource.Mesh))
|
||||
{
|
||||
}
|
||||
|
||||
public void Commit(Matrix4 parModelMatrix)
|
||||
{
|
||||
if (_queuedInstanceCount >= _instanceCount)
|
||||
{
|
||||
throw new InvalidOperationException("Instance count exceeded");
|
||||
}
|
||||
|
||||
_instanceVertices[_queuedInstanceCount]._modelMatrix = parModelMatrix;
|
||||
_queuedInstanceCount++;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user