public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("direction", 1f / Graphics.GetWidth(), 0f); buffer.Swap(m_shader); m_shader.Send("direction", 0f, 1f / Graphics.GetHeight()); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("direction", 1f / Graphics.GetWidth(), 0); m_shader.Send("radius", Mathf.Floor(Radius.X + .5f)); buffer.Swap(m_shader); m_shader.Send("direction", 0, 1f / Graphics.GetHeight()); m_shader.Send("radius", Mathf.Floor(Radius.Y + .5f)); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("opacity", Mathf.Max(Opacity, 0)); m_shader.Send("size", Mathf.Max(Size, 0)); m_shader.Send("noise", Mathf.Random(), Mathf.Random()); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("distortionFactor", DistortionFactor.X, DistortionFactor.Y); m_shader.Send("feather", Feather); m_shader.Send("scaleFactor", ScaleFactor); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { var dx = Mathf.Cos(Angle) * Radius / Graphics.GetWidth(); var dy = Mathf.Sin(Angle) * Radius / Graphics.GetHeight(); m_shader.Send("direction", dx, dy); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("radius", Math.Max(0, Radius)); m_shader.Send("softness", Math.Max(0, Softness)); m_shader.Send("opacity", Math.Max(0, Opacity)); m_shader.Send("color", Color.X, Color.Y, Color.Z, 1); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("width", m_width); m_shader.Send("phase", Phase); m_shader.Send("thickness", Thickness); m_shader.Send("opacity", Opacity); m_shader.Send("color", Color); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("exposure", Mathf.Clamp01(Exposure)); m_shader.Send("decay", Mathf.Clamp01(Decay)); m_shader.Send("density", Mathf.Clamp01(Density)); m_shader.Send("weight", Mathf.Clamp01(Weight)); m_shader.Send("light_position", LightPosition); m_shader.Send("samples", Mathf.Max(Samples, 1f)); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { UpdateSceneCanvas(); buffer.Swap(); var front = buffer.Front; var scene = buffer.Back; var back = m_scene; // 1st pass: draw scene with brightness threshold Graphics.SetCanvas(front); Graphics.Clear(); Graphics.SetShader(m_shaderThreshold); Graphics.Draw(scene); // 2nd pass: apply blur shader in x m_shaderBlur.Send("direction", 1f / Graphics.GetWidth(), 0f); Graphics.SetCanvas(back); Graphics.Clear(); Graphics.SetShader(m_shaderBlur); Graphics.Draw(front); // 3nd pass: apply blur shader in y and draw original and blurred scene Graphics.SetCanvas(front); Graphics.Clear(); // original scene without blur shader Graphics.SetShader(); Graphics.SetBlendMode(BlendMode.Add, BlendAlphaMode.PreMultiplied); Graphics.Draw(scene); // original scene // second pass of light blurring m_shaderBlur.Send("direction", 0f, 1f / Graphics.GetHeight()); Graphics.SetShader(m_shaderBlur); Graphics.Draw(back); // restore things as they were before entering draw() Graphics.SetBlendMode(BlendMode.Alpha, BlendAlphaMode.PreMultiplied); m_scene = back; }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("feedback", Mathf.Clamp01(Feedback)); m_shader.Send("size", Size); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("palette", Palette.ColorA, Palette.ColorB, Palette.ColorC, Palette.ColorD); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("tint", Tint.X, Tint.Y, Tint.Z, 1); m_shader.Send("strength", Strength); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("factors", Factors); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("amp", Math.Max(Amp, 0f)); m_shader.Send("center", Center); buffer.Swap(m_shader); }
public override void Draw(DoubleBufferCanvas buffer) { m_shader.Send("num_bands", Math.Max(NumBands, 1f)); buffer.Swap(m_shader); }