aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontHost_FreeType.cpp
Commit message (Collapse)AuthorAge
* Expose SkFaceRec less.Gravatar bungeman2015-06-19
| | | | | | | | | | | The SkFaceRec class is some data which needs to remain alive for the life of an FT_Face. ref_ft_face returns SkFaceRec, but confusingly unref_ft_face takes an FT_Face. Since no one was using the SkFaceRec for anything other than accessing the FT_Face, have ref_ft_face return FT_Face instead and remove the unused SkFaceRec pointer from the scaler context. Review URL: https://codereview.chromium.org/1180223005
* Remove FT_HAS_COLOR definition.Gravatar bungeman2015-06-18
| | | | | | | | The intent was to define FT_HAS_COLOR when building with a pre 2.5.1 version of FreeType for forward compatibility. However, the definition here is wrong and also never used. Review URL: https://codereview.chromium.org/1178943009
* Add cmap 3,0 (symbol) as Unicode fallback.Gravatar bungeman2015-06-05
| | | | | | | | | | | | FreeType automatically selects the 'most Unicode' cmap available, otherwise the default cmap is NULL. When this happens the fallback should include the 3,0 symbol cmap, as is outlined in the Apple TrueType documentation. This cmap should effectively be a Unicode mapping, but exclusively in the private use area. BUG=skia:1873,chromium:489452 Review URL: https://codereview.chromium.org/1163833003
* Remove SK_FREETYPE_HAS_MM.Gravatar bungeman2015-06-03
| | | | | | | | | | | The SK_FREETYPE_HAS_MM define was added to delay the changes to support GX variation fonts on platforms which did not compile ftmm.c into their FreeType build. Now that all builds should have this file the define can be removed. Committed: https://skia.googlesource.com/skia/+/4f61fee53af956a8beb4c56fa6479cb6b1aa5159 Review URL: https://codereview.chromium.org/1143133006
* Revert of Remove SK_FREETYPE_HAS_MM. (patchset #1 id:1 of ↵Gravatar reed2015-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1143133006/) Reason for revert: seems to be breaking DEPS roll FAILED: /b/build/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -shared -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -fuse-ld=gold -Wl,--no-undefined -Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libc++_static.a -Wl,--exclude-libs=libvpx_assembly_arm.a -Wl,--icf=safe -Wl,--warn-shared-textrel -nostdlib --sysroot=/b/build/slave/android_chromium_gn/build/src/third_party/android_tools/ndk/platforms/android-14/arch-arm -Wl,--warn-shared-textrel -Wl,-O1 -Wl,--gc-sections -Wl,--as-needed -Wl,--version-script=/b/build/slave/android_chromium_gn/build/src/build/android/android_no_jni_exports.lst -L../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -o ./libskia.so -Wl,-soname=libskia.so @./libskia.so.rsp && { /b/build/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -d ./libskia.so | grep SONAME ; /b/build/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-nm -gD -f p ./libskia.so | cut -f1-2 -d' '; } > ./libskia.so.tmp && if ! cmp -s ./libskia.so.tmp ./libskia.so.TOC; then mv ./libskia.so.tmp ./libskia.so.TOC; fi && mkdir -p lib.stripped && ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded -o lib.stripped/libskia.so.tmp libskia.so && if ! cmp -s lib.stripped/libskia.so.tmp lib.stripped/libskia.so; then mv lib.stripped/libskia.so.tmp lib.stripped/libskia.so; fi ../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:283: error: undefined reference to 'FT_Get_MM_Var' ../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:302: error: undefined reference to 'FT_Set_Var_Design_Coordinates' ../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:1766: error: undefined reference to 'FT_Get_MM_Var' collect2: error: ld returned 1 exit status Original issue's description: > Remove SK_FREETYPE_HAS_MM. > > The SK_FREETYPE_HAS_MM define was added to delay the changes to > support GX variation fonts on platforms which did not compile ftmm.c > into their FreeType build. Now that all builds should have this file > the define can be removed. > > Committed: https://skia.googlesource.com/skia/+/4f61fee53af956a8beb4c56fa6479cb6b1aa5159 TBR=djsollen@google.com,bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1148303005
* Remove SK_FREETYPE_HAS_MM.Gravatar bungeman2015-06-01
| | | | | | | | | The SK_FREETYPE_HAS_MM define was added to delay the changes to support GX variation fonts on platforms which did not compile ftmm.c into their FreeType build. Now that all builds should have this file the define can be removed. Review URL: https://codereview.chromium.org/1143133006
* 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
* Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1138263002/) Reason for revert: android patched, blink has rolled Original issue's description: > Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/) > > Reason for revert: > need to wait for Blink roll (and patch android) > > Original issue's description: > > stop calling SkScalarDiv > > > > BUG=skia: > > TBR= > > > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a > > TBR= > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/2629697933b5cc975e45d2a45c48f803fc6cbcec TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1135693003
* Revert of stop calling SkScalarDiv (patchset #4 id:60001 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1135053002/) Reason for revert: need to wait for Blink roll (and patch android) Original issue's description: > stop calling SkScalarDiv > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1138263002
* Make SkAdvancedTypefaceMetrics private.Gravatar reed2015-05-12
| | | | Review URL: https://codereview.chromium.org/1129283003
* stop calling SkScalarDivGravatar reed2015-05-12
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1135053002
* Add PS 'all' weight name to scanFont.Gravatar bungeman2015-04-16
| | | | | | | | Multiple Master fonts often list their weight as 'all'. However, they usually default to normal weight. State explicitly that we know about this weight string. Review URL: https://codereview.chromium.org/1092793002
* 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
* Use typographic font metrics when the font requests.Gravatar bungeman2015-03-19
| | | | | | | | | FreeType always returns the 'hhea' font metrics for ascent and descent, and ignores the 'OS/2'::fsSelection::UseTypoMetrics bit. (It also ignores the VDMX table, which makes this change correct.) This change uses the typographic font metrics when the font requests their use. Review URL: https://codereview.chromium.org/1020643002
* Remove SkFontHost includes and friends.Gravatar bungeman2015-02-23
| | | | | | | SkFontHost no longer exists as a class, so remove the includes and stop making it a friend. Review URL: https://codereview.chromium.org/943333004
* SkFontHost_FreeType takes advantage of SkStreamAsset.Gravatar bungeman2015-01-27
| | | | | | | With recent changes, SkTypeface now deals in SkStreamAsset instead of SkStream. Take advantage of this for performance with FreeType. Review URL: https://codereview.chromium.org/882763002
* 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
* Lcd request early check in SkFontHost_FreeType::onFilterRec.Gravatar bungeman2015-01-21
| | | | | | | If the user didn't request lcd, don't spend any time checking if the FT_Library supports it. Review URL: https://codereview.chromium.org/864903002
* Reduce overhead of SkFontHost_FreeType::onFilterRec.Gravatar bungeman2015-01-21
| | | | | | | | | The current code is using AutoFTAccess just to access the FT_Library. However, it does not need to resolve the FT_Face, just the FT_Library. This unecessary overhead and is removed by this change. The longer term solution is for SkFontMgr to initialize FreeType. Review URL: https://codereview.chromium.org/835583003
* 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
* Upstream custom freetype embolding strength from AndroidGravatar djsollen2015-01-09
| | | | | | BUG=skia:2377 Review URL: https://codereview.chromium.org/839243002
* Factor text size device mapping in SkScalerContext.Gravatar bungeman2014-12-05
| | | | | | | | | | | | | All of our font back-ends use the text size in some way other than simple concatentation with the current matrix. The code here finds the full device matrix and then decomposes it to extract the text size. FreeType, GDI, and DirectWrite use the text size as the pre-hint scale. CoreText will not scale color emoji above the requested text size, and certain features like 'trak' are performed on the text size. Review URL: https://codereview.chromium.org/748883005
* Clean up FreeType library ref counting.Gravatar bungeman2014-12-01
| | | | | | | | | The existing reference counting and code for LCD is difficult to understand. This cleans it up a bit in preperation for the typefaces holding the references and faces themselves which will clean this up quite a bit more. Review URL: https://codereview.chromium.org/742483004
* Clean up FreeType code for 2.3.8.Gravatar bungeman2014-11-21
| | | | | | | We already require FreeType 2.3.8 in order to compile and run. Make this requirement explicit and take advantage of it. Review URL: https://codereview.chromium.org/748063003
* remove unused kLCD_MaskFormatGravatar reed2014-11-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/728673002
* Remove SK_USE_SCALED_FONTMETRICS.Gravatar bungeman2014-11-12
| | | | | | | | | | | This define was added in "SK_USE_SCALED_FONTMETRICS for correct scaling" c17c6582ec0b7bc211d7de9e8d634692d239c123. Users all now define this flag, so it may now be removed. BUG=chromium:420901 Review URL: https://codereview.chromium.org/720743003
* SK_USE_SCALED_FONTMETRICS for correct scalingGravatar reed2014-10-31
| | | | | | | related blink change: https://codereview.chromium.org/691133002 Review URL: https://codereview.chromium.org/692083002
* Revert of scale xmin and xmax for FontMetrics (patchset #1 id:1 of ↵Gravatar robertphillips2014-10-30
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/685153004/) Reason for revert: Experimental revert to see if this is blocking the DEPS roll Original issue's description: > scale xmin and xmax for FontMetrics > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/79c276e4fd93d9c9fd57a45bc6929c48e4415b2f TBR=mtklein@google.com,bungeman@google.com,reed@google.com,reed@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/691033002
* scale xmin and xmax for FontMetricsGravatar reed2014-10-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/685153004
* Revert of scale xmin/xmax etc in fontmetrics (patchset #1 id:1 of ↵Gravatar bungeman2014-10-29
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/690533004/) Reason for revert: Breaking tests in Chromium, and not in a good way. Original issue's description: > scale xmin/xmax etc in fontmetrics > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/f8c2feffd68b3262f3c039ec1bd517c5f6cc9e4c TBR=reed@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/686263002
* scale xmin/xmax etc in fontmetricsGravatar reed2014-10-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/690533004
* 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
* Use correct size for font style name search.Gravatar bungeman2014-10-22
| | | | | | | | | | This fixes an out of bounds read introduced with a4c4a2d8cd65abb1e5ac20813831cdb9ace6c7ee "Replace SkTypeface::Style with SkFontStyle." BUG=chromium:425856 Review URL: https://codereview.chromium.org/645223006
* 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
* Don't try to scale embedded bitmaps.Gravatar bungeman2014-09-22
| | | | | | | | | | | | | | If a font is bitmap only we need to scale a bitmap to obtain the requested size if there isn't an exact match. If a font has embedded bitmaps then these bitmaps should never be scaled by Skia. Allow FreeType to do the scaling (as requested by the font). BUG=chromium:408059 R=mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/596513002
* update to accommodate latest clang in chrome toolchainGravatar caryclark2014-09-18
| | | | | | | | | | | remove asserts for null pointers to references change var args signature to pointer instead of array R=mtklein@google.com, reed@android.com, reed@google.com, mtklein, reed Author: caryclark@google.com Review URL: https://codereview.chromium.org/577243002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Remove unecessary check from android framework buildGravatar djsollen2014-08-21
| | | | | | | | R=bungeman@google.com, raph@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/495063002
* Revert to old autohinting behavior on Android.Gravatar djsollen2014-08-20
| | | | | | | | | | | | | | | This CL reverts to the NO_AUTOHINT behavior when autohinting is not explicitly requested. This should be removed when Skia supports a better API for selecting the correct variation. This CL has landed in the Android repo and is being upstreamed to avoid fragmenting the codebase. R=bungeman@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/490913003
* Remove ALL font fallback logic from Skia.Gravatar djsollen2014-08-06
| | | | | | | | R=reed@google.com, bungeman@google.com, caryclark@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/434623002
* Update find_name_and_attributes to take ttc index and rename to ↵Gravatar bungeman2014-07-11
| | | | | | | | | | | | SkTypeface_FreeType::ScanFont. The name 'ScanFont' is to mirror the naming convention of similar functions in FontConfig. R=tomhudson@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/382053003
* Remove vertical/horizontal metrics selection.Gravatar bungeman2014-07-07
| | | | | | | | R=reed@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/370463002