VTK  9.1.0
vtkOpenGLFXAAFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkOpenGLFXAAFilter.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=========================================================================*/
15
40#ifndef vtkOpenGLFXAAFilter_h
41#define vtkOpenGLFXAAFilter_h
42
43#include "vtkFXAAOptions.h" // For DebugOptions enum
44#include "vtkObject.h"
45#include "vtkRenderingOpenGL2Module.h" // For export macro
46
47#include <string> // For std::string
48
49class vtkFXAAOptions;
55
56class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLFXAAFilter : public vtkObject
57{
58public:
61 void PrintSelf(ostream& os, vtkIndent indent) override;
62
67
72
79
81
85 vtkSetClampMacro(RelativeContrastThreshold, float, 0.f, 1.f);
86 vtkGetMacro(RelativeContrastThreshold, float);
87 vtkSetClampMacro(HardContrastThreshold, float, 0.f, 1.f);
88 vtkGetMacro(HardContrastThreshold, float);
89 vtkSetClampMacro(SubpixelBlendLimit, float, 0.f, 1.f);
90 vtkGetMacro(SubpixelBlendLimit, float);
91 vtkSetClampMacro(SubpixelContrastThreshold, float, 0.f, 1.f);
92 vtkGetMacro(SubpixelContrastThreshold, float);
93 virtual void SetUseHighQualityEndpoints(bool val);
94 vtkGetMacro(UseHighQualityEndpoints, bool);
95 vtkBooleanMacro(UseHighQualityEndpoints, bool);
96 vtkSetClampMacro(EndpointSearchIterations, int, 0, VTK_INT_MAX);
97 vtkGetMacro(EndpointSearchIterations, int);
99 vtkGetMacro(DebugOptionValue, vtkFXAAOptions::DebugOption);
101
102protected:
105
106 void Prepare();
109 void LoadInput();
111 void SubstituteFragmentShader(std::string& fragShader);
112 void Finalize();
113
117
118 // Cache GL state that we modify
121
122 int Viewport[4]; // x, y, width, height
123
124 // Used to measure execution time:
127
128 // Parameters:
134
137
138 // Set to true when the shader definitions change so we know when to rebuild.
140
143
145
146private:
148 void operator=(const vtkOpenGLFXAAFilter&) = delete;
149};
150
151#endif // vtkOpenGLFXAAFilter_h
Configuration for FXAA implementations.
DebugOption
Debugging options that affect the output color buffer.
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract base class for most VTK objects
Definition: vtkObject.h:82
Perform FXAA antialiasing on the current framebuffer.
virtual void SetDebugOptionValue(vtkFXAAOptions::DebugOption opt)
Parameter for tuning the FXAA implementation.
vtkFXAAOptions::DebugOption DebugOptionValue
vtkTextureObject * Input
void Execute(vtkOpenGLRenderer *ren)
Perform FXAA on the current render buffer in ren.
vtkOpenGLQuadHelper * QHelper
void EndTimeQuery(vtkOpenGLRenderTimer *timer)
~vtkOpenGLFXAAFilter() override
vtkOpenGLRenderTimer * FXAATimer
void UpdateConfiguration(vtkFXAAOptions *opts)
Copy the configuration values from opts into this filter.
vtkOpenGLRenderTimer * PreparationTimer
vtkOpenGLRenderer * Renderer
void ReleaseGraphicsResources()
Release all OpenGL state.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SubstituteFragmentShader(std::string &fragShader)
void StartTimeQuery(vtkOpenGLRenderTimer *timer)
virtual void SetUseHighQualityEndpoints(bool val)
Parameter for tuning the FXAA implementation.
static vtkOpenGLFXAAFilter * New()
Class to make rendering a full screen quad easier.
Asynchronously measures GPU execution time for a single event.
OpenGL renderer.
The ShaderProgram uses one or more Shader objects.
abstracts an OpenGL texture object.
#define VTK_INT_MAX
Definition: vtkType.h:155