Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

MacTechNews erklärt Fachbegriffe - Quartz

Ein weiteres, häufig verwendetes Schlagwort dass im Zusammenhang mit der Grafikdarstellung fällt, ist Quartz oder auch Quartz Extreme. Im heutigen Teil der Serie "MacTechNews erklärt Fachbegriffe" wird daher erklärt wie es möglich ist, Teile des OS grafisch darzustellen und wie der Bildaufbau funktioniert.

Weiterführende Links:

Kommentare

Mendel Kucharzeck
Mendel Kucharzeck10.03.04 14:33
Was wollt ihr denn als nächstes wissen?
0
Rantanplan
Rantanplan10.03.04 14:49
Hmm, naja, die Erklärung von Quartz ist ein wenig... eigenwillig

Eine Meta-Ebene einzuziehen ist keine Neuheit von Quartz, das gibt es schon lange, am bekanntesten dürfte wohl das GDI von Windows sein (mit seinem zugehörigen Windows-Meta-File (WMF) Format, wenn es in eine Datei geschrieben wird). Skalierbar und geräteunabhängig ist die GDI auch, Quartz unterscheidet sich in diesem Punkt eher durch die Qualität und durch das Format, das verbreitete PDF.

Wirklich neu im Consumerbereich ist meines Wissens dagegen Quartz Extreme: Fensterinhalte werden von der CPU zu Texturen gerendert, der sichtbare Desktop ist eigentlich eine 3D-Szenerie aus flächigen Elementen, die mit diesen Texturen versehen werden. Das Shading erledigt die GPU so nebenher, Transparenzen ebenso.

Das - im Artikel - erwähnte Doublebuffering ist einer der Unterschiede zwischen der Windows-GDI und Quartz: man merkt es am schnellsten beim Verschieben von Fenstern. Bei GDI sieht man, daß die aufgedeckten Bereiche "on demand" nachgezeichnet werden, bei Quartz ist dieser Effekt nicht vorhanden.

Man hat hier zwei mögliche Vorgehensweisen, die komplett unterschiedlich sind: die GDI speichert keine Fensterinhalte, dafür muß sie bei Aufdecken von vorher verdeckten Bereichen der Applikation sagen "du, paß mal auf, zeichne mal den Breiche xyz neu". Das dauert natürlich ein klein wenig, deswegen sieht man das auch. Vorteil: kein RAM wird zum Puffern benötigt, dafür unschöne "Nachzieheffekte" und für den Programmierer ein etwas umständlicheres Modell. Wenn das Programm mal anderweitig beschäftigt ist ("hängt"), dann bleibt der Bereich eben weiß - das kann man bei Windows häufiger mal betrachten

Bei Quartz dagegen zeichnet die Applikation immer in einen Puffer und sie zeichnet nur dann, wenn sie das möchte, sprich wenn sich die Daten geändert haben. Aus diesem Puffer bedient sich das Window-System und kann jederzeit aufgedeckte Bereiche darstellen. Vorteil: kein Nachzieheffekt, dem Programmierer wird die Arbeit erleichtert. Nachteil: ordentlich RAM-Bedarf.

Inzwischen werden inaktive Fensterpuffer zwar komprimiert, aber trotzdem kommt dabei ordentlich was zusammen und das ist übrigens auch einer der Gründe, warum OS X deutlich mehr RAM benötigt als Windows 2k/XP.

Der Effekt, daß das Vergrößern/Verkleinern von Fenstern in OS X recht lahm abläuft hängt meiner Ansicht nach auch direkt mit dem Quartz-Puffersystem zusammen.
Wenn ich nicht hier bin, bin ich auf dem Sonnendeck
0
Mendel Kucharzeck
Mendel Kucharzeck10.03.04 14:56
Rantanplan
Klar, man hätte das noch erheblich ausweiten können, bis hin zu der internen Funktionalität der NSViews etc, aber das hätte wohl wirklich zu weit geführt, oder?
0
Rantanplan
Rantanplan10.03.04 15:09
Mit NSView wäre man dann schon bei Cocoa gelandet, das hätte imho bei der Erklärung von Quartz nix mehr verloren
Wenn ich nicht hier bin, bin ich auf dem Sonnendeck
0
macsheep
macsheep10.03.04 15:12
rantanplan

