public void Clear() { TimeSource.Clear(); Shaders.Clear(); Textures.Clear(); uniforms.Clear(); ShaderKeyframes.Clear(); }
public DemoModel(VisualContext visualContext, IShaders shaders, ITextures textures, bool isLooping) { uniforms = new Uniforms(); ShaderKeyframes = new ShaderKeyframes(); TimeSource = new DemoTimeSource(isLooping); this.visualContext = visualContext; Shaders = shaders; Textures = textures; }
public bool UpdateBuffer(int mouseX, int mouseY, int mouseButton, int bufferWidth, int bufferHeight) { visualContext.UpdateSurfaceSize(bufferWidth, bufferHeight); var currentShader = ShaderKeyframes.GetCurrentShader(TimeSource.Position); var shaderLinked = visualContext.SetShader(currentShader); visualContext.SetUniform("iGlobalTime", TimeSource.Position); visualContext.SetUniform("iResolution", bufferWidth, bufferHeight); visualContext.SetUniform("iMouse", mouseX, mouseY, mouseButton); uniforms.Interpolate(TimeSource.Position, (name, value) => visualContext.SetUniform(name, value)); //override with custom uniforms SetCustomUniforms?.Invoke(visualContext); visualContext.Update(); return(shaderLinked); }