6#ifndef MATERIALX_SHADERRENDERER_H
7#define MATERIALX_SHADERRENDERER_H
46 _imageHandler = imageHandler;
58 _lightHandler = lightHandler;
70 _geometryHandler = geometryHandler;
76 return _geometryHandler;
82 _viewHandler = viewHandler;
96 virtual void createProgram(
ShaderPtr shader);
100 virtual void createProgram(
const StageMap& stages);
106 virtual void setSize(
unsigned int width,
unsigned int height);
127 _baseType(
Image::BaseType::UINT8)
130 ShaderRenderer(
unsigned int width,
unsigned int height, Image::BaseType baseType) :
138 unsigned int _height;
139 Image::BaseType _baseType;
162 _errorLog(e._errorLog)
168 Exception::operator=(e);
169 _errorLog = e._errorLog;
Geometry loader interfaces.
std::shared_ptr< class GeometryHandler > GeometryHandlerPtr
Shared pointer to an GeometryHandler.
Definition: GeometryHandler.h:55
shared_ptr< Image > ImagePtr
A shared pointer to an image.
Definition: Image.h:24
Image handler interfaces.
std::shared_ptr< ImageHandler > ImageHandlerPtr
Shared pointer to an ImageHandler.
Definition: ImageHandler.h:33
Handler for hardware lights.
std::shared_ptr< class LightHandler > LightHandlerPtr
Shared pointer to a LightHandler.
Definition: LightHandler.h:23
vector< string > StringVec
A vector of strings.
Definition: Library.h:56
std::unordered_map< string, string > StringMap
An unordered map with strings as both keys and values.
Definition: Library.h:58
shared_ptr< Shader > ShaderPtr
Shared pointer to a Shader.
Definition: Library.h:34
Macros for declaring imported and exported symbols.
Shader instance class created during shader generation.
std::shared_ptr< class ShaderRenderer > ShaderRendererPtr
Shared pointer to a shader renderer.
Definition: ShaderRenderer.h:24
Utility for providing view data.
std::shared_ptr< class ViewHandler > ViewHandlerPtr
Shared pointer to a ViewHandler.
Definition: ViewHandler.h:20
The base class for exceptions that are propagated from the MaterialX library to the client applicatio...
Definition: Exception.h:23
An exception that is thrown when a rendering operation fails.
Definition: ShaderRenderer.h:152
Class representing an image in system memory.
Definition: Image.h:44
Base class for renderers that generate shader code to produce images.
Definition: ShaderRenderer.h:29
virtual ImagePtr captureImage(ImagePtr image=nullptr)
Capture the current rendered output as an image.
Definition: ShaderRenderer.h:116
virtual void render()
Render the current program to produce an image.
Definition: ShaderRenderer.h:109
void setImageHandler(ImageHandlerPtr imageHandler)
Set the image handler used by this renderer for image I/O.
Definition: ShaderRenderer.h:44
void setLightHandler(LightHandlerPtr lightHandler)
Set the light handler used by this renderer for light bindings.
Definition: ShaderRenderer.h:56
virtual void validateInputs()
Validate inputs for the program.
Definition: ShaderRenderer.h:103
void setGeometryHandler(GeometryHandlerPtr geometryHandler)
Set the geometry handler.
Definition: ShaderRenderer.h:68
GeometryHandlerPtr getGeometryHandler() const
Return the geometry handler.
Definition: ShaderRenderer.h:74
ImageHandlerPtr getImageHandler() const
Return the image handler.
Definition: ShaderRenderer.h:50
virtual void initialize()
Initialize the renderer.
Definition: ShaderRenderer.h:41
ViewHandlerPtr getViewHandler() const
Return the view handler.
Definition: ShaderRenderer.h:86
LightHandlerPtr getLightHandler() const
Return the light handler.
Definition: ShaderRenderer.h:62
StringMap StageMap
A map with name and source code for each shader stage.
Definition: ShaderRenderer.h:32
void setViewHandler(ViewHandlerPtr viewHandler)
Set the view handler.
Definition: ShaderRenderer.h:80