History log of /external/skia/src/core/SkTextBlob.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
32d6b876163580711a07e96d9f29c9c1490a7271 17-Nov-2015 fmalita <fmalita@chromium.org> SkTextBlob should store per-run text alignment

SkPaint::Align is only observed for kDefault_Positioning AFAICT, but
part of the run logical font nevertheless.

BUG=skia:4567
R=mtklein@google.com,halcanary@google.com

Review URL: https://codereview.chromium.org/1447403003
/external/skia/src/core/SkTextBlob.cpp
337797580de42cdb722caab4bed121311ed7d0d2 27-Oct-2015 halcanary <halcanary@google.com> Make SkTextBlob::RunIterator public.

Motivation: This will be easier than adding a friend every time I want
to create a one-off SkCanvas subclass or SkRemote::Encoder subclass.

See also: SkPath::Iter.

Review URL: https://codereview.chromium.org/1411723005
/external/skia/src/core/SkTextBlob.cpp
9ae8fe1c601ecb7fef9962f9eb1adf11032378e4 13-Oct-2015 fmalita <fmalita@chromium.org> [SkTextBlob] Remove incorrect builder assert

At the end of TightRunBounds, glyphPosX cannot exceed the start of the
next run. But glyphPosY is running ahead of glyphPosX (for
kFull_Positioning) => the glyphPosY assert is incorrect.

Since the two pointers advance in lock-step, there isn't much value in
the glyphPosY assert anyway - we might as well remove it.

BUG=chromium:542643
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/1405463004
/external/skia/src/core/SkTextBlob.cpp
b0b45d35e4f30c1f42b6a910dc7f90e1a88de70c 09-Oct-2015 fmalita <fmalita@chromium.org> [TextBlob] Fall back to TightRunBounds when the font bounds are empty

Empty font bounds are likely an indication of a font bug. As a best
effort, we can use TightRunBounds in this easily detectable case.

