+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Diagnostics;\r
-\r
-namespace DTXMania\r
-{\r
- public class CPreviewMagnifier\r
- {\r
-\r
- #region [ プロパティ(拡大率等の取得) ]\r
- /// <summary>\r
- /// 拡大後のwidth\r
- /// </summary>\r
- public int width;\r
- /// <summary>\r
- /// 拡大後のheight\r
- /// </summary>\r
- public int height;\r
- /// <summary>\r
- /// 拡大後のX拡大率\r
- /// </summary>\r
- public float magX;\r
- /// <summary>\r
- /// 拡大後のY拡大率\r
- /// </summary>\r
- public float magY;\r
-\r
- public int px;\r
- public int py;\r
-\r
- /// <summary>\r
- /// プレビュー画像向けの拡大率か(それとも、演奏画面向けの拡大率か)\r
- /// </summary>\r
- public enum EPreviewType : int\r
- {\r
- MusicSelect = 0, // 選曲画面\r
- PlayingFront = 1, // 演奏画面(ウインドウ表示の動画)\r
- PlayingBackground = 2 // 演奏画面(背景全画面表示の動画)\r
- }\r
- public EPreviewType ePreviewType;\r
- #endregion\r
-\r
- #region [ 定数定義 ]\r
- // 配列の0,1要素はそれぞれ, Preview用, 演奏画面用\r
- private int[] WIDTH_VGA_SET = { 204, 278, 640 }; // VGA版DTXManiaのプレビュー画像width値\r
- private int[] HEIGHT_VGA_SET = { 269, 355, 1920 }; // VGA版DTXManiaのプレビュー画像height値\r
- private int[] WIDTH_HD_SET = { 400, 400, 1920 }; // HD版DTXManiaのプレビュー画像width値\r
- private int[] HEIGHT_HD_SET = { 400, 600, 1080 }; // 600は仮 // HD版DTXManiaのプレビュー画像height値\r
- private int[] WIDTH_FHD_LIMIT = { 320, 320, 640 }; // VGA版/FullHD版どちらのプレビュー画像とみなすかのwidth閾値\r
- private int[] HEIGHT_FHD_LIMIT = { 416, 416, 480 }; // VGA版/FullHD版どちらのプレビュー画像とみなすかのwidth閾値\r
- private int[] WIDTH_FHD_SET = { (int)(204 * Scale.X), (int)(278 * Scale.X), 1920 }; // FHD版DTXManiaのプレビュー画像height値\r
- private int[] HEIGHT_FHD_SET = { (int)(269 * Scale.Y), (int)(355 * Scale.Y), 1080 }; // FHD版DTXManiaのプレビュー画像height値\r
- #endregion\r
-\r
-\r
- #region [ コンストラクタ ]\r
- /// <summary>\r
- /// コンストラクタ\r
- /// </summary>\r
- public CPreviewMagnifier()\r
- {\r
- }\r
- public CPreviewMagnifier(EPreviewType _ePreviewType)\r
- {\r
- CPreviewMagnifier_initializer(_ePreviewType, 0, 0);\r
- }\r
- public CPreviewMagnifier( EPreviewType _ePreviewType, int _px, int _py )\r
- {\r
- CPreviewMagnifier_initializer( _ePreviewType, _px, _py );\r
- }\r
- private void CPreviewMagnifier_initializer( EPreviewType _ePreviewType, int _px, int _py)\r
- {\r
- this.ePreviewType = _ePreviewType;\r
- this.px = _px;\r
- this.py = _py;\r
- }\r
- #endregion\r
-\r
- /// <summary>\r
- /// 拡大率の取得\r
- /// </summary>\r
- /// <param name="width_org">元の幅</param>\r
- /// <param name="height_org">元の高さ</param>\r
- /// <param name="magX_org">元の拡大率(幅)</param>\r
- /// <param name="magY_org">元の拡大率(高さ)</param>\r
- /// <remarks>出力はプロパティで得てください。</remarks>\r
- public void GetMagnifier(int width_org, int height_org, float magX_org, float magY_org)\r
- {\r
- //bool bIsPreview = ( this.ePreviewType == EPreviewType.MusicSelect );\r
-\r
- // #35820 画像サイズに関係なく、プレビュー領域に合わせる add ikanick 15.12.08\r
- // #36176 プレビュー画像については、前仕様(204x269)画像はアスペクト比を維持する change ikanick 16.03.20\r
-\r
- if ( this.ePreviewType == EPreviewType.PlayingBackground ) // フル背景動画に限り、上位指定の表示座標を無視する\r
- {\r
- this.px = this.py = 0;\r
- }\r
-\r
- #region [ アスペクト比を維持した拡大縮小 ]\r
- this.width = width_org;\r
- this.height = height_org;\r
- this.magX = magX_org * width_fhd_set / width_org;\r
- this.magY = magY_org * height_fhd_set / height_org;\r
-\r
- if ( magX > magY )\r
- {\r
- magX = magY;\r
- px += (int) ( ( width_fhd_set - ( width_org * magY ) ) / 2 );\r
- }\r
- else\r
- {\r
- magY = magX;\r
- py += (int) ( ( height_fhd_set - ( height_org * magX ) ) / 2 );\r
- }\r
- #endregion\r
- }\r
-\r
- #region [ bIsPreviewによる配列→定数読み替え ]\r
- private int width_vga_set\r
- {\r
- get\r
- {\r
- return WIDTH_VGA_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- private int height_vga_set\r
- {\r
- get\r
- {\r
- return HEIGHT_VGA_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- private int width_hd_set\r
- {\r
- get\r
- {\r
- return WIDTH_HD_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- private int height_hd_set\r
- {\r
- get\r
- {\r
- return HEIGHT_HD_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- private int width_fhd_limit\r
- {\r
- get\r
- {\r
- return WIDTH_FHD_LIMIT[ (int)ePreviewType ];\r
- }\r
- }\r
- private int height_fhd_limit\r
- {\r
- get\r
- {\r
- return HEIGHT_FHD_LIMIT[ (int)ePreviewType ];\r
- }\r
- }\r
- private int width_fhd_set\r
- {\r
- get\r
- {\r
- return WIDTH_FHD_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- private int height_fhd_set\r
- {\r
- get\r
- {\r
- return HEIGHT_FHD_SET[ (int)ePreviewType ];\r
- }\r
- }\r
- #endregion\r
- }\r
-}\r