Files
vimix/ImageProcessingShader.h
2021-04-18 10:58:03 +02:00

50 lines
1.0 KiB
C++

#ifndef IMAGEPROCESSINGSHADER_H
#define IMAGEPROCESSINGSHADER_H
#include <glm/glm.hpp>
#include "ImageShader.h"
class ImageProcessingShader : public Shader
{
public:
ImageProcessingShader();
void use() override;
void reset() override;
void accept(Visitor& v) override;
void copy(ImageProcessingShader const& S);
// color effects
float brightness; // [-1 1]
float contrast; // [-1 1]
float saturation; // [-1 1]
float hueshift; // [0 1]
float threshold; // [0 1]
float lumakey; // [0 1]
// gamma
glm::vec4 gamma;
glm::vec4 levels;
// discrete operations
int nbColors;
int invert;
// chroma key
glm::vec4 chromakey;
float chromadelta;
// filter identifyer
// [0] No filter
// [1 4] 4 x kernel operations; Blur, Sharpen, Edge, Emboss
// [5] 1 x convolution opening (denoising)
// [6 11] 6 x convolutions: erosion 3x3, 5x5, 7x7, dilation 3x3, 5x5, 7x7
int filterid;
static const char* filter_names[12];
};
#endif // IMAGEPROCESSINGSHADER_H