judelaw
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Aleksoid1978 Виснет увы твой вариант. Sync попроще будет, да и другое там все. EVR CP своими наворотами сильно требователен. То ли не успевает все, то ли накладка происходит с локами в многопоточности. Проверь мой вариант с анлок/лок выше. Всего две строки в коде, без всяких пауз и плеев. Один или два раза удалось только повесить. Он даже из пятисекундного ступора пытается выбраться, даже еще и синхронизироваться из патовой ситуации. Конечно если шейдерами и прочей лишней нагрузкой пригрузить плеерок, то будет виснуть чаще. Но пока вот гоняю, с внешними/встроенными фильтрами, шейдеров немного добавил, на разном контенте включая тяжелый интерлейс - перетаскивается окно хорошо, в полный экран хорошо, d3dfs нормально, не отвалилось, графики вроде нормальные. Проверь. Честно сказать, даже не знаю наверняка что эти Lock/Unlock делают Все блин на интуиции. Знаний не хватает осмыслить. Как я понял, плеер/рендер опрашивает драйвер каждые 2 сек не поменялся ли, а сверху ранее есть: if(m_WindowRect.right <= m_WindowRect.left || m_WindowRect.bottom <= m_WindowRect.top || m_NativeVideoSize.cx <= 0 || m_NativeVideoSize.cy <= 0 || !m_pVideoSurface) { то есть проверка не ушло ли окно на большую половину на второй экран, и если ушло то ресет. А виснет не всегда, почему спрашивается? А еще чуть выше лок рендерера. И тут у меня фантазии включились, вместо здравого смысла. А может я и прав. Пока что мой вариант мне нравится. Нужно чтоб ты его прокрутил хорошенько , может чуть по другому или еще где что не так. Ты кидай мне свои тесты, я буду проверять. Елки палки, уже утро почти . Завтра. | Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 05:04 05-04-2011 | Исправлено: judelaw, 05:35 05-04-2011 |
|