Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
SwapChainGraphicsPresenter.Android.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 #if SILICONSTUDIO_PLATFORM_ANDROID
4 using System;
5 using SiliconStudio.Core.Diagnostics;
6 using OpenTK;
7 using OpenTK.Platform.Android;
8 
9 namespace SiliconStudio.Paradox.Graphics
10 {
11  public class SwapChainGraphicsPresenter : GraphicsPresenter
12  {
13  private static Logger Log = GlobalLogger.GetLogger("SwapChainGraphicsPresenter");
14  private RenderTarget backBuffer;
15 
16  public SwapChainGraphicsPresenter(GraphicsDevice device, PresentationParameters presentationParameters) : base(device, presentationParameters)
17  {
18  device.InitDefaultRenderTarget(presentationParameters);
19  backBuffer = device.DefaultRenderTarget;
20  DepthStencilBuffer = device.windowProvidedDepthBuffer;
21  }
22 
23  public override RenderTarget BackBuffer
24  {
25  get { return backBuffer; }
26  }
27 
28  public override object NativePresenter
29  {
30  get { return null; }
31  }
32 
33  public override bool IsFullScreen
34  {
35  get
36  {
37  return ((AndroidGameView)Description.DeviceWindowHandle.NativeHandle).WindowState == WindowState.Fullscreen;
38  }
39  set
40  {
41  ((AndroidGameView)Description.DeviceWindowHandle.NativeHandle).WindowState = value ? WindowState.Fullscreen : WindowState.Normal;
42  }
43  }
44 
45  public override void Present()
46  {
47  GraphicsDevice.Begin();
48 
49  // If we made a fake render target to avoid OpenGL limitations on window-provided back buffer, let's copy the rendering result to it
50  if (GraphicsDevice.DefaultRenderTarget != GraphicsDevice.windowProvidedRenderTarget)
51  GraphicsDevice.Copy(GraphicsDevice.DefaultRenderTarget.Texture, GraphicsDevice.windowProvidedRenderTarget.Texture);
52  var graphicsContext = ((AndroidGameView)Description.DeviceWindowHandle.NativeHandle).GraphicsContext;
53 
54  ((AndroidGraphicsContext)graphicsContext).Swap();
55 
56  GraphicsDevice.End();
57  }
58 
59  protected override void ResizeBackBuffer(int width, int height, PixelFormat format)
60  {
61  }
62 
63  protected override void ResizeDepthStencilBuffer(int width, int height, PixelFormat format)
64  {
65  ReleaseCurrentDepthStencilBuffer();
66  }
67 
68  protected override void CreateDepthStencilBuffer()
69  {
70  }
71  }
72 }
73 #endif
Creates a render target buffer.
_In_ size_t _In_ size_t _In_ DXGI_FORMAT format
Definition: DirectXTexP.h:175
Output message to log right away.
PixelFormat
Defines various types of pixel formats.
Definition: PixelFormat.cs:32