Программирование игр для Windows. Советы профессионала


Первый шаг - часть 6


}

// Функция вызывает видео BIOS и заполняет все необходимые регистры

// для работы с палитрой, задаваемой массивом раl[]

void SetAllRgbPalette(char *pal)

{

struct SREGS s;

union REGS r;

segread(&s);                    // получить значение сегмента

s.es=FP_SEG((void far*)pal);    // ES указывает на pal

r.x.dx=FP_OFF((void far*)pal);  // получить смещение pal

r.x.ax=0xl012;                  // int l0h, функция 12h

// (установка регистров DAC)

r.x.bx=0;                      // первый регистр DAC

r.x.cx=256;                     // количество регистров DAC

int86x(0х10,&r,&r,&s);          // вызвать видео BIOS } 

// Функция устанавливает видеорежим BIOS 13h

// это MCGA-совместимый режим 320х200х256 цветов

void InitVideo()

{

union REGS r ;

r.h.ah=0x0f;          // функция BIOS Ofh

int86(0х10,&r,&r);         // вызывать видео BIOS

PrevMode=r.h.al;           // сохранить текущий видеорежим

r.x.ax=0xl3;               // установить режим 13h

int86(0х10,&r,&r);         // вызвать видео BIOS

VideoRam=MK_FP(0xa000,0) ;  // создать указатель на видеопамять

}

// Функция восстанавливает изначальный видеорежим

void RestoreVideo() {

union REGS r;

r.x.ax=PrevMode;          // восстановить начальный видеорежиы

int86(0xl0,&r,&r);        // вызвать видео BIOS

}

// Функция загружает битовые карты

int InitBitmaps()

{

int r;

background=l;

r=ReadPcxFile("backgrnd.pcx",&pcx); // прочитать битовую карту

if(r != РСХ_ОК)        // выход при возникновении ошибки return FALSE;

BackGroundBmp=pcx.bitmap;    // сохранить указатель битовой

//  карты

SetAllRgbPalette(pcx.pal);   // установить палитру VGA

MemBuf=malloct(MEMBLK);       // выделить память под буфер

if(MemBuf == NULL)           // проверить на ошибки при

//  выделении памяти

return FALSE;

memset(MemBuf,0,MEMBLK);     // очистить

return TRUE;                 // Порядок!

}

// Функция освобождает выделенную программой память

void FreeMem()




Начало  Назад  Вперед



Книжный магазин