diff options
Diffstat (limited to 'Source/Asura.Framework/scripts/graphics/shader.lua')
-rw-r--r-- | Source/Asura.Framework/scripts/graphics/shader.lua | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/Asura.Framework/scripts/graphics/shader.lua b/Source/Asura.Framework/scripts/graphics/shader.lua index a886481..728ab34 100644 --- a/Source/Asura.Framework/scripts/graphics/shader.lua +++ b/Source/Asura.Framework/scripts/graphics/shader.lua @@ -3,13 +3,21 @@ AsuraEngine.Shader = AsuraEngine.Asset.Sub("Shader") local Shader = AsuraEngine.Shader function Shader.Ctor(self, vert, frag) - local simShader = AsuraEngine.simShader(vert, frag) - self.simShader = shader + 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) |