Go to file
halcanary a50151dcb5 SkPDF: draw{Image,Bitmap} always serializes early
Before this change, the PDFCanon held a map from BitmapKeys
to SkImages for de-duping bitmaps.  Even if the PDFDocument
serialized images early, the Canon still held a ref to that
image inside the map.  With this change, the Canon holds a
single map from BitmapKeys to PDFObjects.  Now, Images are
only held by the PDFObject, which the document serializes
and drops early.

This change also:

-   Moves SkBitmapKey into its own header (for possible
    reuse); it now can operate with images as well as
    bitmaps.

-   Creates SkImageBitmap, which wraps a pointer to a bitmap
    or an image and abstracts out some common tasks so that
    drawBitmap and drawImage behave the same.

-   Modifies SkPDFCreateBitmapObject to take and return a
    sk_sp<T>, not a T*.

-   Refactors SkPDFDevice::internalDrawImage to use bitmaps
    or images (via a SkImageBitmap).

-   Turns on pre-serialization of all images.

BUG=skia:5087

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1829693002

Review URL: https://codereview.chromium.org/1829693002
2016-03-25 11:57:49 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench SkPDF: draw{Image,Bitmap} always serializes early 2016-03-25 11:57:49 -07:00
bin Fix gyp-and-sync for windows 2016-02-22 12:59:53 -08:00
cmake [CMake fixes] Linux X11 pixel format and Windows compilation fix 2016-03-25 09:01:26 -07:00
debugger Fix old debugger for sk_sp changes 2016-03-25 07:04:35 -07:00
dm https://codereview.chromium.org/1830973002 fixed this bug. Re-enable the 2016-03-24 07:27:43 -07:00
example switch surface to sk_sp 2016-03-23 18:59:25 -07:00
experimental experimental/fiddle: update to work again 2016-03-25 11:29:34 -07:00
fuzz return pictures as sk_sp 2016-03-18 07:25:55 -07:00
gm move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
gyp SkPDF: draw{Image,Bitmap} always serializes early 2016-03-25 11:57:49 -07:00
include Delete SkPageFlipper 2016-03-25 10:31:22 -07:00
infra Splitting up wait_for_device into two pieces 2016-03-25 05:22:40 -07:00
platform_tools Forward serial (fixes charging) 2016-03-25 09:47:55 -07:00
resources Parse icc profiles and exif orientation from jpeg markers 2016-03-21 08:04:40 -07:00
samplecode move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
site Add note about Chromium's use of old libstdc++ to docs. 2016-03-21 07:46:28 -07:00
src SkPDF: draw{Image,Bitmap} always serializes early 2016-03-25 11:57:49 -07:00
tests move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
third_party Create explicit microhttpd.gyp 2016-03-09 15:07:02 -08:00
tools move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
.gitignore Ignore sampleapp_prefs.txt in git. 2016-03-24 12:20:02 -07:00
AUTHORS Fix for unaligned automatic variable address in SSE routines. This used to work on linux but crashed on windows when rendering antialiased glyphs. I tracked the problem down to an alignment issue. 2016-03-21 06:04:43 -07:00
codereview.settings Automatically add a docs preview link and NOTRY=true when there are only docs changes. 2015-02-26 10:16:13 -08:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Update to new DNG SDK: Integrate integer overflow fixes 2016-03-16 05:57:38 -07:00
Doxyfile Documentation: SkCanvas API 2015-05-19 10:21:29 -07:00
gyp_skia Make Win runtime DLLs writeable before overwriting 2016-03-18 08:33:38 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE Include resources directory in google3 sync. 2015-10-20 13:00:48 -07:00
make.bat Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py GYP: remove stale skia_scalar gyp variable 2015-11-10 13:25:12 -05:00
Makefile Add visualbench as valid target to Makefile 2015-12-18 08:05:06 -08:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py 10.9 is no more 2016-02-25 06:52:18 -08:00
public.bzl Rename encoders to Sk*ImageEncoder 2016-03-25 08:58:55 -07:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
SK_IMAGE_VERSION Update SK_IMAGE_VERSION to 3 2016-02-23 08:14:19 -08:00
skia.gyp Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
SKP_VERSION Update SKP version 2016-03-20 01:28:13 -07:00
whitespace.txt Test build scheduler. 2016-02-19 03:47:53 -08:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.