Golang glfw中使用opengl库的问题
2016-03-16 23:56
591 查看
最近在看看一个Golang的项目,里面使用了GLFW和GL来写UI,之前从来没有接触过这两个库,安装官方文档写了一个例子。
这个例子可以直接run,一切都很正常。后来看到一个C库的例子,想照猫画一下,但是就遇到问题了。
按照这个例子添加了如下代码:
直接运行会报错:
找了很久都找不到为什么会报这个错。
突然意识到go是面向对象的语言,glfw都使用了初始化的函数,gl会不会也一样了,添加初始化代码之后就正常了。真的是才会新手犯的错啊。
package main import ( "runtime" "github.com/go-gl/glfw/v3.1/glfw" ) func init() { // This is needed to arrange that main() runs on main thread. // See documentation for functions that are only allowed to be called from the main thread. runtime.LockOSThread() } func main() { err := glfw.Init() if err != nil { panic(err) } defer glfw.Terminate() window, err := glfw.CreateWindow(640, 480, "Testing", nil, nil) if err != nil { panic(err) } window.MakeContextCurrent() for !window.ShouldClose() { // Do OpenGL stuff. window.SwapBuffers() glfw.PollEvents() } }
这个例子可以直接run,一切都很正常。后来看到一个C库的例子,想照猫画一下,但是就遇到问题了。
按照这个例子添加了如下代码:
gl.Begin(gl.TRIANGLES) gl.Color3f(1.0, 0.0, 0.0) //red gl.Vertex3f(0.0, 1.0, 0.0) gl.Color3f(0.0, 1.0, 0.0) //Green gl.Vertex3f(-1.0, -1.0, 0.0) gl.Color3f(0.0, 0.0, 1.0) //blue gl.Vertex3f(1.0, -1.0, 0.0) gl.End()
直接运行会报错:
fatal error: unexpected signal during runtime execution
找了很久都找不到为什么会报这个错。
突然意识到go是面向对象的语言,glfw都使用了初始化的函数,gl会不会也一样了,添加初始化代码之后就正常了。真的是才会新手犯的错啊。
相关文章推荐
- 解决Vista系统OpenGL驱动问题的方法整理
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- 通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸
- VC运用OPENGL加载BMP纹理图的实现方法汇总
- java实现OpenGL ES纹理映射的方法
- java基于OpenGL ES实现渲染实例
- OpenGL坐标系介绍
- 【翻译】安卓opengl ES教程之四——添加颜色
- linux下opengl的安装(with qt)
- OpenGL超级宝典笔记——显示列表
- OpenGL超级宝典笔记——顶点数组
- OpenGL生成轮廓
- OpenGL超级宝典笔记——性能比较
- OpenGL超级宝典笔记——顶点缓冲区对象
- OpenGL超级宝典笔记——选择
- OpenGL超级宝典笔记——反馈
- OpenGL超级宝典笔记——遮挡查询