本文整理汇总了C++中FloatRect::setHeight方法的典型用法代码示例。如果您正苦于以下问题:C++ FloatRect::setHeight方法的具体用法?C++ FloatRect::setHeight怎么用?C++ FloatRect::setHeight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FloatRect
的用法示例。
在下文中一共展示了FloatRect::setHeight方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawPattern
void GradientGeneratedImage::drawPattern(GraphicsContext* destContext, const FloatRect& srcRect, const FloatSize& scale,
const FloatPoint& phase, CompositeOperator compositeOp, const FloatRect& destRect, WebBlendMode blendMode, const IntSize& repeatSpacing)
{
float stepX = srcRect.width() + repeatSpacing.width();
float stepY = srcRect.height() + repeatSpacing.height();
int firstColumn = static_cast<int>(floorf((((destRect.x() - phase.x()) / scale.width()) - srcRect.x()) / srcRect.width()));
int firstRow = static_cast<int>(floorf((((destRect.y() - phase.y()) / scale.height()) - srcRect.y()) / srcRect.height()));
for (int i = firstColumn; ; ++i) {
float dstX = (srcRect.x() + i * stepX) * scale.width() + phase.x();
// assert that first column encroaches left edge of dstRect.
ASSERT(i > firstColumn || dstX <= destRect.x());
ASSERT(i == firstColumn || dstX > destRect.x());
if (dstX >= destRect.maxX())
break;
float dstMaxX = dstX + srcRect.width() * scale.width();
if (dstX < destRect.x())
dstX = destRect.x();
if (dstMaxX > destRect.maxX())
dstMaxX = destRect.maxX();
if (dstX >= dstMaxX)
continue;
FloatRect visibleSrcRect;
FloatRect tileDstRect;
tileDstRect.setX(dstX);
tileDstRect.setWidth(dstMaxX - dstX);
visibleSrcRect.setX((tileDstRect.x() - phase.x()) / scale.width() - i * stepX);
visibleSrcRect.setWidth(tileDstRect.width() / scale.width());
for (int j = firstRow; ; j++) {
float dstY = (srcRect.y() + j * stepY) * scale.height() + phase.y();
// assert that first row encroaches top edge of dstRect.
ASSERT(j > firstRow || dstY <= destRect.y());
ASSERT(j == firstRow || dstY > destRect.y());
if (dstY >= destRect.maxY())
break;
float dstMaxY = dstY + srcRect.height() * scale.height();
if (dstY < destRect.y())
dstY = destRect.y();
if (dstMaxY > destRect.maxY())
dstMaxY = destRect.maxY();
if (dstY >= dstMaxY)
continue;
tileDstRect.setY(dstY);
tileDstRect.setHeight(dstMaxY - dstY);
visibleSrcRect.setY((tileDstRect.y() - phase.y()) / scale.height() - j * stepY);
visibleSrcRect.setHeight(tileDstRect.height() / scale.height());
draw(destContext, tileDstRect, visibleSrcRect, compositeOp, blendMode);
}
}
}
示例2: drawMaskForRenderer
void RenderSVGResourceMasker::drawMaskForRenderer(RenderElement& renderer, const BackgroundImageGeometry& geometry, GraphicsContext* context, CompositeOperator compositeOp)
{
if (context->paintingDisabled())
return;
if (!applySVGMask(renderer, context, false))
return;
MaskerData* maskerData = maskerDataForRenderer(renderer);
ASSERT(maskerData);
FloatRect oneTileRect;
FloatSize actualTileSize(geometry.tileSize().width() + geometry.spaceSize().width(), geometry.tileSize().height() + geometry.spaceSize().height());
oneTileRect.setX(geometry.destRect().x() + fmodf(fmodf(-geometry.phase().width(), actualTileSize.width()) - actualTileSize.width(), actualTileSize.width()));
oneTileRect.setY(geometry.destRect().y() + fmodf(fmodf(-geometry.phase().height(), actualTileSize.height()) - actualTileSize.height(), actualTileSize.height()));
oneTileRect.setSize(geometry.tileSize());
FloatSize intrinsicTileSize = maskerData->maskImage->logicalSize();
FloatSize scale(geometry.tileSize().width() / intrinsicTileSize.width(), geometry.tileSize().height() / intrinsicTileSize.height());
FloatRect visibleSrcRect;
visibleSrcRect.setX((geometry.destRect().x() - oneTileRect.x()) / scale.width());
visibleSrcRect.setY((geometry.destRect().y() - oneTileRect.y()) / scale.height());
visibleSrcRect.setWidth(geometry.destRect().width() / scale.width());
visibleSrcRect.setHeight(geometry.destRect().height() / scale.height());
context->drawImageBuffer(maskerData->maskImage.get(), ColorSpaceDeviceRGB, geometry.destRect(), visibleSrcRect, compositeOp);
}
示例3: localQuadForTextBox
Vector<FloatQuad> RenderTextLineBoxes::absoluteQuadsForRange(const RenderText& renderer, unsigned start, unsigned end, bool useSelectionHeight, bool* wasFixed) const
{
Vector<FloatQuad> quads;
for (auto box = m_first; box; box = box->nextTextBox()) {
// Note: box->end() returns the index of the last character, not the index past it
if (start <= box->start() && box->end() < end) {
FloatRect boundaries = box->calculateBoundaries();
if (useSelectionHeight) {
LayoutRect selectionRect = box->localSelectionRect(start, end);
if (box->isHorizontal()) {
boundaries.setHeight(selectionRect.height());
boundaries.setY(selectionRect.y());
} else {
boundaries.setWidth(selectionRect.width());
boundaries.setX(selectionRect.x());
}
}
quads.append(renderer.localToAbsoluteQuad(boundaries, 0, wasFixed));
continue;
}
FloatRect rect = localQuadForTextBox(*box, start, end, useSelectionHeight);
if (!rect.isZero())
quads.append(renderer.localToAbsoluteQuad(rect, 0, wasFixed));
}
return quads;
}
示例4: getSourceRect
FloatRect FilterEffect::getSourceRect(const FloatRect& destRect, const FloatRect& destClipRect)
{
FloatRect sourceRect = mapRect(destRect, false);
FloatRect sourceClipRect = mapRect(destClipRect, false);
FloatRect boundaries = filter()->mapLocalRectToAbsoluteRect(effectBoundaries());
if (hasX())
sourceClipRect.setX(boundaries.x());
if (hasY())
sourceClipRect.setY(boundaries.y());
if (hasWidth())
sourceClipRect.setWidth(boundaries.width());
if (hasHeight())
sourceClipRect.setHeight(boundaries.height());
FloatRect result;
if (m_inputEffects.size() > 0) {
result = m_inputEffects.at(0)->getSourceRect(sourceRect, sourceClipRect);
for (unsigned i = 1; i < m_inputEffects.size(); ++i)
result.unite(m_inputEffects.at(i)->getSourceRect(sourceRect, sourceClipRect));
} else {
result = sourceRect;
result.intersect(sourceClipRect);
}
return result;
}
示例5: drawTiled
void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& destRect, const FloatPoint& srcPoint, const FloatSize& scaledTileSize, SkXfermode::Mode op, const IntSize& repeatSpacing)
{
FloatSize intrinsicTileSize = size();
if (hasRelativeWidth())
intrinsicTileSize.setWidth(scaledTileSize.width());
if (hasRelativeHeight())
intrinsicTileSize.setHeight(scaledTileSize.height());
FloatSize scale(scaledTileSize.width() / intrinsicTileSize.width(),
scaledTileSize.height() / intrinsicTileSize.height());
FloatSize actualTileSize(scaledTileSize.width() + repeatSpacing.width(), scaledTileSize.height() + repeatSpacing.height());
FloatRect oneTileRect;
oneTileRect.setX(destRect.x() + fmodf(fmodf(-srcPoint.x(), actualTileSize.width()) - actualTileSize.width(), actualTileSize.width()));
oneTileRect.setY(destRect.y() + fmodf(fmodf(-srcPoint.y(), actualTileSize.height()) - actualTileSize.height(), actualTileSize.height()));
oneTileRect.setSize(scaledTileSize);
// Check and see if a single draw of the image can cover the entire area we are supposed to tile.
if (oneTileRect.contains(destRect)) {
FloatRect visibleSrcRect;
visibleSrcRect.setX((destRect.x() - oneTileRect.x()) / scale.width());
visibleSrcRect.setY((destRect.y() - oneTileRect.y()) / scale.height());
visibleSrcRect.setWidth(destRect.width() / scale.width());
visibleSrcRect.setHeight(destRect.height() / scale.height());
ctxt->drawImage(this, destRect, visibleSrcRect, op, DoNotRespectImageOrientation);
return;
}
FloatRect tileRect(FloatPoint(), intrinsicTileSize);
drawPattern(ctxt, tileRect, scale, oneTileRect.location(), op, destRect, repeatSpacing);
startAnimation();
}
示例6: getCropRect
SkImageFilter::CropRect FilterEffect::getCropRect(const FloatSize& cropOffset) const
{
FloatRect rect = filter()->filterRegion();
uint32_t flags = 0;
FloatRect boundaries = effectBoundaries();
boundaries.move(cropOffset);
if (hasX()) {
rect.setX(boundaries.x());
flags |= SkImageFilter::CropRect::kHasLeft_CropEdge;
flags |= SkImageFilter::CropRect::kHasRight_CropEdge;
}
if (hasY()) {
rect.setY(boundaries.y());
flags |= SkImageFilter::CropRect::kHasTop_CropEdge;
flags |= SkImageFilter::CropRect::kHasBottom_CropEdge;
}
if (hasWidth()) {
rect.setWidth(boundaries.width());
flags |= SkImageFilter::CropRect::kHasRight_CropEdge;
}
if (hasHeight()) {
rect.setHeight(boundaries.height());
flags |= SkImageFilter::CropRect::kHasBottom_CropEdge;
}
rect.scale(filter()->absoluteTransform().a(), filter()->absoluteTransform().d());
return SkImageFilter::CropRect(rect, flags);
}
示例7: setNeedsDisplayInRect
void PlatformCALayerWinInternal::setNeedsDisplayInRect(const FloatRect& dirtyRect)
{
if (!owner())
return;
ASSERT(owner()->layerType() != PlatformCALayer::LayerTypeTiledBackingLayer);
if (owner()->owner()) {
if (owner()->owner()->platformCALayerShowRepaintCounter(owner())) {
FloatRect layerBounds = owner()->bounds();
FloatRect repaintCounterRect = layerBounds;
// We assume a maximum of 4 digits and a font size of 18.
repaintCounterRect.setWidth(80);
repaintCounterRect.setHeight(22);
if (owner()->owner()->platformCALayerContentsOrientation() == WebCore::GraphicsLayer::CompositingCoordinatesTopDown)
repaintCounterRect.setY(layerBounds.height() - (layerBounds.y() + repaintCounterRect.height()));
internalSetNeedsDisplay(&repaintCounterRect);
}
if (owner()->owner()->platformCALayerContentsOrientation() == WebCore::GraphicsLayer::CompositingCoordinatesTopDown) {
FloatRect flippedDirtyRect = dirtyRect;
flippedDirtyRect.setY(owner()->bounds().height() - (flippedDirtyRect.y() + flippedDirtyRect.height()));
internalSetNeedsDisplay(&flippedDirtyRect);
return;
}
}
internalSetNeedsDisplay(&dirtyRect);
owner()->setNeedsCommit();
}
示例8: getCropRect
SkImageFilter::CropRect FilterEffect::getCropRect(const FloatSize& cropOffset) const
{
FloatRect rect;
uint32_t flags = 0;
if (!hasConnectedInput() && !filter()->filterRegion().isEmpty()) {
rect = filter()->filterRegion();
flags = SkImageFilter::CropRect::kHasAll_CropEdge;
}
FloatRect boundaries = effectBoundaries();
boundaries.move(cropOffset);
if (hasX()) {
rect.setX(boundaries.x());
flags |= SkImageFilter::CropRect::kHasLeft_CropEdge;
}
if (hasY()) {
rect.setY(boundaries.y());
flags |= SkImageFilter::CropRect::kHasTop_CropEdge;
}
if (hasWidth()) {
rect.setWidth(boundaries.width());
flags |= SkImageFilter::CropRect::kHasWidth_CropEdge;
}
if (hasHeight()) {
rect.setHeight(boundaries.height());
flags |= SkImageFilter::CropRect::kHasHeight_CropEdge;
}
rect.scale(filter()->scale());
return SkImageFilter::CropRect(rect, flags);
}
示例9: calculateEffectSubRegion
void SVGFilter::calculateEffectSubRegion(FilterEffect* effect)
{
FloatRect subRegionBBox = effect->effectBoundaries();
FloatRect useBBox = effect->unionOfChildEffectSubregions();
FloatRect newSubRegion = subRegionBBox;
if (m_effectBBoxMode) {
newSubRegion = useBBox;
if (effect->hasX())
newSubRegion.setX(m_itemBox.x() + subRegionBBox.x() * m_itemBox.width());
if (effect->hasY())
newSubRegion.setY(m_itemBox.y() + subRegionBBox.y() * m_itemBox.height());
if (effect->hasWidth())
newSubRegion.setWidth(subRegionBBox.width() * m_itemBox.width());
if (effect->hasHeight())
newSubRegion.setHeight(subRegionBBox.height() * m_itemBox.height());
} else {
if (!effect->hasX())
newSubRegion.setX(useBBox.x());
if (!effect->hasY())
newSubRegion.setY(useBBox.y());
if (!effect->hasWidth())
newSubRegion.setWidth(useBBox.width());
if (!effect->hasHeight())
newSubRegion.setHeight(useBBox.height());
}
// clip every filter effect to the filter region
newSubRegion.intersect(m_filterRect);
effect->setSubRegion(newSubRegion);
newSubRegion.scale(filterResolution().width(), filterResolution().height());
effect->setScaledSubRegion(newSubRegion);
m_maxImageSize = m_maxImageSize.expandedTo(newSubRegion.size());
}
示例10: heightAttrSetter
static void heightAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
INC_STATS("DOM.SVGRect.height._set");
V8SVGPODTypeWrapper<FloatRect>* wrapper = V8SVGPODTypeWrapper<FloatRect>::toNative(info.Holder());
FloatRect impInstance = *wrapper;
FloatRect* imp = &impInstance;
float v = static_cast<float>(value->NumberValue());
imp->setHeight(v);
wrapper->commitChange(*imp, V8Proxy::svgContext(wrapper));
return;
}
示例11: adjustRectForShadow
void ShadowList::adjustRectForShadow(FloatRect& rect) const {
float shadowLeft = 0;
float shadowRight = 0;
float shadowTop = 0;
float shadowBottom = 0;
calculateShadowExtent(this, shadowLeft, shadowRight, shadowTop, shadowBottom);
rect.move(shadowLeft, shadowTop);
rect.setWidth(rect.width() - shadowLeft + shadowRight);
rect.setHeight(rect.height() - shadowTop + shadowBottom);
}
示例12: clampToContentsRectIfRectIsInfinite
static void clampToContentsRectIfRectIsInfinite(FloatRect& rect, const IntRect& contentsRect)
{
if (rect.width() >= LayoutUnit::nearlyMax() || rect.width() <= LayoutUnit::nearlyMin()) {
rect.setX(contentsRect.x());
rect.setWidth(contentsRect.width());
}
if (rect.height() >= LayoutUnit::nearlyMax() || rect.height() <= LayoutUnit::nearlyMin()) {
rect.setY(contentsRect.y());
rect.setHeight(contentsRect.height());
}
}
示例13: clampedAbsoluteTargetRect
FloatRect SVGImageBufferTools::clampedAbsoluteTargetRect(const FloatRect& absoluteTargetRect)
{
FloatRect clampedAbsoluteTargetRect = absoluteTargetRect;
if (clampedAbsoluteTargetRect.width() > kMaxImageBufferSize)
clampedAbsoluteTargetRect.setWidth(kMaxImageBufferSize);
if (clampedAbsoluteTargetRect.height() > kMaxImageBufferSize)
clampedAbsoluteTargetRect.setHeight(kMaxImageBufferSize);
return clampedAbsoluteTargetRect;
}
示例14: adjustRectForShadow
void ShadowData::adjustRectForShadow(FloatRect& rect, int additionalOutlineSize) const
{
int shadowLeft = 0;
int shadowRight = 0;
int shadowTop = 0;
int shadowBottom = 0;
calculateShadowExtent(this, additionalOutlineSize, shadowLeft, shadowRight, shadowTop, shadowBottom);
rect.move(shadowLeft, shadowTop);
rect.setWidth(rect.width() - shadowLeft + shadowRight);
rect.setHeight(rect.height() - shadowTop + shadowBottom);
}
示例15: adjustForNegativeSize
FloatRect Image::adjustForNegativeSize(const FloatRect& rect)
{
FloatRect norm = rect;
if (norm.width() < 0) {
norm.setX(norm.x() + norm.width());
norm.setWidth(-norm.width());
}
if (norm.height() < 0) {
norm.setY(norm.y() + norm.height());
norm.setHeight(-norm.height());
}
return norm;
}