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