Run graphics rendering on a dedicated thread.

The main game thread can offload some of the CPU cost to the rendering thread, freeing up its time to run more logic and render ticks.
This commit is contained in:
RoosterDragon
2018-06-13 20:01:15 +00:00
committed by Paul Chote
parent ea068a36f7
commit bb536ee4fc
15 changed files with 767 additions and 43 deletions

View File

@@ -16,7 +16,7 @@ using System.IO;
namespace OpenRA.Platforms.Default
{
sealed class Texture : ThreadAffine, ITexture
sealed class Texture : ThreadAffine, ITextureInternal
{
uint texture;
TextureScaleFilter scaleFilter;
@@ -187,14 +187,9 @@ namespace OpenRA.Platforms.Default
OpenGL.CheckGLError();
}
~Texture()
{
Game.RunAfterTick(() => Dispose(false));
}
public void Dispose()
{
Game.RunAfterTick(() => Dispose(true));
Dispose(true);
GC.SuppressFinalize(this);
}