草庐IT

opengl_test

全部标签

opengl - GLUT 退出重新定义错误

在我的简单OpenGL程序中,出现以下关于退出重新定义的错误:1>c:\programfiles\microsoftvisualstudio8\vc\include\stdlib.h(406):errorC2381:'exit':redefinition;__declspec(noreturn)differs1>c:\programfiles\microsoftvisualstudio8\vc\platformsdk\include\gl\glut.h(146):seedeclarationof'exit'我正在使用NateRobins的GLUTforWin32并在VisualStud

c++ - CoInitializeEx 用于 boost::test::unit_test

前几天,我决定需要了解Windows平台上C++的测试驱动开发(使用VisualStudio2010Premium)。在决定试用boost的单元测试框架之前,我环顾四周。我应该说我选择了boostpro.com的版本(如果我没记错的话,当前版本是1.44)。这有一个静态库的构建,所以我不在我的测试中使用DLL。Boost的单元测试文档谈到将代码与测试套件分开,这似乎很合理。但随后您必须处理从现在独立的测试套件项目中引用代码的问题。所以我有一个要测试的库项目(但我仍然不确定如何编写可以引用.exe项目的测试...)所以我在我的解决方案中创建了一个单独的项目,称为单元测试。我添加了以下代码

c++ - 控制台窗口有图标,但 OpenGL/GLUT 窗口没有。为什么?

我在Windows下用C/C++/OpenGL/GLUT编写程序。我想在我的程序中添加一个图标。我使用MinGW和命令提示符来编译我唯一的一个.cpp文件。我自己写了一些.bat文件,我可以将其编译为Debug模式、Release模式等。我想在我的程序中添加一个图标。所以,我做了一个新的编译bat,看起来像这样:windresresource.rcobject.osetPATH=%PATH%;c:\mingw\bing++program.cppobject.o>>>someothersettings我有一个.ico文件和一个“资源脚本”语言的资源文件。资源文件如下所示:#ifndef_

windows - OpenGL 和(缺少)glBlendFuncSeparate

我需要将几张图片混合成一张图片,就像这里描述的那样:OpenGL-maskwithmultipletextures.我使用了那里提出的解决方案,但glBlendFuncSeparate方法存在问题。原来这个方法是在后来的openGL版本中引入的,根据我的gl.h文件,我使用的版本是1.经过大量搜索和阅读后,我意识到这就是我必须处理的问题,我不能只升级我的openGL版本。我继续下载GLEW。我将glew.h和glew.c添加到我的VS10项目中,定义了GLEW_BUILD现在它终于可以编译而不会提示glBlendFuncSeparate,但是当我运行该程序时,它在尝试调用该方法时崩溃,

c++ - 在 win7 下,为 opengl 窗口捕获的图像是黑色的

我在主窗口上有几个子窗口,有的是GDI窗口,有的是opengl渲染的窗口,一个功能是用rect截取图像(可能覆盖不同的窗口组合)。此功能在windowsxp下工作正常。但是在windows7下,所有opengl渲染的窗口都是黑色的。我做了一些研究,有人说gdi不能通过窗口DC直接访问帧缓冲区,必须使用glReadPixels来组合位图。然而,这种方法很尴尬,因为我必须分别组合该矩形中的每个窗口。谁有更好的选择?这是我捕获bmp的代码:voidMainWndClass::catchBmp(constchar*path_fn,booldrawAreaOnly/*=0*/){CDC*pDC=

c++ - OpenGL:如何自动选择正确的 mipmapping 方法?

我在对不同硬件上的纹理进行纹理映射时遇到问题。我使用以下代码:char*exts=(char*)glGetString(GL_EXTENSIONS);if(strstr(exts,"SGIS_generate_mipmap")==NULL){//usegluBuild2DMipmaps()}else{//useGL_GENERATE_MIPMAP}但在某些卡上,它说GL_GENERATE_MIPMAP受支持,而实际上它不支持,因此gfx卡试图从mipamp应该所在的位置读取内存,因此卡将其他纹理渲染到那些miplevels。​​我试过glGenerateMipmapEXT(GL_TEX

windows - 用于 OpenGL 1.1 函数的 wglGetProcAddress

OpenGL网站上的这个wiki页面声称OpenGL1.1函数不应通过wglGetProcAddress加载,措辞似乎暗示如果您尝试某些系统将按设计返回NULL:http://www.opengl.org/wiki/Platform_specifics:_Windows#wglGetProcAddress(想法是只有1.2+函数值得通过wglGetProcAddress加载)。该页面没有告诉我们谁报告了这些对1.1函数的wglGetProcAddress调用失败,这是我从未亲眼见过的。谷歌搜索也几乎没有关于该问题的信息。对于足够多的用户,wglGetProcAddress()实际上会为

c++ - 去除 OpenGL 橡皮筋伪影

我正在使用一些用于科学可视化的OpenGL代码,但我在让它的橡皮筋在较新的硬件上工作时遇到了问题。该代码在现有场景上绘制一个“缩放窗口”,“缩放窗口”的一个角位于存储的左键单击位置,另一个角在鼠标移动时位于鼠标下方。在第二次左键单击场景放大到选定的窗口。当鼠标在场景中移动时,我看到的症状是:出现橡皮筋伪影,即用于创建“缩放窗口”的行未被第二个“RenderLogic”channel从缓冲区中删除(参见下面的代码)我可以清楚地看到前一个缓冲区的内容随着缓冲区的交换而闪烁和消失上述问题不会发生在低端硬件上,例如我拥有的上网本上的集成显卡。另外,我不记得大约5年前编写这段代码时遇到过这个问题

windows - 如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE}

我似乎无法弄清楚如何在cmake中使用add_test传递${CTEST_CONFIGURATION_TYPE}而无需CMake添加额外的转义字符。我目前正在使用cmake生成VS项目文件并设置RUNTIME_OUTPUT_DIRECTORY并且需要使用此目录+配置作为一些测试的工作目录,因为它们依赖于其他构建的可执行文件。我试过用add_test(NAMEtestWORKING_DIRECTORY"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CTEST_CONFIGURATION_TYPE}"COMMANDtest${TEST_ARGS})这正确地找到了

Virtualbox 虚拟机 : is it OpenGL 1. x 上的 Windows 7 兼容吗?

在Windows7客户机的VirtualBox虚拟机设置(或系统信息)中,我无法确定我的虚拟显卡是否与OpenGL1.x兼容。我需要OpenGL1.x兼容性才能使用theBlackBerry7simulator进行测试.VirtualBox默认通用显卡是否支持OpenGL1.x? 最佳答案 是的,您的guestVM将能够运行OpenGL1.x和更新版本。通过虚拟机菜单栏中的“设备”菜单安装VirtualBoxGuestAdditionsVirtualBoxhasahandymenuitemnamed"Installguestaddi