Войти
ПрограммированиеФорумГрафика

IDirect3DDevice9 без окна.

Страницы: 1 2 Следующая »
#0
12:57, 12 июня 2010

Необходимо сделать несколько плагинов для обработки видео, хотел воспользоваться D3D, но штатными методами работоспособный интерфейс без окна не создать. Собственно вопрос: есть ли какой нибудь хак, позволяющий инициализировать IDirect3DDevice9 и создать несколько RTarget-ов без создания окна?

Если нет, то придется юзать CUDA или OpenCL, что крайне не хотелось бы :)

#1
13:04, 12 июня 2010

destrator
Создай невидимое окно.

#2
13:41, 12 июня 2010

X512
>
> Создай невидимое окно.
Невидимое - это как? Для свернутого устройство не будет инициализировано. Есть еще какой-то способ скрыть окно, оставив его активным для устройства?

#3
14:12, 12 июня 2010

destrator
> Есть еще какой-то способ скрыть окно, оставив его активным для устройства?
Сдвинуть за пределы экрана.

Судя по документации нормального метода нет.

#4
14:18, 12 июня 2010

Для обработки видео надо юзать директшоу.

#5
15:12, 12 июня 2010

обедени winForms и DirectX и там с окном ты можеш делать что хочеш

#6
15:30, 12 июня 2010

X512
> Сдвинуть за пределы экрана.
Это не вариант.

keYMax
> Для обработки видео надо юзать директшоу.
В DShow есть один существенный недостаток - не поддерживаются вершинные и пиксельные шейдеры.

Chaos_Optima
> обедени winForms и DirectX и там с окном ты можеш делать что хочеш
Это managed, а у плагина native модель.

Судя по всему, придется юзать CUDA или OCL, писать свой рендерер или менять подход к реализации эффектов.

#7
15:41, 12 июня 2010

> Это managed, а у плагина native модель.
это неважно если используешь managed C++. он работает как с обычным С++ так и с managed

#8
15:48, 12 июня 2010

ShowWindow(hWnd, SW_HIDE);
не поможет?
ну или сделать окно без обрамления и размером 1х1, разве что на панели задач всёравно будет его видно (

#9
15:52, 12 июня 2010

destrator
> Невидимое - это как?
наверное имеется ввиду SetLayeredWindowAttributes()

#10
15:55, 12 июня 2010

Chaos_Optima
> это неважно если используешь managed C++. он работает как с обычным С++ так и с
> managed
И каким образом ты предлагаешь из managed сборки экспортировать функцию __declspec(dllexport) plugMainUnion __stdcall plugMain(DWORD functionCode, DWORD inputValue, DWORD instanceID), чтобы она появилать в таблице импорта.

Smouking
> ShowWindow(hWnd, SW_HIDE);
ничего не происходит
> ну или сделать окно без обрамления и размером 1х1, разве что на панели задач
> всёравно будет его видно (
И сей факт тоже будет неприятен :(
> SetLayeredWindowAttributes()
Тоже в панели задач видно, можно конечно спрятать в трей, но это все - полумеры. Решил остановиться на OCL, правда изучать его лень :(, но CUDA работает только с NV картами.

#11
16:06, 12 июня 2010

destrator
> Тоже в панели задач видно
Отображение на панели задач отключается(в Windows NT 5 по крайней мере).

#12
16:15, 12 июня 2010

X512
Все равно остаются неприятности, вроде смены фокуса окна во время загрузки. Хотелось бы обойтись без вообще окна, но это, судя по всему, не возможно.

P.S. А вообще это странно. Неужели так сложно было реализовать не отображаемый фрейм-буфер в видеопамяти. Особенно учитывая то, что технология это позволяет.

#13
16:22, 12 июня 2010

> И каким образом ты предлагаешь из managed сборки экспортировать функцию __declspec(dllexport) plugMainUnion
> __stdcall plugMain(DWORD functionCode, DWORD inputValue, DWORD instanceID), чтобы она появилать в таблице импорта.
ты пойми managed C++ и просто С++ это одно и тоже просто в Managed C++ добавили возможность использовать .net (всякие ref, ^, gcnew)
ты всё можеш делать как в С++.

#14
16:25, 12 июня 2010

destrator
> Неужели так сложно было реализовать не отображаемый фрейм-буфер в видеопамяти.
> Особенно учитывая то, что технология это позволяет.
Просто у разработчиков Direct3D руки кривые... OpenGL позволяет рисовать в bitmap.

Chaos_Optima
> managed C++ и просто С++ это одно и тоже
Уверен, что на системном уравне(не языка программирования!) всё тоже совместимо?

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.