+++ /dev/null
-#include "stdafx.h"\r
-/*\r
-* Copyright (c) 2007-2010 SlimDX Group\r
-* \r
-* Permission is hereby granted, free of charge, to any person obtaining a copy\r
-* of this software and associated documentation files (the "Software"), to deal\r
-* in the Software without restriction, including without limitation the rights\r
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-* copies of the Software, and to permit persons to whom the Software is\r
-* furnished to do so, subject to the following conditions:\r
-* \r
-* The above copyright notice and this permission notice shall be included in\r
-* all copies or substantial portions of the Software.\r
-* \r
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-* THE SOFTWARE.\r
-*/\r
-\r
-#include <dxgi.h>\r
-\r
-#include "ModeDescription.h"\r
-\r
-using namespace System;\r
-using namespace System::Globalization;\r
-\r
-namespace SlimDX\r
-{\r
-namespace DXGI\r
-{ \r
- ModeDescription::ModeDescription( int width, int height, Rational refreshRate, DXGI::Format format )\r
- : m_Width( width ), m_Height( height ), m_RefreshRate( refreshRate ), m_Format( format ),\r
- m_ScanlineOrdering( DisplayModeScanlineOrdering::Unspecified ), m_Scaling( DisplayModeScaling::Unspecified )\r
- {\r
- }\r
- \r
- ModeDescription::ModeDescription( const DXGI_MODE_DESC& native )\r
- {\r
- m_Width = native.Width;\r
- m_Height = native.Height;\r
- m_RefreshRate.Numerator = native.RefreshRate.Numerator;\r
- m_RefreshRate.Denominator = native.RefreshRate.Denominator;\r
- m_Format = static_cast<DXGI::Format>( native.Format );\r
- m_ScanlineOrdering = static_cast<DisplayModeScanlineOrdering>( native.ScanlineOrdering );\r
- m_Scaling = static_cast<DisplayModeScaling>( native.Scaling );\r
- }\r
-\r
- DXGI_MODE_DESC ModeDescription::CreateNativeVersion()\r
- {\r
- DXGI_MODE_DESC native;\r
- native.Width = m_Width;\r
- native.Height = m_Height;\r
- native.RefreshRate.Numerator = m_RefreshRate.Numerator;\r
- native.RefreshRate.Denominator = m_RefreshRate.Denominator;\r
- native.Format = static_cast<DXGI_FORMAT>( m_Format );\r
- native.ScanlineOrdering = static_cast<DXGI_MODE_SCANLINE_ORDER>( m_ScanlineOrdering );\r
- native.Scaling = static_cast<DXGI_MODE_SCALING>( m_Scaling );\r
- \r
- return native;\r
- }\r
-\r
- int ModeDescription::Width::get()\r
- {\r
- return m_Width;\r
- }\r
-\r
- void ModeDescription::Width::set( int value )\r
- {\r
- m_Width = value;\r
- }\r
-\r
- int ModeDescription::Height::get()\r
- {\r
- return m_Height;\r
- }\r
- \r
- void ModeDescription::Height::set( int value )\r
- {\r
- m_Height = value;\r
- }\r
- \r
- Rational ModeDescription::RefreshRate::get()\r
- {\r
- return m_RefreshRate;\r
- }\r
- \r
- void ModeDescription::RefreshRate::set( Rational value )\r
- {\r
- m_RefreshRate = value;\r
- }\r
- \r
- DXGI::Format ModeDescription::Format::get()\r
- {\r
- return m_Format;\r
- }\r
- \r
- void ModeDescription::Format::set( DXGI::Format value )\r
- {\r
- m_Format = value;\r
- }\r
- \r
- DisplayModeScanlineOrdering ModeDescription::ScanlineOrdering::get()\r
- {\r
- return m_ScanlineOrdering;\r
- }\r
- \r
- void ModeDescription::ScanlineOrdering::set( DisplayModeScanlineOrdering value )\r
- {\r
- m_ScanlineOrdering = value;\r
- }\r
- \r
- DisplayModeScaling ModeDescription::Scaling::get()\r
- {\r
- return m_Scaling;\r
- }\r
- \r
- void ModeDescription::Scaling::set( DisplayModeScaling value )\r
- {\r
- m_Scaling = value;\r
- }\r
-\r
- String^ ModeDescription::ToString()\r
- {\r
- return String::Format( CultureInfo::CurrentCulture, "{0}x{1}x{2}", m_Width, m_Height, m_RefreshRate.Denominator == 0 ? 0 : m_RefreshRate.Numerator / m_RefreshRate.Denominator );\r
- }\r
-\r
- bool ModeDescription::operator == ( ModeDescription left, ModeDescription right )\r
- {\r
- return ModeDescription::Equals( left, right );\r
- }\r
-\r
- bool ModeDescription::operator != ( ModeDescription left, ModeDescription right )\r
- {\r
- return !ModeDescription::Equals( left, right );\r
- }\r
-\r
- int ModeDescription::GetHashCode()\r
- {\r
- return m_Width.GetHashCode() + m_Height.GetHashCode() + m_RefreshRate.GetHashCode()\r
- + m_Format.GetHashCode() + m_ScanlineOrdering.GetHashCode() + m_Scaling.GetHashCode();\r
- }\r
-\r
- bool ModeDescription::Equals( Object^ value )\r
- {\r
- if( value == nullptr )\r
- return false;\r
-\r
- if( value->GetType() != GetType() )\r
- return false;\r
-\r
- return Equals( safe_cast<ModeDescription>( value ) );\r
- }\r
-\r
- bool ModeDescription::Equals( ModeDescription value )\r
- {\r
- return ( m_Width == value.m_Width && m_Height == value.m_Height && m_RefreshRate == value.m_RefreshRate\r
- && m_Format == value.m_Format && m_ScanlineOrdering == value.m_ScanlineOrdering && m_Scaling == value.m_Scaling );\r
- }\r
-\r
- bool ModeDescription::Equals( ModeDescription% value1, ModeDescription% value2 )\r
- {\r
- return ( value1.m_Width == value2.m_Width && value1.m_Height == value2.m_Height && value1.m_RefreshRate == value2.m_RefreshRate\r
- && value1.m_Format == value2.m_Format && value1.m_ScanlineOrdering == value2.m_ScanlineOrdering && value1.m_Scaling == value2.m_Scaling );\r
- }\r
-}\r
-}\r