2021-19-03

SM.Base:
~ Improved Keyboard.AreSpecificKeysPressed(int, int)
~ Made GenericTransformation.LastMaster's set public
~ Made the fixed update use the property "IsExiting" to determent if it should stop.
~ The MainFramebuffer of each RenderPipeline now has always a name.

SM2D:
~ Moved the checking code of Mouse2D.MouseOver into a own method.
This commit is contained in:
Michel Fedde 2021-03-19 09:31:36 +01:00
parent c8db1ce8bc
commit 71a22df8bd
7 changed files with 31 additions and 18 deletions

View file

@ -82,7 +82,7 @@ namespace SM.Base.Controls
throw new ArgumentException("The startIndex is greater than the endIndex.", nameof(startIndex));
int length = endIndex - startIndex;
for (int i = 0; i < length; i++)
for (int i = 0; i < length + 1; i++)
{
int actualIndex = i + startIndex;
Key key = (Key) actualIndex;
@ -136,7 +136,7 @@ namespace SM.Base.Controls
bool success = false;
List<Key> keys = new List<Key>();
for (int i = 0; i < length; i++)
for (int i = 0; i < length + 1; i++)
{
int actualIndex = i + startIndex;
Key key = (Key) actualIndex;

View file

@ -19,7 +19,7 @@ namespace SM.Base.Drawing
/// <summary>
/// The last matrix that was used to calculate the real world matrix.
/// </summary>
public Matrix4 LastMaster { get; internal set; }
public Matrix4 LastMaster { get; set; }
/// <summary>
/// The transformation in world space.

View file

@ -121,12 +121,6 @@ namespace SM.Base.Window
Mouse.MouseMoveEvent(e, this);
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
_fixedUpdateThread?.Abort();
}
public void Update(UpdateContext context)
{
@ -201,7 +195,7 @@ namespace SM.Base.Window
private void ExecuteFixedUpdate()
{
Stopwatch deltaStop = new Stopwatch();
while (Thread.CurrentThread.ThreadState != System.Threading.ThreadState.AbortRequested)
while (!IsExiting)
{
deltaStop.Restart();
@ -210,7 +204,8 @@ namespace SM.Base.Window
CurrentScene?.FixedUpdate(context);
long delta = deltaStop.ElapsedMilliseconds;
Thread.Sleep(Math.Max((int)(Deltatime.FixedUpdateDelta * 1000) - (int)delta, 0));
int waitTime = Math.Max((int)(Deltatime.FixedUpdateDelta * 1000) - (int)delta, 0);
Thread.Sleep(waitTime);
}
}
}

View file

@ -36,7 +36,7 @@ namespace SM.Base.Window
/// This contains the default shader.
/// <para>Default: <see cref="SMRenderer.DefaultMaterialShader"/></para>
/// </summary>
public virtual MaterialShader DefaultShader { get; protected set; } = SMRenderer.DefaultMaterialShader;
public virtual MaterialShader DefaultShader { get; protected set; }
/// <summary>
/// Here you can set a default material.
/// </summary>
@ -53,6 +53,8 @@ namespace SM.Base.Window
/// <inheritdoc/>
public virtual void Initialization()
{
MainFramebuffer.Name = GetType().Name + ".MainFramebuffer";
if (MainFramebuffer != null) Framebuffers.Add(MainFramebuffer);
DefaultShader ??= SMRenderer.DefaultMaterialShader;
}