1. 簡介
Go語言(Golang)是Google在2009年推出的一種程式設計語言。Golang是一門開源的語言,可以從github上找到它的源碼。Golang也是一門跨平台的語言,可以運行在Windows、Linux、Mac OS X以及Plan9等作業系統上,更多詳細的介紹可以參考Golang的官方網站
本文主要介紹使用Golang如何開發OpenGL程式,搭建go-gl的開發環境。使用Golang開發OpenGL程式時,相比較於C/C++少了很多配置的過程,整體來說非常的方便。
2. 安裝
本文配置的環境可以在go-gl這個網站找到,主要包括:
- go-glfw :渲染視窗和滑鼠鍵盤等事件處理
- go-gl:OpenGL介面的Golang綁定
- mathgl:數學計算庫
- gltext:文字渲染庫
安裝過程根據作業系統不同略有區別,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下需要下載的內容有:
- Go 1.10 32位版本:go1.10.windows-386.msi
- 32位版本的msys2:msys2-i686-20161025.exe
下載安裝完成之後,msys2還需要更新和安裝gcc,步驟如下:
3.2 GO-GL安裝
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
3.3 MathGL安裝
在命令列工具中輸入
go get -u github.com/go-gl/mathgl/...
等待編譯完成
3.4 GLTEXT安裝
命令列輸入
go get github.com/go-gl/gltext
4. 測試
最後通過建立一個簡單的glfw的視窗,驗證整個安裝過程是否成功,代碼如下:
建立一個helloglfw.go的檔案
package mainimport ( "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之旅了!