Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DirectDraw и оконный режим

534
06 апреля 2006 года
HarryAxe
448 / / 19.01.2006
Как известно, DirectDraw в оконном режиме не поддерживает множественную буферизацию. Поэтому, при рендере, на экране невооружённым глазом хорошо виден процесс блиттинга даже на моей машине с Radeon X800 (даже без использования цветовых ключей при частоте 20 fps отрисовка идёт полосами), а целевые машины, вполне возможно, не будут даже иметь аппаратной поддержки оверлеев. К тому же, я не могу использовать BltFast, поскольку растр необходимо масштабировать (впрочем, преимущество от использования BltFast вместо Blt составляет менее десяти процентов). Причём процесс блиттинга виден даже при копировании всего одной поверхности (я копирую все поверхности на одну, а затем переношу уже её на основной буффер без цветовых ключей, прозрачности и каких бы то ни было эффектов). Всвязи с этим вопрос: как ускорить блиттинг, ведь в полноэкранных приложениях растр 640x480x16, даже при использовании единственного буффера, копируется почти незаметно для глаза. Более того, вплоть до седьмой версии Direct3D был реализован через DirectDraw, и при том неплохо работал в окне. С другой стороны, в моей программе растр нехилый: 400x300x32, и использовать палетовые изображения я не могу, нужна именно high-res картинка с использованием полупрозрачности (повторяю, непосредственно рендер происходит без эффектов, так что дело не в сложности вычислений), пробовал понизить глубину цвета основной поверхности до 16, но всё равно рендер идёт медленно (хотя и укладывается в 50 мс).
В общем, подскажите, как повысить скорость блиттинга, или найти какую-нибудь замену двойной буфферизации в оконных приложениях?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог