VTK
Public Member Functions | Public Attributes | List of all members
vtkOpenGLQuadHelper Class Reference

Class to make rendering a full screen quad easier. More...

#include <vtkOpenGLQuadHelper.h>

Collaboration diagram for vtkOpenGLQuadHelper:
[legend]

Public Member Functions

 vtkOpenGLQuadHelper (vtkOpenGLRenderWindow *, const char *vs, const char *fs, const char *gs)
 
 ~vtkOpenGLQuadHelper ()
 
void Render ()
 
void ReleaseGraphicsResources (vtkWindow *)
 Release graphics resources. More...
 

Public Attributes

vtkShaderProgramProgram
 
vtkTimeStamp ShaderSourceTime
 
vtkOpenGLVertexArrayObjectVAO
 
unsigned int ShaderChangeValue
 

Detailed Description

Class to make rendering a full screen quad easier.

vtkOpenGLQuadHelper is designed to be used by classes in VTK that need to render a quad to the screen with a shader program. This happens often with render passes or other advanced rendering techniques.

Note that when releasing graphics resources instances of this class should be destroyed. A common use pattern is to conditionally create the instance where used and delete it in ReleaseGraphicsResources and the destructor.

Example usage:

if (!this->QuadHelper)
{
this->QuadHelper = vtkOpenGLQualHelper(renWin, vs, fs, gs);
}
renWin->GetShaderCache()->ReadyShaderProgram(this->QuadHelper->Program);
aTexture->Activate();
this->QuadHelper->Program->SetUniformi("aTexture", aTexture->GetTextureUnit());
this->QuadHelper->Render();
aTexture->Deactivate();
See also
vtkOpenGLRenderUtilities

Definition at line 57 of file vtkOpenGLQuadHelper.h.

Constructor & Destructor Documentation

◆ vtkOpenGLQuadHelper()

vtkOpenGLQuadHelper::vtkOpenGLQuadHelper ( vtkOpenGLRenderWindow ,
const char *  vs,
const char *  fs,
const char *  gs 
)

◆ ~vtkOpenGLQuadHelper()

vtkOpenGLQuadHelper::~vtkOpenGLQuadHelper ( )

Member Function Documentation

◆ Render()

void vtkOpenGLQuadHelper::Render ( )

◆ ReleaseGraphicsResources()

void vtkOpenGLQuadHelper::ReleaseGraphicsResources ( vtkWindow )

Release graphics resources.

In general, there's no need to call this explicitly, since vtkOpenGLQuadHelper will invoke it appropriately when needed.

Member Data Documentation

◆ Program

vtkShaderProgram* vtkOpenGLQuadHelper::Program

Definition at line 60 of file vtkOpenGLQuadHelper.h.

◆ ShaderSourceTime

vtkTimeStamp vtkOpenGLQuadHelper::ShaderSourceTime

Definition at line 61 of file vtkOpenGLQuadHelper.h.

◆ VAO

vtkOpenGLVertexArrayObject* vtkOpenGLQuadHelper::VAO

Definition at line 62 of file vtkOpenGLQuadHelper.h.

◆ ShaderChangeValue

unsigned int vtkOpenGLQuadHelper::ShaderChangeValue

Definition at line 63 of file vtkOpenGLQuadHelper.h.


The documentation for this class was generated from the following file:
vtkRenderWindow::Render
void Render() override
Ask each renderer owned by this RenderWindow to render its image and synchronize this process.