|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2009, 18:17 | #1 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
BitBlt на контекст DC и его альтернатива
Здраствуйте уважаемые Делфисты! Не могли бы вы подсказать более быстрый метод Блиттинга на DC контрола. ТК пишу ассемблерную библу графики, но всё сошлось на тормозах ГДИ. гугл = 0! В душе понимаю, что скорее всего ДЦ закрыт и кроме BitBlt ничего нету, но возможна ли альтернатива? поделитесь опытом! заранее спасибо!!!
Последний раз редактировалось notHaker; 02.12.2009 в 10:54. |
01.12.2009, 22:21 | #2 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
01.12.2009, 22:37 | #3 |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
SetDIBitsToDevice() не намного, но быстрее. Хотя не знаю чем вас скорость не устроила. Просто при копировании битмапа (1024x768) на экран, у меня доходило до 300fps, хотя, различия в глубине цвета думаю могут повлиять.
Если нужен действительно быстрый вывод - то воспользуйся прямым доступом к видоепамяти через DirectDraw. На васме можешь примеры найти.
Сказал и загрустил от бесспорности своей правоты.
|
01.12.2009, 23:08 | #4 | |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
Да, нужно организовать поддержку GDI. НО. DirectDraw имеет посредственную поддержку GDI, так что функции AlphaBlend(и не только) "выносят" поверхность за пределы формы, а BitBlt - это дрянной побайтовый рендеринг.
Ну или хотя бы поскажите что сделать шоб при SetLayeredWindowAttributes поверхность DDraw не "слетала". Помогите плиз... Цитата:
Там у господина bo0h была примерно таже проблема, что и у меня. Лучшего я не нагуглил . Посоветуйте, поделитесь опытом, а нито я уже вспотел блин! Диплом стоит... заранее спасибо. Ну неужели никому дела до этого нет... Последний раз редактировалось notHaker; 02.12.2009 в 10:59. |
|
02.12.2009, 11:00 | #5 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
И исчо... "выровненные как по положению, так и по длине строк блоки памяти" - это как..? Я вабще ничего не понимаю... тугодум *ля...
|
02.12.2009, 14:25 | #6 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
1. Вам Windows не даст прямого доступа за просто так (имеется ввиду без драйверов и т.п.. в ring0) к видеопамяти что это может значит? 2. Видео память - а именно быстрый доступ дает вам такие вещи как DirectX, OpenGl и др. 3. Если уж беретесь за отрисовку через подобные либы то опять таки свести все к HDC 4. Имеяя HDC использовать нужные Вам Windows API - может вы не заметили, но обычно окна HWND и контексты отрисовки HDC во всех API основных, это все таки правило. Думаю сделаите выводы. А пытатся на прямую через DirectX рисовать и взаимодействовать сразу с API такие как Layered Windows тем более, не даст ничего хорошо. Самый оптимальный вариант, отрисовка в буфере (в памяти на HBITMAP + HDC + Scan0, вообщем DIB секция) и потом с использованием соотвествующего HDC вызывать API связанные с Layered Windows. p.s. а можете озвучить тему дипломного проекта ? А то просто мне тоже через пару лет писать |
|
02.12.2009, 14:35 | #7 | ||
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
Цитата:
вобщем вернулся туда, от куда начинал... ну серавно спасибо. И всё таки как насчёт вот этого : Цитата:
Последний раз редактировалось notHaker; 02.12.2009 в 17:18. |
||
03.12.2009, 01:04 | #8 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
ну господа модеры... откликнитесь пожалуйста...
эх... неужели тема быстрого блитинга никому не интересна? Последний раз редактировалось notHaker; 03.12.2009 в 12:59. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Контекст воспроизведения OpenGL | Gerzs | Мультимедиа в Delphi | 5 | 23.11.2009 11:33 |
Контекст воспроизведения OpenGL | Sergeevich | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 6 | 08.11.2009 21:50 |
Альтернатива StringGrid | SNUPY | Помощь студентам | 2 | 22.09.2009 10:21 |
неубиваемый вирус! все антивирусы не находят его! кто знает как его убрать? | Yury111 | Безопасность, Шифрование | 12 | 05.06.2009 11:19 |
Альтернатива sleep | Zuzlan | Общие вопросы Delphi | 2 | 01.11.2007 01:44 |