-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdefaults.go
More file actions
93 lines (78 loc) · 2.13 KB
/
defaults.go
File metadata and controls
93 lines (78 loc) · 2.13 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package glitch
import (
_ "embed"
"github.com/unitoftime/glitch/shaders"
)
// //go:embed shaders/sprite.vs
// var spriteVertexShader string;
// //go:embed shaders/sprite.fs
// var spriteFragmentShader string;
// var spriteShader = ShaderConfig{
// VertexShader: spriteVertexShader,
// FragmentShader: spriteFragmentShader,
// VertexFormat: VertexFormat{
// VertexAttribute("positionIn", AttrVec3, PositionXYZ),
// VertexAttribute("colorIn", AttrVec4, ColorRGBA),
// VertexAttribute("texCoordIn", AttrVec2, TexCoordXY),
// },
// UniformFormat: UniformFormat{
// Attr{"model", AttrMat4},
// Attr{"projection", AttrMat4},
// Attr{"view", AttrMat4},
// },
// }
// func VertexAttribute(name string, Type AttrType, swizzle SwizzleType) VertexAttr {
// return VertexAttr{
// Attr: Attr{
// Name: name,
// Type: Type,
// },
// Swizzle: swizzle,
// }
// }
var defaultSpriteShader *Shader // Can set this to whatever you want
func SetDefaultSpriteShader(shader *Shader) {
defaultSpriteShader = shader
}
func GetDefaultSpriteShader() *Shader {
if defaultSpriteShader != nil {
return defaultSpriteShader
}
var err error
defaultSpriteShader, err = NewShader(shaders.SpriteShader)
if err != nil {
panic(err)
}
return defaultSpriteShader
}
func DefaultMaterial(texture *Texture) Material {
material := NewMaterial(GetDefaultSpriteShader())
material.texture = texture
return material
}
var defaultMsdfShader *Shader // Can set this to whatever you want
func SetDefaultMsdfShader(shader *Shader) {
defaultSpriteShader = shader
}
func GetDefaultMsdfShader() *Shader {
if defaultMsdfShader != nil {
return defaultMsdfShader
}
var err error
defaultMsdfShader, err = NewShader(shaders.MSDFShader)
if err != nil {
panic(err)
}
return defaultMsdfShader
}
func DefaultMsdfMaterial(texture *Texture) Material {
material := NewMaterial(GetDefaultMsdfShader())
material.SetBlendMode(BlendModeNormal)
material.texture = texture
material.
SetUniform("u_threshold", 0.5).
SetUniform("u_outline_width_relative", 0.1).
SetUniform("u_outline_blur", 0.0).
SetUniform("u_outline_color", RGBA{0, 0, 0, 1})
return material
}