summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-19 18:47:49 +0100
committerGitHub <noreply@github.com>2026-04-19 18:47:49 +0100
commita360c31d0434898888e710f4a5f560200f50cecf (patch)
treef68746c77b416654ec059f670e2e66af62581de3 /src/render
parent889ee4f26d77ff0c36f5c4767ef0629371fd2c18 (diff)
errorOverlay: modernize, refactor, use GPU rendering (#14122)
Improves the overlay's rendering: - GPU accelerated - supports gradients - wraps - cleaner code a bit
Diffstat (limited to 'src/render')
-rw-r--r--src/render/OpenGL.cpp14
-rw-r--r--src/render/Renderer.cpp6
-rw-r--r--src/render/Shader.cpp4
3 files changed, 12 insertions, 12 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 9883d8fc..590330a3 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -33,7 +33,7 @@
#include "../event/EventBus.hpp"
#include "../managers/screenshare/ScreenshareManager.hpp"
#include "../notification/NotificationOverlay.hpp"
-#include "hyprerror/HyprError.hpp"
+#include "errorOverlay/Overlay.hpp"
#include "macros.hpp"
#include "pass/TexPassElement.hpp"
#include "pass/RectPassElement.hpp"
@@ -916,16 +916,16 @@ void CHyprOpenGLImpl::applyScreenShader(const std::string& path) {
std::error_code ec;
if (!std::filesystem::is_regular_file(absPath, ec)) {
if (ec)
- g_pHyprError->queueError("Screen shader parser: Failed to check screen shader path: " + ec.message());
+ ErrorOverlay::overlay()->queueError("Screen shader parser: Failed to check screen shader path: " + ec.message());
else
- g_pHyprError->queueError("Screen shader parser: Screen shader path is not a regular file");
+ ErrorOverlay::overlay()->queueError("Screen shader parser: Screen shader path is not a regular file");
return;
}
std::ifstream infile(absPath);
if (!infile.good()) {
- g_pHyprError->queueError("Screen shader parser: Failed to open screen shader");
+ ErrorOverlay::overlay()->queueError("Screen shader parser: Failed to open screen shader");
return;
}
@@ -952,9 +952,9 @@ void CHyprOpenGLImpl::applyScreenShader(const std::string& path) {
// The screen shader uses the uniform
// Since the screen shader could change every frame, damage tracking *needs* to be disabled
- g_pHyprError->queueError(std::format("Screen shader: Screen shader uses uniform '{}', which requires debug:damage_tracking to be switched off.\n"
- "WARNING:(Disabling damage tracking will *massively* increase GPU utilization!",
- name));
+ ErrorOverlay::overlay()->queueError(std::format("Screen shader: Screen shader uses uniform '{}', which requires debug:damage_tracking to be switched off.\n"
+ "WARNING:(Disabling damage tracking will *massively* increase GPU utilization!",
+ name));
};
// Allow glitch shader to use time uniform whighout damage tracking
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index acd83f8f..a77e855d 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -24,7 +24,7 @@
#include "../protocols/DRMSyncobj.hpp"
#include "../protocols/LinuxDMABUF.hpp"
#include "../helpers/sync/SyncTimeline.hpp"
-#include "../hyprerror/HyprError.hpp"
+#include "../errorOverlay/Overlay.hpp"
#include "../debug/Overlay.hpp"
#include "../notification/NotificationOverlay.hpp"
#include "../layout/LayoutManager.hpp"
@@ -159,7 +159,7 @@ IHyprRenderer::IHyprRenderer() {
static auto P3 = Event::bus()->m_events.monitor.focused.listen([&](PHLMONITOR mon) {
g_pEventLoopManager->doLater([this]() {
- if (!g_pHyprError->active())
+ if (!ErrorOverlay::overlay()->active())
return;
for (auto& m : g_pCompositor->m_monitors) {
arrangeLayersForMonitor(m->m_id);
@@ -2067,7 +2067,7 @@ void IHyprRenderer::renderMonitor(PHLMONITOR pMonitor, bool commit) {
if (pMonitor == Desktop::focusState()->monitor()) {
Notification::overlay()->draw(pMonitor);
- g_pHyprError->draw();
+ ErrorOverlay::overlay()->draw();
}
// for drawing the debug overlay
diff --git a/src/render/Shader.cpp b/src/render/Shader.cpp
index dfc9045a..14601560 100644
--- a/src/render/Shader.cpp
+++ b/src/render/Shader.cpp
@@ -1,5 +1,5 @@
#include "Shader.hpp"
-#include "../hyprerror/HyprError.hpp"
+#include "../errorOverlay/Overlay.hpp"
#include "../config/ConfigValue.hpp"
#include "OpenGL.hpp"
@@ -45,7 +45,7 @@ void CShader::logShaderError(const GLuint& shader, bool program, bool silent) {
Log::logger->log(Log::ERR, "Failed to link shader: {}", FULLERROR);
if (!silent)
- g_pHyprError->queueError(FULLERROR);
+ ErrorOverlay::overlay()->queueError(FULLERROR);
}
GLuint CShader::compileShader(const GLuint& type, std::string src, bool dynamic, bool silent) {