using System.Collections; using System.Collections.Generic; using System.Diagnostics; using OpenTK; using OpenTK.Graphics.OpenGL4; using SM.Base.Contexts; using SM.Base.Objects.Static; using SM.Base.Scene; using SM.OGL.Framebuffer; using SM.OGL.Shaders; namespace SM.Base.PostProcess { /// /// Basis for a post process effect /// public abstract class PostProcessEffect { internal static Matrix4 Mvp; internal static Matrix4 Model; protected RenderPipeline Pipeline; /// /// Initialize the effect. /// /// public void Initilize(RenderPipeline pipeline) { Pipeline = pipeline; InitProcess(); } /// /// Method, to initialize the shader. /// protected virtual void InitProcess() {} /// /// Method to draw the actual effect. /// public abstract void Draw(DrawContext context); /// /// Event, when the scene changed. /// public virtual void SceneChanged(GenericScene scene) { } } }