using Engine.Graphics.Shader; using OpenTK.Graphics.OpenGL; using OpenTK.Mathematics; namespace Engine.Graphics.Render.Mesh; public class MeshRenderer : InstancedRenderer { 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++; } }