skia2/gyp/pdf.gyp
halcanary 7a14b310d6 SkPDF: Implement drawImage*() properly
drawImage calls now properly embeds the original jpeg.

NOTE: drawBitmap*() calls no longer embed JPEG files when
possible (this is in advance of eliminating bitmaps backed
by encoded data).  Chromium has already moved from
drawBitmap to drawImage.

Comparisons:

control:
    total PDF drawImage/drawBitmap calls: 8010
    total PDF jpeg images: 0
    total PDF regular images: 3581

experiament:
    total PDF drawImage/drawBitmap calls: 8014
    total PDF jpeg images: 271
    total PDF regular images: 3311
    total PDF regular images: 3582 (271 + 3311)

When comparing rendered output there were perceptual
differences in the following four GMs: colorcube, emboss,
colormatrix, and tablecolorfilter.  All of these differences
were improvements (that is, closer to the 8888 rendering)
due fixing a bug with colorfilters and forgetting to call
notifyPixelsChanged.

No SKPs had perceptual differences.

Total PDF size dropped from 133964 kB to 126276 kB, a 5.7%
improvement (mostly due to restoring use of JPG images in
SKPs).

BUG=skia:4370

Review URL: https://codereview.chromium.org/1372783003
2015-10-01 07:28:13 -07:00

65 lines
1.8 KiB
Python

# Copyright 2015 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This file builds the PDF backend.
{
'targets': [
{
'target_name': 'nopdf',
'type': 'static_library',
'dependencies': [ 'skia_lib.gyp:skia_lib', ],
'sources': [ '<(skia_src_path)/doc/SkDocument_PDF_None.cpp', ],
'defines': [ 'SK_SUPPORT_PDF=0', ],
},
{
'target_name': 'pdf',
'product_name': 'skia_pdf',
'type': 'static_library',
'standalone_static_library': 1,
'variables': { 'skia_pdf_use_sfntly%': 1, },
'dependencies': [
'skia_lib.gyp:skia_lib',
'zlib.gyp:zlib',
],
'includes': [
'pdf.gypi',
],
'include_dirs': [
'../include/private',
'../src/core', # needed to get SkGlyphCache.h and SkTextFormatParams.h
'../src/pdf',
'../src/image',
'../src/utils', # needed to get SkBitSet.h
],
'sources': [
'pdf.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
],
'conditions': [
[ 'skia_pdf_use_sfntly and not skia_android_framework and \
skia_os in ["win", "android", "linux", "chromeos", "mac"]',
{ 'dependencies': [ 'sfntly.gyp:sfntly' ] }
],
[ 'skia_android_framework', {
# Add SFTNLY support for PDF (which in turns depends on ICU)
'include_dirs': [
'external/sfntly/cpp/src',
],
'libraries': [
'libsfntly.a',
'-licuuc',
'-licui18n',
],
}
],
],
'direct_dependent_settings': {
'defines': [ 'SK_SUPPORT_PDF=1', ],
'include_dirs': [
'../include/core', # SkDocument.h
],
},
},
],
}