Общие сведения о представлении сцены (Direct3D 9)
API презентации — это набор методов, управляющих состоянием устройства, которое влияет на то, что пользователь видит на мониторе. Эти методы включают настройку режимов отображения и однократные методы для каждого кадра, которые используются для представления изображений пользователю.
- IDirect3DDevice9::Present
- IDirect3DDevice9::Reset
- IDirect3DDevice9::GetGammaRamp
- IDirect3DDevice9::SetGammaRamp
- IDirect3DDevice9::GetRasterStatus
Чтобы понять 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 .
Связанные темы