skia2/gn
Khushal 101d56359a fonts: Set up remote glyph caching to push fonts.
Currently the SkStrikeClient is designed to pull fonts from the server
on demand, and to pre-fetch a batched request by analyzing the ops using
a SkTextBlobCacheDiffCanvas. This change modifies the design to support
a push based model, where the server pushes fonts required by the client
and sets up the requisite SkGlyphCaches on the client prior to
rasterizing the ops.

This model still relies on the SkTextBlobCacheDiffCanvas for analyzing
the glyphs required for rasterizing an op. The glyph caches required for
raster are locked and missing glyphs to be sent to the client are tracked
by the SkStrikeServer. The embedder can serialize this font data at any
point, but must ensure that this data is deserialized by the
SkStrikeClient at the remote end, before rasterizing any ops analyzed
prior to serialization. Any refs on the caches are released once the
font data is serialized by the server.

The locking of glyph caches relies on the embedder providing discardable
handles. These handles can be created on the server and serialized to be
sent to the client, and map to an instance of SkGlyphCache. This allows
the server to control the lifetime of the caches on the client.

Bug: skia:7515
Change-Id: Id39f346b47b60899778404bbd0429ee811d0e53b
Reviewed-on: https://skia-review.googlesource.com/120283
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2018-05-01 18:15:15 +00:00
..
toolchain Support x86 build with VS 2015 2018-03-19 15:20:35 +00:00
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
ar.py GN: quiet alink spam on Mac 2016-11-07 14:19:32 +00:00
bench.gni ccpr: Clean up GrCCGeometry 2018-04-19 20:15:24 +00:00
BUILD.gn Add loongson3a Build jobs. 2018-04-04 20:37:28 +00:00
BUILDCONFIG.gn Add in float-divide-by-zero as an FYI sanitizer 2018-03-20 14:36:36 +00:00
call.py Add gn plumbing for mdbviz tool 2017-09-05 13:57:44 +00:00
checkdir.py Bundle resources and skps directories into iOS app. 2017-11-29 17:06:25 +00:00
codesign_ios.py Allow different identities for iOS code signing 2017-12-07 20:42:00 +00:00
compile_processors.py switched to infra version of clang-format for skslc 2017-07-27 20:28:50 +00:00
core.gni Reorganize strike cache and glyph cache code 2018-04-17 13:55:43 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
create_sksl_enums.py Create sksl_enums.inc with UNIX line endings (even on Windows) 2018-02-09 15:13:11 +00:00
effects.gni rm SkRRectsGaussianEdgeMaskFilter 2018-04-19 17:21:44 +00:00
find_headers.py Add Goma support in gn_flavor. 2017-12-08 20:09:18 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
flutter_defines.gni Disable optimizing xforms for speed on Flutter 2018-04-26 13:14:03 +00:00
gen_plist_ios.py Add create_bundle support for GN 2017-11-28 15:29:07 +00:00
gm.gni ccpr: Cull extremely thin triangles 2018-04-24 15:23:06 +00:00
gn_helpers.py Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
gn_meta_sln.py Move, rename, and document Visual Studio GN helper script 2016-12-14 16:41:52 +00:00
gn_to_bp_utils.py remove SK_SUPPORT_LEGACY_BLURMASKFILTER from android 2018-03-14 21:43:16 +00:00
gn_to_bp.py Retry enabling skcms on Android 2018-05-01 16:40:44 +00:00
gn_to_cmake.py Add support for lib_dirs to gn_to_cmake.py. 2016-10-28 15:07:10 +00:00
gpu.gni Add InternalSurfaceFlag so we know if RenderTargetProxys and RenderTargets use GL FBO 0. 2018-04-26 21:44:43 +00:00
gypi_to_gn.py Add executable bit and shebang to python files 2016-08-18 04:36:25 -07:00
highest_version_dir.py Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +00:00
is_clang.py GN: match shell behavior for cc and cxx in is_clang.py 2016-09-27 09:29:24 -07:00
opts.gni Reland "Reland "make SkJumper stages normal Skia code"" 2018-03-07 17:32:40 +00:00
pdf.gni SkPDF/Clusterator: expose to the light of a unit test 2018-03-29 20:32:15 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Re-land "converted OverdrawColorFilter to SkSL" 2017-10-26 14:58:27 +00:00
samples.gni Resurrect pathfinder in viewer and rename to "bisect" 2018-02-20 20:44:33 +00:00
shared_sources.gni Reland "Reland "make SkJumper stages normal Skia code"" 2018-03-07 17:32:40 +00:00
sksl.gni Make generated effects from sksl fp files not need SK_SUPPORT_GPU 2018-04-06 18:27:53 +00:00
tests.gni fonts: Set up remote glyph caching to push fonts. 2018-05-01 18:15:15 +00:00
utils.gni Rename SkInsetConvexPolygon to SkOffsetPolygon. 2018-03-28 14:49:14 +00:00
xps.gni SkXPS: new document API. 2017-02-06 19:00:28 +00:00