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


Рисование в стерео и оповещение о статусе стерео

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

Приложение с оконным интерфейсом вызывает метод IDXGIFactory2::IsWindowedStereoEnabled, чтобы проверить, следует ли отображать в стерео. Полноэкранное приложение вызывает метод IDXGIOutput1::GetDisplayModeList1, а затем определяет, поддерживает ли любой из возвращенных режимов отображения отрисовку в стерео. Метод GetDisplayModeList1 не перечисляет стерео режимы, если в параметре Flags не указан флаг DXGI_ENUM_MODES_STEREO. Оконное или полноэкранное приложение, поддерживающее стерео, сначала решает отображать в стерео, основываясь на вызове метода IDXGIFactory2::IsWindowedStereoEnabled или IDXGIOutput1::GetDisplayModeList1 соответственно, а затем регистрируется для получения уведомлений о изменениях состояния стерео. Так как приложение не может полагаться на уведомление, чтобы указать текущее состояние стереоскопического трехмерного отображения, когда оно получает событие уведомления или сообщение окна, оно должно вызывать либо IDXGIFactory2::IsWindowedStereoEnabled или IDXGIOutput1::GetDisplayModeList1, еще раз, чтобы определить текущее состояние стереоскопического отображения операционной системы.

Если вы хотите выполнять визуализацию в стерео, необходимо зарегистрировать уведомления о стерео, чтобы знать, когда пользователь отключает или включает стерео. Приложение может регистрироваться, чтобы получать уведомления об изменениях состояния стереоскопического трехмерного отображения через сообщение в окно или через сигнал событий. Чтобы зарегистрироваться для получения уведомлений в окне о изменении состояния стерео, приложение вызывает метод IDXGIFactory2::RegisterStereoStatusWindow. Чтобы зарегистрироваться для получения уведомления об изменении состояния стерео через сигнал событий, приложение вызывает метод IDXGIFactory2::RegisterStereoStatusEvent. Оба метода возвращают указатель на значение ключа, которое приложение может использовать для отмены регистрации уведомления. Чтобы отменить регистрацию уведомления, приложение передает это значение ключа методу IDXGIFactory2::UnregisterStereoStatus.

Состояние стерео может содержать следующие элементы:

  • Конфигурация пользователя.

    Пользователи Windows могут включать или отключать стереоэкран с помощью параметра "включить стереоскопический 3D" в разделе Изменение параметров дисплея панели управления.

  • Возможность компьютера и конфигурация, которая включает графический адаптер, графический драйвер и настройку монитора.

Пример Direct3D 11.1 Simple Stereo 3D показывает, как добавить стереоскопический трехмерный эффект и как реагировать на системные стерео изменения.

улучшения DXGI 1.2