mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-05 15:30:00 +01:00
50 lines
1.0 KiB
C++
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
|