OSDN Git Service

08e6ac88b0a43d1f110a44b75255dd471c6b4ab9
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / direct3d11 / Texture2DDescription11.cpp
1 #include "stdafx.h"\r
2 /*\r
3 * Copyright (c) 2007-2010 SlimDX Group\r
4\r
5 * Permission is hereby granted, free of charge, to any person obtaining a copy\r
6 * of this software and associated documentation files (the "Software"), to deal\r
7 * in the Software without restriction, including without limitation the rights\r
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
9 * copies of the Software, and to permit persons to whom the Software is\r
10 * furnished to do so, subject to the following conditions:\r
11\r
12 * The above copyright notice and this permission notice shall be included in\r
13 * all copies or substantial portions of the Software.\r
14\r
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
21 * THE SOFTWARE.\r
22 */\r
23 \r
24 #include <d3d11.h>\r
25 \r
26 #include "Texture2DDescription11.h"\r
27 \r
28 namespace SlimDX\r
29 {\r
30 namespace Direct3D11\r
31 {       \r
32         Texture2DDescription::Texture2DDescription( const D3D11_TEXTURE2D_DESC& native )\r
33         {\r
34                 m_Width = native.Width;\r
35                 m_Height = native.Height;\r
36                 m_MipLevels = native.MipLevels;\r
37                 m_ArraySize = native.ArraySize;\r
38                 m_Format = static_cast<DXGI::Format>( native.Format );\r
39                 m_SampleDesc = DXGI::SampleDescription( native.SampleDesc );\r
40                 m_Usage = static_cast<ResourceUsage>( native.Usage );\r
41                 m_BindFlags = static_cast<Direct3D11::BindFlags>( native.BindFlags );\r
42                 m_CPUAccessFlags = static_cast<Direct3D11::CpuAccessFlags>( native.CPUAccessFlags );\r
43                 m_MiscFlags = static_cast<ResourceOptionFlags>( native.MiscFlags );\r
44         }\r
45 \r
46         D3D11_TEXTURE2D_DESC Texture2DDescription::CreateNativeVersion()\r
47         {\r
48                 D3D11_TEXTURE2D_DESC native;\r
49                 native.Width = m_Width;\r
50                 native.Height = m_Height;\r
51                 native.MipLevels = m_MipLevels;\r
52                 native.ArraySize = m_ArraySize;\r
53                 native.Format = static_cast<DXGI_FORMAT>( m_Format );\r
54                 native.SampleDesc = m_SampleDesc.CreateNativeVersion();\r
55                 native.Usage = static_cast<D3D11_USAGE>( m_Usage );\r
56                 native.BindFlags = static_cast<UINT>( m_BindFlags );\r
57                 native.CPUAccessFlags = static_cast<UINT>( m_CPUAccessFlags );\r
58                 native.MiscFlags = static_cast<UINT>( m_MiscFlags );\r
59                 \r
60                 return native;\r
61         }\r
62         \r
63         int Texture2DDescription::Width::get()\r
64         {\r
65                 return m_Width;\r
66         }\r
67 \r
68         void Texture2DDescription::Width::set( int value )\r
69         {\r
70                 m_Width = value;\r
71         }\r
72         \r
73         int Texture2DDescription::Height::get()\r
74         {\r
75                 return m_Height;\r
76         }\r
77 \r
78         void Texture2DDescription::Height::set( int value )\r
79         {\r
80                 m_Height = value;\r
81         }\r
82         \r
83         int Texture2DDescription::MipLevels::get()\r
84         {\r
85                 return m_MipLevels;\r
86         }\r
87 \r
88         void Texture2DDescription::MipLevels::set( int value )\r
89         {\r
90                 m_MipLevels = value;\r
91         }\r
92         \r
93         int Texture2DDescription::ArraySize::get()\r
94         {\r
95                 return m_ArraySize;\r
96         }\r
97 \r
98         void Texture2DDescription::ArraySize::set( int value )\r
99         {\r
100                 m_ArraySize = value;\r
101         }\r
102         \r
103         DXGI::Format Texture2DDescription::Format::get()\r
104         {\r
105                 return m_Format;\r
106         }\r
107 \r
108         void Texture2DDescription::Format::set( DXGI::Format value )\r
109         {\r
110                 m_Format = value;\r
111         }\r
112         \r
113         DXGI::SampleDescription Texture2DDescription::SampleDescription::get()\r
114         {\r
115                 return m_SampleDesc;\r
116         }\r
117 \r
118         void Texture2DDescription::SampleDescription::set( DXGI::SampleDescription value )\r
119         {\r
120                 m_SampleDesc = value;\r
121         }\r
122         \r
123         ResourceUsage Texture2DDescription::Usage::get()\r
124         {\r
125                 return m_Usage;\r
126         }\r
127 \r
128         void Texture2DDescription::Usage::set( ResourceUsage value )\r
129         {\r
130                 m_Usage = value;\r
131         }\r
132         \r
133         Direct3D11::BindFlags Texture2DDescription::BindFlags::get()\r
134         {\r
135                 return m_BindFlags;\r
136         }\r
137 \r
138         void Texture2DDescription::BindFlags::set( Direct3D11::BindFlags value )\r
139         {\r
140                 m_BindFlags = value;\r
141         }\r
142         \r
143         Direct3D11::CpuAccessFlags Texture2DDescription::CpuAccessFlags::get()\r
144         {\r
145                 return m_CPUAccessFlags;\r
146         }\r
147 \r
148         void Texture2DDescription::CpuAccessFlags::set( Direct3D11::CpuAccessFlags value )\r
149         {\r
150                 m_CPUAccessFlags = value;\r
151         }\r
152         \r
153         ResourceOptionFlags Texture2DDescription::OptionFlags::get()\r
154         {\r
155                 return m_MiscFlags;\r
156         }\r
157 \r
158         void Texture2DDescription::OptionFlags::set( ResourceOptionFlags value )\r
159         {\r
160                 m_MiscFlags = value;\r
161         }\r
162 \r
163         bool Texture2DDescription::operator == ( Texture2DDescription left, Texture2DDescription right )\r
164         {\r
165                 return Texture2DDescription::Equals( left, right );\r
166         }\r
167 \r
168         bool Texture2DDescription::operator != ( Texture2DDescription left, Texture2DDescription right )\r
169         {\r
170                 return !Texture2DDescription::Equals( left, right );\r
171         }\r
172 \r
173         int Texture2DDescription::GetHashCode()\r
174         {\r
175                 return m_Width.GetHashCode() + m_Height.GetHashCode() + m_MipLevels.GetHashCode()\r
176                          + m_ArraySize.GetHashCode() + m_Format.GetHashCode() + m_SampleDesc.GetHashCode()\r
177                          + m_Usage.GetHashCode() + m_BindFlags.GetHashCode() + m_CPUAccessFlags.GetHashCode()\r
178                          + m_MiscFlags.GetHashCode();\r
179         }\r
180 \r
181         bool Texture2DDescription::Equals( Object^ value )\r
182         {\r
183                 if( value == nullptr )\r
184                         return false;\r
185 \r
186                 if( value->GetType() != GetType() )\r
187                         return false;\r
188 \r
189                 return Equals( safe_cast<Texture2DDescription>( value ) );\r
190         }\r
191 \r
192         bool Texture2DDescription::Equals( Texture2DDescription value )\r
193         {\r
194                 return ( m_Width == value.m_Width && m_Height == value.m_Height && m_MipLevels == value.m_MipLevels\r
195                          && m_ArraySize == value.m_ArraySize && m_Format == value.m_Format && m_SampleDesc == value.m_SampleDesc\r
196                          && m_Usage == value.m_Usage && m_BindFlags == value.m_BindFlags && m_CPUAccessFlags == value.m_CPUAccessFlags\r
197                          && m_MiscFlags == value.m_MiscFlags );\r
198         }\r
199 \r
200         bool Texture2DDescription::Equals( Texture2DDescription% value1, Texture2DDescription% value2 )\r
201         {\r
202                 return ( value1.m_Width == value2.m_Width && value1.m_Height == value2.m_Height && value1.m_MipLevels == value2.m_MipLevels\r
203                          && value1.m_ArraySize == value2.m_ArraySize && value1.m_Format == value2.m_Format && value1.m_SampleDesc == value2.m_SampleDesc\r
204                          && value1.m_Usage == value2.m_Usage && value1.m_BindFlags == value2.m_BindFlags && value1.m_CPUAccessFlags == value2.m_CPUAccessFlags\r
205                          && value1.m_MiscFlags == value2.m_MiscFlags );\r
206         }\r
207 }\r
208 }\r