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


Общие сведения о представлении сцены (Direct3D 9)

API презентации — это набор методов, управляющих состоянием устройства, которое влияет на то, что пользователь видит на мониторе. Эти методы включают настройку режимов отображения и однократные методы для каждого кадра, которые используются для представления изображений пользователю.

Чтобы понять API презентации, необходимо ознакомиться со следующими терминами.

  • передний буфер. Прямоугольник памяти, преобразованный графическим адаптером и отображаемый на мониторе или другом устройстве вывода.
  • задний буфер. Поверхность, содержимое которой можно повысить до переднего буфера.
  • цепочка буферов. Коллекция задних буферов, которая может быть последовательно представлена в переднем буфере. Как правило, цепочка буферов в полноэкранном режиме представляет последующие изображения с переворачиванием интерфейса драйвера устройства (DDI), а цепочка буферов с окнами — изображения с разрезным DDI.

Так как в Direct3D 9 есть одна цепочка буферов в качестве свойства устройства, всегда существует по крайней мере одна цепочка буферов на каждое устройство. Интерфейс IDirect3DDevice9 содержит набор методов, которые управляют неявной цепочкой буферов и являются копией собственного интерфейса цепочки буферов. Приложения могут создавать дополнительные цепочки буферов; однако это необязательно для типичного одноэкранного или полноэкранного приложения.

Передний буфер не предоставляется напрямую в Direct3D 9. В результате приложения не могут блокировать или отрисовывать передний буфер. Дополнительные сведения см. в статье Доступ к буферу переднего цвета (Direct3D 9).

Примечание

DirectX 7 предоставляет ряд API презентаций, которые были вызваны вместе. Хорошим примером этого является последовательность IDirectDraw7::SetCooperativeLevel, IDirectDraw7::SetDisplayMode и IDirectDraw7::CreateSurface. Кроме того, методы IDirectDrawSurface7::Flip и IDirectDrawSurface7::Blt сигнализируют о переносе отображаемых кадров в монитор. Direct3D 9 объединяет эти группы API в два метода main: Reset и Present. Сброс подсумей SetCooperativeLevel, SetDisplayMode, CreateSurface и некоторых параметров для переключения. Отображение подсумей и использование blit в презентации.

 

Вызов IDirect3D9::CreateDevice представляет неявный сброс устройства. API Direct3D 9 не имеет представления о первичной поверхности; невозможно создать объект, представляющий основную поверхность. Он считается внутренним свойством устройства.

Гамма-пандусы связаны с цепочкой буферов и управляются с помощью методов IDirect3DDevice9::GetGammaRamp и IDirect3DDevice9::SetGammaRamp .

Представление сцены