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


Рисование линий - часть 4


unsigned char far *video_buffer = (char far *)0xA0000000L;

// указатель на начало видеопамяти (для операций со словами)

unsigned int far *video_buffer_w= (int far *)0xA0000000L;

// ФУНКЦИИ //////////////////////////////////////////

void Set_Palette_Register (int index, RGB_color_ptr color)

{

// Эта функция устанавливает значение одного элемента таблицы

// цветов. Номер регистра задается переменной index, структура

// color содержит значения красной, зеленой и синей составляющих

// цвета

// указываем VGA карте, что мы будем обновлять содержимое

// регистра палитры

_outp(PALETTE_MASK,Oxff);

// какой из регистров мы хотим обновить?

_outp(PALETTE_REGISTER_WR, index) ;

// теперь обновляем RGB

_outp(PALETTE_DATA,color->red);

_outp(PALETTE_DATA,color->green);

_outp(PALETTE_DATA,color->blue);

} // конец функции

/////////////////////////////////////////////////////

void Get_Palette_Register(int index, RGB_color_ptr color)

{

// эта функция читает данные элемента таблицы цветов и помещает их

// в поля структуры color

// установить маску регистра палитры

_outp(PALETTE_MASK,Oxff);

// сообщаем VGA, какой из регистров мы будем читать

_outp(PALETTE_REGISTER_RD, index);

// читаем

данные

color->red   = _inp(PALETTE_DATA);

color->green = _inp(PALETTE_DATA);

color->blue = _inp(PALETTE_DATA);

} // конец

функции            /////////////////////////////////////////////////

void Create_Cool_Palette(void) {

// эта функция создает палитру, содержащую по 64 оттенка серого,

// красного, зеленого и синего цветов

RGB_color color;

int index;

// проходим по элементам таблицы цветов и создаем 4 банка

// по 64 элемента

for (index=0; index < 64; index++)

{

// оттенки

серого

color.red   = index;

color.green = index;

color.blue = index;

Set_Palette_Register(index, (RGB_color_ptr)&color);

// оттенки красного

color.red   = index;

color.green = 0;

color.blue = 0;

Set_Palette_Register(index+64, (RGB_color_ptr)&color) ;

// оттенки зеленого




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



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