return 1 ;
}
2! // File vbe2test.cpp #include "vesa.h" #include <conio.h> #include <stdio.h>
void writePixel ( int x, int y, int color ) {
* ( x + y * bytesPerLine + (char *)lfbPtr ) = (char) color;
}
main () {
if ( !initVBE2 () ) {
printf ( "\nVBE2 not found." ); return 1;
}
printf ("\nSign:%s", vbelnfoPtr->vbeSign );
printf ("\nVersion %04x", vbelnfoPtr->version );
printf ("\nOEM:%sM, vbelnfoPtr->OEM );
printf ("\nOEMVendorName: %s", vbelnfoPtr->OEMVendorName );
printf (M\nOEMProductName: %s",vbelnfoPtr->OEMProductName );
printf ( "\nOEMProductRev: %s",vbelnfoPtr->OEMProductRev );
getch ();
Компьютерная графика. Полигональные модели
if ( IsetVESAMode ( VESA_640x480x256 )) {
printf ("\пЕггог SetVESAMode."); return 1;
}
for (int i = 0; i < 640; i++ )
for (int j = 0; j <480; j++ )
writePixei (i, j, (j/20 + 1 )*{j/20 + 1));
getch (); doneVBE2 (); return 0;
}
Поскольку не все существующие карты поддерживают стандарт VBE 2.0, имеется специальная резидентная программа UNIVBE, прилагаемая на компакт-диске, которая осуществляет поддержку этого стандарта для большинства существующих видеокарт.
Ниже приводится файл surface.h, реализующий класс Surface (файлы surface.срр, vesasurf.h и vesasurf.срр прилагаются на компакт-диске). Этот класс отвечает за работу с растровым изображением (в том числе и хранящимся в видеопамяти) и реализует целый ряд дополнительных функций.
Для непосредственной работы с видеопамятью существуют класс VESASurface, позволяющий выбирать режим с заданным разрешением и числом бит на пиксел. Этот класс наследует от класса Surface все основные методы по реализации графических операций.
// File surface.h
//
// Basic class for images and all 2D graphics // You can add your own functions // currently supports only 8-bit and 15/16-bit modes //
#ifndef_SURFACE_ #define __SURFACE__
#include <malloc.h>
#include "rect.h"
#include "object.h"