1 /*
2 Управление графикой VGA для DOS4GW
3 Модуль версии 1.0
4 Copyright (C) Алексей Волынсков, 1996
6 Copyright (C) Prikol Software 1996-1997
7 Copyright (C) Aleksey Volynskov 1996-1997
8 Copyright (C) <ARembo@gmail.com> 2011
10 This file is part of the Doom2D:Rembo project.
12 Doom2D:Rembo is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License version 2 as
14 published by the Free Software Foundation.
16 Doom2D:Rembo is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, see <http://www.gnu.org/licenses/> or
23 write to the Free Software Foundation, Inc.,
24 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 */
27 #ifdef __cplusplus
29 #endif
31 // заголовок изображения
32 #pragma pack(1)
38 // R-красный,G-зеленый,B-синий
42 #pragma pack()
44 // 256-и цветовая палитра VGA
47 // карта цветов
50 // тип функции перерисовки экрана
55 // переключение в режим VGA 320x200,256 цветов
56 // возвращает 0, если все о'кей
59 // переключение в текстовый режим
62 // ждать обратного хода луча развертки
65 // вывести картинку i в координатах (x,y)
68 // вывести спрайт i в координатах (x,y) при помощи функции f
69 // параметры: AL=цвет_точки_спрайта EDI=>экран
70 // !!! сохраняйте все регистры, кроме EAX
71 // !!! EDI должен быть переведен на точку вправо (INC EDI или STOSB)
77 // вывести спрайт i в координатах (x,y)
80 // вывести зеркально перевернутый спрайт i в координатах (x,y)
83 // вывести форму спрайта i в координатах (x,y) одним цветом c
84 // (подходит для рисования теней)
87 // вывести точку цвета c в координатах (x,y)
96 // очистить прямоугольник цветом c
97 // x-левая сторона,w-ширина,y-верх,h-высота
100 // получить текущую палитру в массив p
103 // установить палитру из массива p
106 // установить n цветов, начиная с f, из массива p
109 // заполнить палитру одним цветом (r,g,b)
112 // приблизить палитру p к цвету (r,g,b) на s/n
113 // полученная палитра находится в pal_tmp
116 // приблизить палитру p к палитре p2 на s/n
117 // полученная палитра находится в pal_tmp
120 // вывести перемасштабированный к размерам (sx,sy) спрайт i в координатах (x,y)
123 // установить область вывода
126 // установить адрес экранного буфера
127 // NULL - реальный экран
130 // скопировать прямоугольник на экран
135 // вывести символ c
138 // вывести строку s
141 // вычислить длину строки s (в точках)
144 // вычислить ширину символа c (в точках)
147 // начать анимацию a
150 // нарисовать кадр анимации
151 // возвращает номер кадра или 0, если конец
155 // полное описание функций RD_* см. в файле REDRAW.DOC
157 // инициализация экрана
160 // начать перерисовку экрана s при помощи функции f
163 // перерисовать прямоугольник
166 // перерисовать спрайт
170 // окончание перерисовки
174 // возвращает яркость цвета (r,g,b)
177 // начать поиск по палитре p, состоящей из n цветов, первый - f
180 // найти подходящий цвет
183 // переделать изображение i по карте цветов m
187 // загружает палитру p из файла f (VGAED 2.0)
188 // возвращает 0 при ошибке
191 // загружает изображение i из файла f (VGAED 2.0)
192 // возвращает NULL при ошибке
195 // загружает анимацию из файла f
196 // возвращает NULL при ошибке
199 // область вывода
202 // адрес экранного буфера
205 // временная палитра
208 // ждать ли обратного хода луча при установке палитры
209 // 0-нет, иначе-да
212 // координаты для вывода следующего символа
215 // расстояние между символами
218 // цвет символов
219 // если 0 - не используется
222 // шрифт
225 // виртуальный экран
236 #ifdef __cplusplus
237 }
238 #endif