Задать вопрос
alexey_sigida
@alexey_sigida

Можно ли перейти от реализации для win(opengl,height map)?

Вот тут показано как сделать из карты высот ландшафт. В данной программе используются функции win (WndProc,WinMain). Возможно ли переделать данный код для glut(main(arg c,arg v))? Если да, то подскажите какие функции заменить/изменить надо. Ну и может есть у кого советы на эту тему.
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
0) закапываем GLUT, берем GLFW (www.glfw.org ); если это неприемлемо, отпишитесь в комментариях, сделаем другую инструкцию;
1) берем пример, делаем окно по примеру: www.glfw.org/documentation.html
2) когда убедились, что окно появляется и все работает, начинаем перетягивать код из урока;
3) вызов кода отрисовки (который DrawGLScene) вставляем вместо /* Render here */;
4) объявления виндовых дескрипторов убираем (HDC, HWND и прочие); windows.h тоже вроде не нужен;
5) для обработки событий клавиатуры читаем вот это: www.glfw.org/docs/latest/input.html#input_keyboard , для мыши вот это: www.glfw.org/docs/latest/input.html#input_mouse . По сути все элементарно: устанавливаются колбэки, в которых уже находится код обработки;
6) для того, чтобы адекватно выйти из главного цикла приложения (это тот, который while (!glfwWindowShouldClose(window))) в нужном месте (например, по нажатию ESC) вызываем glfwSetWindowShouldClose.

Итого WindowProc вам уже не нужна, из WinMain возможно понадобится код инициализации и код обработки клавиатуры нужно будет вынести в колбэк.
Вопросы в комментарии, все сразу не расскажешь.

P.S. Вообще поищите современные туториалы, это OpenGL 2.0, этот API уже никому не нужен, в 3-м OpenGL всю архитектуру перекроили (зачем? Например затем, что вызывать glVertex для каждой вершины - это слишком затратно). Старые уроки вам будут полезны только для общего развития в CG.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы