[DEV] start realviewport for gradient
This commit is contained in:
parent
8415109007
commit
5f6c4bab85
@ -24,7 +24,7 @@ esvg::PaintState::PaintState() :
|
|||||||
lineCap(esvg::cap_butt),
|
lineCap(esvg::cap_butt),
|
||||||
lineJoin(esvg::join_miter),
|
lineJoin(esvg::join_miter),
|
||||||
miterLimit(4.0f),
|
miterLimit(4.0f),
|
||||||
viewPort(255,255),
|
viewPort(vec2(0.0f,0.0f), vec2(0.0f,0.0f)),
|
||||||
opacity(1.0) {
|
opacity(1.0) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -33,7 +33,8 @@ void esvg::PaintState::clear() {
|
|||||||
fill = std::pair<etk::Color<float,4>, std::string>(etk::color::black, "");
|
fill = std::pair<etk::Color<float,4>, std::string>(etk::color::black, "");
|
||||||
stroke = std::pair<etk::Color<float,4>, std::string>(etk::color::none, "");
|
stroke = std::pair<etk::Color<float,4>, std::string>(etk::color::none, "");
|
||||||
strokeWidth = 1.0;
|
strokeWidth = 1.0;
|
||||||
viewPort.setValue(255,255);
|
viewPort.first.setValue(0.0f,0.0f);
|
||||||
|
viewPort.first.setValue(0.0f,0.0f);
|
||||||
flagEvenOdd = false;
|
flagEvenOdd = false;
|
||||||
lineJoin = esvg::join_miter;
|
lineJoin = esvg::join_miter;
|
||||||
lineCap = esvg::cap_butt;
|
lineCap = esvg::cap_butt;
|
||||||
@ -190,7 +191,7 @@ float esvg::Base::parseLength(const std::string& _dataInput) {
|
|||||||
float font_size = 20.0f;
|
float font_size = 20.0f;
|
||||||
switch (value.second) {
|
switch (value.second) {
|
||||||
case esvg::distance_pourcent:
|
case esvg::distance_pourcent:
|
||||||
return value.first / 100.0 * m_paint.viewPort.x();
|
return value.first;// / 100.0 * m_paint.viewPort.x();
|
||||||
case esvg::distance_element:
|
case esvg::distance_element:
|
||||||
return value.first * font_size;
|
return value.first * font_size;
|
||||||
case esvg::distance_ex:
|
case esvg::distance_ex:
|
||||||
|
@ -47,7 +47,7 @@ namespace esvg {
|
|||||||
enum esvg::cap lineCap;
|
enum esvg::cap lineCap;
|
||||||
enum esvg::join lineJoin;
|
enum esvg::join lineJoin;
|
||||||
float miterLimit;
|
float miterLimit;
|
||||||
vec2 viewPort;
|
std::pair<vec2, vec2> viewPort; //!< min pos, max pos
|
||||||
float opacity;
|
float opacity;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,4 +97,17 @@ void esvg::LinearGradient::draw(esvg::Renderer& _myRenderer, mat2& _basicTrans,
|
|||||||
ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::LinearGradient");
|
ESVG_VERBOSE(spacingDist(_level) << "DRAW esvg::LinearGradient");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const esvg::Dimension& esvg::LinearGradient::getPosition1() {
|
||||||
|
return m_pos1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const esvg::Dimension& esvg::LinearGradient::getPosition2() {
|
||||||
|
return m_pos2;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::vector<std::pair<float, etk::Color<float,4>>>& esvg::LinearGradient::getColors() {
|
||||||
|
return m_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,6 +23,10 @@ namespace esvg {
|
|||||||
virtual bool parseXML(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 display(int32_t _spacing);
|
||||||
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
virtual void draw(esvg::Renderer& _myRenderer, mat2& _basicTrans, int32_t _level);
|
||||||
|
public:
|
||||||
|
const esvg::Dimension& getPosition1();
|
||||||
|
const esvg::Dimension& getPosition2();
|
||||||
|
const std::vector<std::pair<float, etk::Color<float,4>>>& getColors();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,6 +40,12 @@ void esvg::render::DynamicColorLinear::generate(esvg::Document* _document) {
|
|||||||
}
|
}
|
||||||
ESVG_INFO("get for color linear:");
|
ESVG_INFO("get for color linear:");
|
||||||
gradient->display(2);
|
gradient->display(2);
|
||||||
|
|
||||||
|
esvg::Dimension pos1 = gradient->getPosition1();
|
||||||
|
esvg::Dimension pos2 = gradient->getPosition2();
|
||||||
|
std::vector<std::pair<float, etk::Color<float,4>>> data = gradient->getColors();
|
||||||
|
// ROTATE and many things ...
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ TEST(TestGradientLinear, horizontal) {
|
|||||||
" <stop offset='100%' style='stop-color:rgb(255,0,0);stop-opacity:1' />\n"
|
" <stop offset='100%' style='stop-color:rgb(255,0,0);stop-opacity:1' />\n"
|
||||||
" </linearGradient>\n"
|
" </linearGradient>\n"
|
||||||
" </defs>\n"
|
" </defs>\n"
|
||||||
" <ellipse cx='200' cy='70' rx='85' ry='55' fill='url(#grad1)' />\n"
|
" <ellipse cx='50' cy='50' rx='50' ry='20' fill='url(#grad1)' />\n"
|
||||||
"</svg>\n");
|
"</svg>\n");
|
||||||
esvg::Document doc;
|
esvg::Document doc;
|
||||||
doc.parse(data);
|
doc.parse(data);
|
||||||
@ -40,7 +40,7 @@ TEST(TestGradientLinear, vertical) {
|
|||||||
" <stop offset='100%' style='stop-color:rgb(255,0,0);stop-opacity:1' />\n"
|
" <stop offset='100%' style='stop-color:rgb(255,0,0);stop-opacity:1' />\n"
|
||||||
" </linearGradient>\n"
|
" </linearGradient>\n"
|
||||||
" </defs>\n"
|
" </defs>\n"
|
||||||
" <ellipse cx='200' cy='70' rx='85' ry='55' fill='url(#grad2)' />\n"
|
" <ellipse cx='50' cy='50' rx='50' ry='20' fill='url(#grad2)' />\n"
|
||||||
"</svg>\n");
|
"</svg>\n");
|
||||||
esvg::Document doc;
|
esvg::Document doc;
|
||||||
doc.parse(data);
|
doc.parse(data);
|
||||||
|
@ -22,7 +22,7 @@ TEST(TestGradientRadial, full) {
|
|||||||
" <stop offset='100%' style='stop-color:rgb(0,0,255);stop-opacity:1' />\n"
|
" <stop offset='100%' style='stop-color:rgb(0,0,255);stop-opacity:1' />\n"
|
||||||
" </radialGradient>\n"
|
" </radialGradient>\n"
|
||||||
" </defs>\n"
|
" </defs>\n"
|
||||||
" <ellipse cx='200' cy='70' rx='85' ry='55' fill='url(#grad1)' />\n"
|
" <ellipse cx='50' cy='50' rx='50' ry='20' fill='url(#grad1)' />\n"
|
||||||
"</svg>\n");
|
"</svg>\n");
|
||||||
esvg::Document doc;
|
esvg::Document doc;
|
||||||
doc.parse(data);
|
doc.parse(data);
|
||||||
@ -40,7 +40,7 @@ TEST(TestGradientRadial, partial) {
|
|||||||
" <stop offset='100%' style='stop-color:rgb(0,0,255);stop-opacity:1' />\n"
|
" <stop offset='100%' style='stop-color:rgb(0,0,255);stop-opacity:1' />\n"
|
||||||
" </radialGradient>\n"
|
" </radialGradient>\n"
|
||||||
" </defs>\n"
|
" </defs>\n"
|
||||||
" <ellipse cx='200' cy='70' rx='85' ry='55' fill='url(#grad2)' />\n"
|
" <ellipse cx='50' cy='50' rx='50' ry='20' fill='url(#grad2)' />\n"
|
||||||
"</svg>\n");
|
"</svg>\n");
|
||||||
esvg::Document doc;
|
esvg::Document doc;
|
||||||
doc.parse(data);
|
doc.parse(data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user