Esempio n. 1
0
 public void Clear()
 {
     TimeSource.Clear();
     Shaders.Clear();
     Textures.Clear();
     uniforms.Clear();
     ShaderKeyframes.Clear();
 }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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);
        }