00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkGaussianBlurPass.h,v $ 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 "vtkRenderPass.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 vtkRenderPass 00064 { 00065 public: 00066 static vtkGaussianBlurPass *New(); 00067 vtkTypeRevisionMacro(vtkGaussianBlurPass,vtkRenderPass); 00068 void PrintSelf(ostream& os, vtkIndent indent); 00069 00072 virtual void Render(const vtkRenderState *s); 00073 00076 void ReleaseGraphicsResources(vtkWindow *w); 00077 00079 00083 vtkGetObjectMacro(DelegatePass,vtkRenderPass); 00084 virtual void SetDelegatePass(vtkRenderPass *delegatePass); 00086 00087 protected: 00089 vtkGaussianBlurPass(); 00090 00092 virtual ~vtkGaussianBlurPass(); 00093 00094 vtkRenderPass *DelegatePass; 00095 00097 00098 vtkFrameBufferObject *FrameBufferObject; 00099 vtkTextureObject *Pass1; // render target for the scene 00100 vtkTextureObject *Pass2; // render target for the horizontal pass 00101 vtkShaderProgram2 *BlurProgram; // blur shader 00103 00104 private: 00105 vtkGaussianBlurPass(const vtkGaussianBlurPass&); // Not implemented. 00106 void operator=(const vtkGaussianBlurPass&); // Not implemented. 00107 }; 00108 00109 #endif