--- /dev/null
+/*\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
+#include "stdafx.h"\r
+\r
+#include <d2d1.h>\r
+#include <d2d1helper.h>\r
+\r
+#include "Direct2DException.h"\r
+\r
+#include "StrokeStyle.h"\r
+\r
+const IID IID_ID2D1StrokeStyle = __uuidof(ID2D1StrokeStyle);\r
+\r
+using namespace System;\r
+\r
+namespace SlimDX\r
+{\r
+namespace Direct2D\r
+{\r
+ StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory )\r
+ {\r
+ ID2D1StrokeStyle *strokeStyle = NULL;\r
+\r
+ HRESULT hr = factory->InternalPointer->CreateStrokeStyle( D2D1::StrokeStyleProperties(), NULL, 0, &strokeStyle );\r
+\r
+ if( RECORD_D2D( hr ).IsFailure )\r
+ throw gcnew Direct2DException( Result::Last );\r
+\r
+ Construct( strokeStyle );\r
+ }\r
+\r
+ StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory, StrokeStyleProperties properties )\r
+ {\r
+ ID2D1StrokeStyle *strokeStyle = NULL;\r
+\r
+ HRESULT hr = factory->InternalPointer->CreateStrokeStyle( reinterpret_cast<D2D1_STROKE_STYLE_PROPERTIES*>( &properties ), \r
+ NULL, 0, &strokeStyle );\r
+\r
+ if( RECORD_D2D( hr ).IsFailure )\r
+ throw gcnew Direct2DException( Result::Last );\r
+\r
+ Construct( strokeStyle );\r
+ }\r
+\r
+ StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory, StrokeStyleProperties properties, array<float>^ dashes )\r
+ {\r
+ ID2D1StrokeStyle *strokeStyle = NULL;\r
+ pin_ptr<float> pinnedDashes = &dashes[0];\r
+\r
+ HRESULT hr = factory->InternalPointer->CreateStrokeStyle( reinterpret_cast<D2D1_STROKE_STYLE_PROPERTIES*>( &properties ), \r
+ pinnedDashes, dashes->Length, &strokeStyle );\r
+\r
+ if( RECORD_D2D( hr ).IsFailure )\r
+ throw gcnew Direct2DException( Result::Last );\r
+\r
+ Construct( strokeStyle );\r
+ }\r
+\r
+ array<float>^ StrokeStyle::GetDashes()\r
+ {\r
+ array<float>^ results = gcnew array<float>( InternalPointer->GetDashesCount() );\r
+ pin_ptr<float> pinnedResults = &results[0];\r
+\r
+ InternalPointer->GetDashes( pinnedResults, InternalPointer->GetDashesCount() );\r
+\r
+ return results;\r
+ }\r
+\r
+ CapStyle StrokeStyle::StartCap::get()\r
+ {\r
+ return static_cast<CapStyle>( InternalPointer->GetStartCap() );\r
+ }\r
+\r
+ CapStyle StrokeStyle::EndCap::get()\r
+ {\r
+ return static_cast<CapStyle>( InternalPointer->GetEndCap() );\r
+ }\r
+\r
+ CapStyle StrokeStyle::DashCap::get()\r
+ {\r
+ return static_cast<CapStyle>( InternalPointer->GetDashCap() );\r
+ }\r
+\r
+ SlimDX::Direct2D::LineJoin StrokeStyle::LineJoin::get()\r
+ {\r
+ return static_cast<SlimDX::Direct2D::LineJoin>( InternalPointer->GetLineJoin() );\r
+ }\r
+\r
+ float StrokeStyle::MiterLimit::get()\r
+ {\r
+ return InternalPointer->GetMiterLimit();\r
+ }\r
+\r
+ SlimDX::Direct2D::DashStyle StrokeStyle::DashStyle::get()\r
+ {\r
+ return static_cast<SlimDX::Direct2D::DashStyle>( InternalPointer->GetDashStyle() );\r
+ }\r
+\r
+ float StrokeStyle::DashOffset::get()\r
+ {\r
+ return InternalPointer->GetDashOffset();\r
+ }\r
+}\r
+}
\ No newline at end of file