-
Notifications
You must be signed in to change notification settings - Fork 0
/
shadermodulesshape3dopengl.go
60 lines (50 loc) · 1.5 KB
/
shadermodulesshape3dopengl.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package gohome
import (
"github.com/PucklaMotzer09/GLSLGenerator"
"strings"
)
var (
AttributesShape3D = []glslgen.Variable{
glslgen.Variable{"vec3", "highp", "vertex"},
glslgen.Variable{"vec4", "highp", "color"},
}
UniformModuleMatricesDefault3D = glslgen.Module{
Uniforms: []glslgen.Variable{
glslgen.Variable{"mat4", "highp", "viewMatrix3D"},
glslgen.Variable{"mat4", "highp", "projectionMatrix3D"},
},
Name: "uniformModuleMatricesDefault",
}
UniformModuleMatricesNormal3D = glslgen.Module{
Uniforms: []glslgen.Variable{
glslgen.Variable{"mat4", "highp", "transformMatrix3D"},
},
Name: "uniformModuleMatricesNormal",
}
)
func generateShaderShape3D() (n, v, f string) {
var vertex glslgen.VertexGenerator
var fragment glslgen.FragmentGenerator
if Render.GetName() == "WebGL" {
vertex.SetVersion("WebGL")
fragment.SetVersion("WebGL")
} else if strings.Contains(Render.GetName(), "OpenGLES") {
vertex.SetVersion("100")
fragment.SetVersion("100")
} else {
vertex.SetVersion("110")
fragment.SetVersion("110")
}
vertex.AddAttributes(AttributesShape3D)
vertex.AddOutputs(OutputsShape2D)
vertex.AddModule(UniformModuleMatricesDefault3D)
vertex.AddModule(UniformModuleMatricesNormal3D)
vertex.AddModule(CalculatePositionModule3D)
vertex.AddModule(FinishFragColorModule2D)
fragment.AddMakros(MakrosFragment2D)
fragment.AddInputs(OutputsShape2D)
fragment.AddModule(FragColorModuleFragment2D)
n = SHAPE3D_SHADER_NAME
v, f = vertex.String(), fragment.String()
return
}