revert: switch back to Raylib default, keep OpenTK for future

OpenTK renderer has matrix/swap issues causing garbled output.
Raylib restored as default. OpenTK project preserved for debugging.
Normal PBR shader restored in OpenTKRenderer.
This commit is contained in:
emil28092005
2026-06-17 21:35:20 +03:00
parent f0af0a6b5e
commit ff4a3faae9
2 changed files with 12 additions and 8 deletions
+2 -1
View File
@@ -45,7 +45,7 @@ class Program
RaylibBackendRegistrar.EnsureRegistered();
VulkanBackendRegistrar.EnsureRegistered();
OpenTKBackendRegistrar.EnsureRegistered();
using var renderContext = RenderBackendFactory.Create("opentk", 1280, 720, enableValidation: false);
using var renderContext = RenderBackendFactory.Create("raylib", 1280, 720, enableValidation: false);
var window = renderContext.Window;
var input = window.Input;
using var renderer = renderContext.CreateRenderer();
@@ -298,6 +298,7 @@ class Program
// Swap buffers for OpenGL backend
if (renderContext is OpenTKRenderContext otkCtx)
otkCtx.SwapBuffers();
// Raylib handles swap internally in EndDrawing
frames++;
if (timing.TotalTime - lastFpsTime >= 1.0)
+10 -7
View File
@@ -195,13 +195,16 @@ public sealed class OpenTKRenderer : IRenderer
private void SetUniformMat4(int loc, OTKMatrix mat)
{
// OpenTK Matrix4 is row-major in memory; OpenGL expects column-major with transpose=false.
// Use transpose=true so OpenGL transposes our row-major data into column-major.
_matrixBuf[0] = mat.M11; _matrixBuf[1] = mat.M12; _matrixBuf[2] = mat.M13; _matrixBuf[3] = mat.M14;
_matrixBuf[4] = mat.M21; _matrixBuf[5] = mat.M22; _matrixBuf[6] = mat.M23; _matrixBuf[7] = mat.M24;
_matrixBuf[8] = mat.M31; _matrixBuf[9] = mat.M32; _matrixBuf[10] = mat.M33; _matrixBuf[11] = mat.M34;
_matrixBuf[12] = mat.M41; _matrixBuf[13] = mat.M42; _matrixBuf[14] = mat.M43; _matrixBuf[15] = mat.M44;
GL.UniformMatrix4(loc, 1, true, _matrixBuf);
// OpenTK Matrix4 fields: M11,M12,M13,M14, M21..M24, M31..M34, M41..M44
// These are stored in the struct as row-major (M11=row1col1).
// BUT OpenTK's Matrix4 in memory is actually column-major per its design
// (M11,M21,M31,M41 is the first column in memory).
// So we copy field-by-field and pass with transpose=false.
_matrixBuf[0] = mat.M11; _matrixBuf[1] = mat.M21; _matrixBuf[2] = mat.M31; _matrixBuf[3] = mat.M41;
_matrixBuf[4] = mat.M12; _matrixBuf[5] = mat.M22; _matrixBuf[6] = mat.M32; _matrixBuf[7] = mat.M42;
_matrixBuf[8] = mat.M13; _matrixBuf[9] = mat.M23; _matrixBuf[10] = mat.M33; _matrixBuf[11] = mat.M43;
_matrixBuf[12] = mat.M14; _matrixBuf[13] = mat.M24; _matrixBuf[14] = mat.M34; _matrixBuf[15] = mat.M44;
GL.UniformMatrix4(loc, 1, false, _matrixBuf);
}
private GLMesh GetOrUploadMesh(Entity e, EngineMesh mesh)