草庐IT

c++ - OpenGL 应用程序在其他计算机上崩溃

我在Windows864位的VisualStudio2012中用C++开发了一个OpenGL应用程序。它在我的本地机器上符合要求并且运行良好。该应用程序使用静态链接的库GLEW、SFML和GLM。现在我想在另一台机器上测试应用程序。所以从发布编译(以及包含着色器文件的文件夹)复制可执行文件。窗口显示为白色,但下一秒后不知何故崩溃了。然后我安装了VisualStudio2012并在新机器上编译了源代码,但我得到了同样令人失望的结果。应用程序在新机器上崩溃的原因是什么?我可以尝试什么?顺便说一句,这两款机器都使用AMDPhenomII处理器和带有最新稳定驱动程序的Radeon显卡。

windows - OpenGL 和(缺少)glBlendFuncSeparate

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

c++ - wglCreateContextAttribsARB 在有能力的硬件上返回 NULL

我有一个程序可以在Windows机器上创建OpenGL4.0上下文。在我自己的电脑上,这段代码可以工作——但是,在我friend的电脑上,它就不行了。wglCreateContextAttribsARB返回NULL,即使我friend的Nvidia卡支持OpenGL4.4并且应该能够返回向后兼容的上下文。其他所有调用都按预期进行。这是上下文创建代码:dc=GetDC(window::get());PIXELFORMATDESCRIPTORpfd={0};pfd.nSize=sizeof(pfd);pfd.dwFlags=PFD_DOUBLEBUFFER|PFD_SUPPORT_OPEN

c++ - GLEW 链接问题找不到 __imp_glGetIntegerv

注意:是的,我已经指定了GLEW_STATIC。因此,在尝试设置glew以用于新项目之前,我已经经历过这个rodeo,但现在我在项目中使用glew2.0,它会产生链接错误。我刚刚在Linux实例中生成了源代码并像这样使用它们。#include"Renderer.h"#include#include"GL/glew.h"#include"Logger.h"voidRenderer::init(void*windowHandle){Loggerlogger("Renderer::init");GLenumresult=glewInit();if(result!=GLEW_OK){LOG(l

c++ - 退出控制台后析构函数不运行

最近我一直在摆弄GLEW和win32,遇到了一个问题。每当我通过关闭窗口退出我的应用程序时,我的Window类的析构函数被调用并且我的openGL渲染上下文被删除。我可以这么说,因为我使用CodeXL测试了该程序,并且我的上下文被删除是肯定的。但是,如果我通过终止我的控制台(使用AllocConsole()创建)退出我的应用程序,我的上下文不会根据CodeXL被删除并泄漏内存。这是应该破坏我的上下文的析构函数:Window::~Window(){wglMakeCurrent(0,0);wglDeleteContext(renderingContext);}有谁知道为什么这个析构函数在关

c - 使用 minGW gcc 未定义对 _imp____glew* 函数的引用

我正在尝试在Win7x64系统上使用MinGW编译一个相对简单的OpenGL程序,但我不断收到对几个GLEW函数的undefinedreference。我已将库设置为链接到程序,并一直在四处寻找列表中可能缺少的任何库,但链接器的输出仍然如下所示:16:35:50****IncrementalBuildofconfigurationDebugforprojecttest****Info:InternalBuilderisusedforbuildgcc-LD:/DEV/openGL/lib/x86-LD:/DEV/x86/lib-otest.exetest.o-lfreeglut-lgla

c++ - 将 GLEW 添加到项目 (CMake)

我想将glfw和glew链接到我的图形编程项目。添加glfw非常简单,我按照他们网站上的说明进行操作。用glfw创建一个窗口效果很好。但是,我看不出添加GLEW的CMakeLists.txt有什么问题。该程序给出错误:“GL/glew.h:没有这样的文件或目录”。我的CMakeLists.txt:cmake_minimum_required(VERSION3.5)project(Starting)find_package(OpenGLREQUIRED)set(GLFW_BUILD_DOCSOFFCACHEBOOL""FORCE)set(GLFW_BUILD_TESTSOFFCACHEB

c++ - 在渲染之外的另一个线程中初始化 OpenGL 上下文

我正在主线程中初始化我的OpenGL上下文(SDL/GLEW)。但是渲染是在不同的线程中完成的(比如SDL_GL_SwapWindow或glDrawElements)。问题是,如果我调用SDL_GL_SwapWindow,什么也不会发生。我试图在每次交换后简单地更改透明颜色,但没有任何反应。voidrender(){//Rendering...}intmain(){//Initialization...threadrendering(render);}这会是问题吗? 最佳答案 不会像您预期的那样工作。OpenGL上下文是线程本地的。

c++ - Visual Studio 静态链接(freeglut,glew)

我使用freeglut和glew创建了一个项目,并试图静态链接它们。目前,当我构建项目时,我得到一个exe和两个dll(freeglut32.dll和glew32.dll)。我想让它只得到exe。为了安装库,我使用了NuGet。(Install-Packagefreeglut)和(Install-Packageglew)。NuGet下载glew.lib到.\packages\glew.1.9.0.1\build\native\lib\v110\x64\Release\static\glew.lib和freeglut到.\packages\freeglut.2.8.1.15\build\

c++ - 如何在 Qt 中使用 GLEW?

我想在Windows下将GLEW与Qt一起使用(如果重要的话是7)。我所做的是访问GLEW网站,下载适用于windows的程序包,然后将glew.dll放入System32文件夹中。在我的pro文件中,我用LIBS+=.../path_to_the_libs/glew32.lib引用了.lib文件。glew32s.lib也一样(不确定后者的用途)。在我的QGLWidget子类中,我确保glew.h包含在之前因此在gl.h之前和glu.h.在main()函数我做的第一件事就是调用glewInit并调用glGetError但是我的应用程序退出时出现了一些奇怪的代码,比如一个非常大的负数。我