Всем Доброго времени суток. Сразу к делу. У меня возник вопрос по поводу инициализации OpenGL в оконном режиме и полноэкранном.Сейчас у меня есть окно,пишется лог,сохраняется конфиг.Брал уроки у Nehe но у меня другой пример.Я Хочу инициализацию вынести в отдельный класс, а не сплошняком. Помогите. Заранее спасибо.
Trojian
> Я Хочу инициализацию вынести в отдельный класс, а не сплошняком.
А проблема то в чём?
В том что в DX это слегка проще реализовано... Есть Инициализация(функция), Рендер Сцены(функция), Очистка(функция). Я прост не могу найти рабочий пример инициализации, отрисовки, очистки в ОГЛ.
Взять например SDL.
Trojian
> В том что в DX это слегка проще реализовано... Есть Инициализация(функция),
> Рендер Сцены(функция), Очистка(функция). Я прост не могу найти рабочий пример
> инициализации, отрисовки, очистки в ОГЛ.
http://www.gamedev.ru/community/ogl/
Большое спасибо.
А еще вопрос. А типы функций(Инициализация,рендер,очистка) могут быть любыми? или же только типы ОГЛ?
Что вы понимаете под "типами функций"?
Если раньше не приходилось работать с OpenGL, попробуйте GLUT или GLFW.
В GLUT рендер производится callback-функцией. В GLFW сами пишете цикл с вызовом функции отрисовки.
Посмотрите по ним официальную документацию (она маленькая) - скорее всего все ваши вопросы решатся.
Trojian
Какая связь между OpenGL и тем, что у тебя в программе есть три функции "Инициализация(функция), Рендер Сцены(функция), Очистка(функция)"?
OpenGLю вообще пофиг во что ты там обернёшь, в функции, классы, или будешь юзать шаблонную магию...
Executor
я уже с этим разобрался....вопросик вот какой.
вот кусок кода
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
и при компиляции генерит ошибку такую :
Необработанное исключение в "0x10007627" в "Sample.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000".
С Чем это может быть связано?причем ругается сначала на это : glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); потом на следующую строку....
Trojian
> и при компиляции генерит ошибку такую :
может glutInit не хватает
"glut..."
Не нужен.
Executor
"Какая связь между OpenGL и тем, что у тебя в программе есть три функции "Инициализация(функция), Рендер Сцены(функция), Очистка(функция)"?"
Полагаю, создатель темы просто не знает какая функция убогого апи за что отвечает, поэтому не знает, что куда пихать. Да и думаю, пока не понимает как устроена программа под Виндовс. Думаю человека надо отправить искать какую-нибудь "Супер-книгу", или дать ссылку на уроки NeHe в русском переводе.
Alex_M
> может glutInit не хватает
Скорее #pragma comment(lib,"GLUT32.lib") не хватает.
ды нет я ее поставил. Прост если бы не стояло, то прога не компилилась бы. А она компилится,линкуется, а при запуске падает в аут.
.Scotina
Я не совсем правильно выразился. Я имел ввиду, что у DX для инициализации нужно грубо говоря 3 функции...потом саму функцию инициализации вызвать перед главным циклом окна, а рендер вызывать в самом цикле. Насколько я понял у ОГЛ такая же схема. Но система инициализации проходит слегка по другому. В этом и главный вопрос, но я уже разобрался с инициализацией, теперь осталось допилить то из за чего она падает. У меня такое чувство что нужно курить в сторону обработки исключений.Я готов выслушать ваши мысли на эту тему.
Тема в архиве.