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