The chapter that opens the book, as it is printed: how the volume is made, who it is for, what you need.
This page is available in Italian only for now.
Prima di cominciare
Prefazione
Il volume 3 ha disegnato con quello che Avalonia dà già: il metodo Render e il DrawingContext, con penne, pennelli, geometrie, trasformazioni e testo, fino a un editor vettoriale; poi le animazioni, il tempo e le particelle. Questo libro scende di un livello e va dove il DrawingContext non arriva.
Prima c'è Skia, la libreria che sta sotto Avalonia e che si può usare direttamente: le sue tele e le sue penne, le fusioni e i livelli, il testo con HarfBuzz, gli shader e il loro linguaggio, SkSL, i filtri, il disegno fuori schermo, i documenti PDF. Poi Direct2D, il disegno nativo di Windows, per sapere che cosa offre e che cosa costa, fino allo stesso grafico disegnato in tre modi e misurato. Poi le immagini: caricarle, mostrarle, i formati dei file, i pixel uno per uno, la luminosità, le convoluzioni, i canali, le miniature preparate in un altro thread. Il libro finisce con cinque progetti: un visualizzatore di fotografie, un editor di immagini, un editor grafico, un'animazione di fuochi d'artificio e un editor di diagrammi.
Tutto è ancora C#, senza XAML, e senza librerie a pagamento: Avalonia (la parte gratuita), SkiaSharp e HarfBuzzSharp, che arrivano con Avalonia, e Vortice.Windows per Direct2D, tutte con licenza MIT.
La collana ha dieci volumi:
- Il linguaggio C#: tipi, oggetti, generici, eccezioni, file, thread,
Taskeasync. - Interfacce desktop: Avalonia in codice, i controlli, i temi, le architetture e i thread dell'interfaccia.
- Grafica 2D: il disegno e le animazioni con Avalonia.
- Grafica 2D avanzata: Skia, Direct2D, le immagini, i progetti. Questo libro.
- Grafica 3D: il 3D da zero con OpenGL.
- Grafica 3D avanzata: Vulkan e Direct3D.
- Audio.
- Video.
- Dispositivi, dati e rete.
- Sistema, distribuzione e qualità.
I volumi 3 e 4 erano un libro solo, diviso perché superava le 800 pagine. Ogni capitolo porta il numero del volume: IV.4 è il quarto capitolo di questo libro, §IV.4.2 il secondo paragrafo di quel capitolo. Un rimando con il numero I, II o III, come «(capitolo III.16)», indica il volume 1, 2 o 3.
Che cosa serve dei volumi precedenti
Il libro dà per noto il C# del volume 1, le basi di Avalonia del volume 2 e il disegno del volume 3. Quello che serve del volume 3 è riassunto nel ripasso, subito dopo queste pagine, paragrafo per paragrafo con il rimando al capitolo che lo spiega per intero. In particolare:
| Argomento | Dove |
|---|---|
| classi, interfacce, eventi, generici, eccezioni | capitoli I.6–I.10 |
thread, Task, await, l'annullamento | capitoli I.15–I.18 |
| il progetto Avalonia, la finestra, il ciclo di vita, RAVAL | capitoli II.2–II.5 |
| layout, misure, DPI e scaling; risorse e temi | capitoli II.10–II.13 e II.20 |
il thread della finestra, il Dispatcher, i timer | capitoli II.37 e II.39 |
| come disegna Avalonia: il thread del disegno, il compositore, le sonde | capitolo III.1, ripasso |
Render, penne, geometrie, pennelli, trasformazioni, ritagli | capitoli III.2–III.5, ripasso |
| immagini, testo come grafica, coordinate e zoom | capitoli III.8–III.10, ripasso |
| l'editor vettoriale, l'esportazione, le misure delle prestazioni | capitoli III.14–III.16, ripasso |
| il passo fisso, i percorsi, le particelle, gli effetti | capitoli III.21–III.25, ripasso |
Chi ha appena finito il volume 3 può saltare il ripasso e cominciare dal capitolo IV.1, tornando al ripasso solo quando un rimando lo chiede.
Come è fatto il libro
| Parte | Capitoli | Che cosa |
|---|---|---|
| Ripasso | — | il disegno 2D del volume 3 in breve |
| Prima · Skia in profondità | IV.1–IV.10 | Skia dentro Avalonia, tele, pennelli, testo, shader, filtri, documenti |
| Seconda · Direct2D (Windows) | IV.11–IV.16 | il disegno di Windows, il testo di DirectWrite, il confronto con Skia |
| Terza · Immagini e fotografia | IV.17–IV.25 | caricare, mostrare, i formati, i pixel, i filtri, le miniature |
| Progetti | IV.26–IV.30 | un visualizzatore di foto, un editor di immagini, uno di grafica, un'animazione, un editor di diagrammi |
| Appendici | A–C | gli inciampi, il riferimento rapido, il glossario |
Ogni capitolo comincia con Cosa imparerai e finisce con tre riquadri: Errori comuni, gli sbagli che si fanno davvero, con il rimedio; Da ricordare, il capitolo in poche righe; Esercizi, da fare con l'editor aperto.
I percorsi di lettura
- Dal volume 3. Tutto, in ordine.
- Ti servono le immagini. Il ripasso (R.1 e R.8), poi la terza parte e i progetti IV.26 e IV.27.
- Vuoi Skia per un grafico veloce. Capitoli IV.1–IV.3, poi IV.8 e IV.9.
- Lavori solo su Windows e ti chiedi se Direct2D conviene. Capitolo IV.1 e la seconda parte, che finisce con le misure dello stesso grafico nei tre modi.
Le regole della casa
Le stesse dei volumi precedenti:
- solo .NET, Avalonia e RAVAL, più le librerie che un capitolo nomina e spiega, sempre gratuite e con una licenza che permette di usarle anche nei programmi che si vendono;
- tutto in C#, senza XAML;
- i nomi in italiano, quando sono nostri:
Tela,Oscilloscopio,Fascio; - una classe per file, con il nome del file, e un commento su ogni metodo che dice che cosa fa e perché;
- ogni gestore è un metodo con un nome;
- righe corte, entro 80 caratteri;
- niente detto, tutto misurato: quando il libro dice quanto costa un disegno, quale thread lo esegue o che cosa sceglie Avalonia su un certo computer, c'è stato un programma che lo ha misurato, e il capitolo lo racconta.
Gli strumenti e il codice degli esempi
Servono l'SDK di .NET 10, un editor per C# (il libro usa Visual Studio Code, capitolo I.2), Avalonia 12.1.4 e RAVAL 2.0.0, come nei volumi 2 e 3. SkiaSharp (3.119) e HarfBuzzSharp arrivano con Avalonia; Vortice.Windows (3.8) si aggiunge nei capitoli di Direct2D.
Il codice si scarica gratuitamente dal sito del libro, https://raval.aratoingegneria.it (capitolo II.2). RAVAL e gli esempi hanno la licenza MIT. Ogni programma degli esempi è stato compilato senza un avviso, e ogni figura è stata disegnata dal programma vero.
Convenzioni tipografiche
- Un termine nuovo è in grassetto la prima volta, ed è nel glossario (appendice C).
- Il codice, i nomi delle classi, dei metodi e dei file sono in
carattere fisso. - I nomi dei pulsanti e delle voci di menu sono in corsivo: Ferma, File → Esporta.
- I percorsi sono scritti come su Windows,
C:\Esempi\IV.1. - I rimandi dicono il capitolo, «(capitolo IV.6)», o il paragrafo, «§IV.6.2».
- I numeri misurati (fotogrammi al secondo, millisecondi per fotogramma) cambiano da un computer all'altro e da una volta all'altra: il testo li cita come li mostra la figura, e dice su che macchina sono stati presi.