/** ******************************************************************************* * @file parserSVG/Renderer.h * @brief Basic SVG renderer for the AGG librairy (Header) * @author Edouard DUPIN * @date 23/03/2012 * @par Project * parserSVG * * @par Copyright * Copyright 2011 Edouard DUPIN, all right reserved * * This software is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY. * * Licence summary : * You can modify and redistribute the sources code and binaries. * You can send me the bug-fix * * Term of the licence in in the file licence.txt. * ******************************************************************************* */ #ifndef __SVG_RENDERER_H__ #define __SVG_RENDERER_H__ #include #include #include #include #include #include #include #include #include #include #include namespace svg { #define MATRIX_SIZE (6) class PaintState { public: color8_ts fill; color8_ts stroke; etkFloat_t strokeWidth; bool flagEvenOdd; coord2D_ts viewPort; }; // basic definition type for the renderer typedef agg::renderer_base rendererBase_t; typedef agg::renderer_scanline_aa_solid rendererSolid_t; class Renderer { private: uint8_t * m_buffer; public: Renderer(uint32_t width, uint32_t height); ~Renderer(void); void WritePpm(etk::UString fileName); coord2D_ts m_size; agg::rendering_buffer * m_renderingBuffer; agg::pixfmt_rgba32 * m_pixFrame; rendererBase_t * m_renderBase; rendererSolid_t * m_renderArea; agg::rasterizer_scanline_aa<> m_rasterizer; //!< AGG renderer system agg::scanline_p8 m_scanLine; //!< }; }; #endif