mirror of
https://github.com/bloeys/nmage.git
synced 2025-12-29 05:18:21 +00:00
46 lines
893 B
Go
Executable File
46 lines
893 B
Go
Executable File
package shaders
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/go-gl/gl/v4.6-core/gl"
|
|
)
|
|
|
|
type ShaderType int
|
|
|
|
const (
|
|
Unknown ShaderType = iota
|
|
Vertex
|
|
Fragment
|
|
)
|
|
|
|
//GLType returns the GL shader type of this ShaderType
|
|
//Panics if not known
|
|
func (t ShaderType) GLType() uint32 {
|
|
|
|
switch t {
|
|
case Vertex:
|
|
return gl.VERTEX_SHADER
|
|
case Fragment:
|
|
return gl.FRAGMENT_SHADER
|
|
}
|
|
|
|
log.Panicf("Converting ShaderType->GL Shader Type failed. Unknown ShaderType of value: %v\n", t)
|
|
return 0
|
|
}
|
|
|
|
//FromGLShaderType returns the ShaderType of the passed GL shader type.
|
|
//Panics if not known
|
|
func (t ShaderType) FromGLShaderType(glShaderType int) ShaderType {
|
|
|
|
switch glShaderType {
|
|
case gl.VERTEX_SHADER:
|
|
return Vertex
|
|
case gl.FRAGMENT_SHADER:
|
|
return Fragment
|
|
default:
|
|
log.Printf("Converting GL shader type->ShaderType failed. Unknown GL shader type of value: %v\n", glShaderType)
|
|
return Unknown
|
|
}
|
|
}
|