From 50f33aa9f9a9aef98ca469ad31302f32b1cd39a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C5=A1a=20Bari=C5=A1i=C4=87?= Date: Thu, 4 Nov 2021 13:12:11 +0100 Subject: [PATCH] Fixed raylib example --- Example_Raylib/Example_Raylib.cs | 64 +++++++++++++------------------- 1 file changed, 25 insertions(+), 39 deletions(-) diff --git a/Example_Raylib/Example_Raylib.cs b/Example_Raylib/Example_Raylib.cs index 3c738c0..5c052b3 100644 --- a/Example_Raylib/Example_Raylib.cs +++ b/Example_Raylib/Example_Raylib.cs @@ -68,43 +68,41 @@ static void rlColor(NkColor Clr) { Rlgl.rlColor4f(Clr.R / 255.0f, Clr.G / 255.0f, Clr.B / 255.0f, Clr.A / 255.0f); } - static void Draw(NkVertex v1, NkVertex v2, NkVertex v3) { - rlColor(v1.Color); - Rlgl.rlTexCoord2f(v1.UV.X, v1.UV.Y); - Rlgl.rlVertex2f(v1.Position.X, v1.Position.Y); - - rlColor(v3.Color); - Rlgl.rlTexCoord2f(v3.UV.X, v3.UV.Y); - Rlgl.rlVertex2f(v3.Position.X, v3.Position.Y); - - rlColor(v2.Color); - Rlgl.rlTexCoord2f(v2.UV.X, v2.UV.Y); - Rlgl.rlVertex2f(v2.Position.X, v2.Position.Y); + static void DrawVert(NkVertex V) { + rlColor(V.Color); + Rlgl.rlTexCoord2f(V.UV.X, V.UV.Y); + Rlgl.rlVertex2f(V.Position.X, V.Position.Y); + } - rlColor(v2.Color); - Rlgl.rlTexCoord2f(v2.UV.X, v2.UV.Y); - Rlgl.rlVertex2f(v2.Position.X, v2.Position.Y); + static void Draw(NkVertex v1, NkVertex v2, NkVertex v3) { + DrawVert(v1); + DrawVert(v1); + DrawVert(v3); + DrawVert(v2); } public override void Render(NkHandle Userdata, RaylibTexture Texture, NkRect ClipRect, uint Offset, uint Count) { + Rlgl.rlDisableBackfaceCulling(); Raylib.BeginScissorMode((int)ClipRect.X, (int)ClipRect.Y, (int)ClipRect.W, (int)ClipRect.H); + { + Rlgl.rlSetTexture(Texture.Texture.id); + Rlgl.rlCheckRenderBatchLimit((int)Count); - Rlgl.rlSetTexture(Texture.Texture.id); - Rlgl.rlCheckRenderBatchLimit((int)Count); - Rlgl.rlBegin(Rlgl.RL_QUADS); - - for (int i = 0; i < Count; i += 3) { - NkVertex V1 = Verts[Inds[Offset + i]]; - NkVertex V2 = Verts[Inds[Offset + i + 1]]; - NkVertex V3 = Verts[Inds[Offset + i + 2]]; + Rlgl.rlBegin(Rlgl.RL_QUADS); + for (int i = 0; i < Count; i += 3) { + NkVertex V1 = Verts[Inds[Offset + i]]; + NkVertex V2 = Verts[Inds[Offset + i + 1]]; + NkVertex V3 = Verts[Inds[Offset + i + 2]]; - Draw(V1, V2, V3); - } + Draw(V1, V2, V3); + } + Rlgl.rlEnd(); - Rlgl.rlEnd(); - Rlgl.rlSetTexture(0); + Rlgl.rlSetTexture(0); + } Raylib.EndScissorMode(); + Rlgl.rlEnableBackfaceCulling(); } public void EndBuffering() { @@ -148,23 +146,11 @@ static void Main(string[] args) { if (Raylib.IsMouseButtonReleased(MouseButton.MOUSE_LEFT_BUTTON)) Dev.OnMouseButton(NuklearEvent.MouseButton.Left, LastMouseX, LastMouseY, false); - //Raylib.BeginDrawing(); - //Raylib.ClearBackground(Color.RAYWHITE); - // dispatch events, clear - - //Raylib.BeginDrawing(); - //Raylib.ClearBackground(Color.PINK); - Raylib.BeginDrawing(); Raylib.ClearBackground(Color.BLACK); Shared.DrawLoop(Dt); Raylib.EndDrawing(); - //Raylib.EndDrawing(); - - // Display - //Raylib.EndDrawing(); - Dt = SWatch.ElapsedMilliseconds / 1000.0f; SWatch.Restart(); }