2013-01-03 47 views
3

我遇到过VS 2012的Windows 8的OpenGL无法呈现在Windows 8

运行一个简单的OpenGL应用程序时,其中没有呈现的问题,我有我使用原型的一些项目有点调试渲染器和在Windows 7上使用VS 2012 Express Edition运行它。

我升级到Windows 8,并克隆了我的工作git存储库。在安装最新的驱动程序并安装VS 2012之后,我运行了我的应用程序,但没有显示任何内容,我得到的只是屏幕清晰的颜色。我以前得到一个异常,但那是因为我没有正确的驱动程序,所以当调用glGetIntegerv(GL_MAJOR_VERSION,...)我得到-1,因为OpenGL没有正确设置。它现在已经正确初始化,并且在逐步完成时,它看起来像一切工作正常,唯一的问题是我没有看到任何东西。

为了确保它不仅仅是我的代码,我下载了一些Swiftless OpenGL的例子,并得到了完全相同的东西。我的应用程序使用OpenGL 3.2并且没有弃用的功能。我的硬件最多可以支持3.3,如果它有任何用处,我在Macbook air上通过Boot Camp运行Window 8。

过去几天我一直在抨击我的头靠在墙上试图解决这个问题,但我没有太多的运气,我想我会把它扔到那里看看是否有人有类似的问题如果有人能提供任何信息,我会很感激。如果有人使用Windows 8,可以通过VS下载并构建一个简单的OpenGL应用程序,以查看他们是否可以在屏幕上获得有趣的东西!

+2

窗户这几乎肯定是显卡驱动的问题,而且很可能没有按不属于SO。 –

回答

2

您是否使用过时的旧版本和已弃用的固定功能管道,即立即模式绘制调用如glBegin(),glVertex*()glEnd()?如果是这样,尝试使用顶点数组绘制你的东西。即使这对您的具体情况没有帮助,应该尽可能避免立即模式绘制调用,以使代码向前兼容。 OpenGL 3.x核心配置文件不再包含这些旧的API函数。由于一些过时的直接模式绘制调用(FTGL),我的新Win 7笔记本电脑(OpenGL 3.3)上也出现空白屏幕。

编辑:

对于独立GL调试,我建议这样的:

http://www.gremedy.com/

这个程序允许你暂停执行,调查缓冲区的内容,着色器程序等等。

+0

我没有使用任何已弃用的功能,与OpenGL相关的所有内容都是3.0或更高版本。我没有使用VBOs,但我使用顶点数组作为我的所有绘图。我可以尝试使用VBOs,可能会导致这个问题,但它仍然不能解释为什么它在Windows 7中运行良好而不是8,并且顶点阵列仍然可以正常工作,无论如何你都希望。 – Tom

+0

客户端顶点数组不应该是问题的原因。着色器呢?你有没有一个程序绑定在所有drawcalls? – Sam

+0

gremedy调试器看起来很棒!感谢您的链接,我会看看如果我可以使用它来找出更多。我有两个简单的着色器,一个用于转换具有颜色属性的顶点,另一个用于使用tex坐标的顶点。当我使用它时,我绑定了每个着色器,代码与以前相同(当我使用Windows 7时),并且所有代码都正常工作。 – Tom

1

After installing the latest drivers

你从哪里得到司机?只有从GPU供应商网站直接下载的驱动程序才能提供适当的OpenGL支持。 Windows自动安装的驱动程序只有很差的OpenGL支持。

+0

我从NVidia的网站下载了最新的驱动程序。我的机器有9400M,我得到的驱动程序是310.70。它太奇怪了,因为它看起来像一切都应该工作,但没有显示,我不知道这是否是Windows 8特有的问题。我没有在Windows 7上发布相同的配置。 – Tom

-1

支持OpenGL不适用于8.their还是技术使用在Windows上它能够更好地在谷歌搜索怎么我尝试了我的世界游戏or u can check here too