~ 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.
45 lines
No EOL
1.1 KiB
C#
45 lines
No EOL
1.1 KiB
C#
#region usings
|
|
|
|
using OpenTK;
|
|
|
|
#endregion
|
|
|
|
namespace SM.Base.Scene
|
|
{
|
|
/// <summary>
|
|
/// Contains methods for using transformations right.
|
|
/// </summary>
|
|
public abstract class GenericTransformation
|
|
{
|
|
/// <summary>
|
|
/// Contains the current model matrix.
|
|
/// </summary>
|
|
protected Matrix4 _modelMatrix { get; private set; }
|
|
|
|
/// <summary>
|
|
/// Contains the last frame the matrix was calculated.
|
|
/// </summary>
|
|
protected ulong _lastFrame { get; private set; }
|
|
|
|
/// <summary>
|
|
/// Returns the current model matrix.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public Matrix4 GetMatrix()
|
|
{
|
|
if (_lastFrame != SMRenderer.CurrentFrame)
|
|
{
|
|
_lastFrame = SMRenderer.CurrentFrame;
|
|
_modelMatrix = RequestMatrix();
|
|
}
|
|
|
|
return _modelMatrix;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Calculates the current matrix.
|
|
/// </summary>
|
|
/// <returns>The current matrix.</returns>
|
|
protected abstract Matrix4 RequestMatrix();
|
|
}
|
|
} |