Ejemplo n.º 1
0
Archivo: main.go Proyecto: andrebq/exp
// Load the shader only if it have been modified
func loadShaders(oldProgram gl.Program, last *shaderInfo) (gl.Program, *shaderInfo, error) {
	if last != nil {
		newInfo, err := loadShaderInfoIfNew("sample", last.vertMod, last.fragMod)
		if err != nil {
			return oldProgram, last, err
		}
		if newInfo == nil {
			// nothing new, can reuse the old code
			return oldProgram, last, nil
		} else {
			newProgram, err := createProgram(newInfo)
			if err != nil {
				return oldProgram, last, err
			}
			oldProgram.Delete()
			return newProgram, newInfo, err
		}
	}
	last, err := loadShaderInfo("sample")
	if err != nil {
		return oldProgram, last, err
	}
	oldProgram, err = createProgram(last)

	return oldProgram, last, err
}