Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- gl "github.com/chsc/gogl/gl21"
- "github.com/go-gl/glfw"
- )
- var (
- title = "Test"
- width = 640
- height = 480
- running = true
- err error
- )
- const vertexsource = `
- attribute vec4 vPosition;
- void main()
- {
- gl_Position = vPosition;
- }
- `
- const fragmentsource = `
- precision mediump float;
- void main()
- {
- gl_FragColor = vec4 ( 1.0, 1.0, 0.0, 1.0 );
- }
- `
- func main() {
- err = glfw.Init()
- if err != nil {
- fmt.Println(err)
- return
- }
- glfw.OpenWindowHint(glfw.WindowNoResize, gl.TRUE)
- err = glfw.OpenWindow(width, height, 8, 8, 8, 8, 32, 8, glfw.Windowed)
- if err != nil {
- fmt.Println(err)
- return
- }
- glfw.SetSwapInterval(1)
- glfw.SetWindowTitle(title)
- glfw.SetKeyCallback(onKey)
- gl.Init()
- gl.ClearColor(0.3, 0.0, 0.7, 1.0)
- // XYZ in OGL is -1 to +1 on the viewport: how far right, how far up + depth)
- //a counter-clockwise triangle is front-facing
- vertdata := [9]gl.Float{-1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -0.0, 0.0}
- var vbo gl.Uint
- var pointer gl.Pointer
- gl.GenBuffers(1, &vbo)
- gl.BindBuffer(gl.ARRAY_BUFFER, vbo)
- gl.BufferData(gl.ARRAY_BUFFER, 9*4, gl.Pointer(&vertdata[0]), gl.STATIC_DRAW)
- gl.EnableVertexAttribArray(0)
- gl.BindBuffer(gl.ARRAY_BUFFER, vbo)
- gl.VertexAttribPointer(0, 3, gl.FLOAT, gl.FALSE, 0, pointer)
- for running == true {
- gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
- gl.DrawArrays(gl.TRIANGLES, 0, 3)
- //gl.DisableVertexAttribArray(0) Do before going to draw next array.
- glfw.SwapBuffers()
- }
- glfw.Terminate()
- }
- func onKey(key, state int) {
- fmt.Println(key, state)
- switch key {
- case glfw.KeyEsc:
- running = false
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment