HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ShaderRenderer Class Reference

#include <ShaderRenderer.h>

+ Inheritance diagram for ShaderRenderer:

Public Types

using StageMap = StringMap
 A map with name and source code for each shader stage. More...
 

Public Member Functions

virtual ~ShaderRenderer ()
 
Setup
virtual void initialize ()
 Initialize the renderer. More...
 
void setCamera (CameraPtr camera)
 Set the camera. More...
 
CameraPtr getCamera () const
 Return the camera. More...
 
void setImageHandler (ImageHandlerPtr imageHandler)
 Set the image handler used by this renderer for image I/O. More...
 
ImageHandlerPtr getImageHandler () const
 Return the image handler. More...
 
void setLightHandler (LightHandlerPtr lightHandler)
 Set the light handler used by this renderer for light bindings. More...
 
LightHandlerPtr getLightHandler () const
 Return the light handler. More...
 
void setGeometryHandler (GeometryHandlerPtr geometryHandler)
 Set the geometry handler. More...
 
GeometryHandlerPtr getGeometryHandler () const
 Return the geometry handler. More...
 
Rendering
virtual void createProgram (ShaderPtr shader)
 Create program based on an input shader. More...
 
virtual void createProgram (const StageMap &stages)
 
virtual void validateInputs ()
 Validate inputs for the program. More...
 
virtual void setSize (unsigned int width, unsigned int height)
 Set the size of the rendered image. More...
 
virtual void render ()
 Render the current program to produce an image. More...
 
Utilities
virtual ImagePtr captureImage (ImagePtr image=nullptr)
 Capture the current rendered output as an image. More...
 

Protected Member Functions

 ShaderRenderer ()
 
 ShaderRenderer (unsigned int width, unsigned int height, Image::BaseType baseType)
 

Protected Attributes

unsigned int _width
 
unsigned int _height
 
Image::BaseType _baseType
 
CameraPtr _camera
 
ImageHandlerPtr _imageHandler
 
GeometryHandlerPtr _geometryHandler
 
LightHandlerPtr _lightHandler
 

Detailed Description

Base class for renderers that generate shader code to produce images.

Definition at line 26 of file ShaderRenderer.h.

Member Typedef Documentation

A map with name and source code for each shader stage.

Definition at line 30 of file ShaderRenderer.h.

Constructor & Destructor Documentation

virtual ShaderRenderer::~ShaderRenderer ( )
inlinevirtual

Definition at line 33 of file ShaderRenderer.h.

ShaderRenderer::ShaderRenderer ( )
inlineprotected

Definition at line 122 of file ShaderRenderer.h.

ShaderRenderer::ShaderRenderer ( unsigned int  width,
unsigned int  height,
Image::BaseType  baseType 
)
inlineprotected

Definition at line 128 of file ShaderRenderer.h.

Member Function Documentation

virtual ImagePtr ShaderRenderer::captureImage ( ImagePtr  image = nullptr)
inlinevirtual

Capture the current rendered output as an image.

Reimplemented in OslRenderer, and GlslRenderer.

Definition at line 114 of file ShaderRenderer.h.

virtual void ShaderRenderer::createProgram ( ShaderPtr  shader)
virtual

Create program based on an input shader.

Reimplemented in OslRenderer, and GlslRenderer.

virtual void ShaderRenderer::createProgram ( const StageMap stages)
virtual

Create program based on shader stage source code.

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

Reimplemented in OslRenderer, and GlslRenderer.

CameraPtr ShaderRenderer::getCamera ( ) const
inline

Return the camera.

Definition at line 48 of file ShaderRenderer.h.

GeometryHandlerPtr ShaderRenderer::getGeometryHandler ( ) const
inline

Return the geometry handler.

Definition at line 84 of file ShaderRenderer.h.

ImageHandlerPtr ShaderRenderer::getImageHandler ( ) const
inline

Return the image handler.

Definition at line 60 of file ShaderRenderer.h.

LightHandlerPtr ShaderRenderer::getLightHandler ( ) const
inline

Return the light handler.

Definition at line 72 of file ShaderRenderer.h.

virtual void ShaderRenderer::initialize ( )
inlinevirtual

Initialize the renderer.

Reimplemented in GlslRenderer, and OslRenderer.

Definition at line 39 of file ShaderRenderer.h.

virtual void ShaderRenderer::render ( )
inlinevirtual

Render the current program to produce an image.

Reimplemented in OslRenderer, and GlslRenderer.

Definition at line 107 of file ShaderRenderer.h.

void ShaderRenderer::setCamera ( CameraPtr  camera)
inline

Set the camera.

Definition at line 42 of file ShaderRenderer.h.

void ShaderRenderer::setGeometryHandler ( GeometryHandlerPtr  geometryHandler)
inline

Set the geometry handler.

Definition at line 78 of file ShaderRenderer.h.

void ShaderRenderer::setImageHandler ( ImageHandlerPtr  imageHandler)
inline

Set the image handler used by this renderer for image I/O.

Definition at line 54 of file ShaderRenderer.h.

void ShaderRenderer::setLightHandler ( LightHandlerPtr  lightHandler)
inline

Set the light handler used by this renderer for light bindings.

Definition at line 66 of file ShaderRenderer.h.

virtual void ShaderRenderer::setSize ( unsigned int  width,
unsigned int  height 
)
virtual

Set the size of the rendered image.

Reimplemented in OslRenderer, and GlslRenderer.

virtual void ShaderRenderer::validateInputs ( )
inlinevirtual

Validate inputs for the program.

Reimplemented in OslRenderer, and GlslRenderer.

Definition at line 101 of file ShaderRenderer.h.

Member Data Documentation

Image::BaseType ShaderRenderer::_baseType
protected

Definition at line 137 of file ShaderRenderer.h.

CameraPtr ShaderRenderer::_camera
protected

Definition at line 139 of file ShaderRenderer.h.

GeometryHandlerPtr ShaderRenderer::_geometryHandler
protected

Definition at line 141 of file ShaderRenderer.h.

unsigned int ShaderRenderer::_height
protected

Definition at line 136 of file ShaderRenderer.h.

ImageHandlerPtr ShaderRenderer::_imageHandler
protected

Definition at line 140 of file ShaderRenderer.h.

LightHandlerPtr ShaderRenderer::_lightHandler
protected

Definition at line 142 of file ShaderRenderer.h.

unsigned int ShaderRenderer::_width
protected

Definition at line 135 of file ShaderRenderer.h.


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