skia2/gyp/ports.gyp
scroggo@google.com bb281f7f96 Improvements/additions to SkImageCache/SkLazyPixelRef.
SkPurgeableImageCache:
New image cache that uses virtual memory to store the pixels. Combines
features of SkAshmemImageCache (which has been removed) with SkPurgeableMemoryBlock, which has android and Mac versions.

SkImageCache:
Modified the API. pinCache now returns a status out parameter which
states whether the pinned memory retained the old data. This allows
allocAndPinCache to only be used for allocations.
Add a new debug only interface to purge unpinned data.
Updates to documentation, clarifying behavior.
Changed CachedStatus to MemoryStatus

SkLruImageCache:
Implement the new function purgeAllUnpinnedCaches and change implementation
of pinCache for the new behavior.

SkLazyPixelRef:
Rewrite onLockPixels to account for the new behavior of pinCache.

BitmapFactoryTest:
Test the new SkPurgeableImageCache.
Write tests which directly test the SkImageCaches.
Create a larger bitmap, since some of the SkImageCaches are designed
to handle large bitmaps.

bench_ and render_pictures:
Consolidate lazy_decode_bitmap into one function.
Allow using a flag to specify using the purgeable image cache.
Clean up some #includes.

Review URL: https://codereview.chromium.org/12433020

git-svn-id: http://skia.googlecode.com/svn/trunk@8207 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-18 21:37:39 +00:00

198 lines
6.4 KiB
Python

# Port-specific Skia library code.
{
'targets': [
{
'target_name': 'ports',
'product_name': 'skia_ports',
'type': 'static_library',
'standalone_static_library': 1,
'dependencies': [
'core.gyp:core',
'sfnt.gyp:sfnt',
'utils.gyp:utils',
],
'include_dirs': [
'../include/effects',
'../include/images',
'../include/ports',
'../include/xml',
'../src/core',
'../src/lazy',
'../src/utils',
],
'sources': [
'../src/ports/SkDebug_nacl.cpp',
'../src/ports/SkDebug_stdio.cpp',
'../src/ports/SkDebug_win.cpp',
'../src/ports/SkFontHost_sandbox_none.cpp',
'../src/ports/SkFontHost_win.cpp',
'../src/ports/SkFontHost_win_dw.cpp',
'../src/ports/SkGlobalInitialization_default.cpp',
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
'../src/ports/SkThread_win.cpp',
'../src/ports/SkFontHost_tables.cpp',
'../src/ports/SkMemory_malloc.cpp',
'../src/ports/SkOSFile_stdio.cpp',
'../src/ports/SkTime_Unix.cpp',
'../src/ports/SkTime_win.cpp',
'../src/ports/SkXMLParser_empty.cpp',
],
'conditions': [
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris"]', {
'defines': [
#The font host requires at least FreeType 2.3.0 at runtime.
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020300',\
'SK_CAN_USE_DLOPEN=1',
],
'link_settings': {
'libraries': [
'-lfreetype',
'-lfontconfig',
'-ldl',
],
},
'sources': [
'../src/ports/SkFontHost_FreeType.cpp',
'../src/ports/SkFontHost_FreeType_common.cpp',
'../src/ports/SkFontHost_fontconfig.cpp',
'../src/ports/SkFontConfigInterface_direct.cpp',
'../src/ports/SkThread_pthread.cpp',
],
'sources!': [
'../src/ports/SkFontHost_tables.cpp',
],
}],
[ 'skia_os == "nacl"', {
'dependencies': [
# On other OS, we can dynamically link against freetype. For nacl,
# we have to include our own version since the naclports version is
# too old (<0x020300) to provide the functionality we need.
'freetype.gyp:freetype',
],
'export_dependent_settings': [
'freetype.gyp:freetype',
],
'defines': [
# We use Android's repo, which provides at least FreeType 2.4.0
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400',\
],
'sources': [
'../src/ports/SkFontHost_FreeType.cpp',
'../src/ports/SkFontHost_FreeType_common.cpp',
'../src/ports/SkFontHost_linux.cpp',
'../src/ports/SkThread_pthread.cpp',
],
'sources!': [
'../src/ports/SkDebug_stdio.cpp',
],
}, {
'sources!': [
'../src/ports/SkDebug_nacl.cpp',
],
}],
[ 'skia_os == "mac"', {
'include_dirs': [
'../include/utils/mac',
'../third_party/freetype/include/**',
],
'sources': [
'../src/ports/SkFontHost_mac.cpp',
# '../src/ports/SkFontHost_FreeType.cpp',
# '../src/ports/SkFontHost_FreeType_common.cpp',
# '../src/ports/SkFontHost_freetype_mac.cpp',
'../src/ports/SkPurgeableMemoryBlock_mac.cpp',
'../src/ports/SkThread_pthread.cpp',
'../src/utils/mac/SkStream_mac.cpp',
],
'sources!': [
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
'../src/ports/SkFontHost_tables.cpp',
],
}],
[ 'skia_os == "ios"', {
'include_dirs': [
'../include/utils/ios',
'../include/utils/mac',
],
'sources': [
'../src/ports/SkFontHost_mac.cpp',
'../src/ports/SkPurgeableMemoryBlock_mac.cpp',
'../src/ports/SkThread_pthread.cpp',
'../src/utils/mac/SkStream_mac.cpp',
],
'sources!': [
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
'../src/ports/SkFontHost_tables.cpp',
],
}],
[ 'skia_os == "win"', {
'include_dirs': [
'config/win',
'../src/utils/win',
],
'conditions': [
[ 'skia_directwrite', {
'sources!': [
'../src/ports/SkFontHost_win.cpp',
],
}, { # else !skia_directwrite
'sources!': [
'../src/ports/SkFontHost_win_dw.cpp',
],
}],
],
'sources!': [ # these are used everywhere but windows
'../src/ports/SkDebug_stdio.cpp',
'../src/ports/SkTime_Unix.cpp',
],
}, { # else !win
'sources!': [
'../src/ports/SkDebug_win.cpp',
'../src/ports/SkFontHost_win.cpp',
'../src/ports/SkFontHost_win_dw.cpp',
'../src/ports/SkThread_win.cpp',
'../src/ports/SkTime_win.cpp',
],
}],
[ 'skia_os == "android"', {
'defines': [
#Android provides at least FreeType 2.4.0 at runtime.
'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400',
#Skia should not use dlopen on Android.
'SK_CAN_USE_DLOPEN=0',
],
'sources!': [
'../src/ports/SkDebug_stdio.cpp',
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
],
'sources': [
'../src/ports/FontHostConfiguration_android.cpp',
'../src/ports/SkDebug_android.cpp',
'../src/ports/SkThread_pthread.cpp',
'../src/ports/SkFontHost_android.cpp',
'../src/ports/SkFontHost_FreeType.cpp',
'../src/ports/SkFontHost_FreeType_common.cpp',
'../src/ports/SkPurgeableMemoryBlock_android.cpp',
],
'dependencies': [
'freetype.gyp:freetype',
'android_deps.gyp:expat',
],
}],
],
'direct_dependent_settings': {
'include_dirs': [
'../include/ports',
],
},
},
],
}
# Local Variables:
# tab-width:2
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=2 shiftwidth=2: