Mercurial > hg > orthanc-stone
diff Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp @ 914:4d1f57773b5b
Added image inversion support in GrayscaleStyleConfigurator + OpenGLFloatTextureProgram
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 19 Jul 2019 10:54:03 +0200 |
parents | ed783cbc92d7 |
children | 1091b2adeb5a |
line wrap: on
line diff
--- a/Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp Fri Jul 19 10:30:40 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp Fri Jul 19 10:54:03 2019 +0200 @@ -33,6 +33,7 @@ "uniform float u_slope; \n" "uniform float u_windowCenter; \n" "uniform float u_windowWidth; \n" + "uniform bool u_invert; \n" "uniform sampler2D u_texture; \n" "varying vec2 v_texcoord; \n" "void main() \n" @@ -50,6 +51,8 @@ " if (v >= 1.0) \n" " v = 1.0; \n" " } \n" + " if (u_invert) \n" + " v = 1.0 - v; \n" " gl_FragColor = vec4(v, v, v, 1); \n" "}"; @@ -133,7 +136,8 @@ void OpenGLFloatTextureProgram::Apply(Data& data, const AffineTransform2D& transform, float windowCenter, - float windowWidth) + float windowWidth, + bool invert) { OpenGLTextureProgram::Execution execution(program_, data.GetTexture(), transform); @@ -141,6 +145,7 @@ glUniform1f(execution.GetUniformLocation("u_offset"), data.GetOffset()); glUniform1f(execution.GetUniformLocation("u_windowCenter"), windowCenter); glUniform1f(execution.GetUniformLocation("u_windowWidth"), windowWidth); + glUniform1f(execution.GetUniformLocation("u_invert"), invert); execution.DrawTriangles(); }