OSDN Git Service

#36897 [DTXC] MIDIインポート機能の呼び出し口を、ファイルメニュー内にも配置。
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / direct3d9 / Line.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 #include <windows.h>\r
24 #include <d3d9.h>\r
25 #include <d3dx9.h>\r
26 \r
27 #include "../ComObject.h"\r
28 \r
29 #include "../math/Color4.h"\r
30 #include "../math/Matrix.h"\r
31 #include "../math/Vector2.h"\r
32 #include "../math/Vector3.h"\r
33 \r
34 #include "Direct3D9Exception.h"\r
35 \r
36 #include "Device.h"\r
37 #include "Line.h"\r
38 \r
39 using namespace System;\r
40 using namespace System::Drawing;\r
41 \r
42 namespace SlimDX\r
43 {\r
44 namespace Direct3D9\r
45 {\r
46         Line::Line( SlimDX::Direct3D9::Device^ device )\r
47         {\r
48                 ID3DXLine* line;\r
49 \r
50                 HRESULT hr = D3DXCreateLine( device->InternalPointer, &line );\r
51                 if( RECORD_D3D9( hr ).IsFailure )\r
52                         throw gcnew Direct3D9Exception( Result::Last );\r
53 \r
54                 Construct(line);\r
55         }\r
56 \r
57         Result Line::Begin()\r
58         {\r
59                 HRESULT hr = InternalPointer->Begin();\r
60                 return RECORD_D3D9( hr );\r
61         }\r
62 \r
63         Result Line::End()\r
64         {\r
65                 HRESULT hr = InternalPointer->End();\r
66                 return RECORD_D3D9( hr );\r
67         }\r
68 \r
69         Result Line::Draw( array<Vector2>^ vertexList, Color4 color )\r
70         {\r
71                 pin_ptr<Vector2> pinnedVerts = &vertexList[0];\r
72 \r
73                 HRESULT hr = InternalPointer->Draw( reinterpret_cast<D3DXVECTOR2*>( pinnedVerts ), vertexList->Length, color.ToArgb() );\r
74                 return RECORD_D3D9( hr );\r
75         }\r
76         \r
77         Result Line::DrawTransformed( array<Vector3>^ vertexList, Matrix transform, Color4 color )\r
78         {\r
79                 pin_ptr<Vector3> pinnedVerts = &vertexList[0];\r
80 \r
81                 HRESULT hr = InternalPointer->DrawTransform( reinterpret_cast<D3DXVECTOR3*>( pinnedVerts ), vertexList->Length, reinterpret_cast<const D3DXMATRIX*>( &transform ), color.ToArgb() );\r
82                 return RECORD_D3D9( hr );\r
83         }\r
84         \r
85         Result Line::OnLostDevice()\r
86         {\r
87                 HRESULT hr = InternalPointer->OnLostDevice();\r
88                 return RECORD_D3D9( hr );\r
89         }\r
90 \r
91         Result Line::OnResetDevice()\r
92         {\r
93                 HRESULT hr = InternalPointer->OnResetDevice();\r
94                 return RECORD_D3D9( hr );\r
95         }\r
96 \r
97         SlimDX::Direct3D9::Device^ Line::Device::get()\r
98         {\r
99                 IDirect3DDevice9* device;\r
100                 HRESULT hr = InternalPointer->GetDevice( &device );\r
101                 if( RECORD_D3D9( hr ).IsFailure )\r
102                         return nullptr;\r
103 \r
104                 return SlimDX::Direct3D9::Device::FromPointer( device );\r
105         }\r
106 \r
107         bool Line::Antialias::get()\r
108         {\r
109                 return InternalPointer->GetAntialias() > 0;\r
110         }\r
111 \r
112         void Line::Antialias::set( bool value )\r
113         {\r
114                 HRESULT hr = InternalPointer->SetAntialias( value );\r
115                 RECORD_D3D9( hr );\r
116         }\r
117 \r
118         bool Line::GLLines::get()\r
119         {\r
120                 return InternalPointer->GetGLLines() > 0;\r
121         }\r
122 \r
123         void Line::GLLines::set( bool value )\r
124         {\r
125                 HRESULT hr = InternalPointer->SetGLLines( value );\r
126                 RECORD_D3D9( hr );\r
127         }\r
128 \r
129         int Line::Pattern::get()\r
130         {\r
131                 return InternalPointer->GetPattern();\r
132         }\r
133 \r
134         void Line::Pattern::set( int value )\r
135         {\r
136                 HRESULT hr = InternalPointer->SetPattern( value );\r
137                 RECORD_D3D9( hr );\r
138         }\r
139 \r
140         float Line::PatternScale::get()\r
141         {\r
142                 return InternalPointer->GetPatternScale();\r
143         }\r
144 \r
145         void Line::PatternScale::set( float value )\r
146         {\r
147                 HRESULT hr = InternalPointer->SetPatternScale( value );\r
148                 RECORD_D3D9( hr );\r
149         }\r
150 \r
151         float Line::Width::get()\r
152         {\r
153                 return InternalPointer->GetWidth();\r
154         }\r
155 \r
156         void Line::Width::set( float value )\r
157         {\r
158                 HRESULT hr = InternalPointer->SetWidth( value );\r
159                 RECORD_D3D9( hr );\r
160         }\r
161 \r
162 }\r
163 }