judelaw
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Aleksoid1978 Цитата: Ничего не отлично. Виснет сразу. После m_pGraphThread->PostThreadMessage(CGraphThread::TM_RESET, 0, (LPARAM)&e); делать e.Wait(); не нужно. V0lt Цитата: что конкретно делает строка m_pGraphThread->PostThreadMessage(CGraphThread::TM_RESET, 0, (LPARAM)&e); ? | Именно статья наMSDN натолкнула меня несколько дней назад на идею рисетнуть. Вот еще ссылка погуглив: http://www.gamedev.ru/code/forum/?id=80195. И я так понимаю, в нашем случае IDirect3DDevice9::TestCooperativeLevel возвращает НЕ D3DERR_DEVICELOST а D3DERR_DEVICENOTRESET. Это как раз нам на руку, иначе получили бы вечный LOST. Но проблема остается в другом: После RESET и CLOSE мы не можем выгрузить некоторые внешние объекты, такие как внешние фильтры, подключенные через файл и получаем вместо закрытия файла - закрытие плеера, да не простое, а с ошибкой (видимой или нет). После такого закрытия ловим баг, когда ссстему перемыкает и баг исчезает до перезагрузки. Цитата: не нравиться мне это. вслепую действуем. | Ничего подозрительного не увидел. Возможно выгрузились внешние объекты уже до вызова процедуры UnloadExternalObjects();. Может рисет их убивает до. Но согласен, убрав UnloadExternalObjects(); - это пока костыль. Нужно искать в коде специфику построения графа с внешними фильтрами подключенными через файл и отличия этого графа от построения графа с внешними зарегистрированными в системе фильтрами. Добавлено: MILES Цитата: наконец MADVR , начал понимать субтитры без танцев с бубном. | Да, отлично. Почему только он выкинул из кода D3DFS для MadVR? Тебе удалось запустить с MadVR Exclusive Mode ? | Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 12:43 20-03-2011 | Исправлено: judelaw, 13:10 20-03-2011 |
|