Since TightRunBounds only supports kDefault_Positioning currently, the
CL also reinstates handling of kFull_Positioning and
kHorizontal_Positioning (removed in http://crrev.com/858153007).

BUG=507022
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/1399123002
/external/skia/src/core/SkTextBlob.cpp
92d976c3ad06d4a398d7bf95d2060e40154c39d7 05-Oct-2015 fmalita <fmalita@chromium.org> Validate text blob runs after SkTextBlob construction.

This avoids tripping CFI when casting uninitialized SkTextBlob ptrs.

BUG=chromium:538754
R=bungeman@google.com,reed@google.com,krasin@google.com

Review URL: https://codereview.chromium.org/1388543005
/external/skia/src/core/SkTextBlob.cpp
96fcdcc219d2a0d3579719b84b28bede76efba64 27-Aug-2015 halcanary <halcanary@google.com> Style Change: NULL->nullptr
DOCS_PREVIEW= https://skia.org/?cl=1316233002

Review URL: https://codereview.chromium.org/1316233002
/external/skia/src/core/SkTextBlob.cpp
99fe82260633fcf5d92cca38d12ef0937ecca61c 20-Aug-2015 bungeman <bungeman@google.com> Use static_assert instead of SK_COMPILE_ASSERT.

Now that static_assert is allowed, there is no need to use a non-
standard compile time assertion

Review URL: https://codereview.chromium.org/1306443004
/external/skia/src/core/SkTextBlob.cpp
2a5ca89ea1a5093b5d143740619ca162a74fe0e7 10-Aug-2015 egdaniel <egdaniel@google.com> Revert of [TextBlob] Fall back to TightRunBounds when the font bounds are empty (patchset #1 id:1 of https://codereview.chromium.org/1284693002/ )

Reason for revert:
Breaking DEPS roll on Assert in SkTextBlobBuilder::TightRunBounds.

Original issue's description:
> [TextBlob] Fall back to TightRunBounds when the font bounds are empty
>
> Empty font bounds are likely an indication of a font bug. As a best
> effort, we can use TightRunBounds in this easily detectable case.
>
> BUG=507022
> R=reed@google.com,bungeman@google.com
>
> Committed: https://skia.googlesource.com/skia/+/d6b99cc6b84b3ec864221cbe9945d203bd9eb072

TBR=bungeman@google.com,reed@google.com,fmalita@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507022

Review URL: https://codereview.chromium.org/1283853002
/external/skia/src/core/SkTextBlob.cpp
d6b99cc6b84b3ec864221cbe9945d203bd9eb072 10-Aug-2015 fmalita <fmalita@chromium.org> [TextBlob] Fall back to TightRunBounds when the font bounds are empty

Empty font bounds are likely an indication of a font bug. As a best
effort, we can use TightRunBounds in this easily detectable case.

BUG=507022
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/1284693002
/external/skia/src/core/SkTextBlob.cpp
4854d13c27f6e3f8f763afd291821ce42324e645 22-Jun-2015 jvanverth <jvanverth@google.com> Remove distance field flag from SkPaint

Review URL: https://codereview.chromium.org/1192413005
/external/skia/src/core/SkTextBlob.cpp
9e36c1a9306f052331550dab4728b9875127bfb5 14-Apr-2015 joshualitt <joshualitt@chromium.org> Start canonicalizing color for all A8 textblobs

BUG=skia:

Review URL: https://codereview.chromium.org/1076593002
/external/skia/src/core/SkTextBlob.cpp
055f6b59d879b2adac52748ea5a58c8a05bf501c 09-Apr-2015 fmalita <fmalita@chromium.org> [SkTextBlob] Custom run font record

Instead of using a full-blown SkPaint to store run font info, use a
custom structure.

This saves 96 bytes / run on 64bit platforms.

R=reed@google.com,mtklein@google.com,joshualitt@google.com

Review URL: https://codereview.chromium.org/1070943002
/external/skia/src/core/SkTextBlob.cpp
2af858354d913397a6c316ef46a5d52d686e10ab 25-Mar-2015 joshualitt <joshualitt@chromium.org> simple patch to always init SkTextBlob uniqueID

BUG=skia:

Review URL: https://codereview.chromium.org/1036613002
/external/skia/src/core/SkTextBlob.cpp
f9a40723f5d9bfe02cc60bedb5b956916e5cea01 29-Jan-2015 fmalita <fmalita@chromium.org> Conservative blob bounds cleanup

* drop SK_SUPPORT_LEGACY_BLOB_BOUNDS
* remove horizontal & fully position tight bounds support (always using
conservative bounds now)
* special-case horizontal run bounds logic to avoid unnecessary vertical
min-maxing

R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/858153007
/external/skia/src/core/SkTextBlob.cpp
3dc40ac9f968eee95eef5e8ee811e0640691df0f 28-Jan-2015 fmalita <fmalita@chromium.org> Conservative SkTextBlob bounds.

Compute cheaper/more conservative text blob bounds based on the typeface
maximum glyph bbox.

BUG=chromium:451401
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/886473002
/external/skia/src/core/SkTextBlob.cpp
072803144a623f1a59eb73ca5f3ddf45222b5e06 20-Nov-2014 bsalomon <bsalomon@google.com> Stop overloading internal_dispose in SkTextBlob and SkData

Review URL: https://codereview.chromium.org/737093002
/external/skia/src/core/SkTextBlob.cpp
19653d1d004610b4ba07ce563a5701164e120e45 16-Oct-2014 fmalita <fmalita@chromium.org> Implicit SkTextBlob bounds

Compute blob bounds when the client doesn't pass explicit run rects to
the builder. This allows us to remove a couple of internal workarounds.

R=reed@google.com,mtklein@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/654873003
/external/skia/src/core/SkTextBlob.cpp
3c196def91726913a417e703ac482bb2dbbfff27 20-Sep-2014 fmalita <fmalita@chromium.org> Souped-up SkTextBlob.

Refactored text blob backend for improved performance: instead of using
separate buffers for runs/positions/glyphs, everything is now packed in
a consolidated slab (including the SkTextBlob object itself!).

Benefits:

* number of allocations per blob construction reduced from ~4 to 1
(also minimizes internal fragmentation)
* run record size reduced by 8 bytes

This takes the blob construction overhead down to negligible levels
(for the current Blink uncached textblob implementation).

Unfortunately, the code is much more finicky (run merging in
particular) -- hence the assert spree.

Multi-run blobs are vulnerable to realloc storms but this is not a
problem at the moment because Blink is using one-run blobs 99% of the
time. Will be addressed in the future.

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/581173003
/external/skia/src/core/SkTextBlob.cpp
e50215e5988c3b29c3e337fdd7cc3c9b13cec013 20-Sep-2014 fmalita <fmalita@chromium.org> Revert of Souped-up SkTextBlob. (patchset #3 id:40001 of https://codereview.chromium.org/581173003/)

Reason for revert:
Broke the new blobshader gm.

Original issue's description:
> Souped-up SkTextBlob.
>
> Refactored text blob backend for improved performance: instead of using
> separate buffers for runs/positions/glyphs, everything is now packed in
> a consolidated slab (including the SkTextBlob object itself!).
>
> Benefits:
>
> * number of allocations per blob construction reduced from ~4 to 1
> (also minimizes internal fragmentation)
> * run record size reduced by 8 bytes
>
> This takes the blob construction overhead down to negligible levels
> (for the current Blink uncached textblob implementation).
>
> Unfortunately, the code is much more finicky (run merging in
> particular) -- hence the assert spree.
>
> Multi-run blobs are vulnerable to realloc storms but this is not a
> problem at the moment because Blink is using one-run blobs 99% of the
> time. Will be addressed in the future.
>
>
> R=reed@google.com,mtklein@google.com,robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4

R=mtklein@google.com, reed@google.com, robertphillips@google.com
TBR=mtklein@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/588853002
/external/skia/src/core/SkTextBlob.cpp
13645ea0ea87038ebd71be3bd6d53b313069a9e4 20-Sep-2014 fmalita <fmalita@chromium.org> Souped-up SkTextBlob.

Refactored text blob backend for improved performance: instead of using
separate buffers for runs/positions/glyphs, everything is now packed in
a consolidated slab (including the SkTextBlob object itself!).

Benefits:

* number of allocations per blob construction reduced from ~4 to 1
(also minimizes internal fragmentation)
* run record size reduced by 8 bytes

This takes the blob construction overhead down to negligible levels
(for the current Blink uncached textblob implementation).

Unfortunately, the code is much more finicky (run merging in
particular) -- hence the assert spree.

Multi-run blobs are vulnerable to realloc storms but this is not a
problem at the moment because Blink is using one-run blobs 99% of the
time. Will be addressed in the future.

R=mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/581173003
/external/skia/src/core/SkTextBlob.cpp
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
/external/skia/src/core/SkTextBlob.cpp
b7425173f96e93b090787e2386ba5f022b6c2869 26-Aug-2014 fmalita <fmalita@chromium.org> SkTextBlob plumbing

Add SkTextBlob serialization + drawTextBlob() overrides.

R=mtklein@google.com, reed@google.com, robertphillips@google.com
BUG=269080

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/499413002
/external/skia/src/core/SkTextBlob.cpp
37ecbaffd1f9f6841aa562aa31a824d109d52988 22-Aug-2014 fmalita <fmalita@chromium.org> [SkTextBlob] Merge run font data at draw time.

R=bungeman@google.com, reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/496773002
/external/skia/src/core/SkTextBlob.cpp
00d5c2c6523321d25b32905ff4822f083a4173ee 21-Aug-2014 fmalita <fmalita@chromium.org> SkTextBlob

Initial implementation.

R=bungeman@google.com, jbroman@chromium.org, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/473633002
/external/skia/src/core/SkTextBlob.cpp