PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quartz und PDF


Binaermensch
2007-04-01, 14:37:43
Mahlzeit!

Erstmal: Ich bin (noch) kein MacUser, einige neuerungen sind daher evtl. an mir vorbeigegangen.
Ich surf eben grad so herum, und sehe dass wohl bald ne neue Version von MacOS rauskommt mit allerlei neuerungen. Auch dabei: Neuerungen im Grafiklayer des Systems. Immer mehr wird auf die GPU ausgelagert, Desktop wird 3D usw., das übliche halt.

Was mich jetzt stutzig macht: Immer wieder taucht mittendrin das Stichwort PDF auf. Da höre ich Sätze wie "Der Desktop ist ein PDF-Dokument" usw.

Aber: Was hat PDF ganz allgemein mit dem Grafiklayer eines Betriebssystems zu tun? PDF ist doch nur ein Dateiformat. Ein weitverbreitetes halt, aber trotzdem imho nur ein Dateiformat.
Das leuchtet mir nicht ein.


Stellt euch vor, ihr würdet morgen höhren, dass im Vista-Nachfolger PowerPoint eine zentrale Rolle im Grafiklayer des Systems einnimmt. Oder Word. "Der ganze Desktop ist ein Word-Dokument".
... Dann könnt ihr evtl nachvollziehen wie verwirrt ich jetzt gerade bin.


Kann mir jemand die Zusammenhänge etwas verdeutlichen?

Danke!
- Binärmensch

nggalai
2007-04-01, 15:04:15
Huhu Binärmensch,

NeXT-Step verwendete für die Darstellung auf dem Monitor „Display Postscript“. Also, zum Rendern von Fonts, Rahmen, Fenster und so weiter wurde auf eine spezielle Postscript-Variante gesetzt.

OS X basiert auf NeXT-Step, verwendet dafür aber statt des alten DPS PDF. Also auch ein Postscript.

So nur ganz knapp, vielleicht löst sich so der Knoten. :)

Liebe Grüße,
-Sascha

Ganon
2007-04-01, 15:45:13
PDF ist doch nur ein Dateiformat. Ein weitverbreitetes halt, aber trotzdem imho nur ein Dateiformat.
Das leuchtet mir nicht ein.

JPEG ist auch "nur" ein Dateiformat, trotzdem kann es auf dem Bildschirm angezeigt werden... macht's jetzt "Klick"? ;)

Benedikt
2007-04-01, 22:36:51
Ich glaube nicht, dass man die oft zu lesende Aussage "der OSX - Desktop ist eigentlich ein PDF-Dokument" nicht so stehen lassen kann. Wohl eher: die Beschreibungssprache die Oberfläche basiert auf PDF. So in die Richtung "was WPF für Vista ist, ist PDF für Mac OSX". Oder so.

Ganon
2007-04-02, 08:20:38
Wohl eher: die Beschreibungssprache die Oberfläche basiert auf PDF.

Ja sicher, aber erkläre das mal Laien so. ;) Die werden dich auch nur dumm angucken. ;)

Warum das viele so meinen, liegt halt schlicht daran, das du bei einem Screenshot (über Tastatur) standardmäßig ein PDF bekommst und das ohne große Rechnerei.

MadMan2k
2007-04-02, 10:08:22
Die Aussagen
1. Der Desktop ist ein PDF
2. Die Anzeige ist Vektorbasierend

sind äquivalent.

PDF ist nämlich im Grunde nur ein Vektordatenformat...

Xmas
2007-04-02, 14:13:49
Die Aussagen
1. Der Desktop ist ein PDF
2. Die Anzeige ist Vektorbasierend

sind äquivalent.

PDF ist nämlich im Grunde nur ein Vektordatenformat...
Das ist keine Äquivalenz. PDF ist ein spezielles Format, nicht alles was vektorbasiert ist nutzt PDF oder ließe sich überhaupt mit PDF darstellen.

nggalai
2007-04-02, 14:20:39
Die Aussagen
1. Der Desktop ist ein PDF
2. Die Anzeige ist Vektorbasierend

sind äquivalent.

