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