Show More
Commit Description:
Optimize PreserveCounts and only recalculate when needed....
Commit Description:
Optimize PreserveCounts and only recalculate when needed. Previously would recalculate preservecounts every Update call (~1 per frame), which isn't necessary when there's no tick. Might be some room to tweak, like doing these updates only when preserves change. Some measurements: This takes about 30ms versus the .25 ms with no preserve (then like .0002ms). When the map is filled up with preserve, about 35ms and 9ms. With a handful of cells, it's more like 0.8ms (before JIT optimizes most of it away).
File last commit:
Show/Diff file:
Action:
FNA/src/GraphicsDeviceInformation.cs
71 lines | 1.5 KiB | text/x-csharp | CSharpLexer
Early working version (including all dependencies, lol).
r0 #region License
/* FNA - XNA4 Reimplementation for Desktop Platforms
* Copyright 2009-2020 Ethan Lee and the MonoGame Team
*
* Released under the Microsoft Public License.
* See LICENSE for details.
*/
#endregion
#region Using Statements
using Microsoft.Xna.Framework.Graphics;
#endregion
namespace Microsoft.Xna.Framework
{
/// <summary>
/// The settings used in creation of the graphics device.
/// See <see cref="GraphicsDeviceManager.PreparingDeviceSettings"/>.
/// </summary>
public class GraphicsDeviceInformation
{
#region Public Properties
/// <summary>
/// The graphics adapter on which the graphics device will be created.
/// </summary>
/// <remarks>
/// This is only valid on desktop systems where multiple graphics
/// adapters are possible. Defaults to <see cref="GraphicsAdapter.DefaultAdapter"/>.
/// </remarks>
public GraphicsAdapter Adapter
{
get;
set;
}
/// <summary>
/// The requested graphics device feature set.
/// </summary>
public GraphicsProfile GraphicsProfile
{
get;
set;
}
/// <summary>
/// The settings that define how graphics will be presented to the display.
/// </summary>
public PresentationParameters PresentationParameters
{
get;
set;
}
#endregion
#region Public Methods
public GraphicsDeviceInformation Clone()
{
return new GraphicsDeviceInformation()
{
Adapter = this.Adapter,
GraphicsProfile = this.GraphicsProfile,
PresentationParameters = this.PresentationParameters.Clone()
};
}
#endregion
}
}