Parent directory

shaders.cpp

1221 bytes
 1#include "shaders.hpp"
 2#include <string>
 3#include <stdexcept>
 4
 5#include <GLES2/gl2.h>
 6#include <hyprland/src/render/OpenGL.hpp>
 7
 8#include "shader_content.hpp"
 9
10Hy3Shaders::Hy3Shaders() {
11	{
12		auto& s = this->tab;
13		s.program = makeShared<CShader>();
14		if (!s.program->createProgram(std::string(SHADER_TAB_VERT), std::string(SHADER_TAB_FRAG))) {
15			throw std::runtime_error("hy3 tab shader compilation fails");
16		}
17		auto program = s.program->program();
18		s.proj = glGetUniformLocation(program, "proj");
19		s.monitorSize = glGetUniformLocation(program, "monitorSize");
20		s.pixelOffset = glGetUniformLocation(program, "pixelOffset");
21		s.pixelSize = glGetUniformLocation(program, "pixelSize");
22		s.applyBlur = glGetUniformLocation(program, "applyBlur");
23		s.blurTex = glGetUniformLocation(program, "blurTex");
24		s.opacity = glGetUniformLocation(program, "opacity");
25		s.fillColor = glGetUniformLocation(program, "fillColor");
26		s.borderColor = glGetUniformLocation(program, "borderColor");
27		s.borderWidth = glGetUniformLocation(program, "borderWidth");
28		s.outerRadius = glGetUniformLocation(program, "outerRadius");
29	}
30}
31
32Hy3Shaders* Hy3Shaders::instance() {
33	static auto* INSTANCE = new Hy3Shaders();
34	return INSTANCE;
35}