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