VTK
dox/Rendering/vtkGaussianBlurPass.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkGaussianBlurPass.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00051 #ifndef __vtkGaussianBlurPass_h
00052 #define __vtkGaussianBlurPass_h
00053 
00054 #include "vtkImageProcessingPass.h"
00055 
00056 class vtkOpenGLRenderWindow;
00057 class vtkDepthPeelingPassLayerList; // Pimpl
00058 class vtkShaderProgram2;
00059 class vtkShader2;
00060 class vtkFrameBufferObject;
00061 class vtkTextureObject;
00062 
00063 class VTK_RENDERING_EXPORT vtkGaussianBlurPass : public vtkImageProcessingPass
00064 {
00065 public:
00066   static vtkGaussianBlurPass *New();
00067   vtkTypeMacro(vtkGaussianBlurPass,vtkImageProcessingPass);
00068   void PrintSelf(ostream& os, vtkIndent indent);
00069 
00070   //BTX
00072 
00074   virtual void Render(const vtkRenderState *s);
00075   //ETX
00077   
00080   void ReleaseGraphicsResources(vtkWindow *w);
00081   
00082  protected:
00084   vtkGaussianBlurPass();
00085 
00087   virtual ~vtkGaussianBlurPass();
00088  
00090 
00091   vtkFrameBufferObject *FrameBufferObject;
00092   vtkTextureObject *Pass1; // render target for the scene
00093   vtkTextureObject *Pass2; // render target for the horizontal pass
00094   vtkShaderProgram2 *BlurProgram; // blur shader
00096   
00097   bool Supported;
00098   bool SupportProbed;
00099   
00100  private:
00101   vtkGaussianBlurPass(const vtkGaussianBlurPass&);  // Not implemented.
00102   void operator=(const vtkGaussianBlurPass&);  // Not implemented.
00103 };
00104 
00105 #endif