Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Программирование графики > вывод текста в OpenGL


Автор: aurea.lat 19.04.09, 20:36
Делала програмку для вывода решения уравнения в виде графика функции (по этому вопросу я консультировалась в темке "перерисовка экрана", там даже код кажись есть). Сдала и как говориться, перестала беспокоиться. А тут препод, подкинул на зачет проблем, добавить координатной сетке подписи осей и сделать разбивку осей цифрами.
Народ кто-нибудь знает как работать с выводом текста?

Автор: albom 19.04.09, 20:47
NeHe уроки #13, #14, #17, #43, #15.
Тут есть перевод (но стоит сверится с оригиналом, да к тому же там есть исходники).

Автор: aurea.lat 20.04.09, 09:11
;) спасибо я обязательно посмотрю

Автор: aurea.lat 28.04.09, 17:43
Цитата albom @
NeHe уроки #13, #14, #17, #43, #15.
Тут есть перевод (но стоит сверится с оригиналом, да к тому же там есть исходники).

:yes-sad: Либо я совсем отупела, либо я что-то делаю неверно. Уже битый день :wall: пытаюсь приладить хоть какой-нибудь из вариантов кода. А ничего не выходит. Походу для MFC текст определяется как-то по иному, или я чего-то перемудрила :blink:

Автор: albom 28.04.09, 18:33
Эти способы не привязаны к MFC, не важно используешь ли ты его или нет.

Автор: aurea.lat 28.04.09, 19:26
Цитата albom @
Эти способы не привязаны к MFC, не важно используешь ли ты его или нет.

Тогда походу я где-то что-то не так делаю. :huh:

Автор: albom 28.04.09, 19:31
Возможно.
Но я не телепат, я не знаю что ты не так делаешь. Показывай, что получается.

А вообще сначала лучше так, у тебя примеры с сайта NeHe работают?

Автор: aurea.lat 28.04.09, 19:40
Сами примеры работают.
А вот когда добавляю из в свой код ничего не отображается, хотя ошибок не выдает.

Автор: albom 28.04.09, 19:58
Ну значит что-то упускаешь при переносе кода.
Попробуй матрицы преобразования переустановить, буффер глубины очистить, короче минимизировать влияние твоего кода на код примера, может найдешь то место, которое всё портит.

Автор: aurea.lat 28.04.09, 20:20
Цитата albom @
Ну значит что-то упускаешь при переносе кода.

Вот моя попытка с примером №13

Автор: albom 28.04.09, 21:10
Исправления:
Цитата ExampleView.cpp
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    19,28d18
    < HDC        hDC=NULL;  // Приватный контекст устройства GDI
    < HGLRC      hRC=NULL;  // Постоянный контекст рендеринга
    < HWND       hWnd=NULL; // Сохраняет дескриптор окна
    < HINSTANCE  hInstance; // Сохраняет экземпляр приложения
    <
    < GLuint  base;      // База списка отображения для фонта
    < GLfloat  cnt1;     // Первый счетчик для передвижения и закрашивания текста
    < GLfloat  cnt2;     // Второй счетчик для передвижения и закрашивания текста
    <
    <  
    107a98
    >     glMatrixMode(GL_PROJECTION);
    110a102,103
    >     glMatrixMode(GL_MODELVIEW);
    >     glLoadIdentity();
    141,146c134,136
    < BuildFont();
    < glColor3f(0.1f,1.0f,1.0f);
    < glRasterPos2f(1,1);
    <
    < glPrint("Active OpenGL Text With NeHe - %7.2f");  // Print GL Text To The Screen
    <                                           // Increase The First Counter
    ---
    >     glRasterPos3f(10, 0, 0);
    >     glPrint("Проба пера");
    >                      
    226c216
    <
    ---
    >     BuildFont();
    486c476
    <   base = glGenLists(96);                              // Storage For 96 Characters
    ---
    >   base = glGenLists(256);                            
    496c486
    <                       ANSI_CHARSET,                   // Character Set Identifier
    ---
    >                       RUSSIAN_CHARSET,                // Character Set Identifier
    503,505c493,495
    <   oldfont = (HFONT)SelectObject(hDC, font);           // Selects The Font We Want
    <   wglUseFontBitmaps(hDC, 32, 96, base);               // Builds 96 Characters Starting At Character 32
    <   SelectObject(hDC, oldfont);                         // Selects The Font We Want
    ---
    >   oldfont = (HFONT)SelectObject(pDC->m_hDC, font);           // Selects The Font We Want
    >   wglUseFontBitmaps(pDC->m_hDC, 0, 256, base);                // Builds 256 Characters Starting At Character 0
    >   SelectObject(pDC->m_hDC, oldfont);                          // Selects The Font We Want
    511c501
    <   glDeleteLists(base, 96);                            // Delete All 96 Characters
    ---
    >   glDeleteLists(base, 256);                          
    527c517
    <   glListBase(base - 32);                              // Sets The Base Character to 32
    ---
    >   glListBase(base);                               // Sets The Base Character to 0
Цитата ExampleView.h
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    76a77
    >     GLuint base;

Автор: aurea.lat 28.04.09, 21:30
albom большууущее спасибо:)Все печатается)))))))))))))))))))))) Урррряяяя!

Автор: aurea.lat 01.05.09, 16:48
Извиняюсь за внеочередное беспокойство. Моя однокурсница взяла код вывода текста из моей программки, но у нее ничего не получилось . Ошибок не выдает и вроде все правильно а текст не выводится. Я смотрела, но понять не получается.
albom если тебе не сложно, можешь посмотреть. Плииизочки.

Автор: albom 01.05.09, 17:06
Вызвать функцию BuildFont(), да отодвинуть подальше дальнюю плоскость отсечения.

Автор: aurea.lat 01.05.09, 17:25
:lol: Спасибо прооосто Ооооогромнейшее )))))))))))))))))))

Сообщения были разделены в тему "Два потока"

Автор: Abraziv 03.07.15, 15:23
Здравствуйте, таже беда. Не выводится текст с помощью функции glPrint(), хотя всё вроде делаю правильно. Не поможете ?
Geo3View.cpp (, : 166)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)