Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2012, 23:40   #1
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию Opengl - не работает(

возможно пишу не сюда, но всё-таки создание игр связано с opengl. Поставил библиотеку на MS visual studio2010. Компилируется всё без проблем, при запуске открывается форма. Но весь трабл в том, что форма ничего не делает, т.е какой - бы я цвет заливки не ставил - всегда тупо белая форма. скачал в интернете готовый код программы - тоже самое( Может кто знает в чём дело?? код который пытаюсь запустить:
Код:
#include <locale>
#include <glut.h>
#include <gl\gl.h>
#include <gl\glu.h>
#pragma comment (lib, "glut.lib") 
#pragma comment (lib, "glu32.lib")
void Draw(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glFlush();
}
void Initialization()
{
	glClearColor(0.8,1.0,0.6,1.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(-200.0,200.0,-200.0,200.0,-5.0,5.0);
}
int main(int argc, char **argv) //Наша главная функция 
 { 
       glutInit(&argc, argv);  //инициализация компонентов 
       glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);  //Создаём двойной, 3-х цветный буфер 
       glutInitWindowSize(400, 400);  //Задаём размеры окна 
       glutInitWindowPosition(100, 200);  //Задаём позицию окна 
       glutCreateWindow("Lesson 1");  //Задаём имя окна 
	   glutDisplayFunc(Draw);
	   Initialization();
       glutMainLoop(); //Запускаем основной цикл обработки экрана 
	   return 0;
 }
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 03.08.2012, 11:41   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Замените
glFlush();
на
glutSwapBuffers();
Kostia вне форума Ответить с цитированием
Старый 03.08.2012, 12:00   #3
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Цитата:
Сообщение от Kostia Посмотреть сообщение
Замените
glFlush();
на
glutSwapBuffers();
Спасибо, помогло. А почему оно так,ведь везде glFlush() пишут. разные версии библиотек?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com

Последний раз редактировалось kventin_zhuk; 03.08.2012 в 12:02.
kventin_zhuk вне форума Ответить с цитированием
Старый 03.08.2012, 13:38   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

glut и gl - разные библиотеки. glut более высокоуровневая, чем gl, и пользуется функциями последней.
Исходя из этого, в данном случае нужна именно glut. Если бы Вы использовали только gl, функции glut были бы не нужны.
s-andriano вне форума Ответить с цитированием
Старый 03.08.2012, 14:13   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

glFlush действует на гл, и заставляет ждать выполнения всей прорисовки, но в вашем случае у вас буферизация через glut назначена, и надо менять буфера.
glFlush можно было не убирать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL. Не работает прожектор. Kolay Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 23.06.2012 16:27
Не работает альфа канал в текстурах (Delphi + OpenGL)) Skifian Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.06.2012 16:45
не работает relese версия проги и debug работает тока на моем компе D][mon C# (си шарп) 2 04.05.2012 20:21
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
OpenGL, не работает glutTimerFunc() dee_lv Общие вопросы C/C++ 2 18.01.2010 04:09