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}