MaterialX 1.38.2
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
GlslRenderer Class Reference

Helper class for rendering generated GLSL code to produce images. More...

#include <GlslRenderer.h>

Inheritance diagram for GlslRenderer:
ShaderRenderer TextureBaker

Public Member Functions

virtual ~GlslRenderer ()
 Destructor.
 
Setup
void initialize () override
 Internal initialization of stages and OpenGL constructs required for program validation and rendering. More...
 
Rendering
void createProgram (ShaderPtr shader) override
 Create GLSL program based on an input shader. More...
 
void createProgram (const StageMap &stages) override
 Create GLSL program based on shader stage source code. More...
 
void validateInputs () override
 Validate inputs for the program. More...
 
void setSize (unsigned int width, unsigned int height) override
 Set the size of the rendered image. More...
 
void render () override
 Render the current program to an offscreen buffer. More...
 
void renderTextureSpace ()
 Render the current program in texture space to an off-screen buffer.
 
Utilities
ImagePtr captureImage (ImagePtr image=nullptr) override
 Capture the current contents of the off-screen hardware buffer as an image. More...
 
GLFrameBufferPtr getFrameBuffer () const
 Return the GL frame buffer.
 
GlslProgramPtr getProgram ()
 Return the GLSL program.
 
void drawScreenSpaceQuad ()
 Submit geometry for a screen-space quad.
 
void setClearColor (const Color4 &clearColor)
 Sets the clear color.
 
- Public Member Functions inherited from ShaderRenderer
void setImageHandler (ImageHandlerPtr imageHandler)
 Set the image handler used by this renderer for image I/O.
 
ImageHandlerPtr getImageHandler () const
 Return the image handler.
 
void setLightHandler (LightHandlerPtr lightHandler)
 Set the light handler used by this renderer for light bindings.
 
LightHandlerPtr getLightHandler () const
 Return the light handler.
 
void setGeometryHandler (GeometryHandlerPtr geometryHandler)
 Set the geometry handler.
 
GeometryHandlerPtr getGeometryHandler () const
 Return the geometry handler.
 
void setViewHandler (ViewHandlerPtr viewHandler)
 Set the view handler.
 
ViewHandlerPtr getViewHandler () const
 Return the view handler.
 

Static Public Member Functions

static GlslRendererPtr create (unsigned int width=512, unsigned int height=512, Image::BaseType baseType=Image::BaseType::UINT8)
 Create a GLSL renderer instance.
 

Protected Member Functions

 GlslRenderer (unsigned int width, unsigned int height, Image::BaseType baseType)
 
virtual void updateViewInformation ()
 
virtual void updateWorldInformation ()
 
- Protected Member Functions inherited from ShaderRenderer
 ShaderRenderer (unsigned int width, unsigned int height, Image::BaseType baseType)
 

Additional Inherited Members

- Public Types inherited from ShaderRenderer
using StageMap = StringMap
 A map with name and source code for each shader stage.
 
- Protected Attributes inherited from ShaderRenderer
unsigned int _width
 
unsigned int _height
 
Image::BaseType _baseType
 
ImageHandlerPtr _imageHandler
 
GeometryHandlerPtr _geometryHandler
 
LightHandlerPtr _lightHandler
 
ViewHandlerPtr _viewHandler
 

Detailed Description

Helper class for rendering generated GLSL code to produce images.

There are two main interfaces which can be used. One which takes in a HwShader and one which allows for explicit setting of shader stage code.

The main services provided are:

Member Function Documentation

◆ captureImage()

ImagePtr captureImage ( ImagePtr  image = nullptr)
overridevirtual

Capture the current contents of the off-screen hardware buffer as an image.

Reimplemented from ShaderRenderer.

◆ createProgram() [1/2]

void createProgram ( const StageMap stages)
overridevirtual

Create GLSL program based on shader stage source code.

Parameters
stagesMap of name and source code for the shader stages.

Reimplemented from ShaderRenderer.

◆ createProgram() [2/2]

void createProgram ( ShaderPtr  shader)
overridevirtual

Create GLSL program based on an input shader.

Parameters
shaderInput HwShader

Reimplemented from ShaderRenderer.

◆ initialize()

void initialize ( )
overridevirtual

Internal initialization of stages and OpenGL constructs required for program validation and rendering.

An exception is thrown on failure. The exception will contain a list of initialization errors.

Reimplemented from ShaderRenderer.

◆ render()

void render ( )
overridevirtual

Render the current program to an offscreen buffer.

Reimplemented from ShaderRenderer.

◆ setSize()

void setSize ( unsigned int  width,
unsigned int  height 
)
overridevirtual

Set the size of the rendered image.

Reimplemented from ShaderRenderer.

◆ validateInputs()

void validateInputs ( )
overridevirtual

Validate inputs for the program.

Reimplemented from ShaderRenderer.


The documentation for this class was generated from the following files: