SavePNG path in Cube example
parent
c84668b4b3
commit
d6099fbe0f
|
@ -33,6 +33,9 @@ namespace MoonWorks.Test
|
||||||
private bool depthOnlyEnabled = false;
|
private bool depthOnlyEnabled = false;
|
||||||
private Vector3 camPos = new Vector3(0, 1.5f, 4f);
|
private Vector3 camPos = new Vector3(0, 1.5f, 4f);
|
||||||
|
|
||||||
|
private TaskFactory taskFactory = new TaskFactory();
|
||||||
|
private bool takeScreenshot;
|
||||||
|
|
||||||
struct DepthUniforms
|
struct DepthUniforms
|
||||||
{
|
{
|
||||||
public float ZNear;
|
public float ZNear;
|
||||||
|
@ -61,7 +64,7 @@ namespace MoonWorks.Test
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CubeGame() : base(TestUtils.GetStandardWindowCreateInfo(), TestUtils.GetStandardFrameLimiterSettings(), 60, true)
|
public CubeGame() : base(TestUtils.GetStandardWindowCreateInfo(), TestUtils.GetStandardFrameLimiterSettings(), 60, false)
|
||||||
{
|
{
|
||||||
ShaderModule cubeVertShaderModule = new ShaderModule(
|
ShaderModule cubeVertShaderModule = new ShaderModule(
|
||||||
GraphicsDevice,
|
GraphicsDevice,
|
||||||
|
@ -312,6 +315,7 @@ namespace MoonWorks.Test
|
||||||
Logger.LogInfo("Finished loading!");
|
Logger.LogInfo("Finished loading!");
|
||||||
Logger.LogInfo("Press Left to toggle Depth-Only Mode");
|
Logger.LogInfo("Press Left to toggle Depth-Only Mode");
|
||||||
Logger.LogInfo("Press Down to move the camera upwards");
|
Logger.LogInfo("Press Down to move the camera upwards");
|
||||||
|
Logger.LogInfo("Press Right to save a screenshot");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update(System.TimeSpan delta)
|
protected override void Update(System.TimeSpan delta)
|
||||||
|
@ -340,6 +344,11 @@ namespace MoonWorks.Test
|
||||||
depthOnlyEnabled = !depthOnlyEnabled;
|
depthOnlyEnabled = !depthOnlyEnabled;
|
||||||
Logger.LogInfo("Depth-Only Mode enabled: " + depthOnlyEnabled);
|
Logger.LogInfo("Depth-Only Mode enabled: " + depthOnlyEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TestUtils.CheckButtonPressed(Inputs, TestUtils.ButtonType.Right))
|
||||||
|
{
|
||||||
|
takeScreenshot = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(double alpha)
|
protected override void Draw(double alpha)
|
||||||
|
@ -367,7 +376,7 @@ namespace MoonWorks.Test
|
||||||
TransformVertexUniform cubeUniforms = new TransformVertexUniform(model * view * proj);
|
TransformVertexUniform cubeUniforms = new TransformVertexUniform(model * view * proj);
|
||||||
|
|
||||||
CommandBuffer cmdbuf = GraphicsDevice.AcquireCommandBuffer();
|
CommandBuffer cmdbuf = GraphicsDevice.AcquireCommandBuffer();
|
||||||
Texture? swapchainTexture = cmdbuf.AcquireSwapchainTexture(MainWindow);
|
Texture swapchainTexture = cmdbuf.AcquireSwapchainTexture(MainWindow);
|
||||||
if (swapchainTexture != null)
|
if (swapchainTexture != null)
|
||||||
{
|
{
|
||||||
if (!finishedLoading)
|
if (!finishedLoading)
|
||||||
|
@ -429,8 +438,26 @@ namespace MoonWorks.Test
|
||||||
}
|
}
|
||||||
|
|
||||||
GraphicsDevice.Submit(cmdbuf);
|
GraphicsDevice.Submit(cmdbuf);
|
||||||
|
|
||||||
|
if (takeScreenshot)
|
||||||
|
{
|
||||||
|
if (swapchainTexture != null)
|
||||||
|
{
|
||||||
|
taskFactory.StartNew(TakeScreenshot, swapchainTexture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
takeScreenshot = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private System.Action<object?> TakeScreenshot = texture =>
|
||||||
|
{
|
||||||
|
if (texture != null)
|
||||||
|
{
|
||||||
|
((Texture) texture).SavePNG(System.IO.Path.Combine(System.AppContext.BaseDirectory, "screenshot.png"));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
CubeGame game = new CubeGame();
|
CubeGame game = new CubeGame();
|
||||||
|
|
Loading…
Reference in New Issue