nvapi использование NvAPI_Stereo_SetDriverMode в d3d10

Сейчас пытаюсь настроить nvapi на работу в прямом режиме с помощью функции NvAPI_Stereo_SetDriverMode.

Согласно сайту Nvidia nvapi (в руководстве), если вы хотите реализовать Direct3D, вам необходимо инициализируйте nvpai, затем установите прямой режим, затем создайте устройство (d3d10device), а затем создайте стерео-дескриптор... (продолжение программы).

NvAPI_Initialize();
NvAPI_Stereo_SetDriverMode(g_StereoHandle , NVAPI_STEREO_DRIVER_MODE_DIRECT);
D3D10CreateDeviceAndSwapChain(...,pD3D10Device);
NvAPI_Stereo_CreateHandleFromIUnknown(pD3D10Device,&g_StereoHandle );
.....(the rest)

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

Когда я посмотрел файл заголовка, я обнаружил, что режим должен вызываться после того, как вы создадите дескриптор. Но когда я это сделал, он вернул NVAPI_INVALID_ARGUMENT (и снова я не могу установить активный глаз).

NvAPI_Initialize();
D3D10CreateDeviceAndSwapChain(...,pD3D10Device);
NvAPI_Stereo_CreateHandleFromIUnknown(pD3D10Device,&g_StereoHandle );
NvAPI_Stereo_SetDriverMode(g_StereoHandle , NVAPI_STEREO_DRIVER_MODE_DIRECT);
.....(the rest)

Кто-нибудь сталкивался с такой же проблемой?

Я пытался посмотреть примеры с nvapi в Интернете, но кажется, что это новое, а зона разработчиков nvidia не работает (из-за некоторых технических проблем).


person Alon Samuel    schedule 15.08.2012    source источник
comment
Вы когда-нибудь заставляли это работать?   -  person zezba9000    schedule 13.01.2016


Ответы (2)


Это странно.

  1. Способ, показанный на сайте NVidia (первый, который вы представили), у меня работает.
  2. SetDriverMode не принимает параметр дескриптора стерео (в отличие от скопированного вами кода).

может быть, кто-то добавил злобный #define в ваш код? :)

person MaMazav    schedule 20.11.2013

В случае, если кто-то ищет рабочий пример

NvAPI_STEREO_DRIVER_MODE_DIRECT

тогда вот ссылка на проект, который я нашел на github. Здесь пример демонстрирует инициализацию стерео перед устройством d3d и показывает использование рендеринга в каждом глазу с задним буфером. Что касается OP, первый метод должен работать, потому что DirectMode требует инициализации NVAPI и NvAPI_Stereo_SetDriverMode перед созданием устройства. Надеюсь, это поможет кому-то :)

person killer_mech    schedule 31.05.2018