danke für deine erweiterungen, du scheinst wirklich ein profi zu sein!

MTN
ich habe ein Vorschlag für die begrifferklärung. könnte man nicht in Tipps und Tricks einen eigenen ordner machen "Fachbegriffe erklärt..." oder so? das würde die übersichtlichkeit der rubrik doch stark verbessern, insbesondere wenn man beachtet das noch einige begriffe hinzu kommen werden oder?

ansonsten finde ich alles sehr gut erklärt, wenn das so mit dieser geschwindigkeit weitergeht sind wir plötzlich alle mac programmier genies oder so!
Meinung (er)tragen mit Stil.... www.etrtragbar.ch
0
Agrajag10.03.04 15:23
So langsam scheint das TECH in macTECHnews ja Sinn zu machen Meinetwegen dürfen solche Dinge ruhig etwas detailierter werden.
0
Mendel Kucharzeck
Mendel Kucharzeck10.03.04 15:54
Rantaplan
Du weisst was ich meine! Soll ich es detailiert auseinandernehmen?

macsheep
Darauf arbeiten wir hin, dass alle hier Programmierer und Mac/Unix-Freaks werden
Das mit dem ordnen macht Sinn, das werden wir beim nächsten MTN-Update machen!
0
markus210.03.04 16:31
Quartz bzw. Quartz Exterme (AGP OpenGL) für 2D Test sind etwas rar.
Xbench testet leider nur kleine Fenster und zudem kaum QE features.
Deshalb NON QE Systeme mit ähnlciher CPU Leistung dort kaum schlechter beim Xbench 2D Quartz Test.

Meine zwei Quartz / QE Benches arbeiten etwas anders: deutlich größere und varierende Fenster UND bei dem 2. Bench exklusiv: Trasparente Fenster.
Bei NON QE Systemen (AGP mit zuwenig RAM oder PCI Systemen) ist der 2. , transparente Bench deutlich langsamer wie der 1. Bench.
Warum:
QE ermöglichst es der CPU die bei Transparenen Fenstern anfallende Arbeit abzunehmen.
Denn bei transparenten Fenstern muss nicht nur der jeweilige Fensterinhalt erneuert werden, sondern auch der durchscheinde Hinetrgrund.

Beide Download sind nur knapp 1 MB und laufen zwischen 5 (DUAL G5) und 80 Sec. (langsame, ältere PCI Systeme).
Bench möglich Auflösung >= 1024x768.

AGP Systeme haben fast die gleichen Zeitwerte bei transp. / nicht transp. fenstern.
Langsame AGP Systme (ohne QE) oder mit lansameren AGP karten sind ca. um Faktur 1.2-1.5 langsamer.
PCI Systeme um Faktor 1.8 bis 2 langsamer.

Downloads:





mfg mitch
0
Sven Janssen
Sven Janssen10.03.04 18:59
Rantanplan
das ging mir beim lesen auch eben durch den kopf.
unter Windows hatte ich schon seit 95 die Möglichkeit auf ein canvas zu zeichnen und das ist nun egal ob es von einer Form, Drucker etc ist.
auch ist es unter 2K XP möglich Fenster Transparent darzustellen(ohne zusatz Tools der Grafikkarten Hersteller) und ebenfalls weiß Windows ganz genau was in welchem Fenster sich befindet. Man muss sich nur den TaskSwitcher Aufsatz von Microsoft herunterladen. Dann bekommt man bei ALT+TAB die Inhalte der Fenster angezeigt. Sprich ein Expose für Arme *g*
Aber das konnte XP schon vor Panther.
Auch finde ich das die MVC GUI um einiges schneller arbeitet als die Quarz Technologie.

