567dc9dd20e15d95a56a81c516a70dba30bc2c9c

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

Message

fixup: account for upstream shader usage changes

Diff

  1diff --git a/flake.lock b/flake.lock
  2index 0317059c9b62778f72e544e5efe3b3da85ada681..7434f44593a11c017c258d1b99a9d4bbede4a8c9 100644
  3--- a/flake.lock
  4+++ b/flake.lock
  5@@ -145,17 +145,17 @@
  6         "xdph": "xdph"
  7       },
  8       "locked": {
  9-        "lastModified": 1746735318,
 10-        "narHash": "sha256-iN0Ge4LaVT7rATqzIrAZFSdfYuIXbe4/HGcXle7qK1g=",
 11+        "lastModified": 1747052147,
 12+        "narHash": "sha256-c0e3V7Rqu2DZuix1lRBXedInzSskow8ssQSsmqkW38o=",
 13         "owner": "hyprwm",
 14         "repo": "Hyprland",
 15-        "rev": "9958d297641b5c84dcff93f9039d80a5ad37ab00",
 16+        "rev": "da3583fd5e86044d02af9fcfac84724e02545336",
 17         "type": "github"
 18       },
 19       "original": {
 20         "owner": "hyprwm",
 21         "repo": "Hyprland",
 22-        "rev": "9958d297641b5c84dcff93f9039d80a5ad37ab00",
 23+        "rev": "da3583fd5e86044d02af9fcfac84724e02545336",
 24         "type": "github"
 25       }
 26     },
 27diff --git a/flake.nix b/flake.nix
 28index e5d1dd21b42bf438cfd358166118f9bb42c74919..eda06b17ca42e948ed3267e33ea94bff69a14f19 100644
 29--- a/flake.nix
 30+++ b/flake.nix
 31@@ -1,6 +1,6 @@
 32 {
 33   inputs = {
 34-    hyprland.url = "github:hyprwm/Hyprland?rev=9958d297641b5c84dcff93f9039d80a5ad37ab00";
 35+    hyprland.url = "github:hyprwm/Hyprland/da3583fd5e86044d02af9fcfac84724e02545336";
 36   };
 37 
 38   outputs = { self, hyprland, ... }: let
 39diff --git a/src/render.cpp b/src/render.cpp
 40index 94ef6b8a8480d16d14b7a4296db1586b61d5a2db..9ec65d8ac59ccdaee24b1b1110fd1899f52054a3 100644
 41--- a/src/render.cpp
 42+++ b/src/render.cpp
 43@@ -35,7 +35,7 @@ void Hy3Render::renderTab(
 44 
 45 	auto glMatrix = rdata.projection.copy().multiply(matrix);
 46 
 47-	glUseProgram(shader.program);
 48+	g_pHyprOpenGL->useProgram(shader.program);
 49 
 50 #ifndef GLES2
 51 	glUniformMatrix3fv(shader.proj, 1, GL_TRUE, glMatrix.getMatrix().data());
 52diff --git a/src/shaders.cpp b/src/shaders.cpp
 53index e5e011d9a11739246c08757e43a0e7c221002f14..de565497526f066fa804de2b41d9b638b7edf323 100644
 54--- a/src/shaders.cpp
 55+++ b/src/shaders.cpp
 56@@ -1,5 +1,6 @@
 57 #include "shaders.hpp"
 58 #include <csignal>
 59+#include <string>
 60 
 61 #include <GLES2/gl2.h>
 62 #include <hyprland/src/render/OpenGL.hpp>
 63@@ -9,7 +10,7 @@
 64 Hy3Shaders::Hy3Shaders() {
 65 	{
 66 		auto& s = this->tab;
 67-		s.program = Hy3Shaders::createProgram(SHADER_TAB_VERT, SHADER_TAB_FRAG);
 68+		s.program = g_pHyprOpenGL->createProgram(std::string(SHADER_TAB_VERT), std::string(SHADER_TAB_FRAG));
 69 		s.posAttrib = glGetAttribLocation(s.program, "pos");
 70 		s.proj = glGetUniformLocation(s.program, "proj");
 71 		s.monitorSize = glGetUniformLocation(s.program, "monitorSize");
 72@@ -31,65 +32,3 @@ Hy3Shaders* Hy3Shaders::instance() {
 73 	static auto* INSTANCE = new Hy3Shaders();
 74 	return INSTANCE;
 75 }
 76-
 77-GLuint Hy3Shaders::createProgram(const std::string_view vert, const std::string_view frag) {
 78-	auto vshader = compileShader(GL_VERTEX_SHADER, vert);
 79-	auto fshader = compileShader(GL_FRAGMENT_SHADER, frag);
 80-
 81-	auto program = glCreateProgram();
 82-	glAttachShader(program, vshader);
 83-	glAttachShader(program, fshader);
 84-	glLinkProgram(program);
 85-
 86-	glDetachShader(program, vshader);
 87-	glDetachShader(program, fshader);
 88-	glDeleteShader(vshader);
 89-	glDeleteShader(fshader);
 90-
 91-	GLint ok;
 92-	glGetProgramiv(program, GL_LINK_STATUS, &ok);
 93-
 94-	if (ok != GL_TRUE) {
 95-		Hy3Shaders::logShaderError(program, true);
 96-	}
 97-
 98-	return program;
 99-}
100-
101-GLuint Hy3Shaders::compileShader(GLuint type, const std::string_view src) {
102-	auto srcdata = src.data();
103-	GLint srclen = src.length();
104-
105-	auto shader = glCreateShader(type);
106-	glShaderSource(shader, 1, &srcdata, &srclen);
107-	glCompileShader(shader);
108-
109-	GLint ok;
110-	glGetShaderiv(shader, GL_COMPILE_STATUS, &ok);
111-
112-	if (ok != GL_TRUE) {
113-		Hy3Shaders::logShaderError(shader, false);
114-	}
115-
116-	return shader;
117-}
118-
119-void Hy3Shaders::logShaderError(GLuint shader, bool program) {
120-	GLint logBufferLength = 0;
121-
122-	if (program) glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &logBufferLength);
123-	else glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logBufferLength);
124-
125-	auto* logBuffer = new char[logBufferLength];
126-
127-	if (program) glGetProgramInfoLog(shader, logBufferLength, &logBufferLength, logBuffer);
128-	else glGetShaderInfoLog(shader, logBufferLength, &logBufferLength, logBuffer);
129-
130-	if (program) {
131-		Debug::log(ERR, "Failed to link shader program: {}", logBuffer);
132-	} else {
133-		Debug::log(ERR, "Failed to compile shader: {}", logBuffer);
134-	}
135-
136-	raise(SIGABRT);
137-}
138diff --git a/src/shaders.hpp b/src/shaders.hpp
139index 07d331b3e03c3168779403fb82c35f7c0dc8ab19..500c6020f9f814d9fab17e262ef9c59a0d458428 100644
140--- a/src/shaders.hpp
141+++ b/src/shaders.hpp
142@@ -1,7 +1,5 @@
143 #pragma once
144 
145-#include <string_view>
146-
147 #include <GLES2/gl2.h>
148 #include <hyprland/src/render/OpenGL.hpp>
149 
150@@ -28,8 +26,4 @@ public:
151 private:
152 	Hy3Shaders();
153 	~Hy3Shaders();
154-
155-	static GLuint createProgram(const std::string_view vert, const std::string_view frag);
156-	static GLuint compileShader(GLuint type, const std::string_view src);
157-	static void logShaderError(GLuint shader, bool program);
158 };