skia2/gn
Brian Salomon ce240cc6fd SkSurface asynchronous read APIs allow client to extend pixel lifetime
Previously the pixel data passed to the client was only valid during
the client's callback. This meant if the client wanted to defer
processing of the data a copy was necessary.

Now we pass an object to the callback and the pixel lifetime is tied
to the lifetime of that object.

The object may be holding a GPU transfer buffer mapped. We don't assume
that the object will be released on the direct GrContext thread. So
when the object is destroyed it posts a message to a new type,
GrClientMappedBufferManager, hanging off the direct context. The direct
context will periodically check for messages and unmap and then unref
buffers so that they can be reused. Currently this is done in
GrContext::performDeferredCleanup() and GrDrawingManager::flush().

The old API is kept around for backwards compatibility but it is
reimplemented as a bridge on top of the new mechanism.

Also a utility function to SkImageInfo is added to directly make a new
info with a specified dimensions rather than passing the width and
height separately to makeWH().

Bug: chromium:973403
Bug: skia:8962

Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-02 19:20:08 +00:00
..
toolchain [gn] Add pool for dsymutil 2019-09-03 14:08:09 +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 Add bench for SkDDLRecorder detach 2019-09-12 17:09:08 +00:00
BUILD.gn Compile CanvasKit without -fPIC, for latest emscripten compatibility. 2019-09-24 20:19:02 +00:00
BUILDCONFIG.gn remove MSRTC bots and GN support 2019-08-26 17:49:28 +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 Use CIPD package for iOS provisioning profile. 2019-09-30 15:47:19 +00:00
compile_ib_files.py Reland "Add launch screen to iOS apps" 2019-09-05 14:05:08 +00:00
compile_processors.py moved files generated from .fp files into generated/ directories 2019-04-10 18:02:02 +00:00
core.gni Introduce SkIota a wrapper that adds an index 2019-09-27 15:17:06 +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_imagefilters.gni Add new SkImageFilters factory API 2019-08-02 13:33:35 +00:00
effects.gni Add SkShaderMaskFilter.h to public header list 2019-06-21 14:40:25 +00:00
find_headers.py rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
find_msvc.py documentation/build, BUILDCONFIG: Visual Studio Build Tools 2019 2019-07-12 14:17:16 +00:00
flutter_defines.gni Define SK_GL in Flutter. 2019-05-28 13:13:46 +00:00
fuchsia_defines.gni remove legacy hinting-enum guards 2018-11-28 20:15:03 +00:00
gen_plist_ios.py Reland "Add launch screen to iOS apps" 2019-09-05 14:05:08 +00:00
gm.gni ccpr: Don't assign inverse fill types to fan tessellations 2019-09-24 02:44:17 +00:00
gn_meta_sln.py Decorate project names with their relative path in the meta SLN 2018-06-01 19:22:08 +00:00
gn_to_bp_utils.py SkQP: split make_apk script into create_apk and make_apk 2019-08-20 15:08:03 +00:00
gn_to_bp.py [Android] Use wildcard for data associated with skia_nanobench 2019-10-01 19:07:12 +00:00
gn_to_cmake.py Add project declaration for CMake 2019-09-25 17:08:26 +00:00
gpu.gni SkSurface asynchronous read APIs allow client to extend pixel lifetime 2019-10-02 19:20:08 +00:00
highest_version_dir.py Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +00:00
ios.gni gn: split out iOS templates to gn/ios.gni 2019-09-16 18:49:24 +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
make_gm_gni.py GMs: re-sort gni, script to regenerate gni, file name convention 2019-05-02 20:08:37 +00:00
opts.gni clean up SkBitmapProcState::platformProcs() 2018-12-03 21:24:31 +00:00
pdf.gni SkPDF: move type1 font code into single file 2019-04-18 21:01:58 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Revert "Revert "SkSL now supports null child processors"" 2019-02-22 17:50:30 +00:00
samples.gni Avoid use of SkMatrixImageFilter to handle CTM for backdrop filtering 2019-09-05 16:35:18 +00:00
shared_sources.gni remove empty skia_for_chromium_defines 2019-01-17 17:37:01 +00:00
skia.gni gn: try again to fix fuchsia 2019-09-04 14:33:42 +00:00
sksl.gni Handle F16Norm clamping in SkPaint->GrPaint conversion. 2019-09-18 20:53:01 +00:00
tests.gni Add a test that draws subpictures within an MSKP and make it pass. 2019-09-25 20:12:35 +00:00
utils.gni Use COM_DECLSPEC_NOTHROW STDMETHODIMP 2019-08-14 17:14:03 +00:00
xps.gni GN: split out skia_*_public from skia_*_sources 2019-03-15 18:29:19 +00:00