public override void Draw(ShaderPipeline pipeline, params Effect[] effects) { Framebuffer.RunActionWhileBound(() => { Gl.ClearColor(0, 0, 0, 0); Gl.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); Render?.Invoke(); }); foreach (var effect in effects) { effect.ApplyEffect(pipeline); } base.Draw(pipeline); foreach (var effect in effects) { effect.SetDefaults(pipeline); } }
public virtual void Draw(ShaderPipeline pipeline, params Effect[] effects) { foreach (var effect in effects) { effect.ApplyEffect(pipeline); } pipeline.VertexShader.SetUniform(ReservedUniforms.Transform, Projection.ProjectionMatrix * View.ViewMatrix * Transform.TransformationMatrix); pipeline.FragmentShader.SetUniform(ReservedUniforms.ColorMultiplier, ColorMultiplier); pipeline.FragmentShader.SetUniform(ReservedUniforms.ColorAddition, ColorAddition); pipeline.FragmentShader.SetUniform(ReservedUniforms.ColorSubtraction, ColorSubtraction); Texture.Bind(); Model.Draw(); foreach (var effect in effects) { effect.SetDefaults(pipeline); } }
public Renderer(Window renderTarget, ShaderPipeline pipeline) { RenderTarget = renderTarget; Pipeline = pipeline; }