我想使用OpenGL版本3/4,但沒有找到任何有關使用哪些庫或頭文件的參考。如何在我的新項目中使用OpenGL 3/4
我看着offical OpenGL homepage,但在那裏我找不到任何庫。 我在哪裏必須下載新版本的OpenGL?
我想使用OpenGL版本3/4,但沒有找到任何有關使用哪些庫或頭文件的參考。如何在我的新項目中使用OpenGL 3/4
我看着offical OpenGL homepage,但在那裏我找不到任何庫。 我在哪裏必須下載新版本的OpenGL?
正如Pubby在他的評論中所說,你仍然使用OpenGL庫。但是,您應該使用可在http://www.opengl.org/registry/處找到的庫標頭,並且您將不得不創建不同的上下文。例如,與GLFW,我做這樣的事情:
GLenum init_window(int w, int h)
{
int major, minor, rev;
GLenum glewResult;
if (glfwInit() != GL_TRUE) {
fprintf(stderr, "error: could not init GLFW\n");
return GL_FALSE;
}
glfwGetVersion(&major, &minor, &rev);
printf("GLFW %d.%d.%d\n", major, minor, rev);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 4);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
if (!glfwOpenWindow(w, h, 0,0,0,0, 24,0, GLFW_WINDOW)) {
fprintf(stderr, "Could not open window\n");
glfwTerminate();
return GL_FALSE;
}
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "Context: OpenGL %d.%d.%d\n", major, minor, rev);
glewExperimental = GL_TRUE;
glewResult = glewInit();
if (glewResult != GLEW_OK) {
fprintf(stderr, "error: could not init GLEW\n");
fprintf(stderr, "error: %s\n", glewGetErrorString(glewResult));
glfwTerminate();
return GL_FALSE;
}
return GL_TRUE;
}
我希望幫助!
所以我必須使用GLFW? – SKiD
不,你如何創建上下文取決於你使用的庫。 GLFW是一個窗口和輸入庫,爲您提供1個窗口併爲其添加上下文。我的代碼片段僅僅是我如何使用GLFW做的一個例子。 –
OpenGL是由GPU供應商實施的庫。如果你有一個體面的GPU,那麼你可能有OpenGL 3或4. 在默認情況下,Windows只有OpenGL 1.1,但供應商使用擴展實現「完整」OpenGL。一般來說,您應該使用一些幫助程序庫來獲取這些擴展名(或編寫自己的代碼:))
如果您想使用「現代」OpenGL。至少嘗試使用OpenGL 3.3的核心功能。
這是相同的庫和頭文件,你就必須以不同的方式創建上下文。 – Pubby
「*我看OpenGL官方主頁,*」你看起來不太難。它就在[Wiki的入門頁面](http://www.opengl.org/wiki/Getting_Started)。 –