- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 OpenGL 比较陌生,我想为我的 C++ Win32 项目添加抗锯齿功能。我目前在接收到 WM_CREATE 消息时在窗口过程中获取设备上下文,然后使用像素格式描述符创建 OpenGL 上下文,如下所示:
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
//...
switch (msg) {
case WM_CREATE:
log("Starting WM_CREATE...");
hDC = GetDC(hWnd);
//Pixel Format
ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR));
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 24;
pfd.cStencilBits = 8;
format = ChoosePixelFormat(hDC, &pfd);
if (!SetPixelFormat(hDC, format, &pfd)) {
log("Error: Could not set pixel format.");
PostQuitMessage(1);
break;
}
//Create Render Context
hRC = wglCreateContext(hDC);
if (!wglMakeCurrent(hDC, hRC)) {
log("Error: Could not activate render context.");
PostQuitMessage(1);
break;
}
//Initialize GLEW
if (glewInit()) {
log("Error: Could not initialize GLEW.");
PostQuitMessage(1);
break;
}
//Other initialization goes here
//...
break;
//...
}
return 0;
}
为了让抗锯齿工作,我知道我需要使用像 WGL_ARB_multisample 这样的扩展。似乎很少有关于如何实际使用它的例子,尤其是 GLEW。我将如何修改我的代码以使其正常工作?谢谢。
最佳答案
GLEW 还支持 WGL 和 glX 扩展。对于 wgl,您需要 wglew.h
头文件。它的工作方式与 GL 扩展相同:GLEW 将通过 glewInit()
调用自动获取 wgl 扩展的函数指针。
在 Windows 上,您实际需要做的是:
现在,WGL_ARB_multisample本身不定义任何 wgl 扩展函数。它只是为来自 WGL_EXT_pixel_fromat 的 wglChoosePixelFormatEXT()
定义了新属性.这就是您在第 3 步中必须调用的内容,以请求支持多重采样的像素格式。
关于c++ - 使用 GLEW 和 WGL 的 OpenGL 抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460601/
我正在尝试通过 Windows API 创建 OpenGL 上下文。目前其他一切都很好,但我只是不知道如何链接正确的库以访问 wgl.. 函数。 我使用 MinGW 编译。和一个制作文件。我试图链接到
我在 Windows 下的 OpenGL 上下文中绘制文本,使用以下辅助函数,我从 http://nehe.gamedev.net/tutorial/bitmap_fonts/17002/ 获得了 i
我是 OpenGL/OpenCL 的初学者。我正在尝试执行 this 中的代码示例,但出现错误: Traceback (most recent call last): File "/home/anka
我通常使用 wglChoosePixelFormatARB() 和这些参数(以及其他参数)创建像素格式: WGL_DOUBLE_BUFFER_ARB = GL_TRUE WGL_SAMPLE_BUFF
我正在尝试使用 Windows 函数创建 OpenGL 上下文(现代版)。 基本上代码就是: 创建窗口类 注册类(class) 创建一个窗口 选择PIXELFORMATDESCRIPTOR并设置 创建
有一个有趣的浏览器框架叫做Awesomium ,它基本上是 Chromium 浏览器引擎的包装器。 我有兴趣使用它为桌面重新分发基于 WebGL 的游戏。然而 Awesomium 只支持使用发送到 C
我对 OpenGL 比较陌生,我想为我的 C++ Win32 项目添加抗锯齿功能。我目前在接收到 WM_CREATE 消息时在窗口过程中获取设备上下文,然后使用像素格式描述符创建 OpenGL 上下文
我正在创建一个游戏引擎,并从简单的 openGL 窗口创建开始。我正在使用 visual studio 2013,引擎正在构建为 dll。这是初始化 openGL 的 dll 中的代码: bool A
我试图让 GLFW3 在我的 Windows 8 计算机上使用 MinGW 运行,但收效甚微。我直接从 GLFW 文档复制了这个测试程序(进行了一些编辑以使其与共享库一起工作),我正在尝试运行它: #
所以我已经遵循了 OpenGL 渲染上下文的 Windows 创建中的所有基本说明 问题是当我尝试使用 opengl 创建一个核心配置文件上下文时,它失败了,当我运行 a.exe 文件时,我从 Win
我正在将我的简单 lwjgl3 游戏移植到 C++,并得到了错误:WGL:驱动程序似乎不支持 OpenGL。代码在 Java 中几乎相同,所以我想知道出了什么问题以及如何解决它: int main(i
我正在使用 Win32 API 处理 OpenGL。因此我正在使用 wgl (Wiggle)。一切安好。除非我想使用 FREEGLUT 库中的一些形状。例如,茶壶。我正在查看 freeglut 的源代
我是一名优秀的程序员,十分优秀!