2012-01-17 3 views
5

Я хочу обновить свое научное 3D-приложение от Freeglut до GLFW, но я беспокоюсь о скрытых конфликтах или потере данных. На самом деле мое приложение работает как шарм с Freeglut, и я не знаю У вас нет проблем, но GLFW рекомендуется для современных OpenGL (3.0+) во всех современных книгах и учебниках.Преобразование существующего проекта C++ openGL из glut/freeglut в glfw

Я смотрю API GLFW и выглядит как Glut с префиксом glfw*, но я не совсем уверен. поэтому у меня есть три вопроса в виду:

  1. Стоит ли ломать мой существующий проект ради GLFW, или придерживаться freeglut?
  2. Я собираюсь потерять любую особенность от перенасыщения?
  3. Совместим с GLFW с GTK +? (Потому что мой графический интерфейс основан на GTK)
+3

Я не вижу причин, почему вы не можете использовать opengl 3.0+ с freeglut, если ваша карта поддерживает его –

+1

Ну, из взгляда на GLFW я вижу больше вариантов, чем в freeglut. Думаю, это и есть причина. not sure tho –

+2

Freeglut поддерживает OpenGL3 просто отлично. Сделайте что-то вроде 'glutInitContextVersion (3, 2); glutInitContextFlags (GLUT_FORWARD_COMPATIBLE); 'и вы готовы к работе. –

ответ

3

3- ли GLFW совместимы с GTK +? (потому что мой графический интерфейс основан на GTK)

Используя GTK +, вы не должны использовать Free-/GLUT или GLFW. GTK + имеет виджет OpenGL и выполняет все управление событиями. Используйте это.

+0

@Ndv Просто имейте в виду, что GLFW (например, freeglut) - это просто ** библиотека GUI ** (например, GTK +) **, которая не имеет ничего общего с OpenGL **. –

+2

@Ndv Итак, если вам нравится обрабатывать его самостоятельно, вы не будете самостоятельно управлять контекстом OpenGL, используя собственный API платформы (wgl для win, glX для nix). В противном случае нет аргументов для GLFW/GLUT, но против GTK +, так как оба являются только оболочками для платформы OpenGL и GUI, что делает их не более чем ** GUI-библиотеками с поддержкой контекстного управления OpenGL **. В этом отношении GLFW/GLUT и GTK + находятся на том же уровне абстракции. Опять же: ** GLFW/GLUT не принадлежит или не имеет ничего общего с OpenGL **, не более GTK +. –

+0

@ Ndv: Я могу только согласиться с Кристианом Рау; * GLUT и GLFW не являются низкими уровнями. * Вы хотите видеть низкий уровень? Затем взгляните на https://github.com/datenwolf/codesamples/tree/master/samples/OpenGL/x11argb_opengl – datenwolf