Просвирване на филмче през DirectShow в full screen

Всичко свързано с Microsoft DirectX. Въпроси относно HLSL.
roman
New User
New User
Мнения: 3
Регистриран на: 10 дек 2003 15:44
Контакти:

Просвирване на филмче през DirectShow в full screen

Мнение от roman » 21 сеп 2004 00:11

Имам следния проблем: опитвам се да покажа филмче (AVI) през DirectShow в главния прозорец на приложението. Когато е в прозорец всичко върви перфектно. Но в full screen не се вижда.
Пробвах да го показвам в child прозорец, но не става, главния прозорец скрива всички останали.
Опитах с windowless mode (на IVMRFilterConfig се задава SetRenderingMode( VMRMode_Windowless ) ) но резултата е същият: в прозорец върви, в full screen - не.

Ако някой се е сблъсквал с този проблем, моля дайте съвет как да го реша.

Ако не е достатъчно ясно, мога да сложа примерен код.

gemicha
Site Admin
Site Admin
Мнения: 2930
Регистриран на: 20 ное 2003 22:20
Местоположение: USA

Мнение от gemicha » 21 сеп 2004 00:45

Това е нещо, което при мен работи както трябва. Преработен от мен пример от Microsoft. Може да се използва за всякакви цели. Мисля, че ще се оправиш. Ако има проблем свържи се с мен по ICQ.

http://www.gamedev-bg.net/download/movie.zip

Вика се с engine::movie::PlayMovie(::GetModuleHandle(NULL), "intro.avi");

Някой от възможностите, като да изпълни фимчето без да има звук и разни други съм коментирал. Погледни код-а вътре се виждат тези неща.

roman
New User
New User
Мнения: 3
Регистриран на: 10 дек 2003 15:44
Контакти:

Мнение от roman » 23 сеп 2004 16:18

gemicha, Благодаря за кода. Разгледах и го пробвах, но за съжаление не свърши работа.

Проблема е следния: главния прозорец на играта (с DirectX) върви в full screen. За да няма превключване на видео режими трябва да изпълня филмчето в същия режим.

Когато се задава IVideoWindow::put_FullScreenMode(OATRUE) DirectShow превключва в режим на цял екран, но сменя видео режим с някой който той прецени за добре. И след края на филмето връща видео режима, но ако главния прозорец на играта е бил в full screen, той губи фокус и слиза в TaskBar и не може да се възстанови.

Пробвах 3 начина:
1. MCI API: създавам дъщерен прозорец на главния, и в него пускам филмчето
2. DirectShow в Window mode: взимам интерфейст IVideoWindow и задавам главния прозорец да е parent
3. DirectShow в Windowless mode: взимам интерфейс IID_IVMRWindowlessControl и задавам в кой прозорец да се рендрира филмчето

Всичките работят в когато играта върви в прозорец, но не работят когато е в full screen.

Изглежда главния прозорец в full screen се държи по-особено и не може нито да се направи дъщерен прозорец (дори диалог не може да се покаже), нито да се изобрази нещо отгоре ми. Не мога да намеря начин да се промени това поведение.

gemicha
Site Admin
Site Admin
Мнения: 2930
Регистриран на: 20 ное 2003 22:20
Местоположение: USA

Мнение от gemicha » 24 сеп 2004 08:28

т.е. имаш две приложения едното е играта а другото пуска филмчета ?

Потребителски аватар
haho
Power User
Power User
Мнения: 999
Регистриран на: 07 дек 2003 21:52
Местоположение: България
Контакти:

Мнение от haho » 15 юни 2007 15:02

Аз имах същия проблем. Превкючването между прозорците/режимите се оправи когато минах на Windowless mode. Обаче при Windowless mode ми върви бавно. В крайна сметка ти как се оправи с това?

zaphod
Power User
Power User
Мнения: 631
Регистриран на: 01 мар 2004 21:46
Местоположение: София

Мнение от zaphod » 15 юни 2007 18:18

абе да кажа как съм решавал подобен проблем, макар че подозирам няма да се хареса: рендвам филмчето върху текстура и рисувам на екрана правоъгълник с тая текстура. хубавото е че като натиснеш print screen картината остава в клипборда, а не само овърлей цвета :)
освен това същото решение може да се ползва за да се пусне филмче върху екран на телевизор в 3D сцената, или нещо подобно.

SuryIIID
Power User
Power User
Мнения: 431
Регистриран на: 01 яну 2004 21:03
Местоположение: София
Контакти:

Re: Просвирване на филмче през DirectShow в full screen

Мнение от SuryIIID » 15 дек 2008 23:16

Аз съм още по-краен. Имам нещо като филмов формат базиран на поредица JPG-та, които стриймвам. После като при зейфод. Още нямам зук, обаче :cry:

Отговори

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост