mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-15 20:13:49 -07:00
fixes a few mistakes, and skips the CM shader in cpu instead of adding a costly branch ref #9641
84 lines
2.2 KiB
C++
84 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include "../defines.hpp"
|
|
#include <unordered_map>
|
|
|
|
class CShader {
|
|
public:
|
|
~CShader();
|
|
|
|
GLuint program = 0;
|
|
GLint proj = -1;
|
|
GLint color = -1;
|
|
GLint alphaMatte = -1;
|
|
GLint texType = -1;
|
|
GLint sourceTF = -1;
|
|
GLint targetTF = -1;
|
|
GLint sourcePrimaries = -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 tex = -1;
|
|
GLint alpha = -1;
|
|
GLint posAttrib = -1;
|
|
GLint texAttrib = -1;
|
|
GLint matteTexAttrib = -1;
|
|
GLint discardOpaque = -1;
|
|
GLint discardAlpha = -1;
|
|
GLfloat discardAlphaValue = -1;
|
|
|
|
GLint topLeft = -1;
|
|
GLint bottomRight = -1;
|
|
GLint fullSize = -1;
|
|
GLint fullSizeUntransformed = -1;
|
|
GLint radius = -1;
|
|
GLint radiusOuter = -1;
|
|
GLfloat roundingPower = -1;
|
|
|
|
GLint thick = -1;
|
|
|
|
GLint halfpixel = -1;
|
|
|
|
GLint range = -1;
|
|
GLint shadowPower = -1;
|
|
GLint useAlphaMatte = -1; // always inverted
|
|
|
|
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;
|
|
|
|
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;
|
|
|
|
GLint getUniformLocation(const std::string&);
|
|
|
|
void destroy();
|
|
|
|
private:
|
|
std::unordered_map<std::string, GLint> m_muUniforms;
|
|
};
|