Поделиться через


Поверхности Direct3D (Direct3D 9)

Поверхность представляет собой линейную область памяти дисплея и обычно находится в памяти дисплея карта дисплея, хотя поверхности могут существовать в системной памяти. Surfaces управляются интерфейсом IDirect3DSurface9 .

  • Передний буфер. Прямоугольник памяти, который преобразуется графическим адаптером и отображается на мониторе. В Direct3D приложение никогда не выполняет запись непосредственно в передний буфер.
  • Задний буфер. Прямоугольник памяти, в который приложение может напрямую записывать данные. Задний буфер никогда не отображается непосредственно на мониторе.
  • Переворачивающие поверхности. Процесс перемещения обратного буфера в передний.
  • Цепочка буферов. Коллекция из одного или нескольких задних буферов, которые могут быть последовательно представлены в переднем буфере.

Получение Surface

Создайте поверхность, вызвав любой из следующих методов:

Форматы Surface определяют, как интерпретируются данные для каждого пикселя в памяти поверхности. Direct3D использует D3DFORMAT элемент структуры D3DSURFACE_DESC для описания формата поверхности. Формат существующей поверхности можно получить, вызвав метод GetDesc .

После создания поверхности можно получить указатель на нее, вызвав любой из следующих методов:

Интерфейс IDirect3DSurface9 позволяет косвенно обращаться к памяти с помощью метода UpdateSurface . Этот метод позволяет копировать прямоугольную область пикселей из одного интерфейса IDirect3DSurface9 в другой интерфейс IDirect3DSurface9 . Интерфейс surface также имеет методы для прямого доступа к памяти дисплея. Например, можно использовать метод LockRect для блокировки прямоугольной области отображаемой памяти. После завершения работы с заблокированной прямоугольной областью на поверхности важно вызвать UnlockRect .

Дополнительные разделы Surface

Дополнительные сведения об использовании поверхностей см. в следующих разделах:

Начало работы