~ Moved code around in files. SM.Base: + PostProcessing-system + OnInitialization() for Scenes. + Shader-Extensions + Added option to not react while unfocused to the window. + Added Screenshots to the window. + Connected the log system to the SM.OGL-action system. ~ Replaced IShader with abstract MaterialShader. ~ When a log compression folder doesn't exist, it will create one. SM.OGL: + Added support for UniformArrays + Added ShaderPreProcessing + Added Shader Extensions. + Added Debug actions. + SM.OGL settings ~ Framebuffer Size is automaticly changed, when the window and scale is set. SM2D: + Added easy shader drawing.
71 lines
No EOL
1.8 KiB
C#
71 lines
No EOL
1.8 KiB
C#
#region usings
|
|
|
|
using OpenTK;
|
|
using SM.Base.Scene;
|
|
using SM.OGL.Mesh;
|
|
|
|
#endregion
|
|
|
|
namespace SM.Base.Contexts
|
|
{
|
|
/// <summary>
|
|
/// Contains important information for drawing.
|
|
/// </summary>
|
|
public struct DrawContext
|
|
{
|
|
/// <summary>
|
|
/// This says if it was forced to use the viewport camera.
|
|
/// </summary>
|
|
public bool ForceViewport;
|
|
|
|
/// <summary>
|
|
/// The current world matrix.
|
|
/// </summary>
|
|
public Matrix4 World;
|
|
|
|
/// <summary>
|
|
/// The current view matrix.
|
|
/// </summary>
|
|
public Matrix4 View;
|
|
|
|
/// <summary>
|
|
/// The master model matrix.
|
|
/// </summary>
|
|
public Matrix4 ModelMaster;
|
|
|
|
/// <summary>
|
|
/// The drawing instances.
|
|
/// <para>If there is only one, it's index 0</para>
|
|
/// </summary>
|
|
public Instance[] Instances;
|
|
|
|
/// <summary>
|
|
/// The mesh.
|
|
/// </summary>
|
|
public GenericMesh Mesh;
|
|
|
|
/// <summary>
|
|
/// The material.
|
|
/// </summary>
|
|
public Material Material;
|
|
|
|
/// <summary>
|
|
/// Contains the currently used render pipeline.
|
|
/// </summary>
|
|
public RenderPipeline ActivePipeline;
|
|
|
|
/// <summary>
|
|
/// The current world scale.
|
|
/// </summary>
|
|
public Vector2 WorldScale;
|
|
|
|
/// <summary>
|
|
/// Returns the appropriate shader.
|
|
/// <para>
|
|
/// Returns the material shader, if available, otherwise it will take the default shader from the render
|
|
/// pipeline.
|
|
/// </para>
|
|
/// </summary>
|
|
public MaterialShader Shader => Material.CustomShader ?? ActivePipeline._defaultShader;
|
|
}
|
|
} |