Mac OS X Graphics Stack 本文介绍了 Mac OS X 的图形栈,分析了它的原理和体系结构。
来源:互联网 发布:主宰西游进阶数据 编辑:程序博客网 时间:2024/04/29 07:06
简介
Mac OS X 总体结构
图形栈体系结构
Quartz Compositor:窗口管理器12
Quartz Compositor is the windowing system in Mac OS X. It is responsible for presenting and maintaining rasterized, rendered graphics from the rest of the CoreGraphics framework and other renderers in the Quartz technologies family.
Quartz Compositor is the sole facilitator for the placement ofrendered bitmaps into the memory of the graphics card.
整体渲染流程遵从如下步骤:
- The bitmap output from Quartz 2D, OpenGL, Core Image, QuickTime,or other process is written to a specific memory location, orbacking store.
- The Compositor then reads the data from the backing stores andassembles each into one image for the display;
- The Compositor writes that image to the frame buffer memory of thegraphics card.
Quartz Compositor only accepts raster data, and is the only process that can directly access the graphics frame buffer.
In managing individual windows, Quartz Compositor accepts a bitmap image of the window's contents from its renderer, along with its position. The choice of the renderer is up to the individual application, although most use Quartz 2D. Quartz Compositor then acts as a "visual mixing board," by adding the given window to the whole scene for the display.
In its role as window manager, Quartz Compositor also has an event queue which receives events, such as key strokes and mouse clicks. The Quartz Compositor takes the events from the queue, determines which process owns the window where the event occurred, and passes the event on to the process.
Quartz Extreme : GPU Acceleration for Quartz Compositor12
Mac OS X v10.2 introduced Quartz Extreme: graphics processor (GPU)acceleration for the Quartz Compositor.
With Quartz Extreme, no central processor (CPU) cycles are utilized for scene composition. Quartz Compositor runs using the graphics processor (GPU) by encapsulating each rendered backing store in an OpenGL texture map or surface. The GPU then composes the surfaces and maps to provide the final image, which is delivered to its frame buffer.
Quartz Extreme only uses OpenGL commands, and requires a graphics cardconnected to an AGP 2X or faster bus (including AGP 4X, 8X, and PCIExpress), supporting textures and maps of arbitrary size, since manyof the renderers have no size limitation (Quartz 2D for example).It isautomatically enabled on Mac systems with one of the following typesof graphics cards:
- AMD (ATI) Radeon, AGP-based, 16MB VRAM minimum, or better
- NVIDIA GeForce2 MX, 16MB VRAM minimum, or better
SeeAlso
- Apple OpenGL and Quartz Extreme
- Quartz Compositor
- Mac OS X OpenGL Capabilities Tables
- Mac OS X Graphics Stack 本文介绍了 Mac OS X 的图形栈,分析了它的原理和体系结构。
- Mac OS X的Stack功能
- Mac OS X 简单的方法知道何时来电了
- Mac OS X Lion:狮子来了
- MAC OS X 的基本常识
- Mac OS X的内核
- Mac OS X 的文件系统
- Mac OS X的内核
- Mac OS X的内存
- Mac OS X 的文件系统
- Mac OS X:MagicPrefs介绍
- Mac OS X常用软件介绍
- MAC OS X 文件系统介绍
- GraphicConverter和GIMP两种低成本的图形编辑器为Mac OS X
- 强迫症犯了!修改Mac OS X的便笺在Dock上的图标!
- Mac OS X 10.9 (Mavericks) 上的xcode 5没法搞OpenMP了
- Mac OS X安装JDK1.6及相关备忘 解决了找不到tools.jar的问题
- Mac OS X El Capitan beta 6 + Xcode 7 beta 4 的问题有解了
- OPNET 8.1.A安装
- 如何去掉RDLC中的滚动条
- Android 内核源代码交叉编译
- Decorator模式C++实现
- C++初始化成员列表
- Mac OS X Graphics Stack 本文介绍了 Mac OS X 的图形栈,分析了它的原理和体系结构。
- POJ 2632 Crashing Robots 模拟的方法
- Linux I2C核心、总线与设备驱动
- VS2010中的计算代码度量值
- 数据库测试工具dbmonster使用:int 型主键,外键,varchar型数据生成
- MTK平台动态加载功能实现
- php防注入
- lambda表达式的解析(五) Lambda表达式与闭包类型
- TCP TIME_WAIT状态