diff options
Diffstat (limited to 'src/graphics/GPUHueSatFilter.h')
-rw-r--r-- | src/graphics/GPUHueSatFilter.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/graphics/GPUHueSatFilter.h b/src/graphics/GPUHueSatFilter.h new file mode 100644 index 0000000..b712ce1 --- /dev/null +++ b/src/graphics/GPUHueSatFilter.h @@ -0,0 +1,59 @@ +// +//// libavg - Media Playback Engine. +//// Copyright (C) 2003-2011 Ulrich von Zadow +//// +//// This library is free software; you can redistribute it and/or +//// modify it under the terms of the GNU Lesser General Public +//// License as published by the Free Software Foundation; either +//// version 2 of the License, or (at your option) any later version. +//// +//// This library is distributed in the hope that it will be useful, +//// but WITHOUT ANY WARRANTY; without even the implied warranty of +//// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//// Lesser General Public License for more details. +//// +//// You should have received a copy of the GNU Lesser General Public +//// License along with this library; if not, write to the Free Software +//// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +//// +//// Current versions can be found at www.libavg.de +//// +// + +#ifndef _GPUHueSatFilter_H_ +#define _GPUHueSatFilter_H_ + +#include "../api.h" + +#include "GPUFilter.h" +#include "GLShaderParam.h" + +namespace avg { + +class AVG_API GPUHueSatFilter: public GPUFilter +{ +public: + GPUHueSatFilter(const IntPoint& size, bool bUseAlpha, bool bStandalone=true); + virtual ~GPUHueSatFilter(); + + virtual void applyOnGPU(GLTexturePtr pSrcTex); + void setParams(int hue, int saturation=1, int lightness_offset=0, + bool colorize=false); + +private: + float m_LightnessOffset; + float m_Hue; + float m_Saturation; + bool m_bColorize; + + FloatGLShaderParamPtr m_pHueParam; + FloatGLShaderParamPtr m_pSatParam; + FloatGLShaderParamPtr m_pLightnessParam; + IntGLShaderParamPtr m_pColorizeParam; + IntGLShaderParamPtr m_pTextureParam; +}; + +typedef boost::shared_ptr<GPUHueSatFilter> GPUHueSatFilterPtr; + +} +#endif |