OSDN Git Service

SlimDX から SharpDX へ機械的に移行。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏パネル文字列.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Drawing;\r
5 using System.Diagnostics;\r
6 using SharpDX;\r
7 using FDK;\r
8 \r
9 using Color = System.Drawing.Color;\r
10 using Rectangle = System.Drawing.Rectangle;\r
11 \r
12 namespace DTXMania\r
13 {\r
14         internal class CAct演奏パネル文字列 : CActivity\r
15         {\r
16                 public CAct演奏パネル文字列()\r
17                 {\r
18                         base.b活性化してない = true;\r
19                         this.Start();\r
20                 }\r
21 \r
22                 public void SetPanelString(string str)\r
23                 {\r
24                         if (base.b活性化してる)\r
25                         {\r
26                                 TextureFactory.tテクスチャの解放(ref this.txPanel);\r
27 \r
28                                 if (!string.IsNullOrEmpty(str))\r
29                                 {\r
30                                         using (FontFamily ff = new FontFamily("MS PGothic"))\r
31                                         {\r
32                                                 using (CPrivateFont cpf = new CPrivateFont(ff, 24))\r
33                                                 {\r
34                                                         using (Bitmap bmp = cpf.DrawPrivateFont(str, Color.White, Color.DarkGray))\r
35                                                         {\r
36                                                                 this.txPanel = TextureFactory.tテクスチャの生成(bmp);\r
37                                                         }\r
38                                                 }\r
39                                         }\r
40                                         this.Start();\r
41                                 }\r
42                         }\r
43                 }\r
44 \r
45                 public void Stop()\r
46                 {\r
47                         this.bMute = true;\r
48                 }\r
49 \r
50                 public void Start()\r
51                 {\r
52                         this.bMute = false;\r
53                 }\r
54 \r
55                 public override void On活性化()\r
56                 {\r
57                         this.txPanel = null;\r
58                         this.Start();\r
59                         base.On活性化();\r
60                 }\r
61 \r
62                 public override void On非活性化()\r
63                 {\r
64                         TextureFactory.tテクスチャの解放(ref this.txPanel);\r
65                         base.On非活性化();\r
66                 }\r
67 \r
68                 public override void OnManagedリソースの作成()\r
69                 {\r
70                         if (!base.b活性化してない)\r
71                         {\r
72                                 base.OnManagedリソースの作成();\r
73                         }\r
74                 }\r
75 \r
76                 public override void OnManagedリソースの解放()\r
77                 {\r
78                         if (!base.b活性化してない)\r
79                         {\r
80                                 TextureFactory.tテクスチャの解放(ref this.txPanel);\r
81                                 base.OnManagedリソースの解放();\r
82                         }\r
83                 }\r
84 \r
85                 public override int On進行描画()\r
86                 {\r
87                         if (b活性化してる && !this.bMute)\r
88                         {\r
89                                 int x = CDTXMania.Instance.Coordinates.Panel.X;\r
90                                 int y = CDTXMania.Instance.Coordinates.Panel.Y;\r
91                                 if (this.txPanel != null)\r
92                                 {\r
93                                         Rectangle rectangle = new Rectangle(0, 0, txPanel.sz画像サイズ.Width, txPanel.sz画像サイズ.Height);\r
94                                         txPanel.fZ軸中心回転 = (float)(Math.PI / 2);\r
95                                         this.txPanel.t2D描画(CDTXMania.Instance.Device, x - rectangle.Width / 2 - rectangle.Height / 2, y + rectangle.Width / 2 - rectangle.Height / 2, rectangle);\r
96 \r
97                                 }\r
98                         }\r
99                         return 0;\r
100                 }\r
101 \r
102                 private CTexture txPanel;\r
103                 private bool bMute;\r
104         }\r
105 }\r