OSDN Git Service

DTXMania089リリースに際してのtag付け。
[dtxmania/dtxmania.git] / 110401(DTXMania089) / SlimDXc_Jun2010(VC++2008) / source / direct2d / StrokeStyle.cpp
1 /*\r
2 * Copyright (c) 2007-2010 SlimDX Group\r
3\r
4 * Permission is hereby granted, free of charge, to any person obtaining a copy\r
5 * of this software and associated documentation files (the "Software"), to deal\r
6 * in the Software without restriction, including without limitation the rights\r
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
8 * copies of the Software, and to permit persons to whom the Software is\r
9 * furnished to do so, subject to the following conditions:\r
10\r
11 * The above copyright notice and this permission notice shall be included in\r
12 * all copies or substantial portions of the Software.\r
13\r
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
20 * THE SOFTWARE.\r
21 */\r
22 #include "stdafx.h"\r
23 \r
24 #include <d2d1.h>\r
25 #include <d2d1helper.h>\r
26 \r
27 #include "Direct2DException.h"\r
28 \r
29 #include "StrokeStyle.h"\r
30 \r
31 const IID IID_ID2D1StrokeStyle = __uuidof(ID2D1StrokeStyle);\r
32 \r
33 using namespace System;\r
34 \r
35 namespace SlimDX\r
36 {\r
37 namespace Direct2D\r
38 {\r
39         StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory )\r
40         {\r
41                 ID2D1StrokeStyle *strokeStyle = NULL;\r
42 \r
43                 HRESULT hr = factory->InternalPointer->CreateStrokeStyle( D2D1::StrokeStyleProperties(), NULL, 0, &strokeStyle );\r
44 \r
45                 if( RECORD_D2D( hr ).IsFailure )\r
46                         throw gcnew Direct2DException( Result::Last );\r
47 \r
48                 Construct( strokeStyle );\r
49         }\r
50 \r
51         StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory, StrokeStyleProperties properties )\r
52         {\r
53                 ID2D1StrokeStyle *strokeStyle = NULL;\r
54 \r
55                 HRESULT hr = factory->InternalPointer->CreateStrokeStyle( reinterpret_cast<D2D1_STROKE_STYLE_PROPERTIES*>( &properties ), \r
56                         NULL, 0, &strokeStyle );\r
57 \r
58                 if( RECORD_D2D( hr ).IsFailure )\r
59                         throw gcnew Direct2DException( Result::Last );\r
60 \r
61                 Construct( strokeStyle );\r
62         }\r
63 \r
64         StrokeStyle::StrokeStyle( SlimDX::Direct2D::Factory^ factory, StrokeStyleProperties properties, array<float>^ dashes )\r
65         {\r
66                 ID2D1StrokeStyle *strokeStyle = NULL;\r
67                 pin_ptr<float> pinnedDashes = &dashes[0];\r
68 \r
69                 HRESULT hr = factory->InternalPointer->CreateStrokeStyle( reinterpret_cast<D2D1_STROKE_STYLE_PROPERTIES*>( &properties ), \r
70                         pinnedDashes, dashes->Length, &strokeStyle );\r
71 \r
72                 if( RECORD_D2D( hr ).IsFailure )\r
73                         throw gcnew Direct2DException( Result::Last );\r
74 \r
75                 Construct( strokeStyle );\r
76         }\r
77 \r
78         array<float>^ StrokeStyle::GetDashes()\r
79         {\r
80                 array<float>^ results = gcnew array<float>( InternalPointer->GetDashesCount() );\r
81                 pin_ptr<float> pinnedResults = &results[0];\r
82 \r
83                 InternalPointer->GetDashes( pinnedResults, InternalPointer->GetDashesCount() );\r
84 \r
85                 return results;\r
86         }\r
87 \r
88         CapStyle StrokeStyle::StartCap::get()\r
89         {\r
90                 return static_cast<CapStyle>( InternalPointer->GetStartCap() );\r
91         }\r
92 \r
93         CapStyle StrokeStyle::EndCap::get()\r
94         {\r
95                 return static_cast<CapStyle>( InternalPointer->GetEndCap() );\r
96         }\r
97 \r
98         CapStyle StrokeStyle::DashCap::get()\r
99         {\r
100                 return static_cast<CapStyle>( InternalPointer->GetDashCap() );\r
101         }\r
102 \r
103         SlimDX::Direct2D::LineJoin StrokeStyle::LineJoin::get()\r
104         {\r
105                 return static_cast<SlimDX::Direct2D::LineJoin>( InternalPointer->GetLineJoin() );\r
106         }\r
107 \r
108         float StrokeStyle::MiterLimit::get()\r
109         {\r
110                 return InternalPointer->GetMiterLimit();\r
111         }\r
112 \r
113         SlimDX::Direct2D::DashStyle StrokeStyle::DashStyle::get()\r
114         {\r
115                 return static_cast<SlimDX::Direct2D::DashStyle>( InternalPointer->GetDashStyle() );\r
116         }\r
117 \r
118         float StrokeStyle::DashOffset::get()\r
119         {\r
120                 return InternalPointer->GetDashOffset();\r
121         }\r
122 }\r
123 }