Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
SwapChainGraphicsPresenter.iOS.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_IOS
4 using OpenTK;
5 using OpenTK.Platform.iPhoneOS;
6 
7 
8 namespace SiliconStudio.Paradox.Graphics
9 {
10  public class SwapChainGraphicsPresenter : GraphicsPresenter
11  {
12  private iPhoneOSGameView gameWindow;
13  private RenderTarget backBuffer;
14 
15  public SwapChainGraphicsPresenter(GraphicsDevice device, PresentationParameters presentationParameters) : base(device, presentationParameters)
16  {
17  gameWindow = (iPhoneOSGameView)Description.DeviceWindowHandle.NativeHandle;
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 gameWindow.WindowState == WindowState.Fullscreen;
38  }
39  set
40  {
41  gameWindow.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 
53  gameWindow.SwapBuffers();
54 
55  GraphicsDevice.End();
56  }
57 
58  protected override void ResizeBackBuffer(int width, int height, PixelFormat format)
59  {
60  }
61 
62  protected override void ResizeDepthStencilBuffer(int width, int height, PixelFormat format)
63  {
64  ReleaseCurrentDepthStencilBuffer();
65  }
66 
67  protected override void CreateDepthStencilBuffer()
68  {
69  }
70  }
71 }
72 #endif
Creates a render target buffer.
_In_ size_t _In_ size_t _In_ DXGI_FORMAT format
Definition: DirectXTexP.h:175
PixelFormat
Defines various types of pixel formats.
Definition: PixelFormat.cs:32