Модуль Graph в TMT

http://pascal.sources.ru/tmt/doc/graph.htm. Загляните, посмотрите. Там все подробно.

Основные отличия от родственного 16-битного Graph'a.

Инициализация графики

Вместо InitGraph делаем так: SetSVGAMode(XRes, YRes, BPP, VMode: Word)

xRes и yRes - разрешение экрана, варируется от 640х480 до 1600х1200. BPP - глубина цвета, т.е. 2 в BPP степени цветов у вас будет VMode может принимать следующие значения в дипазоне [1..3]:

  Константа   Значение   Пояснение
  LFBorBanked 0          Установить режим LFB или с переключением банков
  BankedOnly  1          Установить режим только с переключением банков
  LFBOnly     2          Установить только LFB режим

Выход делается любимым GloseGraph.

Количество цветов

А теперь вспомним, что количество поддерживаемых цветов уже не 256! [:)] Это влияет не только на тип номера цвета. По этому поводу очень полезны подпрограмки RGBColor(R, G, B: Byte) , которая по компонентам RGB заданного цвета возвращает его номер, и AnalizeRGB (Color: Dword; var R,G,B: Byte) , которая делает противоположное, т.е. по номеру цвета возвращает его RGB составляющие.

Работа со страницами

в ТМТ появилась такая процедура - SetVirtualMode(var p:pointer) которая перенаправляет весь вывод на экран (при установленном граф.режиме) в буфер памяти, размер которого - одно окно (getpagesize), этот буфер предварительно нужно выделить getmem'ом. После ее вызова изображение на экране обновляться не будет до вызова fliptoscreen(p), где p - переменная, содержащая экран (либо та, которая была использована в вызове setvirtualmode, либо еще какая-нибудь такого же размера, в которую был загружен образ экрана откуда-то еще). Возврат к нормальному режиму - SetNormalMode. Также есть процедура снятия скриншота - FlipToMemory(p).

 
pascal/tmt-graph.txt · Последние изменения: 2006/05/14 13:26 (внешнее изменение)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki