mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-10 23:05:59 +01:00
rid of wlr more
This commit is contained in:
parent
aeb500df17
commit
c03f25e6fb
18 changed files with 26 additions and 83 deletions
4
.gitmodules
vendored
4
.gitmodules
vendored
|
@ -7,7 +7,3 @@
|
||||||
[submodule "subprojects/tracy"]
|
[submodule "subprojects/tracy"]
|
||||||
path = subprojects/tracy
|
path = subprojects/tracy
|
||||||
url = https://github.com/wolfpld/tracy
|
url = https://github.com/wolfpld/tracy
|
||||||
[submodule "subprojects/wlroots-hyprland"]
|
|
||||||
path = subprojects/wlroots-hyprland
|
|
||||||
url = https://github.com/hyprwm/wlroots-hyprland
|
|
||||||
ignore = dirty
|
|
||||||
|
|
|
@ -72,7 +72,6 @@ include_directories(
|
||||||
"subprojects/udis86/"
|
"subprojects/udis86/"
|
||||||
"protocols/")
|
"protocols/")
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
add_compile_definitions(WLR_USE_UNSTABLE)
|
|
||||||
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
|
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
|
||||||
-Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith
|
-Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith
|
||||||
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=)
|
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=)
|
||||||
|
|
4
Makefile
4
Makefile
|
@ -27,7 +27,6 @@ nopch:
|
||||||
clear:
|
clear:
|
||||||
rm -rf build
|
rm -rf build
|
||||||
rm -f ./protocols/*.h ./protocols/*.c ./protocols/*.cpp ./protocols/*.hpp
|
rm -f ./protocols/*.h ./protocols/*.c ./protocols/*.cpp ./protocols/*.hpp
|
||||||
rm -rf ./subprojects/wlroots-hyprland/build
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
$(MAKE) clear
|
$(MAKE) clear
|
||||||
|
@ -50,14 +49,11 @@ installheaders:
|
||||||
rm -fr ${PREFIX}/include/hyprland
|
rm -fr ${PREFIX}/include/hyprland
|
||||||
mkdir -p ${PREFIX}/include/hyprland
|
mkdir -p ${PREFIX}/include/hyprland
|
||||||
mkdir -p ${PREFIX}/include/hyprland/protocols
|
mkdir -p ${PREFIX}/include/hyprland/protocols
|
||||||
mkdir -p ${PREFIX}/include/hyprland/wlr
|
|
||||||
mkdir -p ${PREFIX}/share/pkgconfig
|
mkdir -p ${PREFIX}/share/pkgconfig
|
||||||
|
|
||||||
cmake --build ./build --config Release --target generate-protocol-headers
|
cmake --build ./build --config Release --target generate-protocol-headers
|
||||||
|
|
||||||
find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland
|
find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland
|
||||||
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
|
||||||
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
|
||||||
cp ./protocols/*.h* ${PREFIX}/include/hyprland/protocols
|
cp ./protocols/*.h* ${PREFIX}/include/hyprland/protocols
|
||||||
cp ./build/hyprland.pc ${PREFIX}/share/pkgconfig
|
cp ./build/hyprland.pc ${PREFIX}/share/pkgconfig
|
||||||
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
|
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
|
||||||
|
|
|
@ -13,10 +13,10 @@
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks.
|
Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
|
||||||
|
|
||||||
It provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins,
|
It provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins,
|
||||||
easy IPC, much more QoL stuff than other wlr-based compositors and more...
|
easy IPC, much more QoL stuff than other compositors and more...
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ easy IPC, much more QoL stuff than other wlr-based compositors and more...
|
||||||
|
|
||||||
- All of the eyecandy: gradient borders, blur, animations, shadows and much more
|
- All of the eyecandy: gradient borders, blur, animations, shadows and much more
|
||||||
- A lot of customization
|
- A lot of customization
|
||||||
- Much more QoL stuff than other wlr-based compositors
|
- 100% independent, no wlroots, no libweston, no kwin, no mutter.
|
||||||
- Custom bezier curves for the best animations
|
- Custom bezier curves for the best animations
|
||||||
- Powerful plugin support
|
- Powerful plugin support
|
||||||
- Built-in plugin manager
|
- Built-in plugin manager
|
||||||
|
@ -48,7 +48,6 @@ easy IPC, much more QoL stuff than other wlr-based compositors and more...
|
||||||
- Config reloaded instantly upon saving
|
- Config reloaded instantly upon saving
|
||||||
- Fully dynamic workspaces
|
- Fully dynamic workspaces
|
||||||
- Two built-in layouts and more available as plugins
|
- Two built-in layouts and more available as plugins
|
||||||
- Uses forked wlroots with QoL patches
|
|
||||||
- Global keybinds passed to your apps of choice
|
- Global keybinds passed to your apps of choice
|
||||||
- Tiling/pseudotiling/floating/fullscreen windows
|
- Tiling/pseudotiling/floating/fullscreen windows
|
||||||
- Special workspaces (scratchpads)
|
- Special workspaces (scratchpads)
|
||||||
|
@ -86,7 +85,7 @@ easy IPC, much more QoL stuff than other wlr-based compositors and more...
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
**[wlroots]** - *For their amazing library*
|
**[wlroots]** - *For powering Hyprland in the past*
|
||||||
|
|
||||||
**[tinywl]** - *For showing how 2 do stuff*
|
**[tinywl]** - *For showing how 2 do stuff*
|
||||||
|
|
||||||
|
|
|
@ -4,4 +4,4 @@ Name: Hyprland
|
||||||
URL: https://github.com/hyprwm/Hyprland
|
URL: https://github.com/hyprwm/Hyprland
|
||||||
Description: Hyprland header files
|
Description: Hyprland header files
|
||||||
Version: @HYPRLAND_VERSION@
|
Version: @HYPRLAND_VERSION@
|
||||||
Cflags: -I${prefix} -I${prefix}/hyprland/protocols -I${prefix}/hyprland -I${prefix}/hyprland/wlr
|
Cflags: -I${prefix} -I${prefix}/hyprland/protocols -I${prefix}/hyprland
|
||||||
|
|
|
@ -356,7 +356,7 @@ eHeadersErrors CPluginManager::headersValid() {
|
||||||
else
|
else
|
||||||
headers = "";
|
headers = "";
|
||||||
|
|
||||||
if (PATH.ends_with("protocols") || PATH.ends_with("wlroots-hyprland"))
|
if (PATH.ends_with("protocols"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
verHeader = trim(PATH.substr(2)) + "/hyprland/src/version.h";
|
verHeader = trim(PATH.substr(2)) + "/hyprland/src/version.h";
|
||||||
|
@ -493,11 +493,6 @@ bool CPluginManager::updateHeaders(bool force) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// le hack. Wlroots has to generate its build/include
|
|
||||||
ret = execAndGet("cd " + WORKINGDIR + "/subprojects/wlroots-hyprland && meson setup -Drenderers=gles2 -Dexamples=false build");
|
|
||||||
if (m_bVerbose)
|
|
||||||
progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "meson returned: " + ret);
|
|
||||||
|
|
||||||
progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " configured Hyprland");
|
progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " configured Hyprland");
|
||||||
progress.m_iSteps = 4;
|
progress.m_iSteps = 4;
|
||||||
progress.m_szCurrentMessage = "Installing sources";
|
progress.m_szCurrentMessage = "Installing sources";
|
||||||
|
|
|
@ -87,7 +87,7 @@ class CCompositor {
|
||||||
bool m_bSessionActive = true;
|
bool m_bSessionActive = true;
|
||||||
bool m_bDPMSStateON = true;
|
bool m_bDPMSStateON = true;
|
||||||
bool m_bUnsafeState = false; // unsafe state is when there is no monitors.
|
bool m_bUnsafeState = false; // unsafe state is when there is no monitors.
|
||||||
bool m_bNextIsUnsafe = false; // because wlroots
|
bool m_bNextIsUnsafe = false;
|
||||||
CMonitor* m_pUnsafeOutput = nullptr; // fallback output for the unsafe state
|
CMonitor* m_pUnsafeOutput = nullptr; // fallback output for the unsafe state
|
||||||
bool m_bExitTriggered = false; // For exit dispatcher
|
bool m_bExitTriggered = false; // For exit dispatcher
|
||||||
bool m_bIsShuttingDown = false;
|
bool m_bIsShuttingDown = false;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
#include <wlr/util/box.h>
|
|
||||||
#include "math/Math.hpp"
|
#include "math/Math.hpp"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <format>
|
#include <format>
|
||||||
|
|
|
@ -41,7 +41,6 @@ struct SMonitorRule {
|
||||||
|
|
||||||
class CMonitor;
|
class CMonitor;
|
||||||
|
|
||||||
// Class for wrapping the wlr state
|
|
||||||
class CMonitorState {
|
class CMonitorState {
|
||||||
public:
|
public:
|
||||||
CMonitorState(CMonitor* owner);
|
CMonitorState(CMonitor* owner);
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
inline bool wlr_backend_is_x11(void*) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void wlr_x11_output_create(void*) {}
|
|
|
@ -27,10 +27,6 @@
|
||||||
#include <GLES3/gl3ext.h>
|
#include <GLES3/gl3ext.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !WLR_HAS_X11_BACKEND
|
|
||||||
#include "helpers/X11Stubs.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NO_XWAYLAND
|
#ifdef NO_XWAYLAND
|
||||||
#define XWAYLAND false
|
#define XWAYLAND false
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "InputManager.hpp"
|
#include "InputManager.hpp"
|
||||||
#include "../../Compositor.hpp"
|
#include "../../Compositor.hpp"
|
||||||
#include "wlr/types/wlr_switch.h"
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <ranges>
|
#include <ranges>
|
||||||
#include "../../config/ConfigValue.hpp"
|
#include "../../config/ConfigValue.hpp"
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <xf86drm.h>
|
#include <xf86drm.h>
|
||||||
#include "../Compositor.hpp"
|
#include "../Compositor.hpp"
|
||||||
#include <wlr/render/drm_format_set.h>
|
|
||||||
#include "types/WLBuffer.hpp"
|
#include "types/WLBuffer.hpp"
|
||||||
|
|
||||||
#define LOGM PROTO::mesaDRM->protoLog
|
#define LOGM PROTO::mesaDRM->protoLog
|
||||||
|
|
|
@ -768,7 +768,7 @@ void CHyprOpenGLImpl::end() {
|
||||||
|
|
||||||
TRACY_GPU_ZONE("RenderEnd");
|
TRACY_GPU_ZONE("RenderEnd");
|
||||||
|
|
||||||
// end the render, copy the data to the WLR framebuffer
|
// end the render, copy the data to the main framebuffer
|
||||||
if (m_bOffloadedFramebuffer) {
|
if (m_bOffloadedFramebuffer) {
|
||||||
m_RenderData.damage = m_RenderData.finalDamage;
|
m_RenderData.damage = m_RenderData.finalDamage;
|
||||||
m_bEndFrame = true;
|
m_bEndFrame = true;
|
||||||
|
@ -1177,7 +1177,7 @@ void CHyprOpenGLImpl::renderRectWithDamage(CBox* box, const CColor& col, CRegion
|
||||||
|
|
||||||
float matrix[9];
|
float matrix[9];
|
||||||
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
||||||
m_RenderData.monitorProjection.data()); // TODO: write own, don't use WLR here
|
m_RenderData.monitorProjection.data());
|
||||||
|
|
||||||
float glMatrix[9];
|
float glMatrix[9];
|
||||||
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
||||||
|
@ -1187,7 +1187,7 @@ void CHyprOpenGLImpl::renderRectWithDamage(CBox* box, const CColor& col, CRegion
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1319,7 +1319,7 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP<CTexture> tex, CBox* pB
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1i(shader->tex, 0);
|
glUniform1i(shader->tex, 0);
|
||||||
|
@ -1447,7 +1447,7 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP<CTexture> tex, CBox* pBox) {
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1i(shader->tex, 0);
|
glUniform1i(shader->tex, 0);
|
||||||
|
@ -1498,7 +1498,7 @@ void CHyprOpenGLImpl::renderTextureMatte(SP<CTexture> tex, CBox* pBox, CFramebuf
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1i(shader->tex, 0);
|
glUniform1i(shader->tex, 0);
|
||||||
|
@ -1586,7 +1586,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURPREPARE.proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURPREPARE.proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURPREPARE.proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURPREPARE.proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1f(m_RenderData.pCurrentMonData->m_shBLURPREPARE.contrast, *PBLURCONTRAST);
|
glUniform1f(m_RenderData.pCurrentMonData->m_shBLURPREPARE.contrast, *PBLURCONTRAST);
|
||||||
|
@ -1631,7 +1631,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(pShader->proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(pShader->proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(pShader->proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(pShader->proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1f(pShader->radius, *PBLURSIZE * a); // this makes the blursize change with a
|
glUniform1f(pShader->radius, *PBLURSIZE * a); // this makes the blursize change with a
|
||||||
|
@ -1708,7 +1708,7 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, CRegion* o
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURFINISH.proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURFINISH.proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURFINISH.proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBLURFINISH.proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform1f(m_RenderData.pCurrentMonData->m_shBLURFINISH.noise, *PBLURNOISE);
|
glUniform1f(m_RenderData.pCurrentMonData->m_shBLURFINISH.noise, *PBLURNOISE);
|
||||||
|
@ -2040,7 +2040,7 @@ void CHyprOpenGLImpl::renderBorder(CBox* box, const CGradientValueData& grad, in
|
||||||
|
|
||||||
float matrix[9];
|
float matrix[9];
|
||||||
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
||||||
m_RenderData.monitorProjection.data()); // TODO: write own, don't use WLR here
|
m_RenderData.monitorProjection.data());
|
||||||
|
|
||||||
float glMatrix[9];
|
float glMatrix[9];
|
||||||
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
||||||
|
@ -2053,7 +2053,7 @@ void CHyprOpenGLImpl::renderBorder(CBox* box, const CGradientValueData& grad, in
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2116,7 +2116,7 @@ void CHyprOpenGLImpl::makeRawWindowSnapshot(PHLWINDOW pWindow, CFramebuffer* pFr
|
||||||
|
|
||||||
// we need to "damage" the entire monitor
|
// we need to "damage" the entire monitor
|
||||||
// so that we render the entire window
|
// so that we render the entire window
|
||||||
// this is temporary, doesnt mess with the actual wlr damage
|
// this is temporary, doesnt mess with the actual damage
|
||||||
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
||||||
|
|
||||||
g_pHyprRenderer->makeEGLCurrent();
|
g_pHyprRenderer->makeEGLCurrent();
|
||||||
|
@ -2167,7 +2167,7 @@ void CHyprOpenGLImpl::makeWindowSnapshot(PHLWINDOW pWindow) {
|
||||||
|
|
||||||
// we need to "damage" the entire monitor
|
// we need to "damage" the entire monitor
|
||||||
// so that we render the entire window
|
// so that we render the entire window
|
||||||
// this is temporary, doesnt mess with the actual wlr damage
|
// this is temporary, doesnt mess with the actual damage
|
||||||
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
||||||
|
|
||||||
PHLWINDOWREF ref{pWindow};
|
PHLWINDOWREF ref{pWindow};
|
||||||
|
@ -2216,7 +2216,7 @@ void CHyprOpenGLImpl::makeLayerSnapshot(PHLLS pLayer) {
|
||||||
|
|
||||||
// we need to "damage" the entire monitor
|
// we need to "damage" the entire monitor
|
||||||
// so that we render the entire window
|
// so that we render the entire window
|
||||||
// this is temporary, doesnt mess with the actual wlr damage
|
// this is temporary, doesnt mess with the actual damage
|
||||||
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
CRegion fakeDamage{0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y};
|
||||||
|
|
||||||
g_pHyprRenderer->makeEGLCurrent();
|
g_pHyprRenderer->makeEGLCurrent();
|
||||||
|
@ -2346,7 +2346,7 @@ void CHyprOpenGLImpl::renderRoundedShadow(CBox* box, int round, int range, const
|
||||||
|
|
||||||
float matrix[9];
|
float matrix[9];
|
||||||
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
projectBox(matrix, newBox, wlTransformToHyprutils(invertTransform(!m_bEndFrame ? WL_OUTPUT_TRANSFORM_NORMAL : m_RenderData.pMonitor->transform)), newBox.rot,
|
||||||
m_RenderData.monitorProjection.data()); // TODO: write own, don't use WLR here
|
m_RenderData.monitorProjection.data());
|
||||||
|
|
||||||
float glMatrix[9];
|
float glMatrix[9];
|
||||||
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
matrixMultiply(glMatrix, m_RenderData.projection, matrix);
|
||||||
|
@ -2358,7 +2358,7 @@ void CHyprOpenGLImpl::renderRoundedShadow(CBox* box, int round, int range, const
|
||||||
#ifndef GLES2
|
#ifndef GLES2
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_TRUE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_TRUE, glMatrix);
|
||||||
#else
|
#else
|
||||||
wlr_matrix_transpose(glMatrix, glMatrix);
|
matrixTranspose(glMatrix, glMatrix);
|
||||||
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_FALSE, glMatrix);
|
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_FALSE, glMatrix);
|
||||||
#endif
|
#endif
|
||||||
glUniform4f(m_RenderData.pCurrentMonData->m_shSHADOW.color, col.r, col.g, col.b, col.a * a);
|
glUniform4f(m_RenderData.pCurrentMonData->m_shSHADOW.color, col.r, col.g, col.b, col.a * a);
|
||||||
|
|
|
@ -1490,31 +1490,6 @@ void CHyprRenderer::sendFrameEventsToWorkspace(CMonitor* pMonitor, PHLWORKSPACE
|
||||||
|
|
||||||
void CHyprRenderer::setWindowScanoutMode(PHLWINDOW pWindow) {
|
void CHyprRenderer::setWindowScanoutMode(PHLWINDOW pWindow) {
|
||||||
// FIXME: fix when moved to new impl
|
// FIXME: fix when moved to new impl
|
||||||
// if (!g_pCompositor->m_sWLRLinuxDMABuf || g_pSessionLockManager->isSessionLocked())
|
|
||||||
// return;
|
|
||||||
|
|
||||||
// if (!pWindow->m_bIsFullscreen) {
|
|
||||||
// wlr_linux_dmabuf_v1_set_surface_feedback(g_pCompositor->m_sWLRLinuxDMABuf, pWindow->m_pWLSurface->resource(), nullptr);
|
|
||||||
// Debug::log(LOG, "Scanout mode OFF set for {}", pWindow);
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID);
|
|
||||||
|
|
||||||
// const wlr_linux_dmabuf_feedback_v1_init_options INIT_OPTIONS = {
|
|
||||||
// .main_renderer = g_pCompositor->m_sWLRRenderer,
|
|
||||||
// .scanout_primary_output = PMONITOR->output,
|
|
||||||
// };
|
|
||||||
|
|
||||||
// wlr_linux_dmabuf_feedback_v1 feedback = {0};
|
|
||||||
|
|
||||||
// if (!wlr_linux_dmabuf_feedback_v1_init_with_options(&feedback, &INIT_OPTIONS))
|
|
||||||
// return;
|
|
||||||
|
|
||||||
// wlr_linux_dmabuf_v1_set_surface_feedback(g_pCompositor->m_sWLRLinuxDMABuf, pWindow->m_pWLSurface->resource(), &feedback);
|
|
||||||
// wlr_linux_dmabuf_feedback_v1_finish(&feedback);
|
|
||||||
|
|
||||||
// Debug::log(LOG, "Scanout mode ON set for {}", pWindow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// taken from Sway.
|
// taken from Sway.
|
||||||
|
@ -2245,7 +2220,6 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR
|
||||||
if (WAS10B != pMonitor->enabled10bit || OLDRES != pMonitor->vecPixelSize)
|
if (WAS10B != pMonitor->enabled10bit || OLDRES != pMonitor->vecPixelSize)
|
||||||
g_pHyprOpenGL->destroyMonitorResources(pMonitor);
|
g_pHyprOpenGL->destroyMonitorResources(pMonitor);
|
||||||
|
|
||||||
// updato wlroots
|
|
||||||
g_pCompositor->arrangeMonitors();
|
g_pCompositor->arrangeMonitors();
|
||||||
|
|
||||||
pMonitor->damage.setSize(pMonitor->vecTransformedSize);
|
pMonitor->damage.setSize(pMonitor->vecTransformedSize);
|
||||||
|
|
|
@ -9,7 +9,7 @@ CTexture::CTexture() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CTexture::~CTexture() {
|
CTexture::~CTexture() {
|
||||||
if (m_bNonOwning || !g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer)
|
if (!g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_pHyprRenderer->makeEGLCurrent();
|
g_pHyprRenderer->makeEGLCurrent();
|
||||||
|
|
|
@ -38,7 +38,6 @@ class CTexture {
|
||||||
GLuint m_iTexID = 0;
|
GLuint m_iTexID = 0;
|
||||||
Vector2D m_vSize;
|
Vector2D m_vSize;
|
||||||
void* m_pEglImage = nullptr;
|
void* m_pEglImage = nullptr;
|
||||||
bool m_bNonOwning = false; // wlr
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size);
|
void createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size);
|
||||||
|
|
|
@ -299,8 +299,8 @@ void CXWM::handleClientMessage(xcb_client_message_event_t* e) {
|
||||||
auto id = e->data.data32[0];
|
auto id = e->data.data32[0];
|
||||||
auto resource = wl_client_get_object(g_pXWayland->pServer->xwaylandClient, id);
|
auto resource = wl_client_get_object(g_pXWayland->pServer->xwaylandClient, id);
|
||||||
if (resource) {
|
if (resource) {
|
||||||
auto wlrSurface = CWLSurfaceResource::fromResource(resource);
|
auto surf = CWLSurfaceResource::fromResource(resource);
|
||||||
associate(XSURF, wlrSurface);
|
associate(XSURF, surf);
|
||||||
}
|
}
|
||||||
} else if (e->type == HYPRATOMS["WL_SURFACE_SERIAL"]) {
|
} else if (e->type == HYPRATOMS["WL_SURFACE_SERIAL"]) {
|
||||||
if (XSURF->wlSerial) {
|
if (XSURF->wlSerial) {
|
||||||
|
|
Loading…
Reference in a new issue