Guest User

gl derp

a guest
May 2nd, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.66 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     gl "github.com/chsc/gogl/gl21"
  6.     "github.com/go-gl/glfw"
  7. )
  8.  
  9. var (
  10.     title   = "Test"
  11.     width   = 640
  12.     height  = 480
  13.     running = true
  14.     err     error
  15. )
  16.  
  17. const vertexsource = `
  18. attribute vec4 vPosition;
  19. void main()
  20. {
  21.     gl_Position = vPosition;
  22. }
  23. `
  24.  
  25. const fragmentsource = `
  26. precision mediump float;
  27. void main()
  28. {
  29.     gl_FragColor = vec4 ( 1.0, 1.0, 0.0, 1.0 );
  30. }
  31. `
  32.  
  33. func main() {
  34.     err = glfw.Init()
  35.     if err != nil {
  36.         fmt.Println(err)
  37.         return
  38.     }
  39.     glfw.OpenWindowHint(glfw.WindowNoResize, gl.TRUE)
  40.     err = glfw.OpenWindow(width, height, 8, 8, 8, 8, 32, 8, glfw.Windowed)
  41.     if err != nil {
  42.         fmt.Println(err)
  43.         return
  44.     }
  45.     glfw.SetSwapInterval(1)
  46.     glfw.SetWindowTitle(title)
  47.     glfw.SetKeyCallback(onKey)
  48.     gl.Init()
  49.     gl.ClearColor(0.3, 0.0, 0.7, 1.0)
  50.     // XYZ in OGL is -1 to +1 on the viewport: how far right, how far up + depth)
  51.     //a counter-clockwise triangle is front-facing
  52.     vertdata := [9]gl.Float{-1.0, 1.0, 0.0,     -1.0, -1.0, 0.0,    1.0, -0.0, 0.0}
  53.     var vbo gl.Uint
  54.     var pointer gl.Pointer
  55.     gl.GenBuffers(1, &vbo)
  56.     gl.BindBuffer(gl.ARRAY_BUFFER, vbo)
  57.     gl.BufferData(gl.ARRAY_BUFFER, 9*4, gl.Pointer(&vertdata[0]), gl.STATIC_DRAW)
  58.     gl.EnableVertexAttribArray(0)
  59.     gl.BindBuffer(gl.ARRAY_BUFFER, vbo)
  60.     gl.VertexAttribPointer(0, 3, gl.FLOAT, gl.FALSE, 0, pointer)
  61.  
  62.     for running == true {
  63.         gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
  64.  
  65.         gl.DrawArrays(gl.TRIANGLES, 0, 3)
  66.         //gl.DisableVertexAttribArray(0) Do before going to draw next array.
  67.         glfw.SwapBuffers()
  68.     }
  69.     glfw.Terminate()
  70. }
  71.  
  72. func onKey(key, state int) {
  73.     fmt.Println(key, state)
  74.     switch key {
  75.     case glfw.KeyEsc:
  76.         running = false
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment