Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL freeglut и перерисовка окна. Не перерисовывается содержимое окна. 
:(
    Опции темы
ags
Дата 20.4.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.4.2009

Репутация: нет
Всего: нет



Привет!

Столкнулся с проблемой, что следующий код не перерисовывает содержимое окна при перемещении окна по десктопу.
ОС. ubuntu 8.10/freeglut 2.4

Накануне тестировал аналогичный код по win32 (vista), проблемы замечено не было (или я просто не заметил - сейчас протестировать под win32 не могу).

При изменении окна все нормально. Судя по документации glutDisplayFunc должна вызываться при перемещении окна. Однако этого не происходит:


glutDisplayFunc(myDisplay); Whenever the system determines that a window needs to be redraw
the function myDisplay is called. This will happen when the window is created and every time the
window is moved or corrupted.


Ниже приведен код... Может кто-нибудь подскажет, где собака порылась?

Код

#include <GL/glut.h>
#include <iostream>

using namespace std;


void displayFunction()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1., 0.f, 0.f);
    glRectf(-25.f, 25.f, 25.f, -25.f);
    glFlush();
}

void changeSize(GLsizei width, GLsizei height)
{
    glViewport(0, 0, width, height);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    glOrtho(-100.f, 100.f, -100.f, 100.f, 1.f, -1.f);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

/**
 * Application main initialization.
 */
void initializeApplication(int *pargc, char **argv)
{
    glutInit(pargc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

    glutCreateWindow("OpenGL");
    glClearColor(0.f, 0.f, 1.f, 1.f);
}

void bindCallbackFunction(int *pargc, char **argv)
{
    glutDisplayFunc(displayFunction);
    glutReshapeFunc(changeSize);
}

int main(int argc, char **argv)
{
    initializeApplication(&argc, argv);
    bindCallbackFunction(&argc, argv);

    cout << "OpenGL appliacation is now running." << endl;
    glutMainLoop();
}



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.