Jay Link �� ������: ���� ����� �������� ����� �������� ���, �� ����� � �. ����������, ��. ��������. ������ Linux, �� ���������� �������� �� ����� � ��������. �������� ��������������� InterLink BBS (�������������� Internet-���������). � ����� ������ ����� ���������� �������� �����, ����� ������ ������ �� ������. |
����
�� ����� ������� ����������� ����� ��� ���������� ���������� ��� Linux,
�� ������ ���������� ������. ���������� SVGAlib �������� ���������� ��������
�������� ����������� ����������, ��� ����� ����� ������, ����������� X
Window System. ���� ������������ ������� ���������������� �� C ����������
��� ������������� SVGAlib!
���� ��������� ��������� �������� �������� �� C.
����, SVGAlib �������� ����������� ������� ������� � ������������ � ������ �. ���� C ��� �� ����, ����� �������� ������ � "��������� ������". ��� ������� � ���, ��� ����������� ������� ���������� � �� ����� ������������ � ����� ������������ ��������� �� ������. ����������� ������������ � �������, ��������� ��� ����� ������������ ������� ������ ���� ��������� ����������, ���� �� ������, ����� ���� ��������� �������� � ������ ������������ �����. ��������, ����������� ��������� ��� DOS ��� Windows �� ����� �������������� ��� Linux'��.
��� ������ � �������� � ����� Linux ���������� ������������ ����� �������
�������, ���������� ������������� ��� Linux. SVGAlib � �������� ����� �������.
|
��� ������������� ������� SVGAlib, ������ �� �����. SVGAlib - ��� ������ ���������� �������, ���������� �� C-�������� (���������� ���� ������ ����������� ������������� � ��������� /lib � /usr/lib). ���� ���������� SVGAlib ����������� ���������, ����� �� � ��� �� ������������. � ������� SVGAlib �� ��������� ����������� �� ��������� ����������� ���������, �.�. � ������ ��������� �� ������ ��������� ����������� ����������, � �� ����� ��� ������ ����� �������� � ������� ��������� ������.
� ��� ��, �������� �� ��������� �������� ���������� SVGAlib ��������� ������� � ����� ��������� ���������� � �� ������������� ���������� �� ������ ���������.
#include <stdio.h> #include <vga.h> int main(void) { vga_init(); vga_setmode(5); vga_setcolor(4); vga_drawpixel(10,10); sleep(5); vga_setmode(0); exit(0); }
��������� ������ �� ������ ����� (������) �������� �����. ����� ���� ������ ������� ����������� � ������� ��������� ����� � ��������� �����������.
�������� �������� �� ������ ��������: vga_init(). � ��� ������� ��������� �������� ������ root (���� ���������� ��������������� ���) � �������������� ���������� SVGAlib. ��������� ������ �������� ������� vga_setmode(5), �.�. ��������������� 5-� ����� VGA �������� (320x200x256). � ���� ������ ����������� ����� ������ ����� ������� 320 ����� (��������) �� ����������� � 200 ����� �� ��������� � �������� ������ � 256 ������. � �������� ������������ ����� ������������ ����� vga_setmode(G320x200x256). ��� ������ ���� ������� ������������. ��������� �������: vga_setcolor(4), ������������� � �������� �������� ����� ������� ����. ����� ������������ ����� �������� � ��������� �� 0 �� 255. ��������� ������� ��������� ������������� �������� ���������� ������, �� � ������ ������� �� ����� ������������ ����. �, �������, �������: vga_drawpixel(10,10) ������ ������� ����� � ������� ������ 10, 10. �� ����� ���� ��� ������������ ����� ������ �� ����� ������� � ����, �� ������� ������� ������. ������ ������������, � �� �������, �.�. ������ ��������� ���������� � ����. ����� � ������������ 0,0 ������������� ������� ����� ������� ������. ������� vga_setmode(0) ���������� VGA ������� � ��������� ����� (������ - vga_setmode(text)). �������, ��� ��� ���������� ��������� ������ ���������� ��������������� ��������� �����. � ��������� ������ � ��� ����� ��������.
��� ���������� ��������� ����������� gcc. ��� ���� ���������� �������, ��� ����� �������������� ���������� SVGAlib (������� �����������: -lvga ). � ���������� �������������� ��������� ��� ��� ������ �������: -O3 , ��� ������ ������� �����������. ��������� ������ ���������� ����� ��������� ��� (��������������, ��� �������� ����� ��������� ��������� � ����� sample.c):
gcc -O3 -o sample sample.c -lvga����� ��������� ����� ��������� ������� ������������, ���������� ���������� ��� ����� ������������:
chmod u+s sample� ������ �������� ���������:
sample <��� ��� ��������� �� ������ ������>������ �������� ������� SVGAlib �������� � man-�����������. �� �� ����� ������������� �� ��������. ������ ����� ���������� ��� ���� ������, � ������� ������������ ������������ ������� SVGAlib - vgagl.
����������� "man vgagl", � �� �������, ��� vgagl ��� "����������� ���������� �� ���� SVGAlib, ������� ������� �������� �� ������ ������� ������ VGA ��������. ��� �������� ������ ���������". � ����� ������� ���� ���������� �������� ����� �������� �������������, �������� �������� ����������� ��������� �������� ��� ������ ������ ����� �������.
��������� ������ ���������� ������� ���������� vgagl. � ���������� ������
��������� �� ������ �������� �������� � ���������� ������ �����, �.�. ����
������ - ������-�������� ����� � ���� ������� ������ ���������� �� �����-������
� ���� ������. ������� �������� �� ����������� ������� �������� ��, ���
������� ��������� �� ������������ �� ������. ��� �������� ����������� ��
��������� "�����������" ������ � ��������� ������������ ������ ����� ����,
��� ����� ��������� ������. ��� ��������� �������� ������, � ���� ����������
�������� ����� ��������������.
��������� ������������� ��������� �������:
gcc -O3 -o gradient gradient.c -lvgagl -lvga�������� �������� ��� �������� �� ���������� vgagl (-lvgagl) ����� ����� �������� (-lvga). �.�. ���������� � ������� ���� ������� ������� ����� ������������� ���������� vgagl, � �� ���������� vga ����� ����� ������ ����������� �������. �� �������� � �� ��������� ���� ����� ������������: chmod u+s .
��������� �������� ���: ��������� �����
#include <stdio.h> #include <stdlib.h> #include <vga.h> #include <vgagl.h> GraphicsContext *physicalscreen; GraphicsContext *virtualscreen; int main(void) { int i, j, b, y, c; vga_init(); vga_setmode(5); gl_setcontextvga(5); gl_setcontextvgavirtual(5); physicalscreen = gl_allocatecontext(); gl_getcontext(physicalscreen); virtualscreen = gl_allocatecontext(); gl_getcontext(virtualscreen); y = 0; c = 0; gl_setpalettecolor(c, 0, 0, 0); c++; for (i = 0; i < 64; i++) { b = 63 - i; gl_setpalettecolor(c, 0, 0, b); for (j = 0; j < 3; j++) { gl_hline(0, y, 319, c); y++; } c++; } gl_copyscreen(physicalscreen); getchar(); gl_clearscreen(0); vga_setmode(0); exit(0); }��� ��������� ������� ��������� #include <vgagl.h>.
��� ���������� � ��������� ������ �� ����������� ��������:
GraphicsContext *physicalscreen GraphicsContext *virtualscreen����� ����������� ����������� ���������� � ��������������� ����� VGA �������� (������� vga-setmode()). �� ����� ������������ ��� �� �����, ��� � � ���������� ������� (G320x200x256).
� ������������� ��������� � ���������� � "�����������" ������. ������� �������� ������� ������� ��������� � ��������������� ����������:
gl_setcontextvga(5) gl_setcontextvgavirtual(5) physicalscreen = gl_allocatecontext() gl_getcontext(physicalscreen) virtualscreen = gl_allocatecontext() gl_getcontext(virtualscreen)��������� ����� ( gl_setcontext(virtualscreen)) ��������� �� ��, ��� ����� ��������� ����� �������� � ����������� �������.
������� gl_setpalettecolor() ������ 64 ������� ������ �����. �������� �� ������ �� 3 ����� ������� �������. ����� ��������� 192 �����. ���������� 8 ����� � ����� ������ ����� ������� � �� �� ����� �� ��������.
����� ���������� �������� ��������� ���������� ������������ (��������) ������ �� ���������� ����� ��������� ������� gl_copyscreen(physicalscreen).
�� ���� ��� ������������ ��� ����� ������, ������� �� ����� �������� �� ��������, �.�. ������� getchar() ���������������� ������ ��������� �� ��� ���, ���� ������������ �� ������ ����� �������. ����� �� ������� ����� (������� gl_clearscreen(0)) � ��������������� ��������� �����: vga_setmode(0).
������ ������ ������� ���������� SVGAlib ����� ���������� �� man-��������� "man svgalib" � "man vgagl". ����� ����� �� ������ ������� ������� ��������� ��������. � ������� ����� �������� �� ������� ���������� �������� ��������� ����������� ����������. ���� ��������� ���� � � �������� ��������� �� man-���������.
���� ���� ���������� �� �����, ��� ���-�� �� ��������, ������� ��� ��������� ��������� ������ SVGAlib � ����������� ������ sunsite.unc.edu �������: pub/Linux/libs/graphics ��� tsx-11.mit.edu �������: pub/linux/sources/libs. �� ������ ��������� ���� ������ ���������� ����� ������ 1.3.0.
�, �������, ����������� Slackware, �� ���������� �������� ����� ���������
������������� SVGAlib � ������������ ��������. �������� �������� ���������
���������� � ������ Sunsite ��� MIT � ����������� ������������.
This website is
maintained by Miguel Angel Sepulveda
� Jay Link 1998 LinuxFocus 1998 |