Hyprland/src/render/Shader.hpp

86 lines
2.3 KiB
C++
Raw Normal View History

2022-04-04 19:44:25 +02:00
#pragma once
#include "../defines.hpp"
#include <unordered_map>
2022-04-04 19:44:25 +02:00
struct SShader {
~SShader();
2022-08-11 20:33:35 +02:00
2023-06-14 13:29:12 +02:00
GLuint program = 0;
GLint proj = -1;
GLint color = -1;
GLint alphaMatte = -1;
GLint texType = -1;
GLint skipCM = -1;
GLint sourceTF = -1;
GLint targetTF = -1;
GLint srcTFRange = -1;
GLint dstTFRange = -1;
GLint targetPrimaries = -1;
GLint maxLuminance = -1;
GLint dstMaxLuminance = -1;
GLint dstRefLuminance = -1;
GLint sdrSaturation = -1; // sdr -> hdr saturation
GLint sdrBrightness = -1; // sdr -> hdr brightness multiplier
GLint convertMatrix = -1;
2023-06-14 13:29:12 +02:00
GLint tex = -1;
GLint alpha = -1;
GLint posAttrib = -1;
GLint texAttrib = -1;
GLint matteTexAttrib = -1;
2023-06-14 13:29:12 +02:00
GLint discardOpaque = -1;
GLint discardAlpha = -1;
GLfloat discardAlphaValue = -1;
GLuint shaderVao = 0;
GLuint shaderVboPos = 0;
GLuint shaderVboUv = 0;
2023-06-14 13:29:12 +02:00
GLint topLeft = -1;
GLint bottomRight = -1;
GLint fullSize = -1;
GLint fullSizeUntransformed = -1;
GLint radius = -1;
GLint radiusOuter = -1;
GLfloat roundingPower = -1;
2023-06-14 13:29:12 +02:00
GLint thick = -1;
GLint halfpixel = -1;
GLint range = -1;
GLint shadowPower = -1;
GLint useAlphaMatte = -1; // always inverted
2023-06-14 13:29:12 +02:00
GLint applyTint = -1;
GLint tint = -1;
GLint gradient = -1;
GLint gradientLength = -1;
GLint angle = -1;
GLint gradient2 = -1;
GLint gradient2Length = -1;
GLint angle2 = -1;
GLint gradientLerp = -1;
2023-06-14 13:29:12 +02:00
float initialTime = 0;
GLint time = -1;
GLint distort = -1;
GLint wl_output = -1;
// Blur prepare
GLint contrast = -1;
// Blur
GLint passes = -1; // Used by `vibrancy`
GLint vibrancy = -1;
GLint vibrancy_darkness = -1;
// Blur finish
GLint brightness = -1;
GLint noise = -1;
void createVao();
void destroy();
};