aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkTextBlob.cpp
Commit message (Collapse)AuthorAge
...
* Move SkTypeface to sk_sp.Gravatar bungeman2016-05-11
| | | | Review-Url: https://codereview.chromium.org/1933393002
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* detach -> releaseGravatar mtklein2016-03-16
| | | | | | | | | | | | | The C++ standard library uses the name "release" for the operation we call "detach". Rewriting each "detach(" to "release(" brings us a step closer to using standard library types directly (e.g. std::unique_ptr instead of SkAutoTDelete). This was a fairly blind transformation. There may have been unintentional conversions in here, but it's probably for the best to have everything uniformly say "release". BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1809733002 Review URL: https://codereview.chromium.org/1809733002
* SkTextBlob should store per-run text alignmentGravatar fmalita2015-11-17
| | | | | | | | | | 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
* Make SkTextBlob::RunIterator public.Gravatar halcanary2015-10-27
| | | | | | | | | 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
* [SkTextBlob] Remove incorrect builder assertGravatar fmalita2015-10-13
| | | | | | | | | | | | | | 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
* [TextBlob] Fall back to TightRunBounds when the font bounds are emptyGravatar fmalita2015-10-09
| | | | | | | | | | | | | | 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
* Validate text blob runs after SkTextBlob construction.Gravatar fmalita2015-10-05
| | | | | | | | | 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
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Use static_assert instead of SK_COMPILE_ASSERT.Gravatar bungeman2015-08-20
| | | | | | | 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
* Revert of [TextBlob] Fall back to TightRunBounds when the font bounds are ↵Gravatar egdaniel2015-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [TextBlob] Fall back to TightRunBounds when the font bounds are emptyGravatar fmalita2015-08-10
| | | | | | | | | | 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
* Remove distance field flag from SkPaintGravatar jvanverth2015-06-22
| | | | Review URL: https://codereview.chromium.org/1192413005
* Start canonicalizing color for all A8 textblobsGravatar joshualitt2015-04-14
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1076593002
* [SkTextBlob] Custom run font recordGravatar fmalita2015-04-09
| | | | | | | | | | | 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
* simple patch to always init SkTextBlob uniqueIDGravatar joshualitt2015-03-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1036613002
* Conservative blob bounds cleanupGravatar fmalita2015-01-29
| | | | | | | | | | | | * 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
* Conservative SkTextBlob bounds.Gravatar fmalita2015-01-28
| | | | | | | | | | 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
* Stop overloading internal_dispose in SkTextBlob and SkDataGravatar bsalomon2014-11-20
| | | | Review URL: https://codereview.chromium.org/737093002
* Implicit SkTextBlob boundsGravatar fmalita2014-10-16
| | | | | | | | | 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
* Souped-up SkTextBlob.Gravatar fmalita2014-09-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert of Souped-up SkTextBlob. (patchset #3 id:40001 of ↵Gravatar fmalita2014-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Souped-up SkTextBlob.Gravatar fmalita2014-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* SkTextBlob plumbingGravatar fmalita2014-08-26
| | | | | | | | | | | 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
* [SkTextBlob] Merge run font data at draw time.Gravatar fmalita2014-08-22
| | | | | | | | R=bungeman@google.com, reed@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/496773002
* SkTextBlobGravatar fmalita2014-08-21
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