Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> putpixel() тормоз 
:(
    Опции темы
oleg1973
Дата 12.7.2004, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



правилы быстрой работы с графикой (ну я сам сочинил : )
1) НИКОГДА не работать напрямую с видео памятью, читать из нее оооочень медленно, лучше рисовать все в буфере а птотом кидать в видеопамять
2) нафига сегменты? я так понимаю выше приведенный исходник взят с какогото древнего архива, где рассматривается 2 страницы по 0ffff кб и нестандартный видео режим
если режим 320*200*256 цветов то вся видео память находится с 0а000 и занимает 320*200=64000 байт (чуть меньше одного сегмента)
если есть желание получить разрешения типа 640*480 то нужно использовать VESA и порт 3с4 там будет вообще не приделах
проблема со страницами решается при помоши LFB или же переключением через int10 и функцию 4f05
ну а вот и сам putpixel для 320*200 к примеру, адаптируется на любой режим (256 цветный) заменой значений

proc putpixel,x,y,color
{
mov ax,0a000h
mov es,ax
mov ax,320
mov dx,y
mul dx
add ax,x
mov [es:ax],color
}

как уже говорил выше лучше все это делать в буфере
а потом делать

proc copy,buff,screen
{
mov si,buff
mov di,screen
mov cx,64000/4
repnz movsd
}


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
dima_mak
Дата 12.7.2004, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Цитата(cardinal @ 12.7.2004, 12:40)
v prinzipe vot tut chto-to estj
http://www.programmersheaven.com/zone10/cat458/15447.htm
no eto vse golovnaja bolj, luchshe posmotri eshe raz na putimage
http://www.vyomworld.com/source/code.asp?i...me%20in%20C/C++
dumaju aeto budet prosche

Я разобрался с путимэдж и сделал всё через него, но он тоже не очень успевает(правда несравнить с путпиксель, но тоже иногда блимкает)

А с пример с асм у меня не работает. Ты не знаешь где можно взять рабочий Путпиксель на асм и что бы его можно было в С засунуть.

Добавлено @ 13:36
Цитата(oleg1973 @ 12.7.2004, 12:58)
правилы быстрой работы с графикой (ну я сам сочинил : )
1) НИКОГДА не работать напрямую с видео памятью, читать из нее оооочень медленно, лучше рисовать все в буфере а птотом кидать в видеопамять
2) нафига сегменты? я так понимаю выше приведенный исходник взят с какогото древнего архива, где рассматривается 2 страницы по 0ffff кб и нестандартный видео режим
если режим 320*200*256 цветов то вся видео память находится с 0а000 и занимает 320*200=64000 байт (чуть меньше одного сегмента)
если есть желание получить разрешения типа 640*480 то нужно использовать VESA и порт 3с4 там будет вообще не приделах
проблема со страницами решается при помоши LFB или же переключением через int10 и функцию 4f05
ну а вот и сам putpixel для 320*200 к примеру, адаптируется на любой режим (256 цветный) заменой значений

proc putpixel,x,y,color
{
mov ax,0a000h
mov es,ax
mov ax,320
mov dx,y
mul dx
add ax,x
mov [es:ax],color
}

как уже говорил выше лучше все это делать в буфере
а потом делать

proc copy,buff,screen
{
mov si,buff
mov di,screen
mov cx,64000/4
repnz movsd
}

Не мог бы ты дать примерчик для разрешения 640*480 ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.