OSDN Git Service

作業部屋#50802 画面キャプチャができなくなっていた問題を暫定対応(F12キー固定で対応中)
[dtxmaniaxg-verk/dtxmaniaxg-verk-git.git] / SlimDXc_Jun2010(VC++2008) / source / dxgi / Output.h
1 /*
2 * Copyright (c) 2007-2010 SlimDX Group
3
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22 #pragma once
23
24 #include "Enums.h"
25 #include "ObjectDxgi.h"
26
27 namespace SlimDX
28 {
29         namespace DXGI
30         {
31                 ref class Surface;
32                 value class FrameStatistics;
33                 ref class GammaControl;
34                 value class GammaControlCapabilities;
35                 value class ModeDescription;
36                 value class OutputDescription;
37                 
38                 /// <summary>
39                 /// Represents the output of an adapter (such as a monitor).
40                 /// </summary>
41                 /// <unmanaged>IDXGIOutput</unmanaged>
42                 public ref class Output : DXGIObject
43                 {
44                         COMOBJECT(IDXGIOutput, Output);
45                 
46                 public:
47                         /// <summary>
48                         /// Gets the output's description.
49                         /// </summary>
50                         property OutputDescription Description
51                         {
52                                 OutputDescription get();
53                         }
54                         
55                         /// <summary>
56                         /// Gets statistics about recently rendered frames.
57                         /// </summary>
58                         property DXGI::FrameStatistics FrameStatistics
59                         {
60                                 DXGI::FrameStatistics get();
61                         }
62                         
63                         /// <summary>
64                         /// Gets a description of the output's gamma-control capabilities.
65                         /// </summary>
66                         property DXGI::GammaControlCapabilities GammaControlCapabilities
67                         {
68                                 DXGI::GammaControlCapabilities get();
69                         }
70
71                         /// <summary>
72                         /// Gets a list of display modes matching certain specifications.
73                         /// </summary>
74                         /// <param name="format">The display mode color format.</param>
75                         /// <param name="flags">Flags indicating how the display mode scanline order and scaling.</param>
76                         /// <returns>A list of matching display mode descriptions. The list is null if an error occured.</returns>
77                         System::Collections::ObjectModel::ReadOnlyCollection<ModeDescription>^ GetDisplayModeList( Format format, DisplayModeEnumerationFlags flags );
78                         
79                         /// <summary>
80                         /// Gets the display mode that best matches the requested mode.
81                         /// </summary>
82                         /// <param name="device">The device interface. If this parameter is null, only
83                         /// modes whose format matches the specified mode will be returned; otherwise, only those
84                         /// formats that are supported for scan-out by the device are returned.</param>
85                         /// <param name="modeToMatch">The description of the display mode to match.</param>
86                         /// <param name="result">Receives the best-matching display mode.</param>
87                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
88                         Result GetClosestMatchingMode( ComObject^ device, ModeDescription modeToMatch, [Out] ModeDescription %result );
89                         
90                         /// <summary>
91                         /// Sets gamma control information.
92                         /// </summary>
93                         /// <param name="control">The gamma control information.</param>
94                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
95                         Result SetGammaControl( GammaControl^ control );
96                         
97                         /// <summary>
98                         /// Changes the current display surface to the specified surface.
99                         /// </summary>
100                         /// <param name="surface">The new display surface.</param>
101                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
102                         Result SetDisplaySurface( Surface^ surface );
103                         
104                         /// <summary>
105                         /// Copies the display surface content to the specified destination surface.
106                         /// </summary>
107                         /// <param name="surface">The destination surface.</param>
108                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
109                         Result CopyDisplaySurfaceTo( Surface^ surface );
110                         
111                         /// <summary>
112                         /// Takes ownership of an output.
113                         /// </summary>
114                         /// <param name="device">The device interface.</param>
115                         /// <param name="exclusive">If true, ownership is exclusive.</param>
116                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
117                         Result TakeOwnership( ComObject^ device, bool exclusive );
118                         
119                         /// <summary>
120                         /// Releases ownership of an output.
121                         /// </summary>
122                         void ReleaseOwnership();
123                         
124                         /// <summary>
125                         /// Halts the current thread until a vertical blank occurs.
126                         /// </summary>
127                         /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
128                         Result WaitForVerticalBlank();
129                         
130                         /// <summary>
131                         /// Converts the value of the object to its equivalent string representation.
132                         /// </summary>
133                         /// <returns>The string representation of the value of this instance.</returns>
134                         virtual System::String^ ToString() override;
135                 };
136         }
137 }