예제 #1
0
파일: Layer.cs 프로젝트: nsglover/Bronze
        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);
            }
        }
예제 #2
0
파일: Sprite.cs 프로젝트: nsglover/Bronze
        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);
            }
        }
예제 #3
0
 public Renderer(Window renderTarget, ShaderPipeline pipeline)
 {
     RenderTarget = renderTarget;
     Pipeline     = pipeline;
 }