class hiro::draw::ImageRenderer
Overview
Image image which can have individual pixels set. More…
#include <ImageRenderer.h> class ImageRenderer: public hiro::draw::Renderer { public: // construction ImageRenderer(); ImageRenderer(const glw::PTexture2D& image_texture); ImageRenderer(const std::string& image_file); // methods void SetImage(const glw::PTexture2D& image_texture); void LoadImageFile(const std::string& image_file); glw::PTexture2D GetTexture() const; virtual glm::uvec2 GetResolution() const; glm::mat4 GetImageToPixelTransform(const ImageStyle& style, const hiro::draw::ProjectionParams& params) const; glm::mat4 GetImageToViewportPixelTransform(const ImageStyle& style, const hiro::draw::ProjectionParams& params) const; protected: // fields glw::PTexture2D texture_buffer_ { nullptr }; // methods virtual void Render2D(const std::string& program); virtual bool IsCompatibileWithStyle(const Style* style); virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs); virtual void FillTextRenderer(hiro::draw::TextRenderer* t_renderer); void SetupFiltering(); };
Inherited Members
public: // methods virtual bool IsCompatibileWithStyle(const hiro::draw::Style* style) = 0; protected: // methods virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs); virtual void Render(const std::string& program); virtual void OnRenderSimple(); virtual void Render2D(const std::string& program); virtual void OnRenderSimple2D(); virtual void FillTextRenderer(hiro::draw::TextRenderer* t_renderer); template <typename StyleType> const StyleType* GetStyle() const; const Scene* GetScene() const;
Detailed Documentation
Image image which can have individual pixels set.
Default resolution is 1x1, the default pixel color is black. If one of the dimensions provided to resolution is 0, nothing is rendered.
Internally the renderer uses two buffers - texture buffer and work buffer. Texture buffer is used for rendering and it is located in the video memory. Work buffer is stored in RAM. When user manipulates with the pixels/resolution, the work buffer is changed and texture buffer invalidated. Before the rendering, if a texture buffer is invalid, the changes from work buffer are automatically introduced to the texture buffer.
Fields
glw::PTexture2D texture_buffer_ { nullptr }
Texture buffer for the Image.
Methods
virtual glm::uvec2 GetResolution() const
Returns the current Image resolution.
glm::mat4 GetImageToPixelTransform(const ImageStyle& style, const hiro::draw::ProjectionParams& params) const
Returns transformation from image texels to screen pixels.
glm::mat4 GetImageToViewportPixelTransform(const ImageStyle& style, const hiro::draw::ProjectionParams& params) const
Returns transformation from image texels to viewport screen pixels.
virtual void Render2D(const std::string& program)
Describes rendering behavior in 2D rendering pass.
virtual bool IsCompatibileWithStyle(const Style* style)
Test whether specified style is compatible with object.
virtual void LoadRequiredShaderPrograms(glw::ProgramList* programs)
Loads shader programs required by this renderer.
virtual void FillTextRenderer(hiro::draw::TextRenderer* t_renderer)
Override this method to define texts to be rendered.
void SetupFiltering()
Sets the texture filtering based on the style preference.