コード例 #1
0
ファイル: AWGame.cs プロジェクト: vvnurmi/assaultwing
 private void RenderToFile(Action render)
 {
     var gfx = GraphicsDeviceService.GraphicsDevice;
     var pp = gfx.PresentationParameters;
     var oldViewport = gfx.Viewport;
     if (_screenshotRenderTarget == null) _screenshotRenderTarget = new AutoRenderTarget2D(
         GraphicsDeviceService.GraphicsDevice, () => new AutoRenderTarget2D.CreationData
         {
             Width = GraphicsDeviceService.GraphicsDevice.Viewport.Width,
             Height = GraphicsDeviceService.GraphicsDevice.Viewport.Height,
             DepthStencilState = GraphicsDeviceService.GraphicsDevice.DepthStencilState,
         });
     _screenshotRenderTarget.SetAsRenderTarget();
     DefaultRenderTarget = _screenshotRenderTarget.GetTexture();
     render();
     gfx.SetRenderTarget(DefaultRenderTarget = null);
     gfx.Viewport = oldViewport;
     var screenshot = _screenshotRenderTarget.GetTexture();
     using (var stream = System.IO.File.OpenWrite(GetScreenshotPath()))
         screenshot.SaveAsJpeg(stream, screenshot.Width, screenshot.Height);
 }
コード例 #2
0
ファイル: AWGame.cs プロジェクト: vvnurmi/assaultwing
 /// <summary>
 /// Called when unmanaged content is to be disposed such as at shutdown.
 /// </summary>
 public virtual void UnloadContent()
 {
     if (_screenshotRenderTarget != null) _screenshotRenderTarget.Dispose();
     _screenshotRenderTarget = null;
     foreach (var item in Components) item.UnloadContent();
     Content.Unload();
 }