Commit 9986b87f authored by Boris Mühmer's avatar Boris Mühmer
Browse files

snapshot - not working yet

parent c48f7c45
Loading
Loading
Loading
Loading
+87 −1
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import (
	"repositories.muehmer.net/bsmrgo/saola/support/scene"

	gi "repositories.muehmer.net/bsmrgo/geometry/icosahedron"
	shader "repositories.muehmer.net/bsmrgo/saola/support/shader"
)

const (
@@ -29,10 +30,43 @@ func Hooks() scene.HooksType {
	return hooks
}

// VAO_IDs
const (
	Trianges = iota
	NumVAOs
)

// Buffer_IDs
const (
	ArrayBuffer = iota
	NumBuffers
)

// Attrib_IDs
const (
	vPosition   = 0
	NumVertices = 6
)

// Buffers
var (
	//VAOs [NumVAOs]uint32
	//Buffers [NumBuffers]uint32
	VAOs    []uint32
	Buffers []uint32
)

func init() {
	VAOs = make([]uint32, NumVAOs)
	Buffers = make([]uint32, NumBuffers)
}

// Initialize the environment.
func initialize() {
	fmt.Fprintf(os.Stderr, "[%s] Initialize()\n", sceneName)

	var err error

	ico, err := gi.Create()
	if err != nil {
		panic(err)
@@ -44,6 +78,49 @@ func initialize() {
	for i, icoFace := range ico.Faces() {
		fmt.Printf("f[%d] = %v\n", i, icoFace)
	}

	pvaos := &VAOs[0]
	gl.GenVertexArrays(NumVAOs, pvaos)
	gl.BindVertexArray(VAOs[Trianges])

	vertices := [NumVertices][2]float32{
		{-0.90, -0.90},
		{0.85, -0.90},
		{-0.90, 0.85},
		{0.90, -0.85},
		{0.90, 0.90},
		{-0.85, 0.90},
	}

	abp := &Buffers[ArrayBuffer]
	gl.GenBuffers(NumBuffers, abp)
	gl.BindBuffer(gl.ARRAY_BUFFER, Buffers[ArrayBuffer])
	vp := &vertices[0][0]
	gl.BufferData(gl.ARRAY_BUFFER, len(vertices), gl.Ptr(vp), gl.STATIC_DRAW)

	//gl.CreateBuffers(NumBuffers, (*uint32)(gl.Ptr(&Buffers[0])))
	//gl.CreateBuffers(NumBuffers, (*uint32)(gl.Ptr(&Buffers[ArrayBuffer])))
	//abp := &Buffers[ArrayBuffer]
	//gl.CreateBuffers(NumBuffers, abp)
	//gl.NamedBufferStorage(Buffers[ArrayBuffer], len(vertices), gl.Ptr(&vertices[0][0]), 0)
	//vp := &vertices[0][0]
	//gl.NamedBufferStorage(Buffers[ArrayBuffer], len(vertices), gl.Ptr(vp), 0)
	//gl.NamedBufferStorage(Buffers[ArrayBuffer], len(vertices), vp, 0)

	// load shaders
	basepath := "/home/MUEHMER/bsmr/go/src/repositories.muehmer.net/bsmrgo/graphics-playground/scenes/icosahedron/shaders/"
	fis := shader.FileInfos{
		{Type: gl.VERTEX_SHADER, Filename: basepath + "vertex.glsl"},
		{Type: gl.FRAGMENT_SHADER, Filename: basepath + "fragment.glsl"},
	}
	program, err := shader.LoadShadersFromFile(fis)
	if err != nil {
		panic(err)
	}
	gl.UseProgram(program)

	gl.VertexAttribPointer(vPosition, 2, gl.FLOAT, false, 0, gl.PtrOffset(0))
	gl.EnableVertexAttribArray(vPosition)
}

// Resize changes the view.
@@ -51,9 +128,18 @@ func resize(width, height int) {
	fmt.Fprintf(os.Stderr, "[%s] Resize(%d, %d)\n", sceneName, width, height)
}

var (
	black = []float32{0.0, 0.0, 0.0, 0.0}
)

// Render something.
func render() {
	gl.Clear(gl.COLOR_BUFFER_BIT)
	//gl.Clear(gl.COLOR_BUFFER_BIT)
	//gl.ClearBufferfv(gl.COLOR, 0, (*float32)(gl.Ptr(&black[0])))
	bp := &black[0]
	gl.ClearBufferfv(gl.COLOR, 0, bp)
	gl.BindVertexArray(VAOs[Trianges])
	gl.DrawArrays(gl.TRIANGLES, 0, NumVertices)
}

func keyCallback(w *glfw.Window, key glfw.Key, scancode int, action glfw.Action, mods glfw.ModifierKey) {
+8 −0
Original line number Diff line number Diff line
#version 430 core

out vec4 fColor;

void main()
{
    fColor = vec4(0.0, 0.0, 1.0, 1.0);
}
+8 −0
Original line number Diff line number Diff line
#version 430 core

layout (location = 0) in vec4 vPosition;

void main()
{
    gl_Position = vPosition;
}