Используйте библиотеку OpenGL GLFW, последняя версия 3.0.4... сразу после инициализации glfw init
if (!glfwInit())
{
printf("glfwInit() fail to initualize. \n");
glfwTerminate();
exit(-1);
}
после инициализации glfwInit() включите эти 4 строки кода. эти четыре строки кода позволят вам использовать самую высокую версию, поддерживаемую вашей ОС. на маке это opengl 4.1
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
затем создайте свое окно.
_Window = glfwCreateWindow(width, height, title, 0, 0);
проверьте, чтобы убедиться, что он был создан.
if (!_Window) {
printf("Display window fail to create. \n");
glfwTerminate();
exit(-1);
}
затем сделайте его текущим окном, используя следующее.
glfwMakeContextCurrent(_Window);
после того, как вы сделаете его своим текущим окном, все, что осталось сделать, это создать основной цикл.
while (!glfwWindowShouldClose(_Window))
{
........
glfwSwapBuffers(_Window);
glfwPollEvents();
}
убедитесь, что вы включили glfwPollEvents(); в цикле это позволяет использовать кнопку закрытия для выхода из окна. если у вас возникли проблемы с компиляцией библиотеки в xcode, просто напишите мне здесь, и я вышлю вам копию библиотеки.
28.02.2014
glGetString(GL_VERSION)
возвращает мне4.1 ATI-1.38.3
, но по-прежнему отказывается компилировать шейдеры#version 130
. Кажется, он принимает шейдеры#version 330
, хотя я еще не знаю, как обновить код шейдера до 330... Я предполагаю, что у меня совершенно отдельная проблема? 31.12.2015glGetString
. 31.12.2015