首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOIL OpenGL库在类内崩溃

SOIL OpenGL库在类内崩溃
EN

Stack Overflow用户
提问于 2012-08-29 13:47:26
回答 1查看 1.2K关注 0票数 0

我正在使用OpenGL开发一个简单的3D模型加载器,我想添加纹理支持。但是,由于不想不必要地重写映像库,我下载了我在关于纹理映射的OpenGL教程中学到的SOIL (简单的NeHe图像库)。它有一些非常有用的函数,可以处理多次加载图像并将它们传递给OpenGL。

问题是:在NeHe教程代码中,土壤函数

代码语言:javascript
复制
SOIL_load_OGL_texture(char *, param,param,param) 

就像承诺的那样,多边形被映射成正确的图片。但是,我已经创建了一个类来加载OBJ和MTL文件(3D模型文件)。当我尝试使用SOIL函数在这个类中加载纹理时,我的程序就崩溃了。

  • 我在代码::C++中使用GNU代码(我也在Dev-C++中尝试了这段代码)
  • 我没有收到来自带有-g -Wall的编译器的错误或警告。
  • 我已经正确地链接并包含了项目中的所有内容(如果我复制/粘贴NeHe代码,它就会正常运行)。
  • SOIL命令在任何类中都不起作用(我试着创建另一个类,它只执行SOIL函数,并且遇到了同样的问题)。
  • 传递给函数的文件路径都是正确的。我试过相对和绝对,所有格式的正反斜杠。我复制并粘贴了在NeHe代码中工作的绝对路径到我的代码中,但它不起作用。
  • 我的其余代码工作良好-我可以得到我的形状与它的环境/漫射/等颜色和其他设置适当地应用。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-29 17:27:35

在调用该函数时,听起来几乎没有一个有效的OpenGL上下文。

您确定只在初始化opengl上下文之后才调用SOIL吗?(例如,在程序初始化时构造的对象没有静态构造)。检查这一点的一个快速方法是在opengl初始化中放置一个断点,看看是否命中了BP,或者程序是否首先崩溃。

另外,确保SOIL调用与opengl上下文位于同一个线程上。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12179464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档