mirror of
https://github.com/lloeki/ld48-29.git
synced 2025-12-06 02:54:40 +01:00
83 lines
1.5 KiB
Go
83 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"runtime"
|
|
"log"
|
|
gl "github.com/go-gl/gl"
|
|
glfw "github.com/go-gl/glfw3"
|
|
pa "code.google.com/p/portaudio-go/portaudio"
|
|
)
|
|
|
|
var _ = gl.Begin // TODO: remove later
|
|
var _ = glfw.Init // TODO: remove later
|
|
var _ = pa.Initialize // TODO: remove later
|
|
|
|
func onError(err glfw.ErrorCode, desc string) {
|
|
log.Printf("%v: %v\n", err, desc)
|
|
}
|
|
|
|
func onKey(window *glfw.Window, k glfw.Key, s int, action glfw.Action, mods glfw.ModifierKey) {
|
|
if action != glfw.Press {
|
|
return
|
|
}
|
|
|
|
switch glfw.Key(k) {
|
|
case glfw.KeyEscape:
|
|
window.SetShouldClose(true)
|
|
default:
|
|
return
|
|
}
|
|
|
|
}
|
|
|
|
func main() {
|
|
runtime.LockOSThread()
|
|
|
|
glfw.SetErrorCallback(onError)
|
|
|
|
if !glfw.Init() {
|
|
panic("Can't init glfw!")
|
|
}
|
|
defer glfw.Terminate()
|
|
|
|
window, err := glfw.CreateWindow(640, 480, "LD48-29", nil, nil)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
window.SetKeyCallback(onKey)
|
|
|
|
window.MakeContextCurrent()
|
|
|
|
setup()
|
|
defer destroy()
|
|
|
|
for !window.ShouldClose() {
|
|
render()
|
|
window.SwapBuffers()
|
|
glfw.PollEvents()
|
|
}
|
|
}
|
|
|
|
func setup() {
|
|
gl.Enable(gl.TEXTURE_2D)
|
|
gl.Enable(gl.DEPTH_TEST)
|
|
gl.Enable(gl.LIGHTING)
|
|
gl.Enable(gl.CULL_FACE)
|
|
|
|
gl.ClearColor(0.0, 0.0, 0.5, 0)
|
|
gl.ClearDepth(1)
|
|
gl.DepthFunc(gl.LEQUAL)
|
|
}
|
|
|
|
|
|
func destroy() {
|
|
// TODO: release objects
|
|
}
|
|
|
|
func render() {
|
|
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
|
|
gl.MatrixMode(gl.PROJECTION)
|
|
gl.LoadIdentity()
|
|
gl.Frustum(-1, 1, -1, 1, 1.0, 10.0)
|
|
}
|