Page 2 of 2

Posted: Fri Aug 26, 2005 11:56 am
by andrew_programmer
Я тоже эксперементировал с 61 функцией.Она у меня зарисовывала экран(НО НЕ ВЫХОДИЛА ЗА ЕГО ПРЕДЕЛЫ),а потом весело вырубала монитор так,что только перезагрузка и помогала.

А зачем нужно записывать каждый байт отдельно(я про red,green,blue),если можно просто подготовить изображение заранее,а потом перекинуть по 4 байта на пиксель.И еще,при адресации через регистр лучше использовать не регистр esi,а регистр eax(так быстрее).Но всеравно скорость вывода зависит от шины.У меня шина 133 Мгц и в режиме 800*600 сто кадров в секунду - и это еще минимум.А обладателям шины на 90 Мгц и менее вообще прописан режим 640*480,такчто ставте процессоры с шиной на несколько сотен мегагерц.
Чтобы на экране небыло миганий изображения,нужно иметь скорость обновления неменее 100 кадров в секунду(частота экрана равна 98 герцам) и выводить изображение нужно вовремя обратного хода луча кадровой развертки,чтобы пользователь не видел как отрисовывается изображение.А для определения момента обратного хода луча нужно читать из порта 0x3DA.Вот именно это у меня и не работает.
Команда mov edx,0x3DA
in al,dx
не работате - программа сразуже вылетает.43 функция работает только сom портами.
Так чтоже делать ?


Марат,я понимаю что такое рыться в коду menuet.Сам недавно пытался заменить все vesa1.2 режимы
на 256 цветные- когда сделал половину работы понял,что слишком много надо переделывать(отрисовку окон,кнопок)и забросил это дело - запутаться в этом коде можно.Где-то понятно написано,а где-то вообще не разберешься(особенно в 4-х битном режиме).

Posted: Wed Dec 07, 2005 2:45 pm
by DoomEd Archangel
andrew_programmer
с тебя - объяснение мне как строится изображение на цветности меньше 32х бит :)
при 4-х байтах на пиксель это вроде было типа [r][g][пустой]
плиз, подскажи в подобном виде для остальных режимов ;)

Posted: Wed Dec 07, 2005 3:04 pm
by mike.dld

Code: Select all

32: ????????BBBBBBBBGGGGGGGGRRRRRRRR
24:         BBBBBBBBGGGGGGGGRRRRRRRR
16:                 BBBBBGGGGGGRRRRR
15:                 ?BBBBBGGGGGRRRRR

Posted: Wed Dec 07, 2005 5:22 pm
by FreGL
вопрос может немного не в тему..
почему для функции 7 структура изображения RRGGBBRRGGBB т.е. три байта а не четыре?
во первых не очень удобно работать, а вторых можно было бы один байт использовать для уровня прозрачности (хотя до этого походу ещё далеко)

Posted: Wed Dec 07, 2005 6:44 pm
by andrew_programmer
DoomEd Archangel

Думаю mike.dld ответил на твой вопрос.Только можно еще добавит,что при 8 битах на пиксель цвет представляется ввиде: BBGGRR.


FreGL
Зачем нужен четвертый байт,если он не используется(в видео память пиксель записывается ка 4-х байтовый,но старшие 8 битов равны нулю).А три байта на пиксель потому,что это меньше занимает памяти.Вот сам прикинь,на 1/4 уменьшается размер используемой памяти.
Зачем отводить какието- то байты под прозрачность,нагружая и без того не сильную графическую систему.Что такое прозрачность?Это просто какие-то пиксели не отрисовываэтся и через получившееся "решето" видны пиксели другой картинки.А так как эти неотображаемые пиксели равномерно разбросаны по изображению,то создается эффект прозрачности.

Posted: Wed Dec 07, 2005 7:14 pm
by DoomEd Archangel
бочку пива всем!
кстати не сочтите меня за .... но я про 15 ти битный режим вообще не слыхивал %) а он в МеОС реализован???

Posted: Wed Dec 07, 2005 8:02 pm
by andrew_programmer
Реализованы режимы:32,8,4 бита на пиксель.

Posted: Wed Dec 07, 2005 8:15 pm
by mike.dld
В обычной версии (как сказал andrew_programmer) - 32, 24, 8 (320х200), 4 (640х480)
В gfx_kernel - 32, 24, 16, 15, 8, 4 (640х480)

Posted: Wed Dec 07, 2005 9:50 pm
by andrew_programmer
gfx_kernel это и есть новая видео подсистема о которой неоднократно говорил Марат ?
Если так,то это хорошо.Я давно подумывал,что 256 цветные режимы(различного разрешения) неплохобы использовать в играх(в 4 раза меньше расходуется ресурсов,чем при 32-х битном цвете при одном и том-же fps).

Posted: Wed Dec 07, 2005 10:25 pm
by DoomEd Archangel
гыг... есть ли возможность насильпо поставить 16 ти битный режим?
а то определяется как 32х битный и никак не провериш в других...

Posted: Wed Dec 07, 2005 11:06 pm
by andrew_programmer
Я вот толькочто испытывал этот gfx_kernel(скачал с сайта майка.длд) в 16 битном режиме.Покачто вывод текста неработает,поэтому о какомто увеличении скорости трудно сказать(fps не пишет).

Posted: Wed Dec 07, 2005 11:14 pm
by DoomEd Archangel
сори, предыдущее сообщение написал необдуманно :)

Posted: Wed Dec 07, 2005 11:24 pm
by mike.dld
andrew_programmer
Поподробнее, пожалуйста: что значит "вывод текста неработает"??? вообще нигде текст не выводится?

Posted: Thu Dec 08, 2005 12:56 am
by andrew_programmer
Извиняюсь.
.Я использовал загрузчик Колибри 5.20.С загрузчиком 5.10 шрифт работает нормально.
Судя по моим тестам,в 16-ти битном режиме скорость графики увеличилась на 30% посравнению с 32-х битным(это на celeron2000,256 mb RAM(266Mhz),шина на 400 Mhz,GeForce4).Это радует!

Posted: Sat Dec 10, 2005 2:24 pm
by Mario79
andrew_programmer
Зато в К0520 скорость вывода текста на 30-50% выше, если её совместить с улучшенной видео подсистемой, то прикинь скорость как увеличиться.

DoomEd Archangel
Самая простая демонстрация 15 битового режим, это когда в Винде устанавливаешь валпапер с помощью ACD Sea, но при этом должен быть установлен режим 16 бит для видеокарты. Памяти меньше жрет, однако.