main: backport gl02 goodies
This commit is contained in:
7
cmd/main.cfg.json
Normal file
7
cmd/main.cfg.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"WindowWidth": 1600,
|
||||
"WindowHeight": 900,
|
||||
|
||||
"FramerateLimit": 60
|
||||
}
|
||||
|
32
cmd/main.go
32
cmd/main.go
@ -13,34 +13,48 @@ import (
|
||||
"github.com/go-gl/glfw/v3.3/glfw"
|
||||
)
|
||||
|
||||
const (
|
||||
//windowWidth = 852
|
||||
//windowHeight = 480
|
||||
windowWidth = 1600
|
||||
windowHeight = 900
|
||||
var (
|
||||
frameTick *time.Ticker
|
||||
)
|
||||
|
||||
|
||||
func init() {
|
||||
runtime.LockOSThread()
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
err := gio.LoadConfig()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if err := glfw.Init(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer glfw.Terminate()
|
||||
|
||||
// framerate limit ticker
|
||||
if gio.MainConfig.FramerateLimit > 0 {
|
||||
frameTick = time.NewTicker(time.Second / time.Duration(gio.MainConfig.FramerateLimit))
|
||||
}
|
||||
|
||||
glfw.WindowHint(glfw.Resizable, 1)
|
||||
glfw.WindowHint(glfw.ContextVersionMajor, 3)
|
||||
glfw.WindowHint(glfw.ContextVersionMinor, 3)
|
||||
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
|
||||
glfw.WindowHint(glfw.OpenGLForwardCompatible, 1)
|
||||
win, err := glfw.CreateWindow(windowWidth, windowHeight, "Gl01", nil, nil)
|
||||
win, err := glfw.CreateWindow(gio.MainConfig.WindowWidth, gio.MainConfig.WindowHeight, "Gl01", nil, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
win.MakeContextCurrent()
|
||||
glfw.SwapInterval(1)
|
||||
// vsync
|
||||
if gio.MainConfig.FramerateLimit == 0 {
|
||||
glfw.SwapInterval(1)
|
||||
} else {
|
||||
glfw.SwapInterval(0)
|
||||
}
|
||||
|
||||
err = gl.Init()
|
||||
if err != nil {
|
||||
@ -83,5 +97,9 @@ func main() {
|
||||
} else {
|
||||
fpsCounter++
|
||||
}
|
||||
|
||||
if gio.MainConfig.FramerateLimit > 0 {
|
||||
<-frameTick.C
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user