bprog.gif (6262 bytes)

13h.gif (2678 bytes)

 

      Эта страничка посвящена библиотеке 13h - работа с графическим режимом 13h (320*200*256) для языка программирования С/С++.
      Работа с графикой - самое больное место программы, особенно если графика в ней используется интенсивно. В первую очередь важны количество цветов, разрешение, скорость прорисовки и количество видео страниц. Конечно, разрешение 320*200 в наши дни хорошим не назовешь, но зато в данном режиме наибольшая скорость прорисовки графики, которая при достаточно оптимизированных алгоритмах построения графических приметивов дает просто потрясающий результат. А оптимизация алгоритмов в библиотеке произведена достаточно широко - все основные процедуры (рисование точки, линии, закраска области) написаны на ассемблере. К тому же 256 цветов обычно достаточно для программы любого плана.
      Далее будут рассмотрены:

Руководство пользователя
Техническая поддержка
Download (Скачивание)

Начало страницы


      Руководство пользователя.

      Ниже перечислены процедуры и функции библиотеки с описанием их работы.

void Init_13h() - инициализация графического ражима 13h (320*200*256)

void Init(unsigned r) - инициализация произвольного графического режима
r - номер режима

void Close_13h() - процедура закрытия графического режима 13h (или просто перехода в стандартный текстовый режим 80*25)

unsigned char Get(unsigned x,unsigned y) - цвет пиксела, заданного координатами
x, y - координаты пиксела

void Put(unsigned x,unsigned y,unsigned char color) - установка цвета пиксела
x, y - координаты пиксела
color - цвет пиксела

void Inv(unsigned x,unsigned y) - инвентирует цвет пиксела (устанавливает цвет 255-цвет_пиксела)
x, y - координаты пиксела

void Full_Scr( unsigned char color) - заливка экрана заданным цветом
color - цвет заливки

void Full_Rect(unsigned x1,unsigned y1,unsigned x2,unsigned y2,unsigned char color) - заливка прямоугольной области заданным цветом
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов прямоугольной области
color - цвет заливки

void InvFull_Rect(unsigned x1,unsigned y1,unsigned x2,unsigned y2) - инвертация цвета в заданной прямоугольной области
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов прямоугольной области

void SetAscAdr(void far* C) - установка указателя на матрицу шрифтов 8*8.В библиотеке есть стандартная матрица шрифта 8*8 в файле fon_8asc.h. Имя массива fon_8ascii. Файл с матрицей шрифта автоматически подключается к библиотеке и если у вас нет своей матрицы со шрифтами, то перед использованием текстовых функций библиотеки необходимо инициализировать матрицу шрифтов, переда указатель на нее в данную процедуру.
С - указатель на матрицу шрифтов 8*8

void OutCharXY(unsigned x,unsigned y,char asc,unsigned char color) - вывод символа
x, y - координаты вывода
asc - символ для вывода
color - цет символа

void OutTextXY(unsigned x,unsigned y,char *Text,unsigned char color) - вывод текстовой строки
x, y - координаты вывода
Text - текст для вывода
color - цет символа

void Line(unsigned X1,unsigned Y1,unsigned X2,unsigned Y2,unsigned char color) - рисование линии
x1, y1 - начальные координаты
x2. y2 - конечные координаты

void InvLine(unsigned X1,unsigned Y1,unsigned X2,unsigned Y2) - инвентирование цвета пикселов в линии
x1, y1 - начальные координаты
x2. y2 - конечные координаты

void Rectangle(unsigned X1,unsigned Y1,unsigned X2,unsigned Y2,unsigned char color) - рисование прямоугольника
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов прямоугольника
color - цвет прямоугольника

void InvRectangle(unsigned X1,unsigned Y1,unsigned X2,unsigned Y2) - инвертация пикселов прямоугольника
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов прямоугольника

void Circle(unsigned x1,unsigned y1,unsigned x2,unsigned y2,unsigned char color) - рисование элипса, вписывающегося в заданный прямоугольник. Если прямоугольник будет квадратом, то получется окружность
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов прямоугольника

void Fill(unsigned x,unsigned y,unsigned char color,unsigned char bck) - закраска области определенным цветом (все связанные между собой пикселы цвета bck перекрашивает в цвет color). Если в программе есть строка _LARGE_FILL до #include "13h.h", то при прорисовке проверяется 8 соседних пикселов, иначе - 4 соседних. процедура занимает очень много стека, так что если будут закрашиваться большие области рекомендуется увеличить размер стека.
x, y - координаты точки, принадлежащей области
color - цвет, которым будет закрашена область
bck - цвет пикселов в области

void Get_Image(unsigned x1,unsigned y1,unsigned x2,unsigned y2,void far* Buf) - копирование области экрана в буфер
x1, y1, x2, y2 - координаты верхнего левого и правого нижнего углов области
Buf - указатель на буфер

void Put_Image_Move(unsigned x,unsigned y,void far* Buf) - прорисовка изображения из буфера. Осуществляется копирование (замена пикселов экрана пикселами картинки буфера)
x, y - координаты верхнего правого угла картинки
Buf - указатель на буфер

void Put_Image_And(unsigned x,unsigned y,void far* Buf) - прорисовка изображения из буфера. Осуществляется с использованием операции AND
x, y - координаты верхнего правого угла картинки
Buf - указатель на буфер

void Put_Image_Or(unsigned x,unsigned y,void far* Buf) - прорисовка изображения из буфера. Осуществляется с использованием операции OR
x, y - координаты верхнего правого угла картинки
Buf - указатель на буфер

void Put_Image_Xor(unsigned x,unsigned y,void far* Buf) - прорисовка изображения из буфера. Осуществляется с использованием операции XOR
x, y - координаты верхнего правого угла картинки
Buf - указатель на буфер

void Put_Image_App(unsigned x,unsigned y,void far* Buf,unsigned char bck) - прорисовка изображения из буфера. При прорисовке пикселы изображения буфера с цветом bck пропускаются
x, y - координаты верхнего правого угла картинки
Buf - указатель на буфер
bck - цвет фона для картинки в буфере

unsigned Image_Size(unsigned x1,unsigned y1,unsigned x2,unsigned y2) - возвращает размер буфера, необходимого для хранения изображения заданной области экрана
x, y - координаты верхнего правого угла области

Начало страницы


      Техническая поддержка.

      На данный момент вы можете присылать свои вопросы и замечания, а так же предложения и отзывы по адресу il_mattheus@yahoo.com или il_mattheus@mail.ru. Если это что-то срочное, рекомендую начинать заголовок письма с знаков "!!!". В общем случае я обязуюсь рассмотреть вашу заявку не более, чем в 3-х дневный срок. Естейственно, вы должны оставить координаты обратной связи, если они отличны от адреса отправителя, по возможности как можно более кратко и четко описать суть проблемы и предпринятые вами шаги для ее устранения. Во избежание каких-либо недоразумений хотелось бы знать как, где и при каких обстаятельствах возникла проблема.
.

Начало страницы


      Download (Скачивание).

      Архив 13h.zip (5,5 kb)  


Библиотеки
13h | 3d | bgitext | bmpimage


Рубрики сайта
Страничка Ilmat | Новости | Программы | Игры | Программисту | Стихи | Ссылки | Об авторе
Основная страница

Hosted by uCoz