aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports
Commit message (Collapse)AuthorAge
* Fix invalid switch in FuzzCanvasGravatar Kevin Lubick2018-01-11
| | | | | | | | | | | Also tweak when we report OOM - AFL-fuzz is fine, but libfuzzer should abort, not exit. Bug: skia: Change-Id: Ic19277bbceec5e7c0ac966d6d9ac677bcfebcfae Reviewed-on: https://skia-review.googlesource.com/93201 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* remove guarded old malloc codeGravatar Mike Reed2018-01-07
| | | | | | | | Bug: skia: Change-Id: I045e3816f04accebffd86c4aaaa5da67f198186c Reviewed-on: https://skia-review.googlesource.com/91405 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* begin cleanup of malloc porting layerGravatar Mike Reed2018-01-05
| | | | | | | | | | | | | | 1. Merge some of the allocators into sk_malloc_flags by redefining a flag to mean zero-init 2. Add more private helpers to simplify our call-sites (and handle some overflow mul checks) 3. The 2-param helpers rely on the saturating SkSafeMath::Mul to pass max_size_t as the request, which should always fail. Bug:508641 Change-Id: I322f1e6ed91113467e0fdb12c91c3dad33d890c8 Reviewed-on: https://skia-review.googlesource.com/90940 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Stephan Altmueller <stephana@google.com>
* 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>
* don't include SkMalloc.h from SkTypes.hGravatar Mike Reed2018-01-04
| | | | | | | | | | | | Needed chrome CLs https://chromium-review.googlesource.com/c/chromium/src/+/850741 https://chromium-review.googlesource.com/c/chromium/src/+/850920 Bug: skia: Change-Id: Ic568174a56590a65bfa284c59fd104275ee78da9 Reviewed-on: https://skia-review.googlesource.com/90823 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* 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>
* turn on extended Clang warnings on Windows tooGravatar Chris Dalton2017-12-04
| | | | | | | | | | Plus some small rearrangements of the various warning lists. Change-Id: Ied58f940341d69ddab971a529fd01b1e96b65641 Reviewed-on: https://skia-review.googlesource.com/67720 Commit-Queue: Chris Dalton <csmartdalton@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Bundle resources and skps directories into iOS app.Gravatar Jim Van Verth2017-11-29
| | | | | | | | | | | | | Will bundle resources/ for viewer (and skps/ if that directory exists in the main Skia directory). Also updates file code on iOS to fall back to bundle directory. Docs-Preview: https://skia.org/?cl=76803 Bug: skia:7339 Change-Id: I244f67559c866451a6d02c3f1c4948d89457ec84 Reviewed-on: https://skia-review.googlesource.com/76803 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* streamline GDI botsGravatar Mike Klein2017-11-13
| | | | | | | | | | | | | - Replace build-time GDI support in all of Skia with run-time GDI support only in DM. - Make the GDI bots NativeFont bots paralelling the other NativeFonts bots. Change-Id: I424b20f6983d8a8ba8574650efefea2b8776bbe2 Reviewed-on: https://skia-review.googlesource.com/70721 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Windows GDI Typeface: set NotEmbeddable_FontFlag same as other backends.Gravatar Hal Canary2017-11-10
| | | | | | | | | Also fix a typo. Change-Id: I1a94cd961887ef7f55a9bfd27def6b1675ec4952 Reviewed-on: https://skia-review.googlesource.com/69700 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkTypeface_win_dw, SkTypeface_Mac: set NotEmbeddable_FontFlagGravatar Hal Canary2017-11-09
| | | | | | | | | BUG=skia:7275 BUG=skia:7276 Change-Id: I5376c39ddc3e9fcb1c8cb76001f3969b84bb2c96 Reviewed-on: https://skia-review.googlesource.com/69360 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Make SkImageGeneratorCG apply encoded originGravatar Leon Scroggins III2017-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | SkImageGeneratorCG: - Detect the origin and apply it to the output - Deprecate NewFromEncodedCG and add MakeFromEncodedCG SkCodecImageGenerator: - Move code elsewhere for sharing - Apply origin for incomplete decodes SkPixmap.cpp/SkPixmapPriv.h: - Now has the shared code for generators to apply origin DMSrcSink.cpp: - Call MakeFromEncodedCG SkCGUtils.h: - Add a version of SkCopyPixelsFromCGImage that takes an SkPixmap Bug: skia:7138 Bug: skia:3834 Change-Id: Ic6dbc76360c6a84913b67373582f328d3946d637 Reviewed-on: https://skia-review.googlesource.com/63740 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* 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>
* replace gInited with SkOnceGravatar Mike Klein2017-10-19
| | | | | | | | | | | The bug was originally about TSAN failures on Mac, but we might as well also fix _win. Bug: skia:7187 Change-Id: I086060c9f6719afbb6b0a067a9601b6abcc29d78 Reviewed-on: https://skia-review.googlesource.com/61300 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
* Compute inverse gamma table at compile time.Gravatar Ben Wagner2017-10-18
| | | | | | | | | | | | | | | | | | | This introduces skstd::index_sequence and skstd::make_index_sequence so that these can be used in C++11. These are mostly equivalent to their std:: counterparts. This also introduces SkMakeArray<N, C> which is constexpr and creates a std::array with N elements with each element being initialized with the value of C(i) where i is the index of the element. These are then used to create inverse gamma table at compile time. This avoids threading issues. BUG=skia:7187 Change-Id: I61fb10a778898652e546d54c104a08d6e6bf88d3 Reviewed-on: https://skia-review.googlesource.com/61380 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* remove dead code -- older than min picture versionGravatar Mike Reed2017-10-13
| | | | | | | | Bug: skia: Change-Id: I9bd3ed23debb4d0cbfff5417f34daf64b101ca2d Reviewed-on: https://skia-review.googlesource.com/59602 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add include guard to SkFontConfigInterface.hGravatar Ben Wagner2017-10-10
| | | | | | | | | BUG=skia:7137 Change-Id: I29536a21211eae8b075d43984f3677f64ff9f481 Reviewed-on: https://skia-review.googlesource.com/57820 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* abort if glyph metrics fall outside safe rectGravatar Mike Klein2017-10-05
| | | | | | | | | | | | Caught this while debugging a fuzz from Kevin. Haven't seen this on Windows, but seems like it's got roughly the same possible issue. Change-Id: I5e1c7328890492b3f3295af27757e456e26f9cbf Reviewed-on: https://skia-review.googlesource.com/55760 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Revert "migrate to sk_sp for SkFontMgr API""Gravatar Mike Reed2017-09-26
| | | | | | | | | | This reverts commit f40ae1a4b5365620463bd63b5140bd3fc78894a1. Bug: skia: Change-Id: I752606de92ea405d6e50219c98030409b00a2841 Reviewed-on: https://skia-review.googlesource.com/51160 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "migrate to sk_sp for SkFontMgr API"Gravatar Mike Reed2017-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4bf296be2821d2bdd0afabae9fdfe18e7e9b59cb. Reason for revert: need guard for flutter Original change's description: > migrate to sk_sp for SkFontMgr API > > Bug: skia: > Change-Id: I1bf2a13537f67938cdc9956080065d10ea0bd1d8 > Reviewed-on: https://skia-review.googlesource.com/48740 > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> TBR=bungeman@google.com,reed@google.com Change-Id: Ib0b2d00fcbcdb6131444f94d1046df6dae24f551 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/50940 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* migrate to sk_sp for SkFontMgr APIGravatar Mike Reed2017-09-25
| | | | | | | | Bug: skia: Change-Id: I1bf2a13537f67938cdc9956080065d10ea0bd1d8 Reviewed-on: https://skia-review.googlesource.com/48740 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* remove dead code for STREAM_APIGravatar Mike Reed2017-09-20
| | | | | | | | Bug: skia: Change-Id: I5c5a65710af443c60a3d13fb309ce31309be7f74 Reviewed-on: https://skia-review.googlesource.com/49460 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@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>
* fix race in SkFontHost_mac.cppGravatar Mike Klein2017-09-19
| | | | | | | | | | | We've not got any sort of synchronization guarding gSupportsLCD. If we simply move the work into its initializer, it will happen once in a thread safe way. Change-Id: I86d87bea2850d0ce4d3886069f6f1f968d323343 Reviewed-on: https://skia-review.googlesource.com/48582 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove sk_mkdir: error 17 creating dirGravatar Mike Klein2017-09-18
| | | | | | | | | | | | | As far as I've ever seen, this error only comes up when two threads or processes race to create the same directory. In that case, it's not really an error... the directory is made either way. I've never seen this message not just be spam to ignore. Change-Id: I1afad5208fcb6b2ab2e94a1402ca7db0beb39817 Reviewed-on: https://skia-review.googlesource.com/47402 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Revert "use unique_ptr for stream api""Gravatar Mike Reed2017-09-16
| | | | | | | | | | This reverts commit 7031b247c9fe0cb8fa32129f9bc24fea2043cee2. Bug: skia: Change-Id: I24c34bbee703f02994be8e206bcb9c10b5427d84 Reviewed-on: https://skia-review.googlesource.com/47541 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "use unique_ptr for stream api"Gravatar Mike Reed2017-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 49f1f34438d3431f6d7e32847accd2ba96948a73. Reason for revert: broke win-chrome ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): error C2228: left of '.release' must have class/struct/union ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): note: type is 'SkStreamAsset *' ../../third_party/skia/src/ports/SkFontMgr_win_dw.cpp(89): note: did you intend to use '->' instead? Original change's description: > use unique_ptr for stream api > > Bug: skia:6888 > Change-Id: I3459b4913982a7cae1c0061697c82cc65ad9a2d8 > Reviewed-on: https://skia-review.googlesource.com/26740 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> TBR=mtklein@chromium.org,mtklein@google.com,bungeman@google.com,reed@google.com Change-Id: Ic1e4af557317abd06b7f6b7f5056645df7e469f0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6888 Reviewed-on: https://skia-review.googlesource.com/47440 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* use unique_ptr for stream apiGravatar Mike Reed2017-09-15
| | | | | | | | Bug: skia:6888 Change-Id: I3459b4913982a7cae1c0061697c82cc65ad9a2d8 Reviewed-on: https://skia-review.googlesource.com/26740 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@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>
* Convert NULL and 0 to nullptr.Gravatar Ben Wagner2017-08-28
| | | | | | | | | | | | | | This was created by looking at warnings produced by clang's -Wzero-as-null-pointer-constant. This updates most issues in Skia code. However, there are places where GL and Vulkan want pointer values which are explicitly 0, external headers which use NULL directly, and possibly more uses in un-compiled sources (for other platforms). Change-Id: Id22fbac04d5c53497a53d734f0896b4f06fe8345 Reviewed-on: https://skia-review.googlesource.com/39521 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Add SK_API to SkOverdrawCanvas and SkOverdrawColorFilter.Gravatar Sadrul Habib Chowdhury2017-08-18
| | | | | | | | | | | | The SkiaRenderer in chromium is going to use the overdraw canvas and filter for measuring overdraw. Move these headers out of src/ into include/. Bug: chromium:704285 Change-Id: I2abb1671b73e3d26552462cf700340a7e3b874f0 Reviewed-on: https://skia-review.googlesource.com/36160 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@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>
* Replace SkFAIL with SK_ABORT.Gravatar Ben Wagner2017-08-16
| | | | | | | | | | | | SkFAIL is a legacy macro which is just SK_ABORT. This CL mechanically changes uses of SkFAIL to SK_ABORT in preparation for its removal. The related sk_throw macro will be changed independently, due to needing to actually clean up its users. Change-Id: Id70b5c111a02d2458dc60c8933f444df27d9cebb Reviewed-on: https://skia-review.googlesource.com/35284 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Move lang to list in Android font manager.Gravatar Ben Wagner2017-08-14
| | | | | | | Change-Id: Ia4af2769f4761e6b444ed0c232c48199872f3acc Reviewed-on: https://skia-review.googlesource.com/33480 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Use kLow_SkFilterQuality in generateGlyphImageGravatar Robert Phillips2017-08-14
| | | | | | | | | This reduces jank when flinging a page of emoji on Android (I have separately shared out a spreadsheet). Arguably, the quality loss should be acceptable since we shouldn't be down-scaling that much (magnitude-wise not frequency-wise). Ideally, we would add a raster mode where we would draw at the correct size w/o generating the mip maps. Change-Id: Id91d638db1b2457567e54c264ed3fa5d10316976 Reviewed-on: https://skia-review.googlesource.com/33763 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@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>
* Remove SkLightingShader and associated classesGravatar Robert Phillips2017-08-07
| | | | | | | | Change-Id: I8050414c30dfdb5df23ca79955adc5ba3a29d3f5 Reviewed-on: https://skia-review.googlesource.com/31140 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clean up useage of SkFloatBitsGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: I6d3a0019f2fcf11feca69123e4ce6eb35de43613 Reviewed-on: https://skia-review.googlesource.com/31222 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* clang on windows supportGravatar Mike Klein2017-07-31
| | | | | | | | | | | | | | | | | 1) Run python bin/fetch-clang-win 2) Set clang_win = "../bin/clang_win" 3) ??? 4) Profit Most changes here are to pass the right -mfoo flags to Clang to enable advanced instruction sets, or fixed warning-as-errors. BUG=skia:2679 Change-Id: Ieed145d35c209131c7c16fdd3ee11a3de4a1a921 Reviewed-on: https://skia-review.googlesource.com/28740 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Don't re-enter mutex in SkFontMgr_fontconfig.Gravatar Ben Wagner2017-07-27
| | | | | | | | | | | | | | | | | | | | | The FCLocker lock cannot be held while calling fTFCache::add. The ~SkTypeface_fontconfig method must take the FCLocker lock to destroy its FcPattern since a typeface may be destroyed by any last owner. However, fTFCache may be the last owner of some of its cached typefaces, and so a purge when calling ::add to make space for the new entry may cause a typeface to be destroyed. As a result, createTypefaceFromFcPattern must not hold the FCLocker lock when calling fTFCache::add. Fortunately, the FCLocker lock is only needed to serialize calls into FontConfig. If acquire and release were free then they would be used around each individual call to FontConfig. As a result it is fine to give up the lock at any point in Skia code so long as no FontConfig calls are made while the FCLocker lock is not held. Change-Id: I37224d4b38bf88ace482496ce7530c84158d2d2e Reviewed-on: https://skia-review.googlesource.com/27663 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* implement serialization for tosrgbGravatar Mike Reed2017-07-25
| | | | | | | | | | Bug: skia: Change-Id: I365f3398f74dbaaeb22c9246255c03b078386877 Reviewed-on: https://skia-review.googlesource.com/26507 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* remove (unused?) arcto patheffectGravatar Mike Reed2017-07-24
| | | | | | | | Bug: skia: Change-Id: I80943cc495eb1edce839387f4b9512a66a4e5c11 Reviewed-on: https://skia-review.googlesource.com/25981 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@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>
* Add aliases mapping Windows CJ fonts to Noto Serif CJKGravatar Jungshik Shin2017-07-19
| | | | | | | | | | | | | | | | | CrOS will have Noto Serif CJK as the default serif fonts for CJK. Aliases in Skia need to be updated. See https://chromium-review.googlesource.com/c/576708/ and https://chromium-review.googlesource.com/c/576789/ BUG=chromium:722470 TEST=With all the related CLs in, Noto Serif CJK {JP,SC,TC} are used when MS (P)Mincho,(N)Simsun,(P)MingLiu are requested. Change-Id: I8340c2b460671c0b2854360a89b051e0e9e8d57c Reviewed-on: https://skia-review.googlesource.com/24521 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: 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>
* Clip FreeType glyph bitmap to mask.Gravatar Ben Wagner2017-06-23
| | | | | | | | | | | | | | | | | | | Skia has for some time assumed that when using FT_Render_Glyph with one of the LCD render modes that one extra pixel would be applied to each side of the resulting bitmap. FreieType has changed to make this more conservative when possible, so the pre-allocated SkMask and the generated FT_Bitmap may no longer agree on the size and origin. This change ensures the SkMask and FT_Bitmap are the same size and their origins align. This is not an ideal long term fix, but is both simple and localized for easy and quick back-porting, should that become necessary. BUG=skia:6663 Change-Id: I49ec8f45376be8d867e8aef54eab79537731c310 Reviewed-on: https://skia-review.googlesource.com/20327 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>