From e8043155a8eac30fab7dee497f3dcedb06c3017d Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:55:44 +0100 Subject: [PATCH] Rename RenderGroup to GenericMesh --- PCK-Studio/PckStudio.csproj | 2 +- .../{RenderGroup.cs => GenericMesh.cs} | 27 +++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) rename PCK-Studio/Rendering/{RenderGroup.cs => GenericMesh.cs} (72%) diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index 84151575..df12b335 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -159,7 +159,7 @@ - + diff --git a/PCK-Studio/Rendering/RenderGroup.cs b/PCK-Studio/Rendering/GenericMesh.cs similarity index 72% rename from PCK-Studio/Rendering/RenderGroup.cs rename to PCK-Studio/Rendering/GenericMesh.cs index 5ac3230e..6cf2e360 100644 --- a/PCK-Studio/Rendering/RenderGroup.cs +++ b/PCK-Studio/Rendering/GenericMesh.cs @@ -1,4 +1,4 @@ -/* Copyright (c) 2023-present miku-666 +/* Copyright (c) 2024-present miku-666 * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. @@ -17,12 +17,14 @@ **/ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Runtime.InteropServices; using OpenTK.Graphics.OpenGL; +using PckStudio.Rendering.Shader; namespace PckStudio.Rendering { - internal class RenderGroup where T : struct, IVertexLayout + internal class GenericMesh where T : struct, IVertexLayout { internal string Name { get; } @@ -37,8 +39,9 @@ namespace PckStudio.Rendering private IndexBuffer indexBuffer; private readonly VertexBufferLayout _layout; private readonly PrimitiveType drawType; + private DrawContext drawContext; - internal RenderGroup(string name, PrimitiveType type) + protected GenericMesh(string name, PrimitiveType type) { Name = name; drawType = type; @@ -55,7 +58,7 @@ namespace PckStudio.Rendering indices.Clear(); } - internal RenderBuffer GetRenderBuffer() + protected void Submit() { indexBuffer?.Dispose(); vertexBuffer.Dispose(); @@ -67,8 +70,22 @@ namespace PckStudio.Rendering vertexArray.AddBuffer(vertexBuffer, _layout); indexBuffer = IndexBuffer.Create(indices.ToArray()); + drawContext = new DrawContext(vertexArray, indexBuffer, drawType); + } - return new RenderBuffer(vertexArray, indexBuffer, drawType); + public void Draw(ShaderProgram shader) + { + if (drawContext == null) + { + Trace.TraceError($"[{nameof(GenericMesh)}] Field: 'drawContext' is null."); + return; + } + if (shader == null) + { + Trace.TraceError($"[{nameof(GenericMesh)}] Parameter: 'shader' is null."); + return; + } + Renderer.Draw(shader, drawContext); } } } \ No newline at end of file