|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.07.2008, 22:06 | #1 |
Регистрация: 15.07.2008
Сообщений: 3
|
Быстрая графика (вопрос)
Здравствуйте!
Столкнулся с проблемой вывода пикселов на экран в Win32. Насколько я понимаю, это надо делать посредством ассемблера (чтобы побыстрей плюс прямой доступ к адаптеру). Перебрал много книг - везде речь идет о DOS, - и когда я вызываю основную функцию 10h, то Windows выдает ошибку. Варианты типа SetDIBits, BitBlt не подходят (хотя с ними все и работает), т.к. хотелось бы своими ручками делать расчет, буфферизацию, вывод точек и т.д... И с максимальной скоростью. Что можете подсказать?.. П.С.: хотелось бы знать как с этой проблемой справляется DirectDraw или OpenGL. Спасибо. |
15.07.2008, 22:41 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Windows не допускает прямое обращение к аппаратуре и к функциям БИОС/видео-БИОС. Вся работа осуществляется через драйверы устройств. DirectX или OpenGL всего лишь используют большую часть возможностей видеокарты, чем GDI. Работайте через стандартные функции GDI или DX/OGL, смотря, что именно нужно. Быстрее Вы уже не сделаете, даже на ассемблере.
|
15.07.2008, 23:36 | #3 |
Регистрация: 15.07.2008
Сообщений: 3
|
Просто дело в том, что через ГДИ - это 2 варианта: 1) CreateCompatibleBitmap, и 2) CreateDIBSection. В 1-ом варианте скорость BitBlt при копировании (на дисплей) с Bitmap высокая, но на сам Bitmap приходится дополнительно копировать точки из буфера, а это само по себе лишний перебор массива, который уменьшает скорость. А во 2-ом варианте этот третий буффер не нужен, и я работаю прямо с пикселями Bitmap'а, но в этом случае по необъяснимым мной причинам BitBlt работает в несколько раз медленней. В итоге палка о 2-ух концах. И оба конца не "в тему"...
Кстати насчет ДХ. Там вроде и оконный и полноэкранный режимы - и если даже в оконном он работает через ГДИ, то полноэкранный - вряд ли...? |
16.07.2008, 12:18 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
notnap, лучше всего займись DirectDraw (или вообще DirectX)! По-моему, быстрее чем через DirectDraw у тебя не получится.
самый главный вопрос зачем это надо? если от того, что просто захотелось, то лучше изучай DirectX - пригодится в жизни. Последний раз редактировалось rpy3uH; 16.07.2008 в 12:22. |
16.07.2008, 20:53 | #5 |
Регистрация: 15.07.2008
Сообщений: 3
|
А быстрей и не надо. Я хочу знать как работает с видоадаптером DirectDraw - и сделать тоже самое. Или, возможно, немного по-другому, более применительно к тому, что собираюсь на этой основе делать дальше. Не думаю, что создатели ДД сотворили нечто столь сложное, что прям разобраться невозможно...
|
16.07.2008, 22:18 | #6 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Цитата:
Это просто нереально, воспринимай как факт. ДиректХ общается с железом в обход виндовых систем, в этом и есть причина его быстродействия. Вряд ли простой смертный может написать аналог DirectDraw, в 1000 раз быстрее будет выучить DirectX API, зачем велосипед изобретать
пыщь
Последний раз редактировалось JTG; 16.07.2008 в 22:22. |
|
02.02.2009, 23:49 | #7 |
Новичок
Джуниор
Регистрация: 02.02.2009
Сообщений: 1
|
если хочешь знать как работает ДХ с аппаратурой, то надо найти стандарты драйверов поддерживаемых директом. потом получить прямой доступ к видеопамяти. и используя аппаратную поддержку совершать задуманное.
правда такой способ весьма трудоемкий: найти на русском эти стандарты нериал наверно, да и доступ ты врядли получишь, даже если перейдешь в 0 уровень. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
какая из трех сортировок (обменная,исчерпыванием,выбором) самая быстрая? | Cyberbest | Помощь студентам | 2 | 26.04.2008 10:34 |
Графика | V1rusPro | Общие вопросы .NET | 0 | 22.04.2008 08:25 |
графика | ben95 | Общие вопросы Delphi | 3 | 06.02.2008 22:24 |
возможна ли быстрая загрузка в WebBrowser? | furstenberg | Работа с сетью в Delphi | 10 | 09.01.2008 02:33 |