title: QuickDraw
text: # QuickDraw
  
  QuickDraw è il motore grafico bidimensionale del sistema operativo macOS prodotto da Apple. È stato progettato e realizzato da Andy Hertzfeld e Bill Atkinson. Con l'arrivo del macOS Apple sviluppò un nuovo motore grafico chiamato Quartz. QuickDraw è incluso in Mac OS X per poter mantenere la compatibilità con le applicazioni precedenti, l'emulatore Classic necessità del supporto di QuickDraw per funzionare.
  
  ## Principi di QuickDraw
  
  QuickDraw venne progettato dal team di sviluppo come un'estensione dell'originale motore grafico integrato nel sistema operativo del computer Lisa. È strutturato come un insieme di algoritmi e di strutture dati unite per formare un insieme di librerie deposte alla gestione dell'interfaccia grafica. Questo metodo di costruzione del motore grafico è in netta opposizione rispetto alle moderne tecniche di programmazione orientata agli oggetti. Ma allora la programmazione a oggetti non era il paradigma imperante e quel tipo di libreria ben si adattava al linguaggio Pascal, linguaggio che Apple ha utilizzato per sviluppare buona parte dell'interfaccia grafica.
  
  QuickDraw definisce una struttura dati chiave chiamata "port" o "GrafPort". Questa struttura definisce l'area dove si può disegnare. La maggior parte delle finestre presenti sullo schermo sono delle GrafPort.
  
  Le GrafPort sono definite da un sistema di coordinate. Nel QuickDraw sono definite come numeri a 16 bit e quindi una GrafPort può essere grande al massimo 65535 punti in orizzontale e un egual numero in verticale. I numeri sono elencati col segno quindi vanno da -32.767 a +32.768 in orizzontale e similmente in verticale. Le finestre normalmente sono posizionate a partire dalla posizione (0,0).
  
  Le linee definite da QuickDraw sono delle linee ideali infinitamente sottili. Quando vengono tracciate il sistema traccia la linea "colorando" i punti alla destra e sotto delle coordinate attraversate dalle linee. Questa convenzione di disegno evita errori di parallasse e riduce i problemi dovuti ad un allineamento non corretto delle linee che generano le figure geometriche base.
  
  Nel sistema Macintosh tutti i punti (pixel) vengono considerati quadrati e con una risoluzione di 72 punti per pollice. Questa convenzione è comoda, dato che nell'industria editoriale una risoluzione standard di stampa è quella di 72 punti per pollice e quindi è facile avere una corrispondenza tra ciò che si vede e ciò che si stampa.
  
  QuickDraw include diverse funzioni per scalare e mappare le immagini.
  
  QuickDraw mantiene molte variabili globali per ogni programma legate alle GrafPort. Questo ha semplificato la realizzazione delle API dato che ogni operazione normalmente veniva indirizzata verso la "porta" corrente. Quando Apple decise di introdurre il multitasking nel Mac OS comprese che la soluzione adottata dal QuickDraw era molto limitata e che aggiornarla senza perdere la compatibilità con le precedenti applicazioni sarebbe stata un'impresa ardua. Infatti molte delle limitazioni del multitasking del Mac OS dipendevano da QuickDraw.
  
  Il 20 luglio 2010 Apple ne ha donato il codice sorgente al Computer History Museum di Mountain View.
  
  