From a34688d4a7a9daefc574daf1cf6704b9c27df960 Mon Sep 17 00:00:00 2001 From: Dorian Rudolph <mail@dorianrudolph.com> Date: Mon, 5 Feb 2024 13:58:21 +0100 Subject: [PATCH] add stroke example --- README.md | 3 ++- talk/chromevsinkscape.png | Bin 0 -> 2088 bytes talk/talk.tex | 13 +++++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 talk/chromevsinkscape.png diff --git a/README.md b/README.md index 510aa3f..8de9428 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Programming: - End-to-end encryption - Your own ideas... -See [2]-[6] for more practical information. +See [2]-[7] for more practical information. ## Skills @@ -77,6 +77,7 @@ During the project group, you will learn and apply the following skills: - [4] Google. The Raster Tragedy in Skia (blog post). https://skia.org/docs/dev/design/raster_tragedy/ - [5] Nicolas Silva. List of vector graphics rendering approaches: https://github.com/nical/lyon/wiki/Related-projects - [6] Beat Stamm. The Raster Tragedy at Low-Resolution Revisited: Opportunities and Challenges beyond “Delta-Hintingâ€. http://rastertragedy.com/ +- [7] Stylus Labs. https://github.com/styluslabs/nanovgXC (rendering framework of the https://www.styluslabs.com/ software) diff --git a/talk/chromevsinkscape.png b/talk/chromevsinkscape.png new file mode 100644 index 0000000000000000000000000000000000000000..7407725151f0acff019c995edc2cfe3a689e9d70 GIT binary patch literal 2088 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 Wyrq0Re=bZg02niC(=rqH=>Gzr=5hr9 literal 0 HcmV?d00001 diff --git a/talk/talk.tex b/talk/talk.tex index 28f0071..4115e17 100644 --- a/talk/talk.tex +++ b/talk/talk.tex @@ -71,10 +71,19 @@ \onslide<+->{\emph{Ok, so how can we build a better app?}} \begin{itemize}[<+->] \item Need to render vector graphics - \item Chrome uses skia, so let's try that... + \item Chrome uses Skia, so let's try that... \end{itemize} - +\end{frame} + +\begin{frame} + \frametitle{Stroke rendering is hard} + + \url{https://issues.skia.org/issues/40043907}: Filled paths of width less than 1px defeat GPU anti-aliasing\\[5mm] + \onslide<2->{ + Chrome vs. Inkscape: + \includegraphics[width=\linewidth]{chromevsinkscape.png} + } \end{frame} -- GitLab