Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > DirectDraw


Автор: bass 25.12.2010, 00:07
Есть софтина которая выводит изображение через DirectDraw......... Пытаюсь пропихнуть через этот скрин свое окно.............
Что как то тяжко это дается есть какие нибудь драйвера фильтры которые могут запретить область прорисовки DirectDraw........
Впринцепи выкрутился так: перехватываю функцию флип (отображение) скрываю свое окно перед прорисовкой, а потом открываю....
Но мерцания ужасные..... Могу впринцепи любые функции перехватить этого приложения...... Но как DirectDraw заставить рисовать там где надо ??????? Может кто сталкивался при работе с DirectDraw...... Нужно протащить форму другую на поверхность....... smile  smile  smile  smile  Две недели уже морочусь......

Автор: BorisVorontsov 25.12.2010, 11:23
DirectDraw рендерер рисует на окне, с которым ассоциирован интерфейс IVideoWindow. Драйвер есть, прямо в Windows DevKit. Зовется AVStream Filter-Centric Simulated Capture Driver

Автор: bass 25.12.2010, 14:30
Спасиб буду ковырять....

Автор: bass 25.12.2010, 21:11
А где найти описание????? smile  smile 

Автор: BorisVorontsov 31.12.2010, 16:52
Описание чего именно? Если DirectDraw, то в http://www.microsoft.com/downloads/en/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en

Автор: bass 3.1.2011, 18:01
Цитата(BorisVorontsov @ 31.12.2010,  16:52)
Описание чего именно? Если DirectDraw, то в http://www.microsoft.com/downloads/en/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en

AVStream Filter-Centric Simulated Capture Driver Вот этого зверя хотя бы примерчик найти smile  smile  smile .


Автор: BorisVorontsov 5.1.2011, 02:29
Цитата(bass @  3.1.2011,  18:01 Найти цитируемый пост)
Вот этого зверя хотя бы примерчик найти 

В http://www.microsoft.com/whdc/driver/wdk/

Автор: bass 6.1.2011, 16:29
Чего то я почитал про этот драйвер , вообще нечего не понял....... Решил водить таким методом ... Перехватывать флип темболее это уже осуществлено........ И средствами гдай выводить на форму заднюю поверхность.... Чето првда с задней поверхности не могу скопировать.... В графике не силен  smile  smile 

Автор: bass 6.1.2011, 17:36
Код

           //ddrval = lpDDSPrimary->Flip(lpDDSBack, 0 );

           lpDDSBack->GetDC(&hdc);
           hdc2 = GetDC(Form1->Handle);


           BitBlt(hdc2,10,10,100,100,hdc,100,100,SRCCOPY);
           lpDDSBack->ReleaseDC(&hdc);


 lpDDSBack указатель на заднюю поверхность

если раскоменчиваю флип все прорисовываеться.... А так черный квадрат копирует хотя при флипе текст smile  smile  smile

Добавлено через 3 минуты и 26 секунд
Что за зверь этот директдрав.... Помогите плиз..... 

Автор: bass 10.1.2011, 23:36
Цитата(bass @ 6.1.2011,  17:36)
Код

           //ddrval = lpDDSPrimary->Flip(lpDDSBack, 0 );

           lpDDSBack->GetDC(&hdc);
           hdc2 = GetDC(Form1->Handle);


           BitBlt(hdc2,10,10,100,100,hdc,100,100,SRCCOPY);
           lpDDSBack->ReleaseDC(&hdc);


 lpDDSBack указатель на заднюю поверхность

если раскоменчиваю флип все прорисовываеться.... А так черный квадрат копирует хотя при флипе текст smile  smile  smile

Добавлено @ 17:40
Что за зверь этот директдрав.... Помогите плиз.....

Разобрался в чем проблема ........ Все из-за разрешения экрана........ Ставлю разрешение 640х480 а ноутбука экран вытянутый ... И проблема с координатами...... Щас буду ковырять а так код рабочий...... Спасибо всем кто откликнулся..... BorisVorontsov спасибо за помощь, но увы как то не пошло с этим драйвером..... Вернее я наверно плохо с сдк умею работать..... А вот отладчик это мое, реализую как смогу.......-))))) 

Автор: bass 24.1.2011, 02:41
Все вопрос решен перехватываю функцию блт директ драв и вывожу на первичную поверхность, также запрещаю функции блт прорисовывать на первичную поверхность все прекрасно работает......

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)