From 8b4a373efa01ce2c685734cf85237456f8885944 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Tue, 28 Jun 2022 11:30:07 +0200 Subject: [PATCH] update wlroots dep --- src/helpers/MiscFunctions.cpp | 58 ++++++++++++++++++++++++++++++++++- src/helpers/MiscFunctions.hpp | 4 ++- src/render/OpenGL.cpp | 2 +- subprojects/wlroots | 2 +- 4 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index d082799f..d5eece67 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -4,6 +4,41 @@ #include "../Compositor.hpp" #include +static const float transforms[][9] = {{ + 1.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + 0.0f, 1.0f, 0.0f, + -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + -1.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + 0.0f, -1.0f, 0.0f, + 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + -1.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + 0.0f, 1.0f, 0.0f, + 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + 1.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + },{ + 0.0f, -1.0f, 0.0f, + -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, + }, +}; + void addWLSignal(wl_signal* pSignal, wl_listener* pListener, void* pOwner, std::string ownerString) { ASSERT(pSignal); ASSERT(pListener); @@ -264,4 +299,25 @@ void logSystemInfo() { Debug::log(LOG, "os-release:"); Debug::log(NONE, "%s", execAndGet("cat /etc/os-release").c_str()); -} \ No newline at end of file +} + +void matrixProjection(float mat[9], int w, int h, wl_output_transform tr) { + memset(mat, 0, sizeof(*mat) * 9); + + const float* t = transforms[tr]; + float x = 2.0f / w; + float y = 2.0f / h; + + // Rotation + reflection + mat[0] = x * t[0]; + mat[1] = x * t[1]; + mat[3] = y * -t[3]; + mat[4] = y * -t[4]; + + // Translation + mat[2] = -copysign(1.0f, mat[0] + mat[1]); + mat[5] = -copysign(1.0f, mat[3] + mat[4]); + + // Identity + mat[8] = 1.0f; +} diff --git a/src/helpers/MiscFunctions.hpp b/src/helpers/MiscFunctions.hpp index 733b7ca9..108ac7f7 100644 --- a/src/helpers/MiscFunctions.hpp +++ b/src/helpers/MiscFunctions.hpp @@ -14,4 +14,6 @@ float vecToRectDistanceSquared(const Vector2D& vec, const Vector2D& p1, const Ve void logSystemInfo(); std::string execAndGet(const char*); -float getPlusMinusKeywordResult(std::string in, float relative); \ No newline at end of file +float getPlusMinusKeywordResult(std::string in, float relative); + +void matrixProjection(float mat[9], int w, int h, wl_output_transform tr); \ No newline at end of file diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index efd5476a..2111dca0 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -144,7 +144,7 @@ void CHyprOpenGLImpl::begin(SMonitor* pMonitor, pixman_region32_t* pDamage, bool glViewport(0, 0, pMonitor->vecPixelSize.x, pMonitor->vecPixelSize.y); - wlr_matrix_projection(m_RenderData.projection, pMonitor->vecPixelSize.x, pMonitor->vecPixelSize.y, WL_OUTPUT_TRANSFORM_NORMAL); // TODO: this is deprecated + matrixProjection(m_RenderData.projection, pMonitor->vecPixelSize.x, pMonitor->vecPixelSize.y, WL_OUTPUT_TRANSFORM_NORMAL); glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); diff --git a/subprojects/wlroots b/subprojects/wlroots index b89ed901..5c4384a1 160000 --- a/subprojects/wlroots +++ b/subprojects/wlroots @@ -1 +1 @@ -Subproject commit b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc +Subproject commit 5c4384a1330faedf975c8b8644881d50390f3613