IPB
ЛогинПароль:

> Паскаль, работа с видеопамятью напрямую в режиме VGAHi
сообщение
Сообщение #1


Оператор реальности
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской

Репутация: -  0  +


Пишу в этом разделе, т.к. графика (и моя трабла) очень близка именно к играм smile.gif


Собственно что мне надо - есть какая-то картинка (спрайт или т.п.), скажем 200x210.
Ее треба перемещать на экране по заданной траектории (не важно какой именно).

Проблема в том, что нужно устранить мерцание при движении спрайта (/фигуры)...

Что пробовал:
1. Стандартные фишки типа Getimage/putimage XOR'ом для рисования и стирания
2. Смена видеостраниц (двойная буферизация, тратата..) - что-то не очень-то помогает.
К тому же мне хотелось бы использовать режим 640x480 - а это VGAHi и у него только 1 видеостраница.
3. Синхронизация с обратным ходом лучей - нечто мистическое (думается для CRT моников самое то), но у меня LCD и ускорения или устранения мерцания таким вот образом я не наблюдаю no1.gif
4. Нашел в инете статейки со вставками на асме и т.п. - асм юзать не хочется, т.к. в нем ничерта не понимаю smile.gif
Из более-менее схожего - есть обращение к видеопамяти напрямую - $A000:$0000 - начиная отсюда и далее.

Дык вот, внимание, сам вопрос (барабанная дробь):

Как в этом самом режиме VGAHi 640x480@16 устроена эта самая видеопамять? wacko.gif
Т.е. как она представлена в памяти?
16 цветов - это типа полбайта на пиксель чтоли? wacko.gif unsure.gif

В общем хелп ми smile.gif




P.S.: Можно ли в каких-нибудь настройках форума сделать так, чтобы все сообщения в теме выводились полностью, а не по одному и с деревом снизу - как-то непривычно... sad.gif

Сообщение отредактировано: Turboworld -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Turboworld @ 5.03.2007 4:58) *

Как в этом самом режиме VGAHi 640x480@16 устроена эта самая видеопамять? wacko.gif
Т.е. как она представлена в памяти?
16 цветов - это типа полбайта на пиксель чтоли? wacko.gif unsure.gif

С одной стороны да, по 4 бита. Но если просто писать и читать из памяти - изображение получится черно-белое. Если мне не изменяет память (а это легко проверить при желании), запись одного байта отображает 8 точек. Для того чтобы получить цвет нужно через порты видеокарты менять текущий слой для отображения (их как раз 4). Т.е. выбираешь по очереди слои и пишешь по одному и тому же адресу данные.. Немного сложновато, но зато можно получить интересный эффект получпрозрачного наложения друг на друга разных ихображений smile.gif
Т.е. получается такой пирог из слоев, например при записи:
слой данные
1: 10101010
2: 00000001
3: 10000001
4: 01010101

поучится полоска с цветами А 1 8 1 8 1 7..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 22:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name