OSDN Git Service

SlimDX から SharpDX へ機械的に移行。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 05.選曲 / CActSelectShowCurrentPosition.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 System.IO;\r
7 using SharpDX;\r
8 using FDK;\r
9 \r
10 using Rectangle = System.Drawing.Rectangle;\r
11 \r
12 namespace DTXMania\r
13 {\r
14         internal class CActSelectShowCurrentPosition : CActivity\r
15         {\r
16                 // メソッド\r
17 \r
18                 public CActSelectShowCurrentPosition()\r
19                 {\r
20                         base.b活性化してない = true;\r
21                 }\r
22 \r
23                 // CActivity 実装\r
24 \r
25                 public override void On活性化()\r
26                 {\r
27                         if (this.b活性化してる)\r
28                                 return;\r
29 \r
30                         base.On活性化();\r
31                 }\r
32                 public override void On非活性化()\r
33                 {\r
34                         base.On非活性化();\r
35                 }\r
36                 public override void OnManagedリソースの作成()\r
37                 {\r
38                         if (!base.b活性化してない)\r
39                         {\r
40                                 string pathScrollBar = CSkin.Path(@"Graphics\ScreenSelect scrollbar.png");\r
41                                 string pathScrollPosition = CSkin.Path(@"Graphics\ScreenSelect scrollbar.png");\r
42                                 if (File.Exists(pathScrollBar))\r
43                                 {\r
44                                         this.txScrollBar = TextureFactory.tテクスチャの生成(pathScrollBar, false);\r
45                                 }\r
46                                 if (File.Exists(pathScrollPosition))\r
47                                 {\r
48                                         this.txScrollPosition = TextureFactory.tテクスチャの生成(pathScrollPosition, false);\r
49                                 }\r
50                                 base.OnManagedリソースの作成();\r
51                         }\r
52                 }\r
53                 public override void OnManagedリソースの解放()\r
54                 {\r
55                         if (!base.b活性化してない)\r
56                         {\r
57                                 TextureFactory.t安全にDisposeする(ref this.txScrollBar);\r
58                                 TextureFactory.t安全にDisposeする(ref this.txScrollPosition);\r
59 \r
60                                 base.OnManagedリソースの解放();\r
61                         }\r
62                 }\r
63                 public override int On進行描画()\r
64                 {\r
65                         #region [ スクロールバーの描画 #27648 ]\r
66                         if (this.txScrollBar != null)\r
67                         {\r
68                                 for (int sy = 0; sy < (int)(336 * Scale.Y); sy += (int)(128 * Scale.Y))\r
69                                 {\r
70                                         int ry = (sy / (int)(128 * Scale.Y));\r
71                                         int h = ((ry + 1) * (int)(128 * Scale.Y) > (int)(336 * Scale.Y)) ? (int)(336 * Scale.Y) - ry * (int)(128 * Scale.Y) : (int)(128 * Scale.Y);\r
72                                         this.txScrollBar.t2D描画(\r
73                                                 CDTXMania.Instance.Device,\r
74                                                 SampleFramework.GameWindowSize.Width - 12 * Scale.X,\r
75                                                 58 * Scale.Y + sy,\r
76                                                 new Rectangle(\r
77                                                         (int)(ry * 12 * Scale.X),\r
78                                                         0,\r
79                                                         (int)(12 * Scale.X),\r
80                                                         h\r
81                                                 )\r
82                                         );  // 本当のy座標は88なんだが、なぜか約30のバイアスが掛かる・・・\r
83                                 }\r
84                         }\r
85                         #endregion\r
86                         #region [ スクロール地点の描画 (計算はCActSelect曲リストで行う。スクロール位置と選曲項目の同期のため。)#27648 ]\r
87                         if (this.txScrollPosition != null)\r
88                         {\r
89                                 int py = CDTXMania.Instance.stage選曲.nスクロールバー相対y座標;\r
90                                 if (py <= 336 * Scale.Y - 6 - 8 && py >= 0)\r
91                                 {\r
92                                         this.txScrollPosition.t2D描画(\r
93                                                 CDTXMania.Instance.Device,\r
94                                                 SampleFramework.GameWindowSize.Width - (12 - 3) * Scale.X,\r
95                                                 58 * Scale.Y + py,\r
96                                                 new Rectangle(\r
97                                                         (int)(30 * Scale.X),\r
98                                                         (int)(120 * Scale.Y),\r
99                                                         (int)(6 * Scale.X),\r
100                                                         (int)(8 * Scale.Y)\r
101                                                 )\r
102                                         );\r
103                                 }\r
104                         }\r
105                         #endregion\r
106 \r
107                         return 0;\r
108                 }\r
109 \r
110 \r
111                 // その他\r
112 \r
113                 #region [ private ]\r
114                 //-----------------\r
115                 private CTexture txScrollPosition;\r
116                 private CTexture txScrollBar;\r
117                 //-----------------\r
118                 #endregion\r
119         }\r
120 }\r