VTK
dox/Rendering/OpenGL/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 "vtkRenderingOpenGLModule.h" // For export macro
00055 #include "vtkImageProcessingPass.h"
00056 
00057 class vtkOpenGLRenderWindow;
00058 class vtkDepthPeelingPassLayerList; // Pimpl
00059 class vtkShaderProgram2;
00060 class vtkShader2;
00061 class vtkFrameBufferObject;
00062 class vtkTextureObject;
00063 
00064 class VTKRENDERINGOPENGL_EXPORT vtkGaussianBlurPass : public vtkImageProcessingPass
00065 {
00066 public:
00067   static vtkGaussianBlurPass *New();
00068   vtkTypeMacro(vtkGaussianBlurPass,vtkImageProcessingPass);
00069   void PrintSelf(ostream& os, vtkIndent indent);
00070 
00071   //BTX
00073 
00075   virtual void Render(const vtkRenderState *s);
00076   //ETX
00078 
00081   void ReleaseGraphicsResources(vtkWindow *w);
00082 
00083  protected:
00085   vtkGaussianBlurPass();
00086 
00088   virtual ~vtkGaussianBlurPass();
00089 
00091 
00092   vtkFrameBufferObject *FrameBufferObject;
00093   vtkTextureObject *Pass1; // render target for the scene
00094   vtkTextureObject *Pass2; // render target for the horizontal pass
00095   vtkShaderProgram2 *BlurProgram; // blur shader
00097 
00098   bool Supported;
00099   bool SupportProbed;
00100 
00101  private:
00102   vtkGaussianBlurPass(const vtkGaussianBlurPass&);  // Not implemented.
00103   void operator=(const vtkGaussianBlurPass&);  // Not implemented.
00104 };
00105 
00106 #endif