Fix assert in text clipping.

The original code was truncating to int rather than taking the floor.
This would give us the wrong integer value for negative numbers.

Bug: skia:7225
Change-Id: Ief6a01358d936dd3b3e1d36af569274995c2586e
Reviewed-on: https://skia-review.googlesource.com/64064
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This commit is contained in:
Jim Van Verth 2017-10-26 14:27:10 -04:00 committed by Skia Commit-Bot
parent 25019175eb
commit 1a8f234f61

View File

@ -84,10 +84,10 @@ static void clip_quads(const SkIRect& clipRect,
SkPoint* blobPositionRB = reinterpret_cast<SkPoint*>(blobVertices + 3*vertexStride);
// positions for bitmap glyphs are pixel boundary aligned
SkIRect positionRect = SkIRect::MakeLTRB(blobPositionLT->fX,
blobPositionLT->fY,
blobPositionRB->fX,
blobPositionRB->fY);
SkIRect positionRect = SkIRect::MakeLTRB(SkScalarFloorToInt(blobPositionLT->fX),
SkScalarFloorToInt(blobPositionLT->fY),
SkScalarFloorToInt(blobPositionRB->fX),
SkScalarFloorToInt(blobPositionRB->fY));
if (clipRect.contains(positionRect)) {
memcpy(currVertex, blobVertices, 4 * vertexStride);
currVertex += 4 * vertexStride;