Поведение в полноэкранном режиме
Драйвер отображения пользовательского режима может определить, что устройство отрисовки находится в полноэкранном режиме:
Если флаг полноэкранного битового поля установлен в элементе FlagsD3DDDIARG_OPENRESOURCE структуры, на которую указывает параметр pResource в вызове функции OpenResource драйвера.
Если флаг основного битового поля установлен в элементе FlagsD3DDDIARG_CREATERESOURCE структуры, на которую указывает параметр pResource в вызове функции CreateResource драйвера.
Приложение, разработанное для Microsoft DirectX 9.0 или более ранней версии, приведет к тому, что среда выполнения Microsoft Direct3D вызовет OpenResource для открытия общей основной поверхности, а затем CreateResource для создания дополнительных задних буферов. Приложение Microsoft DirectX 9L приведет к тому, что среда выполнения Direct3D вызовет CreateResource (без вызова OpenResource) для создания всех буферов цепочки буферов. Среда выполнения Direct3D задает основную ориентацию поверхности в элементе ПоворотD3DDDIARG_OPENRESOURCE и D3DDDIARG_CREATERESOURCE структур, на которые указывает параметр pResource в вызовах функций OpenResource и CreateResource соответственно.
Для полноэкранного устройства драйвер отображения пользовательского режима должен заблокировать повернутый ресурс, выполнить отрисовку для повернутого ресурса и выполнить передачу битовых блоков (bitblt) из повернутого ресурса. Как правило, драйвер отображения пользовательского режима создает промежуточные целевые объекты отрисовки в повернутой ориентации (все блокировки, биты и отрисовки будут переходить к этим промежуточным целевым объектам отрисовки) и основные выделения в альбомной ориентации (т. е. ориентация, которую цифрово-аналоговый преобразователь [DAC] использует для сканирования). При вызове драйвера отображения пользовательского режима для переворачивания данных он выполняет вращение bitblt от промежуточного целевого объекта отрисовки к буферу альбомной области перед вызовом функции pfnPresentCb для выполнения команды flip.
Всякий раз, когда драйвер отображения пользовательского режима должен выполнять bitblt, который включает в себя повернутый ресурс и невернутый ресурс, среда выполнения Direct3D указывает флаг поворота битового поля в элементе Flagsструктуры D3DDDIARG_BLT в вызове функции Blt драйвера, чтобы указать драйверу, что для bitblt должен происходить правильный поворот.
Приложения DirectX 9L могут работать с поддержкой поворота, что означает, что они отрисовывают все данные в правильной ориентации и правильно обрабатывают блокировки в повернутом буфере. Когда среда выполнения Direct3D создает цепочку буферов для приложения с поддержкой ротации, среда выполнения всегда указывает поворот как D3DDDI_ROTATION_IDENTITY в элементе Rotationструктуры D3DDDIARG_CREATERESOURCE , так как драйвер отображения пользовательского режима не требуется выполнять какие-либо специальные действия для работы приложения, поддерживающего поворот.