Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
RenderTargetGraphicsPresenter.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 //
4 // Copyright (c) 2010-2013 SharpDX - Alexandre Mutel
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to deal
8 // in the Software without restriction, including without limitation the rights
9 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 // copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // The above copyright notice and this permission notice shall be included in
14 // all copies or substantial portions of the Software.
15 //
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 // THE SOFTWARE.
23 
24 namespace SiliconStudio.Paradox.Graphics
25 {
26  /// <summary>
27  /// Graphics presenter for SwapChain.
28  /// </summary>
30  {
31  private RenderTarget backBuffer;
32 
33  public RenderTargetGraphicsPresenter(GraphicsDevice device, RenderTarget renderTarget, PixelFormat depthFormat = PixelFormat.None)
34  : base(device, CreatePresentationParameters(renderTarget, depthFormat))
35  {
36  PresentInterval = Description.PresentationInterval;
37 
38  // Initialize the swap chain
39  backBuffer = renderTarget;
40  }
41 
42  private static PresentationParameters CreatePresentationParameters(RenderTarget renderTarget2D, PixelFormat depthFormat)
43  {
44  return new PresentationParameters()
45  {
46  BackBufferWidth = renderTarget2D.Description.Width,
47  BackBufferHeight = renderTarget2D.Description.Height,
48  BackBufferFormat = renderTarget2D.Description.Format,
49  DepthStencilFormat = depthFormat,
50  DeviceWindowHandle = null,
51  IsFullScreen = true,
52  MultiSampleCount = MSAALevel.None,
53  PresentationInterval = PresentInterval.One,
54  RefreshRate = new Rational(60, 1),
55  };
56  }
57 
58  public override RenderTarget BackBuffer
59  {
60  get
61  {
62  return backBuffer;
63  }
64  }
65 
66  public void SetBackBuffer(RenderTarget backBuffer)
67  {
68  this.backBuffer = backBuffer;
69  }
70 
71  public override object NativePresenter
72  {
73  get
74  {
75  return backBuffer;
76  }
77  }
78 
79  public override bool IsFullScreen
80  {
81  get
82  {
83  return true;
84  }
85 
86  set
87  {
88  }
89  }
90 
91  public override void Present()
92  {
93  }
94 
95  protected override void ResizeBackBuffer(int width, int height, PixelFormat format)
96  {
97  throw new System.NotImplementedException();
98  }
99 
100  protected override void ResizeDepthStencilBuffer(int width, int height, PixelFormat format)
101  {
102  throw new System.NotImplementedException();
103  }
104  }
105 }
override void Present()
Presents the Backbuffer to the screen.
Performs primitive-based rendering, creates resources, handles system-level variables, adjusts gamma ramp levels, and creates shaders. See The+GraphicsDevice+class to learn more about the class.
This class is a frontend to SwapChain and SwapChain1.
override void ResizeBackBuffer(int width, int height, PixelFormat format)
override void ResizeDepthStencilBuffer(int width, int height, PixelFormat format)
PresentInterval
Defines flags that describe the relationship between the adapter refresh rate and the rate at which P...
RenderTargetGraphicsPresenter(GraphicsDevice device, RenderTarget renderTarget, PixelFormat depthFormat=PixelFormat.None)
_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
Describess how data will be displayed to the screen.