PDF ist nämlich im Grunde nur ein Vektordatenformat...
PDF unterstützt auch Bitmaps und Fonts, die nicht vektor-konvertiert sind. Man kann TTFs und OpenType-Fonts einbetten, wenn man mag (was aber die meisten Font-Vertriebe nicht nett finden, weil man so die kostenpflichtigen Fonts wieder extrahieren kann).

Vielleicht so: PDF / „Display Postscript“ wird von Quartz als Seitenbeschreibungs-Sprache verwendet und von OS-X als Meta-Fileformat. Weshalb PDF und nicht einfach Postscript? Weil PDF einige Features hat, die Postscript nicht unterstützt –*wie z. B. echte Transparenz, was auf dem Monitor doch noch wichtig sein kann.

Liebe Grüße,
-Sascha

MadMan2k
2007-04-02, 14:20:49
1 => 2 ;(

Binaermensch
2007-04-02, 19:08:13
JPEG ist auch "nur" ein Dateiformat, trotzdem kann es auf dem Bildschirm angezeigt werden... macht's jetzt "Klick"? ;)Aber die Anforderungen sind grundlegend andere.

Ein Dateiformat beschreibt einfach nur in welcher Art und Weise die Rohdaten verpackt werden. Platzsparend auf Kosten der Qualität (JPEG, MP3); Augenmerk auf Qualität (FLAC, ?PNG?); einfache Weiter-verarbeit-keit (proprietäres Photoshop-Format welches Layer mitspeichert zB).

Bei ner GUI-Engine (ich nenns jetzt einfach mal so) liegt ja eher das korrekte Zusammenspiel und Verwaltung von allen Inhalten im Vordergrund (siehe Exposé zB)... und nicht so sehr die Dateigröße.


Nachdem in diesem Thread doch schon einige Stichworte gefallen sind mithilfe derer ich weiterrecherchieren konnte (PostScript z.B.; hab vorher nicht gewusst dass das was damit zu tun hat) hat sich meine Verwirrung bereits etwas gelichtet. PDF ist scheinbar mehr als "nur ein Dateiformat".

Warum das viele so meinen, liegt halt schlicht daran, das du bei einem Screenshot (über Tastatur) standardmäßig ein PDF bekommst und das ohne große Rechnerei.Wirklich? Also ein "echtes" PDF mit markierbarem und durchsuchbarem Text?
Oder nur so'n Pseudo-PDF = PDF mit eingebettem Bitmap?

Ganon
2007-04-02, 19:40:22
Aber die Anforderungen sind grundlegend andere.

Du musst dich von dem Gedanken lösen das es eine Datei ist. PDF, JPEG, PNG und was weiß ich sind keine Dateien. Das sind Formate. Und Formate beschreiben wie etwas auszusehen hat, egal wie groß jetzt das Ergebnis ist.

Bei OS X ist das Format für die Oberfläche halt PDF. Wenn eine Linie dargestellt werden soll, ist das halt PDF-Syntax, wie in einem normalen PDF auch. Genauso sieht es mit Grafiken aus usw. Das macht die Oberfläche "vektorbasiert", da PDF ein Vektor-Format ist. D.h. im Format heißt es jetzt "Linie von da bis da" und nicht "die und die Pixel sind jetzt schwarz".

Das kannst du natürlich so nicht darstellen. Hierzu wird dann das PDF in ein darstellbares Format umgewandelt anhand des Ausgabemediums (Monitor, Drucker, etc.).

Bei der GUI von OS X wäre das ja halt der Monitor. Also wird das PDF in ein Bild gewandelt und dargestellt. Das jetzt mal gaaanz vereinfacht ausgedrückt.

Du arbeitest auf der Oberfläche nicht mit einem "PDF-Dokument". Das Bild was du nur gerade siehst, ist aus einer Beschreibung entstanden, die einem PDF entspricht.

Das hat alles absolut nichts mit der Verwaltung usw. zu tun. Quartz dient zum Darstellen des Bildes. Mehr nicht. Die Programme sagen Quartz "Text da, Bild da, Linie da, Viereck da". Quartz nimmt das alles auf und erstellt das darzustellende Bild (im PDF-Format). Dann wird das Ergebnis für das Ausgabemedium vorbereitet (gewandelt in eine Textur) und an die Graka geschickt. Dadurch das das Urformat ein PDF ist, kann du die Ausgabe nun skalieren wie du willst. Die Qualität bleibt gleich, da Vektor-Format (gilt natürlich nur für Inhalte die auch vektorbasiert sind, aber das wurde ja schon gesagt).

Wirklich? Also ein "echtes" PDF mit markierbarem und durchsuchbarem Text?
Oder nur so'n Pseudo-PDF = PDF mit eingebettem Bitmap?

Normales PDF mit Bild drinnen. Grund siehe oben.

Coda
2007-04-02, 20:07:57
Du arbeitest auf der Oberfläche nicht mit einem "PDF-Dokument". Das Bild was du nur gerade siehst, ist aus einer Beschreibung entstanden, die einem PDF entspricht.
Ist das wirklich so? Basiert die API wirklich auf PDF-Befehlen? Kann ich irgendwie nicht so recht glauben.

Ganon
2007-04-02, 20:13:56
Ist das wirklich so? Basiert die API wirklich auf PDF-Befehlen? Kann ich irgendwie nicht so recht glauben.

Nein. Die API nicht. Die API ist ganz normal.

Bevor irgendwas auf dem Bildschirm dargestellt wird, liegt es als PDF-Beschreibung irgendwo im Speicher. Daraus wird dann das Ergebnis (Textur) erzeugt.

Davon bekommst du als Programmierer nichts mit. Du sagst bloß dein typisches "setFont" "setFontSize" "setText".

Ganon
2007-04-02, 20:21:10
Man stelle es sich wie ein SVG vor:

Als Bild sehen wir das:
http://upload.wikimedia.org/wikipedia/commons/e/e5/Zeichen_224.svg
Eine Pixelgrafik.

Im Bild steht aber nur:

<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="74" height="74" viewBox="0 0 74 74" overflow="visible" xml:space="preserve">
<circle fill="#FFCC33" cx="37" cy="37" r="37"/>
<circle fill="#009933" cx="37" cy="37" r="35"/>
<circle fill="#FFCC33" cx="37" cy="37" r="25"/>
<polygon fill="#009933" points="44 18 44 34 29 34 29 18 23 18 23 56 29 56 29 39 44 39 44 56 50 56 50 18"/>
</svg>


Nichts von Pixeln zu finden. Und genauso sieht es im PDF Format aus. Das Bild (bzw. jedes Fenster) besteht aus so einer Beschreibung. Und das erzeugt Quartz anhand der Befehle die er von den Programmen bekommt. Danach wird das Bild erzeugt. Hier in unserem Beispiel war es FireFox.

Coda
2007-04-02, 20:22:42
Davon bekommst du als Programmierer nichts mit. Du sagst bloß dein typisches "setFont" "setFontSize" "setText".
Klingt für mich dann aber reichlich dämlich. PDF braucht sicherlich mehr Speicher als eine für die Bildschirm angepasste Repräsentation (die man ja so machen könnte dass man sie leicht in PDF umwandeln kann für Druckzwecke o.ä.).

Und ich weiß ziemlich gut was PDF ist, danke ;)

