Change-Id: I9036b23df7279003a41f6189117fb7dec784ee2a
Reviewed-on: https://skia-review.googlesource.com/c/192440
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I3a73f3b181542588470e3ce2c03d147423fef5cd
Reviewed-on: https://skia-review.googlesource.com/c/192424
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I9946614342b4a3883b25f749f54dbfc97f3460d4
Reviewed-on: https://skia-review.googlesource.com/c/192104
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Introduce SkStrikeSpec. Allow an SkStrikeInterface to return on
that represents the strike. Have GrTextBlob::Run::setFont() use
SkStrikeSpecs.
Misc Cleanups
* In SkStrikeCache::Node - rename fCache -> fStrike
* Parameter reformatting
Change-Id: I1b289e2cb4e5252d5c3cb776f3b2a31c6e1948b3
Reviewed-on: https://skia-review.googlesource.com/c/192029
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Since, by definition, the ops are created when recording, it makes sense that they should be able to make due with only the GrRecordingContext.
TBR=bsalomon@google.com
Change-Id: If64353aee30b35d0a16401f7de00954f44ed8c59
Reviewed-on: https://skia-review.googlesource.com/c/190670
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Instead of the Renderer and the GPU calculating the strike,
the common code now calculates the strike.
Bug: skia:7515
Change-Id: I4bc65f83347e57f5b242380b0cadb74c43b8a152
Reviewed-on: https://skia-review.googlesource.com/c/191382
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
A SkScopedStrike allows drawGlyphRunAsBMPWithPathFallback
to control the scope of SkStrikeInterface objects generated
by both RemoteGlyphCache and SkStrikeCache.
* introduce onAboutToExitScope() into the SkStrikeInterface
Change-Id: I87a1e623ee9a8375f4e063290d74a466f96c9933
Reviewed-on: https://skia-review.googlesource.com/c/191293
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Plump the strike calculated in the calling code through
drawGlyphRunAsBMPWithPathFallback. This is in anticipation
of calculating the cache in drawGlyphRunAsBMPWithPathFallback.
* Add getDescriptor to SkStrikeInterface.
Change-Id: I904cdb51f60443cabc9dc41ac246b1fe0c725c85
Reviewed-on: https://skia-review.googlesource.com/c/191285
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: Ia8e82344d3d8b394a6d9cc14d56dcf0addeff96c
Reviewed-on: https://skia-review.googlesource.com/c/191220
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
* hasImage is not needed. I determined that a nullptr is never possible.
* hasPath is renamed to decideShouldDrawFromPath. Comment the code to
explain the symmetry of calls between Renderer and GPU.
Change-Id: I4bc74fa49cf388d43aeb3ff201053332145fee59
Reviewed-on: https://skia-review.googlesource.com/c/190678
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Khushal Sagar <khushalsagar@google.com>
I'm only handling the processGlyphRunForMask in this CL, and I
am leaving processGlyphRunForPaths and maybeProcessGlyphRunForDFT
alone. I don't want to have to think about the Fallback code path
right now.
This should not be much of a problem because addGlyph exits early
if the glyph is already processed.
Change-Id: I78886ef87e2fbc3b9bfcb98101401138873bee37
Reviewed-on: https://skia-review.googlesource.com/c/190421
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Khushal Sagar <khushalsagar@chromium.org>
Mechanical. This makes the priv() accessor the same for all the context types.
Change-Id: I40850eb05a33b8d7cc3eabdd42226d24b2ba58aa
Reviewed-on: https://skia-review.googlesource.com/c/189164
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
* Switch from processing a single glyph at a time to processing
all with the same drawing type.
Change-Id: Id67b713f2f5a486be63fdcfee5012e73f3592cdf
Reviewed-on: https://skia-review.googlesource.com/c/182000
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
The next CL will introduce a bulk API between the Painter and
its client code. That CL will uses these buffers to communicate.
Change-Id: I90f78c212db1a3595754e48ab68a41d003ba7003
Reviewed-on: https://skia-review.googlesource.com/c/183920
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This essentially reverts the CL
https://skia-review.googlesource.com/c/skia/+/180375
at this point combining the strike and glyph cache seems like
the wrong direction.
Change-Id: I66a673469fd12869263a3826d6ec6be622b2b9a1
Reviewed-on: https://skia-review.googlesource.com/c/180777
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Seperate concerns so that cache lookup and run setup are different code.
This will allow the common code in painter to do the caache lookup.
Change-Id: I30a208ebc715c07f5720a7a8fc8240aabfda869d
Reviewed-on: https://skia-review.googlesource.com/c/180928
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
- avoid using legacy paint->font converter
- call out that drawText exists just for testing
- simplify drawText to assume UTF8
Bug: skia:
Change-Id: Ide14d8581d4744827d2282e7983cc5e19070b21e
Reviewed-on: https://skia-review.googlesource.com/c/180641
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This is the first step of making a wrapper class to keep these two caches
in sync.
Change-Id: I84ef408a31a77074191a60c8b5943ededcd306b7
Reviewed-on: https://skia-review.googlesource.com/c/180375
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
* appendTransformedGlyph - The glyph is transformed in the cache, and no
additional transforms are needed to draw to the screen.
* appendUprightGlyph - The glyph sits upright in the cache, and needs to be
transformed to the screen.
Both these share common code maybeSwitchSubRunAndAppendGlyph, which appends
a glyph to the sub run making sure to switch sub runs if the format has changed.
Change-Id: Ifb222d6519ede6fc08bc6ec29861a434bd7a3b55
Reviewed-on: https://skia-review.googlesource.com/c/179380
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
By removing the PackedID from the call chain, all the information
needed to lookup glyphs is gathered from the SkGlyph. I added some
code to allow this corrispondence between the SkGlyph and the PackedID.
But, in the next CL all that code will be removed as PackeID becomes
SkPackedGlyphID.
Remove unneeded inlines
Remove unused maskFormat parameter to getGlyph
Change-Id: Id6d876d7ad3f1b4303f8b9ecfc38f499fbedcf73
Reviewed-on: https://skia-review.googlesource.com/c/179640
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
This is a reland of 5f178e7219
Original change's description:
> Use SkFont in the ARGBFallback code
>
> Change-Id: I028da68519220c049209ec970eb8bda98a0bab65
> Reviewed-on: https://skia-review.googlesource.com/c/178282
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: Ia5d11baf34115d279ef7843810f4be7ddb590fe8
Reviewed-on: https://skia-review.googlesource.com/c/178984
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I4512a98063301e91bbcefe3f55de16f26601d39b
Reviewed-on: https://skia-review.googlesource.com/c/178283
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This reverts commit 5f178e7219.
Reason for revert: Wrong result for DFT
Original change's description:
> Use SkFont in the ARGBFallback code
>
> Change-Id: I028da68519220c049209ec970eb8bda98a0bab65
> Reviewed-on: https://skia-review.googlesource.com/c/178282
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=mtklein@google.com,herb@google.com
Change-Id: I6b1c9ed5beae5ddb8a1cd58c11e4b604666052db
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/178983
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I028da68519220c049209ec970eb8bda98a0bab65
Reviewed-on: https://skia-review.googlesource.com/c/178282
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I784e85cb154be077a1ca1949d7806ac95269d8c8
Reviewed-on: https://skia-review.googlesource.com/c/178281
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Make one small step up removing one use of LEGACY. Two more uses
to go in GPU.
Change-Id: I8b9ad2b2992b9eddaa49c6e03df80ae4d565d8f0
Reviewed-on: https://skia-review.googlesource.com/c/178081
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Use SkFont in most places, but save setupCache for
its own CL.
Change-Id: I2c603c03e23e132edd3e164d256a1fb753523d36
Reviewed-on: https://skia-review.googlesource.com/c/175841
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This will be used in a couple of places in the glyph painter,
best they all agree.
Change-Id: I67079b000bdede437de8fdc0a09538593775ab41
Reviewed-on: https://skia-review.googlesource.com/c/177000
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Change-Id: Ied4314f7a9bf1e8dacb4a1a3de1533ea71dc02f3
Reviewed-on: https://skia-review.googlesource.com/c/176200
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I0a9a7e4803348f5e24144f355eeaeb7e8857da18
Reviewed-on: https://skia-review.googlesource.com/c/171042
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: I2dd8231b4159afa15604fe533f9e4cd00d20a420
Reviewed-on: https://skia-review.googlesource.com/c/174800
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Because the empty checks have been hoisted to the common code,
glyph cache is not needed by the painter closures.
Unify on the name textScale for all the code.
Capture run pointers by value.
Change-Id: I18be54fce7f52f336ae293d8897544393faca125
Reviewed-on: https://skia-review.googlesource.com/c/173645
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:2664
Change-Id: Idf89a511ba1427bf7a1000ba400aeafa215a7258
Reviewed-on: https://skia-review.googlesource.com/c/173993
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Have the subruns carry a pointer to the descriptor they need.
This simplifies the regen code, and makes ARGB fallback more explicit.
Change-Id: If11477cb9ecccc90ae262327e0579f4ab249836e
Reviewed-on: https://skia-review.googlesource.com/c/171586
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Hoist the remaining empty checks into the common code.
Change-Id: Ib34cf8d1121aae62735566cc230cdc4429dfda19
Reviewed-on: https://skia-review.googlesource.com/c/173641
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Remove using origin from ARGBfallback; it was never used. Rename position to glyphPos
and calculate only once like SDF painting.
Remove finite check for positions. This is handle latter in the stack. This check is really only done
on device coordinates. All the coordinates in the routine are source space.
Change-Id: I84db6b7298a8fa98faeac9b2227abd3d063b4e28
Reviewed-on: https://skia-review.googlesource.com/c/173430
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This is part of a larger movement to remove unneeded
cache API chatter.
Change-Id: Id8e9c72a5cebe31a7efe51a947a1d4c68384609a
Reviewed-on: https://skia-review.googlesource.com/c/172947
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>