如何使用 Visual Studio 创建 OpenGL 3 应用程序?
Posted
技术标签:
【中文标题】如何使用 Visual Studio 创建 OpenGL 3 应用程序?【英文标题】:How to create a OpenGL 3 application with visual studio? 【发布时间】:2016-12-06 09:20:53 【问题描述】:我想创建一个带有视觉 sutdio 的现代 OpenGL 应用程序(带有一些着色器),但在视觉上只有一个旧标题“gl.h”。您是否还有其他方法可以使用 GetProcAdress() ?有人知道像“glew”这样的库,但只有 OpenGL 3 函数吗?
【问题讨论】:
我觉得这个问题太笼统了,会被关闭,只是一个猜测。同时试试这个教程:learnopengl.com/#!Getting-started/OpenGL 没关系。我对 glew qnd glfw 感到困惑。我认为 glew 是最合适的,但我不想要像 glfw 这样的带有“窗口管理”的库 【参考方案1】:关于加载函数,请看this page。
另外,不要忘记context creation。
至于在 Visual Studio 中进行设置,您可能只需要链接 OpenGL lib 文件(windows 为 opengl32.dll,linux 为 .so 等)
这个 sn-p 可能有用(取自第一个链接):
void *GetAnyGLFuncAddress(const char *name)
void *p = (void *)wglGetProcAddress(name);
if(p == 0 ||
(p == (void*)0x1) || (p == (void*)0x2) || (p == (void*)0x3) ||
(p == (void*)-1) )
HMODULE module = LoadLibraryA("opengl32.dll");
p = (void *)GetProcAddress(module, name);
return p;
尽管可以在没有 GLFW 或 SDL 等包装器的情况下使用 OpenGL,但强烈建议使用预先存在的包装器,例如其中之一。大多数情况下,因为实现是特定于平台的,这些包装器处理(没有它们,您将需要针对不同平台的不同算法)。它们还为 GL 常量(GL_TRUE、GL_FALSE、GL_TEXTURE_2D 等)提供了方便的简写。
【讨论】:
感谢您的代码示例。我不知道我需要检查指针是否等于 0x1 或 0x2 或 0x3 或 -1...以上是关于如何使用 Visual Studio 创建 OpenGL 3 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio 2008 创建静默安装程序包
如何使用 Visual Studio 创建 OpenGL 3 应用程序?
如何使用 Visual Studio Code 创建和链接另一个网页?