VTK  9.7.1
vtkSSAAPass.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
28 #ifndef vtkSSAAPass_h
29 #define vtkSSAAPass_h
30 
31 #include "vtkRenderPass.h"
32 #include "vtkRenderingOpenGL2Module.h" // For export macro
33 #include "vtkSmartPointer.h" // for vtkSmartPointer
34 #include "vtkTextureObject.h" // for depth/color format
35 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
36 
37 #include <memory> // for unique_ptr
38 
39 VTK_ABI_NAMESPACE_BEGIN
41 class vtkOpenGLHelper;
42 class vtkRenderbuffer;
43 
44 class VTKRENDERINGOPENGL2_EXPORT VTK_MARSHALAUTO vtkSSAAPass : public vtkRenderPass
45 {
46 public:
47  static vtkSSAAPass* New();
48  vtkTypeMacro(vtkSSAAPass, vtkRenderPass);
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
55  void Render(const vtkRenderState* s) override;
56 
62  void ReleaseGraphicsResources(vtkWindow* w) override;
63 
65 
71  vtkGetObjectMacro(DelegatePass, vtkRenderPass);
72  virtual void SetDelegatePass(vtkRenderPass* delegatePass);
74 
76 
82  vtkSetMacro(ColorFormat, int);
83  vtkGetMacro(ColorFormat, int);
85 
87 
96  vtkSetMacro(DepthFormat, int);
97  vtkGetMacro(DepthFormat, int);
99 
100 protected:
104  vtkSSAAPass();
105 
109  ~vtkSSAAPass() override;
110 
115  vtkSmartPointer<vtkTextureObject> Pass1; // render target for the scene (modifiedW x modifiedH)
116  vtkSmartPointer<vtkTextureObject> Pass2; // render target for the horizontal pass (W x modifiedH)
117  vtkSmartPointer<vtkTextureObject> DepthTexture1; // depth target paired with Pass1
118  vtkSmartPointer<vtkTextureObject> DepthTexture2; // depth target paired with Pass2
119 
120  // Structures for the various cell types we render.
121  std::unique_ptr<vtkOpenGLHelper> SSAAHelper;
122 
124 
125 private:
126  vtkSSAAPass(const vtkSSAAPass&) = delete;
127  void operator=(const vtkSSAAPass&) = delete;
128 
129  int ColorFormat = vtkTextureObject::Fixed8; // framebuffer color texture format
130  int DepthFormat = vtkTextureObject::Fixed24; // framebuffer depth texture format
131 };
132 
133 VTK_ABI_NAMESPACE_END
134 #endif
vtkSmartPointer< vtkTextureObject > DepthTexture1
Definition: vtkSSAAPass.h:117
vtkSmartPointer< vtkTextureObject > DepthTexture2
Definition: vtkSSAAPass.h:118
std::unique_ptr< vtkOpenGLHelper > SSAAHelper
Definition: vtkSSAAPass.h:121
vtkSmartPointer< vtkTextureObject > Pass1
Definition: vtkSSAAPass.h:115
window superclass for vtkRenderWindow
Definition: vtkWindow.h:41
Context in which a vtkRenderPass will render.
a simple class to control print indentation
Definition: vtkIndent.h:28
Internal class which encapsulates OpenGL FramebufferObject.
vtkSmartPointer< vtkOpenGLFramebufferObject > FrameBufferObject
Graphics resources.
Definition: vtkSSAAPass.h:114
virtual void Render(const vtkRenderState *s)=0
Perform rendering according to a render state s.
vtkSmartPointer< vtkTextureObject > Pass2
Definition: vtkSSAAPass.h:116
virtual void ReleaseGraphicsResources(vtkWindow *w)
Release graphics resources and ask components to release their own resources.
Storage for FBO's.
#define VTK_MARSHALAUTO
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:49
Implement Screen Space Anti Aliasing pass.
Definition: vtkSSAAPass.h:44
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSmartPointer< vtkRenderPass > DelegatePass
Definition: vtkSSAAPass.h:123