diff --git a/parserSVG/parserSVG.cpp b/parserSVG/parserSVG.cpp index 711d850..01f4bea 100644 --- a/parserSVG/parserSVG.cpp +++ b/parserSVG/parserSVG.cpp @@ -295,6 +295,21 @@ void svg::Parser::GenerateAnImage(int32_t sizeX, int32_t sizeY) */ } +void svg::Parser::GenerateAnImage(Vector2D size, draw::Image& output) +{ + GenerateAnImage(size.x, size.y); + output.Resize(size); + draw::Color tmpp(0,0,0,0); + output.SetFillColor(tmpp); + output.Clear(); + if(NULL != m_renderedElement) { + uint8_t* pointerOnData = m_renderedElement->GetDataPointer(); + int32_t sizeData = m_renderedElement->GetDataSize(); + uint8_t* tmpOut = (uint8_t*)output.GetTextureDataPointer(); + memcpy(tmpOut, pointerOnData, sizeData); + } +} + uint8_t* svg::Parser::GetPointerOnData(void) { if(NULL == m_renderedElement) { diff --git a/parserSVG/parserSVG.h b/parserSVG/parserSVG.h index ff03402..fcc7968 100644 --- a/parserSVG/parserSVG.h +++ b/parserSVG/parserSVG.h @@ -28,6 +28,7 @@ #include #include #include +#include namespace svg { @@ -49,6 +50,7 @@ namespace svg void DisplayDebug(void); void GenerateTestFile(void); void GenerateAnImage(int32_t sizeX, int32_t sizeY); + void GenerateAnImage(Vector2D size, draw::Image& output); virtual void AggDraw(svg::Renderer& myRenderer, agg::trans_affine& basicTrans); uint8_t* GetPointerOnData(void); uint32_t GetSizeOnData(void);