skia2/gn
Leon Scroggins III 7a10b332a3 Add an SkDrawable for animated images (e.g. GIF)
Bug: b/63909536

SkAnimatedImage is a simple drawable for animating a GIF. Thread-safety
is left up to the client. At most two bitmaps are stored in the
drawable; one for the current frame and one for a frame that may need to
be restored. The backup frame prevents some cases where we would
otherwise have to re-decode from the beginning of the image.

The API lets the client set the time value, and decodes to match that
time.

TODO:
- Callback for when the animation is complete
- Ability to use SkAndroidCodec
- Modify the loop count (or leave that up to client?)
- Better and/or client-specific caching

Other changes:
- Add a sample which animates a GIF
- Reenable SK_CODEC_PRINTF for debug builds and Android

Change-Id: I945ffbccdb6008f2a05ed4d9b2af869a261fb300
Reviewed-on: https://skia-review.googlesource.com/93420
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-01-12 19:36:11 +00:00
..
toolchain Updated MSVC toolchain to 2017, and further refactored GN 2017-12-08 01:46:30 +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 Revert "Revert "remove unused SkCurveMeasure"" 2018-01-06 18:24:57 +00:00
BUILD.gn fix x86 Android builds 2018-01-08 23:48:21 +00:00
BUILDCONFIG.gn Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +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 cubic-map for non-linear t 2018-01-05 17:58:21 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
create_sksl_enums.py fix Housekeeper-PerCommit bot 2017-11-16 19:18:53 +00:00
effects.gni Remove SkClampRange (unused) 2017-12-14 16:38:31 +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 add flag for flutter 2018-01-09 21:43:49 +00:00
gen_plist_ios.py Add create_bundle support for GN 2017-11-28 15:29:07 +00:00
generate_binary_asset.py resources: optionally link them into our binary 2017-12-11 22:06:38 +00:00
gm.gni Revert "Revert "fix legacy makeRasterImage()"" 2018-01-12 16:00:00 +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.py Add an SkDrawable for animated images (e.g. GIF) 2018-01-12 19:36:11 +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 CCPR: Rename GrCCPR* -> GrCC* 2018-01-08 22:51:11 +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 Assume HQ is handled by pipeline, delete legacy code-path 2017-07-20 00:43:37 +00:00
pdf.gni Revert "Revert "Add method to sk_gpu_test::TestContext to automatically restore the previous context."" 2017-11-17 16:22:56 +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 Add an SkDrawable for animated images (e.g. GIF) 2018-01-12 19:36:11 +00:00
shared_sources.gni Assume HQ is handled by pipeline, delete legacy code-path 2017-07-20 00:43:37 +00:00
sksl.gni converted YUVEffect to SkSL 2017-12-22 14:06:45 +00:00
tests.gni [sksg] Refine invalidation logic 2018-01-04 00:59:20 +00:00
utils.gni Revert "Revert "remove unused SkCurveMeasure"" 2018-01-06 18:24:57 +00:00
xps.gni SkXPS: new document API. 2017-02-06 19:00:28 +00:00