Hdc hdc = null; // контекст устройства hglrc hrc = null; // контекст рендеринга




Скачать 25.15 Kb.
Дата 30.08.2016
Размер 25.15 Kb.
#include

#include

#include

#include

#include
HDC hDC = NULL; // контекст устройства

HGLRC hRC = NULL; // контекст рендеринга


GLuint base;

GLYPHMETRICSFLOAT gmf[256]; // Массив с информацией о нашем шрифте


GLvoid BuildFont(GLvoid) // Построение нашего растрового шрифта

{ HFONT font; // Идентификатор шрифта Windows

base = glGenLists(256); // массив для 256 букв

font = CreateFont( -1, // высота шрифта

0, //Ширина знакоместа (если 0, то используется значение по умолчанию)

0, //Угол перехода

0, //Угол направления

0, //Ширина шрифта (0-1000)

FALSE, // Курсив

FALSE, // Подчеркивание

FALSE, // Перечеркивание

ANSI_CHARSET, //Идентификатор кодировки

OUT_TT_PRECIS, /* Точность вывода. Сообщает Windows что, если доступен больше чем один тип шрифта, то выбрать с тем же самым названием Truetype версию шрифта*/

CLIP_DEFAULT_PRECIS, /* Точность отсечения. Тип отсечения, который применяется, когда вывод символов идет вне области отсечения*/

ANTIALIASED_QUALITY, /* Качество вывода (PROOF, DRAFT, NONANTIALIASED, DEFAULT или ANTIALIASED)*/

FF_DONTCARE|DEFAULT_PITCH, // Семейство и Шаг

"Courier New"); // Имя шрифта

SelectObject(hDC, font); //Выбрать шрифт, созданный нами

wglUseFontOutlines( hDC, // Выбрать текущий контекст устройства (DC)

0, // Стартовый символ

256, // Количество создаваемых списков отображения

base, // Стартовое значение списка отображения

0.0f, //Отклонение от настоящего контура

0.2f, //Толщина шрифта по оси Z

WGL_FONT_POLYGONS, //Использовать полигоны, а не линии

gmf); //буфер адреса для данных списка отображения

}
GLvoid glPrint(const char *fmt, ...) // Функция вывода текста

{char text[256]; // Здесь наша строка

va_list ap; // Указатель на переменный список аргументов

if (fmt == NULL) // Если нет текста,

return; // ничего не делаем

va_start(ap, fmt); // Анализ строки на наличие переменных

vsprintf(text, fmt, ap); // Конвертация символов в значения

va_end(ap); // Результат сохраняется в text

glPushAttrib(GL_LIST_BIT); // Сохраняет в стеке значения битов списка отображения

glListBase(base); // Устанавливает базовый символ в 0

glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // Создает списки отображения текста

glPopAttrib(); // Восстанавливает значение

}
void L()

{glColor3f(0.1,0.1,0.1);

glPushMatrix();

glTranslatef(0.03,0.46,2);

glScalef(2,3,1);

glPrint("BLACK");

glPopMatrix();

glColor3f(0.89,0.89,0.89);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(9,10,11);

glScalef(1,1.5,1);

glPrint("WHITE");

glPopMatrix();

glColor3f(0.8,0,0);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(8,0,1.5);

glScalef(2,3,1);

glPrint("RED");

glPopMatrix();

glColor3f(0,0,0.8);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(0,0,11);

glScalef(2,3,1);

glPrint("BLUE");

glPopMatrix();

glColor3f(0,0.8,0);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(0,10.5,3);

glScalef(1,2,1);

glPrint("GREEN");

glPopMatrix();

glColor3f(0,1,1);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(0,10.5,12);

glScalef(1,1.5,1);

glPrint("C y a n=white-red");

glPopMatrix();

glColor3f(1,1,0);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(3,10.5,5);

glScalef(1,1.5,1);

glPrint("Yellow=white-blue");

glPopMatrix();

glColor3f(1,0,1);

glPushMatrix();

// glRotatef(40,0,1,0);

glTranslatef(1,0,9);

glScalef(1,2,1);

glPrint("Magenta=white-green");

glPopMatrix();



}


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница