From 2d2fc243662fe5a24b4e3e388d3a3525a0bd48f1 Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Sun, 4 Jul 2021 15:05:00 +0500 Subject: Added RmlDebugger --- src/Render.cpp | 18 ++++++++++++++++++ src/Rml.cpp | 10 ++++++++-- src/Rml.hpp | 1 + 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/Render.cpp b/src/Render.cpp index 6aecd88..a76bba7 100644 --- a/src/Render.cpp +++ b/src/Render.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "Shader.hpp" #include "AssetManager.hpp" @@ -293,6 +294,15 @@ void Render::HandleEvents() { break; } + case SDL_SCANCODE_F8: + Rml::Debugger::SetVisible(!Rml::Debugger::IsVisible()); + break; + + case SDL_SCANCODE_F7: { + SetMouseCapture(!isMouseCaptured); + break; + } + default: break; } @@ -358,6 +368,11 @@ void Render::HandleEvents() { break; } + case SDL_MOUSEWHEEL: { + rmlContext->ProcessMouseWheel(-event.wheel.y, rmlKeymods); + break; + } + case SDL_TEXTINPUT: { rmlContext->ProcessTextInput(Rml::String(event.text.text)); break; @@ -567,4 +582,7 @@ void Render::InitRml() { Rml::Lua::Initialise(PluginSystem::GetLuaState()); rmlContext = Rml::CreateContext("default", Rml::Vector2i(renderState.WindowWidth, renderState.WindowHeight)); + + if (!Rml::Debugger::Initialise(rmlContext)) + LOG(WARNING) << "Rml debugger not initialized"; } diff --git a/src/Rml.cpp b/src/Rml.cpp index 6ed83c1..179d4b9 100644 --- a/src/Rml.cpp +++ b/src/Rml.cpp @@ -117,11 +117,15 @@ void RmlRenderInterface::RenderGeometry(Rml::Vertex* vertices, int num_vertices, } void RmlRenderInterface::EnableScissorRegion(bool enable) { - + if (enable) + glEnable(GL_SCISSOR_TEST); + else + glDisable(GL_SCISSOR_TEST); } void RmlRenderInterface::SetScissorRegion(int x, int y, int width, int height) { - + glScissor(x, vpHeight - (y + height), width, height); + glCheckError(); } bool RmlRenderInterface::LoadTexture(Rml::TextureHandle& texture_handle, Rml::Vector2i& texture_dimensions, const Rml::String& source) { @@ -161,6 +165,8 @@ void RmlRenderInterface::Update(unsigned int windowWidth, unsigned int windowHei AssetManager::GetAsset("/altcraft/shaders/rmltex")->shader->SetUniform("viewportSize", windowWidth, windowHeight); AssetManager::GetAsset("/altcraft/shaders/rmltex")->shader->SetUniform("fontTexture", 0); glCheckError(); + vpWidth = windowWidth; + vpHeight = windowHeight; } Rml::FileHandle RmlFileInterface::Open(const Rml::String& path) { diff --git a/src/Rml.hpp b/src/Rml.hpp index 6e4d857..edcdc8b 100644 --- a/src/Rml.hpp +++ b/src/Rml.hpp @@ -34,6 +34,7 @@ class RmlRenderInterface : public Rml::RenderInterface { GLuint Vao, Vbo, Ebo; + unsigned int vpWidth, vpHeight; public: RmlRenderInterface(RenderState &renderState); -- cgit v1.2.3