Golang glfw中使用opengl库的问题

linuxshadow · · 2992 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

最近在看看一个Golang的项目,里面使用了GLFW和GL来写UI,之前从来没有接触过这两个库,安装官方文档写了一个例子。

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会不会也一样了,添加初始化代码之后就正常了。真的是才会新手犯的错啊。

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:linuxshadow

查看原文:Golang glfw中使用opengl库的问题

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2992 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传