Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как вывести картинку из буфера в DirectDraw?   Найти похожие ветки 

 
Nikki   (2008-02-28 14:06) [0]

Картинка хранится в буфере, есть указатель на нее и данные о ее параметрах. Самое главное, что она формата YUV. Нужно вывести серию таких картинок. Желательно еще использовать оверлей. Я использовала StretchDIBits, но он не работает с YUV 12-ти битным.
Ознакомившись с DD за пару дней в голове путанница, не знаю, с какого конца вообще начать. Есдинственная мысль сделать оверлейную поверхность и в ее структуру в lpSurface записать адрес моего буфера... Но как-то не работаить. Подскажите, пожалуйста, что можно сделать?


 
Sapersky   (2008-02-28 20:03) [1]

Проще всего отконвертировать в RGB и вывести стандартными средствами:

http://www.efg2.com/Lab/Graphics/Colors/YUV.htm

Единственное преимущество оверлея - аппаратное масштабирование, ну и то, что при поддержке нужного формата не нужно ничего конвертировать.

http://www.delphimaster.ru/articles/directx/index.html

В этом примере используются 16-битные UYVY/YUY2. Не знаю, есть ли карты с поддержкой 12-битного YUV; если это planar формат, в том виде, в каком это описано по первой ссылке - то вряд ли. Так что конвертировать, возможно, всё-таки придётся.
А аппаратное масштабирование можно при желании задействовать и с RGB.


 
Nikki   (2008-02-29 10:24) [2]

Спасибо!)


 
Sapersky   (2008-02-29 14:21) [3]

Не знаю, есть ли карты с поддержкой 12-битного YUV

Похоже что есть: Radeon 9000 и интегрированная на i915 выдают YV12 в списке FourCC-форматов (смотрел DXCapsViewer"ом из состава DX SDK).


 
Nikki   (2008-02-29 15:06) [4]

Карточка у меня поддерживает такой формат)
Просто я пыталась создать оверлей и указателю на его поверхность присвоить адрес своего буфера(это работает, но с обычными поверхностями),
но оверлейная, созданная в видеопамяти, не позволяет ставить себе флаги, вынуждающие учитывать эти параметры (что я использую указатель), к ней можно обращаться только залочив и пересылая биты какой-нить memcopy вроде, а это не очень удобно)



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
15-1264381741
Кто б сомневался
2010-01-25 04:09
2010.08.27
Пайкерит (прочный материал)


11-1218811980
Boguslaw
2008-08-15 18:53
2010.08.27
KOLOLEDB memory leak ?


2-1266718029
GoTo
2010-02-21 05:07
2010.08.27
Проблемы со сворачиванием вторичных окон в панель задач


4-1232054248
Vemer
2009-01-16 00:17
2010.08.27
Как программа может узнать о запуске хранителя экрана?


15-1265697833
12
2010-02-09 09:43
2010.08.27
Не будет ли так любезен сенсей дать скачать для offline познания?