Ganon
2007-04-02, 20:28:41
Klingt für mich dann aber reichlich dämlich. PDF braucht sicherlich mehr Speicher als eine für die Bildschirm angepasste Repräsentation (die man ja so machen könnte dass man sie leicht in PDF umwandeln kann für Druckzwecke o.ä.).

Hier geht es aber um WYSIWYG. Das was du am Bildschirm siehst kommt bei OS X halt 1:1 am Drucker raus wenn die Farbprofile stimmen. Und das ist bei Apple nicht ganz unwichtig.

Und Apple ist da gründlich. Selbst Safari beachtet Farbprofile.

Und ich weiß ziemlich gut was PDF ist, danke ;)

Joahr, aber wir dürfen den Rest ja nicht vergessen. ;) Das mit SVG wollte ich schon vor deinem Post schreiben.

Coda
2007-04-02, 20:30:23
Hier geht es aber um WYSIWYG. Das was du am Bildschirm siehst kommt bei OS X halt 1:1 am Drucker raus wenn die Farbprofile stimmen. Und das ist bei Apple nicht ganz unwichtig.
Wie gesagt. Das kannst du auch so haben. Der Desktop braucht eh nur ein Subset von PDF und du kannst das sehr wohl vollständig kompatibel machen.

Ich wäre mir da echt nicht so sicher, ob es nicht auch so ist.

