OSDN Git Service

DTXMania089リリースに際してのtag付け。
[dtxmania/dtxmania.git] / 110401(DTXMania089) / SlimDXc_Jun2010(VC++2008) / source / direct2d / StrokeStyle.cpp
diff --git a/110401(DTXMania089)/SlimDXc_Jun2010(VC++2008)/source/direct2d/StrokeStyle.cpp b/110401(DTXMania089)/SlimDXc_Jun2010(VC++2008)/source/direct2d/StrokeStyle.cpp
new file mode 100644 (file)
index 0000000..dd552f5
--- /dev/null
@@ -0,0 +1,123 @@
+/*\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