kalle51 schrieb:
So, zu meinem Verständnis gehört das nun mal. Früher hat man bei einem C64 direkt in den Grafikspeicher geschrieben, um eine schnellere Grafik zu bekommen.
Nach genau dem Wissensstand klingen Deine Fragen ja auch... was soll ich noch viel mehr sagen als dass Du den mal updaten sollst?
Heute ruft man Klassen(Objekte) auf, z.B. eine Klasse die mir ein Fenster "malt". Nun muss doch diese Klasse den Adressbereich - ob nun real oder virtuell - kennen.
Heutzutage ist es um ein paar Ebenen komplizierter.
Erstens wird der gemappte Adressbereich nicht unbedingt benutzt, damit der Rechner irgendwas direkt in den Grafikkartenspeicher schreibt, sondern zur Kommunikation.
Zweitens kennt eine typische Fenster-Klasse keine Details des Ausgabegerätes sondern kann ihre Darstellung durchaus ganz anders ablegen als die Grafikkarte das machen würde.
Quartz setzt die ganzen rechteckigen oder sonsteckigen Fensterblöcke im Ausgangsbild zusammen. Quartz greift auch nicht direkt auf den Kartenspeicher zu, sondern benutzt OpenGL.
OpenGL ist immernoch nicht hardwareabhängig. Von hier aus geht es entweder weiter zur Grafikkarte, die OpenGL selbst versteht (alle Mac-Grafikkarten können das), oder zu einem Software-Renderer wie Mesa, der die Aufrufe umsetzt und die Grafikkarte dann am Ende anders anspricht, oder oder oder.
Wenn Du heute schnellere Grafikausgabe willst dann lern OpenGL. Selbst in den Kartenspeicher schreiben ist, wenn Du es überhaupt schaffst, langsamer, weil die (beachtliche) Rechenleistung der GPU nicht mehr dafür zur Verfügung steht.