Ganon
2007-04-02, 20:33:10
Der Desktop braucht eh nur ein Subset von PDF

Na das ist doch sowieso klar. Das da Overhead draußen ist, den man für den Desktop nicht braucht, ist doch logisch. Nur das was man halt braucht, ist im PDF-Format (Version 1.4) (halt alle Grundfunktionen zur Darstellung von Text und Grafiken).

Coda
2007-04-02, 20:45:16
Ich glaub das erst wenn mir jemand nen Memory-Dump macht den in ne PDF-Datei steckt und es mir in Acrobat anzeigt :D

Ganon
2007-04-02, 20:53:37
Hilft dir vllt. ein Auszug aus der Apple-Doku:


Digital Paper Metaphor
The Quartz imaging architecture is based on a digital paper metaphor. In this case, the digital paper is PDF, which is also the internal model used by Quartz to store rendered content. Content stored in this medium has a very high fidelity and can be reproduced on many different types of devices, including displays, printers, and fax machines. This content can also be written to a PDF file and viewed by any number of applications that display the PDF format.

The PDF model gives application developers much more control over the final appearance of their content. PDF takes into account the application’s choice of color space, fonts, image compression, and resolution. Vector artwork can be scaled and manipulated during rendering to implement unique effects, such as those that occur when the system transitions between users with the fast user switching feature.

Mac OS X also takes advantage of the flexibility of PDF in implementing some system features. For example, in addition to printing, the standard printing dialogs offer options to save a document as PDF, preview the document before printing, or transmit the document using a fax machine. The PDF used for all of these operations comes from the same source: the pages formatted for printing by the application’s rendering code. The only difference is the device to which that content is sent.

http://developer.apple.com/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/chapter_4_section_3.html

Coda
2007-04-02, 21:09:12
Ja das "internal model" kann aber auch eine "memory representation" von PDF sein. Ich glaube einfach nicht, dass man reines PDF benützt um auf den Bildschrim zu rendern. Das widerstrebt meinem Programmierer-Instinkt ;)

Ich vermute es ist eher sowas wie das was Acrobat im Speicher hält um das PDF anzuzeigen. Verstehst du was ich meine?

Die Apple-Doku dazu kannte ich übrigens schon.

Gast
2007-04-02, 21:27:48
OT:
Coda, überhaupt kein Interesse an einem Apple? :) Wäre interessant dann deine Fachmeinungen zu dem Apple-Kram zu hören. Xcode ist sicherlich auch nicht verkehrt!

Ganon
2007-04-02, 21:33:11
OT:
Coda, überhaupt kein Interesse an einem Apple? :) Wäre interessant dann deine Fachmeinungen zu dem Apple-Kram zu hören. Xcode ist sicherlich auch nicht verkehrt!

Ich glaube das wäre ihm zu eingeschränkt ;)

Ich vermute es ist eher sowas wie das was Acrobat im Speicher hält um das PDF anzuzeigen. Verstehst du was ich meine?

Jup, schon richtig. Ich meine jetzt generell hier das PDF in seiner internen Form und nicht das was im Dokument dann steht. Ich versuch das ja auch nebenbei noch Leuten zu erklären die noch nie ne Zeile Code geschrieben haben und da sind Texte zu zeigen leichter ;)

Coda
2007-04-02, 21:38:34
Coda, überhaupt kein Interesse an einem Apple? :) Wäre interessant dann deine Fachmeinungen zu dem Apple-Kram zu hören.
Da wehrt sich mein Geldbeutel dagegen. Völlig überteuert die Kisten. Und da ich Windows nicht für so böse halte wie manch andere...

Jup, schon richtig.
Na also ;)

