Kvarts 2D

Quartz 2D är det inbyggda tvådimensionella grafikrenderings- API:et för macOS och iOS -plattformar, en del av Core Graphics- ramverket.

Översikt

Quartz 2D är tillgängligt för alla macOS- och iOS-applikationsmiljöer och ger upplösningsoberoende och enhetsoberoende rendering av bitmappsgrafik, text och vektorer både på skärmen och som förberedelse för utskrift. Dess ansvar inom grafiklagret inkluderar:

  • Återge text
  • Visa, manipulera och återge PDF- dokument
  • Konvertera PostScript- data till PDF-data och vice versa
  • Visa, manipulera och rendera bitmappsbilder
  • Tillhandahåller färghantering via ColorSync
  • Visar elementen i Aqua- användargränssnittet

Eftersom Quartz 2D är en av flera Quartz Technologies måste termen "Quartz" i sig själv tas i sitt sammanhang.

Ritning i Quartz 2D

Quartz 2D utökar ritfunktionerna förknippade med QuickDraw . Den mest anmärkningsvärda skillnaden är att Quartz 2D eliminerar utgångsenhet och upplösningsspecificitet.

Ritningsmodellen som används av Quartz 2D är baserad på PDF-specifikation 1.4. Ritning sker med hjälp av ett kartesiskt koordinatsystem , där text, vektorer eller bitmappsbilder placeras på ett rutnät. Ritningsutdata skickas dock inte direkt till utmatningsenheten. Quartz 2D använder sig av grafiska sammanhang, miljöer där ritning sker. Varje grafikkontext definierar hur ritningen ska presenteras: i ett fönster, skickad till en skrivare, ett OpenGL-lager eller utanför skärmen. Varje sammanhang rastrar ritningen med önskad upplösning utan att ändra data som definierar ritningen. Sålunda är sammanhang den mekanism genom vilken Quartz 2D använder upplösnings- och enhetsoberoende. Till exempel kan en fönsterkontext rastrera ett objekt till lämplig skärmupplösning för att skapa verklig grafik på skärmen. Samma objekt kan skickas till en utskriftskontext med mycket högre upplösning. Detta tillåter samma grafikkommandon att ge utdata på vilken enhet som helst med den lämpligaste upplösningen.

Historia

Quartz 2D liknar NeXTs Display PostScript i sin användning av sammanhang . Det dök först upp som 2D-grafikrenderingsbiblioteket som heter Core Graphics Rendering; tillsammans med Core Graphics Services (Compositing) lindades det in i den första inkarnationen av Quartz. Quartz (och dess renderare) demonstrerades första gången på WWDC i maj 1999.

För närvarande definierar namnet Quartz 2D mer exakt 2D-renderingsförmågan hos Core Graphics (Quartz). Med lanseringen av Mac OS X 10.2 fokuserade marknadsföringen på Quartz Extreme , kompositionslagret, och lämnade termen "Quartz" för att referera till Core Graphics-ramverket eller bara dess 2D-renderare. För närvarande Quartz- teknologier beskriva alla renderings- och komposittekniker som introduceras av macOS (inklusive Core Image till exempel).

Före Mac OS X Tiger överträffade QuickDraw-renderingen den för Quartz 2D. Mac OS X 10.4 rättade till detta och ökade avsevärt standardrenderingsprestandan för Quartz 2D. Tiger introducerade också Quartz 2D Extreme: valfri grafikprocessoracceleration (GPU) för Quartz 2D, även om det inte är en officiellt stödd funktion. Quartz 2D Extreme är inaktiverat som standard i Mac OS X 10.4 eftersom det kan leda till problem med omritning av video eller panik i kärnan. I Mac OS X Leopard döptes Quartz 2D Extreme om till QuartzGL.

Se även

externa länkar