[DEV] generate the svg image at the native size

This commit is contained in:
Edouard DUPIN 2013-04-14 14:02:03 +02:00
parent b8287243a8
commit 928deb22ee
2 changed files with 18 additions and 15 deletions

View File

@ -110,16 +110,13 @@ svg::Parser::Parser(etk::UString fileName) : m_renderedElement(NULL)
m_version = version; m_version = version;
} }
// parse ... // parse ...
etk::Vector2D<float> pos; vec2 pos(0,0);
ParseTransform(root); ParseTransform(root);
ParsePosition(root, pos, m_size); ParsePosition(root, pos, m_size);
ParsePaintAttr(root); ParsePaintAttr(root);
SVG_VERBOSE("parsed .ROOT trans : (" << m_transformMatrix.sx << "," << m_transformMatrix.shy << "," << m_transformMatrix.shx << "," << m_transformMatrix.sy << "," << m_transformMatrix.tx << "," << m_transformMatrix.ty << ")"); SVG_VERBOSE("parsed .ROOT trans : (" << m_transformMatrix.sx << "," << m_transformMatrix.shy << "," << m_transformMatrix.shx << "," << m_transformMatrix.sy << "," << m_transformMatrix.tx << "," << m_transformMatrix.ty << ")");
vec2 maxSize(0,0); vec2 maxSize(0,0);
vec2 size(0,0);
vec2 size;
// parse all sub node : // parse all sub node :
for(TiXmlNode * child = root->FirstChild(); NULL != child; child = child->NextSibling() ) { for(TiXmlNode * child = root->FirstChild(); NULL != child; child = child->NextSibling() ) {
svg::Base *elementParser = NULL; svg::Base *elementParser = NULL;
@ -299,7 +296,12 @@ void svg::Parser::GenerateAnImage(int32_t sizeX, int32_t sizeY)
*/ */
} }
void svg::Parser::GenerateAnImage(etk::Vector2D<int32_t> size, draw::Image& output) void svg::Parser::GenerateAnImage(draw::Image& output)
{
GenerateAnImage(ivec2(m_size.x(),m_size.y()), output);
}
void svg::Parser::GenerateAnImage(ivec2 size, draw::Image& output)
{ {
GenerateAnImage(size.x(), size.y()); GenerateAnImage(size.x(), size.y());
output.Resize(size); output.Resize(size);

View File

@ -38,13 +38,13 @@ namespace svg
class Parser : public svg::Base class Parser : public svg::Base
{ {
private: private:
etk::UString m_fileName; etk::UString m_fileName;
bool m_loadOK; bool m_loadOK;
etk::UString m_version; etk::UString m_version;
etk::UString m_title; etk::UString m_title;
etk::Vector<svg::Base *> m_subElementList; etk::Vector<svg::Base *> m_subElementList;
etk::Vector2D<float> m_size; vec2 m_size;
svg::Renderer* m_renderedElement; svg::Renderer* m_renderedElement;
public: public:
Parser(etk::UString fileName); Parser(etk::UString fileName);
@ -53,11 +53,12 @@ namespace svg
void DisplayDebug(void); void DisplayDebug(void);
void GenerateTestFile(void); void GenerateTestFile(void);
void GenerateAnImage(int32_t sizeX, int32_t sizeY); void GenerateAnImage(int32_t sizeX, int32_t sizeY);
void GenerateAnImage(etk::Vector2D<int32_t> size, draw::Image& output); void GenerateAnImage(ivec2 size, draw::Image& output);
void GenerateAnImage(draw::Image& output);
virtual void AggDraw(svg::Renderer& myRenderer, agg::trans_affine& basicTrans); virtual void AggDraw(svg::Renderer& myRenderer, agg::trans_affine& basicTrans);
uint8_t* GetPointerOnData(void); uint8_t* GetPointerOnData(void);
uint32_t GetSizeOnData(void); uint32_t GetSizeOnData(void);
etk::Vector2D<float> GetDefinedSize(void) { return m_size;}; vec2 GetDefinedSize(void) { return m_size;};
}; };
}; };