Benedikt
2007-04-02, 21:44:37
Warum das viele so meinen, liegt halt schlicht daran, das du bei einem Screenshot (über Tastatur) standardmäßig ein PDF bekommst und das ohne große Rechnerei.
Möchte nicht pingelig sein, aber das ist definitiv bei Tiger nicht mehr so. Da kriegst du per Default eine PNG-Datei. Ist mir persönlich auch lieber: PNG kann ich sofort mit einer Bildbearbeitung öffnen und nachbearbeiten. Warum Apple den Screenshot (die Bilddatei mit fixer Auflösung) früher extra in ein PDF verpackt hat, verstehe ich sowieso nicht ganz. Außer man macht gleich Nägel mit Köpfen, und daher das:

Wirklich? Also ein "echtes" PDF mit markierbarem und durchsuchbarem Text?
Oder nur so'n Pseudo-PDF = PDF mit eingebettem Bitmap?
Geniale Idee! Nein, ehrlich! Sowas wäre absolut Spitze. Technisch muss das doch möglich sein, wenn man schon PDF als GUI-Beschreibungssprache verwendet...
Hilft dir vllt. ein Auszug aus der Apple-Doku:
http://developer.apple.com/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/chapter_4_section_3.html
Ich kenne den Menüpunkt "PDF erzeugen" (oder so ähnlich). Läuft das ganze eigentlich auch wieder über den Umweg Druckertreiber, oder wird das PDF nativ aus dem Display-Inhalt erzeugt? Schade eigentlich, dass dann keine Hyperlinks mit exportiert werden (zum Beispiel)...

Ganon
2007-04-02, 21:46:07
Da wehrt sich mein Geldbeutel dagegen. Völlig überteuert die Kisten. Und da ich Windows nicht für so böse halte wie manch andere...

Naja. Überteuert wäre das falsche Wort. Ist halt teure Hardware drinnen (Xeon, FB-DIMM, etc.). Aber wenn ich so deine Kommentare hier im Forum lese, wäre ein Mac auch nichts für dich... ;)

Ganon
2007-04-02, 21:48:49
Läuft das ganze eigentlich auch wieder über den Umweg Druckertreiber, oder wird das PDF nativ aus dem Display-Inhalt erzeugt? Schade eigentlich, dass dann keine Hyperlinks mit exportiert werden (zum Beispiel)...

Wird nativ erzeugt. Das Hyperlink nicht exportiert werden, liegt schlicht daran, das das PDF vom Display kein Hyperlink kennt. So einfach ist das... ;) Denn wie gesagt. Ihr arbeitet nicht mit einem PDF-Dokument. Es basiert nur darauf...

Coda
2007-04-02, 21:50:28
Naja. Überteuert wäre das falsche Wort.
Bitte? Ein Mac Mini mit halbwegs brauchbarer Ausstattung kostet >900€. Das ist Wucher. Allein was sie für halbwegs brauchbare Ramaustattung veranschlagen ist einfach lächerlich.

Und es fehlt auch eine "normale" Kiste zwischen iMac und Mac Pro zu halbwegs akzeptablem Preis. Etwas was einem normalem Windows-Zock-PC entspricht um von mir aus 1200€. Aber ich kann weder mit iMac noch mit Mac Pro so was anfangen. Kein Mensch braucht daheim FB-DIMM und zwei Xeons wenn du mich fragst. Ein Quad-Core und DDR2 reicht sicherlich für jegliche Anwendung.

...liegt schlicht daran, das das PDF vom Display kein Hyperlink kennt.
Das wäre mir neu. Ich hab schon etliche PDF-Dokumente mit Hyperlinks drin erstellt.

Ganon
2007-04-02, 21:53:22
Das wäre mir neu. Ich hab schon etliche PDF-Dokumente mit Hyperlinks drin erstellt.

Na RAM brauchst du bei Apple nicht kaufen. Das ist geprüfter RAM mit Protokoll, etc. Den kriegst du wo anders billiger.

Ich rede vom MacPro, da MacMini und iMac eher "Sondermodelle" sind...

Kein Mensch braucht daheim FB-DIMM und zwei Xeons wenn du mich fragst. Ein Quad-Core und DDR2 reicht sicherlich für jegliche Anwendung.

MacPro heißt auch >Pro< weil es für professionelle Nutzer ist und nicht für Heimanwender. Das ein mittelklasse Mac fehlt, weiß ich auch. Aber ich glaube den will Apple gar nicht anbieten. Deswegen sag ich ja, das teure Hardware zum Einsatz kommt, nicht überteuerte.

