SM.Core: + Particle System + scriptable system for scripts ~ Moved Texts- and Particles-namespace to SM.Base.Drawing ~ Changed how you tell the stopwatch to pause. (From method to property) ~ Fixed Randomize.GetFloat(min, max) ~ Now automaticly adds the DrawingBase.Transformation to DrawContext.ModelMatrix. No need to change DrawContext.Instances[0], anymore. SM.OGL: + "one-file-shader"-support SM2D: + DrawParticles (Control for Texture and Color not there yet) ~ Changed coordnate system to upper-right as (1,1) ~ Changed default shader to "one-file-shader"
83 lines
No EOL
2.1 KiB
C#
83 lines
No EOL
2.1 KiB
C#
#region usings
|
|
|
|
using System.Collections.Generic;
|
|
using OpenTK;
|
|
using SM.Base.Drawing;
|
|
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 current WorldView matrix.
|
|
/// </summary>
|
|
public Matrix4 WorldView;
|
|
|
|
/// <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 IList<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>
|
|
/// The last collection the context was passed though.
|
|
/// </summary>
|
|
public object LastPassthough;
|
|
|
|
/// <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;
|
|
}
|
|
} |