11#include " vtkF3DUserRenderPass.h"
22
3+ #include " vtkF3DRenderer.h"
34#include " vtkObjectFactory.h"
45#include " vtkOpenGLError.h"
56#include " vtkOpenGLFramebufferObject.h"
@@ -25,6 +26,7 @@ void vtkF3DUserRenderPass::Render(const vtkRenderState* s)
2526 vtkRenderer* r = s->GetRenderer ();
2627 vtkOpenGLRenderWindow* renWin = static_cast <vtkOpenGLRenderWindow*>(r->GetRenderWindow ());
2728 vtkOpenGLState* ostate = renWin->GetState ();
29+ vtkF3DRenderer* ren = vtkF3DRenderer::SafeDownCast (r);
2830
2931 vtkOpenGLState::ScopedglEnableDisable bsaver (ostate, GL_BLEND );
3032 vtkOpenGLState::ScopedglEnableDisable dsaver (ostate, GL_DEPTH_TEST );
@@ -71,6 +73,7 @@ void vtkF3DUserRenderPass::Render(const vtkRenderState* s)
7173 vtkShaderProgram::Substitute (FSSource, " //VTK::FSQ::Decl" ,
7274 " uniform sampler2D source;\n "
7375 " uniform ivec2 resolution;\n "
76+ " uniform float time;\n "
7477 " //VTK::FSQ::Decl" );
7578
7679 vtkShaderProgram::Substitute (FSSource, " //VTK::FSQ::Decl" , this ->UserShader );
@@ -97,6 +100,15 @@ void vtkF3DUserRenderPass::Render(const vtkRenderState* s)
97100 this ->QuadHelper ->Program ->SetUniformi (" source" , this ->ColorTexture ->GetTextureUnit ());
98101 this ->QuadHelper ->Program ->SetUniform2i (" resolution" , size);
99102
103+ if (!ren)
104+ {
105+ this ->QuadHelper ->Program ->SetUniformf (" time" , 0 );
106+ }
107+ else
108+ {
109+ this ->QuadHelper ->Program ->SetUniformf (" time" , ren->GetTotalTime ());
110+ }
111+
100112 ostate->vtkglDisable (GL_BLEND );
101113 ostate->vtkglDisable (GL_DEPTH_TEST );
102114 ostate->vtkglClear (GL_DEPTH_BUFFER_BIT );
0 commit comments