Go语言(Golang)是Google在2009年推出的一种编程语言。Golang是一门开源的语言,可以从github上找到它的源码。Golang也是一门跨平台的语言,可以运行在Windows、Linux、Mac OS X以及Plan9等操作系统上,更多详细的介绍可以参考Golang的官方网站
本文主要介绍使用Golang如何开发OpenGL程序,搭建go-gl的开发环境。使用Golang开发OpenGL程序时,相比较于C/C++少了很多配置的过程,整体来说非常的方便。
本文配置的环境可以在go-gl这个站点找到,主要包括:
安装过程根据操作系统不同略有区别,Mac OS X和Linux只需要从Golang的官网下载最新的安装包安装即可。Windows下稍有不同,由于go-glfw库需要依赖于gcc编译器,但是在Windows系统下并没有,因此需要额外安装其他的工具。
在Windows系统下可以安装MSYS2, 经过测试发现:目前版本的Go-GLFW在64位下编译会出现错误,因此只能下载msys2的32位版本,安装32位版本的gcc,同样Golang的版本也只能安装32位的版本,以目前最新版本的Golang为例(Go-1.10),在Windows下需要下载的内容有:
下载安装完成之后,msys2还需要更新和安装gcc,步骤如下:
pacman -Syu
pacman -Su
pacman -S mingw-w64-i686-gcc
安装完成后,需要将gcc设置到环境变量PATH中,gcc安装的位置在msys2的安装目录下的mingw32/bin中,配置完成后可以在CMD中查看gcc版本信息。
在命令行中输入
go get -u github.com/go-gl/glfw/v3.2/glfw
安装成功之后可以在GO的工作目录($GOPATH\pkg\windows_386\github.com\go-gl\glfw\v3.2)下找到已经编译完成的glfw库
go-gl可以选择OpenGL显卡支持的版本来安装,可以安装多个不同版本,在需要的时候引入合适的版本即可,输入
go get -u github.com/go-gl/gl/v4.5-core/gl
等待编译完成后,OpenGL 4.5的Golang库便完成了。
建议编译 v2.1和v3.3-core以及最新版本的v4.6-core三个版本, 这样既可以使用Legecy的OpenGL
API也可以使用最新的OpenGL API
在命令行工具中输入
go get -u github.com/go-gl/mathgl/...
等待编译完成
命令行输入
go get github.com/go-gl/gltext
最后通过创建一个简单的glfw的窗口,验证整个安装过程是否成功,代码如下:
新建一个helloglfw.go的文件
package main
import (
"runtime"
"github.com/go-gl/glfw/v3.2/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()
}
}
使用命令行工具切换到该目录下,输入
go build helloglfw.go
如果可以生成一个对应的helloglfw.exe文件,说明整个配置成功了,之后便可以开始Go-gl之旅了!