From 8495c6db2859cfde6cc379f6b9df2ac3e0de6af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Tue, 26 Jul 2022 08:00:17 +0200 Subject: [PATCH] Drag Texture --- .../src/EditWindows/ComponentEditWindow.bf | 24 +++++++++++++++++++ GlitchyEngine/src/Renderer/Renderer2D.bf | 2 +- GlitchyEngine/src/World/Components.bf | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf b/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf index d2539ba..b00f508 100644 --- a/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf +++ b/GlitchyEditor/src/EditWindows/ComponentEditWindow.bf @@ -250,6 +250,30 @@ namespace GlitchyEditor.EditWindows ColorRGBA spriteColor = ColorRGBA.LinearToSRGB(spriteRendererComponent.Color); if (ImGui.ColorEdit4("Color", ref spriteColor)) spriteRendererComponent.Color = ColorRGBA.SRgbToLinear(spriteColor); + + ImGui.Button("Texture"); + + if (ImGui.BeginDragDropTarget()) + { + ImGui.Payload* payload = ImGui.AcceptDragDropPayload("CONTENT_BROWSER_ITEM"); + + if (payload != null) + { + Log.EngineLogger.Warning(""); + + StringView path = .((char8*)payload.Data, (int)payload.DataSize); + + Texture2D texture = new Texture2D(path, true); + + spriteRendererComponent.Sprite?.ReleaseRef(); + spriteRendererComponent.Sprite = texture; + } + + ImGui.EndDragDropTarget(); + } + + + ImGui.EditVector<4>("UV Transform", ref *(float[4]*)&spriteRendererComponent.UvTransform); } private static void ShowMeshRendererComponentEditor(Entity entity, MeshRendererComponent* meshRendererComponent) diff --git a/GlitchyEngine/src/Renderer/Renderer2D.bf b/GlitchyEngine/src/Renderer/Renderer2D.bf index f61fadb..1fefa3a 100644 --- a/GlitchyEngine/src/Renderer/Renderer2D.bf +++ b/GlitchyEngine/src/Renderer/Renderer2D.bf @@ -873,7 +873,7 @@ namespace GlitchyEngine.Renderer public static void DrawSprite(Matrix transform, SpriterRendererComponent* spriteRenderer, uint32 entityId) { - DrawQuad(transform, spriteRenderer.Sprite ?? s_whiteTexture, spriteRenderer.Color, .(0, 0, 1, 1), entityId); + DrawQuad(transform, spriteRenderer.Sprite ?? s_whiteTexture, spriteRenderer.Color, spriteRenderer.UvTransform, entityId); } // Textured quad pivot diff --git a/GlitchyEngine/src/World/Components.bf b/GlitchyEngine/src/World/Components.bf index a2ddadd..b9ca5fd 100644 --- a/GlitchyEngine/src/World/Components.bf +++ b/GlitchyEngine/src/World/Components.bf @@ -30,6 +30,7 @@ namespace GlitchyEngine.World { public Texture2D Sprite = null; public ColorRGBA Color = .White; + public Vector4 UvTransform = .(0, 0, 1, 1); public this() {