VTK
vtkDepthOfFieldPass.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDepthOfFieldPass.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
37 #ifndef vtkDepthOfFieldPass_h
38 #define vtkDepthOfFieldPass_h
39 
40 #include "vtkRenderingOpenGL2Module.h" // For export macro
42 
43 class vtkDepthPeelingPassLayerList; // Pimpl
45 class vtkOpenGLHelper;
47 class vtkTextureObject;
48 
49 class VTKRENDERINGOPENGL2_EXPORT vtkDepthOfFieldPass : public vtkDepthImageProcessingPass
50 {
51 public:
52  static vtkDepthOfFieldPass *New();
54  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
55 
57 
62  vtkSetMacro(AutomaticFocalDistance,bool);
63  vtkGetMacro(AutomaticFocalDistance,bool);
64  vtkBooleanMacro(AutomaticFocalDistance,bool);
66 
71  void Render(const vtkRenderState *s) VTK_OVERRIDE;
72 
78  void ReleaseGraphicsResources(vtkWindow *w) VTK_OVERRIDE;
79 
80  protected:
85 
89  ~vtkDepthOfFieldPass() VTK_OVERRIDE;
90 
94  vtkOpenGLFramebufferObject *FrameBufferObject;
95  vtkTextureObject *Pass1; // render target for the scene
96  vtkTextureObject *Pass1Depth; // render target for the depth
97 
98  // Structures for the various cell types we render.
99  vtkOpenGLHelper *BlurProgram;
100 
101  bool AutomaticFocalDistance;
102 
103  private:
104  vtkDepthOfFieldPass(const vtkDepthOfFieldPass&) VTK_DELETE_FUNCTION;
105  void operator=(const vtkDepthOfFieldPass&) VTK_DELETE_FUNCTION;
106 };
107 
108 #endif
OpenGL rendering window.
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
Context in which a vtkRenderPass will render.
a simple class to control print indentation
Definition: vtkIndent.h:33
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Internal class which encapsulates OpenGL FramebufferObject.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
abstracts an OpenGL texture object.
virtual void Render(const vtkRenderState *s)=0
Perform rendering according to a render state s.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Convenient class for post-processing passes.
Implement a post-processing DOF blur pass.