| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Direct3D9 + DirectShow |
| Автор: Kesh 23.5.2006, 15:20 |
| Всем здрям... Вот возник такой вопрос... Пишу приложение, работающее с Direct3D9 но только в 2D... Т.е. использую полигоны, как спрайты... Не пинайте ногами, мне так удобнее... Так вот возник вопросец... Мне нужно, чтобы все спрацты располагались поверх фонового спрайта, а на фоновом спрайте в качестве текстуры проигрывался видеофайл... Видео очень хочется получать из DirectShow, ибо он проигрывает гораздо больше, чем просто VFW... Работать я хочу все это заставить так... Приложение работает само по себе... А в это время, в отдельном потоке средствами DirectShow готовятся текстуры для фонового спрайта, и по мере готовности подгружаются в основной цикл рендеринга... Подскажите, может кто знает, как это реализовать - загонять изображения, полученные DirectShow в Direct3DTexture9... Заранее спасибо... |
| Автор: p0s0l 23.5.2006, 16:00 | ||
| http://www.clootie.ru/delphi/download_custom.html Мотай там в самый низ ("DirectShow examples") На компе видяха допотопная, проверить не смог, но судя по описанию там есть, то что тебе нужно:
|
| Автор: Kesh 23.5.2006, 22:34 |
| p0s0l, а разобраться поможешь?.. |
| Автор: Kesh 24.5.2006, 18:46 |
Да вот и я про то же... |
| Автор: p0s0l 28.5.2006, 20:17 |
| Кстати, VMR9 может рендерить в IDirect3DSurface9... Можно задать одинаковые форматы сурфейса (через IVMRSurfaceAllocatorNotify9) и твоей текстуры, потом через LockRect перекидивать данные из сурфейса в 0-й уровень текстуры... Но интереснее следующее - судя по MSDN, для VMR9 можно задать свой собственный (Application-defined) Surface Allocator... Тогда в Allocator'е можно было бы создать D3D9-текстуру, получить у нее GetSurfaceLevel(0). После этого теоретически VMR9 должно рендерить в этот сурфейс... Правда теоретически Вобщем, советую порыть в направлении фильтра Video Mixing Renderer 9... |
| Автор: Kesh 29.5.2006, 13:05 |
| p0s0l, сдается мне, что в демках DSPack так и делается... Ладно... буду рыть дальше... Пока что-то не особо получается... |