2

That is, when you run games like Quake (which are, I believe in OpenGL), is every frame internally converted to PDF and then rasterized?

Or, when I do a game in UIKit/GameKit, it is also internally converted to PDF, frame-by-frame?

At least, I lost as I understood from the source: ARS Technica -Inside Quartz

1 Answer 1

2

I think it's essential to know where the PDF model for rendering comes into play in the macOS graphics and windowing system.

From the ARS Technica article:

it is important to understand that Core Graphics Services deals with more or less "ready-to-display" data sent to it from higher layers in the graphics system. It is a pixel pusher, not a graphics creator

enter image description here

So, everything is built on top of Core Graphics Services. The PDF engine is used to render essentially what you are seeing on your desktop (for a lack of a better word). For instance, the rendering of an App like TextEdit, Numbers or Microsoft Word would go through Core Graphics Rendering (the PDF model).

Core Graphics Rendering uses PDF for its internal vector graphics representation. Apple describes its rationale for using PDF as follows:

As a superset of Adobe PostScript, PDF brings several improvements, including better color management, internal compression, font independence, and interactivity. However, PDF is not a full-fledged language as is PostScript; it is declaratively, not programmatically, specified. Consequently a sophisticated and expensive language runtime is not necessary, as it is for PostScript.

Basically, what this is saying is that Core Graphics Rendering (just one of the graphics rendering systems) uses PDF because of its features over PostScript.

As for streaming media and "high performance graphics applications" like games it will go through a different rendering engine. OpenGL is a vectoring engine and it interacts directly with a systems GPU. It would be wildly inefficient to convert to a PDF model then display the rendered results.

So, to answer your question (and TL;DR):

That is, when you run games like Quake (which are, I believe in opengl), is every frame internally converted to PDF and then rasterized?

No, games that use OpenGL are rendered in OpenGL and passed off to Core Graphics Services which just "pushes the rendered pixels."

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .