本文整理汇总了C++中DrawingContext::setTolerance方法的典型用法代码示例。如果您正苦于以下问题:C++ DrawingContext::setTolerance方法的具体用法?C++ DrawingContext::setTolerance怎么用?C++ DrawingContext::setTolerance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DrawingContext
的用法示例。
在下文中一共展示了DrawingContext::setTolerance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _renderItem
unsigned DrawingText::_renderItem(DrawingContext &ct, Geom::IntRect const &/*area*/, unsigned /*flags*/, DrawingItem * /*stop_at*/)
{
if (_drawing.outline()) {
guint32 rgba = _drawing.outlinecolor;
Inkscape::DrawingContext::Save save(ct);
ct.setSource(rgba);
ct.setTolerance(0.5); // low quality, but good enough for outline mode
for (ChildrenList::iterator i = _children.begin(); i != _children.end(); ++i) {
DrawingGlyphs *g = dynamic_cast<DrawingGlyphs *>(&*i);
if (!g) throw InvalidItemException();
Inkscape::DrawingContext::Save save(ct);
// skip glpyhs with singular transforms
if (g->_ctm.isSingular()) continue;
ct.transform(g->_ctm);
ct.path(*g->_font->PathVector(g->_glyph));
ct.fill();
}
return RENDER_OK;
}
// NOTE: this is very similar to drawing-shape.cpp; the only difference is in path feeding
bool has_stroke, has_fill;
has_fill = _nrstyle.prepareFill(ct, _item_bbox);
has_stroke = _nrstyle.prepareStroke(ct, _item_bbox);
if (has_fill || has_stroke) {
for (ChildrenList::iterator i = _children.begin(); i != _children.end(); ++i) {
DrawingGlyphs *g = dynamic_cast<DrawingGlyphs *>(&*i);
if (!g) throw InvalidItemException();
Inkscape::DrawingContext::Save save(ct);
if (g->_ctm.isSingular()) continue;
ct.transform(g->_ctm);
ct.path(*g->_font->PathVector(g->_glyph));
}
Inkscape::DrawingContext::Save save(ct);
ct.transform(_ctm);
if (has_fill) {
_nrstyle.applyFill(ct);
ct.fillPreserve();
}
if (has_stroke) {
_nrstyle.applyStroke(ct);
ct.strokePreserve();
}
ct.newPath(); // clear path
}
return RENDER_OK;
}