NewsProductsSprinterSupportDownloadSprinter ForumAbout usLinksSite map Russian site

Russian
   >> Общие вопросы
Thread views: 483 View all threadsNext thread*Threaded Mode

Pages in this thread: 1 | 2 | 3 | (show all)
Mvg
(journeyman)
2002/10/26 10:27
Тех. вопросы new [re: Denis Parinov]Reply to this post

Здравствуйте.

Существуют - ли для Спринтера стандартные библиотеки для работы с графикой. (но не биос, дюже тормозонй). Самому написать не трудно, но очень не хочется изобретать велосипед. т.е. хочется использовать "стандартный" и "общепринятый" способ обращения к видеопамяти (желательно с исхонником).
нужны putpixel и getpixel (кто паскаль знает, тот поймет)
Как для 16, так и для 256 цветов. Жду ответа.

С Уважением Сергей.




Anton Enin
(member)
2002/10/30 04:09
Re: Тех. вопросы new [re: Mvg]Reply to this post

если ты не хочешь, чтобы твоя программа превратилась в слайдшоу, не думай о таких вещах как <putpixel> и <getpixel>... думай о групповых операциях с экраном и с использованием акселератора.... :)
можешь посмотреть исходники моих мини-демок: flames и 256color... они были опубликованы на сайте... в них можно что-нибудь найти по этой теме...



Anonymous
(Unregistered)
2002/10/30 22:35
Re: Тех. вопросы new [re: Anton Enin]Reply to this post

Здравствуйте.

>>если ты не хочешь, чтобы твоя программа превратилась в слайдшоу, не думай о таких вещах как <putpixel> и <getpixel>... думай о групповых операциях с экраном и с использованием акселератора....

Не думаю, что при помощи акселератора можно как-либо ускорить процесс работы с гаф. примитивами. (например вычерчиваниеепроизвольных линий). А на счет можности..... именно тормоза вины подстегнули развитие выч. мощностей на пэцэ.
Так есть стандартые способы?
С Уважением Сергей.




Denis ParinovVIP
(Sprinter Team)
2002/10/31 00:54
Re: Тех. вопросы new [re: Mvg]Reply to this post

> Существуют - ли для Спринтера стандартные библиотеки для работы с
графикой. (но не биос, дюже тормозонй).
> Самому написать не трудно, но очень не хочется изобретать велосипед.
т.е. хочется использовать "стандартный" и "общепринятый" способ обращения к
видеопамяти (желательно с исхонником). нужны putpixel и getpixel (кто
паскаль знает, тот поймет)

Существует некоторый набор исходников, к сожалению не оформленный для
публикации. Мы будем над этим работать, но библиотек на все случаи жизни
пока нет.
Насчет putpixel / get pixel. Вот пример который я публиковал на форуме:


Например, если вам нужно поставить точку на экране, то подпрограмма
длярежима
81h будет выглядеть так:

; HL - горизонтальная координата
; DE - вертикальная координата

IN A,(0E2h) ;считать из порта номер страницы подключенной в
;третье окно памяти
LD C,A ;запомнить в регистре C
LD A,50h ;страница видео памяти
OUT (0E2h),A ;подключение видео памяти
LD A,E ;поместить вертикальную координату в регистр A.
OUT (89h),A ;выдать в порт
LD DE,0C000h ;адрес начала третьего окна памяти
ADD HL,DE ;получить адрес точки (адрес начала окна +
;горизонтальная координата)
LD A,255 ;цвет выводимой точки (от 0 до 255)
LD (HL),A ;вывод точки на экран
LD A,C ;вспомнить номер страницы памяти
OUT (0E2h) ;подключить страницу памяти вместо страницы видео
;памяти


для чтения соответственно надо поменять LD (HL),A на LD A,(HL).




Anton Enin
(member)
2002/10/31 03:19
Re: Тех. вопросы new [re: Anonymous]Reply to this post

т.е. ты хочешь повторить винды и пц?... :)
вызывать библиотечные функции для таких вещей нецелесообразно... в примере Дениса приведен прототип
библиотечной функции... но для быстрого рисования приметивов 100 тактовая точка - это слишком медленно... поэтому такие функции как putpixel/getpixel должны быть интегрированы в отрисовщик приметивов...

например:

..
инициализация vram
...
main_loop:
... ; hl - x coord a - y coord c - col
out (YPORT),a
set 6,h ; если vram подключена с 4000
ld (hl), a ; put pixel
...
end_main_loop

деинициализация vram




Shaos
(enthusiast)
2002/10/31 07:58
Re: Тех. вопросы new [re: Anonymous]Reply to this post

> Не думаю, что при помощи акселератора можно как-либо ускорить
> процесс работы с гаф. примитивами. (например вычерчиваниеепроизвольных линий).

Зачем тебе произвольные линии в гуе???
Акселератор покрывает все возможности гуя. Он может в частности следующее:
- быстрое заполнение горизонтального отрезка длиной до 256 точек одним цветом (в режиме 640x256 - до 512 точек)
- быстрое заполнение вертикального отрезка одним цветом
- быстрое копирование горизонтального отрезка длиной до 256 точек (в режиме 640x256 - до 512 точек)
- быстрое копирование вертикального отрезка
А из этого всего следует заполнение-копирование прямоугольников, вывод шрифтов, примитивов и т.д.

Достаточно сказать, что символы в FN выводятся почти мгновенно именно засчет акселератора, если ты все будешь делать путпикселами, то ты просто отпугнешь юзеров неимоверными тормозами :)


Alexander Shabarshin (shaos@mail.ru)
NedoPC Project

Anonymous
(Unregistered)
2003/03/01 10:44
Re: Тех. вопросы new [re: Anton Enin]Reply to this post

а как сделать
..
>>инициализация vram
...
и

>>деинициализация vram




Alex_GoryachevAdministrator
(Sprinter Team)
2003/03/01 11:25
Re: Тех. вопросы new [re: Anonymous]Reply to this post

Возможно, пригодится пример из href=http://www.petersplus.com/download/sources/aprint.zip> исходников
Антона Енина, опубликованных на сайте


; set requist video mode 640x256x16
SetVideoMode:
ld c, 0x51 ; save previos vmode
rst 0x10
ld (vmode + 1), a
ld a, b
ld (vscrn + 1), a
sub a
call CrearVideoRam
ld bc, 0x0050 ; set 640x256x16
ld a, 0x82
rst 0x10
ld hl, CustomPalette
ld de, 0x1000
ld bc, 0xFFA4
sub a
rst 0x08 ; load palette
ret





; restore previos video mode
ResVideoMode:
sub a
call CrearVideoRam
vscrn: ld b, 0x00
vmode: ld a, 0x00
ld c, 0x50
rst 0x10 ; set previos vmode
ret


---
PETERS PLUS LTD

Anonymous
(Unregistered)
2003/03/02 17:12
Re: Тех. вопросы new [re: Anonymous]Reply to this post



Хотелось - бы побольше узнать об акселераторе (функции, коды управлкеия (поподробнее), ограничения к применению и пр.).
А то дюже графика тормозит ...






Alex_GoryachevAdministrator
(Sprinter Team)
2003/03/03 16:51
Re: Тех. вопросы new [re: Anonymous]Reply to this post

Посмотрите здесь .

---
PETERS PLUS LTD


Pages in this thread: 1 | 2 | 3 | (show all)
View all threadsNext thread*Threaded Mode
Jump to