aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontMgr_android.cpp
Commit message (Collapse)AuthorAge
* Move off SK_SUPPORT_LEGACY_DATA_FACTORIES.Gravatar bungeman2016-08-02
| | | | | | | This moves Skia code off of SK_SUPPORT_LEGACY_DATA_FACTORIES. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206633004 Review-Url: https://codereview.chromium.org/2206633004
* Update typeface serialization style.Gravatar bungeman2016-07-25
| | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2030683002 Committed: https://skia.googlesource.com/skia/+/7ae1c72e593823e6e300e4199558555765bcec17 Review-Url: https://codereview.chromium.org/2030683002
* Remove user specified typeface id.Gravatar bungeman2016-07-13
| | | | | | | | | | | | Now that there may be multiple font managers in a process the typeface ids must be unique across all typefaces, not just unique within a font manager. If two typefaces have the same id there will be issues in the glyph cache. All existing font managers were already doing this by calling SkFontCache::NewFontID, so centralize this in SkTypeface. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147733002 Review-Url: https://codereview.chromium.org/2147733002
* Revert of Update typeface serialization style. (patchset #3 id:40001 of ↵Gravatar mtklein2016-06-13
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2030683002/ ) Reason for revert: serialize-8888 broken for typefacestyles on Mac. (Bold weighting goes missing.) Original issue's description: > Update typeface serialization style. > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2030683002 > > Committed: https://skia.googlesource.com/skia/+/7ae1c72e593823e6e300e4199558555765bcec17 TBR=reed@google.com,bungeman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2067583002
* Update typeface serialization style.Gravatar bungeman2016-06-13
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2030683002 Review-Url: https://codereview.chromium.org/2030683002
* Move SkTypeface to sk_sp.Gravatar bungeman2016-05-12
| | | | | | | Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1933393002 Review-Url: https://codereview.chromium.org/1933393002
* Revert of Move SkTypeface to sk_sp. (patchset #5 id:80001 of ↵Gravatar scroggo2016-05-12
| | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1933393002/ ) Reason for revert: fontmgr_iterAndroid failing to draw emoji. E.g. https://gold.skia.org/search2?blame=6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm Original issue's description: > Move SkTypeface to sk_sp. > > Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f TBR=reed@google.com,fmalita@chromium.org,tomhudson@google.com,bungeman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1974783002
* Move SkTypeface to sk_sp.Gravatar bungeman2016-05-11
| | | | Review-Url: https://codereview.chromium.org/1933393002
* Add oblique as a slant.Gravatar bungeman2016-04-27
| | | | | | | | | | | | | Some fonts have italic and oblique in the same family, see http://lucidafonts.com/fonts/family/lucida-sans http://www.gust.org.pl/projects/e-foundry/latin-modern GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1921903002 Chromium side change at https://crrev.com/1921503006/ . Review-Url: https://codereview.chromium.org/1921903002
* Remove SK_VERY_LEGACY_CREATE_TYPEFACE.Gravatar bungeman2016-04-13
| | | | | | | | | The flag and code it guards are no longer used. TBR=reed This just removes dead code. Review URL: https://codereview.chromium.org/1882803002
* Begin switch to SkFontStyle for legacy calls.Gravatar bungeman2016-04-12
| | | | | | | | | | | | | | | | | | | This adds SK_VERY_LEGACY_CREATE_TYPEFACE which, when defined, provides only the old interface. Ideally, everyone would switch directly to SkFontMgr and use one of the newer calls, but there is currently no path for current users to get there. This updates all the internals to use SkFontStyle, after switching these over the higher level APIs can be switched. The Chromium follow on patch can be seen at https://crrev.com/1877673002 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873923002 TBR=reed This doesn't really change API, just modernizes it. Review URL: https://codereview.chromium.org/1873923002
* detach -> releaseGravatar mtklein2016-03-16
| | | | | | | | | | | | | The C++ standard library uses the name "release" for the operation we call "detach". Rewriting each "detach(" to "release(" brings us a step closer to using standard library types directly (e.g. std::unique_ptr instead of SkAutoTDelete). This was a fairly blind transformation. There may have been unintentional conversions in here, but it's probably for the best to have everything uniformly say "release". BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1809733002 Review URL: https://codereview.chromium.org/1809733002
* Deduplicate axis value resolving code.Gravatar bungeman2016-02-25
| | | | | | | | | | | The code was originally written for Android, but is now implemented more generally by the FreeType scanner to be shared between all FreeType backed typefaces. This removes the now duplicate code in the Android font manager and uses the shared code instead. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1726213004 Review URL: https://codereview.chromium.org/1726213004
* Add support for caching font files in the Android SkFontMgr.Gravatar khushalsagar2016-02-12
| | | | | | | | | | | | | SkFontMgr_Android lazily access font files from disk, which is not possible when it is used in the renderer sandbox on Linux. Add a flag to SkFontMgr_Android_CustomFonts for caching readonly FILE streams when creating the font mgr. Since the font mgr is created before the sandbox is initialized, it can access these files on initialization, and use these cached streams safely for its lifetime. Review URL: https://codereview.chromium.org/1673373003
* Expose API for gx font variation axes.Gravatar bungeman2016-01-21
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1590223003 Review URL: https://codereview.chromium.org/1590223003
* Start making all .cpp files compile-able on all platforms.Gravatar mtklein2015-11-02
| | | | | | | | | | | | | | | | | | | | | | | I sometimes dream to hone our build process down to something as simple as $ find src -name '*.cpp' | xargs c++ <some cflags> -c -o skia.o To start, it helps if we can compile all files on all platforms. Each non-portable file guards itself with defines provided by SkTypes.h. This does not convert all non-portable code, but it's a good representative chunk. E.g. instead of having to remember which SkDebug_*.cpp to compile on which platform we can just compile all three and let the code itself sort it out. This has the nice side effect of making non-portable code declare the conditions under which it can compile explicitly. I've been testing mostly with the CMake build as it's easiest, but this should apply equally to BUILD, Gyp, and GN files... to any build system really. BUG=skia:4269 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot Review URL: https://codereview.chromium.org/1411283005
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* Revert character in typeface test on Android.Gravatar bungeman2015-07-30
| | | | | | | | | | | This is a partial revert of f20488b4f2, particularly https://skia.googlesource.com/skia/+/f20488b4f2139e6ca09fee7e39b731dd8ab467db%5E%21/#F11 BUG=chromium:515366 TBR=mtklein@google.com This is a (non-automatic) revert. Review URL: https://codereview.chromium.org/1265993003
* Clean up a few includes, introduce iwyu.Gravatar bungeman2015-07-29
| | | | | | | | | The current include-what-you-use with current clang is much less noisy and more useful than it has been in the past. This change introduces a few IWYU directives (which are helpful documentation for humans as well) and fixes a few sets of includes. Review URL: https://codereview.chromium.org/1207893002
* Rename SkFontConfigParser_android SkFontMgr_android_parser.Gravatar bungeman2015-06-23
| | | | | | | | | There are a number of files with 'FontConfig' in their names which just have to do with font configuration, but nothing to do with the FontConfig project or even with each other. This clarifies that these files deal with parsing for the Android font manager. Review URL: https://codereview.chromium.org/1200103008
* Move Android SkFontMgr::Factory to its own file.Gravatar bungeman2015-06-17
| | | | Review URL: https://codereview.chromium.org/1190993002
* Font variations.Gravatar bungeman2015-05-20
| | | | | | | | | | | | Multiple Master and TrueType fonts support variation axes. This implements back-end support for axes on platforms which support it. Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97 Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9 Review URL: https://codereview.chromium.org/1027373002
* Revert of Font variations. (patchset #26 id:500001 of ↵Gravatar robertphillips2015-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1027373002/) Reason for revert: Appears to be breaking Linux ARM bots: FAILED: /usr/local/google/home/mosaic-role/slave/repo_clients/chromium_tot/chromium/src/../../prebuilt/toolchain/armv7a/bin/armv7a-cros-linux-gnueabi-g++ ... -o obj/third_party/skia/src/ports/skia_library.SkFontHost_FreeType.o ../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:37:31: fatal error: freetype/ftmm.h: No such file or directory #include FT_MULTIPLE_MASTERS_H ^ compilation terminated. Original issue's description: > Font variations. > > Multiple Master and TrueType fonts support variation axes. > This implements back-end support for axes on platforms which > support it. > > Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97 > > Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9 TBR=reed@google.com,mtklein@google.com,djsollen@google.com,halcanary@google.com,bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1139123008
* Font variations.Gravatar bungeman2015-05-14
| | | | | | | | | | Multiple Master and TrueType fonts support variation axes. This implements back-end support for axes on platforms which support it. Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97 Review URL: https://codereview.chromium.org/1027373002
* Revert of Font variations. (patchset #21 id:400001 of ↵Gravatar bungeman2015-05-13
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1027373002/) Reason for revert: Mac failing to build due to CFNumberType in Chromium Canary. Original issue's description: > Font variations. > > Multiple Master and TrueType fonts support variation axes. > This implements back-end support for axes on platforms which > support it. > > Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97 TBR=reed@google.com,mtklein@google.com,djsollen@google.com,halcanary@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1128913008
* Font variations.Gravatar bungeman2015-05-13
| | | | | | | | Multiple Master and TrueType fonts support variation axes. This implements back-end support for axes on platforms which support it. Review URL: https://codereview.chromium.org/1027373002
* Respect declared font style on Android.Gravatar bungeman2015-04-17
| | | | | | | | | | | | | | | | | | | | Previously the normal/italic style bit was obtained from scanning the font file. With the new format the style may be stated explicitly, and this explicit value in the configuration file should override any information obtained from the font data itself. This change allows the font element's style attribute to override the font's style, but retains the default 'auto' setting for backwards compatibility. Repecting the style bit may become more important with variation fonts, because it will be up to the configuration writer to determine what values of the 'slnt' variation should be considered 'normal' or 'italic'. DOCS_PREVIEW= https://skia.org/?cl=1092093002 Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf Review URL: https://codereview.chromium.org/1092093002
* Revert of Respect declared font style on Android. (patchset #6 id:100001 of ↵Gravatar jcgregorio2015-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1092093002/) Reason for revert: Failed on the compile bots. Original issue's description: > Respect declared font style on Android. > > Previously the normal/italic style bit was obtained from scanning the > font file. With the new format the style may be stated explicitly, and > this explicit value in the configuration file should override any > information obtained from the font data itself. > > This change allows the font element's style attribute to override the > font's style, but retains the default 'auto' setting for backwards > compatibility. Repecting the style bit may become more important with > variation fonts, because it will be up to the configuration writer to > determine what values of the 'slnt' variation should be considered > 'normal' or 'italic'. > > DOCS_PREVIEW= https://skia.org/?cl=1092093002 > > Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf TBR=mtklein@google.com,tomhudson@google.com,scroggo@google.com,bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1082173004
* Respect declared font style on Android.Gravatar bungeman2015-04-17
| | | | | | | | | | | | | | | | | | Previously the normal/italic style bit was obtained from scanning the font file. With the new format the style may be stated explicitly, and this explicit value in the configuration file should override any information obtained from the font data itself. This change allows the font element's style attribute to override the font's style, but retains the default 'auto' setting for backwards compatibility. Repecting the style bit may become more important with variation fonts, because it will be up to the configuration writer to determine what values of the 'slnt' variation should be considered 'normal' or 'italic'. DOCS_PREVIEW= https://skia.org/?cl=1092093002 Review URL: https://codereview.chromium.org/1092093002
* Remove filename from SkFontDescriptor.Gravatar bungeman2015-04-17
| | | | | | | | | | No one actually uses it, so remove it. Keep the string id for backward compatibility. TBR=reed@google.com This doesn't change any public API. Review URL: https://codereview.chromium.org/1057413005
* C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}Gravatar mtklein2015-03-25
| | | | | | | | | NOPRESUBMIT=true BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=1037793002 Review URL: https://codereview.chromium.org/1037793002
* Add factory for Android font manager.Gravatar bungeman2015-02-06
| | | | | | | | | | | This allows users to create an Android font manager with their own set of fonts, or augment the system set. This will allow for removal of the current globals which are used for a similar, but more constained, purpose. BUG=skia:2817,skia:3314,chromium:407340 Review URL: https://codereview.chromium.org/887113002
* SkTypeface to use SkStreamAsset.Gravatar bungeman2015-01-27
| | | | | | | SkTypeface already requires typeface streams to support SkStreamAsset in practice, and in practice all users are already supplying them. Review URL: https://codereview.chromium.org/869763002
* Make SkStream *not* ref counted.Gravatar scroggo2015-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkStream is a stateful object, so it does not make sense for it to have multiple owners. Make SkStream inherit directly from SkNoncopyable. Update methods which previously called SkStream::ref() (e.g. SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(), which required the existing owners to call SkStream::unref()) to take ownership of their SkStream parameters and delete when done (including on failure). Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some cases this means heap allocating streams that were previously stack allocated. Respect ownership rules of SkTypeface::CreateFromStream() and SkImageDecoder::buildTileIndex(). Update the comments for exceptional methods which do not affect the ownership of their SkStream parameters (e.g. SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be explicit about ownership. Remove test_stream_life, which tested that buildTileIndex() behaved correctly when SkStream was a ref counted object. The test does not make sense now that it is not. In SkPDFStream, remove the SkMemoryStream member. Instead of using it, create a new SkMemoryStream to pass to fDataStream (which is now an SkAutoTDelete). Make other pdf rasterizers behave like SkPDFDocumentToBitmap. SkPDFDocumentToBitmap delete the SkStream, so do the same in the following pdf rasterizers: SkPopplerRasterizePDF SkNativeRasterizePDF SkNoRasterizePDF Requires a change to Android, which currently treats SkStreams as ref counted objects. Review URL: https://codereview.chromium.org/849103004
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | This fixes every case where virtual and SK_OVERRIDE were on the same line, which should be the bulk of cases. We'll have to manually clean up the rest over time unless I level up in regexes. for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end BUG=skia: Review URL: https://codereview.chromium.org/806653007
* Remove SK_FM_NEW_MATCH_FAMILY_STYLE_CHARACTER.Gravatar bungeman2014-11-10
| | | | | | | | | This removes the old guarded code and enables the new api introduced with "Update fontMgr to take list of bcp47 language tags." c20386e3937d3d398ac9b35f9c7d997e972ade98 . Blink on Android is already using the new code. Review URL: https://codereview.chromium.org/705843004
* Allow all font weights on Android and respect overrides.Gravatar bungeman2014-11-04
| | | | | | | This removes the code which forces 400 and 700 weights only, and also overrides the font weight with the configured weight. Review URL: https://codereview.chromium.org/694533006
* Extend SkFontMgr_Custom to cover ttc, otf, pfb.Gravatar bungeman2014-10-28
| | | | | | | | | Adds ability to test ScanFont with Type1 (pfb) fonts and fonts with multiple faces (ttc). Committed: https://skia.googlesource.com/skia/+/ee0c2e4fd429424beaa35f29e7f656997ba3f115 Review URL: https://codereview.chromium.org/672723002
* Revert of Extend SkFontMgr_Custom to cover ttc, otf, pfb. (patchset #2 ↵Gravatar bungeman2014-10-28
| | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/672723002/) Reason for revert: Reverting as this appears to be causing issues with color fonts on Android. Original issue's description: > Extend SkFontMgr_Custom to cover ttc, otf, pfb. > > Adds ability to test ScanFont with Type1 (pfb) fonts > and fonts with multiple faces (ttc). > > Committed: https://skia.googlesource.com/skia/+/ee0c2e4fd429424beaa35f29e7f656997ba3f115 TBR=reed@google.com,halcanary@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/685803003
* Extend SkFontMgr_Custom to cover ttc, otf, pfb.Gravatar bungeman2014-10-28
| | | | | | | Adds ability to test ScanFont with Type1 (pfb) fonts and fonts with multiple faces (ttc). Review URL: https://codereview.chromium.org/672723002
* Match language tags by prefix on Android.Gravatar bungeman2014-10-27
| | | | | | A request for 'zh' should match 'zh-Hans' and 'zh-Hant'. Review URL: https://codereview.chromium.org/681823003
* Update fontMgr to take list of bcp47 language tags.Gravatar bungeman2014-10-23
| | | | | | | | | This will enable clients to pass more than one bcp47 tag to ensure that the most appropriate font is selected. BUG=chromium:422180 Review URL: https://codereview.chromium.org/670243002
* Replace SkTypeface::Style with SkFontStyle.Gravatar bungeman2014-10-20
| | | | | | Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20 Review URL: https://codereview.chromium.org/488143002
* Revert of Replace SkTypeface::Style with SkFontStyle. (patchset #9 id:160001 ↵Gravatar mtklein2014-10-20
| | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/488143002/) Reason for revert: CrOS GM failures: [*] 2 ExpectationsMismatch: fontmgr_iter_565.png fontmgr_iter_8888.png Original issue's description: > Replace SkTypeface::Style with SkFontStyle. > > Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20 TBR=reed@google.com,bungeman@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/667023002
* Replace SkTypeface::Style with SkFontStyle.Gravatar bungeman2014-10-20
| | | | Review URL: https://codereview.chromium.org/488143002
* Serialize the font index.Gravatar bungeman2014-09-18
| | | | | | | | | BUG=skia:1186 R=reed@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/567013002
* Add onGetFamilyName to SkTypeface.Gravatar bungeman2014-09-17
| | | | | | | | | | | This speeds up and documents this particular feature of SkTypeface and also frees up SkFontDescriptor to be used only in serialization. R=reed@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/574873002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Remove SkPaintOptionsAndroidGravatar djsollen2014-08-14
| | | | | | | | | | Committed: https://skia.googlesource.com/skia/+/f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b R=reed@google.com, mtklein@google.com, tomhudson@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/447873003