OSDN Git Service

#36043 rev.920 で手違いが起きたため、一度 rev.919 に戻し、ファイルを再修正。Ech定義の使用を CChip のプロパティを使うよう一部変更。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / 全体 / CPreviewMagnifier.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Diagnostics;\r
5 \r
6 namespace DTXMania\r
7 {\r
8         public class CPreviewMagnifier\r
9         {\r
10                 #region [ プロパティ(拡大率等の取得) ]\r
11                 /// <summary>\r
12                 /// 拡大後のwidth\r
13                 /// </summary>\r
14                 public int width;\r
15                 /// <summary>\r
16                 /// 拡大後のheight\r
17                 /// </summary>\r
18                 public int height;\r
19                 /// <summary>\r
20                 /// 拡大後のX拡大率\r
21                 /// </summary>\r
22                 public float magX;\r
23                 /// <summary>\r
24                 /// 拡大後のY拡大率\r
25                 /// </summary>\r
26                 public float magY;\r
27 \r
28                 /// <summary>\r
29                 /// プレビュー画像向けの拡大率か(それとも、演奏画面向けの拡大率か)\r
30                 /// </summary>\r
31                 public bool bIsPreview;\r
32                 #endregion\r
33 \r
34                 #region [ 定数定義 ]\r
35                 // 配列の0,1要素はそれぞれ, Preview用, 演奏画面用\r
36                 private int[] WIDTH_VGA_SET             = { 204, 278 };                                                                                 // VGA版DTXManiaのプレビュー画像width値\r
37                 private int[] HEIGHT_VGA_SET    = { 269, 355 };                                                                                 // VGA版DTXManiaのプレビュー画像height値\r
38                 private int[] WIDTH_HD_SET              = { 400, 400 };                                                                                 // HD版DTXManiaのプレビュー画像width値\r
39                 private int[] HEIGHT_HD_SET             = { 400, 600 }; // 600は仮                                                            // HD版DTXManiaのプレビュー画像height値\r
40                 private int[] WIDTH_FHD_LIMIT   = { 320, 320 };                                                                                 // VGA版/FullHD版どちらのプレビュー画像とみなすかのwidth閾値\r
41                 private int[] HEIGHT_FHD_LIMIT  = { 416, 416 };                                                                                 // VGA版/FullHD版どちらのプレビュー画像とみなすかのwidth閾値\r
42                 private int[] WIDTH_FHD_SET             = { (int) ( 204 * Scale.X ), (int) ( 278 * Scale.X ) }; // FHD版DTXManiaのプレビュー画像height値\r
43                 private int[] HEIGHT_FHD_SET    = { (int) ( 269 * Scale.Y ), (int) ( 355 * Scale.Y ) }; // FHD版DTXManiaのプレビュー画像height値\r
44                 #endregion\r
45 \r
46                 #region [ コンストラクタ ]\r
47                 /// <summary>\r
48                 /// コンストラクタ\r
49                 /// </summary>\r
50                 public CPreviewMagnifier()\r
51                 {\r
52                 }\r
53                 #endregion\r
54 \r
55                 /// <summary>\r
56                 /// 拡大率の取得\r
57                 /// </summary>\r
58                 /// <param name="width_org">元の幅</param>\r
59                 /// <param name="height_org">元の高さ</param>\r
60                 /// <param name="magX_org">元の拡大率(幅)</param>\r
61                 /// <param name="magY_org">元の拡大率(高さ)</param>\r
62                 /// <param name="bIsPreview">選曲画面(preview)用か、演奏画面用か</param>\r
63                 /// <remarks>出力はプロパティで得てください。</remarks>\r
64                 public void GetMagnifier( int width_org, int height_org, float magX_org, float magY_org, bool bIsPreview)\r
65                 {\r
66                         this.bIsPreview = bIsPreview;\r
67 \r
68             // #35820 画像サイズに関係なく、プレビュー領域に合わせる add ikanick 15.12.08\r
69             this.width = width_fhd_set;\r
70             this.height = height_fhd_set;\r
71             this.magX = magX_org * width_vga_set / width_org * Scale.X;\r
72             this.magY = magY_org * height_vga_set / height_org * Scale.Y;\r
73             return;\r
74 \r
75 #if false       // FHD対応の名残\r
76                         #region [ HD版DTXManiaのプレビュー画像は特別扱いする ]\r
77                         if ( width_org == width_hd_set && height_org == height_hd_set )                 // HD版DTXManiaのプレビュー画像は特別扱いする\r
78                         {\r
79                                 this.width = width_org;\r
80                                 this.height = height_org;\r
81                                 this.magX = 1.5f * magX_org;\r
82                                 this.magY = 1.5f * magY_org;\r
83                                 return;\r
84                         }\r
85                         #endregion\r
86 \r
87                         #region [ width ]\r
88                         if ( width_org <= width_vga_set )                                                                               // width <= 204 なら、拡大率だけ変更\r
89                         {\r
90                                 this.width = width_org;\r
91                                 this.magX = magX_org * Scale.X;\r
92                         }\r
93                         else if ( width_fhd_limit > width_org && width_org > width_vga_set )                    // width >= 320 なら原寸表示\r
94                         {\r
95                                 this.width = width_vga_set;\r
96                                 this.magX = magX_org * Scale.X;\r
97                         }\r
98                         else if ( width_org >= width_fhd_limit )\r
99                         {\r
100                                 this.width = (int) ( width_vga_set * Scale.X );\r
101                                 this.magX = magX_org;   // / width_hd_set;\r
102                         }\r
103                         else\r
104                         {\r
105                                 this.width = width_org;\r
106                                 this.magX = magX_org * Scale.X;\r
107                         }\r
108                         #endregion\r
109 \r
110                         #region [ height ]\r
111                         if ( height_org <= height_vga_set )                                                                                     // height <= 269 なら、拡大率だけ変更\r
112                         {\r
113                                 this.height = height_org;\r
114                                 this.magY = magY_org * Scale.Y;\r
115                         }\r
116                         else if ( height_fhd_limit > height_org && height_org > height_vga_set )                // height >= 416 なら原寸表示\r
117                         {\r
118                                 this.height = height_vga_set;\r
119                                 this.magY = magY_org * Scale.Y;\r
120                         }\r
121                         else if ( width_org >= height_fhd_limit )\r
122                         {\r
123                                 this.height = (int) ( height_vga_set * Scale.Y );\r
124                                 this.magY = magY_org; // / height_fhd_set;\r
125                         }\r
126                         else\r
127                         {\r
128                                 this.height = height_org;\r
129                                 this.magY = magY_org * Scale.Y;\r
130                         }\r
131                         #endregion\r
132 #endif\r
133                 }\r
134 \r
135                 #region [ bIsPreviewによる配列→定数読み替え ]\r
136                 private int width_vga_set\r
137                 {\r
138                         get\r
139                         {\r
140                                 return bIsPreview? WIDTH_VGA_SET[ 0 ] : WIDTH_VGA_SET[ 1 ];\r
141                         }\r
142                 }\r
143                 private int height_vga_set\r
144                 {\r
145                         get\r
146                         {\r
147                                 return bIsPreview? HEIGHT_VGA_SET[ 0 ] : HEIGHT_VGA_SET[ 1 ];\r
148                         }\r
149                 }\r
150                 private int width_hd_set\r
151                 {\r
152                         get\r
153                         {\r
154                                 return bIsPreview? WIDTH_HD_SET[ 0 ] : WIDTH_HD_SET[1];\r
155                         }\r
156                 }\r
157                 private int height_hd_set\r
158                 {\r
159                         get\r
160                         {\r
161                                 return bIsPreview? HEIGHT_HD_SET[ 0 ] : HEIGHT_HD_SET[ 1 ];\r
162                         }\r
163                 }\r
164                 private int width_fhd_limit\r
165                 {\r
166                         get\r
167                         {\r
168                                 return  bIsPreview? WIDTH_FHD_LIMIT[ 0 ] : WIDTH_FHD_LIMIT[ 1 ];\r
169                         }\r
170                 }\r
171                 private int height_fhd_limit\r
172                 {\r
173                         get\r
174                         {\r
175                                 return bIsPreview? HEIGHT_FHD_LIMIT[ 0 ] : HEIGHT_FHD_LIMIT[ 1 ];\r
176                         }\r
177                 }\r
178                 private int width_fhd_set\r
179                 {\r
180                         get\r
181                         {\r
182                                 return bIsPreview ? WIDTH_FHD_SET[ 0 ] : WIDTH_FHD_SET[ 1 ];\r
183                         }\r
184                 }\r
185                 private int height_fhd_set\r
186                 {\r
187                         get\r
188                         {\r
189                                 return bIsPreview ? HEIGHT_FHD_SET[ 0 ] : HEIGHT_FHD_SET[ 1 ];\r
190                         }\r
191                 }\r
192                 #endregion\r
193 \r
194         }\r
195 }\r