76010d97fe69498557ac6426a7ec6b989ac14343

Author
outfoxxed <outfoxxed@outfoxxed.me>
Committer
outfoxxed <outfoxxed@outfoxxed.me>
Date

Message

fixup: chase upstream config+render changes

Diff

This diff is truncated to protect this page.

  1diff --git a/flake.lock b/flake.lock
  2index 51f7d10b927bb0cb1f6b63de995bff0aaa21c89a..09a4f55cfc35abe0dc596b28ea9e2a4ba17d2da2 100644
  3--- a/flake.lock
  4+++ b/flake.lock
  5@@ -20,11 +20,11 @@
  6         ]
  7       },
  8       "locked": {
  9-        "lastModified": 1772460678,
 10-        "narHash": "sha256-NYaWs8fYJ38IgFld0hGSdT2LEVhrgO8SiRReBjIH7YY=",
 11+        "lastModified": 1774211390,
 12+        "narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=",
 13         "owner": "hyprwm",
 14         "repo": "aquamarine",
 15-        "rev": "5d2cb726b16ee349df443f84b64cff53221b6983",
 16+        "rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70",
 17         "type": "github"
 18       },
 19       "original": {
 20@@ -146,17 +146,17 @@
 21         "xdph": "xdph"
 22       },
 23       "locked": {
 24-        "lastModified": 1773149218,
 25-        "narHash": "sha256-m5Ewi+rgn18qPP54Um4O2zwZ02oiomlZssHvXYEUv3U=",
 26+        "lastModified": 1775343634,
 27+        "narHash": "sha256-y5X04LWh/RDH7FE3y1xEDD+RP8mkfGGiXXZ9u0hky2g=",
 28         "owner": "hyprwm",
 29         "repo": "hyprland",
 30-        "rev": "59f9f2688ac508a0584d1462151195a6c4992f99",
 31+        "rev": "3a7bd8fea2ca9711da5523dc185c05ea30ec0f35",
 32         "type": "github"
 33       },
 34       "original": {
 35         "owner": "hyprwm",
 36         "repo": "hyprland",
 37-        "rev": "59f9f2688ac508a0584d1462151195a6c4992f99",
 38+        "rev": "3a7bd8fea2ca9711da5523dc185c05ea30ec0f35",
 39         "type": "github"
 40       }
 41     },
 42@@ -324,11 +324,11 @@
 43         ]
 44       },
 45       "locked": {
 46-        "lastModified": 1772459870,
 47-        "narHash": "sha256-xxkK2Cvqxpf/4UGcJ/TyCwrvmiNWsKsJfFzHMp2bxis=",
 48+        "lastModified": 1774211405,
 49+        "narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=",
 50         "owner": "hyprwm",
 51         "repo": "hyprutils",
 52-        "rev": "e63f3a79334dec49f8eb1691f66f18115df04085",
 53+        "rev": "cb4e152dc72095a2af422956c6b689590572231a",
 54         "type": "github"
 55       },
 56       "original": {
 57@@ -378,11 +378,11 @@
 58         ]
 59       },
 60       "locked": {
 61-        "lastModified": 1772463520,
 62-        "narHash": "sha256-GIjASzYnV4fK19HnyJKmHyqyxHxIpjusK9foEA4Yo+4=",
 63+        "lastModified": 1773074819,
 64+        "narHash": "sha256-qRqYnXiKoJLRTcfaRukn7EifmST2IVBUMZOeZMAc5UA=",
 65         "owner": "hyprwm",
 66         "repo": "hyprwire",
 67-        "rev": "4e1933ae5602b350c5b6633f5c932549c9b8aca2",
 68+        "rev": "f68afd0e73687598cc2774804fedad76693046f0",
 69         "type": "github"
 70       },
 71       "original": {
 72@@ -393,11 +393,11 @@
 73     },
 74     "nixpkgs": {
 75       "locked": {
 76-        "lastModified": 1772542754,
 77-        "narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
 78+        "lastModified": 1774106199,
 79+        "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
 80         "owner": "NixOS",
 81         "repo": "nixpkgs",
 82-        "rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
 83+        "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
 84         "type": "github"
 85       },
 86       "original": {
 87@@ -417,11 +417,11 @@
 88         ]
 89       },
 90       "locked": {
 91-        "lastModified": 1772024342,
 92-        "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
 93+        "lastModified": 1774104215,
 94+        "narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=",
 95         "owner": "cachix",
 96         "repo": "git-hooks.nix",
 97-        "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
 98+        "rev": "f799ae951fde0627157f40aec28dec27b22076d0",
 99         "type": "github"
100       },
101       "original": {
102@@ -478,11 +478,11 @@
103         ]
104       },
105diff --git a/flake.nix b/flake.nix
106index e0b434451283036c4513e4f603588cbdc08246a3..d1c3e3ff3b3949188438a79c2f8309db4ec74295 100644
107--- a/flake.nix
108+++ b/flake.nix
109@@ -1,6 +1,6 @@
110 {
111   inputs = {
112-    hyprland.url = "github:hyprwm/hyprland/59f9f2688ac508a0584d1462151195a6c4992f99";
113+    hyprland.url = "github:hyprwm/hyprland/3a7bd8fea2ca9711da5523dc185c05ea30ec0f35";
114   };
115 
116   outputs = {
117diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
118index be43a3e027602880985af7519d55c205ea053f92..6532640a7aad50c35730fac917f5893e9340713b 100644
119--- a/src/Hy3Layout.cpp
120+++ b/src/Hy3Layout.cpp
121@@ -1,5 +1,6 @@
122 #include <cstdint>
123 #include <regex>
124+#include <optional>
125 #include <set>
126 
127 #include <dlfcn.h>
128@@ -15,9 +16,11 @@
129 #include <hyprland/src/plugins/PluginAPI.hpp>
130 #include <hyprland/src/plugins/PluginSystem.hpp>
131 #include <hyprland/src/xwayland/XWayland.hpp>
132+#include <hyprland/src/config/shared/workspace/WorkspaceRuleManager.hpp>
133 #include <hyprutils/math/Vector2D.hpp>
134 #include <ranges>
135 
136+#include "config/shared/complex/ComplexDataTypes.hpp"
137 #include "log.hpp"
138 #include "Hy3Layout.hpp"
139 #include "Hy3Node.hpp"
140@@ -399,12 +402,11 @@ void Hy3Layout::onWindowFocusChange(PHLWINDOW window) {
141 
142 void Hy3Layout::updateGroupBorderColors() {
143 	if (!this->root) return;
144-	static auto active_color = CConfigValue<Hyprlang::CUSTOMTYPE>("general:col.active_border");
145+	static auto active_color = ConfigValue<Hyprlang::CUSTOMTYPE, Config::CGradientValueData>("general:col.active_border");
146 
147 	for (auto& w: this->root->windows()) {
148 		if (this->shouldRenderSelected(&w)) {
149-			auto* gradient = static_cast<CGradientValueData*>((active_color.ptr())->getData());
150-			w.m_ruleApplicator->inactiveBorderColor().set(*gradient, Desktop::Types::PRIORITY_LAYOUT);
151+			w.m_ruleApplicator->inactiveBorderColor().set(*active_color, Desktop::Types::PRIORITY_LAYOUT);
152 		} else {
153 			w.m_ruleApplicator->inactiveBorderColor().unset(Desktop::Types::PRIORITY_LAYOUT);
154 		}
155@@ -1055,13 +1057,13 @@ bottom:
156 
157 Hy3Node* findTabBarAt(Hy3Node& node, Vector2D pos, Hy3Node** focused_node) {
158 	// clang-format off
159-	static const auto p_gaps_in = ConfigValue<Hyprlang::CUSTOMTYPE, CCssGapData>("general:gaps_in");
160+	static const auto p_gaps_in = ConfigValue<Hyprlang::CUSTOMTYPE, Config::CCssGapData>("general:gaps_in");
161 	static const auto tab_bar_height = ConfigValue<Hyprlang::INT>("plugin:hy3:tabs:height");
162 	static const auto tab_bar_padding = ConfigValue<Hyprlang::INT>("plugin:hy3:tabs:padding");
163 	// clang-format on
164 
165-	auto workspace_rule = g_pConfigManager->getWorkspaceRuleFor(node.layout()->workspace());
166-	auto gaps_in = workspace_rule.gapsIn.value_or(*p_gaps_in);
167+	auto workspace_rule = Config::workspaceRuleMgr()->getWorkspaceRuleFor(node.layout()->workspace());
168+	auto gaps_in = workspace_rule.and_then([](auto r) { return r.m_gapsIn; }).value_or(*p_gaps_in);
169 
170 	auto inset = *tab_bar_height + *tab_bar_padding + gaps_in.m_top;
171 
172diff --git a/src/Hy3Node.cpp b/src/Hy3Node.cpp
173index 389289b032d3f98b17a22a286b70fc33b25aec42..260ee45ab5e3af022a720644d56553b402514e0b 100644
174--- a/src/Hy3Node.cpp
175+++ b/src/Hy3Node.cpp
176@@ -8,8 +8,10 @@
177 #include <hyprland/src/config/ConfigManager.hpp>
178 #include <hyprland/src/defines.hpp>
179 #include <hyprland/src/plugins/PluginAPI.hpp>
180+#include <hyprland/src/config/shared/workspace/WorkspaceRuleManager.hpp>
181 #include <hyprutils/math/Box.hpp>
182 
183+#include "config/shared/complex/ComplexDataTypes.hpp"
184 #include "log.hpp"
185 #include "Hy3Layout.hpp"
186 #include "Hy3Node.hpp"
187@@ -324,7 +326,7 @@ Hy3Node& Hy3Node::getPlacementActor() {
188 
189 void Hy3Node::recalcSizePosRecursive(CBox offsets, bool no_animation) {
190 	// clang-format off
191-	static const auto p_gaps_in = ConfigValue<Hyprlang::CUSTOMTYPE, CCssGapData>("general:gaps_in");
192+	static const auto p_gaps_in = ConfigValue<Hyprlang::CUSTOMTYPE, Config::CCssGapData>("general:gaps_in");
193 	static const auto tab_bar_height = ConfigValue<Hyprlang::INT>("plugin:hy3:tabs:height");
194 	static const auto tab_bar_padding = ConfigValue<Hyprlang::INT>("plugin:hy3:tabs:padding");
195 	static const auto group_inset = ConfigValue<Hyprlang::INT>("plugin:hy3:group_inset");
196@@ -348,8 +350,8 @@ void Hy3Node::recalcSizePosRecursive(CBox offsets, bool no_animation) {
197 	auto tsize = this->visualBox.size();
198 
199 	auto& group = this->as_group();
200-	auto workspace_rule = g_pConfigManager->getWorkspaceRuleFor(this->layout()->workspace());
201-	auto gaps_in = workspace_rule.gapsIn.value_or(*p_gaps_in);
202+	auto workspace_rule = Config::workspaceRuleMgr()->getWorkspaceRuleFor(this->layout()->workspace());
203+	auto gaps_in = workspace_rule.and_then([](auto r) { return r.m_gapsIn; }).value_or(*p_gaps_in);
204 
205 	auto expand_focused = group.expand_focused != ExpandFocusType::NotExpanded;
206 	bool directly_contains_expanded =
207diff --git a/src/TabGroup.cpp b/src/TabGroup.cpp
208index e135c0f3c3d50a35f20734c940ecd20b9175d07e..8ba3bb8f195b932e0b197e4c971ca983da02e4c0 100644
209--- a/src/TabGroup.cpp
210+++ b/src/TabGroup.cpp
211@@ -1,6 +1,7 @@
212 #include "TabGroup.hpp"
213 #include <optional>
214 #include <utility>
215+#include <vector>
216 
217 #include <GLES2/gl2.h>
218 #include <cairo/cairo.h>
219@@ -15,6 +16,7 @@
220 #include <hyprland/src/managers/input/InputManager.hpp>
221 #include <hyprland/src/render/OpenGL.hpp>
222 #include <hyprland/src/render/Texture.hpp>
223+#include <hyprland/src/config/shared/animation/AnimationTree.hpp>
224 #include <hyprutils/math/Box.hpp>
225 #include <hyprutils/math/Region.hpp>
226 #include <hyprutils/memory/SharedPtr.hpp>
227@@ -24,6 +26,8 @@
228 #include "log.hpp"
229 #include "globals.hpp"
230 #include "render.hpp"
231+#include "render/Renderer.hpp"
232+#include "render/pass/PassElement.hpp"
233 
234 using Hyprgraphics::CColor;
235 
236@@ -50,56 +54,56 @@ Hy3TabBarEntry::Hy3TabBarEntry(Hy3TabBar& tab_bar, Hy3Node& node): tab_bar(tab_b
237 	g_pAnimationManager->createAnimation(
238 	    0.0F,
239 	    this->active,
240-	    g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"),
241+	    Config::animationTree()->getAnimationPropertyConfig("fadeSwitch"),
242 	    AVARDAMAGE_NONE
243 	);
244 
245 	g_pAnimationManager->createAnimation(
246 	    0.0F,
247 	    this->focused,
248-	    g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"),
249+	    Config::animationTree()->getAnimationPropertyConfig("fadeSwitch"),
250 	    AVARDAMAGE_NONE
251 	);
252 
253 	g_pAnimationManager->createAnimation(
254 	    0.0F,
255 	    this->urgent,
256-	    g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"),
257+	    Config::animationTree()->getAnimationPropertyConfig("fadeSwitch"),
258 	    AVARDAMAGE_NONE
259 	);
260 
261 	g_pAnimationManager->createAnimation(
262 	    0.0F,
263 	    this->active_monitor,
264-	    g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"),
265+	    Config::animationTree()->getAnimationPropertyConfig("fadeSwitch"),
266 	    AVARDAMAGE_NONE
267 	);
268 
269 	g_pAnimationManager->createAnimation(
270 	    -1.0F,
271 	    this->offset,
272-	    g_pConfigManager->getAnimationPropertyConfig("windowsMove"),
273+	    Config::animationTree()->getAnimationPropertyConfig("windowsMove"),
274 	    AVARDAMAGE_NONE
275 	);
276 
277 	g_pAnimationManager->createAnimation(
278 	    -1.0F,
279 	    this->width,
280-	    g_pConfigManager->getAnimationPropertyConfig("windowsMove"),
281+	    Config::animationTree()->getAnimationPropertyConfig("windowsMove"),
282 	    AVARDAMAGE_NONE
283 	);
284 
285 	g_pAnimationManager->createAnimation(
286 	    1.0F,
287 	    this->vertical_pos,
288-	    g_pConfigManager->getAnimationPropertyConfig("windowsMove"),
289+	    Config::animationTree()->getAnimationPropertyConfig("windowsMove"),
290 	    AVARDAMAGE_NONE
291 	);
292 
293 	g_pAnimationManager->createAnimation(
294 	    0.0F,
295 	    this->fade_opacity,
296-	    g_pConfigManager->getAnimationPropertyConfig("windowsMove"),
297+	    Config::animationTree()->getAnimationPropertyConfig("windowsMove"),
298 	    AVARDAMAGE_NONE
299 	);
300 
301@@ -215,7 +219,7 @@ void Hy3TabBarEntry::render(float scale, CBox& box, float opacity_mul) {
302 	box.round();
303 
304 	// sometimes enabled before our renderer is called
305-	g_pHyprOpenGL->scissor(nullptr);
306+	Render::GL::g_pHyprOpenGL->scissor(nullptr);
307 
308 	Hy3Render::renderTab(
309 	    box,
310@@ -325,31 +329,7 @@ void Hy3TabBarEntry::renderText(float scale, CBox& box, float opacity) {
311diff --git a/src/TabGroup.hpp b/src/TabGroup.hpp
312index dfddfc1cc18cbf59b96e5fa1f73f22e47fdf8953..be3d794f6e459ae73c6d18dabcaa69c01aefb84b 100644
313--- a/src/TabGroup.hpp
314+++ b/src/TabGroup.hpp
315@@ -2,6 +2,7 @@
316 
317 #include <optional>
318 #include <utility>
319+#include "render/pass/PassElement.hpp"
320 class Hy3TabGroup;
321 class Hy3TabBar;
322 
323@@ -34,7 +35,7 @@ struct Hy3TabGroupWrapper {
324 struct Hy3TabBarEntry {
325 	std::string window_title;
326 	bool destroying = false;
327-	SP<CTexture> texture;
328+	SP<Render::ITexture> texture;
329 	PHLANIMVAR<float> active;
330 	PHLANIMVAR<float> focused;
331 	PHLANIMVAR<float> urgent;
332@@ -125,8 +126,9 @@ public:
333 	Hy3TabPassElement(Hy3TabGroup* group): group(group) {}
334 
335 	const char* passName() override { return "Hy3TabPassElement"; }
336-	void draw(const CRegion& damage) override;
337+	std::vector<UP<IPassElement>> draw() override;
338 	bool needsLiveBlur() override { return false; }
339+	ePassElementType type() override { return EK_CUSTOM; }
340 	bool needsPrecomputeBlur() override;
341 	std::optional<CBox> boundingBox() override;
342 
343diff --git a/src/dispatchers.cpp b/src/dispatchers.cpp
344index 43d694a6f18910095136fe81223cff3aafdbc0e6..7c1f2137590ea9df17635bb0b7982e6edf50f882 100644
345--- a/src/dispatchers.cpp
346+++ b/src/dispatchers.cpp
347@@ -4,11 +4,15 @@
348 #include <hyprland/src/desktop/DesktopTypes.hpp>
349 #include <hyprland/src/plugins/PluginAPI.hpp>
350 #include <hyprutils/string/String.hpp>
351+#include <hyprutils/string/VarList.hpp>
352 
353 #include "dispatchers.hpp"
354+#include "log.hpp"
355 #include "globals.hpp"
356 #include "src/SharedDefs.hpp"
357 
358+using Hyprutils::String::CVarList;
359+
360 static Hy3Layout* hy3InstanceForAction(bool allow_fullscreen = false) {
361 	auto workspace = workspace_for_action(allow_fullscreen);
362 	if (!valid(workspace)) return nullptr;
363@@ -210,7 +214,7 @@ static SDispatchResult dispatch_focustab(std::string value) {
364 	else if (args[i] == "index") {
365 		i++;
366 		focus = TabFocus::Index;
367-		if (!isNumber(args[i])) return SDispatchResult {};
368+		if (!Hyprutils::String::isNumber(args[i])) return SDispatchResult {};
369 		index = std::stoi(args[i]);
370 		hy3_log(LOG, "Focus index '%s' -> %d, errno: %d", args[i].c_str(), index, errno);
371 	} else return SDispatchResult {};
372diff --git a/src/globals.hpp b/src/globals.hpp
373index 54062a0d38fc3d2113e27fc19d72982d28955383..eb69328d94e6bb9326f6ca60cd74afa37e65a1cb 100644
374--- a/src/globals.hpp
375+++ b/src/globals.hpp
376@@ -1,7 +1,6 @@
377 #pragma once
378 
379 #include <set>
380-#include <type_traits>
381 #include <vector>
382 
383 #include <hyprland/src/desktop/Workspace.hpp>
384@@ -10,7 +9,6 @@
385 
386 #include "Hy3Layout.hpp"
387 #include "TabGroup.hpp"
388-#include "log.hpp"
389 
390 inline HANDLE PHANDLE = nullptr;
391 
392diff --git a/src/main.cpp b/src/main.cpp
393index 50829b3408152724ee250d06a98f17f690a3dba5..fa89ef2597df84064e4f38bf250acef8e2f36d3b 100644
394--- a/src/main.cpp
395+++ b/src/main.cpp
396@@ -1,5 +1,4 @@
397 #include <hyprland/src/Compositor.hpp>
398-#include <hyprland/src/config/ConfigDataValues.hpp>
399 #include <hyprland/src/plugins/PluginAPI.hpp>
400 #include <hyprland/src/render/Renderer.hpp>
401 #include <hyprland/src/render/OpenGL.hpp>
402@@ -105,7 +104,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
403 				auto* entry = wp.get();
404 				if (!entry) continue;
405 				if (!entry->hidden
406-				    && entry->target_window == g_pHyprOpenGL->m_renderData.currentWindow.lock()
407+				    && entry->target_window == g_pHyprRenderer->m_renderData.currentWindow.lock()
408 				    && std::find(rendered_groups.begin(), rendered_groups.end(), entry)
409 				           == rendered_groups.end())
410 				{
411diff --git a/src/render.cpp b/src/render.cpp
412index 18710356d5523a6bdc2a80ca023f45a0186c9cf9..167decf92ce055da9e4cca451bf48318223e69ad 100644
413--- a/src/render.cpp
414+++ b/src/render.cpp
415@@ -3,15 +3,18 @@
416 #include <GLES2/gl2.h>
417 #include <hyprland/src/helpers/math/Math.hpp>
418 #include <hyprland/src/render/OpenGL.hpp>
419+#include <hyprland/src/render/gl/GLTexture.hpp>
420 #include <hyprland/src/render/Shader.hpp>
421 #include <hyprutils/math/Box.hpp>
422 #include <hyprutils/math/Misc.hpp>
423 #include <hyprutils/math/Vector2D.hpp>
424 
425+#include "render/Renderer.hpp"
426+#include "render/Texture.hpp"
427 #include "shaders.hpp"
428 
429+using Render::GL::g_pHyprOpenGL;
430 using Hyprutils::Math::CBox;
431-using Hyprutils::Math::HYPRUTILS_TRANSFORM_NORMAL;
432 
433 void Hy3Render::renderTab(
434     const CBox& box,
435@@ -23,7 +26,7 @@ void Hy3Render::renderTab(
436     int radius
437 ) {
438 	static auto& shader = Hy3Shaders::instance()->tab;
439-	auto& rdata = g_pHyprOpenGL->m_renderData;
440+	auto& rdata = g_pHyprRenderer->m_renderData;
441 
442 	auto rbox = box;
443 	rdata.renderModif.applyToBox(rbox);
444@@ -31,10 +34,13 @@ void Hy3Render::renderTab(
445 	const auto& monitorSize = rdata.pMonitor->m_transformedSize;
446 	auto monitorBox = CBox {Vector2D(), monitorSize};
447 
448-	auto matrix =
449-	    rdata.monitorProjection.projectBox(monitorBox, HYPRUTILS_TRANSFORM_NORMAL, monitorBox.rot);
450+	const auto monitor_inverted = Math::wlTransformToHyprutils(
451+			Math::invertTransform(g_pHyprRenderer->m_renderData.pMonitor->m_transform)
452+	);
453+
454+	Hyprutils::Math::eTransform transform = monitor_inverted;
455 
456-	auto glMatrix = rdata.projection.copy().multiply(matrix);
457+	auto glMatrix = g_pHyprRenderer->projectBoxToTarget(monitorBox, transform);
458 
459 	g_pHyprOpenGL->useShader(shader.program);
460 
461@@ -45,52 +51,54 @@ void Hy3Render::renderTab(
462 	glUniformMatrix3fv(shader.proj, 1, GL_FALSE, glMatrix.getMatrix().data());
463 #endif
464 
465-	WP<CTexture> blurTex;
466+	WP<Render::ITexture> blurTex;
467 
468 	if (blur) {
469-		blurTex = rdata.pCurrentMonData->blurFB.getTexture();
470+		blurTex = rdata.pMonitor->resources()->m_blurFB->getTexture();
471 		if (!blurTex) blur = false;
472 	}
473 
474 	if (blur) {
475-		glActiveTexture(GL_TEXTURE0);
476-		glBindTexture(blurTex->m_target, blurTex->m_texID);
477-		glUniform1i(shader.blurTex, 0);
478+		GLCALL(glActiveTexture(GL_TEXTURE0));
479+		//GLCALL(glBindTexture(blurTex->m_target, blurTex->m_texID));
480+		GLCALL(glBindTexture(GL_TEXTURE_2D, blurTex->m_texID));
481+		GLCALL(glUniform1i(shader.blurTex, 0));
482 	}
483 
484-	glUniform1i(shader.applyBlur, blur);
485+	GLCALL(glUniform1i(shader.applyBlur, blur));
486 
487 	// premultiplied
488-	glUniform4f(
489+	GLCALL(glUniform4f(
490 	    shader.fillColor,
491 	    fillColor.r * fillColor.a,
492 	    fillColor.g * fillColor.a,
493 	    fillColor.b * fillColor.a,
494 	    fillColor.a
495-	);
496+	));
497 
498 	if (borderWidth != 0) {
499-		glUniform4f(
500+		GLCALL(glUniform4f(
501 		    shader.borderColor,
502 		    borderColor.r * borderColor.a,
503 		    borderColor.g * borderColor.a,
504 		    borderColor.b * borderColor.a,
505 		    borderColor.a
506-		);
507+		));
508 	}
509 
510-	glUniform2f(shader.monitorSize, monitorSize.x, monitorSize.y);
511-	glUniform2f(shader.pixelOffset, rbox.x, rbox.y);
512-	glUniform2f(shader.pixelSize, rbox.w, rbox.h);
513-	glUniform1f(shader.opacity, opacity);
514-	glUniform1f(shader.outerRadius, radius);
515diff --git a/src/shaders.cpp b/src/shaders.cpp
516index c5694521dc7a787be6ca666ca2e4c42190b50d37..f120cb579760a272785fdb6eca462fcb7a7bc81c 100644
517--- a/src/shaders.cpp
518+++ b/src/shaders.cpp
519@@ -1,6 +1,4 @@
520 #include "shaders.hpp"
521-#include <csignal>
522-#include <exception>
523 #include <string>
524 #include <stdexcept>
525