Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 public Renderer(Window renderTarget, ShaderPipeline pipeline)
 {
     RenderTarget = renderTarget;
     Pipeline     = pipeline;
 }