Go to file
Dominik Röttsches 76a22af02a Avoid finding a font with simulations
When requesting a font match for fonts like Sylfaen or Gabriola, which
absolutely do not have a bold or italic version, Windows silently
produces DirectWrite simulations which synthetic bolding or synthetic
italic or both.

From Chromium's perspective, we clearly do not want Windows to produce
silent simulations for us and this makes it impossible for us to
determine what the font's actual weight or slant is. As a result, we
are blocked from implementing the font-synthesis CSS property
correctly. For the latter, we need to be able to programmatically
enable setEmbolden() or setSkew() on SkFont and have Skia apply
artifical synthesis, instead of Windows instantiating such a font
silently.

Addresses TODO to avoid simulations in
SkFontStyleSet_DirectWrite::matchStyle.

Bug: skia:12455
Cq-Include-Trybots: luci.skia.skia.primary:Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts,Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts,Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts,Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI
Change-Id: If965d2501dff45ee7881544c6473b3fb36a8d90d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450676
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-10-04 17:51:24 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench Remove ASTNode and SkSLParser 2021-09-28 13:36:49 +00:00
bin [sk] Update asset download references to use SK 2021-09-17 16:55:53 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Add Abseil dependency for Dawn 2021-09-22 22:05:32 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org Convert internal SkSL to use .eval() 2021-09-03 15:54:54 +00:00
dm [graphite] Add ContextFactory 2021-09-30 18:04:54 +00:00
docker [infra] Update cmake docker image to be Debian 10 2021-07-23 11:21:31 +00:00
docs/examples Reland "Add sRGB 8888 colortype" 2021-08-24 12:56:32 +00:00
example Remove SDL from DEPS (and SDL example that used it) 2021-05-27 21:37:57 +00:00
experimental [graphite] Add support for Mtl Stencil/Depth Textures. 2021-10-04 14:37:22 +00:00
fuzz Add support for function prototypes in Pipeline stage. 2021-09-30 20:02:19 +00:00
gm Rename shaders named input in test code. 2021-09-30 17:24:11 +00:00
gn Reland "Disallow constructors of ES3 types in ES2 code." 2021-10-04 17:51:00 +00:00
include Avoid returning a DSLExpression with an invalid type. 2021-10-04 17:34:49 +00:00
infra Update SKP version 2021-10-03 08:56:23 +00:00
modules [skottie] Fill effect opacity workaround 2021-10-01 16:20:54 +00:00
platform_tools [JetSki] bind drawGlyphs to JetSki for Text rendering 2021-09-22 19:38:13 +00:00
resources Add tests for constructors of private types. 2021-10-04 16:38:19 +00:00
samplecode Move more classes to skgpu::v1 namespace 2021-09-16 14:04:16 +00:00
site pulling the plug 2021-10-02 13:33:49 +00:00
specs [infra] Port serve.py from Python2 to 3 2021-08-31 15:28:19 +00:00
src Avoid finding a font with simulations 2021-10-04 17:51:24 +00:00
tests Reland "Disallow constructors of ES3 types in ES2 code." 2021-10-04 17:51:00 +00:00
third_party Roll skcms from 9aafe826f922 to a00edc64c486 (1 revision) 2021-09-29 20:26:20 +00:00
tools [graphite] Add support to Mac Viewer. 2021-09-30 21:38:25 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore add mskps/ to .gitignore 2021-07-06 21:04:55 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Add trusted service accounts to AUTHORS file 2021-09-29 20:18:40 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn Clean up #includes in SkCFObject. 2021-10-04 14:02:02 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll ANGLE from 3de06bcd0c81 to d3764f080f6c (19 revisions) 2021-10-04 05:26:22 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go.mod [infra] Roll infra to update vpython 2021-09-10 17:41:28 +00:00
go.sum [infra] Roll infra to update vpython 2021-09-10 17:41:28 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS [infra] Add wildcard OWNERS 2021-08-30 19:19:34 +00:00
PRESUBMIT.py Remove AUTHORS check from PRESUBMIT.py 2021-09-30 14:12:18 +00:00
public.bzl Separate SkUnicode bazel source sets 2021-08-09 18:23:15 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Revert "Remove SkRuntimeShader::makeImage." 2021-09-28 13:24:50 +00:00
whitespace.txt Test SkCQ 2021-07-24 21:07:28 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.