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
|
AsuraEngine.Shader = AsuraEngine.Asset.Sub("Shader")
local Shader = AsuraEngine.Shader
function Shader.Ctor(self, vert, frag)
self.simShader = AsuraEngine.SimShader.New(vert, frag)
self.uniforms = {} -- 映射uniform name到location
end
function Shader.GetUniformLocation(self, name)
if self.uniforms then
local id = self.uniforms[name]
return id
end
return 0
end
function Shader.SendVec2(self, name, vec2)
local id = self:GetUniformLocation(name)
self.simShader:SendUniformVector2(name, vec2)
end
function Shader.SendVec3(self, name, vec3)
end
function Shader.SendVec4(self, name, vec4)
end
function Shader.SendTexture(self, name, tex)
end
function Shader.SendFloat(self, name, number)
end
function Shader.SendInteger(self, name, integer)
end
function Shader.SendColor(self, name, color)
end
function Shader.SendMat44(self, name, mat44)
end
return Shader
|