Ich finde beide System, sowohl die MFC wie auch Quartz sehr interessant und programmiere mit beidem gerne.
Ich habe unter OS X noch kein Programm geschrieben was druckt. Wir haben aber unter Windows eine Druckvorschau geschrieben und mir einige Examples unter Cocoa angeschaut. Soweit liegt das nicht auseinander.

Sven
0
Sven Janssen
Sven Janssen10.03.04 19:04
nachtrag
auch Windows kann doublebuffering.
Muss aber explizit vom Programm aktiviert werden und damit wird das ganz schon langsamer.
Auch das die Grafikkarte das Rendering der Schriften vornimmt ist nicht neu.
das mach der X-Server unter Linux schon lange und auch unter Windows werden Fenster, Texte teils von der Grafikkarte gezeichnet. z.b werden DVD Filme komplett von der Grafikkarte gezeichnet.
schieße ich ein Screenshot habe ich dort wo der Film läuft nur ein schwarzes Viereck. (mir fehlt momentan der Begriff wie man diese Technik nennt).

Sven
0
Agrajag10.03.04 19:25
Sven Janssen: "schieße ich ein Screenshot habe ich dort wo der Film läuft nur ein schwarzes Viereck. (mir fehlt momentan der Begriff wie man diese Technik nennt)."

Overlay? Ich erinnere mich daran, dass ich doch solche Screenshots machen konnte, wenn ich die WinTV eingeschaltet hatte. Warum es dann funktionierte -- keine Ahnung.
0
Sven Janssen
Sven Janssen10.03.04 19:58
agrajag
genau ... overlay.
Einige ScreenShot Programme wie z.b HyperSnap können auch davon Screenshots erstellen. Aber nicht mir den Hausmitteln von Windows.

Sven
0
Agrajag10.03.04 20:17
Wie gesagt, mit einer aktivierten WinTV geht es auch mit Win-Hausmitteln. Vielleicht passiert da etwas, was auch die von dir genannten Tools machen.
0
MacApple10.03.04 21:06
Das wirklich neue an Quartz ist doch, dass jedes Fenster sozusagen auf seine eigene Folie gezeichnet wird und dann die Folien übereinander gelegt werden. Bei Quartz-Extreme übernimmt dieses Übereinanderlegen die Grafikkarte. Bei Windows werden die Fenster halt alle auf eine einzige Leinwand gemalt.
0
Sven Janssen
Sven Janssen11.03.04 05:51
MacApple
Unsinn.
Lies was ich und Rantanplan geschrieben haben.

Sven
0
arekhon
arekhon11.03.04 14:45
Sven Janssen: du scheinst die Funktionen unter Windows ja recht gut zu kennen. Wie sieht es denn mit der Art der Transparenz aus? Werden da auch unterschiedliche übereinandergelegte Transparenzgrade beachtet und korrekt dargestellt wie unter OS X immer und überall problemlos möglich, oder ist das wie bei einer standarmäßigen Installation von X + beliebigem WindowServer unter Linux wo ich allenfalls eine "gehackte" Transparenz ohen echten Alpha-Channel habe?
Ich würde mal vermuten das liegt dazwischen, oder?
0
Sven Janssen
Sven Janssen11.03.04 17:46
müsste ich einmal testen.
So extrem habe ich mich damit noch nicht beschäftigt da ich das Feature selbe uninteressant finde.
Werde es morgen in der Firma mit ein paar Programmen einmal testen.

Sven
0
MacApple11.03.04 19:24
Sven Janssen
Nix Unsinn.
Ich habe gelesen, was Du und Rantanplan geschrieben habt. Der dritte Absatz von Rantanplan ist doch das "Folienmodell", was ich beschrieben habe. Mir scheint aber, dass Du die Arbeitsweise von Quartz nicht genau kennst, denn z.B. die Schriften werden nicht von der Grafikkarte gerendert. Was bei Quartz in Software (CPU) und was in Hardware (GPU) gerendert wird ist hier schön dargestellt. Ich glaube nicht, dass Windows so arbeitet.
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.