|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.04.2011, 17:51 | #1 |
Пользователь
Регистрация: 21.11.2010
Сообщений: 14
|
Мерцание в OpenGL
Добрый день, у меня возникла проблема с OpenGL. Я пытаюсь рисовать прямоугольник, но почему-то происходит мерцание экрана при запуске программы. Вот код:
// мерцания.cpp: определяет точку входа для консольного приложения. // #include <gl\glut.h> GLfloat spin=0.0; void init(void) { glClearColor(0.0,0.0,0.5,0.0); glShadeModel(GL_FLAT); } void display() { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef(spin,0.0,0.0,1.0); glColor3ub(255,255,255); glBegin(GL_QUADS); glVertex2f(-0.65f, -0.65f); glVertex2f( 0.65f, -0.65f); glVertex2f( 0.65f, 0.65f); glVertex2f(-0.65f, 0.65f); glEnd; glPopMatrix(); glutSwapBuffers(); } void spinDisplay(void) { spin=spin+1.0; if(spin>360.0) spin=spin-360.0; glutPostRedisplay(); } void reshape(int w, int h) { glViewport(0,0,(GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void mouse(int button,int state,int x,int y) { switch(button) { case GLUT_LEFT_BUTTON: if (state==GLUT_DOWN) glutIdleFunc(spinDisplay); break; case GLUT_RIGHT_BUTTON: if (state==GLUT_DOWN) glutIdleFunc(0); break; } } int main(int argc, char **argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLU T_RGB); glutInitWindowSize(500,500); glutInitWindowPosition(100,100); glutCreateWindow("Двойная буферизация"); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMouseFunc(mouse); glutMainLoop(); return 0; } В чем проблема и как ее решить? |
14.04.2011, 20:19 | #2 |
c++, dx/ogl
Форумчанин
Регистрация: 10.11.2008
Сообщений: 131
|
В принципе все нормально рисуется, но возможно фпс большой и «квад» слишком быстро крутиться отсюда мелькание... следует привязать расчеты поворота ко времени… к примеру так…
Код:
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but rather how many batches/frame! |
14.04.2011, 21:05 | #3 |
Пользователь
Регистрация: 21.11.2010
Сообщений: 14
|
Спасибо, работает
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мерцание | ZBEP | Общие вопросы Delphi | 3 | 09.04.2011 15:14 |
Мерцание OpenGL | saggy | Мультимедиа в Delphi | 13 | 02.07.2010 12:00 |
мерцание | shad0w | Общие вопросы C/C++ | 3 | 11.12.2007 12:31 |