aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontHost_FreeType.cpp
Commit message (Collapse)AuthorAge
* Enable conditional-uninitialized flagGravatar Kevin Lubick2018-01-05
| | | | | | | | | Bug: skia:7462 Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Change-Id: I1c0a09984bf28a5c620a89af56040f018bae6310 Reviewed-on: https://skia-review.googlesource.com/90941 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* GOOGLE3 -> SK_BUILD_FOR_GOOGLE3Gravatar Mike Klein2017-12-19
| | | | | | | | | | | | | This is more consistent with our other SK_BUILD_FOR_... macros, and less likely to collide with other preprocessor logic. (Luckily, this was defined in public.bzl, so we can do this all in one CL in the Skia repo.) Change-Id: I5f232888288c9c53fad445545d983d0fb0b4add8 Reviewed-on: https://skia-review.googlesource.com/86940 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Directly use SkScalerContextRec.Gravatar Ben Wagner2017-11-01
| | | | | | | | | | | | | | | | | Some time ago SkScalerContext::Rec was made SkScalerContextRec so that it could be forward declared. However, SkScalerContext::Rec remains as a typedef to SkScalerContextRec. This removes the typedef and updates the users to use the SkScalerContextRec type directly. This change was prompted by my own confusion when looking at some code which mixed these two, by IntelliSense's confusion when declaring an argument with one and defining with the other, and reducing the general proliferation of nested 'Rec' types in Skia. Change-Id: I3a23a4bdd83a591807c78cea6aa7a0117544b614 Reviewed-on: https://skia-review.googlesource.com/66153 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove SK_IGNORE_SUBPIXEL_HINTING_FIX.Gravatar Ben Wagner2017-10-31
| | | | | | | | | | | | | This flag was used to stage this change. All users have now been updated and there is no known build which defines it. Remove all uses of this define and the code it guarded. BUG=skia:6931 Change-Id: I791795af4a8ff761508611cf29c7b065c1b43c82 Reviewed-on: https://skia-review.googlesource.com/65782 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove subpixel positioning implies no bytecode hinting.Gravatar Ben Wagner2017-10-27
| | | | | | | | | | | | | | | SkTypeface_FreeType::onFilterRec currently assumes that if asked to do subpixel positioning, don't do bytecode hinting. The idea was that both could not be satisfied at the same time, so pick something. This is no longer true, as with the v40 interpreter it is possible to get subpixel positioned but bytcode hinted glyphs. BUG=skia:6931 Change-Id: I4aef1670abc75623ad29bab0716d5ec9ebd2d906 Reviewed-on: https://skia-review.googlesource.com/59984 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Fix float-cast-overflow in SkTypeface_FreeType::onGetAdvancedMetricsGravatar Ben Wagner2017-09-20
| | | | | | | | Bug: skia:4632 Change-Id: Id2ee217787e6741011f324951f11eeefc55f62b9 Reviewed-on: https://skia-review.googlesource.com/47321 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* make most of SkColorPriv.h privateGravatar Cary Clark2017-09-15
| | | | | | | | | | | | | created new file src/core/SkColorData.h for internal consumption. Note that many of the functions there are unused as well. Bug: skia: 6898 R: reed@google.com Change-Id: I25bfd5a9c21f53558c4ca65a77eb5d322d897c6d Reviewed-on: https://skia-review.googlesource.com/46848 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Remove uses of sk_throw.Gravatar Ben Wagner2017-08-17
| | | | | | | | | | | The sk_throw macro is now an alias to SK_ABORT, but is often used when other macros better describe the situation. This change replaces sk_throw with SK_ABORT or SkASSERT_RELEASE as appropriate. Change-Id: I313facc6d535c8e8bec90ceeaf17ae3a381c48f3 Reviewed-on: https://skia-review.googlesource.com/35882 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Remove subpixel positioning implies no bytecode hinting."Gravatar Ben Wagner2017-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 880768032d7bd1528dc84f5b4408d4fa418bae7d. Reason for revert: Pixel tests, and gfx tests can't handle hinting. Original change's description: > Remove subpixel positioning implies no bytecode hinting. > > SkTypeface_FreeType::onFilterRec currently assumes that if we're asked > to do subpixel positioning, don't do bytecode hinting. The idea was that > both could not be satisfied at the same time, so pick something. This is > no longer true, as with the v40 interpreter it is possible to get > subpixel positioned but bytcode hinted glyphs. > > BUG=skia:6931 > > Change-Id: Ifaeff20c121d6bb4b9287f552e383547eb6d5d49 > Reviewed-on: https://skia-review.googlesource.com/32201 > Reviewed-by: Yuqian Li <liyuqian@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Ben Wagner <bungeman@google.com> TBR=bungeman@google.com,liyuqian@google.com,reed@google.com Change-Id: Idb1ee50d271846bdf962986914f6b75e3aa817c8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6931 Reviewed-on: https://skia-review.googlesource.com/33586 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove subpixel positioning implies no bytecode hinting.Gravatar Ben Wagner2017-08-11
| | | | | | | | | | | | | | | | SkTypeface_FreeType::onFilterRec currently assumes that if we're asked to do subpixel positioning, don't do bytecode hinting. The idea was that both could not be satisfied at the same time, so pick something. This is no longer true, as with the v40 interpreter it is possible to get subpixel positioned but bytcode hinted glyphs. BUG=skia:6931 Change-Id: Ifaeff20c121d6bb4b9287f552e383547eb6d5d49 Reviewed-on: https://skia-review.googlesource.com/32201 Reviewed-by: Yuqian Li <liyuqian@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add strikeout font metrics.Gravatar Ben Wagner2017-07-21
| | | | | | | | | | | | | | This also updates create_test_font so that it can be built, compiles, and uses SkFontStyle instead of SkTypeface::Style. BUG=b/63669723 Change-Id: I6eb0f851853f4721cf8e5052255b5b6750c3257f Reviewed-on: https://skia-review.googlesource.com/24740 Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* SkTypeface: fix non-determinism on AdvacedMetricsGravatar Hal Canary2017-07-06
| | | | | | | | | Calculate fStemV and fCapHeight using SkPaint in SkPDFFont if needed. Change-Id: Iaf762e6c44178fac659dfe9fa312d0caed9138ae Reviewed-on: https://skia-review.googlesource.com/21535 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Load FreeType glyph bitmap before emboldening.Gravatar Ben Wagner2017-06-27
| | | | | | | | | | | | | If a bitmap glyph was loaded with FT_LOAD_BITMAP_METRICS_ONLY then the glyph must be re-loaded without this flag before accessing the bitmap. BUG=chromium:725975 Change-Id: If5e5a6844e9c32238560135e141fea7f77ad7fac Reviewed-on: https://skia-review.googlesource.com/20830 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Revert "SkTypeface::getAdvancedMetrics(): cleanup""Gravatar Hal Canary2017-05-05
| | | | | | | | | | | | | | | | | | | This reverts commit 59ad782b2b05b07aa6eb961aa4d62e934093cbd1. - SkAdvancedTypefaceMetrics is a struct not a class - SkTypeface::PerGlyphInfo is gone - s/getAdvancedTypefaceMetrics/getAdvancedMetrics/g - s/onGetAdvancedTypefaceMetrics/onGetAdvancedMetrics/g - [on]getAdvancedMetrics now return unique_ptr rather than bare ptr. - [on]getAdvancedMetrics no longer has parameters. (Only caller always used same arguments.) - SkAdvancedTypefaceMetrics uses C++11 in-class member initializers. - SkAdvancedTypefaceMetrics no longer inherits from SkRefCnt Change-Id: I91b56e60f7d9de7d46c426c6bd34ce124e0cf00e Reviewed-on: https://skia-review.googlesource.com/15360 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkTypeface::getAdvancedMetrics(): cleanup"Gravatar Hal Canary2017-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cef018896e5cad8eb46a536b60cdf79ebe2b0191. Reason for revert: broke chromium roll (windows). Original change's description: > SkTypeface::getAdvancedMetrics(): cleanup > > - SkAdvancedTypefaceMetrics is a struct not a class > - SkTypeface::PerGlyphInfo is gone > - s/getAdvancedTypefaceMetrics/getAdvancedMetrics/g > - s/onGetAdvancedTypefaceMetrics/onGetAdvancedMetrics/g > - [on]getAdvancedMetrics now return unique_ptr rather than bare ptr. > - [on]getAdvancedMetrics no longer has parameters. (Only caller always > used same arguments.) > - SkAdvancedTypefaceMetrics uses C++11 in-class member initializers. > - SkAdvancedTypefaceMetrics no longer inherits from SkRefCnt > > Change-Id: I37571ebcc383ba9eb21bc20c60c734e3ca317582 > Reviewed-on: https://skia-review.googlesource.com/15311 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I84c7d53df566aaf83427e3368edaa02b7b5a9cb8 Reviewed-on: https://skia-review.googlesource.com/15319 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkTypeface::getAdvancedMetrics(): cleanupGravatar Hal Canary2017-05-04
| | | | | | | | | | | | | | | | | - SkAdvancedTypefaceMetrics is a struct not a class - SkTypeface::PerGlyphInfo is gone - s/getAdvancedTypefaceMetrics/getAdvancedMetrics/g - s/onGetAdvancedTypefaceMetrics/onGetAdvancedMetrics/g - [on]getAdvancedMetrics now return unique_ptr rather than bare ptr. - [on]getAdvancedMetrics no longer has parameters. (Only caller always used same arguments.) - SkAdvancedTypefaceMetrics uses C++11 in-class member initializers. - SkAdvancedTypefaceMetrics no longer inherits from SkRefCnt Change-Id: I37571ebcc383ba9eb21bc20c60c734e3ca317582 Reviewed-on: https://skia-review.googlesource.com/15311 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Use last value for axis for variation position.Gravatar bungeman2017-03-30
| | | | | | | | | | | | | SkFontArguments::VariationPosition may be over specified. If there are multiple values for a given axis, ensure the last value specified is used, since that's what css-fonts-4 requires. BUG=chromium:674878 Change-Id: I6704c15c520c89efb9ee84659a3e16e0d07691c9 Reviewed-on: https://skia-review.googlesource.com/10513 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Change SkMemory to the more accurately named SkMalloc.Gravatar Herb Derby2017-03-27
| | | | | | | Change-Id: I6b08a74234b99bac866bad71014b94f7ec2d4bc8 Reviewed-on: https://skia-review.googlesource.com/10188 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Replace Thinkness with Thickness.Gravatar Ben Wagner2017-03-23
| | | | | | | | | | | | | The FontMetricsFlags::kUnderlineThinknessIsValid_Flag has a typo in it. Fortunately no user currently uses this enumeration value by name but instead uses the getter so the name can be updated. BUG=skia:6174 Change-Id: I810260d826482de1da8876cd9739d24b3bfb0f95 Reviewed-on: https://skia-review.googlesource.com/10050 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Mark overridden destructors with 'override' and remove 'virtual'Gravatar Brian Salomon2017-03-22
| | | | | | | | | This silences a new warning in clang 5.0 Change-Id: Ieb5b75a6ffed60107c3fd16075d2ecfd515b55e8 Reviewed-on: https://skia-review.googlesource.com/10006 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Make SkMemory.h and adjust all files for usage.Gravatar Herb Derby2017-03-20
| | | | | | | | | | | | This will be rolled out in three stages: 1) make SkMemory.h and have SkTypes.h include it. 2) Adjust chromium and android. 3) no long include SkMemory.h in SkTypes.h Change-Id: If360ef5e1164d88f50b03f279e2e963ca2f57d5d Reviewed-on: https://skia-review.googlesource.com/9874 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Mark function used as template parameter extern.Gravatar Ben Wagner2017-03-09
| | | | | | | | | | | | VC++19.10.2517 does not support the C++11 change to allow the address of internal linkage objects to be used as non-type template arguments. BUG=skia:6351 Change-Id: I7e1f628db794f950dfba7d043cf6d2fbf0a8c453 Reviewed-on: https://skia-review.googlesource.com/9496 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* SkPDF: Always get advances at unitsPerEm.Gravatar Hal Canary2017-03-08
| | | | | | | | | | | | | * Work around BUG=chromium:696356 * SkTestScalerContext needs a return a em-size. * SkPDFFont::MakeVectorCache which always produces a glyph cache at emsize. Replaces vector_cache(). * Stop looking at fLastGlyphID and fEmSize in TypefaceMetrics. Change-Id: I28d93b8f62d461a60fa046e9aaf7fa6d116a7ee5 Reviewed-on: https://skia-review.googlesource.com/9324 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Check that the FT_Face actually exists in ↵Gravatar Ben Wagner2017-03-02
| | | | | | | | | | | | | | | SkTypeface_FreeType::onGetVariationDesignPosition. All users of AutoFTAccess check the FT_Face for nullptr in case the FT_Face cannot actually be created. This check was overlooked in the recent addition of SkTypeface_FreeType::onGetVariationDesignPosition. BUG=chromium:697878 Change-Id: I92dfe845f2aecfa00bd4d088ac139f74c019c03d Reviewed-on: https://skia-review.googlesource.com/9151 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Call FT_Set_Default_Properties when available.Gravatar Ben Wagner2017-03-01
| | | | | | | | | | | | | | | | | | | FreeType 2.7.0 added the ability to read some global properties from environment variables to configure an FT_Library. However, this did not apply to FT_New_Library. After 2.7.1 FT_Set_Default_Properties was added so that users of FT_New_Library can also repect these properties. This also removes SK_FONTHOST_FREETYPE_USE_NORMAL_LCD_FILTER and associated code since there are no users of this flag, the behavior it guards is now more or less in upstream FreeType, and the pattern in the code it guards is now in use for calling FT_Set_Default_Properties. BUG=skia:6165 Change-Id: I9fca86cc8b1bb9709c0b980330cf974455be3b57 Reviewed-on: https://skia-review.googlesource.com/9109 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add SkTypeface::getVariationDesignPosition.Gravatar Ben Wagner2017-02-24
| | | | | | | | | Allow users to query a typeface's position in variation design space. Change-Id: Id7cae439e795b8c9586394f11359fb7fe55e1c0b Reviewed-on: https://skia-review.googlesource.com/8861 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert "Add SkTypeface::getVariationDesignPosition."Gravatar Ben Wagner2017-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0f3d0c37dbcaf4ec271d5fe847becc9b1aa6f537. Reason for revert: <INSERT REASONING HERE> Original change's description: > Add SkTypeface::getVariationDesignPosition. > > Allow users to query a typeface's position in variation design space. > > Change-Id: I173ee9eefdddee6b2613435ebcc6b08c25b382ed > Reviewed-on: https://skia-review.googlesource.com/8684 > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=bungeman@google.com,reed@google.com,reviews@skia.org,drott@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I484fe52c1f89e7b6d0024dcabf7c59d0e8b5b5e7 Reviewed-on: https://skia-review.googlesource.com/8929 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add SkTypeface::getVariationDesignPosition.Gravatar bungeman2017-02-23
| | | | | | | | | Allow users to query a typeface's position in variation design space. Change-Id: I173ee9eefdddee6b2613435ebcc6b08c25b382ed Reviewed-on: https://skia-review.googlesource.com/8684 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Add SkTypeface::getVariationDesignPosition."Gravatar Ben Wagner2017-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 87e7f820f74a990a59fb8f1d5c182584ce586ecf. Reason for revert: Failed a test on Mac Original change's description: > Add SkTypeface::getVariationDesignPosition. > > Allow users to query a typeface's position in variation design space. > > Change-Id: I5d80c8ff658708a5d1aa386ec5b7396dcb621198 > Reviewed-on: https://skia-review.googlesource.com/7130 > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=bungeman@google.com,reed@google.com,reviews@skia.org,drott@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ia65792083642dbe9333a62eb75d162931b57cffd Reviewed-on: https://skia-review.googlesource.com/8670 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add SkTypeface::getVariationDesignPosition.Gravatar Ben Wagner2017-02-17
| | | | | | | | | Allow users to query a typeface's position in variation design space. Change-Id: I5d80c8ff658708a5d1aa386ec5b7396dcb621198 Reviewed-on: https://skia-review.googlesource.com/7130 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'" This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da. Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab Reviewed-on: https://skia-review.googlesource.com/6886 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"Gravatar Kevin Lubick2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf. Reason for revert: Broke Google3 Original change's description: > SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h > > * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). > > * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h > > * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" > > Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 > Reviewed-on: https://skia-review.googlesource.com/4543 > Reviewed-by: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5 Reviewed-on: https://skia-review.googlesource.com/6884 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 Reviewed-on: https://skia-review.googlesource.com/4543 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Use FT_LOAD_BITMAP_METRICS_ONLY flagGravatar Seigo Nonaka2016-12-05
| | | | | | | | | | | | FT_LOAD_BITMAP_METRICS_ONLY flag was introduced for retrieving font metrics without decoding or allocating bitmaps. BUG=skia: Change-Id: I901531501111f24d8b670305379e04c0bc688e6f Reviewed-on: https://skia-review.googlesource.com/5580 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Clean up glyph id handling.Gravatar Ben Wagner2016-11-11
| | | | | | | | | | | | | | | | | Extract SkPackedID and its strongly typed subclasses SkPackedGlyphID and SkPackedUnicharID out of SkGlyph. This simplifies the code handling these types, as well as making it clearer that we wouuld eventually like to get away from this scheme. Changes SkScalerContext::getPath to take SkPackedGlyphID. Changes SkScalerContext::generatePath to take SkGlyphID. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4722 Change-Id: I365c0c618b7ae0d348272155fac7761a69faa920 Reviewed-on: https://skia-review.googlesource.com/4722 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Clarify onCreateScalerContext failure modes.Gravatar Ben Wagner2016-11-04
| | | | | | | | | | This should not change any behavior, but addresses some readability concerns. Change-Id: I2614beaed7b5722a3af2c49ab8f4ac16b56aa3a7 Reviewed-on: https://skia-review.googlesource.com/4393 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* SkScalerContext to use smart pointers.Gravatar bungeman2016-10-20
| | | | | | | | | CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot Change-Id: I27a714388b8ded7dfc968e322b0a587205f575f1 Reviewed-on: https://skia-review.googlesource.com/3731 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* SkFontData to use smart pointers.Gravatar bungeman2016-09-16
| | | | | | | | | | | | | | | | | The SkFontData type is not exposed externally, so any method which uses it can be updated to use smart pointers without affecting external users. Updating this first will make updating the public API much easier. This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It appears that no one outside Skia is currently using SkStream::NewfromFile so this is a good time to update it as well. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002 Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c Review-Url: https://codereview.chromium.org/2339273002
* Revert of SkFontData to use smart pointers. (patchset #3 id:40001 of ↵Gravatar bungeman2016-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2339273002/ ) Reason for revert: Killing Mac Original issue's description: > SkFontData to use smart pointers. > > The SkFontData type is not exposed externally, so any method which uses > it can be updated to use smart pointers without affecting external > users. Updating this first will make updating the public API much > easier. > > This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to > std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It > appears that no one outside Skia is currently using SkStream::NewfromFile > so this is a good time to update it as well. > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002 > > Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c TBR=mtklein@chromium.org,halcanary@google.com,mtklein@google.com,reed@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/2343933002
* SkFontData to use smart pointers.Gravatar bungeman2016-09-15
| | | | | | | | | | | | | | | | The SkFontData type is not exposed externally, so any method which uses it can be updated to use smart pointers without affecting external users. Updating this first will make updating the public API much easier. This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It appears that no one outside Skia is currently using SkStream::NewfromFile so this is a good time to update it as well. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002 Review-Url: https://codereview.chromium.org/2339273002
* SkPDF: SkTypeface_FreeType ToUnicode table improvement.Gravatar halcanary2016-09-13
| | | | | | | | | | | | Currently the SkTypeface_FreeType::onGetAdvancedTypefaceMetrics synthesized glyph to Unicode mapping returns the Unicode point of the last character to map to the glyph. In practice it is better to guess the first character to map to the glyph instead. BUG=359065 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329953003 Review-Url: https://codereview.chromium.org/2329953003
* SkPDF: SkPDFFont class changesGravatar halcanary2016-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkPDFFont: * inline some one-line methdods. - SkPDFFont::typeface() - SkPDFFont::fontInfo() - SkPDFFont::firstGlyphID() - SkPDFFont::lastGlyphID() - SkPDFFont::getFontDescriptor() * de-virtualize some methods: - SkPDFFont::getType() - SkPDFFont::multiByteGlyphs() * Constructor takes more arguments: fontType, multiByteGlyphs * re-order fields (pointers before shorts) * use sk_sp<T> more, T* less SkAdvancedTypefaceMetrics: * SkAdvancedTypefaceMetrics::fFont now a uint8_t * other enumes are sized. * SkAdvancedTypefaceMetrics::fStyle now big enough. * remove use of SkTBitOr, replaced with fancy templates No public API changes. TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246903002 Review-Url: https://codereview.chromium.org/2246903002
* SkPDF/SkAdvancedTypefaceMetrics: simplify ATM, PDF takes overGravatar halcanary2016-08-08
| | | | | | | | | No public API changes. TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222523003 Review-Url: https://codereview.chromium.org/2222523003
* Add test for typeface style round trip.Gravatar bungeman2016-07-25
| | | | | | | | This also fixes the CG and GDI ports so they pass the test. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2171163002 Review-Url: https://codereview.chromium.org/2171163002
* Correct advances for 'monospace' fonts in PDF.Gravatar bungeman2016-07-22
| | | | | | | | | | FT_IS_FIXED_WIDTH, kCTFontMonoSpaceTrait, and TMPF_FIXED_PITCH are style bits, they do not imply that all advances are the same. BUG=skia:5537 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2162023002 Review-Url: https://codereview.chromium.org/2162023002
* Fix SkScalerContext_FreeType::generateFontMetrics.Gravatar bungeman2016-07-21
| | | | | | | | | | SkScalerContext::generateFontMetrics implementations should not attempt to take into account skew. This implementation should correctly handle bitmap fonts as well. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165323002 Review-Url: https://codereview.chromium.org/2165323002
* exclude unused functions when mac uses freetype (for pdf)Gravatar caryclark2016-07-20
| | | | | | | R=bungeman@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163833004 Review-Url: https://codereview.chromium.org/2163833004
* Rotate bitmap strikes with FreeType.Gravatar bungeman2016-07-18
| | | | | | | | BUG=skia:3490 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002 Committed: https://skia.googlesource.com/skia/+/31e0c1379e6d0ce48196183e295b929af51fa74e Review-Url: https://codereview.chromium.org/2139703002
* Revert of Rotate emoji with FreeType. (patchset #5 id:80001 of ↵Gravatar bungeman2016-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2139703002/ ) Reason for revert: Causing roll to fail on telemetry_perf_unittests (bencharks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.load:search:taobao (and baidu)) and browser_tests (FindInPageControllerTest.FindInPageSpecialURLS). This is due to triggering the assert in copyFTBitmap SkASSERT(dstMask.fBounds.width() == static_cast<int>(srcFTBitmap.width)); when called from inside the block guarded by if (bitmapTransform.isIdentity()) Original issue's description: > Rotate bitmap strikes with FreeType. > > BUG=skia:3490 > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002 > > Committed: https://skia.googlesource.com/skia/+/31e0c1379e6d0ce48196183e295b929af51fa74e TBR=mtklein@google.com,reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3490 Review-Url: https://codereview.chromium.org/2149253005
* Rotate bitmap strikes with FreeType.Gravatar bungeman2016-07-15
| | | | | | | BUG=skia:3490 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2139703002 Review-Url: https://codereview.chromium.org/2139703002