VTK  9.6.20260615
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
27
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
39VTK_ABI_NAMESPACE_BEGIN
41class vtkOpenGLHelper;
42class vtkRenderbuffer;
43
44class VTKRENDERINGOPENGL2_EXPORT VTK_MARSHALAUTO vtkSSAAPass : public vtkRenderPass
45{
46public:
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
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
100protected:
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
125private:
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
133VTK_ABI_NAMESPACE_END
134#endif
a simple class to control print indentation
Definition vtkIndent.h:108
Internal class which encapsulates OpenGL FramebufferObject.
vtkRenderPass()
Default constructor.
Context in which a vtkRenderPass will render.
Storage for FBO's.
vtkSSAAPass()
Default constructor.
vtkSmartPointer< vtkTextureObject > Pass2
~vtkSSAAPass() override
Destructor.
vtkSmartPointer< vtkRenderPass > DelegatePass
vtkSmartPointer< vtkTextureObject > Pass1
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
std::unique_ptr< vtkOpenGLHelper > SSAAHelper
vtkSmartPointer< vtkTextureObject > DepthTexture1
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkSSAAPass * New()
virtual void SetDelegatePass(vtkRenderPass *delegatePass)
Delegate for rendering the image to be processed.
vtkSmartPointer< vtkOpenGLFramebufferObject > FrameBufferObject
Graphics resources.
void Render(const vtkRenderState *s) override
Perform rendering according to a render state s.
vtkSmartPointer< vtkTextureObject > DepthTexture2
Hold a reference to a vtkObjectBase instance.
window superclass for vtkRenderWindow
Definition vtkWindow.h:61
#define VTK_MARSHALAUTO