VTK
|
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 =========================================================================*/ 00048 #ifndef vtkGaussianBlurPass_h 00049 #define vtkGaussianBlurPass_h 00050 00051 #include "vtkRenderingOpenGL2Module.h" // For export macro 00052 #include "vtkImageProcessingPass.h" 00053 00054 class vtkOpenGLRenderWindow; 00055 class vtkDepthPeelingPassLayerList; // Pimpl 00056 class vtkFrameBufferObject; 00057 class vtkTextureObject; 00058 namespace vtkgl 00059 { 00060 class CellBO; 00061 } 00062 00063 class VTKRENDERINGOPENGL2_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 00095 00096 // Structures for the various cell types we render. 00097 vtkgl::CellBO *BlurProgram; 00098 00099 bool Supported; 00100 bool SupportProbed; 00101 00102 private: 00103 vtkGaussianBlurPass(const vtkGaussianBlurPass&); // Not implemented. 00104 void operator=(const vtkGaussianBlurPass&); // Not implemented. 00105 }; 00106 00107 #endif