Поверхности Direct3D (Direct3D 9)
Поверхность представляет собой линейную область памяти дисплея и обычно находится в памяти дисплея карта дисплея, хотя поверхности могут существовать в системной памяти. Surfaces управляются интерфейсом IDirect3DSurface9 .
- Передний буфер. Прямоугольник памяти, который преобразуется графическим адаптером и отображается на мониторе. В Direct3D приложение никогда не выполняет запись непосредственно в передний буфер.
- Задний буфер. Прямоугольник памяти, в который приложение может напрямую записывать данные. Задний буфер никогда не отображается непосредственно на мониторе.
- Переворачивающие поверхности. Процесс перемещения обратного буфера в передний.
- Цепочка буферов. Коллекция из одного или нескольких задних буферов, которые могут быть последовательно представлены в переднем буфере.
Получение Surface
Создайте поверхность, вызвав любой из следующих методов:
Форматы Surface определяют, как интерпретируются данные для каждого пикселя в памяти поверхности. Direct3D использует D3DFORMAT элемент структуры D3DSURFACE_DESC для описания формата поверхности. Формат существующей поверхности можно получить, вызвав метод GetDesc .
После создания поверхности можно получить указатель на нее, вызвав любой из следующих методов:
- GetBackBuffer
- GetCubeMapSurface
- GetDepthStencilSurface
- GetFrontBufferData
- GetRenderTarget
- GetSurfaceLevel
Интерфейс IDirect3DSurface9 позволяет косвенно обращаться к памяти с помощью метода UpdateSurface . Этот метод позволяет копировать прямоугольную область пикселей из одного интерфейса IDirect3DSurface9 в другой интерфейс IDirect3DSurface9 . Интерфейс surface также имеет методы для прямого доступа к памяти дисплея. Например, можно использовать метод LockRect для блокировки прямоугольной области отображаемой памяти. После завершения работы с заблокированной прямоугольной областью на поверхности важно вызвать UnlockRect .
Дополнительные разделы Surface
Дополнительные сведения об использовании поверхностей см. в следующих разделах:
- Форматы Surface (Direct3D 9)
- Что такое цепочка буферов? (Direct3D 9)
- Ширина и шаг (Direct3D 9)
- Переворачивающие поверхности (Direct3D 9)
- Перелистывание страниц и обратная буферизация (Direct3D 9)
- Копирование на Surfaces (Direct3D 9)
- Копирование поверхностей (Direct3D 9)
- Прямой доступ к памяти Surface (Direct3D 9)
- Частные данные Surface (Direct3D 9)
- Гамма-элементы управления (Direct3D 9)
Связанные темы