Форум программистов, компьютерный форум, киберфорум
Наши страницы

OpemGL Text draw - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, сравнивающую 2 строки http://www.cyberforum.ru/cpp-beginners/thread183409.html
Ваша задача написать функцию BOOL сравнить (символ * s1, Int size1, символ * S2, Int size2), который сравнивает две строки. Вход Входной содержит две строки. Каждая строка на отдельной строке. ...
C++ C++ работа с изображениями Нужно заставить программу работать с изображениями, а именно: преобразовывать в монохромные, разрезать на кусочки, сравнивать эти самые кусочки. С изображениями раньше не работал, поэтому даже не... http://www.cyberforum.ru/cpp-beginners/thread183405.html
C++ Использовать только рекурсию
Proc61. Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!! соответственно (N > 0 — параметр целого типа). С помощью этих...
Найти последний символ в строке C++
найти последний символ в строке #include <iostream> #include <string> using namespace std; void main() { string a; cin >> a;
C++ рекурсивная функция http://www.cyberforum.ru/cpp-beginners/thread183361.html
Описать рекурсивную функцию Digits(S) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках.
C++ Сортировка Помогите реализовать сортировку в списке! это задание Описать класс «записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку... подробнее

Показать сообщение отдельно
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
31.10.2010, 00:28  [ТС]
кароче вот я дальше незнаю что потом делать! "????""?"?"?"?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>    // Заголовочный файл для стандартной библиотеки ввода/вывода
#include <gl\gl.h>    // Заголовочный файл для библиотеки OpenGL32
#include <gl\glu.h>   // Заголовочный файл для библиотеки GLu32
#include <gl\glaux.h> // Заголовочный файл для библиотеки GLaux
#include <math.h>     // Заголовочный файл для математической библиотеки ( НОВОЕ )
#include <stdarg.h>   // Заголовочный файл для функций для работы с переменным
//  количеством аргументов ( НОВОЕ )
 
HDC        hDC=NULL;  // Приватный контекст устройства GDI
HGLRC      hRC=NULL;  // Постоянный контекст рендеринга
HWND       hWnd=NULL; // Сохраняет дескриптор окна
HINSTANCE  hInstance; // Сохраняет экземпляр приложения
GLuint  base;      // База списка отображения для фонта
GLfloat  cnt1;     // Первый счетчик для передвижения и закрашивания текста
GLfloat  cnt2;     // Второй счетчик для передвижения и закрашивания текста
 
bool  keys[256];      // Массив для работы с клавиатурой
bool  active=TRUE;    // Флаг активации окна, по умолчанию = TRUE
bool  fullscreen=TRUE;// Флаг полноэкранного режима
LRESULT  CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);  // Объявление WndProc
 
GLvoid BuildFont(GLvoid)  // Построение нашего растрового шрифта
{
HFONT  font;            // Идентификатор фонта
base = glGenLists(96);  // Выделим место для 96 символов ( НОВОЕ )
font = CreateFont(  -24,        // Высота фонта ( НОВОЕ )
0,        // Ширина фонта
0,        // Угол отношения
0,        // Угол наклона
FW_BOLD,      // Ширина шрифта
FALSE,        // Курсив
FALSE,        // Подчеркивание
FALSE,        // Перечеркивание
ANSI_CHARSET,      // Идентификатор набора символов
OUT_TT_PRECIS,      // Точность вывода
CLIP_DEFAULT_PRECIS,    // Точность отсечения
ANTIALIASED_QUALITY,    // Качество вывода
FF_DONTCARE|DEFAULT_PITCH,  // Семейство и шаг
"Courier New");      // Имя шрифта
SelectObject(hDC, font);        // Выбрать шрифт, созданный нами ( НОВОЕ )
wglUseFontBitmaps(hDC, 32, 96, base); // Построить 96 символов начиная с пробела ( НОВОЕ )
}
 
GLvoid KillFont(GLvoid)            // Удаление шрифта
{
glDeleteLists(base, 96);        // Удаление всех 96 списков отображения ( НОВОЕ )
}
 
GLvoid glPrint(const char *fmt, ...)        // Заказная функция «Печати» GL
{
char    text[256];      // Место для нашей строки
va_list    ap;          // Указатель на список аргументов
if (fmt == NULL)     // Если нет текста
return;            // Ничего не делать
va_start(ap, fmt);           // Разбор строки переменных
vsprintf(text, fmt, ap); // И конвертирование символов в реальные коды
va_end(ap);                  // Результат помещается в строку
glPushAttrib(GL_LIST_BIT);      // Протолкнуть биты списка отображения ( НОВОЕ )
glListBase(base - 32);          // Задать базу символа в 32 ( НОВОЕ )
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);// Текст списками отображения(НОВОЕ)
glPopAttrib(); // Возврат битов списка отображения ( НОВОЕ )
}
 
int InitGL(GLvoid)            // Все начальные настройки OpenGL здесь
{
glShadeModel(GL_SMOOTH);    // Разрешить плавное затенение
glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Черный фон
glClearDepth(1.0f);         // Установка буфера глубины
glEnable(GL_DEPTH_TEST);    // Разрешение теста глубины
glDepthFunc(GL_LEQUAL);     // Тип теста глубины
// Действительно хорошие вычисления перспективы
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
BuildFont();            // Построить шрифт
return TRUE;            // Инициализация окончена
}
 
int DrawGLScene(GLvoid) // Здесь мы будем рисовать все
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Очистка экран и буфера глубины
glLoadIdentity(); // Сброс просмотра
glTranslatef(0.0f,0.0f,-1.0f); // Передвижение на одну единицу вглубь
// Цветовая пульсация, основанная на положении текста
glColor3f(1.0f*float(cos(cnt1)),1.0f*float(sin(cnt2)),1.0f-0.5f*float(cos(cnt1+cnt2)));
// Позиционирование текста на экране
glRasterPos2f(-0.45f+0.05f*float(cos(cnt1)), 0.35f*float(sin(cnt2)));
glPrint("Active OpenGL Text With NeHe - %7.2f", cnt1);  // Печать текста GL на экран
cnt1+=0.051f;  // Увеличение первого счетчика
cnt2+=0.005f;  // Увеличение второго счетчика
return TRUE;   // Все отлично
}
plzzz объясните!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.