Ganon
2007-04-02, 21:54:46
Das wäre mir neu. Ich hab schon etliche PDF-Dokumente mit Hyperlinks drin erstellt.

...vom Display... Ich meine das PDF, welches OS X zur Darstellung nutzt... wozu sollte das Hyperlinks kennen? ;)

Coda
2007-04-02, 21:55:00
Na RAM brauchst du bei Apple nicht kaufen. Das ist geprüfter RAM mit Protokoll, etc. Den kriegst du wo anders billiger.

Ich rede vom MacPro, da MacMini und iMac eher "Sondermodelle" sind...
Ja, siehe edit, sorry.

Na RAM brauchst du bei Apple nicht kaufen. Das ist geprüfter RAM mit Protokoll, etc. Den kriegst du wo anders billiger.
Und den verbauten werf ich dann weg. Zusammen mit der Festplatte und allem anderen was ich ersetzen müsste um ein halbwegs brauchbares System zu haben.

Aber wenn ich so deine Kommentare hier im Forum lese, wäre ein Mac auch nichts für dich... ;)
Warum eigentlich nicht? Ich wäre sehr gewollt Mac OS X auszuprobieren, aber das was Apple mir als Hardware dafür anbietet kommt einfach nicht in Frage.

Ganon
2007-04-02, 22:10:41
Und den verbauten werf ich dann weg. Zusammen mit der Festplatte und allem anderen was ich ersetzen müsste um ein halbwegs brauchbares System zu haben.

Naja. Du musst ja nicht vom MacMini ausgehen. ;) Ich schätze mal du bräuchtest nen iMac ohne Bildschirm ;) Oder halt ein MacBookPro...

Warum eigentlich nicht? Ich wäre sehr gewollt Mac OS X auszuprobieren, aber das was Apple mir als Hardware dafür anbietet kommt einfach nicht in Frage.

Nunja. Du bekommst halt keine aktuellen Treiber und Entwicklerframeworks von den Graka-Herstellern, wie unter Windows. Du hast bloß das was Apple mitliefert, bzw. mit nem Systemupdate aktualisiert. D.h. mit OS X 10.4 wirst du nur OpenGL 2.0 sehen. OpenGL 2.1 ist OS X 10.5 vorbehalten. Und nach dem Release eines neuen Systems gibt's für die alten nur noch Sicherheitsupdates.

Denn die OpenGL-Implementierung kommt in OS X von Apple und nicht von den Graka-Herstellern, wie bei Windows.

Das mal als Beispiel. Deswegen meinte ich oben das es wohl etwas zu eingeschränkt wäre, für dich ;)

Gast
2007-04-02, 22:16:36
Hier geht es aber um WYSIWYG. Das was du am Bildschirm siehst kommt bei OS X halt 1:1 am Drucker raus wenn die Farbprofile stimmen.

Ein richtiges 1:1 bekommst du nicht, weil es unmöglich ist. Bildschirm und Drucker haben vollkommen unterschiedliche DPI Auflösungen. Durch Tricks wie virtuelle Inchs kannst du aber ein Ergebnis produzieren, dass ähnlich aussieht.
Noch was, gerade deswegen gehen PDFs über den Druckertreiber, um eben genauer zu rechnen. Damit kann dann genauer gerundet werden, wenn man auf das Pixelkoordinatensystem umwandelt. Und beim kommenden Apple OS haben so doch verkündet, dass sie 120DPI im Desktop unterstützen, das was andere OS' schon ewig können. Schwer vorstellbar, dass da die GUI auch nur Ansatzweise "richtiges" WYSIWYG ist.

Ganon
2007-04-02, 22:43:40
Und beim kommenden Apple OS haben so doch verkündet, dass sie 120DPI im Desktop unterstützen, das was andere OS' schon ewig können.

Von was redest du?

Naja, egal. Unter Tiger kann ich zumindest die DPI auf 216 stellen, wenn ich will... nur so nebenbei... Achja. Auch wenn es noch nicht wirklich offiziell ist, aber die GUI von Leo wird Auflösungsunabhängig und Apple bittet die Entwickler die Programme bis Anfang 2008 angepasst zu haben. Ich schätze dann kommen größere Displays von Apple. 50"?