[DEV] correct new API
This commit is contained in:
parent
a776582367
commit
4496e42c22
@ -432,7 +432,7 @@ etk::Color<uint8_t,4> esvg::Base::parseColor(const std::string& _inputData) {
|
||||
* @param[in] _element standart XML node
|
||||
* @return true if no problem arrived
|
||||
*/
|
||||
bool esvg::Base::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Base::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
SVG_ERROR("NOT IMPLEMENTED");
|
||||
_sizeMax.setValue(0,0);
|
||||
return false;
|
||||
|
@ -67,7 +67,7 @@ namespace esvg {
|
||||
Base() {};
|
||||
Base(PaintState _parentPaintState);
|
||||
virtual ~Base() { };
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level=1);
|
||||
|
||||
|
@ -22,7 +22,7 @@ esvg::Circle::~Circle() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Circle::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Circle::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
m_radius = 0.0;
|
||||
m_position.setValue(0,0);
|
||||
if (_element == nullptr) {
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Circle(PaintState _parentPaintState);
|
||||
~Circle();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ esvg::Ellipse::~Ellipse() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Ellipse::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Ellipse::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
if (_element == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Ellipse(PaintState _parentPaintState);
|
||||
~Ellipse();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -31,7 +31,7 @@ esvg::Group::~Group() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Group::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Group::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
if (_element == nullptr) {
|
||||
return false;
|
||||
}
|
||||
@ -84,7 +84,7 @@ bool esvg::Group::parse(const std::shared_ptr<exml::Element>& _element, mat2& _p
|
||||
if (elementParser == nullptr) {
|
||||
SVG_ERROR("(l "<<child->getPos()<<") error on node: \""<<child->getValue()<<"\" allocation error or not supported ...");
|
||||
} else {
|
||||
if (false == elementParser->parse(child, m_transformMatrix, tmpPos)) {
|
||||
if (false == elementParser->parseXML(child, m_transformMatrix, tmpPos)) {
|
||||
SVG_ERROR("(l "<<child->getPos()<<") error on node: \""<<child->getValue()<<"\" Sub Parsing ERROR");
|
||||
delete(elementParser);
|
||||
elementParser = nullptr;
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Group(PaintState _parentPaintState);
|
||||
~Group();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -23,7 +23,7 @@ esvg::Line::~Line() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Line::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Line::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
// line must have a minimum size...
|
||||
m_paint.strokeWidth = 1;
|
||||
if (_element == nullptr) {
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Line(PaintState _parentPaintState);
|
||||
~Line();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -62,7 +62,7 @@ const char * extractCmd(const char* _input, char& _cmd, std::vector<float>& _out
|
||||
return outputPointer;
|
||||
}
|
||||
|
||||
bool esvg::Path::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Path::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
if (_element == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Path(PaintState _parentPaintState);
|
||||
~Path();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ esvg::Polygon::~Polygon() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Polygon::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Polygon::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
if (_element == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ namespace esvg {
|
||||
public:
|
||||
Polygon(PaintState parentPaintState);
|
||||
~Polygon();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ esvg::Polyline::~Polyline() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Polyline::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Polyline::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
// line must have a minimum size...
|
||||
m_paint.strokeWidth = 1;
|
||||
if (_element == nullptr) {
|
||||
|
@ -19,7 +19,7 @@ namespace esvg {
|
||||
public:
|
||||
Polyline(PaintState _parentPaintState);
|
||||
~Polyline();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -25,7 +25,7 @@ esvg::Rectangle::~Rectangle() {
|
||||
|
||||
}
|
||||
|
||||
bool esvg::Rectangle::parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
bool esvg::Rectangle::parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax) {
|
||||
if (_element == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace esvg {
|
||||
public:
|
||||
Rectangle(PaintState _parentPaintState);
|
||||
~Rectangle();
|
||||
virtual bool parse(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual bool parseXML(const std::shared_ptr<exml::Element>& _element, mat2& _parentTrans, vec2& _sizeMax);
|
||||
virtual void display(int32_t _spacing);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||
};
|
||||
|
@ -389,15 +389,12 @@ const ivec2& esvg::Renderer::getSize() const {
|
||||
return m_size;
|
||||
}
|
||||
|
||||
|
||||
uint8_t* esvg::Renderer::getDataPointer() {
|
||||
return nullptr; //&m_buffer[0];
|
||||
};
|
||||
std::vector<etk::Color<float,4>> esvg::Renderer::getData() {
|
||||
return m_buffer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
uint32_t esvg::Renderer::getDataSize() const {
|
||||
return m_buffer.size();
|
||||
};
|
||||
|
||||
void esvg::Renderer::setInterpolationRecurtionMax(int32_t _value) {
|
||||
m_interpolationRecurtionMax = std::avg(1, _value, 200);
|
||||
|
@ -32,8 +32,7 @@ namespace esvg {
|
||||
protected:
|
||||
std::vector<etk::Color<float,4>> m_buffer;
|
||||
public:
|
||||
uint8_t* getDataPointer();
|
||||
uint32_t getDataSize() const;
|
||||
std::vector<etk::Color<float,4>> getData();
|
||||
protected:
|
||||
int32_t m_interpolationRecurtionMax;
|
||||
public:
|
||||
|
149
esvg/esvg.cpp
149
esvg/esvg.cpp
@ -23,8 +23,7 @@
|
||||
#define __class__ "Document"
|
||||
|
||||
|
||||
esvg::Document::Document() :
|
||||
m_renderedElement(nullptr) {
|
||||
esvg::Document::Document() {
|
||||
m_fileName = "";
|
||||
m_version = "0.0";
|
||||
m_loadOK = false;
|
||||
@ -32,8 +31,7 @@ esvg::Document::Document() :
|
||||
}
|
||||
|
||||
esvg::Document::~Document() {
|
||||
delete(m_renderedElement);
|
||||
m_renderedElement = nullptr;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -48,8 +46,7 @@ void esvg::Document::displayDebug() {
|
||||
}
|
||||
|
||||
|
||||
void esvg::Document::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans)
|
||||
{
|
||||
void esvg::Document::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level) {
|
||||
for (int32_t iii=0; iii<m_subElementList.size(); iii++) {
|
||||
if (m_subElementList[iii] != nullptr) {
|
||||
m_subElementList[iii]->draw(_myRenderer, _basicTrans);
|
||||
@ -57,105 +54,83 @@ void esvg::Document::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void esvg::Document::generateTestFile()
|
||||
{
|
||||
int32_t sizeX = m_size.x();
|
||||
if (sizeX == 0) {
|
||||
sizeX = 64;
|
||||
}
|
||||
int32_t sizeY = m_size.y();
|
||||
if (sizeY == 0) {
|
||||
sizeY = 64;
|
||||
}
|
||||
delete(m_renderedElement);
|
||||
m_renderedElement = nullptr;
|
||||
m_renderedElement = new esvg::Renderer(ivec2(sizeX, sizeY));
|
||||
// create the first element matrix modification ...
|
||||
mat2 basicTrans;
|
||||
//basicTrans *= etk::mat2Translate(vec2(-g_base_dx, -g_base_dy));
|
||||
//basicTrans *= etk::mat2Scale(vec2(2, 2));
|
||||
//basicTrans *= etk::mat2Rotate(vec2(g_angle));
|
||||
//basicTrans *= etk::mat2Skew(vec2(2.0, 5.0));
|
||||
//basicTrans *= etk::mat2Translate(vec2(width*0.3, height/2));
|
||||
//basicTrans *= etk::mat2Translate(vec2(width/3, height/3));
|
||||
|
||||
|
||||
draw(*m_renderedElement, basicTrans);
|
||||
std::string tmpFileOut = "yyy_out_";
|
||||
tmpFileOut += m_fileName;
|
||||
tmpFileOut += ".ppm";
|
||||
m_renderedElement->writePPM(tmpFileOut);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// FOR TEST only ...
|
||||
void esvg::Document::generateAnImage(const ivec2& _size, const std::string& _fileName, bool _visualDebug) {
|
||||
int32_t sizeX = _size.x();
|
||||
if (sizeX == 0) {
|
||||
SVG_ERROR("SizeX == 0 ==> set 64");
|
||||
sizeX = 64;
|
||||
ivec2 sizeRender = _size;
|
||||
if (sizeRender.x() <= 0) {
|
||||
sizeRender.setX(m_size.x());
|
||||
}
|
||||
int32_t sizeY = _size.y();
|
||||
if (sizeY == 0) {
|
||||
SVG_ERROR("SizeY == 0 ==> set 64");
|
||||
sizeY = 64;
|
||||
if (sizeRender.y() <= 0) {
|
||||
sizeRender.setY(m_size.y());
|
||||
}
|
||||
SVG_DEBUG("Generate size (" << sizeX << "," << sizeY << ")");
|
||||
delete(m_renderedElement);
|
||||
m_renderedElement = nullptr;
|
||||
SVG_DEBUG("Generate size " << sizeRender);
|
||||
|
||||
m_renderedElement = new esvg::Renderer(ivec2(sizeX, sizeY), _visualDebug);
|
||||
std::shared_ptr<esvg::Renderer> renderedElement = std::make_shared<esvg::Renderer>(sizeRender, _visualDebug);
|
||||
// create the first element matrix modification ...
|
||||
mat2 basicTrans;
|
||||
//basicTrans *= etk::mat2Translate(vec2(-g_base_dx, -g_base_dy));
|
||||
basicTrans *= etk::mat2Scale(vec2(sizeX/m_size.x(), sizeY/m_size.y()));
|
||||
//basicTrans *= etk::mat2Rotate(g_angle);// + agg::pi);
|
||||
//basicTrans *= etk::mat2Skew(vec2(2.0, 5.0));
|
||||
//basicTrans *= etk::mat2Translate(vec2(width*0.3, height/2));
|
||||
//basicTrans *= etk::mat2Translate(vec2(width/3, height/3));
|
||||
basicTrans *= etk::mat2Scale(vec2(sizeRender.x()/m_size.x(), sizeRender.y()/m_size.y()));
|
||||
|
||||
draw(*renderedElement, basicTrans);
|
||||
|
||||
draw(*m_renderedElement, basicTrans);
|
||||
if (etk::end_with(_fileName, ".ppm") == true) {
|
||||
m_renderedElement->writePPM(_fileName);
|
||||
renderedElement->writePPM(_fileName);
|
||||
} else if (etk::end_with(_fileName, ".bmp") == true) {
|
||||
m_renderedElement->writeBMP(_fileName);
|
||||
renderedElement->writeBMP(_fileName);
|
||||
} else {
|
||||
SVG_ERROR("Can not store with this extention : " << _fileName << " not in .bmp/.ppm");
|
||||
}
|
||||
}
|
||||
/*
|
||||
void esvg::Document::generateAnImage(draw::Image& _output) {
|
||||
generateAnImage(ivec2(m_size.x(),m_size.y()), _output);
|
||||
|
||||
|
||||
std::vector<etk::Color<float,4>> esvg::Document::renderImageFloatRGBA(ivec2& _size) {
|
||||
if (_size.x() <= 0) {
|
||||
_size.setX(m_size.x());
|
||||
}
|
||||
if (_size.y() <= 0) {
|
||||
_size.setY(m_size.y());
|
||||
}
|
||||
SVG_DEBUG("Generate size " << _size);
|
||||
std::shared_ptr<esvg::Renderer> renderedElement = std::make_shared<esvg::Renderer>(_size);
|
||||
// create the first element matrix modification ...
|
||||
mat2 basicTrans;
|
||||
basicTrans *= etk::mat2Scale(vec2(_size.x()/m_size.x(), _size.y()/m_size.y()));
|
||||
draw(*renderedElement, basicTrans);
|
||||
|
||||
// direct return the generated data ...
|
||||
return renderedElement->getData();
|
||||
}
|
||||
|
||||
void esvg::Document::generateAnImage(ivec2 _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);
|
||||
std::vector<etk::Color<float,3>> esvg::Document::renderImageFloatRGB(ivec2& _size) {
|
||||
std::vector<etk::Color<float,4>> data = renderImageFloatRGBA(_size);
|
||||
// Reduce scope:
|
||||
std::vector<etk::Color<float,3>> out;
|
||||
out.resize(data.size());
|
||||
for (size_t iii=0; iii<data.size(); ++iii) {
|
||||
out[iii] = data[iii];
|
||||
}
|
||||
}
|
||||
*/
|
||||
uint8_t* esvg::Document::getPointerOnData() {
|
||||
if(m_renderedElement == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
return m_renderedElement->getDataPointer();
|
||||
return out;
|
||||
}
|
||||
|
||||
uint32_t esvg::Document::getSizeOnData() {
|
||||
if(m_renderedElement == nullptr) {
|
||||
return 0;
|
||||
std::vector<etk::Color<uint8_t,4>> esvg::Document::renderImageU8RGBA(ivec2& _size) {
|
||||
std::vector<etk::Color<float,4>> data = renderImageFloatRGBA(_size);
|
||||
// Reduce scope:
|
||||
std::vector<etk::Color<uint8_t,4>> out;
|
||||
out.resize(data.size());
|
||||
for (size_t iii=0; iii<data.size(); ++iii) {
|
||||
out[iii] = data[iii];
|
||||
}
|
||||
return m_renderedElement->getDataSize();
|
||||
return out;
|
||||
}
|
||||
|
||||
std::vector<etk::Color<uint8_t,3>> esvg::Document::renderImageU8RGB(ivec2& _size) {
|
||||
std::vector<etk::Color<float,4>> data = renderImageFloatRGBA(_size);
|
||||
// Reduce scope:
|
||||
std::vector<etk::Color<uint8_t,3>> out;
|
||||
out.resize(data.size());
|
||||
for (size_t iii=0; iii<data.size(); ++iii) {
|
||||
out[iii] = data[iii];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
void esvg::Document::clear() {
|
||||
@ -208,7 +183,7 @@ bool esvg::Document::load(const std::string& _file) {
|
||||
m_loadOK = false;
|
||||
return m_loadOK;
|
||||
}
|
||||
std::shared_ptr<exml::Element> root = doc.getNamed("svg" );
|
||||
std::shared_ptr<exml::Element> root = doc.getNamed("svg");
|
||||
if (root == nullptr) {
|
||||
SVG_ERROR("(l ?) main node not find: \"svg\" in \"" << m_fileName << "\"");
|
||||
m_loadOK = false;
|
||||
@ -283,7 +258,7 @@ bool esvg::Document::parseXMLData(const std::shared_ptr<exml::Element>& _root) {
|
||||
SVG_ERROR("(l "<<child->getPos()<<") error on node: \""<<child->getValue()<<"\" allocation error or not supported ...");
|
||||
continue;
|
||||
}
|
||||
if (elementParser->parse(child, m_transformMatrix, size) == false) {
|
||||
if (elementParser->parseXML(child, m_transformMatrix, size) == false) {
|
||||
SVG_ERROR("(l "<<child->getPos()<<") error on node: \""<<child->getValue()<<"\" Sub Parsing ERROR");
|
||||
delete(elementParser);
|
||||
elementParser = nullptr;
|
||||
|
13
esvg/esvg.h
13
esvg/esvg.h
@ -26,10 +26,8 @@ namespace esvg {
|
||||
std::string m_title;
|
||||
std::vector<esvg::Base*> m_subElementList;
|
||||
vec2 m_size;
|
||||
esvg::Renderer* m_renderedElement;
|
||||
public:
|
||||
Document();
|
||||
Document(const std::string& _fileName);
|
||||
~Document();
|
||||
void clear();
|
||||
/**
|
||||
@ -67,13 +65,16 @@ namespace esvg {
|
||||
return m_loadOK;
|
||||
};
|
||||
void displayDebug();
|
||||
void generateTestFile();
|
||||
void generateAnImage(const ivec2& _size, const std::string& _fileName, bool _visualDebug=false);
|
||||
//void generateAnImage(ivec2 _size, draw::Image& _output);
|
||||
//void generateAnImage(draw::Image& _output);
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans);
|
||||
uint8_t* getPointerOnData();
|
||||
uint32_t getSizeOnData();
|
||||
std::vector<etk::Color<float,4>> renderImageFloatRGBA(ivec2& _size);
|
||||
std::vector<etk::Color<float,3>> renderImageFloatRGB(ivec2& _size);
|
||||
std::vector<etk::Color<uint8_t,4>> renderImageU8RGBA(ivec2& _size);
|
||||
std::vector<etk::Color<uint8_t,3>> renderImageU8RGB(ivec2& _size);
|
||||
protected:
|
||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level=0);
|
||||
public:
|
||||
vec2 getDefinedSize() {
|
||||
return m_size;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user