Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DirectDraw, ограничить область прорисовки.... 
:(
    Опции темы
bass
Дата 25.12.2010, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Есть софтина которая выводит изображение через DirectDraw......... Пытаюсь пропихнуть через этот скрин свое окно.............
Что как то тяжко это дается есть какие нибудь драйвера фильтры которые могут запретить область прорисовки DirectDraw........
Впринцепи выкрутился так: перехватываю функцию флип (отображение) скрываю свое окно перед прорисовкой, а потом открываю....
Но мерцания ужасные..... Могу впринцепи любые функции перехватить этого приложения...... Но как DirectDraw заставить рисовать там где надо ??????? Может кто сталкивался при работе с DirectDraw...... Нужно протащить форму другую на поверхность....... smile  smile  smile  smile  Две недели уже морочусь......
PM MAIL   Вверх
BorisVorontsov
Дата 25.12.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



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


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
bass
Дата 25.12.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Спасиб буду ковырять....
PM MAIL   Вверх
bass
Дата 25.12.2010, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



А где найти описание????? smile  smile 
PM MAIL   Вверх
BorisVorontsov
Дата 31.12.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Описание чего именно? Если DirectDraw, то в Platform SDK


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
bass
Дата 3.1.2011, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Цитата(BorisVorontsov @ 31.12.2010,  16:52)
Описание чего именно? Если DirectDraw, то в Platform SDK

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


PM MAIL   Вверх
BorisVorontsov
Дата 5.1.2011, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



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

В WDK


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
bass
Дата 6.1.2011, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Чего то я почитал про этот драйвер , вообще нечего не понял....... Решил водить таким методом ... Перехватывать флип темболее это уже осуществлено........ И средствами гдай выводить на форму заднюю поверхность.... Чето првда с задней поверхности не могу скопировать.... В графике не силен  smile  smile 
PM MAIL   Вверх
bass
Дата 6.1.2011, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Код

           //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 секунд
Что за зверь этот директдрав.... Помогите плиз..... 
PM MAIL   Вверх
bass
Дата 10.1.2011, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Цитата(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 спасибо за помощь, но увы как то не пошло с этим драйвером..... Вернее я наверно плохо с сдк умею работать..... А вот отладчик это мое, реализую как смогу.......-))))) 
PM MAIL   Вверх
bass
Дата 24.1.2011, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Все вопрос решен перехватываю функцию блт директ драв и вывожу на первичную поверхность, также запрещаю функции блт прорисовывать на первичную поверхность все прекрасно работает......
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.