本文整理汇总了C++中FloatRect::inflate方法的典型用法代码示例。如果您正苦于以下问题:C++ FloatRect::inflate方法的具体用法?C++ FloatRect::inflate怎么用?C++ FloatRect::inflate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FloatRect
的用法示例。
在下文中一共展示了FloatRect::inflate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: paintMediaFullscreenButton
bool RenderThemeWinCE::paintMediaFullscreenButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r)
{
bool rc = paintButton(o, paintInfo, r);
FloatRect imRect = r;
imRect.inflate(-2);
paintInfo.context->save();
paintInfo.context->setStrokeColor(Color::black);
paintInfo.context->setFillColor(Color::gray);
paintInfo.context->fillRect(imRect);
paintInfo.context->restore();
return rc;
}
示例2: computeFloatRectForRepaint
FloatRect SVGRenderSupport::computeFloatRectForRepaint(const RenderElement& renderer, const FloatRect& repaintRect, const RenderLayerModelObject* repaintContainer, bool fixed)
{
FloatRect adjustedRect = repaintRect;
const SVGRenderStyle& svgStyle = renderer.style().svgStyle();
if (const ShadowData* shadow = svgStyle.shadow())
shadow->adjustRectForShadow(adjustedRect);
adjustedRect.inflate(renderer.style().outlineWidth());
// Translate to coords in our parent renderer, and then call computeFloatRectForRepaint() on our parent.
adjustedRect = renderer.localToParentTransform().mapRect(adjustedRect);
return renderer.parent()->computeFloatRectForRepaint(adjustedRect, repaintContainer, fixed);
}
示例3: strokeBoundingBox
FloatRect RenderSVGText::strokeBoundingBox() const
{
FloatRect strokeBoundaries = objectBoundingBox();
const SVGRenderStyle* svgStyle = style()->svgStyle();
if (!svgStyle->hasStroke())
return strokeBoundaries;
ASSERT(node());
ASSERT(node()->isSVGElement());
strokeBoundaries.inflate(svgStyle->strokeWidth().value(static_cast<SVGElement*>(node())));
return strokeBoundaries;
}
示例4: strokeBoundingBox
FloatRect LayoutSVGText::strokeBoundingBox() const
{
FloatRect strokeBoundaries = objectBoundingBox();
const SVGComputedStyle& svgStyle = style()->svgStyle();
if (!svgStyle.hasStroke())
return strokeBoundaries;
ASSERT(node());
ASSERT(node()->isSVGElement());
SVGLengthContext lengthContext(toSVGElement(node()));
strokeBoundaries.inflate(lengthContext.valueForLength(svgStyle.strokeWidth()));
return strokeBoundaries;
}
示例5: strokeBoundingBox
FloatRect RenderSVGText::strokeBoundingBox() const
{
FloatRect strokeBoundaries = objectBoundingBox();
const SVGRenderStyle* svgStyle = style()->svgStyle();
if (!svgStyle->hasStroke())
return strokeBoundaries;
ASSERT(node());
ASSERT(node()->isSVGElement());
SVGLengthContext lengthContext(toSVGElement(node()));
strokeBoundaries.inflate(svgStyle->strokeWidth().value(lengthContext));
return strokeBoundaries;
}
示例6: localOverflowRectForPaintInvalidation
FloatRect SVGLayoutSupport::localOverflowRectForPaintInvalidation(const LayoutObject& object)
{
// This doesn't apply to LayoutSVGRoot. Use LayoutSVGRoot::localOverflowRectForPaintInvalidation() instead.
ASSERT(!object.isSVGRoot());
// Return early for any cases where we don't actually paint
if (object.styleRef().visibility() != VISIBLE && !object.enclosingLayer()->hasVisibleContent())
return FloatRect();
FloatRect paintInvalidationRect = object.paintInvalidationRectInLocalSVGCoordinates();
if (int outlineOutset = object.styleRef().outlineOutsetExtent())
paintInvalidationRect.inflate(outlineOutset);
return paintInvalidationRect;
}
示例7: hitTestStrokeBoundingBox
FloatRect LayoutSVGShape::hitTestStrokeBoundingBox() const {
if (style()->svgStyle().hasStroke())
return m_strokeBoundingBox;
// Implementation of
// http://dev.w3.org/fxtf/css-masking-1/#compute-stroke-bounding-box
// for the <rect> / <ellipse> / <circle> case except that we ignore whether
// the stroke is none.
FloatRect box = m_fillBoundingBox;
const float strokeWidth = this->strokeWidth();
box.inflate(strokeWidth / 2);
return box;
}
示例8: paintMediaSeekForwardButton
bool RenderThemeWinCE::paintMediaSeekForwardButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r)
{
bool rc = paintButton(o, paintInfo, r);
FloatRect imRect = r;
imRect.inflate(-3);
FloatPoint pts[3] = { FloatPoint(imRect.x(), imRect.y()), FloatPoint((imRect.x() + imRect.maxX()) / 2.0, (imRect.y() + imRect.maxY()) / 2.0), FloatPoint(imRect.x(), imRect.maxY()) };
FloatPoint pts2[3] = { FloatPoint((imRect.x() + imRect.maxX()) / 2.0, imRect.y()), FloatPoint(imRect.maxX(), (imRect.y() + imRect.maxY()) / 2.0), FloatPoint((imRect.x() + imRect.maxX()) / 2.0, imRect.maxY()) };
paintInfo.context->save();
paintInfo.context->setStrokeColor(Color::black);
paintInfo.context->setFillColor(Color::black);
paintInfo.context->drawConvexPolygon(3, pts);
paintInfo.context->drawConvexPolygon(3, pts2);
paintInfo.context->restore();
return rc;
}
示例9: absoluteClippedOverflowRect
IntRect RenderSVGText::absoluteClippedOverflowRect()
{
FloatRect repaintRect = absoluteTransform().mapRect(relativeBBox(true));
#if ENABLE(SVG_FILTERS)
// Filters can expand the bounding box
SVGResourceFilter* filter = getFilterById(document(), style()->svgStyle()->filter());
if (filter)
repaintRect.unite(filter->filterBBoxForItemBBox(repaintRect));
#endif
if (!repaintRect.isEmpty())
repaintRect.inflate(1); // inflate 1 pixel for antialiasing
return enclosingIntRect(repaintRect);
}
示例10: calculateAbsoluteBounds
void RenderSVGImage::calculateAbsoluteBounds()
{
// FIXME: broken with CSS transforms
FloatRect absoluteRect = absoluteTransform().mapRect(relativeBBox(true));
#if ENABLE(SVG_FILTERS)
// Filters can expand the bounding box
SVGResourceFilter* filter = getFilterById(document(), style()->svgStyle()->filter());
if (filter)
absoluteRect.unite(filter->filterBBoxForItemBBox(absoluteRect));
#endif
if (!absoluteRect.isEmpty())
absoluteRect.inflate(1); // inflate 1 pixel for antialiasing
m_absoluteBounds = enclosingIntRect(absoluteRect);
}
示例11: absoluteClippedOverflowRect
IntRect RenderSVGImage::absoluteClippedOverflowRect()
{
FloatRect repaintRect = relativeBBox(true);
repaintRect = absoluteTransform().mapRect(repaintRect);
#if ENABLE(SVG_EXPERIMENTAL_FEATURES)
// Filters can expand the bounding box
SVGResourceFilter* filter = getFilterById(document(), SVGURIReference::getTarget(style()->svgStyle()->filter()));
if (filter)
repaintRect.unite(filter->filterBBoxForItemBBox(repaintRect));
#endif
if (!repaintRect.isEmpty())
repaintRect.inflate(1); // inflate 1 pixel for antialiasing
return enclosingIntRect(repaintRect);
}
示例12: rect
void CanvasRenderingContext2D::strokeRect(float x, float y, float width, float height, float lineWidth, ExceptionCode& ec)
{
ec = 0;
if (!(width >= 0 && height >= 0 && lineWidth >= 0)) {
ec = INDEX_SIZE_ERR;
return;
}
GraphicsContext* c = drawingContext();
if (!c)
return;
FloatRect rect(x, y, width, height);
FloatRect boundingRect = rect;
boundingRect.inflate(lineWidth / 2);
willDraw(boundingRect);
#if PLATFORM(QT)
//This is done because underneath doesn't support gradients
// once we have canvas gradients implemented in the general code
// just remove this section
if (state().m_strokeStyle->pattern())
applyStrokePattern();
QPainter* p = static_cast<QPainter*>(c->platformContext());
p->save();
{
p->setBrush(Qt::NoBrush);
QPen pen = p->pen();
pen.setWidthF(lineWidth);
if (state().m_strokeStyle->gradient())
pen.setBrush(QBrush(*(state().m_strokeStyle->gradient()->platformShading())));
p->setPen(pen);
p->drawRect(rect);
}
p->restore();
#else
// FIXME: No support for gradients!
if (state().m_strokeStyle->pattern())
applyStrokePattern();
c->strokeRect(rect, lineWidth);
#endif
}
示例13: absoluteClippedOverflowRect
IntRect RenderSVGContainer::absoluteClippedOverflowRect()
{
FloatRect repaintRect;
for (RenderObject* current = firstChild(); current != 0; current = current->nextSibling())
repaintRect.unite(current->absoluteClippedOverflowRect());
#if ENABLE(SVG_FILTERS)
// Filters can expand the bounding box
SVGResourceFilter* filter = getFilterById(document(), style()->svgStyle()->filter());
if (filter)
repaintRect.unite(filter->filterBBoxForItemBBox(repaintRect));
#endif
if (!repaintRect.isEmpty())
repaintRect.inflate(1); // inflate 1 pixel for antialiasing
return enclosingIntRect(repaintRect);
}
示例14: relativeBBox
FloatRect RenderSVGText::relativeBBox(bool includeStroke) const
{
FloatRect repaintRect;
for (InlineRunBox* runBox = firstLineBox(); runBox; runBox = runBox->nextLineBox()) {
ASSERT(runBox->isInlineFlowBox());
InlineFlowBox* flowBox = static_cast<InlineFlowBox*>(runBox);
for (InlineBox* box = flowBox->firstChild(); box; box = box->nextOnLine())
repaintRect.unite(FloatRect(box->xPos(), box->yPos(), box->width(), box->height()));
}
// SVG needs to include the strokeWidth(), not the textStrokeWidth().
if (includeStroke && style()->svgStyle()->hasStroke())
repaintRect.inflate(narrowPrecisionToFloat(KSVGPainterFactory::cssPrimitiveToLength(this, style()->svgStyle()->strokeWidth(), 0.0)));
repaintRect.move(xPos(), yPos());
return repaintRect;
}
示例15: clippedOverflowRectForRepaint
IntRect RenderPath::clippedOverflowRectForRepaint(RenderBox* /*repaintContainer*/)
{
// FIXME: handle non-root repaintContainer
FloatRect repaintRect = absoluteTransform().mapRect(relativeBBox(true));
// Markers can expand the bounding box
repaintRect.unite(m_markerBounds);
#if ENABLE(SVG_FILTERS)
// Filters can expand the bounding box
SVGResourceFilter* filter = getFilterById(document(), style()->svgStyle()->filter());
if (filter)
repaintRect.unite(filter->filterBBoxForItemBBox(repaintRect));
#endif
if (!repaintRect.isEmpty())
repaintRect.inflate(1); // inflate 1 pixel for antialiasing
return enclosingIntRect(repaintRect);
}