1 // -------------------------------------------------------------------------------
2 //
3 //         DXライブラリ        ヘッダファイル
4 //
5 //                 Ver 3.22c
6 //
7 // -------------------------------------------------------------------------------
8 module dxlib_d.DxLib;
9 
10 
11 private static import core.stdc.config;
12 private static import core.stdc.stdarg;
13 private static import core.stdc.stddef;
14 public import dxlib_d.DxCompileConfig;
15 public import dxlib_d.DxDataType;
16 
17 nothrow @nogc:
18 
19 // DXライブラリのバージョン
20 
21 /**
22  * DXライブラリのバージョン
23  */
24 enum DXLIB_VERSION = 0x322C;
25 
26 version (Unicode) {
27 	enum DXLIB_VERSION_STR_T = "3.22c"w;
28 } else {
29 	enum DXLIB_VERSION_STR_T = "3.22c";
30 }
31 
32 enum DXLIB_VERSION_STR_W = "3.22c"w;
33 
34 // 設定 -----------------------------------------------------------------------
35 
36 version (DX_MAKE) {
37 } else {
38 	// 描画関連の関数を一切使用されない場合は以下のコメントを外して下さい
39 	//version = DX_NOTUSE_DRAWFUNCTION;
40 }
41 
42 // 定義---------------------------------------------------------------------------
43 
44 /**
45  * π
46  */
47 enum
48 {
49 	/**
50 	 * π
51 	 */
52 	DX_PI = 3.1415926535897932384626433832795,
53 
54 	/**
55 	 * π
56 	 */
57 	DX_PI_F = 3.1415926535897932384626433832795f,
58 
59 	/**
60 	 * π
61 	 */
62 	DX_TWO_PI = 3.1415926535897932384626433832795 * 2.0,
63 
64 	/**
65 	 * π
66 	 */
67 	DX_TWO_PI_F = 3.1415926535897932384626433832795f * 2.0f,
68 }
69 
70 /**
71  * ?
72  */
73 alias DX_CHAR = char;
74 
75 alias wchar_t = core.stdc.stddef.wchar_t;
76 
77 /**
78  * 最大数
79  */
80 enum
81 {
82 	/**
83 	 * 同時に持てるグラフィックハンドルの最大数(ハンドルエラーチェックのマスクに使用しているので0x040000以下の2のべき乗にして下さい)
84 	 */
85 	MAX_IMAGE_NUM = 0x040000,
86 
87 	/**
88 	 * 画像分割の最大数
89 	 */
90 	MAX_IMAGE_DIVNUM = 64,
91 
92 	/**
93 	 * シャドウマップデータの最大数
94 	 */
95 	MAX_SHADOWMAP_NUM = 8192,
96 
97 	/**
98 	 * 同時に持てるソフトイメージハンドルの最大数(ハンドルエラーチェックのマスクに使用しているので0x040000以下の2のべき乗にして下さい)
99 	 */
100 	MAX_SOFTIMAGE_NUM = 8192,
101 
102 	/**
103 	 * 同時に持てるサウンドハンドルの最大数
104 	 */
105 	MAX_SOUND_NUM = 32768,
106 
107 	/**
108 	 * 同時に持てるソフトウエアサウンドハンドルの最大数
109 	 */
110 	MAX_SOFTSOUND_NUM = 8192,
111 
112 	/**
113 	 * 同時に持てるミュージックハンドルの最大数
114 	 */
115 	MAX_MUSIC_NUM = 256,
116 
117 	/**
118 	 * 同時に持てるムービーハンドルの最大数
119 	 */
120 	MAX_MOVIE_NUM = 100,
121 
122 	/**
123 	 * 同時に持てるマスクハンドルの最大数
124 	 */
125 	MAX_MASK_NUM = 32768,
126 
127 	/**
128 	 * 同時に持てるフォントハンドルの最大数
129 	 */
130 	MAX_FONT_NUM = 40,
131 
132 	/**
133 	 * 同時に持てる文字列入力ハンドルの最大数
134 	 */
135 	MAX_INPUT_NUM = 256,
136 
137 	/**
138 	 * 同時に持てる通信ハンドルの最大数
139 	 */
140 	MAX_SOCKET_NUM = 8192,
141 
142 	/**
143 	 * 同時に持てるライトハンドルの最大数
144 	 */
145 	MAX_LIGHT_NUM = 4096,
146 
147 	/**
148 	 * 同時に持てるシェーダーハンドルの最大数
149 	 */
150 	MAX_SHADER_NUM = 4096,
151 
152 	/**
153 	 * 同時に持てる定数バッファハンドルの最大数
154 	 */
155 	MAX_CONSTANT_BUFFER_NUM = 32768,
156 
157 	/**
158 	 * 同時に持てる3Dモデル基本データハンドルの最大数
159 	 */
160 	MAX_MODEL_BASE_NUM = 32768,
161 
162 	/**
163 	 * 同時に持てる3Dモデルデータハンドルの最大数
164 	 */
165 	MAX_MODEL_NUM = 32768,
166 
167 	/**
168 	 * 同時に持てる頂点バッファハンドルの最大数
169 	 */
170 	MAX_VERTEX_BUFFER_NUM = 16384,
171 
172 	/**
173 	 * 同時に持てるインデックスバッファの最大数
174 	 */
175 	MAX_INDEX_BUFFER_NUM = 16384,
176 
177 	/**
178 	 * 同時に持てるファイルハンドルの最大数
179 	 */
180 	MAX_FILE_NUM = 32768,
181 
182 	/**
183 	 * 同時に持てるLive2D Cubism 4 Modelハンドルの最大数
184 	 */
185 	MAX_LIVE2D_CUBISM4_MODEL_NUM = 32768,
186 
187 	/**
188 	 * ジョイパッドの最大数
189 	 */
190 	MAX_JOYPAD_NUM = 16,
191 
192 	/**
193 	 * ユーザーが登録できるグラフィックロード関数の最大数
194 	 */
195 	MAX_USERIMAGEREAD_FUNCNUM = 10,
196 }
197 
198 /**
199  * デフォルト値
200  */
201 enum
202 {
203 	/**
204 	 * デフォルトの画面の幅
205 	 */
206 	DEFAULT_SCREEN_SIZE_X = 640,
207 
208 	/**
209 	 * デフォルトの画面の高さ
210 	 */
211 	DEFAULT_SCREEN_SIZE_Y = 480,
212 
213 	/**
214 	 * デフォルトの色ビット深度
215 	 */
216 	DEFAULT_COLOR_BITDEPTH = 16,
217 
218 	/**
219 	 * デフォルトのZバッファビット深度
220 	 */
221 	DEFAULT_ZBUFFER_BITDEPTH = 16,
222 
223 	/**
224 	 * デフォルトの視野角
225 	 */
226 	DEFAULT_FOV = 60.0F * 3.1415926535897932384626433832795F / 180.0F,
227 
228 	/**
229 	 * tan(FOV * 0.5)
230 	 */
231 	DEFAULT_TAN_FOV_HALF = 0.57735026918962576450914878050196F,
232 
233 	/**
234 	 * NEARクリップ面
235 	 */
236 	DEFAULT_NEAR = 0.0F,
237 
238 	/**
239 	 * FARクリップ面
240 	 */
241 	DEFAULT_FAR = 20000.0F,
242 
243 	/**
244 	 * デフォルトフォントを示す値
245 	 */
246 	DX_DEFAULT_FONT_HANDLE = -2,
247 
248 	/**
249 	 * フォントのデフォルトのサイズ
250 	 */
251 	DEFAULT_FONT_SIZE = 16,
252 
253 	/**
254 	 * フォントのデフォルトの太さ
255 	 */
256 	DEFAULT_FONT_THINCK = 6,
257 
258 	/**
259 	 * フォントのデフォルトの形態
260 	 */
261 	DEFAULT_FONT_TYPE = DX_FONTTYPE_NORMAL,
262 
263 	/**
264 	 * フォントのデフォルトの太さ
265 	 */
266 	DEFAULT_FONT_EDGESIZE = 1,
267 }
268 
269 /**
270  * WINDOWSのバージョンマクロ
271  */
272 enum
273 {
274 	/**
275 	 * WINDOWSのバージョンマクロ
276 	 */
277 	DX_WINDOWSVERSION_31 = 0x0000,
278 
279 	/**
280 	 * WINDOWSのバージョンマクロ
281 	 */
282 	DX_WINDOWSVERSION_95 = 0x0001,
283 
284 	/**
285 	 * WINDOWSのバージョンマクロ
286 	 */
287 	DX_WINDOWSVERSION_98 = 0x0002,
288 
289 	/**
290 	 * WINDOWSのバージョンマクロ
291 	 */
292 	DX_WINDOWSVERSION_ME = 0x0003,
293 
294 	/**
295 	 * WINDOWSのバージョンマクロ
296 	 */
297 	DX_WINDOWSVERSION_NT31 = 0x0104,
298 
299 	/**
300 	 * WINDOWSのバージョンマクロ
301 	 */
302 	DX_WINDOWSVERSION_NT40 = 0x0105,
303 
304 	/**
305 	 * WINDOWSのバージョンマクロ
306 	 */
307 	DX_WINDOWSVERSION_2000 = 0x0106,
308 
309 	/**
310 	 * WINDOWSのバージョンマクロ
311 	 */
312 	DX_WINDOWSVERSION_XP = 0x0107,
313 
314 	/**
315 	 * WINDOWSのバージョンマクロ
316 	 */
317 	DX_WINDOWSVERSION_VISTA = 0x0108,
318 
319 	/**
320 	 * WINDOWSのバージョンマクロ
321 	 */
322 	DX_WINDOWSVERSION_7 = 0x0109,
323 
324 	/**
325 	 * WINDOWSのバージョンマクロ
326 	 */
327 	DX_WINDOWSVERSION_8 = 0x010A,
328 
329 	/**
330 	 * WINDOWSのバージョンマクロ
331 	 */
332 	DX_WINDOWSVERSION_8_1 = 0x010B,
333 
334 	/**
335 	 * WINDOWSのバージョンマクロ
336 	 */
337 	DX_WINDOWSVERSION_10 = 0x010C,
338 
339 	/**
340 	 * WINDOWSのバージョンマクロ
341 	 */
342 	DX_WINDOWSVERSION_NT_TYPE = 0x0100,
343 }
344 
345 /**
346  * DirectXのバージョン
347  */
348 enum
349 {
350 	/**
351 	 * DirectXのバージョン
352 	 */
353 	DX_DIRECTXVERSION_NON = 0,
354 
355 	/**
356 	 * DirectXのバージョン
357 	 */
358 	DX_DIRECTXVERSION_1 = 0x010000,
359 
360 	/**
361 	 * DirectXのバージョン
362 	 */
363 	DX_DIRECTXVERSION_2 = 0x020000,
364 
365 	/**
366 	 * DirectXのバージョン
367 	 */
368 	DX_DIRECTXVERSION_3 = 0x030000,
369 
370 	/**
371 	 * DirectXのバージョン
372 	 */
373 	DX_DIRECTXVERSION_4 = 0x040000,
374 
375 	/**
376 	 * DirectXのバージョン
377 	 */
378 	DX_DIRECTXVERSION_5 = 0x050000,
379 
380 	/**
381 	 * DirectXのバージョン
382 	 */
383 	DX_DIRECTXVERSION_6 = 0x060000,
384 
385 	/**
386 	 * DirectXのバージョン
387 	 */
388 	DX_DIRECTXVERSION_6_1 = 0x060100,
389 
390 	/**
391 	 * DirectXのバージョン
392 	 */
393 	DX_DIRECTXVERSION_7 = 0x070000,
394 
395 	/**
396 	 * DirectXのバージョン
397 	 */
398 	DX_DIRECTXVERSION_8 = 0x080000,
399 
400 	/**
401 	 * DirectXのバージョン
402 	 */
403 	DX_DIRECTXVERSION_8_1 = 0x080100,
404 }
405 
406 /**
407  * Direct3Dのバージョン
408  */
409 enum
410 {
411 	/**
412 	 * Direct3Dのバージョン
413 	 */
414 	DX_DIRECT3D_NONE = 0,
415 
416 	/**
417 	 * Direct3Dのバージョン
418 	 */
419 	DX_DIRECT3D_9 = 1,
420 
421 	/**
422 	 * Direct3Dのバージョン
423 	 */
424 	DX_DIRECT3D_9EX = 2,
425 
426 	/**
427 	 * Direct3Dのバージョン
428 	 */
429 	DX_DIRECT3D_11 = 3,
430 }
431 
432 /**
433  * Direct3D11のFeature Level
434  */
435 enum
436 {
437 	/**
438 	 * Direct3D11のFeature Level
439 	 */
440 	DX_DIRECT3D_11_FEATURE_LEVEL_9_1 = 0x9100,
441 
442 	/**
443 	 * Direct3D11のFeature Level
444 	 */
445 	DX_DIRECT3D_11_FEATURE_LEVEL_9_2 = 0x9200,
446 
447 	/**
448 	 * Direct3D11のFeature Level
449 	 */
450 	DX_DIRECT3D_11_FEATURE_LEVEL_9_3 = 0x9300,
451 
452 	/**
453 	 * Direct3D11のFeature Level
454 	 */
455 	DX_DIRECT3D_11_FEATURE_LEVEL_10_0 = 0xA000,
456 
457 	/**
458 	 * Direct3D11のFeature Level
459 	 */
460 	DX_DIRECT3D_11_FEATURE_LEVEL_10_1 = 0xA100,
461 
462 	/**
463 	 * Direct3D11のFeature Level
464 	 */
465 	DX_DIRECT3D_11_FEATURE_LEVEL_11_0 = 0xB000,
466 
467 	/**
468 	 * Direct3D11のFeature Level
469 	 */
470 	DX_DIRECT3D_11_FEATURE_LEVEL_11_1 = 0xB100,
471 }
472 
473 /**
474  * 文字セット
475  */
476 enum
477 {
478 	/**
479 	 * デフォルト文字セット
480 	 */
481 	DX_CHARSET_DEFAULT = 0,
482 
483 	/**
484 	 * シフトJIS
485 	 */
486 	DX_CHARSET_SHFTJIS = 1,
487 
488 	/**
489 	 * ハングル文字セット
490 	 */
491 	DX_CHARSET_HANGEUL = 2,
492 
493 	/**
494 	 * 繁体文字セット
495 	 */
496 	DX_CHARSET_BIG5 = 3,
497 
498 	/**
499 	 * 簡体文字セット
500 	 */
501 	DX_CHARSET_GB2312 = 4,
502 
503 	/**
504 	 * 欧文(ラテン文字の文字コード)
505 	 */
506 	DX_CHARSET_WINDOWS_1252 = 5,
507 
508 	/**
509 	 * 欧文(ラテン文字の文字コード)
510 	 */
511 	DX_CHARSET_ISO_IEC_8859_15 = 6,
512 
513 	/**
514 	 * UTF-8
515 	 */
516 	DX_CHARSET_UTF8 = 7,
517 
518 	/**
519 	 * 文字セットの数
520 	 */
521 	DX_CHARSET_NUM = 8,
522 }
523 
524 /**
525  * 文字コード形式
526  */
527 enum
528 {
529 	/**
530 	 * シフトJISコード
531 	 */
532 	DX_CHARCODEFORMAT_SHIFTJIS = 932,
533 
534 	/**
535 	 * 簡体字文字コード
536 	 */
537 	DX_CHARCODEFORMAT_GB2312 = 936,
538 
539 	/**
540 	 * ハングル文字コード
541 	 */
542 	DX_CHARCODEFORMAT_UHC = 949,
543 
544 	/**
545 	 * 繁体文字コード
546 	 */
547 	DX_CHARCODEFORMAT_BIG5 = 950,
548 
549 	/**
550 	 * UTF-16 リトルエンディアン
551 	 */
552 	DX_CHARCODEFORMAT_UTF16LE = 1200,
553 
554 	/**
555 	 * UTF-16 ビッグエンディアン
556 	 */
557 	DX_CHARCODEFORMAT_UTF16BE = 1201,
558 
559 	/**
560 	 * 欧文(ラテン文字の文字コード)
561 	 */
562 	DX_CHARCODEFORMAT_WINDOWS_1252 = 1252,
563 
564 	/**
565 	 * 欧文(ラテン文字の文字コード)
566 	 */
567 	DX_CHARCODEFORMAT_ISO_IEC_8859_15 = 32764,
568 
569 	/**
570 	 * UTF-8
571 	 */
572 	DX_CHARCODEFORMAT_UTF8 = 65001,
573 
574 	/**
575 	 * アスキー文字コード
576 	 */
577 	DX_CHARCODEFORMAT_ASCII = 32765,
578 
579 	/**
580 	 * UTF-32 リトルエンディアン
581 	 */
582 	DX_CHARCODEFORMAT_UTF32LE = 32766,
583 
584 	/**
585 	 * UTF-32 ビッグエンディアン
586 	 */
587 	DX_CHARCODEFORMAT_UTF32BE = 32767,
588 }
589 
590 /**
591  * MIDIの演奏モード定義
592  */
593 enum
594 {
595 	/**
596 	 * MCIによる演奏
597 	 */
598 	DX_MIDIMODE_MCI = 0,
599 
600 	/**
601 	 * DirectMusicによる演奏
602 	 */
603 	DX_MIDIMODE_DM = 1,
604 
605 	/**
606 	 * DirectMusic(リバーブあり)による演奏
607 	 */
608 	DX_MIDIMODE_DIRECT_MUSIC_REVERB = 1,
609 
610 	/**
611 	 * DirectMusic(リバーブなし)による演奏
612 	 */
613 	DX_MIDIMODE_DIRECT_MUSIC_NORMAL = 2,
614 
615 	/**
616 	 * MIDIの演奏モードの数
617 	 */
618 	DX_MIDIMODE_NUM = 3,
619 }
620 
621 /**
622  * 描画モード定義
623  */
624 enum
625 {
626 	/**
627 	 * ネアレストネイバー法で描画
628 	 */
629 	DX_DRAWMODE_NEAREST = 0,
630 
631 	/**
632 	 * バイリニア法で描画する
633 	 */
634 	DX_DRAWMODE_BILINEAR = 1,
635 
636 	/**
637 	 * 異方性フィルタリング法で描画する
638 	 */
639 	DX_DRAWMODE_ANISOTROPIC = 2,
640 
641 	/**
642 	 * それ以外
643 	 */
644 	DX_DRAWMODE_OTHER = 3,
645 
646 	/**
647 	 * 描画モードの数
648 	 */
649 	DX_DRAWMODE_NUM = 4,
650 }
651 
652 /**
653  * フォントのタイプ
654  */
655 enum
656 {
657 	/**
658 	 * ノーマルフォント
659 	 */
660 	DX_FONTTYPE_NORMAL = 0x00,
661 
662 	/**
663 	 * エッジつきフォント
664 	 */
665 	DX_FONTTYPE_EDGE = 0x01,
666 
667 	/**
668 	 * アンチエイリアスフォント(標準機能アンチエイリアス)
669 	 */
670 	DX_FONTTYPE_ANTIALIASING = 0x02,
671 
672 	/**
673 	 * アンチエイリアスフォント(4x4サンプリング)
674 	 */
675 	DX_FONTTYPE_ANTIALIASING_4X4 = 0x12,
676 
677 	/**
678 	 * アンチエイリアスフォント(8x8サンプリング)
679 	 */
680 	DX_FONTTYPE_ANTIALIASING_8X8 = 0x22,
681 
682 	/**
683 	 * アンチエイリアス&エッジ付きフォント(標準機能アンチエイリアス)
684 	 */
685 	DX_FONTTYPE_ANTIALIASING_EDGE = 0x03,
686 
687 	/**
688 	 * アンチエイリアス&エッジ付きフォント(4x4サンプリング)
689 	 */
690 	DX_FONTTYPE_ANTIALIASING_EDGE_4X4 = 0x13,
691 
692 	/**
693 	 * アンチエイリアス&エッジ付きフォント(8x8サンプリング)
694 	 */
695 	DX_FONTTYPE_ANTIALIASING_EDGE_8X8 = 0x23,
696 }
697 
698 /**
699  * フォント画像の階調ビット数
700  */
701 enum
702 {
703 	/**
704 	 * フォント画像の階調ビット数
705 	 */
706 	DX_FONTIMAGE_BIT_1 = 0,
707 
708 	/**
709 	 * フォント画像の階調ビット数
710 	 */
711 	DX_FONTIMAGE_BIT_4 = 1,
712 
713 	/**
714 	 * フォント画像の階調ビット数
715 	 */
716 	DX_FONTIMAGE_BIT_8 = 2,
717 }
718 
719 /**
720  * 描画ブレンドモード定義
721  */
722 enum
723 	{
724 	/**
725 	 * ノーブレンド
726 	 */
727 	DX_BLENDMODE_NOBLEND = 0,
728 
729 	/**
730 	 * αブレンド
731 	 */
732 	DX_BLENDMODE_ALPHA = 1,
733 
734 	/**
735 	 * 加算ブレンド
736 	 */
737 	DX_BLENDMODE_ADD = 2,
738 
739 	/**
740 	 * 減算ブレンド
741 	 */
742 	DX_BLENDMODE_SUB = 3,
743 
744 	/**
745 	 * 乗算ブレンド
746 	 */
747 	DX_BLENDMODE_MUL = 4,
748 
749 	// (内部処理用)
750 
751 	/**
752 	 * 内部処理用減算ブレンド2
753 	 */
754 	DX_BLENDMODE_SUB2 = 5,
755 
756 	// 境界線ぼかし
757 	//DX_BLENDMODE_BLINEALPHA = 7,
758 
759 	/**
760 	 * XORブレンド(ソフトウエアレンダリングモードでのみ有効)
761 	 */
762 	DX_BLENDMODE_XOR = 6,
763 
764 	/**
765 	 * カラーは更新されない
766 	 */
767 	DX_BLENDMODE_DESTCOLOR = 8,
768 
769 	/**
770 	 * 描画先の色の反転値を掛ける
771 	 */
772 	DX_BLENDMODE_INVDESTCOLOR = 9,
773 
774 	/**
775 	 * 描画元の色を反転する
776 	 */
777 	DX_BLENDMODE_INVSRC = 10,
778 
779 	/**
780 	 * アルファチャンネル考慮付き乗算ブレンド
781 	 */
782 	DX_BLENDMODE_MULA = 11,
783 
784 	/**
785 	 * αブレンドの描画元の輝度を最大4倍にできるモード
786 	 */
787 	DX_BLENDMODE_ALPHA_X4 = 12,
788 
789 	/**
790 	 * 加算ブレンドの描画元の輝度を最大4倍にできるモード
791 	 */
792 	DX_BLENDMODE_ADD_X4 = 13,
793 
794 	/**
795 	 * 描画元のカラーでそのまま描画される
796 	 */
797 	DX_BLENDMODE_SRCCOLOR = 14,
798 
799 	/**
800 	 * 半加算ブレンド
801 	 */
802 	DX_BLENDMODE_HALF_ADD = 15,
803 
804 	/**
805 	 * 内部処理用減算ブレンド1
806 	 */
807 	DX_BLENDMODE_SUB1 = 16,
808 
809 	/**
810 	 * 乗算済みαブレンドモードのαブレンド
811 	 */
812 	DX_BLENDMODE_PMA_ALPHA = 17,
813 
814 	/**
815 	 * 乗算済みαブレンドモードの加算ブレンド
816 	 */
817 	DX_BLENDMODE_PMA_ADD = 18,
818 
819 	/**
820 	 * 乗算済みαブレンドモードの減算ブレンド
821 	 */
822 	DX_BLENDMODE_PMA_SUB = 19,
823 
824 	/**
825 	 * 乗算済みαブレンドモードの描画元の色を反転する
826 	 */
827 	DX_BLENDMODE_PMA_INVSRC = 20,
828 
829 	/**
830 	 * 乗算済みαブレンドモードのαブレンドの描画元の輝度を最大4倍にできるモード
831 	 */
832 	DX_BLENDMODE_PMA_ALPHA_X4 = 21,
833 
834 	/**
835 	 * 乗算済みαブレンドモードの加算ブレンドの描画元の輝度を最大4倍にできるモード
836 	 */
837 	DX_BLENDMODE_PMA_ADD_X4 = 22,
838 
839 	/**
840 	 * Live2Dのブレンドモード Zero用
841 	 */
842 	DX_BLENDMODE_LIVE2D_ZERO = 23,
843 
844 	/**
845 	 * Live2Dのブレンドモード Normal用
846 	 */
847 	DX_BLENDMODE_LIVE2D_NORMAL = 24,
848 
849 	/**
850 	 * Live2Dのブレンドモード Add用
851 	 */
852 	DX_BLENDMODE_LIVE2D_ADD = 25,
853 
854 	/**
855 	 * Live2Dのブレンドモード Mult用
856 	 */
857 	DX_BLENDMODE_LIVE2D_MULT = 26,
858 
859 	/**
860 	 * Live2Dのブレンドモード Mask用
861 	 */
862 	DX_BLENDMODE_LIVE2D_MASK = 27,
863 
864 	/**
865 	 * ブレンドモードの数
866 	 */
867 	DX_BLENDMODE_NUM = 28,
868 }
869 
870 /**
871  * DrawGraphF等の浮動小数点値で座標を指定する関数における座標タイプ
872  */
873 enum
874 {
875 	/**
876 	 * Direct3D9タイプ(-0.5fの補正を行わないとテクスチャのピクセルが綺麗にマップされないタイプ)
877 	 */
878 	DX_DRAWFLOATCOORDTYPE_DIRECT3D9 = 0,
879 
880 	/**
881 	 * Direct3D10タイプ(-0.5fの補正を行わななくてもテクスチャのピクセルが綺麗にマップされるタイプ)
882 	 */
883 	DX_DRAWFLOATCOORDTYPE_DIRECT3D10 = 1,
884 }
885 
886 /**
887  * 画像合成タイプ
888  */
889 enum
890 {
891 	/**
892 	 * 通常合成
893 	 */
894 	DX_BLENDGRAPHTYPE_NORMAL = 0,
895 
896 	/**
897 	 * ワイプ処理
898 	 */
899 	DX_BLENDGRAPHTYPE_WIPE = 1,
900 
901 	/**
902 	 * ブレンド画像のα値と元画像のα値を掛け合わせる
903 	 */
904 	DX_BLENDGRAPHTYPE_ALPHA = 2,
905 
906 	/**
907 	 * ?
908 	 */
909 	DX_BLENDGRAPHTYPE_NUM = 3,
910 }
911 
912 /**
913  * 画像合成座標タイプ
914  */
915 enum
916 {
917 	/**
918 	 * 描画する画像基準で合成画像の座標を決定
919 	 */
920 	DX_BLENDGRAPH_POSMODE_DRAWGRAPH = 0,
921 
922 	/**
923 	 * スクリーン座標基準で合成画像の座標を決定
924 	 */
925 	DX_BLENDGRAPH_POSMODE_SCREEN = 1,
926 
927 	/**
928 	 * ?
929 	 */
930 	DX_BLENDGRAPH_POSMODE_NUM = 2,
931 }
932 
933 /**
934  * グラフィックフィルタータイプ
935  */
936 enum
937 {
938 	/**
939 	 * モノトーンフィルタ
940 	 */
941 	DX_GRAPH_FILTER_MONO = 0,
942 
943 	/**
944 	 * ガウスフィルタ
945 	 */
946 	DX_GRAPH_FILTER_GAUSS = 1,
947 
948 	/**
949 	 * 縮小フィルタ
950 	 */
951 	DX_GRAPH_FILTER_DOWN_SCALE = 2,
952 
953 	/**
954 	 * 明るさクリップフィルタ
955 	 */
956 	DX_GRAPH_FILTER_BRIGHT_CLIP = 3,
957 
958 	/**
959 	 * 指定の明るさ領域を拡大するフィルタ
960 	 */
961 	DX_GRAPH_FILTER_BRIGHT_SCALE = 4,
962 
963 	/**
964 	 * 色相・彩度・明度フィルタ
965 	 */
966 	DX_GRAPH_FILTER_HSB = 5,
967 
968 	/**
969 	 * 階調の反転フィルタ
970 	 */
971 	DX_GRAPH_FILTER_INVERT = 6,
972 
973 	/**
974 	 * レベル補正フィルタ
975 	 */
976 	DX_GRAPH_FILTER_LEVEL = 7,
977 
978 	/**
979 	 * 2階調化フィルタ
980 	 */
981 	DX_GRAPH_FILTER_TWO_COLOR = 8,
982 
983 	/**
984 	 * グラデーションマップフィルタ
985 	 */
986 	DX_GRAPH_FILTER_GRADIENT_MAP = 9,
987 
988 	/**
989 	 * 色の置換
990 	 */
991 	DX_GRAPH_FILTER_REPLACEMENT = 10,
992 
993 	/**
994 	 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ
995 	 */
996 	DX_GRAPH_FILTER_PREMUL_ALPHA = 11,
997 
998 	/**
999 	 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ
1000 	 */
1001 	DX_GRAPH_FILTER_INTERP_ALPHA = 12,
1002 
1003 	/**
1004 	 * YUVカラーをRGBカラーに変換するフィルタ
1005 	 */
1006 	DX_GRAPH_FILTER_YUV_TO_RGB = 13,
1007 
1008 	/**
1009 	 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)
1010 	 */
1011 	DX_GRAPH_FILTER_Y2UV1_TO_RGB = 14,
1012 
1013 	/**
1014 	 * YUVカラーをRGBカラーに変換するフィルタ(且つ右側半分のRの値をアルファ値として扱う)
1015 	 */
1016 	DX_GRAPH_FILTER_YUV_TO_RGB_RRA = 15,
1017 
1018 	/**
1019 	 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)(且つ右側半分のRの値をアルファ値として扱う)
1020 	 */
1021 	DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA = 16,
1022 
1023 	/**
1024 	 * バイキュービックを使用した拡大・縮小フィルタ
1025 	 */
1026 	DX_GRAPH_FILTER_BICUBIC_SCALE = 17,
1027 
1028 	/**
1029 	 * Lanczos-3を使用した拡大・縮小フィルタ
1030 	 */
1031 	DX_GRAPH_FILTER_LANCZOS3_SCALE = 18,
1032 
1033 	/**
1034 	 * 明るさクリップフィルタ(乗算済みアルファ画像用)
1035 	 */
1036 	DX_GRAPH_FILTER_PMA_BRIGHT_CLIP = 19,
1037 
1038 	/**
1039 	 * 指定の明るさ領域を拡大するフィルタ(乗算済みアルファ画像用)
1040 	 */
1041 	DX_GRAPH_FILTER_PMA_BRIGHT_SCALE = 20,
1042 
1043 	/**
1044 	 * 色相・彩度・明度フィルタ(乗算済みアルファ画像用)
1045 	 */
1046 	DX_GRAPH_FILTER_PMA_HSB = 21,
1047 
1048 	/**
1049 	 * 階調の反転フィルタ(乗算済みアルファ画像用)
1050 	 */
1051 	DX_GRAPH_FILTER_PMA_INVERT = 22,
1052 
1053 	/**
1054 	 * レベル補正フィルタ(乗算済みアルファ画像用)
1055 	 */
1056 	DX_GRAPH_FILTER_PMA_LEVEL = 23,
1057 
1058 	/**
1059 	 * 2階調化フィルタ(乗算済みアルファ画像用)
1060 	 */
1061 	DX_GRAPH_FILTER_PMA_TWO_COLOR = 24,
1062 
1063 	/**
1064 	 * グラデーションマップフィルタ(乗算済みアルファ画像用)
1065 	 */
1066 	DX_GRAPH_FILTER_PMA_GRADIENT_MAP = 25,
1067 
1068 	/**
1069 	 * 色の置換(乗算済みアルファ画像用)
1070 	 */
1071 	DX_GRAPH_FILTER_PMA_REPLACEMENT = 26,
1072 
1073 	/**
1074 	 * グラフィックフィルタータイプの数
1075 	 */
1076 	DX_GRAPH_FILTER_NUM = 27,
1077 }
1078 
1079 /**
1080  * グラフィックブレンドタイプ
1081  */
1082 enum
1083 {
1084 	/**
1085 	 * 通常
1086 	 */
1087 	DX_GRAPH_BLEND_NORMAL = 0,
1088 
1089 	/**
1090 	 * RGBAの要素を選択して合成
1091 	 */
1092 	DX_GRAPH_BLEND_RGBA_SELECT_MIX = 1,
1093 
1094 	/**
1095 	 * 乗算
1096 	 */
1097 	DX_GRAPH_BLEND_MULTIPLE = 2,
1098 
1099 	/**
1100 	 * 減算
1101 	 */
1102 	DX_GRAPH_BLEND_DIFFERENCE = 3,
1103 
1104 	/**
1105 	 * 加算
1106 	 */
1107 	DX_GRAPH_BLEND_ADD = 4,
1108 
1109 	/**
1110 	 * スクリーン
1111 	 */
1112 	DX_GRAPH_BLEND_SCREEN = 5,
1113 
1114 	/**
1115 	 * オーバーレイ
1116 	 */
1117 	DX_GRAPH_BLEND_OVERLAY = 6,
1118 
1119 	/**
1120 	 * 覆い焼き
1121 	 */
1122 	DX_GRAPH_BLEND_DODGE = 7,
1123 
1124 	/**
1125 	 * 焼き込み
1126 	 */
1127 	DX_GRAPH_BLEND_BURN = 8,
1128 
1129 	/**
1130 	 * 比較(暗)
1131 	 */
1132 	DX_GRAPH_BLEND_DARKEN = 9,
1133 
1134 	/**
1135 	 * 比較(明)
1136 	 */
1137 	DX_GRAPH_BLEND_LIGHTEN = 10,
1138 
1139 	/**
1140 	 * ソフトライト
1141 	 */
1142 	DX_GRAPH_BLEND_SOFTLIGHT = 11,
1143 
1144 	/**
1145 	 * ハードライト
1146 	 */
1147 	DX_GRAPH_BLEND_HARDLIGHT = 12,
1148 
1149 	/**
1150 	 * 除外
1151 	 */
1152 	DX_GRAPH_BLEND_EXCLUSION = 13,
1153 
1154 	/**
1155 	 * αチャンネル付き画像の通常合成
1156 	 */
1157 	DX_GRAPH_BLEND_NORMAL_ALPHACH = 14,
1158 
1159 	/**
1160 	 * αチャンネル付き画像の加算合成
1161 	 */
1162 	DX_GRAPH_BLEND_ADD_ALPHACH = 15,
1163 
1164 	/**
1165 	 * アルファチャンネルのみの乗算
1166 	 */
1167 	DX_GRAPH_BLEND_MULTIPLE_A_ONLY = 16,
1168 
1169 	/**
1170 	 * 通常(乗算済みα画像用)
1171 	 */
1172 	DX_GRAPH_BLEND_PMA_NORMAL = 17,
1173 
1174 	/**
1175 	 * RGBAの要素を選択して合成(乗算済みα画像用)
1176 	 */
1177 	DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIX = 18,
1178 
1179 	/**
1180 	 * 乗算(乗算済みα画像用)
1181 	 */
1182 	DX_GRAPH_BLEND_PMA_MULTIPLE = 19,
1183 
1184 	/**
1185 	 * 減算(乗算済みα画像用)
1186 	 */
1187 	DX_GRAPH_BLEND_PMA_DIFFERENCE = 20,
1188 
1189 	/**
1190 	 * 加算(乗算済みα画像用)
1191 	 */
1192 	DX_GRAPH_BLEND_PMA_ADD = 21,
1193 
1194 	/**
1195 	 * スクリーン(乗算済みα画像用)
1196 	 */
1197 	DX_GRAPH_BLEND_PMA_SCREEN = 22,
1198 
1199 	/**
1200 	 * オーバーレイ(乗算済みα画像用)
1201 	 */
1202 	DX_GRAPH_BLEND_PMA_OVERLAY = 23,
1203 
1204 	/**
1205 	 * 覆い焼き(乗算済みα画像用)
1206 	 */
1207 	DX_GRAPH_BLEND_PMA_DODGE = 24,
1208 
1209 	/**
1210 	 * 焼き込み(乗算済みα画像用)
1211 	 */
1212 	DX_GRAPH_BLEND_PMA_BURN = 25,
1213 
1214 	/**
1215 	 * 比較(暗)(乗算済みα画像用)
1216 	 */
1217 	DX_GRAPH_BLEND_PMA_DARKEN = 26,
1218 
1219 	/**
1220 	 * 比較(明)(乗算済みα画像用)
1221 	 */
1222 	DX_GRAPH_BLEND_PMA_LIGHTEN = 27,
1223 
1224 	/**
1225 	 * ソフトライト(乗算済みα画像用)
1226 	 */
1227 	DX_GRAPH_BLEND_PMA_SOFTLIGHT = 28,
1228 
1229 	/**
1230 	 * ハードライト(乗算済みα画像用)
1231 	 */
1232 	DX_GRAPH_BLEND_PMA_HARDLIGHT = 29,
1233 
1234 	/**
1235 	 * 除外(乗算済みα画像用)
1236 	 */
1237 	DX_GRAPH_BLEND_PMA_EXCLUSION = 30,
1238 
1239 	/**
1240 	 * αチャンネル付き画像の通常合成(乗算済みα画像用)
1241 	 */
1242 	DX_GRAPH_BLEND_PMA_NORMAL_ALPHACH = 31,
1243 
1244 	/**
1245 	 * αチャンネル付き画像の加算合成(乗算済みα画像用)
1246 	 */
1247 	DX_GRAPH_BLEND_PMA_ADD_ALPHACH = 32,
1248 
1249 	/**
1250 	 * アルファチャンネルのみの乗算(乗算済みα画像用)
1251 	 */
1252 	DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY = 33,
1253 
1254 	/**
1255 	 * ?
1256 	 */
1257 	DX_GRAPH_BLEND_NUM = 34,
1258 }
1259 
1260 /**
1261  * DX_GRAPH_BLEND_RGBA_SELECT_MIX用の色選択用定義
1262  */
1263 enum
1264 {
1265 	/**
1266 	 * 元画像の赤成分
1267 	 */
1268 	DX_RGBA_SELECT_SRC_R = 0,
1269 
1270 	/**
1271 	 * 元画像の緑成分
1272 	 */
1273 	DX_RGBA_SELECT_SRC_G = 1,
1274 
1275 	/**
1276 	 * 元画像の青成分
1277 	 */
1278 	DX_RGBA_SELECT_SRC_B = 2,
1279 
1280 	/**
1281 	 * 元画像のα成分
1282 	 */
1283 	DX_RGBA_SELECT_SRC_A = 3,
1284 
1285 	/**
1286 	 * ブレンド画像の赤成分
1287 	 */
1288 	DX_RGBA_SELECT_BLEND_R = 4,
1289 
1290 	/**
1291 	 * ブレンド画像の緑成分
1292 	 */
1293 	DX_RGBA_SELECT_BLEND_G = 5,
1294 
1295 	/**
1296 	 * ブレンド画像の青成分
1297 	 */
1298 	DX_RGBA_SELECT_BLEND_B = 6,
1299 
1300 	/**
1301 	 * ブレンド画像のα成分
1302 	 */
1303 	DX_RGBA_SELECT_BLEND_A = 7,
1304 
1305 	/**
1306 	 * 元画像の赤成分を反転したもの
1307 	 */
1308 	DX_RGBA_SELECT_SRC_INV_R = 8,
1309 
1310 	/**
1311 	 * 元画像の緑成分を反転したもの
1312 	 */
1313 	DX_RGBA_SELECT_SRC_INV_G = 9,
1314 
1315 	/**
1316 	 * 元画像の青成分を反転したもの
1317 	 */
1318 	DX_RGBA_SELECT_SRC_INV_B = 10,
1319 
1320 	/**
1321 	 * 元画像のα成分を反転したもの
1322 	 */
1323 	DX_RGBA_SELECT_SRC_INV_A = 11,
1324 
1325 	/**
1326 	 * ブレンド画像の赤成分を反転したもの
1327 	 */
1328 	DX_RGBA_SELECT_BLEND_INV_R = 12,
1329 
1330 	/**
1331 	 * ブレンド画像の緑成分を反転したもの
1332 	 */
1333 	DX_RGBA_SELECT_BLEND_INV_G = 13,
1334 
1335 	/**
1336 	 * ブレンド画像の青成分を反転したもの
1337 	 */
1338 	DX_RGBA_SELECT_BLEND_INV_B = 14,
1339 
1340 	/**
1341 	 * ブレンド画像のα成分を反転したもの
1342 	 */
1343 	DX_RGBA_SELECT_BLEND_INV_A = 15,
1344 }
1345 
1346 /**
1347  * フィルモード
1348  */
1349 enum
1350 {
1351 	/**
1352 	 * ワイヤーフレーム
1353 	 */
1354 	DX_FILL_WIREFRAME = 2,
1355 
1356 	/**
1357 	 * ポリゴン
1358 	 */
1359 	DX_FILL_SOLID = 3,
1360 }
1361 
1362 /**
1363  * ポリゴンカリングモード
1364  */
1365 enum
1366 {
1367 	/**
1368 	 * カリングなし
1369 	 */
1370 	DX_CULLING_NONE = 0,
1371 
1372 	/**
1373 	 * 背面を左回りでカリング
1374 	 */
1375 	DX_CULLING_LEFT = 1,
1376 
1377 	/**
1378 	 * 背面を右回りでカリング
1379 	 */
1380 	DX_CULLING_RIGHT = 2,
1381 
1382 	/**
1383 	 * カリングモードの数
1384 	 */
1385 	DX_CULLING_NUM = 3,
1386 }
1387 
1388 /**
1389  * クリッピング方向
1390  */
1391 enum
1392 {
1393 	/**
1394 	 * 画面左方向にクリップ
1395 	 */
1396 	DX_CAMERACLIP_LEFT = 0x01,
1397 
1398 	/**
1399 	 * 画面右方向にクリップ
1400 	 */
1401 	DX_CAMERACLIP_RIGHT = 0x02,
1402 
1403 	/**
1404 	 * 画面下方向にクリップ
1405 	 */
1406 	DX_CAMERACLIP_BOTTOM = 0x04,
1407 
1408 	/**
1409 	 * 画面上方向にクリップ
1410 	 */
1411 	DX_CAMERACLIP_TOP = 0x08,
1412 
1413 	/**
1414 	 * 画面後方向にクリップ
1415 	 */
1416 	DX_CAMERACLIP_BACK = 0x10,
1417 
1418 	/**
1419 	 * 画面前方向にクリップ
1420 	 */
1421 	DX_CAMERACLIP_FRONT = 0x20,
1422 }
1423 
1424 /**
1425  * MV1モデルの頂点タイプ
1426  */
1427 enum
1428 {
1429 	/**
1430 	 * 1フレームの影響を受ける頂点
1431 	 */
1432 	DX_MV1_VERTEX_TYPE_1FRAME = 0,
1433 
1434 	/**
1435 	 * 1~4フレームの影響を受ける頂点
1436 	 */
1437 	DX_MV1_VERTEX_TYPE_4FRAME = 1,
1438 
1439 	/**
1440 	 * 5~8フレームの影響を受ける頂点
1441 	 */
1442 	DX_MV1_VERTEX_TYPE_8FRAME = 2,
1443 
1444 	/**
1445 	 * 9フレーム以上の影響を受ける頂点
1446 	 */
1447 	DX_MV1_VERTEX_TYPE_FREE_FRAME = 3,
1448 
1449 	/**
1450 	 * 法線マップ用の情報が含まれる1フレームの影響を受ける頂点
1451 	 */
1452 	DX_MV1_VERTEX_TYPE_NMAP_1FRAME = 4,
1453 
1454 	/**
1455 	 * 法線マップ用の情報が含まれる1~4フレームの影響を受ける頂点
1456 	 */
1457 	DX_MV1_VERTEX_TYPE_NMAP_4FRAME = 5,
1458 
1459 	/**
1460 	 * 法線マップ用の情報が含まれる5~8フレームの影響を受ける頂点
1461 	 */
1462 	DX_MV1_VERTEX_TYPE_NMAP_8FRAME = 6,
1463 
1464 	/**
1465 	 * 法線マップ用の情報が含まれる9フレーム以上の影響を受ける頂点
1466 	 */
1467 	DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME = 7,
1468 
1469 	/**
1470 	 * 頂点タイプの数
1471 	 */
1472 	DX_MV1_VERTEX_TYPE_NUM = 8,
1473 }
1474 
1475 /**
1476  * メッシュの種類
1477  */
1478 enum
1479 {
1480 	/**
1481 	 * 普通のメッシュ
1482 	 */
1483 	DX_MV1_MESHCATEGORY_NORMAL = 0,
1484 
1485 	/**
1486 	 * 輪郭線描画用メッシュ
1487 	 */
1488 	DX_MV1_MESHCATEGORY_OUTLINE = 1,
1489 
1490 	/**
1491 	 * 輪郭線描画用メッシュ(オリジナルシェーダーでの描画用)
1492 	 */
1493 	DX_MV1_MESHCATEGORY_OUTLINE_ORIG_SHADER = 2,
1494 
1495 	/**
1496 	 * メッシュの種類の数
1497 	 */
1498 	DX_MV1_MESHCATEGORY_NUM = 3,
1499 }
1500 
1501 /**
1502  * シェイプ率の適用タイプ
1503  */
1504 enum
1505 {
1506 	/**
1507 	 * 元の値に加算
1508 	 */
1509 	DX_MV1_SHAPERATE_ADD = 0,
1510 
1511 	/**
1512 	 * 元の値に上書き
1513 	 */
1514 	DX_MV1_SHAPERATE_OVERWRITE = 1,
1515 }
1516 
1517 /**
1518  * MV1ファイルの保存タイプ
1519  */
1520 enum
1521 {
1522 	/**
1523 	 * メッシュ情報のみ保存
1524 	 */
1525 	MV1_SAVETYPE_MESH = 0x0001,
1526 
1527 	/**
1528 	 * アニメーション情報のみ保存
1529 	 */
1530 	MV1_SAVETYPE_ANIM = 0x0002,
1531 
1532 	/**
1533 	 * 通常保存
1534 	 */
1535 	MV1_SAVETYPE_NORMAL = MV1_SAVETYPE_MESH | MV1_SAVETYPE_ANIM,
1536 }
1537 
1538 /**
1539  * アニメーションキーデータタイプ
1540  */
1541 enum
1542 {
1543 	/**
1544 	 * 回転
1545 	 */
1546 	MV1_ANIMKEY_DATATYPE_ROTATE = 0,
1547 
1548 	/**
1549 	 * 回転X
1550 	 */
1551 	MV1_ANIMKEY_DATATYPE_ROTATE_X = 1,
1552 
1553 	/**
1554 	 * 回転Y
1555 	 */
1556 	MV1_ANIMKEY_DATATYPE_ROTATE_Y = 2,
1557 
1558 	/**
1559 	 * 回転Z
1560 	 */
1561 	MV1_ANIMKEY_DATATYPE_ROTATE_Z = 3,
1562 
1563 	/**
1564 	 * 拡大
1565 	 */
1566 	MV1_ANIMKEY_DATATYPE_SCALE = 5,
1567 
1568 	/**
1569 	 * スケールX
1570 	 */
1571 	MV1_ANIMKEY_DATATYPE_SCALE_X = 6,
1572 
1573 	/**
1574 	 * スケールY
1575 	 */
1576 	MV1_ANIMKEY_DATATYPE_SCALE_Y = 7,
1577 
1578 	/**
1579 	 * スケールZ
1580 	 */
1581 	MV1_ANIMKEY_DATATYPE_SCALE_Z = 8,
1582 
1583 	/**
1584 	 * 平行移動
1585 	 */
1586 	MV1_ANIMKEY_DATATYPE_TRANSLATE = 10,
1587 
1588 	/**
1589 	 * 平行移動X
1590 	 */
1591 	MV1_ANIMKEY_DATATYPE_TRANSLATE_X = 11,
1592 
1593 	/**
1594 	 * 平行移動Y
1595 	 */
1596 	MV1_ANIMKEY_DATATYPE_TRANSLATE_Y = 12,
1597 
1598 	/**
1599 	 * 平行移動Z
1600 	 */
1601 	MV1_ANIMKEY_DATATYPE_TRANSLATE_Z = 13,
1602 
1603 	/**
1604 	 * 4×4行列の4列目(0,0,0,1)固定版
1605 	 */
1606 	MV1_ANIMKEY_DATATYPE_MATRIX4X4C = 15,
1607 
1608 	/**
1609 	 * 3×3行列
1610 	 */
1611 	MV1_ANIMKEY_DATATYPE_MATRIX3X3 = 17,
1612 
1613 	/**
1614 	 * シェイプ
1615 	 */
1616 	MV1_ANIMKEY_DATATYPE_SHAPE = 18,
1617 
1618 	/**
1619 	 * その他
1620 	 */
1621 	MV1_ANIMKEY_DATATYPE_OTHRE = 20,
1622 }
1623 
1624 /**
1625  * タイムタイプ
1626  */
1627 enum
1628 {
1629 	/**
1630 	 * 時間情報は全体で1つ
1631 	 */
1632 	MV1_ANIMKEY_TIME_TYPE_ONE = 0,
1633 
1634 	/**
1635 	 * 時間情報は各キーに1つ
1636 	 */
1637 	MV1_ANIMKEY_TIME_TYPE_KEY = 1,
1638 }
1639 
1640 /**
1641  * アニメーションキータイプ
1642  */
1643 enum
1644 {
1645 	/**
1646 	 * クォータニオン(Xファイルタイプ)
1647 	 */
1648 	MV1_ANIMKEY_TYPE_QUATERNION_X = 0,
1649 
1650 	/**
1651 	 * ベクター
1652 	 */
1653 	MV1_ANIMKEY_TYPE_VECTOR = 1,
1654 
1655 	/**
1656 	 * 4×4行列の4列目(0,0,0,1)固定版
1657 	 */
1658 	MV1_ANIMKEY_TYPE_MATRIX4X4C = 2,
1659 
1660 	/**
1661 	 * 3×3行列
1662 	 */
1663 	MV1_ANIMKEY_TYPE_MATRIX3X3 = 3,
1664 
1665 	/**
1666 	 * フラット
1667 	 */
1668 	MV1_ANIMKEY_TYPE_FLAT = 4,
1669 
1670 	/**
1671 	 * 線形補間
1672 	 */
1673 	MV1_ANIMKEY_TYPE_LINEAR = 5,
1674 
1675 	/**
1676 	 * 混合
1677 	 */
1678 	MV1_ANIMKEY_TYPE_BLEND = 6,
1679 
1680 	/**
1681 	 * クォータニオン(VMDタイプ)
1682 	 */
1683 	MV1_ANIMKEY_TYPE_QUATERNION_VMD = 7,
1684 }
1685 
1686 /**
1687  * 描画先画面指定用定義
1688  */
1689 enum
1690 {
1691 	/**
1692 	 * ?
1693 	 */
1694 	DX_SCREEN_FRONT = 0xFFFFFFFC,
1695 
1696 	/**
1697 	 * ?
1698 	 */
1699 	DX_SCREEN_BACK = 0xFFFFFFFE,
1700 
1701 	/**
1702 	 * ?
1703 	 */
1704 	DX_SCREEN_WORK = 0xFFFFFFFD,
1705 
1706 	/**
1707 	 * ?
1708 	 */
1709 	DX_SCREEN_TEMPFRONT = 0xFFFFFFF0,
1710 
1711 	/**
1712 	 * ?
1713 	 */
1714 	DX_SCREEN_OTHER = 0xFFFFFFFA,
1715 }
1716 
1717 /**
1718  * グラフィックなしハンドル
1719  */
1720 enum DX_NONE_GRAPH = 0xFFFFFFFB;
1721 
1722 /**
1723  * グラフィック減色時の画像劣化緩和処理モード
1724  */
1725 enum
1726 {
1727 	/**
1728 	 * 画像劣化緩和処理を行わない
1729 	 */
1730 	DX_SHAVEDMODE_NONE = 0,
1731 
1732 	/**
1733 	 * ディザリング
1734 	 */
1735 	DX_SHAVEDMODE_DITHER = 1,
1736 
1737 	/**
1738 	 * 誤差拡散
1739 	 */
1740 	DX_SHAVEDMODE_DIFFUS = 2,
1741 }
1742 
1743 /**
1744  * 画像の保存タイプ
1745  */
1746 enum
1747 {
1748 	/**
1749 	 * bitmap
1750 	 */
1751 	DX_IMAGESAVETYPE_BMP = 0,
1752 
1753 	/**
1754 	 * jpeg
1755 	 */
1756 	DX_IMAGESAVETYPE_JPEG = 1,
1757 
1758 	/**
1759 	 * Png
1760 	 */
1761 	DX_IMAGESAVETYPE_PNG = 2,
1762 
1763 	/**
1764 	 * Direct Draw Surface
1765 	 */
1766 	DX_IMAGESAVETYPE_DDS = 3,
1767 }
1768 
1769 /**
1770  * サウンド再生形態指定用定義
1771  */
1772 enum
1773 {
1774 	/**
1775 	 * ループ再生ビット
1776 	 */
1777 	DX_PLAYTYPE_LOOPBIT = 0x0002,
1778 
1779 	/**
1780 	 * バックグラウンド再生ビット
1781 	 */
1782 	DX_PLAYTYPE_BACKBIT = 0x0001,
1783 
1784 	/**
1785 	 * ノーマル再生
1786 	 */
1787 	DX_PLAYTYPE_NORMAL = 0,
1788 
1789 	/**
1790 	 * バックグラウンド再生
1791 	 */
1792 	DX_PLAYTYPE_BACK = DX_PLAYTYPE_BACKBIT,
1793 
1794 	/**
1795 	 * ループ再生
1796 	 */
1797 	DX_PLAYTYPE_LOOP = DX_PLAYTYPE_LOOPBIT | DX_PLAYTYPE_BACKBIT,
1798 }
1799 
1800 /**
1801  * 動画再生タイプ定義
1802  */
1803 enum
1804 {
1805 	/**
1806 	 * ボタンキャンセルあり
1807 	 */
1808 	DX_MOVIEPLAYTYPE_BCANCEL = 0,
1809 
1810 	/**
1811 	 * ボタンキャンセルなし
1812 	 */
1813 	DX_MOVIEPLAYTYPE_NORMAL = 1,
1814 }
1815 
1816 /**
1817  * サウンドのタイプ
1818  */
1819 enum
1820 {
1821 	/**
1822 	 * ノーマルサウンド形式
1823 	 */
1824 	DX_SOUNDTYPE_NORMAL = 0,
1825 
1826 	/**
1827 	 * ストリーム風サウンド形式
1828 	 */
1829 	DX_SOUNDTYPE_STREAMSTYLE = 1,
1830 }
1831 
1832 /**
1833  * サウンドデータタイプのマクロ
1834  */
1835 enum
1836 {
1837 	/**
1838 	 * 圧縮された全データは再生が始まる前にサウンドメモリにすべて解凍され、格納される
1839 	 */
1840 	DX_SOUNDDATATYPE_MEMNOPRESS = 0,
1841 
1842 	/**
1843 	 * 圧縮された全データはシステムメモリに格納され、再生しながら逐次解凍され、最終的にすべてサウンドメモリに格納される(その後システムメモリに存在する圧縮データは破棄される)
1844 	 */
1845 	DX_SOUNDDATATYPE_MEMNOPRESS_PLUS = 1,
1846 
1847 	/**
1848 	 * 圧縮された全データはシステムメモリに格納され、再生する部分だけ逐次解凍しながらサウンドメモリに格納する(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
1849 	 */
1850 	DX_SOUNDDATATYPE_MEMPRESS = 2,
1851 
1852 	/**
1853 	 * 圧縮されたデータの再生する部分だけファイルから逐次読み込み解凍され、サウンドメモリに格納される(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
1854 	 */
1855 	DX_SOUNDDATATYPE_FILE = 3,
1856 }
1857 
1858 /**
1859  * サウンドの取得する再生時間タイプ
1860  */
1861 enum
1862 {
1863 	/**
1864 	 * 低レベルAPIを使用してより正確な再生時間を取得する
1865 	 */
1866 	DX_SOUNDCURRENTTIME_TYPE_LOW_LEVEL = 0,
1867 
1868 	/**
1869 	 * APIは使用せず、ソフトウェア処理レベルでの再生時間を取得する
1870 	 */
1871 	DX_SOUNDCURRENTTIME_TYPE_SOFT = 1,
1872 }
1873 
1874 /**
1875  * 読み込み処理のタイプ
1876  */
1877 enum
1878 {
1879 	/**
1880 	 * PCMの読み込み処理
1881 	 */
1882 	DX_READSOUNDFUNCTION_PCM = 1 << 0,
1883 
1884 	/**
1885 	 * Ogg Vorbisの読み込み処理
1886 	 */
1887 	DX_READSOUNDFUNCTION_OGG = 1 << 1,
1888 
1889 	/**
1890 	 * Opusの読み込み処理
1891 	 */
1892 	DX_READSOUNDFUNCTION_OPUS = 1 << 2,
1893 
1894 	/**
1895 	 * 環境非依存の読み込み処理タイプの数
1896 	 */
1897 	DX_READSOUNDFUNCTION_DEFAULT_NUM = 3,
1898 }
1899 
1900 /**
1901  * 3Dサウンドリバーブエフェクトのプリセット
1902  */
1903 enum
1904 {
1905 	/**
1906 	 * デフォルト
1907 	 */
1908 	DX_REVERB_PRESET_DEFAULT = 0,
1909 
1910 	/**
1911 	 * 一般的な空間
1912 	 */
1913 	DX_REVERB_PRESET_GENERIC = 1,
1914 
1915 	/**
1916 	 * 精神病患者室(?)
1917 	 */
1918 	DX_REVERB_PRESET_PADDEDCELL = 2,
1919 
1920 	/**
1921 	 * 部屋
1922 	 */
1923 	DX_REVERB_PRESET_ROOM = 3,
1924 
1925 	/**
1926 	 * バスルーム
1927 	 */
1928 	DX_REVERB_PRESET_BATHROOM = 4,
1929 
1930 	/**
1931 	 * リビングルーム
1932 	 */
1933 	DX_REVERB_PRESET_LIVINGROOM = 5,
1934 
1935 	/**
1936 	 * 石の部屋
1937 	 */
1938 	DX_REVERB_PRESET_STONEROOM = 6,
1939 
1940 	/**
1941 	 * 講堂
1942 	 */
1943 	DX_REVERB_PRESET_AUDITORIUM = 7,
1944 
1945 	/**
1946 	 * コンサートホール
1947 	 */
1948 	DX_REVERB_PRESET_CONCERTHALL = 8,
1949 
1950 	/**
1951 	 * 洞穴
1952 	 */
1953 	DX_REVERB_PRESET_CAVE = 9,
1954 
1955 	/**
1956 	 * 舞台
1957 	 */
1958 	DX_REVERB_PRESET_ARENA = 10,
1959 
1960 	/**
1961 	 * 格納庫
1962 	 */
1963 	DX_REVERB_PRESET_HANGAR = 11,
1964 
1965 	/**
1966 	 * カーペットが敷かれた玄関
1967 	 */
1968 	DX_REVERB_PRESET_CARPETEDHALLWAY = 12,
1969 
1970 	/**
1971 	 * 玄関
1972 	 */
1973 	DX_REVERB_PRESET_HALLWAY = 13,
1974 
1975 	/**
1976 	 * 石の廊下
1977 	 */
1978 	DX_REVERB_PRESET_STONECORRIDOR = 14,
1979 
1980 	/**
1981 	 * 裏通り
1982 	 */
1983 	DX_REVERB_PRESET_ALLEY = 15,
1984 
1985 	/**
1986 	 * 森
1987 	 */
1988 	DX_REVERB_PRESET_FOREST = 16,
1989 
1990 	/**
1991 	 * 都市
1992 	 */
1993 	DX_REVERB_PRESET_CITY = 17,
1994 
1995 	/**
1996 	 * 山
1997 	 */
1998 	DX_REVERB_PRESET_MOUNTAINS = 18,
1999 
2000 	/**
2001 	 * 採石場
2002 	 */
2003 	DX_REVERB_PRESET_QUARRY = 19,
2004 
2005 	/**
2006 	 * 平原
2007 	 */
2008 	DX_REVERB_PRESET_PLAIN = 20,
2009 
2010 	/**
2011 	 * 駐車場
2012 	 */
2013 	DX_REVERB_PRESET_PARKINGLOT = 21,
2014 
2015 	/**
2016 	 * 下水管
2017 	 */
2018 	DX_REVERB_PRESET_SEWERPIPE = 22,
2019 
2020 	/**
2021 	 * 水面下
2022 	 */
2023 	DX_REVERB_PRESET_UNDERWATER = 23,
2024 
2025 	/**
2026 	 * 小部屋
2027 	 */
2028 	DX_REVERB_PRESET_SMALLROOM = 24,
2029 
2030 	/**
2031 	 * 中部屋
2032 	 */
2033 	DX_REVERB_PRESET_MEDIUMROOM = 25,
2034 
2035 	/**
2036 	 * 大部屋
2037 	 */
2038 	DX_REVERB_PRESET_LARGEROOM = 26,
2039 
2040 	/**
2041 	 * 中ホール
2042 	 */
2043 	DX_REVERB_PRESET_MEDIUMHALL = 27,
2044 
2045 	/**
2046 	 * 大ホール
2047 	 */
2048 	DX_REVERB_PRESET_LARGEHALL = 28,
2049 
2050 	/**
2051 	 * 板
2052 	 */
2053 	DX_REVERB_PRESET_PLATE = 29,
2054 
2055 	/**
2056 	 * プリセットの数
2057 	 */
2058 	DX_REVERB_PRESET_NUM = 30,
2059 }
2060 
2061 /**
2062  * マスク透過色モード
2063  */
2064 enum
2065 {
2066 	/**
2067 	 * マスク画像の白い部分を透過色とする
2068 	 */
2069 	DX_MASKTRANS_WHITE = 0,
2070 
2071 	/**
2072 	 * マスク画像の黒い部分を透過色とする
2073 	 */
2074 	DX_MASKTRANS_BLACK = 1,
2075 
2076 	/**
2077 	 * 透過色なし
2078 	 */
2079 	DX_MASKTRANS_NONE = 2,
2080 }
2081 
2082 /**
2083  * マスク画像チャンネル
2084  */
2085 enum
2086 {
2087 	/**
2088 	 * アルファ
2089 	 */
2090 	DX_MASKGRAPH_CH_A = 0,
2091 
2092 	/**
2093 	 * 赤
2094 	 */
2095 	DX_MASKGRAPH_CH_R = 1,
2096 
2097 	/**
2098 	 * 緑
2099 	 */
2100 	DX_MASKGRAPH_CH_G = 2,
2101 
2102 	/**
2103 	 * 青
2104 	 */
2105 	DX_MASKGRAPH_CH_B = 3,
2106 }
2107 
2108 /**
2109  * Zバッファ書き込みモード
2110  */
2111 enum
2112 {
2113 	/**
2114 	 * 書き込めないようにマスクする
2115 	 */
2116 	DX_ZWRITE_MASK = 0,
2117 
2118 	/**
2119 	 * 書き込めるようにマスクをクリアする
2120 	 */
2121 	DX_ZWRITE_CLEAR = 1,
2122 }
2123 
2124 /**
2125  * 比較モード
2126  */
2127 enum
2128 {
2129 	/**
2130 	 * FALSE
2131 	 */
2132 	DX_CMP_NEVER = 1,
2133 
2134 	/**
2135 	 * Src <  Dest        DrawAlpha <  TestParam
2136 	 */
2137 	DX_CMP_LESS = 2,
2138 
2139 	/**
2140 	 * Src == Dest        DrawAlpha == TestParam
2141 	 */
2142 	DX_CMP_EQUAL = 3,
2143 
2144 	/**
2145 	 * Src <= Dest        DrawAlpha <= TestParam
2146 	 */
2147 	DX_CMP_LESSEQUAL = 4,
2148 
2149 	/**
2150 	 * Src >  Dest        DrawAlpha >  TestParam
2151 	 */
2152 	DX_CMP_GREATER = 5,
2153 
2154 	/**
2155 	 * Src != Dest        DrawAlpha != TestParam
2156 	 */
2157 	DX_CMP_NOTEQUAL = 6,
2158 
2159 	/**
2160 	 * Src >= Dest        DrawAlpha >= TestParam
2161 	 */
2162 	DX_CMP_GREATEREQUAL = 7,
2163 
2164 	/**
2165 	 * TRUE
2166 	 */
2167 	DX_CMP_ALWAYS = 8,
2168 
2169 	/**
2170 	 * ?
2171 	 */
2172 	DX_ZCMP_DEFAULT = DX_CMP_LESSEQUAL,
2173 
2174 	/**
2175 	 * ?
2176 	 */
2177 	DX_ZCMP_REVERSE = DX_CMP_GREATEREQUAL,
2178 }
2179 
2180 /**
2181  * シェーディングモード
2182  */
2183 enum
2184 {
2185 	/**
2186 	 * D_D3DSHADE_FLAT
2187 	 */
2188 	DX_SHADEMODE_FLAT = 1,
2189 
2190 	/**
2191 	 * D_D3DSHADE_GOURAUD
2192 	 */
2193 	DX_SHADEMODE_GOURAUD = 2,
2194 }
2195 
2196 /**
2197  * フォグモード
2198  */
2199 enum
2200 {
2201 	/**
2202 	 * D_D3DFOG_NONE
2203 	 */
2204 	DX_FOGMODE_NONE = 0,
2205 
2206 	/**
2207 	 * D_D3DFOG_EXP
2208 	 */
2209 	DX_FOGMODE_EXP = 1,
2210 
2211 	/**
2212 	 * D_D3DFOG_EXP2
2213 	 */
2214 	DX_FOGMODE_EXP2 = 2,
2215 
2216 	/**
2217 	 * D_D3DFOG_LINEAR
2218 	 */
2219 	DX_FOGMODE_LINEAR = 3,
2220 }
2221 
2222 /**
2223  * マテリアルタイプ
2224  */
2225 enum
2226 {
2227 	/**
2228 	 * 標準マテリアル
2229 	 */
2230 	DX_MATERIAL_TYPE_NORMAL = 0,
2231 
2232 	/**
2233 	 * トゥーンレンダリング用マテリアル
2234 	 */
2235 	DX_MATERIAL_TYPE_TOON = 1,
2236 
2237 	/**
2238 	 * トゥーンレンダリング用マテリアル_タイプ2(MMD互換)
2239 	 */
2240 	DX_MATERIAL_TYPE_TOON_2 = 2,
2241 
2242 	/**
2243 	 * マテリアルのスペキュラ色の輝度の指定の範囲の値を0.0f~1.0fの値に正規化して書き込むマテリアル
2244 	 */
2245 	DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORM = 3,
2246 
2247 	/**
2248 	 * DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORMに『指定の値未満の場合は書き込む値を0.0fにする』という処理を加えたマテリアル
2249 	 */
2250 	DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CLIP_UNORM = 4,
2251 
2252 	/**
2253 	 * マテリアルのスペキュラ色の輝度が指定の閾値以上の場合は1.0fを、未満の場合は0.0fを書き込むマテリアル
2254 	 */
2255 	DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUAL = 5,
2256 
2257 	/**
2258 	 * マテリアルのスペキュラハイライトの鮮明度の指定の範囲の値を0.0f~1.0fの値に正規化して書き込むマテリアル
2259 	 */
2260 	DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORM = 6,
2261 
2262 	/**
2263 	 * DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORMに『指定の値未満の場合は書き込む値を0.0fにする』という処理を加えたマテリアル
2264 	 */
2265 	DX_MATERIAL_TYPE_MAT_SPEC_POWER_CLIP_UNORM = 7,
2266 
2267 	/**
2268 	 * マテリアルのスペキュラハイライトの鮮明度が指定の閾値以上の場合は1.0fを、未満の場合は0.0fを書き込むマテリアル
2269 	 */
2270 	DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUAL = 8,
2271 
2272 	/**
2273 	 * ?
2274 	 */
2275 	DX_MATERIAL_TYPE_NUM = 9,
2276 }
2277 
2278 /**
2279  * マテリアルブレンドタイプ
2280  */
2281 enum
2282 {
2283 	/**
2284 	 * アルファ合成
2285 	 */
2286 	DX_MATERIAL_BLENDTYPE_TRANSLUCENT = 0,
2287 
2288 	/**
2289 	 * 加算
2290 	 */
2291 	DX_MATERIAL_BLENDTYPE_ADDITIVE = 1,
2292 
2293 	/**
2294 	 * 乗算
2295 	 */
2296 	DX_MATERIAL_BLENDTYPE_MODULATE = 2,
2297 
2298 	/**
2299 	 * 無効
2300 	 */
2301 	DX_MATERIAL_BLENDTYPE_NONE = 3,
2302 }
2303 
2304 /**
2305  * テクスチャアドレスタイプ
2306  */
2307 enum
2308 {
2309 	/**
2310 	 * D_D3DTADDRESS_WRAP
2311 	 */
2312 	DX_TEXADDRESS_WRAP = 1,
2313 
2314 	/**
2315 	 * D_D3DTADDRESS_MIRROR
2316 	 */
2317 	DX_TEXADDRESS_MIRROR = 2,
2318 
2319 	/**
2320 	 * D_D3DTADDRESS_CLAMP
2321 	 */
2322 	DX_TEXADDRESS_CLAMP = 3,
2323 
2324 	/**
2325 	 * D_D3DTADDRESS_BORDER
2326 	 */
2327 	DX_TEXADDRESS_BORDER = 4,
2328 
2329 	/**
2330 	 * テクスチャアドレスタイプの数
2331 	 */
2332 	DX_TEXADDRESS_NUM = 5,
2333 }
2334 
2335 /**
2336  * シェーダータイプ
2337  */
2338 enum
2339 {
2340 	/**
2341 	 * 頂点シェーダー
2342 	 */
2343 	DX_SHADERTYPE_VERTEX = 0,
2344 
2345 	/**
2346 	 * ピクセルシェーダー
2347 	 */
2348 	DX_SHADERTYPE_PIXEL = 1,
2349 
2350 	/**
2351 	 * ジオメトリシェーダー
2352 	 */
2353 	DX_SHADERTYPE_GEOMETRY = 2,
2354 
2355 	/**
2356 	 * コンピュートシェーダー
2357 	 */
2358 	DX_SHADERTYPE_COMPUTE = 3,
2359 
2360 	/**
2361 	 * ドメインシェーダー
2362 	 */
2363 	DX_SHADERTYPE_DOMAIN = 4,
2364 
2365 	/**
2366 	 * ハルシェーダー
2367 	 */
2368 	DX_SHADERTYPE_HULL = 5,
2369 }
2370 
2371 /**
2372  * 頂点データタイプ
2373  */
2374 enum
2375 {
2376 	/**
2377 	 * VERTEX3D構造体形式
2378 	 */
2379 	DX_VERTEX_TYPE_NORMAL_3D = 0,
2380 
2381 	/**
2382 	 * VERTEX3DSHADER構造体形式
2383 	 */
2384 	DX_VERTEX_TYPE_SHADER_3D = 1,
2385 
2386 	/**
2387 	 * ?
2388 	 */
2389 	DX_VERTEX_TYPE_NUM = 2,
2390 }
2391 
2392 /**
2393  * インデックスデータタイプ
2394  */
2395 enum
2396 {
2397 	/**
2398 	 * 16bitインデックス
2399 	 */
2400 	DX_INDEX_TYPE_16BIT = 0,
2401 
2402 	/**
2403 	 * 32bitインデックス
2404 	 */
2405 	DX_INDEX_TYPE_32BIT = 1,
2406 }
2407 
2408 /**
2409  * モデルファイル読み込み時の物理演算モード
2410  */
2411 enum
2412 {
2413 	/**
2414 	 * 物理演算を使用しない
2415 	 */
2416 	DX_LOADMODEL_PHYSICS_DISABLE = 1,
2417 
2418 	/**
2419 	 * 読み込み時に計算
2420 	 */
2421 	DX_LOADMODEL_PHYSICS_LOADCALC = 0,
2422 
2423 	/**
2424 	 * 実行時計算
2425 	 */
2426 	DX_LOADMODEL_PHYSICS_REALTIME = 2,
2427 }
2428 
2429 /**
2430  * モデルファイル読み込み時の物理演算無効名前ワードのモード
2431  */
2432 enum
2433 {
2434 	/**
2435 	 * 全てのファイルに対して無効名ワードを適用する
2436 	 */
2437 	DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS = 0,
2438 
2439 	/**
2440 	 * vmdファイル名にNPを含めた「物理演算無効」のファイルに対してのみ無効名ワードを適用する(この場合、無効名ワードが適用されない剛体については物理演算が行われる)
2441 	 */
2442 	DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_DISABLEPHYSICSFILEONLY = 1,
2443 
2444 	/**
2445 	 * ?
2446 	 */
2447 	DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_NUM = 2,
2448 }
2449 
2450 /**
2451  * PMD, PMXファイル読み込み時のアニメーションのFPSモード(主にIK分の精度に影響します)
2452  */
2453 enum
2454 {
2455 	/**
2456 	 * アニメーションを30FPSで読み込む(IK部分の精度:低  データサイズ:小)(デフォルト)
2457 	 */
2458 	DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30 = 0,
2459 
2460 	/**
2461 	 * アニメーションを60FPSで読み込む(IK部分の精度:高  データサイズ:大)
2462 	 */
2463 	DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_60 = 1,
2464 }
2465 
2466 /**
2467  * モデルの半透明要素がある箇所に関する描画モード
2468  */
2469 enum
2470 {
2471 	/**
2472 	 * 半透明かどうか関係なく描画する
2473 	 */
2474 	DX_SEMITRANSDRAWMODE_ALWAYS = 0,
2475 
2476 	/**
2477 	 * 半透明のもののみ描画する
2478 	 */
2479 	DX_SEMITRANSDRAWMODE_SEMITRANS_ONLY = 1,
2480 
2481 	/**
2482 	 * 半透明ではないもののみ描画する
2483 	 */
2484 	DX_SEMITRANSDRAWMODE_NOT_SEMITRANS_ONLY = 2,
2485 }
2486 
2487 /**
2488  * キューブマップの面番号
2489  */
2490 enum
2491 {
2492 	/**
2493 	 * ?
2494 	 */
2495 	DX_CUBEMAP_FACE_POSITIVE_X = 0,
2496 
2497 	/**
2498 	 * ?
2499 	 */
2500 	DX_CUBEMAP_FACE_NEGATIVE_X = 1,
2501 
2502 	/**
2503 	 * ?
2504 	 */
2505 	DX_CUBEMAP_FACE_POSITIVE_Y = 2,
2506 
2507 	/**
2508 	 * ?
2509 	 */
2510 	DX_CUBEMAP_FACE_NEGATIVE_Y = 3,
2511 
2512 	/**
2513 	 * ?
2514 	 */
2515 	DX_CUBEMAP_FACE_POSITIVE_Z = 4,
2516 
2517 	/**
2518 	 * ?
2519 	 */
2520 	DX_CUBEMAP_FACE_NEGATIVE_Z = 5,
2521 }
2522 
2523 /**
2524  * ポリゴン描画タイプ
2525  */
2526 enum
2527 {
2528 	/**
2529 	 * D_D3DPT_POINTLIST
2530 	 */
2531 	DX_PRIMTYPE_POINTLIST = 1,
2532 
2533 	/**
2534 	 * D_D3DPT_LINELIST
2535 	 */
2536 	DX_PRIMTYPE_LINELIST = 2,
2537 
2538 	/**
2539 	 * D_D3DPT_LINESTRIP
2540 	 */
2541 	DX_PRIMTYPE_LINESTRIP = 3,
2542 
2543 	/**
2544 	 * D_D3DPT_TRIANGLELIST
2545 	 */
2546 	DX_PRIMTYPE_TRIANGLELIST = 4,
2547 
2548 	/**
2549 	 * D_D3DPT_TRIANGLESTRIP
2550 	 */
2551 	DX_PRIMTYPE_TRIANGLESTRIP = 5,
2552 
2553 	/**
2554 	 * D_D3DPT_TRIANGLEFAN
2555 	 */
2556 	DX_PRIMTYPE_TRIANGLEFAN = 6,
2557 
2558 	/**
2559 	 * ?
2560 	 */
2561 	DX_PRIMTYPE_MIN = 1,
2562 
2563 	/**
2564 	 * ?
2565 	 */
2566 	DX_PRIMTYPE_MAX = 6,
2567 }
2568 
2569 /**
2570  * ライトタイプ
2571  */
2572 enum
2573 {
2574 	/**
2575 	 * D_D3DLIGHT_POINT
2576 	 */
2577 	DX_LIGHTTYPE_D3DLIGHT_POINT = 1,
2578 
2579 	/**
2580 	 * D_D3DLIGHT_SPOT
2581 	 */
2582 	DX_LIGHTTYPE_D3DLIGHT_SPOT = 2,
2583 
2584 	/**
2585 	 * D_D3DLIGHT_DIRECTIONAL
2586 	 */
2587 	DX_LIGHTTYPE_D3DLIGHT_DIRECTIONAL = 3,
2588 
2589 	/**
2590 	 * D_D3DLIGHT_POINT
2591 	 */
2592 	DX_LIGHTTYPE_POINT = 1,
2593 
2594 	/**
2595 	 * D_D3DLIGHT_SPOT
2596 	 */
2597 	DX_LIGHTTYPE_SPOT = 2,
2598 
2599 	/**
2600 	 * D_D3DLIGHT_DIRECTIONAL
2601 	 */
2602 	DX_LIGHTTYPE_DIRECTIONAL = 3,
2603 }
2604 
2605 /**
2606  * グラフィックイメージフォーマットの定義
2607  */
2608 enum
2609 {
2610 	/**
2611 	 * 16色パレットカラー標準
2612 	 */
2613 	DX_GRAPHICSIMAGE_FORMAT_3D_PAL4 = 0,
2614 
2615 	/**
2616 	 * 256色パレットカラー標準
2617 	 */
2618 	DX_GRAPHICSIMAGE_FORMAT_3D_PAL8 = 1,
2619 
2620 	/**
2621 	 * αチャンネルつき16色パレットカラー標準
2622 	 */
2623 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL4 = 2,
2624 
2625 	/**
2626 	 * αチャンネルつき256色パレットカラー標準
2627 	 */
2628 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL8 = 3,
2629 
2630 	/**
2631 	 * αテストつき16色パレットカラー標準
2632 	 */
2633 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL4 = 4,
2634 
2635 	/**
2636 	 * αテストつき256色パレットカラー標準
2637 	 */
2638 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL8 = 5,
2639 
2640 	/**
2641 	 * 16ビットカラー標準
2642 	 */
2643 	DX_GRAPHICSIMAGE_FORMAT_3D_RGB16 = 6,
2644 
2645 	/**
2646 	 * 32ビットカラー標準
2647 	 */
2648 	DX_GRAPHICSIMAGE_FORMAT_3D_RGB32 = 7,
2649 
2650 	/**
2651 	 * αチャンネル付き16ビットカラー
2652 	 */
2653 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB16 = 8,
2654 
2655 	/**
2656 	 * αチャンネル付き32ビットカラー
2657 	 */
2658 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB32 = 9,
2659 
2660 	/**
2661 	 * αテスト付き16ビットカラー
2662 	 */
2663 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB16 = 10,
2664 
2665 	/**
2666 	 * αテスト付き32ビットカラー
2667 	 */
2668 	DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB32 = 11,
2669 
2670 	/**
2671 	 * DXT1
2672 	 */
2673 	DX_GRAPHICSIMAGE_FORMAT_3D_DXT1 = 12,
2674 
2675 	/**
2676 	 * DXT2
2677 	 */
2678 	DX_GRAPHICSIMAGE_FORMAT_3D_DXT2 = 13,
2679 
2680 	/**
2681 	 * DXT3
2682 	 */
2683 	DX_GRAPHICSIMAGE_FORMAT_3D_DXT3 = 14,
2684 
2685 	/**
2686 	 * DXT4
2687 	 */
2688 	DX_GRAPHICSIMAGE_FORMAT_3D_DXT4 = 15,
2689 
2690 	/**
2691 	 * DXT5
2692 	 */
2693 	DX_GRAPHICSIMAGE_FORMAT_3D_DXT5 = 16,
2694 
2695 	/**
2696 	 * BC7 UNORM
2697 	 */
2698 	DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM = 17,
2699 
2700 	/**
2701 	 * BC7 UNORM SRGB
2702 	 */
2703 	DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM_SRGB = 18,
2704 
2705 	/**
2706 	 * プラットフォーム依存フォーマット0
2707 	 */
2708 	DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM0 = 19,
2709 
2710 	/**
2711 	 * プラットフォーム依存フォーマット1
2712 	 */
2713 	DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM1 = 20,
2714 
2715 	/**
2716 	 * プラットフォーム依存フォーマット2
2717 	 */
2718 	DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM2 = 21,
2719 
2720 	/**
2721 	 * プラットフォーム依存フォーマット3
2722 	 */
2723 	DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM3 = 22,
2724 
2725 	/**
2726 	 * YUVフォーマット
2727 	 */
2728 	DX_GRAPHICSIMAGE_FORMAT_3D_YUV = 23,
2729 
2730 	/**
2731 	 * ARGB整数16ビット型カラー
2732 	 */
2733 	DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_I16 = 24,
2734 
2735 	/**
2736 	 * ARGB浮動小数点16ビット型カラー
2737 	 */
2738 	DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F16 = 25,
2739 
2740 	/**
2741 	 * ARGB浮動小数点32ビット型カラー
2742 	 */
2743 	DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F32 = 26,
2744 
2745 	/**
2746 	 * 1チャンネル整数8ビット型カラー
2747 	 */
2748 	DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I8 = 27,
2749 
2750 	/**
2751 	 * 1チャンネル整数16ビット型カラー
2752 	 */
2753 	DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I16 = 28,
2754 
2755 	/**
2756 	 * 1チャンネル浮動少数16ビット型カラー
2757 	 */
2758 	DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F16 = 29,
2759 
2760 	/**
2761 	 * 1チャンネル浮動少数32ビット型カラー
2762 	 */
2763 	DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F32 = 30,
2764 
2765 	/**
2766 	 * 2チャンネル整数8ビット型カラー
2767 	 */
2768 	DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I8 = 31,
2769 
2770 	/**
2771 	 * 2チャンネル整数16ビット型カラー
2772 	 */
2773 	DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I16 = 32,
2774 
2775 	/**
2776 	 * 2チャンネル浮動少数16ビット型カラー
2777 	 */
2778 	DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F16 = 33,
2779 
2780 	/**
2781 	 * 2チャンネル浮動少数32ビット型カラー
2782 	 */
2783 	DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F32 = 34,
2784 
2785 	/**
2786 	 * 描画可能16ビットカラー
2787 	 */
2788 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB16 = 35,
2789 
2790 	/**
2791 	 * 描画可能32ビットカラー
2792 	 */
2793 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB32 = 36,
2794 
2795 	/**
2796 	 * 描画可能α付き32ビットカラー
2797 	 */
2798 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ALPHA_RGB32 = 37,
2799 
2800 	/**
2801 	 * 描画可能ARGB整数16ビット型カラー
2802 	 */
2803 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_I16 = 38,
2804 
2805 	/**
2806 	 * 描画可能ARGB浮動小数点16ビット型カラー
2807 	 */
2808 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F16 = 39,
2809 
2810 	/**
2811 	 * 描画可能ARGB浮動小数点32ビット型カラー
2812 	 */
2813 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F32 = 40,
2814 
2815 	/**
2816 	 * 描画可能1チャンネル整数8ビット型カラー
2817 	 */
2818 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I8 = 41,
2819 
2820 	/**
2821 	 * 描画可能1チャンネル整数16ビット型カラー
2822 	 */
2823 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I16 = 42,
2824 
2825 	/**
2826 	 * 描画可能1チャンネル浮動少数16ビット型カラー
2827 	 */
2828 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F16 = 43,
2829 
2830 	/**
2831 	 * 描画可能1チャンネル浮動少数32ビット型カラー
2832 	 */
2833 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F32 = 44,
2834 
2835 	/**
2836 	 * 描画可能2チャンネル整数8ビット型カラー
2837 	 */
2838 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I8 = 45,
2839 
2840 	/**
2841 	 * 描画可能2チャンネル整数16ビット型カラー
2842 	 */
2843 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I16 = 46,
2844 
2845 	/**
2846 	 * 描画可能2チャンネル浮動少数16ビット型カラー
2847 	 */
2848 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F16 = 47,
2849 
2850 	/**
2851 	 * 描画可能2チャンネル浮動少数32ビット型カラー
2852 	 */
2853 	DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F32 = 48,
2854 
2855 	/**
2856 	 * ?
2857 	 */
2858 	DX_GRAPHICSIMAGE_FORMAT_3D_NUM = 49,
2859 
2860 	/**
2861 	 * 標準(DirectDrawSurfaceの場合はこれのみ)
2862 	 */
2863 	DX_GRAPHICSIMAGE_FORMAT_2D = 50,
2864 
2865 	/**
2866 	 * R5G6B5(MEMIMG用)
2867 	 */
2868 	DX_GRAPHICSIMAGE_FORMAT_R5G6B5 = 51,
2869 
2870 	/**
2871 	 * X8A8R5G6B5(MEMIMG用)
2872 	 */
2873 	DX_GRAPHICSIMAGE_FORMAT_X8A8R5G6B5 = 52,
2874 
2875 	/**
2876 	 * X8R8G8B8(MEMIMG用)
2877 	 */
2878 	DX_GRAPHICSIMAGE_FORMAT_X8R8G8B8 = 53,
2879 
2880 	/**
2881 	 * A8R8G8B8(MEMIMG用)
2882 	 */
2883 	DX_GRAPHICSIMAGE_FORMAT_A8R8G8B8 = 54,
2884 
2885 	/**
2886 	 * グラフィックフォーマットの種類の数
2887 	 */
2888 	DX_GRAPHICSIMAGE_FORMAT_NUM = 55,
2889 }
2890 
2891 /**
2892  * 基本イメージのピクセルフォーマット
2893  */
2894 enum
2895 {
2896 	/**
2897 	 * 普通の画像
2898 	 */
2899 	DX_BASEIMAGE_FORMAT_NORMAL = 0,
2900 
2901 	/**
2902 	 * DXT1
2903 	 */
2904 	DX_BASEIMAGE_FORMAT_DXT1 = 1,
2905 
2906 	/**
2907 	 * DXT2
2908 	 */
2909 	DX_BASEIMAGE_FORMAT_DXT2 = 2,
2910 
2911 	/**
2912 	 * DXT3
2913 	 */
2914 	DX_BASEIMAGE_FORMAT_DXT3 = 3,
2915 
2916 	/**
2917 	 * DXT4
2918 	 */
2919 	DX_BASEIMAGE_FORMAT_DXT4 = 4,
2920 
2921 	/**
2922 	 * DXT5
2923 	 */
2924 	DX_BASEIMAGE_FORMAT_DXT5 = 5,
2925 
2926 	/**
2927 	 * BC7 UNORM
2928 	 */
2929 	DX_BASEIMAGE_FORMAT_BC7_UNORM = 6,
2930 
2931 	/**
2932 	 * BC7 UNORM SRGB
2933 	 */
2934 	DX_BASEIMAGE_FORMAT_BC7_UNORM_SRGB = 7,
2935 
2936 	/**
2937 	 * プラットフォーム依存フォーマット0
2938 	 */
2939 	DX_BASEIMAGE_FORMAT_PLATFORM0 = 8,
2940 
2941 	/**
2942 	 * プラットフォーム依存フォーマット1
2943 	 */
2944 	DX_BASEIMAGE_FORMAT_PLATFORM1 = 9,
2945 
2946 	/**
2947 	 * プラットフォーム依存フォーマット2
2948 	 */
2949 	DX_BASEIMAGE_FORMAT_PLATFORM2 = 10,
2950 
2951 	/**
2952 	 * プラットフォーム依存フォーマット3
2953 	 */
2954 	DX_BASEIMAGE_FORMAT_PLATFORM3 = 11,
2955 
2956 	/**
2957 	 * YUV
2958 	 */
2959 	DX_BASEIMAGE_FORMAT_YUV = 12,
2960 }
2961 
2962 /**
2963  * ムービーのサーフェスモード
2964  */
2965 enum
2966 {
2967 	/**
2968 	 * ?
2969 	 */
2970 	DX_MOVIESURFACE_NORMAL = 0,
2971 
2972 	/**
2973 	 * ?
2974 	 */
2975 	DX_MOVIESURFACE_OVERLAY = 1,
2976 
2977 	/**
2978 	 * ?
2979 	 */
2980 	DX_MOVIESURFACE_FULLCOLOR = 2,
2981 }
2982 
2983 /**
2984  * SetUserScreenImageで渡す画面のピクセルフォーマット
2985  */
2986 enum
2987 {
2988 	/**
2989 	 * R5G6B5(DXライブラリの描画関数も使用できます(ソフトウェアレンダリングモード相当))
2990 	 */
2991 	DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5 = 0,
2992 
2993 	/**
2994 	 * R5G5B5X1(DXライブラリの描画関数は使用できなくなります)
2995 	 */
2996 	DX_USER_SCREEN_PIXEL_FORMAT_R5G5B5X1 = 1,
2997 
2998 	/**
2999 	 * X1R5G5B5(DXライブラリの描画関数は使用できなくなります)
3000 	 */
3001 	DX_USER_SCREEN_PIXEL_FORMAT_X1R5G5B5 = 2,
3002 
3003 	/**
3004 	 * X8B8G8R8(DXライブラリの描画関数は使用できなくなります)
3005 	 */
3006 	DX_USER_SCREEN_PIXEL_FORMAT_X8B8G8R8 = 3,
3007 
3008 	/**
3009 	 * X8R8G8B8(DXライブラリの描画関数も使用できます(ソフトウェアレンダリングモード相当))
3010 	 */
3011 	DX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8 = 4,
3012 
3013 	/**
3014 	 * ?
3015 	 */
3016 	DX_USER_SCREEN_PIXEL_FORMAT_NUM = 5,
3017 }
3018 
3019 /**
3020  * ウインドウの奥行き位置設定タイプ
3021  */
3022 enum
3023 {
3024 	/**
3025 	 * 通常設定
3026 	 */
3027 	DX_WIN_ZTYPE_NORMAL = 0,
3028 
3029 	/**
3030 	 * 全てのウインドウの一番奥に配置する
3031 	 */
3032 	DX_WIN_ZTYPE_BOTTOM = 1,
3033 
3034 	/**
3035 	 * 全てのウインドウの一番手前に配置する
3036 	 */
3037 	DX_WIN_ZTYPE_TOP = 2,
3038 
3039 	/**
3040 	 * 全てのウインドウの一番手前に配置する(ウインドウがアクティブではないときも最前面に表示される)
3041 	 */
3042 	DX_WIN_ZTYPE_TOPMOST = 3,
3043 }
3044 
3045 /**
3046  * ツールバーのボタンの状態
3047  */
3048 enum
3049 {
3050 	/**
3051 	 * 入力可能な状態
3052 	 */
3053 	TOOLBUTTON_STATE_ENABLE = 0,
3054 
3055 	/**
3056 	 * 押されている状態
3057 	 */
3058 	TOOLBUTTON_STATE_PRESSED = 1,
3059 
3060 	/**
3061 	 * 入力不可能な状態
3062 	 */
3063 	TOOLBUTTON_STATE_DISABLE = 2,
3064 
3065 	/**
3066 	 * 押されている状態で、入力不可能な状態
3067 	 */
3068 	TOOLBUTTON_STATE_PRESSED_DISABLE = 3,
3069 
3070 	/**
3071 	 * ツールバーのボタンの状態の数
3072 	 */
3073 	TOOLBUTTON_STATE_NUM = 4,
3074 }
3075 
3076 /**
3077  * ツールバーのボタンのタイプ
3078  */
3079 enum
3080 {
3081 	/**
3082 	 * 普通のボタン
3083 	 */
3084 	TOOLBUTTON_TYPE_NORMAL = 0,
3085 
3086 	/**
3087 	 * 押すごとにON/OFFが切り替わるボタン
3088 	 */
3089 	TOOLBUTTON_TYPE_CHECK = 1,
3090 
3091 	/**
3092 	 * 別のTOOLBUTTON_TYPE_GROUP タイプのボタンが押されるとOFFになるタイプのボタン(グループの区切りは隙間で)
3093 	 */
3094 	TOOLBUTTON_TYPE_GROUP = 2,
3095 
3096 	/**
3097 	 * 隙間(ボタンではありません)
3098 	 */
3099 	TOOLBUTTON_TYPE_SEP = 3,
3100 
3101 	/**
3102 	 * ツールバーのボタンのタイプの数
3103 	 */
3104 	TOOLBUTTON_TYPE_NUM = 4,
3105 }
3106 
3107 /**
3108  * 親メニューのID
3109  */
3110 enum MENUITEM_IDTOP = 0xABABABAB;
3111 
3112 /**
3113  * メニューに追加する際のタイプ
3114  */
3115 enum
3116 {
3117 	/**
3118 	 * 指定の項目の子として追加する
3119 	 */
3120 	MENUITEM_ADD_CHILD = 0,
3121 
3122 	/**
3123 	 * 指定の項目と指定の項目より1つ上の項目の間に追加する
3124 	 */
3125 	MENUITEM_ADD_INSERT = 1,
3126 }
3127 
3128 /**
3129  * メニューの横に付くマークタイプ
3130  */
3131 enum
3132 {
3133 	/**
3134 	 * 何も付け無い
3135 	 */
3136 	MENUITEM_MARK_NONE = 0,
3137 
3138 	/**
3139 	 * チェックマーク
3140 	 */
3141 	MENUITEM_MARK_CHECK = 1,
3142 
3143 	/**
3144 	 * ラジオボタン
3145 	 */
3146 	MENUITEM_MARK_RADIO = 2,
3147 }
3148 
3149 /**
3150  * 文字変換タイプ定義
3151  */
3152 enum
3153 {
3154 	/**
3155 	 * 10進数
3156 	 */
3157 	DX_NUMMODE_10 = 0,
3158 
3159 	/**
3160 	 * 16進数
3161 	 */
3162 	DX_NUMMODE_16 = 1,
3163 
3164 	/**
3165 	 * 空きを0で埋めない
3166 	 */
3167 	DX_STRMODE_NOT0 = 2,
3168 
3169 	/**
3170 	 * 空きを0で埋める
3171 	 */
3172 	DX_STRMODE_USE0 = 3,
3173 }
3174 
3175 /**
3176  * CheckHitKeyAllで調べる入力タイプ
3177  */
3178 enum
3179 {
3180 	/**
3181 	 * キー入力を調べる
3182 	 */
3183 	DX_CHECKINPUT_KEY = 0x0001,
3184 
3185 	/**
3186 	 * パッド入力を調べる
3187 	 */
3188 	DX_CHECKINPUT_PAD = 0x0002,
3189 
3190 	/**
3191 	 * マウスボタン入力を調べる
3192 	 */
3193 	DX_CHECKINPUT_MOUSE = 0x0004,
3194 
3195 	/**
3196 	 * すべての入力を調べる
3197 	 */
3198 	DX_CHECKINPUT_ALL = DX_CHECKINPUT_KEY | DX_CHECKINPUT_PAD | DX_CHECKINPUT_MOUSE,
3199 }
3200 
3201 /**
3202  * パッド入力取得パラメータ
3203  */
3204 enum
3205 {
3206 	/**
3207 	 * キー入力とパッド1入力
3208 	 */
3209 	DX_INPUT_KEY_PAD1 = 0x1001,
3210 
3211 	/**
3212 	 * パッド1入力
3213 	 */
3214 	DX_INPUT_PAD1 = 0x0001,
3215 
3216 	/**
3217 	 * パッド2入力
3218 	 */
3219 	DX_INPUT_PAD2 = 0x0002,
3220 
3221 	/**
3222 	 * パッド3入力
3223 	 */
3224 	DX_INPUT_PAD3 = 0x0003,
3225 
3226 	/**
3227 	 * パッド4入力
3228 	 */
3229 	DX_INPUT_PAD4 = 0x0004,
3230 
3231 	/**
3232 	 * パッド5入力
3233 	 */
3234 	DX_INPUT_PAD5 = 0x0005,
3235 
3236 	/**
3237 	 * パッド6入力
3238 	 */
3239 	DX_INPUT_PAD6 = 0x0006,
3240 
3241 	/**
3242 	 * パッド7入力
3243 	 */
3244 	DX_INPUT_PAD7 = 0x0007,
3245 
3246 	/**
3247 	 * パッド8入力
3248 	 */
3249 	DX_INPUT_PAD8 = 0x0008,
3250 
3251 	/**
3252 	 * パッド9入力
3253 	 */
3254 	DX_INPUT_PAD9 = 0x0009,
3255 
3256 	/**
3257 	 * パッド10入力
3258 	 */
3259 	DX_INPUT_PAD10 = 0x000A,
3260 
3261 	/**
3262 	 * パッド11入力
3263 	 */
3264 	DX_INPUT_PAD11 = 0x000B,
3265 
3266 	/**
3267 	 * パッド12入力
3268 	 */
3269 	DX_INPUT_PAD12 = 0x000C,
3270 
3271 	/**
3272 	 * パッド13入力
3273 	 */
3274 	DX_INPUT_PAD13 = 0x000D,
3275 
3276 	/**
3277 	 * パッド14入力
3278 	 */
3279 	DX_INPUT_PAD14 = 0x000E,
3280 
3281 	/**
3282 	 * パッド15入力
3283 	 */
3284 	DX_INPUT_PAD15 = 0x000F,
3285 
3286 	/**
3287 	 * パッド16入力
3288 	 */
3289 	DX_INPUT_PAD16 = 0x0010,
3290 
3291 	/**
3292 	 * キー入力
3293 	 */
3294 	DX_INPUT_KEY = 0x1000,
3295 
3296 	/**
3297 	 * タッチの同時接触検出対応最大数
3298 	 */
3299 	TOUCHINPUTPOINT_MAX = 16,
3300 }
3301 
3302 /**
3303  * パッド入力定義
3304  */
3305 enum
3306 {
3307 	/**
3308 	 * ↓チェックマスク
3309 	 */
3310 	PAD_INPUT_DOWN = 0x00000001,
3311 
3312 	/**
3313 	 * ←チェックマスク
3314 	 */
3315 	PAD_INPUT_LEFT = 0x00000002,
3316 
3317 	/**
3318 	 * →チェックマスク
3319 	 */
3320 	PAD_INPUT_RIGHT = 0x00000004,
3321 
3322 	/**
3323 	 * ↑チェックマスク
3324 	 */
3325 	PAD_INPUT_UP = 0x00000008,
3326 
3327 	/**
3328 	 * Aボタンチェックマスク
3329 	 */
3330 	PAD_INPUT_A = 0x00000010,
3331 
3332 	/**
3333 	 * Bボタンチェックマスク
3334 	 */
3335 	PAD_INPUT_B = 0x00000020,
3336 
3337 	/**
3338 	 * Cボタンチェックマスク
3339 	 */
3340 	PAD_INPUT_C = 0x00000040,
3341 
3342 	/**
3343 	 * Xボタンチェックマスク
3344 	 */
3345 	PAD_INPUT_X = 0x00000080,
3346 
3347 	/**
3348 	 * Yボタンチェックマスク
3349 	 */
3350 	PAD_INPUT_Y = 0x00000100,
3351 
3352 	/**
3353 	 * Zボタンチェックマスク
3354 	 */
3355 	PAD_INPUT_Z = 0x00000200,
3356 
3357 	/**
3358 	 * Lボタンチェックマスク
3359 	 */
3360 	PAD_INPUT_L = 0x00000400,
3361 
3362 	/**
3363 	 * Rボタンチェックマスク
3364 	 */
3365 	PAD_INPUT_R = 0x00000800,
3366 
3367 	/**
3368 	 * STARTボタンチェックマスク
3369 	 */
3370 	PAD_INPUT_START = 0x00001000,
3371 
3372 	/**
3373 	 * Mボタンチェックマスク
3374 	 */
3375 	PAD_INPUT_M = 0x00002000,
3376 
3377 	/**
3378 	 * ?
3379 	 */
3380 	PAD_INPUT_D = 0x00004000,
3381 
3382 	/**
3383 	 * ?
3384 	 */
3385 	PAD_INPUT_F = 0x00008000,
3386 
3387 	/**
3388 	 * ?
3389 	 */
3390 	PAD_INPUT_G = 0x00010000,
3391 
3392 	/**
3393 	 * ?
3394 	 */
3395 	PAD_INPUT_H = 0x00020000,
3396 
3397 	/**
3398 	 * ?
3399 	 */
3400 	PAD_INPUT_I = 0x00040000,
3401 
3402 	/**
3403 	 * ?
3404 	 */
3405 	PAD_INPUT_J = 0x00080000,
3406 
3407 	/**
3408 	 * ?
3409 	 */
3410 	PAD_INPUT_K = 0x00100000,
3411 
3412 	/**
3413 	 * ?
3414 	 */
3415 	PAD_INPUT_LL = 0x00200000,
3416 
3417 	/**
3418 	 * ?
3419 	 */
3420 	PAD_INPUT_N = 0x00400000,
3421 
3422 	/**
3423 	 * ?
3424 	 */
3425 	PAD_INPUT_O = 0x00800000,
3426 
3427 	/**
3428 	 * ?
3429 	 */
3430 	PAD_INPUT_P = 0x01000000,
3431 
3432 	/**
3433 	 * ?
3434 	 */
3435 	PAD_INPUT_RR = 0x02000000,
3436 
3437 	/**
3438 	 * ?
3439 	 */
3440 	PAD_INPUT_S = 0x04000000,
3441 
3442 	/**
3443 	 * ?
3444 	 */
3445 	PAD_INPUT_T = 0x08000000,
3446 
3447 	/**
3448 	 * ?
3449 	 */
3450 	PAD_INPUT_U = 0x10000000,
3451 
3452 	/**
3453 	 * ?
3454 	 */
3455 	PAD_INPUT_V = 0x20000000,
3456 
3457 	/**
3458 	 * ?
3459 	 */
3460 	PAD_INPUT_W = 0x40000000,
3461 
3462 	/**
3463 	 * ?
3464 	 */
3465 	PAD_INPUT_XX = 0x80000000,
3466 
3467 	/**
3468 	 * ?
3469 	 */
3470 	PAD_INPUT_1 = 0x00000010,
3471 
3472 	/**
3473 	 * ?
3474 	 */
3475 	PAD_INPUT_2 = 0x00000020,
3476 
3477 	/**
3478 	 * ?
3479 	 */
3480 	PAD_INPUT_3 = 0x00000040,
3481 
3482 	/**
3483 	 * ?
3484 	 */
3485 	PAD_INPUT_4 = 0x00000080,
3486 
3487 	/**
3488 	 * ?
3489 	 */
3490 	PAD_INPUT_5 = 0x00000100,
3491 
3492 	/**
3493 	 * ?
3494 	 */
3495 	PAD_INPUT_6 = 0x00000200,
3496 
3497 	/**
3498 	 * ?
3499 	 */
3500 	PAD_INPUT_7 = 0x00000400,
3501 
3502 	/**
3503 	 * ?
3504 	 */
3505 	PAD_INPUT_8 = 0x00000800,
3506 
3507 	/**
3508 	 * ?
3509 	 */
3510 	PAD_INPUT_9 = 0x00001000,
3511 
3512 	/**
3513 	 * ?
3514 	 */
3515 	PAD_INPUT_10 = 0x00002000,
3516 
3517 	/**
3518 	 * ?
3519 	 */
3520 	PAD_INPUT_11 = 0x00004000,
3521 
3522 	/**
3523 	 * ?
3524 	 */
3525 	PAD_INPUT_12 = 0x00008000,
3526 
3527 	/**
3528 	 * ?
3529 	 */
3530 	PAD_INPUT_13 = 0x00010000,
3531 
3532 	/**
3533 	 * ?
3534 	 */
3535 	PAD_INPUT_14 = 0x00020000,
3536 
3537 	/**
3538 	 * ?
3539 	 */
3540 	PAD_INPUT_15 = 0x00040000,
3541 
3542 	/**
3543 	 * ?
3544 	 */
3545 	PAD_INPUT_16 = 0x00080000,
3546 
3547 	/**
3548 	 * ?
3549 	 */
3550 	PAD_INPUT_17 = 0x00100000,
3551 
3552 	/**
3553 	 * ?
3554 	 */
3555 	PAD_INPUT_18 = 0x00200000,
3556 
3557 	/**
3558 	 * ?
3559 	 */
3560 	PAD_INPUT_19 = 0x00400000,
3561 
3562 	/**
3563 	 * ?
3564 	 */
3565 	PAD_INPUT_20 = 0x00800000,
3566 
3567 	/**
3568 	 * ?
3569 	 */
3570 	PAD_INPUT_21 = 0x01000000,
3571 
3572 	/**
3573 	 * ?
3574 	 */
3575 	PAD_INPUT_22 = 0x02000000,
3576 
3577 	/**
3578 	 * ?
3579 	 */
3580 	PAD_INPUT_23 = 0x04000000,
3581 
3582 	/**
3583 	 * ?
3584 	 */
3585 	PAD_INPUT_24 = 0x08000000,
3586 
3587 	/**
3588 	 * ?
3589 	 */
3590 	PAD_INPUT_25 = 0x10000000,
3591 
3592 	/**
3593 	 * ?
3594 	 */
3595 	PAD_INPUT_26 = 0x20000000,
3596 
3597 	/**
3598 	 * ?
3599 	 */
3600 	PAD_INPUT_27 = 0x40000000,
3601 
3602 	/**
3603 	 * ?
3604 	 */
3605 	PAD_INPUT_28 = 0x80000000,
3606 }
3607 
3608 /**
3609  * XInputボタン入力定義
3610  */
3611 enum
3612 {
3613 	/**
3614 	 * デジタル方向ボタン上
3615 	 */
3616 	XINPUT_BUTTON_DPAD_UP = 0,
3617 
3618 	/**
3619 	 * デジタル方向ボタン下
3620 	 */
3621 	XINPUT_BUTTON_DPAD_DOWN = 1,
3622 
3623 	/**
3624 	 * デジタル方向ボタン左
3625 	 */
3626 	XINPUT_BUTTON_DPAD_LEFT = 2,
3627 
3628 	/**
3629 	 * デジタル方向ボタン右
3630 	 */
3631 	XINPUT_BUTTON_DPAD_RIGHT = 3,
3632 
3633 	/**
3634 	 * STARTボタン
3635 	 */
3636 	XINPUT_BUTTON_START = 4,
3637 
3638 	/**
3639 	 * BACKボタン
3640 	 */
3641 	XINPUT_BUTTON_BACK = 5,
3642 
3643 	/**
3644 	 * 左スティック押し込み
3645 	 */
3646 	XINPUT_BUTTON_LEFT_THUMB = 6,
3647 
3648 	/**
3649 	 * 右スティック押し込み
3650 	 */
3651 	XINPUT_BUTTON_RIGHT_THUMB = 7,
3652 
3653 	/**
3654 	 * LBボタン
3655 	 */
3656 	XINPUT_BUTTON_LEFT_SHOULDER = 8,
3657 
3658 	/**
3659 	 * RBボタン
3660 	 */
3661 	XINPUT_BUTTON_RIGHT_SHOULDER = 9,
3662 
3663 	/**
3664 	 * Aボタン
3665 	 */
3666 	XINPUT_BUTTON_A = 12,
3667 
3668 	/**
3669 	 * Bボタン
3670 	 */
3671 	XINPUT_BUTTON_B = 13,
3672 
3673 	/**
3674 	 * Xボタン
3675 	 */
3676 	XINPUT_BUTTON_X = 14,
3677 
3678 	/**
3679 	 * Yボタン
3680 	 */
3681 	XINPUT_BUTTON_Y = 15,
3682 }
3683 
3684 /**
3685  * マウス入力定義
3686  */
3687 enum
3688 {
3689 	/**
3690 	 * マウス左ボタン
3691 	 */
3692 	MOUSE_INPUT_LEFT = 0x0001,
3693 
3694 	/**
3695 	 * マウス右ボタン
3696 	 */
3697 	MOUSE_INPUT_RIGHT = 0x0002,
3698 
3699 	/**
3700 	 * マウス中央ボタン
3701 	 */
3702 	MOUSE_INPUT_MIDDLE = 0x0004,
3703 
3704 	/**
3705 	 * マウス1ボタン
3706 	 */
3707 	MOUSE_INPUT_1 = 0x0001,
3708 
3709 	/**
3710 	 * マウス2ボタン
3711 	 */
3712 	MOUSE_INPUT_2 = 0x0002,
3713 
3714 	/**
3715 	 * マウス3ボタン
3716 	 */
3717 	MOUSE_INPUT_3 = 0x0004,
3718 
3719 	/**
3720 	 * マウス4ボタン
3721 	 */
3722 	MOUSE_INPUT_4 = 0x0008,
3723 
3724 	/**
3725 	 * マウス5ボタン
3726 	 */
3727 	MOUSE_INPUT_5 = 0x0010,
3728 
3729 	/**
3730 	 * マウス6ボタン
3731 	 */
3732 	MOUSE_INPUT_6 = 0x0020,
3733 
3734 	/**
3735 	 * マウス7ボタン
3736 	 */
3737 	MOUSE_INPUT_7 = 0x0040,
3738 
3739 	/**
3740 	 * マウス8ボタン
3741 	 */
3742 	MOUSE_INPUT_8 = 0x0080,
3743 }
3744 
3745 /**
3746  * マウスのログ情報タイプ
3747  */
3748 enum
3749 {
3750 	/**
3751 	 * ボタンを押した
3752 	 */
3753 	MOUSE_INPUT_LOG_DOWN = 0,
3754 
3755 	/**
3756 	 * ボタンを離した
3757 	 */
3758 	MOUSE_INPUT_LOG_UP = 1,
3759 }
3760 
3761 /**
3762  * キー定義
3763  */
3764 enum
3765 {
3766 	/**
3767 	 * BackSpaceキー    D_DIK_BACK
3768 	 */
3769 	KEY_INPUT_BACK = 0x0E,
3770 
3771 	/**
3772 	 * Tabキー            D_DIK_TAB
3773 	 */
3774 	KEY_INPUT_TAB = 0x0F,
3775 
3776 	/**
3777 	 * Enterキー        D_DIK_RETURN
3778 	 */
3779 	KEY_INPUT_RETURN = 0x1C,
3780 
3781 	/**
3782 	 * 左Shiftキー        D_DIK_LSHIFT
3783 	 */
3784 	KEY_INPUT_LSHIFT = 0x2A,
3785 
3786 	/**
3787 	 * 右Shiftキー        D_DIK_RSHIFT
3788 	 */
3789 	KEY_INPUT_RSHIFT = 0x36,
3790 
3791 	/**
3792 	 * 左Ctrlキー        D_DIK_LCONTROL
3793 	 */
3794 	KEY_INPUT_LCONTROL = 0x1D,
3795 
3796 	/**
3797 	 * 右Ctrlキー        D_DIK_RCONTROL
3798 	 */
3799 	KEY_INPUT_RCONTROL = 0x9D,
3800 
3801 	/**
3802 	 * Escキー            D_DIK_ESCAPE
3803 	 */
3804 	KEY_INPUT_ESCAPE = 0x01,
3805 
3806 	/**
3807 	 * スペースキー        D_DIK_SPACE
3808 	 */
3809 	KEY_INPUT_SPACE = 0x39,
3810 
3811 	/**
3812 	 * PageUpキー        D_DIK_PGUP
3813 	 */
3814 	KEY_INPUT_PGUP = 0xC9,
3815 
3816 	/**
3817 	 * PageDownキー        D_DIK_PGDN
3818 	 */
3819 	KEY_INPUT_PGDN = 0xD1,
3820 
3821 	/**
3822 	 * Endキー            D_DIK_END
3823 	 */
3824 	KEY_INPUT_END = 0xCF,
3825 
3826 	/**
3827 	 * Homeキー            D_DIK_HOME
3828 	 */
3829 	KEY_INPUT_HOME = 0xC7,
3830 
3831 	/**
3832 	 * 左キー            D_DIK_LEFT
3833 	 */
3834 	KEY_INPUT_LEFT = 0xCB,
3835 
3836 	/**
3837 	 * 上キー            D_DIK_UP
3838 	 */
3839 	KEY_INPUT_UP = 0xC8,
3840 
3841 	/**
3842 	 * 右キー            D_DIK_RIGHT
3843 	 */
3844 	KEY_INPUT_RIGHT = 0xCD,
3845 
3846 	/**
3847 	 * 下キー            D_DIK_DOWN
3848 	 */
3849 	KEY_INPUT_DOWN = 0xD0,
3850 
3851 	/**
3852 	 * Insertキー        D_DIK_INSERT
3853 	 */
3854 	KEY_INPUT_INSERT = 0xD2,
3855 
3856 	/**
3857 	 * Deleteキー        D_DIK_DELETE
3858 	 */
3859 	KEY_INPUT_DELETE = 0xD3,
3860 
3861 	/**
3862 	 * -キー            D_DIK_MINUS
3863 	 */
3864 	KEY_INPUT_MINUS = 0x0C,
3865 
3866 	/**
3867 	 * ¥キー            D_DIK_YEN
3868 	 */
3869 	KEY_INPUT_YEN = 0x7D,
3870 
3871 	/**
3872 	 * ^キー            D_DIK_PREVTRACK
3873 	 */
3874 	KEY_INPUT_PREVTRACK = 0x90,
3875 
3876 	/**
3877 	 * .キー            D_DIK_PERIOD
3878 	 */
3879 	KEY_INPUT_PERIOD = 0x34,
3880 
3881 	/**
3882 	 * /キー            D_DIK_SLASH
3883 	 */
3884 	KEY_INPUT_SLASH = 0x35,
3885 
3886 	/**
3887 	 * 左Altキー        D_DIK_LALT
3888 	 */
3889 	KEY_INPUT_LALT = 0x38,
3890 
3891 	/**
3892 	 * 右Altキー        D_DIK_RALT
3893 	 */
3894 	KEY_INPUT_RALT = 0xB8,
3895 
3896 	/**
3897 	 * ScrollLockキー    D_DIK_SCROLL
3898 	 */
3899 	KEY_INPUT_SCROLL = 0x46,
3900 
3901 	/**
3902 	 * ;キー            D_DIK_SEMICOLON
3903 	 */
3904 	KEY_INPUT_SEMICOLON = 0x27,
3905 
3906 	/**
3907 	 * :キー            D_DIK_COLON
3908 	 */
3909 	KEY_INPUT_COLON = 0x92,
3910 
3911 	/**
3912 	 * [キー            D_DIK_LBRACKET
3913 	 */
3914 	KEY_INPUT_LBRACKET = 0x1A,
3915 
3916 	/**
3917 	 * ]キー            D_DIK_RBRACKET
3918 	 */
3919 	KEY_INPUT_RBRACKET = 0x1B,
3920 
3921 	/**
3922 	 * @キー            D_DIK_AT
3923 	 */
3924 	KEY_INPUT_AT = 0x91,
3925 
3926 	/**
3927 	 * \キー            D_DIK_BACKSLASH
3928 	 */
3929 	KEY_INPUT_BACKSLASH = 0x2B,
3930 
3931 	/**
3932 	 * ,キー            D_DIK_COMMA
3933 	 */
3934 	KEY_INPUT_COMMA = 0x33,
3935 
3936 	/**
3937 	 * 漢字キー            D_DIK_KANJI
3938 	 */
3939 	KEY_INPUT_KANJI = 0x94,
3940 
3941 	/**
3942 	 * 変換キー            D_DIK_CONVERT
3943 	 */
3944 	KEY_INPUT_CONVERT = 0x79,
3945 
3946 	/**
3947 	 * 無変換キー        D_DIK_NOCONVERT
3948 	 */
3949 	KEY_INPUT_NOCONVERT = 0x7B,
3950 
3951 	/**
3952 	 * カナキー            D_DIK_KANA
3953 	 */
3954 	KEY_INPUT_KANA = 0x70,
3955 
3956 	/**
3957 	 * アプリケーションメニューキー        D_DIK_APPS
3958 	 */
3959 	KEY_INPUT_APPS = 0xDD,
3960 
3961 	/**
3962 	 * CaspLockキー        D_DIK_CAPSLOCK
3963 	 */
3964 	KEY_INPUT_CAPSLOCK = 0x3A,
3965 
3966 	/**
3967 	 * PrintScreenキー    D_DIK_SYSRQ
3968 	 */
3969 	KEY_INPUT_SYSRQ = 0xB7,
3970 
3971 	/**
3972 	 * PauseBreakキー    D_DIK_PAUSE
3973 	 */
3974 	KEY_INPUT_PAUSE = 0xC5,
3975 
3976 	/**
3977 	 * 左Winキー        D_DIK_LWIN
3978 	 */
3979 	KEY_INPUT_LWIN = 0xDB,
3980 
3981 	/**
3982 	 * 右Winキー        D_DIK_RWIN
3983 	 */
3984 	KEY_INPUT_RWIN = 0xDC,
3985 
3986 	/**
3987 	 * テンキーNumLockキー        D_DIK_NUMLOCK
3988 	 */
3989 	KEY_INPUT_NUMLOCK = 0x45,
3990 
3991 	/**
3992 	 * テンキー0                D_DIK_NUMPAD0
3993 	 */
3994 	KEY_INPUT_NUMPAD0 = 0x52,
3995 
3996 	/**
3997 	 * テンキー1                D_DIK_NUMPAD1
3998 	 */
3999 	KEY_INPUT_NUMPAD1 = 0x4F,
4000 
4001 	/**
4002 	 * テンキー2                D_DIK_NUMPAD2
4003 	 */
4004 	KEY_INPUT_NUMPAD2 = 0x50,
4005 
4006 	/**
4007 	 * テンキー3                D_DIK_NUMPAD3
4008 	 */
4009 	KEY_INPUT_NUMPAD3 = 0x51,
4010 
4011 	/**
4012 	 * テンキー4                D_DIK_NUMPAD4
4013 	 */
4014 	KEY_INPUT_NUMPAD4 = 0x4B,
4015 
4016 	/**
4017 	 * テンキー5                D_DIK_NUMPAD5
4018 	 */
4019 	KEY_INPUT_NUMPAD5 = 0x4C,
4020 
4021 	/**
4022 	 * テンキー6                D_DIK_NUMPAD6
4023 	 */
4024 	KEY_INPUT_NUMPAD6 = 0x4D,
4025 
4026 	/**
4027 	 * テンキー7                D_DIK_NUMPAD7
4028 	 */
4029 	KEY_INPUT_NUMPAD7 = 0x47,
4030 
4031 	/**
4032 	 * テンキー8                D_DIK_NUMPAD8
4033 	 */
4034 	KEY_INPUT_NUMPAD8 = 0x48,
4035 
4036 	/**
4037 	 * テンキー9                D_DIK_NUMPAD9
4038 	 */
4039 	KEY_INPUT_NUMPAD9 = 0x49,
4040 
4041 	/**
4042 	 * テンキー*キー            D_DIK_MULTIPLY
4043 	 */
4044 	KEY_INPUT_MULTIPLY = 0x37,
4045 
4046 	/**
4047 	 * テンキー+キー            D_DIK_ADD
4048 	 */
4049 	KEY_INPUT_ADD = 0x4E,
4050 
4051 	/**
4052 	 * テンキー-キー            D_DIK_SUBTRACT
4053 	 */
4054 	KEY_INPUT_SUBTRACT = 0x4A,
4055 
4056 	/**
4057 	 * テンキー.キー            D_DIK_DECIMAL
4058 	 */
4059 	KEY_INPUT_DECIMAL = 0x53,
4060 
4061 	/**
4062 	 * テンキー/キー            D_DIK_DIVIDE
4063 	 */
4064 	KEY_INPUT_DIVIDE = 0xB5,
4065 
4066 	/**
4067 	 * テンキーのエンターキー    D_DIK_NUMPADENTER
4068 	 */
4069 	KEY_INPUT_NUMPADENTER = 0x9C,
4070 
4071 	/**
4072 	 * F1キー            D_DIK_F1
4073 	 */
4074 	KEY_INPUT_F1 = 0x3B,
4075 
4076 	/**
4077 	 * F2キー            D_DIK_F2
4078 	 */
4079 	KEY_INPUT_F2 = 0x3C,
4080 
4081 	/**
4082 	 * F3キー            D_DIK_F3
4083 	 */
4084 	KEY_INPUT_F3 = 0x3D,
4085 
4086 	/**
4087 	 * F4キー            D_DIK_F4
4088 	 */
4089 	KEY_INPUT_F4 = 0x3E,
4090 
4091 	/**
4092 	 * F5キー            D_DIK_F5
4093 	 */
4094 	KEY_INPUT_F5 = 0x3F,
4095 
4096 	/**
4097 	 * F6キー            D_DIK_F6
4098 	 */
4099 	KEY_INPUT_F6 = 0x40,
4100 
4101 	/**
4102 	 * F7キー            D_DIK_F7
4103 	 */
4104 	KEY_INPUT_F7 = 0x41,
4105 
4106 	/**
4107 	 * F8キー            D_DIK_F8
4108 	 */
4109 	KEY_INPUT_F8 = 0x42,
4110 
4111 	/**
4112 	 * F9キー            D_DIK_F9
4113 	 */
4114 	KEY_INPUT_F9 = 0x43,
4115 
4116 	/**
4117 	 * F10キー        D_DIK_F10
4118 	 */
4119 	KEY_INPUT_F10 = 0x44,
4120 
4121 	/**
4122 	 * F11キー        D_DIK_F11
4123 	 */
4124 	KEY_INPUT_F11 = 0x57,
4125 
4126 	/**
4127 	 * F12キー        D_DIK_F12
4128 	 */
4129 	KEY_INPUT_F12 = 0x58,
4130 
4131 	/**
4132 	 * Aキー            D_DIK_A
4133 	 */
4134 	KEY_INPUT_A = 0x1E,
4135 
4136 	/**
4137 	 * Bキー            D_DIK_B
4138 	 */
4139 	KEY_INPUT_B = 0x30,
4140 
4141 	/**
4142 	 * Cキー            D_DIK_C
4143 	 */
4144 	KEY_INPUT_C = 0x2E,
4145 
4146 	/**
4147 	 * Dキー            D_DIK_D
4148 	 */
4149 	KEY_INPUT_D = 0x20,
4150 
4151 	/**
4152 	 * Eキー            D_DIK_E
4153 	 */
4154 	KEY_INPUT_E = 0x12,
4155 
4156 	/**
4157 	 * Fキー            D_DIK_F
4158 	 */
4159 	KEY_INPUT_F = 0x21,
4160 
4161 	/**
4162 	 * Gキー            D_DIK_G
4163 	 */
4164 	KEY_INPUT_G = 0x22,
4165 
4166 	/**
4167 	 * Hキー            D_DIK_H
4168 	 */
4169 	KEY_INPUT_H = 0x23,
4170 
4171 	/**
4172 	 * Iキー            D_DIK_I
4173 	 */
4174 	KEY_INPUT_I = 0x17,
4175 
4176 	/**
4177 	 * Jキー            D_DIK_J
4178 	 */
4179 	KEY_INPUT_J = 0x24,
4180 
4181 	/**
4182 	 * Kキー            D_DIK_K
4183 	 */
4184 	KEY_INPUT_K = 0x25,
4185 
4186 	/**
4187 	 * Lキー            D_DIK_L
4188 	 */
4189 	KEY_INPUT_L = 0x26,
4190 
4191 	/**
4192 	 * Mキー            D_DIK_M
4193 	 */
4194 	KEY_INPUT_M = 0x32,
4195 
4196 	/**
4197 	 * Nキー            D_DIK_N
4198 	 */
4199 	KEY_INPUT_N = 0x31,
4200 
4201 	/**
4202 	 * Oキー            D_DIK_O
4203 	 */
4204 	KEY_INPUT_O = 0x18,
4205 
4206 	/**
4207 	 * Pキー            D_DIK_P
4208 	 */
4209 	KEY_INPUT_P = 0x19,
4210 
4211 	/**
4212 	 * Qキー            D_DIK_Q
4213 	 */
4214 	KEY_INPUT_Q = 0x10,
4215 
4216 	/**
4217 	 * Rキー            D_DIK_R
4218 	 */
4219 	KEY_INPUT_R = 0x13,
4220 
4221 	/**
4222 	 * Sキー            D_DIK_S
4223 	 */
4224 	KEY_INPUT_S = 0x1F,
4225 
4226 	/**
4227 	 * Tキー            D_DIK_T
4228 	 */
4229 	KEY_INPUT_T = 0x14,
4230 
4231 	/**
4232 	 * Uキー            D_DIK_U
4233 	 */
4234 	KEY_INPUT_U = 0x16,
4235 
4236 	/**
4237 	 * Vキー            D_DIK_V
4238 	 */
4239 	KEY_INPUT_V = 0x2F,
4240 
4241 	/**
4242 	 * Wキー            D_DIK_W
4243 	 */
4244 	KEY_INPUT_W = 0x11,
4245 
4246 	/**
4247 	 * Xキー            D_DIK_X
4248 	 */
4249 	KEY_INPUT_X = 0x2D,
4250 
4251 	/**
4252 	 * Yキー            D_DIK_Y
4253 	 */
4254 	KEY_INPUT_Y = 0x15,
4255 
4256 	/**
4257 	 * Zキー            D_DIK_Z
4258 	 */
4259 	KEY_INPUT_Z = 0x2C,
4260 
4261 	/**
4262 	 * 0キー            D_DIK_0
4263 	 */
4264 	KEY_INPUT_0 = 0x0B,
4265 
4266 	/**
4267 	 * 1キー            D_DIK_1
4268 	 */
4269 	KEY_INPUT_1 = 0x02,
4270 
4271 	/**
4272 	 * 2キー            D_DIK_2
4273 	 */
4274 	KEY_INPUT_2 = 0x03,
4275 
4276 	/**
4277 	 * 3キー            D_DIK_3
4278 	 */
4279 	KEY_INPUT_3 = 0x04,
4280 
4281 	/**
4282 	 * 4キー            D_DIK_4
4283 	 */
4284 	KEY_INPUT_4 = 0x05,
4285 
4286 	/**
4287 	 * 5キー            D_DIK_5
4288 	 */
4289 	KEY_INPUT_5 = 0x06,
4290 
4291 	/**
4292 	 * 6キー            D_DIK_6
4293 	 */
4294 	KEY_INPUT_6 = 0x07,
4295 
4296 	/**
4297 	 * 7キー            D_DIK_7
4298 	 */
4299 	KEY_INPUT_7 = 0x08,
4300 
4301 	/**
4302 	 * 8キー            D_DIK_8
4303 	 */
4304 	KEY_INPUT_8 = 0x09,
4305 
4306 	/**
4307 	 * 9キー            D_DIK_9
4308 	 */
4309 	KEY_INPUT_9 = 0x0A,
4310 }
4311 
4312 /**
4313  * アスキーコントロールキーコード
4314  */
4315 enum
4316 {
4317 	/**
4318 	 * バックスペース
4319 	 */
4320 	CTRL_CODE_BS = 0x08,
4321 
4322 	/**
4323 	 * タブ
4324 	 */
4325 	CTRL_CODE_TAB = 0x09,
4326 
4327 	/**
4328 	 * 改行
4329 	 */
4330 	CTRL_CODE_CR = 0x0D,
4331 
4332 	/**
4333 	 * DELキー
4334 	 */
4335 	CTRL_CODE_DEL = 0x10,
4336 
4337 	/**
4338 	 * コピー
4339 	 */
4340 	CTRL_CODE_COPY = 0x03,
4341 
4342 	/**
4343 	 * ペースト
4344 	 */
4345 	CTRL_CODE_PASTE = 0x16,
4346 
4347 	/**
4348 	 * カット
4349 	 */
4350 	CTRL_CODE_CUT = 0x18,
4351 
4352 	/**
4353 	 * 全て選択
4354 	 */
4355 	CTRL_CODE_ALL = 0x01,
4356 
4357 	/**
4358 	 * ←キー
4359 	 */
4360 	CTRL_CODE_LEFT = 0x1D,
4361 
4362 	/**
4363 	 * →キー
4364 	 */
4365 	CTRL_CODE_RIGHT = 0x1C,
4366 
4367 	/**
4368 	 * ↑キー
4369 	 */
4370 	CTRL_CODE_UP = 0x1E,
4371 
4372 	/**
4373 	 * ↓キー
4374 	 */
4375 	CTRL_CODE_DOWN = 0x1F,
4376 
4377 	/**
4378 	 * HOMEボタン
4379 	 */
4380 	CTRL_CODE_HOME = 0x1A,
4381 
4382 	/**
4383 	 * ENDボタン
4384 	 */
4385 	CTRL_CODE_END = 0x19,
4386 
4387 	/**
4388 	 * PAGE UP
4389 	 */
4390 	CTRL_CODE_PAGE_UP = 0x17,
4391 
4392 	/**
4393 	 * PAGE DOWN
4394 	 */
4395 	CTRL_CODE_PAGE_DOWN = 0x15,
4396 
4397 	/**
4398 	 * ESCキー
4399 	 */
4400 	CTRL_CODE_ESC = 0x1B,
4401 
4402 	/**
4403 	 * 制御コード敷居値
4404 	 */
4405 	CTRL_CODE_CMP = 0x20,
4406 }
4407 
4408 /**
4409  * SetKeyInputStringColor2に渡す色変更対象を指定するための識別子
4410  */
4411 enum
4412 {
4413 	/**
4414 	 * 入力文字列の色
4415 	 */
4416 	DX_KEYINPSTRCOLOR_NORMAL_STR = 0,
4417 
4418 	/**
4419 	 * 入力文字列の縁の色
4420 	 */
4421 	DX_KEYINPSTRCOLOR_NORMAL_STR_EDGE = 1,
4422 
4423 	/**
4424 	 * IME非使用時のカーソルの色
4425 	 */
4426 	DX_KEYINPSTRCOLOR_NORMAL_CURSOR = 2,
4427 
4428 	/**
4429 	 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の色
4430 	 */
4431 	DX_KEYINPSTRCOLOR_SELECT_STR = 3,
4432 
4433 	/**
4434 	 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の縁の色
4435 	 */
4436 	DX_KEYINPSTRCOLOR_SELECT_STR_EDGE = 4,
4437 
4438 	/**
4439 	 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の周りの色
4440 	 */
4441 	DX_KEYINPSTRCOLOR_SELECT_STR_BACK = 5,
4442 
4443 	/**
4444 	 * IME使用時の入力文字列の色
4445 	 */
4446 	DX_KEYINPSTRCOLOR_IME_STR = 6,
4447 
4448 	/**
4449 	 * IME使用時の入力文字列の縁の色
4450 	 */
4451 	DX_KEYINPSTRCOLOR_IME_STR_EDGE = 7,
4452 
4453 	/**
4454 	 * IME使用時の入力文字列の周りの色
4455 	 */
4456 	DX_KEYINPSTRCOLOR_IME_STR_BACK = 8,
4457 
4458 	/**
4459 	 * IME使用時のカーソルの色
4460 	 */
4461 	DX_KEYINPSTRCOLOR_IME_CURSOR = 9,
4462 
4463 	/**
4464 	 * IME使用時の変換文字列の下線の色
4465 	 */
4466 	DX_KEYINPSTRCOLOR_IME_LINE = 10,
4467 
4468 	/**
4469 	 * IME使用時の選択対象の変換候補文字列の色
4470 	 */
4471 	DX_KEYINPSTRCOLOR_IME_SELECT_STR = 11,
4472 
4473 	/**
4474 	 * IME使用時の選択対象の変換候補文字列の縁の色
4475 	 */
4476 	DX_KEYINPSTRCOLOR_IME_SELECT_STR_EDGE = 12,
4477 
4478 	/**
4479 	 * IME使用時の選択対象の変換候補文字列の周りの色
4480 	 */
4481 	DX_KEYINPSTRCOLOR_IME_SELECT_STR_BACK = 13,
4482 
4483 	/**
4484 	 * IME使用時の変換候補ウインドウ内の文字列の色
4485 	 */
4486 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR = 14,
4487 
4488 	/**
4489 	 * IME使用時の変換候補ウインドウ内の文字列の縁の色
4490 	 */
4491 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR_EDGE = 15,
4492 
4493 	/**
4494 	 * IME使用時の変換候補ウインドウ内で選択している文字列の色
4495 	 */
4496 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR = 16,
4497 
4498 	/**
4499 	 * IME使用時の変換候補ウインドウ内で選択している文字列の縁の色
4500 	 */
4501 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_EDGE = 17,
4502 
4503 	/**
4504 	 * IME使用時の変換候補ウインドウ内で選択している文字列の周りの色
4505 	 */
4506 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_BACK = 18,
4507 
4508 	/**
4509 	 * IME使用時の変換候補ウインドウの縁の色
4510 	 */
4511 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_EDGE = 19,
4512 
4513 	/**
4514 	 * IME使用時の変換候補ウインドウの下地の色
4515 	 */
4516 	DX_KEYINPSTRCOLOR_IME_CONV_WIN_BACK = 20,
4517 
4518 	/**
4519 	 * IME使用時の入力モード文字列の色(『全角ひらがな』等)
4520 	 */
4521 	DX_KEYINPSTRCOLOR_IME_MODE_STR = 21,
4522 
4523 	/**
4524 	 * IME使用時の入力モード文字列の縁の色
4525 	 */
4526 	DX_KEYINPSTRCOLOR_IME_MODE_STR_EDGE = 22,
4527 
4528 	/**
4529 	 * ?
4530 	 */
4531 	DX_KEYINPSTRCOLOR_NUM = 23,
4532 }
4533 
4534 /**
4535  * 文字列入力処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モード
4536  */
4537 enum
4538 {
4539 	/**
4540 	 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、最後の文字を上書き(デフォルト)
4541 	 */
4542 	DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE = 0,
4543 
4544 	/**
4545 	 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、何も変化しない
4546 	 */
4547 	DX_KEYINPSTR_ENDCHARAMODE_NOTCHANGE = 1,
4548 }
4549 
4550 /**
4551  * フルスクリーン解像度モード定義
4552  */
4553 enum
4554 {
4555 	/**
4556 	 * モニターの画面モードをデスクトップ画面と同じにしてDXライブラリ画面を拡大して表示するモード
4557 	 */
4558 	DX_FSRESOLUTIONMODE_DESKTOP = 0,
4559 
4560 	/**
4561 	 * モニターの解像度をDXライブラリ画面の解像度に合わせるモード
4562 	 */
4563 	DX_FSRESOLUTIONMODE_NATIVE = 1,
4564 
4565 	/**
4566 	 * モニターの解像度を最大にしてDXライブラリ画面を拡大して表示するモード
4567 	 */
4568 	DX_FSRESOLUTIONMODE_MAXIMUM = 2,
4569 }
4570 
4571 /**
4572  * フルスクリーン拡大モード定義
4573  */
4574 enum
4575 {
4576 	/**
4577 	 * バイリニアモード(ピクセルが滲んでピクセルとピクセルの区切りがはっきりしない)
4578 	 */
4579 	DX_FSSCALINGMODE_BILINEAR = 0,
4580 
4581 	/**
4582 	 * 最近点モード(ピクセルが四角くくっきり表示される)
4583 	 */
4584 	DX_FSSCALINGMODE_NEAREST = 1,
4585 }
4586 
4587 /**
4588  * SetGraphMode 戻り値定義
4589  */
4590 enum
4591 {
4592 	/**
4593 	 * 画面変更は成功した
4594 	 */
4595 	DX_CHANGESCREEN_OK = 0,
4596 
4597 	/**
4598 	 * 画面の変更は失敗し、元の画面モードに戻された
4599 	 */
4600 	DX_CHANGESCREEN_RETURN = -1,
4601 
4602 	/**
4603 	 * 画面の変更は失敗しデフォルトの画面モードに変更された
4604 	 */
4605 	DX_CHANGESCREEN_DEFAULT = -2,
4606 
4607 	/**
4608 	 * 画面の変更は成功したが、リフレッシュレートの変更は失敗した
4609 	 */
4610 	DX_CHANGESCREEN_REFRESHNORMAL = -3,
4611 }
4612 
4613 // ストリームデータ読み込み処理コード簡略化関連
4614 /+
4615 #define STTELL(st) ((st)->ReadShred.Tell((st)->DataPoint))
4616 #define STSEEK(st, pos, type) ((st)->ReadShred.Seek((st)->DataPoint, (pos), (type)))
4617 #define STREAD(buf, length, num, st) ((st)->ReadShred.Read((buf), (length), (num), (st)->DataPoint))
4618 #define STWRITE(buf, length, num, st) ((st)->ReadShred.Write((buf), (length), (num), (st)->DataPoint))
4619 #define STEOF(st) ((st)->ReadShred.Eof((st)->DataPoint))
4620 #define STCLOSE(st) ((st)->ReadShred.Close((st)->DataPoint))
4621 +/
4622 
4623 /**
4624  * ストリームデータ制御のシークタイプ定義
4625  */
4626 enum
4627 {
4628 	/**
4629 	 * ?
4630 	 */
4631 	STREAM_SEEKTYPE_SET = SEEK_SET,
4632 
4633 	/**
4634 	 * ?
4635 	 */
4636 	STREAM_SEEKTYPE_END = SEEK_END,
4637 
4638 	/**
4639 	 * ?
4640 	 */
4641 	STREAM_SEEKTYPE_CUR = SEEK_CUR,
4642 }
4643 
4644 /**
4645  * グラフィックロード時のイメージタイプ
4646  */
4647 enum
4648 {
4649 	/**
4650 	 * イメージはファイルである
4651 	 */
4652 	LOADIMAGE_TYPE_FILE = 0,
4653 
4654 	/**
4655 	 * イメージはメモリである
4656 	 */
4657 	LOADIMAGE_TYPE_MEM = 1,
4658 
4659 	/**
4660 	 * イメージは無い
4661 	 */
4662 	LOADIMAGE_TYPE_NONE = -1,
4663 }
4664 
4665 version (DX_NON_NETWORK) {
4666 } else {
4667 	/**
4668 	 * HTTP エラー
4669 	 */
4670 	enum
4671 	{
4672 		/**
4673 		 * サーバーエラー
4674 		 */
4675 		HTTP_ERR_SERVER = 0,
4676 
4677 		/**
4678 		 * ファイルが見つからなかった
4679 		 */
4680 		HTTP_ERR_NOTFOUND = 1,
4681 
4682 		/**
4683 		 * メモリ確保の失敗
4684 		 */
4685 		HTTP_ERR_MEMORY = 2,
4686 
4687 		/**
4688 		 * 途中で切断された
4689 		 */
4690 		HTTP_ERR_LOST = 3,
4691 
4692 		/**
4693 		 * エラーは報告されていない
4694 		 */
4695 		HTTP_ERR_NONE = -1,
4696 	}
4697 
4698 	/**
4699 	 * HTTP 処理の結果
4700 	 */
4701 	enum
4702 	{
4703 		/**
4704 		 * 処理完了
4705 		 */
4706 		HTTP_RES_COMPLETE = 0,
4707 
4708 		/**
4709 		 * 処理中止
4710 		 */
4711 		HTTP_RES_STOP = 1,
4712 
4713 		/**
4714 		 * エラー終了
4715 		 */
4716 		HTTP_RES_ERROR = 2,
4717 
4718 		/**
4719 		 * 現在進行中
4720 		 */
4721 		HTTP_RES_NOW = -1,
4722 	}
4723 }
4724 
4725 // データ型定義-------------------------------------------------------------------
4726 
4727 // WAVEFORMATEXの定義
4728 version (_WAVEFORMATEX_) {
4729 } else {
4730 	package struct tWAVEFORMATEX
4731 	{
4732 		/**
4733 		 * フォーマット(WAVE_FORMAT_PCM(値は1)等)
4734 		 */
4735 		dxlib_d.DxDataType.WORD wFormatTag;
4736 
4737 		/**
4738 		 * チャンネル数
4739 		 */
4740 		dxlib_d.DxDataType.WORD nChannels;
4741 
4742 		/**
4743 		 * 1秒辺りのサンプル数
4744 		 */
4745 		dxlib_d.DxDataType.DWORD nSamplesPerSec;
4746 
4747 		/**
4748 		 * 1秒辺りのバイト数(PCMの場合 nSamplesPerSec * nBlockAlign)
4749 		 */
4750 		dxlib_d.DxDataType.DWORD nAvgBytesPerSec;
4751 
4752 		/**
4753 		 * 全チャンネルの1サンプルを合わせたバイト数(wBitsPerSample / 8 * nChannels)
4754 		 */
4755 		dxlib_d.DxDataType.WORD nBlockAlign;
4756 
4757 		/**
4758 		 * 1サンプル辺りのビット数
4759 		 */
4760 		dxlib_d.DxDataType.WORD wBitsPerSample;
4761 
4762 		/**
4763 		 * 拡張情報のバイト数(拡張情報が無い場合は0)
4764 		 */
4765 		dxlib_d.DxDataType.WORD cbSize;
4766 	}
4767 
4768 	public alias WAVEFORMATEX = .tWAVEFORMATEX;
4769 	public alias PWAVEFORMATEX = .tWAVEFORMATEX*;
4770 	public alias NPWAVEFORMATEX = /* NEAR */ .tWAVEFORMATEX*;
4771 	public alias LPWAVEFORMATEX = /* FAR */ .tWAVEFORMATEX*;
4772 }
4773 
4774 // WAVEFORMATの定義
4775 version (WAVE_FORMAT_PCM) {
4776 } else {
4777 	package struct waveformat_tag
4778 	{
4779 		/**
4780 		 * フォーマット(WAVE_FORMAT_PCM(値は1)等)
4781 		 */
4782 		dxlib_d.DxDataType.WORD wFormatTag;
4783 
4784 		/**
4785 		 * チャンネル数
4786 		 */
4787 		dxlib_d.DxDataType.WORD nChannels;
4788 
4789 		/**
4790 		 * 1秒辺りのサンプル数
4791 		 */
4792 		dxlib_d.DxDataType.DWORD nSamplesPerSec;
4793 
4794 		/**
4795 		 * 1秒辺りのバイト数(PCMの場合 nSamplesPerSec * nBlockAlign)
4796 		 */
4797 		dxlib_d.DxDataType.DWORD nAvgBytesPerSec;
4798 
4799 		/**
4800 		 * 全チャンネルの1サンプルを合わせたバイト数(wBitsPerSample / 8 * nChannels)
4801 		 */
4802 		dxlib_d.DxDataType.WORD nBlockAlign;
4803 	}
4804 
4805 	public alias WAVEFORMAT = .waveformat_tag;
4806 	public alias PWAVEFORMAT = .waveformat_tag*;
4807 	public alias NPWAVEFORMAT = /* NEAR */ .waveformat_tag*;
4808 	public alias LPWAVEFORMAT = /* FAR */ .waveformat_tag*;
4809 
4810 	enum WAVE_FORMAT_PCM = 1;
4811 }
4812 
4813 extern (C++, DxLib) {
4814 	/**
4815 	 * IME入力文字列の描画に必要な情報の内の文節情報
4816 	 */
4817 	package struct tagIMEINPUTCLAUSEDATA
4818 	{
4819 		/**
4820 		 * 何文字目から
4821 		 */
4822 		int Position;
4823 
4824 		/**
4825 		 * 何文字か
4826 		 */
4827 		int Length;
4828 	}
4829 
4830 	public alias IMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA;
4831 	public alias LPIMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA*;
4832 
4833 	/**
4834 	 * IME入力文字列の描画に必要な情報
4835 	 */
4836 	package struct tagIMEINPUTDATA
4837 	{
4838 		/**
4839 		 * 入力中の文字列
4840 		 */
4841 		const (dxlib_d.DxDataType.TCHAR)* InputString;
4842 
4843 		/**
4844 		 * カーソルの入力文字列中の位置(バイト単位)
4845 		 */
4846 		int CursorPosition;
4847 
4848 		/**
4849 		 * 文節情報
4850 		 */
4851 		const (.IMEINPUTCLAUSEDATA)* ClauseData;
4852 
4853 		/**
4854 		 * 文節情報の数
4855 		 */
4856 		int ClauseNum;
4857 
4858 		/**
4859 		 * 選択中の分節(-1の場合はどの文節にも属していない(末尾にカーソルがある))
4860 		 */
4861 		int SelectClause;
4862 
4863 		/**
4864 		 * 変換候補の数(0の場合は変換中ではない)
4865 		 */
4866 		int CandidateNum;
4867 
4868 		/**
4869 		 * 変換候補文字列リスト(例:n番目の候補を描画する場合  DrawString(0, 0, data.CandidateList[n], GetColor(255,255,255));)
4870 		 */
4871 		const (dxlib_d.DxDataType.TCHAR)** CandidateList;
4872 
4873 		/**
4874 		 * 選択中の変換候補
4875 		 */
4876 		int SelectCandidate;
4877 
4878 		/**
4879 		 * 文字変換中かどうか(dxlib_d.DxDataType.TRUE:変換中  dxlib_d.DxDataType.FALSE:変換中ではない(文字単位でカーソルが移動できる状態))
4880 		 */
4881 		int ConvertFlag;
4882 	}
4883 
4884 	public alias IMEINPUTDATA = .tagIMEINPUTDATA;
4885 	public alias LPIMEINPUTDATA = .tagIMEINPUTDATA*;
4886 
4887 	/**
4888 	 * 描画文字列1文字の情報
4889 	 */
4890 	package struct tagDRAWCHARINFO
4891 	{
4892 		/**
4893 		 * 文字
4894 		 */
4895 		dxlib_d.DxDataType.TCHAR[14] Char = '\0';
4896 
4897 		/**
4898 		 * 文字のバイト数
4899 		 */
4900 		dxlib_d.DxDataType.WORD Bytes;
4901 
4902 		/**
4903 		 * 描画位置 X
4904 		 */
4905 		float DrawX = 0;
4906 
4907 		/**
4908 		 * 描画位置 Y
4909 		 */
4910 		float DrawY = 0;
4911 
4912 		/**
4913 		 * 描画サイズ Y
4914 		 */
4915 		float SizeX = 0;
4916 
4917 		/**
4918 		 * 描画サイズ Y
4919 		 */
4920 		float SizeY = 0;
4921 	}
4922 
4923 	public alias DRAWCHARINFO = .tagDRAWCHARINFO;
4924 	public alias LPDRAWCHARINFO = .tagDRAWCHARINFO*;
4925 
4926 	/**
4927 	 * 画面モード情報データ型
4928 	 */
4929 	package struct tagDISPLAYMODEDATA
4930 	{
4931 		/**
4932 		 * 水平解像度
4933 		 */
4934 		int Width;
4935 
4936 		/**
4937 		 * 垂直解像度
4938 		 */
4939 		int Height;
4940 
4941 		/**
4942 		 * 色ビット深度
4943 		 */
4944 		int ColorBitDepth;
4945 
4946 		/**
4947 		 * リフレッシュレート(-1の場合は規定値)
4948 		 */
4949 		int RefreshRate;
4950 	}
4951 
4952 	public alias DISPLAYMODEDATA = .tagDISPLAYMODEDATA;
4953 	public alias LPDISPLAYMODEDATA = .tagDISPLAYMODEDATA*;
4954 
4955 	/**
4956 	 * タイムデータ型
4957 	 */
4958 	package struct tagDATEDATA
4959 	{
4960 		/**
4961 		 * 年
4962 		 */
4963 		int Year;
4964 
4965 		/**
4966 		 * 月
4967 		 */
4968 		int Mon;
4969 
4970 		/**
4971 		 * 日
4972 		 */
4973 		int Day;
4974 
4975 		/**
4976 		 * 時間
4977 		 */
4978 		int Hour;
4979 
4980 		/**
4981 		 * 分
4982 		 */
4983 		int Min;
4984 
4985 		/**
4986 		 * 秒
4987 		 */
4988 		int Sec;
4989 	}
4990 
4991 	public alias DATEDATA = .tagDATEDATA;
4992 	public alias LPDATEDATA = .tagDATEDATA*;
4993 
4994 	/**
4995 	 * ファイル情報構造体
4996 	 */
4997 	package struct tagFILEINFO
4998 	{
4999 		/**
5000 		 * オブジェクト名
5001 		 */
5002 		dxlib_d.DxDataType.TCHAR[260] Name = '\0';
5003 
5004 		/**
5005 		 * ディレクトリかどうか(dxlib_d.DxDataType.TRUE:ディレクトリ  dxlib_d.DxDataType.FALSE:ファイル)
5006 		 */
5007 		int DirFlag;
5008 
5009 		/**
5010 		 * サイズ
5011 		 */
5012 		dxlib_d.DxDataType.LONGLONG Size;
5013 
5014 		/**
5015 		 * 作成日時
5016 		 */
5017 		.DATEDATA CreationTime;
5018 
5019 		/**
5020 		 * 最終更新日時
5021 		 */
5022 		.DATEDATA LastWriteTime;
5023 	}
5024 
5025 	public alias FILEINFO = .tagFILEINFO;
5026 	public alias LPFILEINFO = .tagFILEINFO*;
5027 
5028 	/**
5029 	 * ファイル情報構造体(wchar_t版)
5030 	 */
5031 	package struct tagFILEINFOW
5032 	{
5033 		/**
5034 		 * オブジェクト名
5035 		 */
5036 		.wchar_t[260] Name = '\0';
5037 
5038 		/**
5039 		 * ディレクトリかどうか(dxlib_d.DxDataType.TRUE:ディレクトリ  dxlib_d.DxDataType.FALSE:ファイル)
5040 		 */
5041 		int DirFlag;
5042 
5043 		/**
5044 		 * サイズ
5045 		 */
5046 		dxlib_d.DxDataType.LONGLONG Size;
5047 
5048 		/**
5049 		 * 作成日時
5050 		 */
5051 		.DATEDATA CreationTime;
5052 
5053 		/**
5054 		 * 最終更新日時
5055 		 */
5056 		.DATEDATA LastWriteTime;
5057 	}
5058 
5059 	public alias FILEINFOW = .tagFILEINFOW;
5060 	public alias LPFILEINFOW = .tagFILEINFOW*;
5061 
5062 	/**
5063 	 * 行列構造体
5064 	 */
5065 	package struct tagMATRIX
5066 	{
5067 		float[4][4] m = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];
5068 	}
5069 
5070 	public alias MATRIX = .tagMATRIX;
5071 	public alias LPMATRIX = .tagMATRIX*;
5072 
5073 	package struct tagMATRIX_D
5074 	{
5075 		double[4][4] m = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];
5076 	}
5077 
5078 	public alias MATRIX_D = .tagMATRIX_D;
5079 	public alias LPMATRIX_D = .tagMATRIX_D*;
5080 
5081 	/**
5082 	 * ベクトルデータ型
5083 	 */
5084 	package struct tagVECTOR
5085 	{
5086 		float x = 0;
5087 		float y = 0;
5088 		float z = 0;
5089 	}
5090 
5091 	public alias VECTOR = .tagVECTOR;
5092 	public alias LPVECTOR = .tagVECTOR*;
5093 	public alias FLOAT3 = .tagVECTOR;
5094 	public alias LPFLOAT3 = .tagVECTOR*;
5095 
5096 	package struct tagVECTOR_D
5097 	{
5098 		double x = 0;
5099 		double y = 0;
5100 		double z = 0;
5101 	}
5102 
5103 	public alias VECTOR_D = .tagVECTOR_D;
5104 	public alias LPVECTOR_D = .tagVECTOR_D*;
5105 	public alias DOUBLE3 = .tagVECTOR_D;
5106 	public alias LPDOUBLE3 = .tagVECTOR_D*;
5107 
5108 	/**
5109 	 * FLOAT2個データ型
5110 	 */
5111 	package struct tagFLOAT2
5112 	{
5113 		float u = 0;
5114 		float v = 0;
5115 	}
5116 
5117 	public alias FLOAT2 = .tagFLOAT2;
5118 
5119 	/**
5120 	 * float型のカラー値
5121 	 */
5122 	package struct tagCOLOR_F
5123 	{
5124 		float r = 0;
5125 		float g = 0;
5126 		float b = 0;
5127 		float a = 0;
5128 	}
5129 
5130 	public alias COLOR_F = .tagCOLOR_F;
5131 	public alias LPCOLOR_F = .tagCOLOR_F*;
5132 
5133 	/**
5134 	 * ubyte型のカラー値
5135 	 */
5136 	package struct tagCOLOR_U8
5137 	{
5138 		dxlib_d.DxDataType.BYTE b;
5139 		dxlib_d.DxDataType.BYTE g;
5140 		dxlib_d.DxDataType.BYTE r;
5141 		dxlib_d.DxDataType.BYTE a;
5142 	}
5143 
5144 	public alias COLOR_U8 = .tagCOLOR_U8;
5145 
5146 	/**
5147 	 * FLOAT4個データ型
5148 	 */
5149 	package struct tagFLOAT4
5150 	{
5151 		float x = 0;
5152 		float y = 0;
5153 		float z = 0;
5154 		float w = 0;
5155 	}
5156 
5157 	public alias FLOAT4 = .tagFLOAT4;
5158 	public alias LPFLOAT4 = .tagFLOAT4*;
5159 
5160 	/**
5161 	 * DOUBLE4個データ型
5162 	 */
5163 	package struct tagDOUBLE4
5164 	{
5165 		double x = 0;
5166 		double y = 0;
5167 		double z = 0;
5168 		double w = 0;
5169 	}
5170 
5171 	public alias DOUBLE4 = .tagDOUBLE4;
5172 	public alias LPDOUBLE4 = .tagDOUBLE4*;
5173 
5174 	/**
5175 	 * INT4個データ型
5176 	 */
5177 	package struct tagINT4
5178 	{
5179 		int x;
5180 		int y;
5181 		int z;
5182 		int w;
5183 	}
5184 
5185 	public alias INT4 = .tagINT4;
5186 
5187 	version (DX_NOTUSE_DRAWFUNCTION) {
5188 	} else {
5189 		/**
5190 		 * 2D描画に使用する頂点データ型(DrawPrimitive2D用)
5191 		 */
5192 		package struct tagVERTEX2D
5193 		{
5194 			.VECTOR pos;
5195 			float rhw = 0;
5196 			.COLOR_U8 dif;
5197 			float u = 0;
5198 			float v = 0;
5199 		}
5200 
5201 		public alias VERTEX2D = .tagVERTEX2D;
5202 		public alias LPVERTEX2D = .tagVERTEX2D*;
5203 
5204 		/**
5205 		 * 2D描画に使用する頂点データ型(DrawPrimitive2DToShader用)
5206 		 */
5207 		package struct tagVERTEX2DSHADER
5208 		{
5209 			.VECTOR pos;
5210 			float rhw = 0;
5211 			.COLOR_U8 dif;
5212 			.COLOR_U8 spc;
5213 			float u = 0;
5214 			float v = 0;
5215 			float su = 0;
5216 			float sv = 0;
5217 		}
5218 
5219 		public alias VERTEX2DSHADER = .tagVERTEX2DSHADER;
5220 		public alias LPVERTEX2DSHADER = .tagVERTEX2DSHADER*;
5221 
5222 		/**
5223 		 * 2D描画に使用する頂点データ型(公開用)
5224 		 */
5225 		package struct tagVERTEX
5226 		{
5227 			float x = 0;
5228 			float y = 0;
5229 			float u = 0;
5230 			float v = 0;
5231 			ubyte b;
5232 			ubyte g;
5233 			ubyte r;
5234 			ubyte a;
5235 		}
5236 
5237 		public alias VERTEX = .tagVERTEX;
5238 
5239 		/**
5240 		 * 3D描画に使用する頂点データ型(旧バージョンのもの)
5241 		 */
5242 		package struct tagVERTEX_3D
5243 		{
5244 			.VECTOR pos;
5245 			ubyte b;
5246 			ubyte g;
5247 			ubyte r;
5248 			ubyte a;
5249 			float u = 0;
5250 			float v = 0;
5251 		}
5252 
5253 		public alias VERTEX_3D = .tagVERTEX_3D;
5254 		public alias LPVERTEX_3D = .tagVERTEX_3D*;
5255 
5256 		/**
5257 		 * 3D描画に使用する頂点データ型
5258 		 */
5259 		package struct tagVERTEX3D
5260 		{
5261 			/**
5262 			 * 座標
5263 			 */
5264 			.VECTOR pos;
5265 
5266 			/**
5267 			 * 法線
5268 			 */
5269 			.VECTOR norm;
5270 
5271 			/**
5272 			 * ディフューズカラー
5273 			 */
5274 			.COLOR_U8 dif;
5275 
5276 			/**
5277 			 * スペキュラカラー
5278 			 */
5279 			.COLOR_U8 spc;
5280 
5281 			/**
5282 			 * テクスチャ座標
5283 			 */
5284 			float u = 0;
5285 
5286 			/**
5287 			 * テクスチャ座標
5288 			 */
5289 			float v = 0;
5290 
5291 			/**
5292 			 * 補助テクスチャ座標
5293 			 */
5294 			float su = 0;
5295 
5296 			/**
5297 			 * 補助テクスチャ座標
5298 			 */
5299 			float sv = 0;
5300 		}
5301 
5302 		public alias VERTEX3D = .tagVERTEX3D;
5303 		public alias LPVERTEX3D = .tagVERTEX3D*;
5304 
5305 		/**
5306 		 * 3D描画に使用する頂点データ型(DrawPrimitive3DToShader用)
5307 		 * 注意…メンバ変数に追加があるかもしれませんので、宣言時の初期化(VERTEX3DSHADER Vertex = { 0.0f, 0.0f, ...というようなもの)はしない方が良いです
5308 		 */
5309 		package struct tagVERTEX3DSHADER
5310 		{
5311 			/**
5312 			 * 座標
5313 			 */
5314 			.VECTOR pos;
5315 
5316 			/**
5317 			 * 補助座標
5318 			 */
5319 			.FLOAT4 spos;
5320 
5321 			/**
5322 			 * 法線
5323 			 */
5324 			.VECTOR norm;
5325 
5326 			/**
5327 			 * 接線
5328 			 */
5329 			.VECTOR tan;
5330 
5331 			/**
5332 			 * 従法線
5333 			 */
5334 			.VECTOR binorm;
5335 
5336 			/**
5337 			 * ディフューズカラー
5338 			 */
5339 			.COLOR_U8 dif;
5340 
5341 			/**
5342 			 * スペキュラカラー
5343 			 */
5344 			.COLOR_U8 spc;
5345 
5346 			/**
5347 			 * テクスチャ座標
5348 			 */
5349 			float u = 0;
5350 
5351 			/**
5352 			 * テクスチャ座標
5353 			 */
5354 			float v = 0;
5355 
5356 			/**
5357 			 * 補助テクスチャ座標
5358 			 */
5359 			float su = 0;
5360 
5361 			/**
5362 			 * 補助テクスチャ座標
5363 			 */
5364 			float sv = 0;
5365 		}
5366 
5367 		public alias VERTEX3DSHADER = .tagVERTEX3DSHADER;
5368 		public alias LPVERTEX3DSHADER = .tagVERTEX3DSHADER*;
5369 
5370 		/**
5371 		 * ライトパラメータ
5372 		 */
5373 		package struct tagLIGHTPARAM
5374 		{
5375 			/**
5376 			 * ライトのタイプ(DX_LIGHTTYPE_D3DLIGHT_POINT等)
5377 			 */
5378 			int LightType;
5379 
5380 			/**
5381 			 * ディフューズカラー
5382 			 */
5383 			.COLOR_F Diffuse;
5384 
5385 			/**
5386 			 * スペキュラカラー
5387 			 */
5388 			.COLOR_F Specular;
5389 
5390 			/**
5391 			 * アンビエント色
5392 			 */
5393 			.COLOR_F Ambient;
5394 
5395 			/**
5396 			 * 位置
5397 			 */
5398 			.VECTOR Position;
5399 
5400 			/**
5401 			 * 方向
5402 			 */
5403 			.VECTOR Direction;
5404 
5405 			/**
5406 			 * 有効距離
5407 			 */
5408 			float Range = 0;
5409 
5410 			/**
5411 			 * フォールオフ 1.0fにしておくのが好ましい
5412 			 */
5413 			float Falloff = 0;
5414 
5415 			/**
5416 			 * 距離による減衰係数0
5417 			 */
5418 			float Attenuation0 = 0;
5419 
5420 			/**
5421 			 * 距離による減衰係数1
5422 			 */
5423 			float Attenuation1 = 0;
5424 
5425 			/**
5426 			 * 距離による減衰係数2
5427 			 */
5428 			float Attenuation2 = 0;
5429 
5430 			/**
5431 			 * スポットライトの内部コーンの照明角度(ラジアン)
5432 			 */
5433 			float Theta = 0;
5434 
5435 			/**
5436 			 * スポットライトの外部コーンの照明角度
5437 			 */
5438 			float Phi = 0;
5439 		}
5440 
5441 		alias LIGHTPARAM = .tagLIGHTPARAM;
5442 
5443 		/**
5444 		 * マテリアルパラメータ
5445 		 */
5446 		package struct tagMATERIALPARAM
5447 		{
5448 			/**
5449 			 * ディフューズカラー
5450 			 */
5451 			.COLOR_F Diffuse;
5452 
5453 			/**
5454 			 * アンビエントカラー
5455 			 */
5456 			.COLOR_F Ambient;
5457 
5458 			/**
5459 			 * スペキュラカラー
5460 			 */
5461 			.COLOR_F Specular;
5462 
5463 			/**
5464 			 * エミッシブカラー
5465 			 */
5466 			.COLOR_F Emissive;
5467 
5468 			/**
5469 			 * スペキュラハイライトの鮮明度
5470 			 */
5471 			float Power = 0;
5472 		}
5473 
5474 		alias MATERIALPARAM = .tagMATERIALPARAM;
5475 	}
5476 
5477 	/**
5478 	 * ラインヒットチェック結果格納用構造体
5479 	 */
5480 	package struct tagHITRESULT_LINE
5481 	{
5482 		/**
5483 		 * 当たったかどうか(1:当たった  0:当たらなかった)
5484 		 */
5485 		int HitFlag;
5486 
5487 		/**
5488 		 * 当たった座標
5489 		 */
5490 		.VECTOR Position;
5491 	}
5492 
5493 	public alias HITRESULT_LINE = .tagHITRESULT_LINE;
5494 
5495 	/**
5496 	 * ラインヒットチェック結果格納用構造体
5497 	 */
5498 	package struct tagHITRESULT_LINE_D
5499 	{
5500 		/**
5501 		 * 当たったかどうか(1:当たった  0:当たらなかった)
5502 		 */
5503 		int HitFlag;
5504 
5505 		/**
5506 		 * 当たった座標
5507 		 */
5508 		.VECTOR_D Position;
5509 	}
5510 
5511 	public alias HITRESULT_LINE_D = .tagHITRESULT_LINE_D;
5512 
5513 	/**
5514 	 * 関数Segment_Segment_Analyseの結果を受け取る為の構造体
5515 	 */
5516 	package struct tagSEGMENT_SEGMENT_RESULT
5517 	{
5518 		/**
5519 		 * 線分Aと線分Bが最も接近する座標間の距離の二乗
5520 		 */
5521 		float SegA_SegB_MinDist_Square = 0;
5522 
5523 		/**
5524 		 * 線分Aと線分Bに最も接近する座標の線分Aのt(0.0f~1.0f、最近点座標 = ((SegAPos2 - SegAPos1) * t) + SegAPos1)
5525 		 */
5526 		float SegA_MinDist_Pos1_Pos2_t = 0;
5527 
5528 		/**
5529 		 * 線分Bが線分Aに最も接近する座標の線分Bのt(0.0f~1.0f、最近点座標 = ((SegBPos2 - SegBPos1) * t) + SegBPos1)
5530 		 */
5531 		float SegB_MinDist_Pos1_Pos2_t = 0;
5532 
5533 		/**
5534 		 * 線分Aが線分Bに最も接近する線分A上の座標
5535 		 */
5536 		.VECTOR SegA_MinDist_Pos;
5537 
5538 		/**
5539 		 * 線分Bが線分Aに最も接近する線分B上の座標
5540 		 */
5541 		.VECTOR SegB_MinDist_Pos;
5542 	}
5543 
5544 	public alias SEGMENT_SEGMENT_RESULT = .tagSEGMENT_SEGMENT_RESULT;
5545 
5546 	/**
5547 	 * 関数Segment_Segment_Analyseの結果を受け取る為の構造体
5548 	 */
5549 	package struct tagSEGMENT_SEGMENT_RESULT_D
5550 	{
5551 		/**
5552 		 * 線分Aと線分Bが最も接近する座標間の距離の二乗
5553 		 */
5554 		double SegA_SegB_MinDist_Square = 0;
5555 
5556 		/**
5557 		 * 線分Aと線分Bに最も接近する座標の線分Aのt(0.0~1.0、最近点座標 = ((SegAPos2 - SegAPos1) * t) + SegAPos1)
5558 		 */
5559 		double SegA_MinDist_Pos1_Pos2_t = 0;
5560 
5561 		/**
5562 		 * 線分Bが線分Aに最も接近する座標の線分Bのt(0.0~1.0、最近点座標 = ((SegBPos2 - SegBPos1) * t) + SegBPos1)
5563 		 */
5564 		double SegB_MinDist_Pos1_Pos2_t = 0;
5565 
5566 		/**
5567 		 * 線分Aが線分Bに最も接近する線分A上の座標
5568 		 */
5569 		.VECTOR_D SegA_MinDist_Pos;
5570 
5571 		/**
5572 		 * 線分Bが線分Aに最も接近する線分B上の座標
5573 		 */
5574 		.VECTOR_D SegB_MinDist_Pos;
5575 	}
5576 
5577 	public alias SEGMENT_SEGMENT_RESULT_D = .tagSEGMENT_SEGMENT_RESULT_D;
5578 
5579 	/**
5580 	 * 関数Segment_Point_Analyseの結果を受け取る為の構造体
5581 	 */
5582 	package struct tagSEGMENT_POINT_RESULT
5583 	{
5584 		/**
5585 		 * 線分と点が最も接近する座標間の距離の二乗
5586 		 */
5587 		float Seg_Point_MinDist_Square = 0;
5588 
5589 		/**
5590 		 * 線分が点に最も接近する座標の線分のt(0.0f~1.0f、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1)
5591 		 */
5592 		float Seg_MinDist_Pos1_Pos2_t = 0;
5593 
5594 		/**
5595 		 * 線分が点に最も接近する線分上の座標
5596 		 */
5597 		.VECTOR Seg_MinDist_Pos;
5598 	}
5599 
5600 	public alias SEGMENT_POINT_RESULT = .tagSEGMENT_POINT_RESULT;
5601 
5602 	/**
5603 	 * 関数Segment_Point_Analyseの結果を受け取る為の構造体
5604 	 */
5605 	package struct tagSEGMENT_POINT_RESULT_D
5606 	{
5607 		/**
5608 		 * 線分と点が最も接近する座標間の距離の二乗
5609 		 */
5610 		double Seg_Point_MinDist_Square = 0;
5611 
5612 		/**
5613 		 * 線分が点に最も接近する座標の線分のt(0.0~1.0、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1)
5614 		 */
5615 		double Seg_MinDist_Pos1_Pos2_t = 0;
5616 
5617 		/**
5618 		 * 線分が点に最も接近する線分上の座標
5619 		 */
5620 		.VECTOR_D Seg_MinDist_Pos;
5621 	}
5622 
5623 	public alias SEGMENT_POINT_RESULT_D = .tagSEGMENT_POINT_RESULT_D;
5624 
5625 	/**
5626 	 * 関数Segment_Triangle_Analyseの結果を受け取る為の構造体
5627 	 */
5628 	package struct tagSEGMENT_TRIANGLE_RESULT
5629 	{
5630 		/**
5631 		 * 線分と三角形が最も接近する座標間の距離の二乗
5632 		 */
5633 		float Seg_Tri_MinDist_Square = 0;
5634 
5635 		/**
5636 		 * 線分が三角形に最も接近する座標の線分のt(0.0f~1.0f、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1)
5637 		 */
5638 		float Seg_MinDist_Pos1_Pos2_t = 0;
5639 
5640 		/**
5641 		 * 線分が三角形に最も接近する線分上の座標
5642 		 */
5643 		.VECTOR Seg_MinDist_Pos;
5644 
5645 		/**
5646 		 * 三角形が線分に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w))
5647 		 */
5648 		float Tri_MinDist_Pos1_w = 0;
5649 
5650 		/**
5651 		 * 三角形が線分に最も接近する座標の三角形座標2の重み
5652 		 */
5653 		float Tri_MinDist_Pos2_w = 0;
5654 
5655 		/**
5656 		 * 三角形が線分に最も接近する座標の三角形座標3の重み
5657 		 */
5658 		float Tri_MinDist_Pos3_w = 0;
5659 
5660 		/**
5661 		 * 三角形が線分に最も接近する三角形上の座標
5662 		 */
5663 		.VECTOR Tri_MinDist_Pos;
5664 	}
5665 
5666 	public alias SEGMENT_TRIANGLE_RESULT = .tagSEGMENT_TRIANGLE_RESULT;
5667 
5668 	/**
5669 	 * 関数Segment_Triangle_Analyseの結果を受け取る為の構造体
5670 	 */
5671 	package struct tagSEGMENT_TRIANGLE_RESULT_D
5672 	{
5673 		/**
5674 		 * 線分と三角形が最も接近する座標間の距離の二乗
5675 		 */
5676 		double Seg_Tri_MinDist_Square = 0;
5677 
5678 		/**
5679 		 * 線分が三角形に最も接近する座標の線分のt(0.0~1.0、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1)
5680 		 */
5681 		double Seg_MinDist_Pos1_Pos2_t = 0;
5682 
5683 		/**
5684 		 * 線分が三角形に最も接近する線分上の座標
5685 		 */
5686 		.VECTOR_D Seg_MinDist_Pos;
5687 
5688 		/**
5689 		 * 三角形が線分に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w))
5690 		 */
5691 		double Tri_MinDist_Pos1_w = 0;
5692 
5693 		/**
5694 		 * 三角形が線分に最も接近する座標の三角形座標2の重み
5695 		 */
5696 		double Tri_MinDist_Pos2_w = 0;
5697 
5698 		/**
5699 		 * 三角形が線分に最も接近する座標の三角形座標3の重み
5700 		 */
5701 		double Tri_MinDist_Pos3_w = 0;
5702 
5703 		/**
5704 		 * 三角形が線分に最も接近する三角形上の座標
5705 		 */
5706 		.VECTOR_D Tri_MinDist_Pos;
5707 	}
5708 
5709 	public alias SEGMENT_TRIANGLE_RESULT_D = .tagSEGMENT_TRIANGLE_RESULT_D;
5710 
5711 	/**
5712 	 * 関数Triangle_Point_Analyseの結果を受け取る為の構造体
5713 	 */
5714 	package struct tagTRIANGLE_POINT_RESULT
5715 	{
5716 		/**
5717 		 * 三角形と点が最も接近する座標間の距離の二乗
5718 		 */
5719 		float Tri_Pnt_MinDist_Square = 0;
5720 
5721 		/**
5722 		 * 三角形が点に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w))
5723 		 */
5724 		float Tri_MinDist_Pos1_w = 0;
5725 
5726 		/**
5727 		 * 三角形が点に最も接近する座標の三角形座標2の重み
5728 		 */
5729 		float Tri_MinDist_Pos2_w = 0;
5730 
5731 		/**
5732 		 * 三角形が点に最も接近する座標の三角形座標3の重み
5733 		 */
5734 		float Tri_MinDist_Pos3_w = 0;
5735 
5736 		/**
5737 		 * 三角形が点に最も接近する三角形上の座標
5738 		 */
5739 		.VECTOR Tri_MinDist_Pos;
5740 	}
5741 
5742 	public alias TRIANGLE_POINT_RESULT = .tagTRIANGLE_POINT_RESULT;
5743 
5744 	/**
5745 	 * 関数Triangle_Point_Analyseの結果を受け取る為の構造体
5746 	 */
5747 	package struct tagTRIANGLE_POINT_RESULT_D
5748 	{
5749 		/**
5750 		 * 三角形と点が最も接近する座標間の距離の二乗
5751 		 */
5752 		double Tri_Pnt_MinDist_Square = 0;
5753 
5754 		/**
5755 		 * 三角形が点に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w))
5756 		 */
5757 		double Tri_MinDist_Pos1_w = 0;
5758 
5759 		/**
5760 		 * 三角形が点に最も接近する座標の三角形座標2の重み
5761 		 */
5762 		double Tri_MinDist_Pos2_w = 0;
5763 
5764 		/**
5765 		 * 三角形が点に最も接近する座標の三角形座標3の重み
5766 		 */
5767 		double Tri_MinDist_Pos3_w = 0;
5768 
5769 		/**
5770 		 * 三角形が点に最も接近する三角形上の座標
5771 		 */
5772 		.VECTOR_D Tri_MinDist_Pos;
5773 	}
5774 
5775 	public alias TRIANGLE_POINT_RESULT_D = .tagTRIANGLE_POINT_RESULT_D;
5776 
5777 	/**
5778 	 * 関数Plane_Point_Analyseの結果を受け取る為の構造体
5779 	 */
5780 	package struct tagPLANE_POINT_RESULT
5781 	{
5782 		/**
5783 		 * 点が平面の法線の側にあるかどうか(1:法線の側にある  0:法線と反対側にある)
5784 		 */
5785 		int Pnt_Plane_Normal_Side;
5786 
5787 		/**
5788 		 * 平面と点の距離
5789 		 */
5790 		float Plane_Pnt_MinDist_Square = 0;
5791 
5792 		/**
5793 		 * 平面上の点との最近点座標
5794 		 */
5795 		.VECTOR Plane_MinDist_Pos;
5796 	}
5797 
5798 	public alias PLANE_POINT_RESULT = .tagPLANE_POINT_RESULT;
5799 
5800 	/**
5801 	 * 関数Plane_Point_Analyseの結果を受け取る為の構造体
5802 	 */
5803 	package struct tagPLANE_POINT_RESULT_D
5804 	{
5805 		/**
5806 		 * 点が平面の法線の側にあるかどうか(1:法線の側にある  0:法線と反対側にある)
5807 		 */
5808 		int Pnt_Plane_Normal_Side;
5809 
5810 		/**
5811 		 * 平面と点の距離
5812 		 */
5813 		double Plane_Pnt_MinDist_Square = 0;
5814 
5815 		/**
5816 		 * 平面上の点との最近点座標
5817 		 */
5818 		.VECTOR_D Plane_MinDist_Pos;
5819 	}
5820 
5821 	public alias PLANE_POINT_RESULT_D = .tagPLANE_POINT_RESULT_D;
5822 
5823 	version (DX_NOTUSE_DRAWFUNCTION) {
5824 	} else {
5825 		/**
5826 		 * コリジョン結果代入用ポリゴン
5827 		 */
5828 		package struct tagMV1_COLL_RESULT_POLY
5829 		{
5830 			/**
5831 			 * (MV1CollCheck_Lineでのみ有効)ヒットフラグ(1:ヒットした  0:ヒットしなかった)
5832 			 */
5833 			int HitFlag;
5834 
5835 			/**
5836 			 * (MV1CollCheck_Lineでのみ有効)ヒット座標
5837 			 */
5838 			.VECTOR HitPosition;
5839 
5840 			/**
5841 			 * 当たったポリゴンが含まれるフレームの番号
5842 			 */
5843 			int FrameIndex;
5844 
5845 			/**
5846 			 * 当たったポリゴンが含まれるメッシュの番号(メッシュ単位で判定した場合のみ有効)
5847 			 */
5848 			int MeshIndex;
5849 
5850 			/**
5851 			 * 当たったポリゴンの番号
5852 			 */
5853 			int PolygonIndex;
5854 
5855 			/**
5856 			 * 当たったポリゴンが使用しているマテリアルの番号
5857 			 */
5858 			int MaterialIndex;
5859 
5860 			/**
5861 			 * 当たったポリゴンを形成する三点の座標
5862 			 */
5863 			.VECTOR[3] Position;
5864 
5865 			/**
5866 			 * 当たったポリゴンの法線
5867 			 */
5868 			.VECTOR Normal;
5869 
5870 			/**
5871 			 * 当たった座標は、当たったポリゴンの三点それぞれどの割合で影響しているか、の値(当たった座標 = (Position[0] * PositionWeight[0]) + (Position[1] * PositionWeight[1]) + (Position[2] * PositionWeight[2]))
5872 			 */
5873 			float[3] PositionWeight = 0;
5874 
5875 			/**
5876 			 * 当たったポリゴンの座標がそれぞれ最も影響を受けているフレームの番号
5877 			 */
5878 			int[3] PosMaxWeightFrameIndex;
5879 		}
5880 
5881 		public alias MV1_COLL_RESULT_POLY = .tagMV1_COLL_RESULT_POLY;
5882 
5883 		/**
5884 		 * コリジョン結果代入用ポリゴン配列
5885 		 */
5886 		package struct tagMV1_COLL_RESULT_POLY_DIM
5887 		{
5888 			/**
5889 			 * ヒットしたポリゴンの数
5890 			 */
5891 			int HitNum;
5892 
5893 			/**
5894 			 * ヒットしたポリゴンの配列(HitNum個分存在する)
5895 			 */
5896 			.MV1_COLL_RESULT_POLY* Dim;
5897 		}
5898 
5899 		public alias MV1_COLL_RESULT_POLY_DIM = .tagMV1_COLL_RESULT_POLY_DIM;
5900 
5901 		/**
5902 		 * 参照用頂点構造体
5903 		 */
5904 		package struct tagMV1_REF_VERTEX
5905 		{
5906 			/**
5907 			 * 位置
5908 			 */
5909 			.VECTOR Position;
5910 
5911 			/**
5912 			 * 法線
5913 			 */
5914 			.VECTOR Normal;
5915 
5916 			/**
5917 			 * テクスチャ座標
5918 			 */
5919 			.FLOAT2[2] TexCoord;
5920 
5921 			/**
5922 			 * ディフューズカラー
5923 			 */
5924 			.COLOR_U8 DiffuseColor;
5925 
5926 			/**
5927 			 * スペキュラカラー
5928 			 */
5929 			.COLOR_U8 SpecularColor;
5930 
5931 			/**
5932 			 * 最も大きな影響を与えているフレーム(スキニングメッシュ用)
5933 			 */
5934 			int MaxWeightFrameIndex;
5935 		}
5936 
5937 		public alias MV1_REF_VERTEX = .tagMV1_REF_VERTEX;
5938 
5939 		/**
5940 		 * 参照用ポリゴン構造体
5941 		 */
5942 		package struct tagMV1_REF_POLYGON
5943 		{
5944 			/**
5945 			 * このポリゴンが属しているフレーム
5946 			 */
5947 			ushort FrameIndex;
5948 
5949 			/**
5950 			 * このポリゴンが属しているメッシュ
5951 			 */
5952 			ushort MeshIndex;
5953 
5954 			/**
5955 			 * 使用しているマテリアル
5956 			 */
5957 			ushort MaterialIndex;
5958 
5959 			/**
5960 			 * VIndexが指すインデックスの参照先(1:フレーム  0:モデル全体)
5961 			 */
5962 			ushort VIndexTarget;
5963 
5964 			/**
5965 			 * 3角形ポリゴンを成す参照頂点のインデックス
5966 			 */
5967 			int[3] VIndex;
5968 
5969 			/**
5970 			 * ポリゴンを成す頂点座標の最小値
5971 			 */
5972 			.VECTOR MinPosition;
5973 
5974 			/**
5975 			 * ポリゴンを成す頂点座標の最大値
5976 			 */
5977 			.VECTOR MaxPosition;
5978 		}
5979 
5980 		public alias MV1_REF_POLYGON = .tagMV1_REF_POLYGON;
5981 
5982 		/**
5983 		 * 参照用ポリゴンデータ構造体
5984 		 */
5985 		package struct tagMV1_REF_POLYGONLIST
5986 		{
5987 			/**
5988 			 * 参照用ポリゴンの数
5989 			 */
5990 			int PolygonNum;
5991 
5992 			/**
5993 			 * 頂点の数
5994 			 */
5995 			int VertexNum;
5996 
5997 			/**
5998 			 * 頂点座標の最小値
5999 			 */
6000 			.VECTOR MinPosition;
6001 
6002 			/**
6003 			 * 頂点座標の最大値
6004 			 */
6005 			.VECTOR MaxPosition;
6006 
6007 			/**
6008 			 * 参照用ポリゴン配列
6009 			 */
6010 			.MV1_REF_POLYGON* Polygons;
6011 
6012 			/**
6013 			 * 参照用頂点配列
6014 			 */
6015 			.MV1_REF_VERTEX* Vertexs;
6016 		}
6017 
6018 		public alias MV1_REF_POLYGONLIST = .tagMV1_REF_POLYGONLIST;
6019 	}
6020 
6021 	/**
6022 	 * 3Dサウンドリバーブエフェクトパラメータ構造体(注釈はMSDNのXAUDIO2FX_REVERB_PARAMETERS構造体の解説をほぼ引用しています)
6023 	 */
6024 	package struct tagSOUND3D_REVERB_PARAM
6025 	{
6026 		/**
6027 		 * リバーブとなる出力の割合(指定可能範囲0.0f~100.0f)
6028 		 */
6029 		float WetDryMix = 0;
6030 
6031 		/**
6032 		 * ダイレクト パスに対する初期反射の遅延時間、単位はミリ秒(指定可能範囲0~300)
6033 		 */
6034 		uint ReflectionsDelay;
6035 
6036 		/**
6037 		 * 初期反射に対するリバーブの遅延時間、単位はミリ秒(指定可能範囲0~85)
6038 		 */
6039 		dxlib_d.DxDataType.BYTE ReverbDelay;
6040 
6041 		/**
6042 		 * 左後方出力および右後方出力の遅延時間、単位はミリ秒(指定可能範囲0~5)
6043 		 */
6044 		dxlib_d.DxDataType.BYTE RearDelay;
6045 
6046 		/**
6047 		 * シミュレーション空間における視聴者に対する左入力の位置(指定可能範囲0~30)
6048 		 * PositionLeftを最小値に設定した場合、左入力は視聴者の近くに配置されます。
6049 		 * この位置では、サウンド フィールドにおいて初期反射が優勢になり、残響減衰は弱まって、振幅が小さくなります。
6050 		 * PositionLeftを最大値に設定した場合、左入力はシミュレーション室内で視聴者から最大限遠い位置に配置されます。
6051 		 * PositionLeftは残響減衰時間(部屋の残響効果)に影響せず、視聴者に対する音源の見かけの位置のみに影響します。
6052 		 */
6053 		dxlib_d.DxDataType.BYTE PositionLeft;
6054 
6055 		/**
6056 		 * PositionLeftと同効果の右入力値(指定可能範囲0~30)、右入力にのみ影響を与える
6057 		 */
6058 		dxlib_d.DxDataType.BYTE PositionRight;
6059 
6060 		/**
6061 		 * 音源から視聴者までの距離によるインプレッションを増減させる値(指定可能範囲0~30)
6062 		 */
6063 		dxlib_d.DxDataType.BYTE PositionMatrixLeft;
6064 
6065 		/**
6066 		 * 音源から視聴者までの距離によるインプレッションを増減させま値(指定可能範囲0~30)
6067 		 */
6068 		dxlib_d.DxDataType.BYTE PositionMatrixRight;
6069 
6070 		/**
6071 		 * 個々の壁の反射特性値(指定可能範囲0~15)、(堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。)
6072 		 */
6073 		dxlib_d.DxDataType.BYTE EarlyDiffusion;
6074 
6075 		/**
6076 		 * 個々の壁のリバーブ特性値(指定可能範囲0~15)、(堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。)
6077 		 */
6078 		dxlib_d.DxDataType.BYTE LateDiffusion;
6079 
6080 		/**
6081 		 * 1kHzにおける減衰時間を基準にして低周波数の減衰時間調整値(指定可能範囲0~12)
6082 		 *
6083 		 * 値とゲイン(dB)の関係
6084 		 * 値          0  1  2  3  4  5  6  7  8  9 10 11 12
6085 		 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1  0 +1 +2 +3 +4
6086 		 * LowEQGainの値が8の場合、低周波数の減衰時間と1kHzにおける減衰時間が等しくなることに注意してください
6087 		 */
6088 		dxlib_d.DxDataType.BYTE LowEQGain;
6089 
6090 		/**
6091 		 * LowEQGainパラメーターにより制御されるローパス フィルターの折点周波数の設定値(指定可能範囲0~9)
6092 		 *
6093 		 * 値と周波数(Hz)の関係
6094 		 * 値          0   1   2   3   4   5   6   7   8   9
6095 		 * 周波数(Hz) 50 100 150 200 250 300 350 400 450 500
6096 		 */
6097 		dxlib_d.DxDataType.BYTE LowEQCutoff;
6098 
6099 		/**
6100 		 * 1kHzにおける減衰時間を基準にして高周波数の減衰時間調整値(指定可能範囲0~8)
6101 		 *
6102 		 * 値とゲイン(dB)の関係
6103 		 * 値          0  1  2  3  4  5  6  7 8
6104 		 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0
6105 		 * 0に設定すると、高周波数の音が1kHzの場合と同じ割合で減衰します。最大値に設定すると、高周波数の音が1kHzの場合よりもはるかに高い割合で減衰します。
6106 		 */
6107 		dxlib_d.DxDataType.BYTE HighEQGain;
6108 
6109 		/**
6110 		 * HighEQGainパラメーターにより制御されるハイパス フィルターの折点周波数設定値(指定可能範囲0~14)
6111 		 *
6112 		 * 値と周波数(kHz)の関係
6113 		 * 値          0    1    2     3    4     5    6     7    8     9   10    11   12    13   14
6114 		 * 周波数(kHz) 1  1.5    2   2.5    3   3.5    4   4.5    5   5.5    6   6.5    7   7.5    8
6115 		 */
6116 		dxlib_d.DxDataType.BYTE HighEQCutoff;
6117 
6118 		/**
6119 		 * 室内エフェクトのローパス フィルターの折点周波数、単位はHz(指定可能範囲20.0f~20000.0f)
6120 		 */
6121 		float RoomFilterFreq = 0;
6122 
6123 		/**
6124 		 * 初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位はdB(指定可能範囲-100.0f~0.0f)
6125 		 */
6126 		float RoomFilterMain = 0;
6127 
6128 		/**
6129 		 * 折点周波数(RoomFilterFreq)での初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位はdB(指定可能範囲-100.0f~0.0f)
6130 		 */
6131 		float RoomFilterHF = 0;
6132 
6133 		/**
6134 		 * 初期反射の強度/レベルを調整値、単位はdB(指定可能範囲-100.0f~20.0f)
6135 		 */
6136 		float ReflectionsGain = 0;
6137 
6138 		/**
6139 		 * リバーブの強度/レベルを調整値、単位はdB(指定可能範囲-100.0f~20.0f)
6140 		 */
6141 		float ReverbGain = 0;
6142 
6143 		/**
6144 		 * 1kHzにおける残響減衰時間、単位は秒(指定可能範囲0.1f~上限値特になし)、これは、フル スケールの入力信号が60dB減衰するまでの時間です。
6145 		 */
6146 		float DecayTime = 0;
6147 
6148 		/**
6149 		 * 後期フィールド残響のモード密度を制御値、単位はパーセント(指定可能範囲0.0f~100.0f)
6150 		 * 無色(colorless)の空間では、Densityを最大値(100.0f)に設定する必要があります。
6151 		 * Densityを小さくすると、サウンドはくぐもった音(くし形フィルターが適用された音)になります。
6152 		 * これはサイロをシミュレーションするときに有効なエフェクトです。
6153 		 */
6154 		float Density = 0;
6155 
6156 		/**
6157 		 * 音響空間の見かけ上のサイズ、単位はフィート(指定可能範囲1.0f(30.48cm)~100.0f(30.48m))
6158 		 */
6159 		float RoomSize = 0;
6160 	}
6161 
6162 	public alias SOUND3D_REVERB_PARAM = .tagSOUND3D_REVERB_PARAM;
6163 
6164 	/**
6165 	 * ストリームデータ制御用関数ポインタ構造体タイプ2
6166 	 */
6167 	package struct tagSTREAMDATASHREDTYPE2
6168 	{
6169 		dxlib_d.DxDataType.DWORD_PTR function(const (dxlib_d.DxDataType.TCHAR)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open;
6170 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) Close;
6171 		dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR Handle) Tell;
6172 		int function(dxlib_d.DxDataType.DWORD_PTR Handle, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek;
6173 		size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR Handle) Read;
6174 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) Eof;
6175 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) IdleCheck;
6176 		int function(const (dxlib_d.DxDataType.TCHAR)* Path) ChDir;
6177 		int function(dxlib_d.DxDataType.TCHAR* Buffer) GetDir;
6178 		int function(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize) GetDirS;
6179 
6180 		/**
6181 		 * Returns: -1:エラー  -1以外:FindHandle
6182 		 */
6183 		dxlib_d.DxDataType.DWORD_PTR function(const (dxlib_d.DxDataType.TCHAR)* FilePath, .FILEINFO* Buffer) FindFirst;
6184 
6185 		/**
6186 		 * Returns: -1:エラー  0:成功
6187 		 */
6188 		int function(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFO* Buffer) FindNext;
6189 
6190 		/**
6191 		 * Returns: -1:エラー  0:成功
6192 		 */
6193 		int function(dxlib_d.DxDataType.DWORD_PTR FindHandle) FindClose;
6194 	}
6195 
6196 	public alias STREAMDATASHREDTYPE2 = .tagSTREAMDATASHREDTYPE2;
6197 
6198 	/**
6199 	 * ストリームデータ制御用関数ポインタ構造体タイプ2のwchar_t使用版
6200 	 */
6201 	package struct tagSTREAMDATASHREDTYPE2W
6202 	{
6203 		dxlib_d.DxDataType.DWORD_PTR function(const (.wchar_t)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open;
6204 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) Close;
6205 		dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR Handle) Tell;
6206 		int function(dxlib_d.DxDataType.DWORD_PTR Handle, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek;
6207 		size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR Handle) Read;
6208 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) Eof;
6209 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) IdleCheck;
6210 
6211 		/**
6212 		 * Returns: -1:エラー  0:DXアーカイブファイル内のファイルではない  1:DXアーカイブファイル内のファイル
6213 		 */
6214 		int function(dxlib_d.DxDataType.DWORD_PTR Handle) IsDXA;
6215 
6216 		int function(const (.wchar_t)* Path) ChDir;
6217 		int function(.wchar_t* Buffer) GetDir;
6218 		int function(.wchar_t* Buffer, size_t BufferSize) GetDirS;
6219 
6220 		/**
6221 		 * Returns: -1:エラー  -1以外:FindHandle
6222 		 */
6223 		dxlib_d.DxDataType.DWORD_PTR function(const (.wchar_t)* FilePath, .FILEINFOW* Buffer) FindFirst;
6224 
6225 		/**
6226 		 * Returns: -1:エラー  0:成功
6227 		 */
6228 		int function(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFOW* Buffer) FindNext;
6229 
6230 		/**
6231 		 * Returns: -1:エラー  0:成功
6232 		 */
6233 		int function(dxlib_d.DxDataType.DWORD_PTR FindHandle) FindClose;
6234 	}
6235 
6236 	public alias STREAMDATASHREDTYPE2W = .tagSTREAMDATASHREDTYPE2W;
6237 
6238 	/**
6239 	 * ストリームデータ制御用関数ポインタ構造体
6240 	 */
6241 	package struct tagSTREAMDATASHRED
6242 	{
6243 		dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Tell;
6244 		int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek;
6245 		size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Read;
6246 		// size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Write;
6247 		int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Eof;
6248 		int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) IdleCheck;
6249 		int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Close;
6250 	}
6251 
6252 	public alias STREAMDATASHRED = .tagSTREAMDATASHRED;
6253 	public alias LPSTREAMDATASHRED = .tagSTREAMDATASHRED*;
6254 
6255 	/**
6256 	 * ストリームデータ制御用データ構造体
6257 	 */
6258 	package struct tagSTREAMDATA
6259 	{
6260 		.STREAMDATASHRED ReadShred;
6261 		dxlib_d.DxDataType.DWORD_PTR DataPoint;
6262 	}
6263 
6264 	public alias STREAMDATA = .tagSTREAMDATA;
6265 
6266 	/**
6267 	 * パレット情報構造体
6268 	 */
6269 	package struct tagCOLORPALETTEDATA
6270 	{
6271 		ubyte Blue;
6272 		ubyte Green;
6273 		ubyte Red;
6274 		ubyte Alpha;
6275 	}
6276 
6277 	public alias COLORPALETTEDATA = .tagCOLORPALETTEDATA;
6278 
6279 	/**
6280 	 * カラー構造情報構造体
6281 	 */
6282 	package struct tagCOLORDATA
6283 	{
6284 		/**
6285 		 * フォーマット(DX_BASEIMAGE_FORMAT_NORMAL等)
6286 		 */
6287 		ubyte Format;
6288 
6289 		/**
6290 		 * チャンネル数
6291 		 */
6292 		ubyte ChannelNum;
6293 
6294 		/**
6295 		 * 1チャンネル辺りのビット深度
6296 		 */
6297 		ubyte ChannelBitDepth;
6298 
6299 		/**
6300 		 * 浮動小数点型かどうか(dxlib_d.DxDataType.TRUE:浮動小数点型  dxlib_d.DxDataType.FALSE:整数型)
6301 		 */
6302 		ubyte FloatTypeFlag;
6303 
6304 		/**
6305 		 * 1ピクセルあたりのバイト数
6306 		 */
6307 		ubyte PixelByte;
6308 
6309 		// 以下はChannelNum又はChannelBitDepthが0の時のみ有効
6310 
6311 		/**
6312 		 * ビット深度
6313 		 */
6314 		ubyte ColorBitDepth;
6315 
6316 		/**
6317 		 * 使われていないビットのアドレスと幅
6318 		 */
6319 		ubyte NoneLoc;
6320 
6321 		/**
6322 		 * 使われていないビットのアドレスと幅
6323 		 */
6324 		ubyte NoneWidth;
6325 
6326 		/**
6327 		 * ビット幅
6328 		 */
6329 		ubyte RedWidth;
6330 
6331 		/**
6332 		 * ビット幅
6333 		 */
6334 		ubyte GreenWidth;
6335 
6336 		/**
6337 		 * ビット幅
6338 		 */
6339 		ubyte BlueWidth;
6340 
6341 		/**
6342 		 * ビット幅
6343 		 */
6344 		ubyte AlphaWidth;
6345 
6346 		/**
6347 		 * 配置されているビットアドレス
6348 		 */
6349 		ubyte RedLoc;
6350 
6351 		/**
6352 		 * 配置されているビットアドレス
6353 		 */
6354 		ubyte GreenLoc;
6355 
6356 		/**
6357 		 * 配置されているビットアドレス
6358 		 */
6359 		ubyte BlueLoc;
6360 
6361 		/**
6362 		 * 配置されているビットアドレス
6363 		 */
6364 		ubyte AlphaLoc;
6365 
6366 		/**
6367 		 * ビットマスク
6368 		 */
6369 		uint RedMask;
6370 
6371 		/**
6372 		 * ビットマスク
6373 		 */
6374 		uint GreenMask;
6375 
6376 		/**
6377 		 * ビットマスク
6378 		 */
6379 		uint BlueMask;
6380 
6381 		/**
6382 		 * ビットマスク
6383 		 */
6384 		uint AlphaMask;
6385 
6386 		/**
6387 		 * 使われていないビットのマスク
6388 		 */
6389 		uint NoneMask;
6390 
6391 		/**
6392 		 * 使用しているパレット番号の最大値(0の場合は255とみなす)
6393 		 */
6394 		int MaxPaletteNo;
6395 
6396 		// memo: ここより上にメンバー変数を追加したらDxBaseImage.cppのNS_GraphColorMatchBltVer2のアセンブラでのパレットデータ参照のリテラル値を修正する必要あり
6397 
6398 		/**
6399 		 * パレット(ColorBitDepthが8以下の場合のみ有効)
6400 		 */
6401 		.COLORPALETTEDATA[256] Palette;
6402 	}
6403 
6404 	public alias COLORDATA = .tagCOLORDATA;
6405 	public alias LPCOLORDATA = .tagCOLORDATA*;
6406 
6407 	/**
6408 	 * 基本イメージデータ構造体
6409 	 */
6410 	package struct tagBASEIMAGE
6411 	{
6412 		/**
6413 		 * 色情報
6414 		 */
6415 		.COLORDATA ColorData;
6416 
6417 		/**
6418 		 * 幅
6419 		 */
6420 		int Width;
6421 
6422 		/**
6423 		 * 高さ
6424 		 */
6425 		int Height;
6426 
6427 		/**
6428 		 * ピッチ
6429 		 */
6430 		int Pitch;
6431 
6432 		/**
6433 		 * グラフィックイメージ
6434 		 */
6435 		void* GraphData;
6436 
6437 		/**
6438 		 * ミップマップの数
6439 		 */
6440 		int MipMapCount;
6441 
6442 		/**
6443 		 * グラフィックイメージの数
6444 		 */
6445 		int GraphDataCount;
6446 	}
6447 
6448 	public alias BASEIMAGE = .tagBASEIMAGE;
6449 	public alias GRAPHIMAGE = .tagBASEIMAGE;
6450 	public alias LPGRAPHIMAGE = .tagBASEIMAGE*;
6451 
6452 	/**
6453 	 * ラインデータ型
6454 	 */
6455 	package struct tagLINEDATA
6456 	{
6457 		/**
6458 		 * 座標
6459 		 */
6460 		int x1;
6461 
6462 		/**
6463 		 * 座標
6464 		 */
6465 		int y1;
6466 
6467 		/**
6468 		 * 座標
6469 		 */
6470 		int x2;
6471 
6472 		/**
6473 		 * 座標
6474 		 */
6475 		int y2;
6476 
6477 		/**
6478 		 * 色
6479 		 */
6480 		uint color;
6481 
6482 		/**
6483 		 * パラメータ
6484 		 */
6485 		int pal;
6486 	}
6487 
6488 	public alias LINEDATA = .tagLINEDATA;
6489 	public alias LPLINEDATA = .tagLINEDATA*;
6490 
6491 	/**
6492 	 * 座標データ型
6493 	 */
6494 	package struct tagPOINTDATA
6495 	{
6496 		/**
6497 		 * 座標
6498 		 */
6499 		int x;
6500 
6501 		/**
6502 		 * 座標
6503 		 */
6504 		int y;
6505 
6506 		/**
6507 		 * 色
6508 		 */
6509 		uint color;
6510 
6511 		/**
6512 		 * パラメータ
6513 		 */
6514 		int pal;
6515 	}
6516 
6517 	public alias POINTDATA = .tagPOINTDATA;
6518 	public alias LPPOINTDATA = .tagPOINTDATA*;
6519 
6520 	/**
6521 	 * 立方体データ型
6522 	 */
6523 	package struct tagCUBEDATA
6524 	{
6525 		/**
6526 		 * 座標1
6527 		 */
6528 		.VECTOR Pos1;
6529 
6530 		/**
6531 		 * 座標2
6532 		 */
6533 		.VECTOR Pos2;
6534 
6535 		/**
6536 		 * ディフューズカラー
6537 		 */
6538 		.COLOR_U8 DifColor;
6539 
6540 		/**
6541 		 * スペキュラカラー
6542 		 */
6543 		.COLOR_U8 SpcColor;
6544 	}
6545 
6546 	public alias CUBEDATA = .tagCUBEDATA;
6547 	public alias LPCUBEDATA = .tagCUBEDATA*;
6548 
6549 	version (DX_NOTUSE_DRAWFUNCTION) {
6550 	} else {
6551 		/**
6552 		 * イメージフォーマットデータ
6553 		 */
6554 		package struct tagIMAGEFORMATDESC
6555 		{
6556 			/**
6557 			 * テクスチャか、フラグ(dxlib_d.DxDataType.TRUE:テクスチャ  dxlib_d.DxDataType.FALSE:標準サーフェス)
6558 			 */
6559 			ubyte TextureFlag;
6560 
6561 			/**
6562 			 * キューブマップテクスチャか、フラグ(dxlib_d.DxDataType.TRUE:キューブマップテクスチャ dxlib_d.DxDataType.FALSE:それ以外)
6563 			 */
6564 			ubyte CubeMapTextureFlag;
6565 
6566 			/**
6567 			 * αチャンネルはあるか、フラグ(dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない)
6568 			 */
6569 			ubyte AlphaChFlag;
6570 
6571 			/**
6572 			 * 描画可能か、フラグ(dxlib_d.DxDataType.TRUE:可能  dxlib_d.DxDataType.FALSE:不可能)
6573 			 */
6574 			ubyte DrawValidFlag;
6575 
6576 			/**
6577 			 * システムメモリ上に存在しているか、フラグ(dxlib_d.DxDataType.TRUE:システムメモリ上  dxlib_d.DxDataType.FALSE:VRAM上)(標準サーフェスの時のみ有効)
6578 			 */
6579 			ubyte SystemMemFlag;
6580 
6581 			/**
6582 			 * マネージドテクスチャを使用するか、フラグ
6583 			 */
6584 			ubyte UseManagedTextureFlag;
6585 
6586 			/**
6587 			 * テクスチャのメモリデータ配置にリニアが選択できる場合はデータ配置方式をリニアにするかどうか(dxlib_d.DxDataType.TRUE:リニアが可能な場合はリニアにする  dxlib_d.DxDataType.FALSE:リニアが可能な場合も特にリニアを指定しない)
6588 			 */
6589 			ubyte UseLinearMapTextureFlag;
6590 
6591 			/**
6592 			 * 環境依存のテクスチャフォーマットを直接指定するために使用するための変数(DX_TEXTUREFORMAT_DIRECT3D9_R8G8B8など)
6593 			 */
6594 			ubyte PlatformTextureFormat;
6595 
6596 			/**
6597 			 * 基本フォーマット(DX_BASEIMAGE_FORMAT_NORMAL等)
6598 			 */
6599 			ubyte BaseFormat;
6600 
6601 			/**
6602 			 * ミップマップの数
6603 			 */
6604 			ubyte MipMapCount;
6605 
6606 			/**
6607 			 * αテストチャンネルはあるか、フラグ(dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない)(テクスチャの場合のみ有効)
6608 			 */
6609 			ubyte AlphaTestFlag;
6610 
6611 			/**
6612 			 * 浮動小数点型かどうか
6613 			 */
6614 			ubyte FloatTypeFlag;
6615 
6616 			/**
6617 			 * 色深度(テクスチャの場合のみ有効)
6618 			 */
6619 			ubyte ColorBitDepth;
6620 
6621 			/**
6622 			 * チャンネルの数
6623 			 */
6624 			ubyte ChannelNum;
6625 
6626 			/**
6627 			 * 1チャンネル辺りのビット深度(テクスチャの場合のみ有効、0の場合はColorBitDepthが使用される)
6628 			 */
6629 			ubyte ChannelBitDepth;
6630 
6631 			/**
6632 			 * ブレンド用画像か、フラグ
6633 			 */
6634 			ubyte BlendGraphFlag;
6635 
6636 			/**
6637 			 * パレットを使用しているか、フラグ(SystemMemFlagがdxlib_d.DxDataType.TRUEの場合のみ有効)
6638 			 */
6639 			ubyte UsePaletteFlag;
6640 
6641 			/**
6642 			 * マルチサンプリング数(描画対象の場合使用)
6643 			 */
6644 			ubyte MSSamples;
6645 
6646 			/**
6647 			 * マルチサンプリングクオリティ(描画対象の場合使用)
6648 			 */
6649 			ubyte MSQuality;
6650 		}
6651 
6652 		public alias IMAGEFORMATDESC = .tagIMAGEFORMATDESC;
6653 	}
6654 
6655 	/**
6656 	 * DirectInputのジョイパッド入力情報
6657 	 */
6658 	package struct tagDINPUT_JOYSTATE
6659 	{
6660 		/**
6661 		 * スティックのX軸パラメータ(-1000~1000)
6662 		 */
6663 		int X;
6664 
6665 		/**
6666 		 * スティックのY軸パラメータ(-1000~1000)
6667 		 */
6668 		int Y;
6669 
6670 		/**
6671 		 * スティックのZ軸パラメータ(-1000~1000)
6672 		 */
6673 		int Z;
6674 
6675 		/**
6676 		 * スティックのX軸回転パラメータ(-1000~1000)
6677 		 */
6678 		int Rx;
6679 
6680 		/**
6681 		 * スティックのY軸回転パラメータ(-1000~1000)
6682 		 */
6683 		int Ry;
6684 
6685 		/**
6686 		 * スティックのZ軸回転パラメータ(-1000~1000)
6687 		 */
6688 		int Rz;
6689 
6690 		/**
6691 		 * スライダー二つ(0~65535)
6692 		 */
6693 		int[2] Slider;
6694 
6695 		/**
6696 		 * ハットスイッチ4つ(0xFFFFFFFF:入力なし 0:上 4500:右上 9000:右 13500:右下 18000:下 22500:左下 27000:左 31500:左上)
6697 		 */
6698 		uint[4] POV;
6699 
6700 		/**
6701 		 * ボタン32個(押されたボタンは128になる)
6702 		 */
6703 		ubyte[32] Buttons;
6704 	}
6705 
6706 	public alias DINPUT_JOYSTATE = .tagDINPUT_JOYSTATE;
6707 
6708 	/**
6709 	 * XInputのジョイパッド入力情報
6710 	 */
6711 	package struct tagXINPUT_STATE
6712 	{
6713 		/**
6714 		 * ボタン16個(添字にはXINPUT_BUTTON_DPAD_UP等を使用する、0:押されていない  1:押されている)
6715 		 */
6716 		ubyte[16] Buttons;
6717 
6718 		/**
6719 		 * 左トリガー(0~255)
6720 		 */
6721 		ubyte LeftTrigger;
6722 
6723 		/**
6724 		 * 右トリガー(0~255)
6725 		 */
6726 		ubyte RightTrigger;
6727 
6728 		/**
6729 		 * 左スティックの横軸値(-32768~32767)
6730 		 */
6731 		short ThumbLX;
6732 
6733 		/**
6734 		 * 左スティックの縦軸値(-32768~32767)
6735 		 */
6736 		short ThumbLY;
6737 
6738 		/**
6739 		 * 右スティックの横軸値(-32768~32767)
6740 		 */
6741 		short ThumbRX;
6742 
6743 		/**
6744 		 * 右スティックの縦軸値(-32768~32767)
6745 		 */
6746 		short ThumbRY;
6747 	}
6748 
6749 	public alias XINPUT_STATE = .tagXINPUT_STATE;
6750 
6751 	/**
6752 	 * タッチパネルの1箇所分のタッチの情報
6753 	 */
6754 	package struct tagTOUCHINPUTPOINT
6755 	{
6756 		/**
6757 		 * タッチされたデバイス
6758 		 */
6759 		dxlib_d.DxDataType.DWORD Device;
6760 
6761 		/**
6762 		 * タッチを判別するためのID
6763 		 */
6764 		dxlib_d.DxDataType.DWORD ID;
6765 
6766 		/**
6767 		 * タッチされた座標X
6768 		 */
6769 		int PositionX;
6770 
6771 		/**
6772 		 * タッチされた座標Y
6773 		 */
6774 		int PositionY;
6775 	}
6776 
6777 	public alias TOUCHINPUTPOINT = .tagTOUCHINPUTPOINT;
6778 
6779 	/**
6780 	 * タッチパネルのタッチの情報
6781 	 */
6782 	package struct tagTOUCHINPUTDATA
6783 	{
6784 		/**
6785 		 * 情報の時間
6786 		 */
6787 		dxlib_d.DxDataType.LONGLONG Time;
6788 
6789 		/**
6790 		 * 有効なタッチ情報の数
6791 		 */
6792 		int PointNum;
6793 
6794 		/**
6795 		 * タッチ情報
6796 		 */
6797 		.TOUCHINPUTPOINT[TOUCHINPUTPOINT_MAX] Point;
6798 	}
6799 
6800 	public alias TOUCHINPUTDATA = .tagTOUCHINPUTDATA;
6801 
6802 	/**
6803 	 * WinSockets使用時のアドレス指定用構造体
6804 	 */
6805 	package struct tagIPDATA
6806 	{
6807 		/**
6808 		 * アドレス値
6809 		 */
6810 		ubyte d1;
6811 
6812 		/**
6813 		 * アドレス値
6814 		 */
6815 		ubyte d2;
6816 
6817 		/**
6818 		 * アドレス値
6819 		 */
6820 		ubyte d3;
6821 
6822 		/**
6823 		 * アドレス値
6824 		 */
6825 		ubyte d4;
6826 	}
6827 
6828 	public alias IPDATA = .tagIPDATA;
6829 	public alias LPIPDATA = .tagIPDATA*;
6830 
6831 	package struct tagIPDATA_IPv6
6832 	{
6833 		union
6834 		{
6835 			ubyte[16] Byte;
6836 			ushort[8] Word;
6837 		}
6838 
6839 		core.stdc.config.c_ulong ScopeID;
6840 	}
6841 
6842 	public alias IPDATA_IPv6 = .tagIPDATA_IPv6;
6843 
6844 	// DxSystem.cpp関数プロトタイプ宣言
6845 
6846 	// 初期化終了系関数
6847 
6848 	/**
6849 	 * ライブラリ初期化を行う
6850 	 */
6851 	extern int DxLib_Init();
6852 
6853 	/**
6854 	 * ライブラリ使用の後始末を行う
6855 	 */
6856 	extern int DxLib_End();
6857 
6858 	/**
6859 	 * ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Initの前に行った設定を無効化する(DxLib_Initの前でのみ有効)
6860 	 */
6861 	extern int DxLib_GlobalStructInitialize();
6862 
6863 	/**
6864 	 * ライブラリが初期化されているかどうかを取得する
6865 	 *
6866 	 * Returns: dxlib_d.DxDataType.TRUE:初期化されている  dxlib_d.DxDataType.FALSE:されていない
6867 	 */
6868 	extern int DxLib_IsInit();
6869 
6870 	// エラー関係関数
6871 
6872 	/**
6873 	 * 最後に発生したエラーのエラーコードを取得する
6874 	 *
6875 	 * Returns: 0:エラーが発生していない、又はエラーコード出力に対応したエラーが発生していない  0以外:エラーコード、DX_ERRORCODE_WIN_DESKTOP_24BIT_COLORなど
6876 	 */
6877 	extern int GetLastErrorCode();
6878 
6879 	/**
6880 	 * 最後に発生したエラーのエラーメッセージを指定の文字列バッファに取得する
6881 	 */
6882 	extern int GetLastErrorMessage(dxlib_d.DxDataType.TCHAR* StringBuffer, int StringBufferBytes);
6883 
6884 	// メッセージ処理関数
6885 
6886 	/**
6887 	 * ウインドウズのメッセージループに代わる処理を行う
6888 	 */
6889 	extern int ProcessMessage();
6890 
6891 	// 設定系関数
6892 
6893 	/**
6894 	 * アプリが非アクティブ状態でも処理を実行するかどうかを設定する
6895 	 *
6896 	 * Params:
6897 	 *      Flag = dxlib_d.DxDataType.TRUE:実行する  dxlib_d.DxDataType.FALSE:停止する(デフォルト)
6898 	 */
6899 	extern int SetAlwaysRunFlag(int Flag);
6900 
6901 	// ウエイト系関数
6902 
6903 	/**
6904 	 * 指定の時間だけ処理をとめる
6905 	 */
6906 	extern int WaitTimer(int WaitTime);
6907 
6908 	version (DX_NON_INPUT) {
6909 	} else {
6910 		/**
6911 		 * キーの入力待ちを行う
6912 		 */
6913 		extern int WaitKey();
6914 	}
6915 
6916 	// カウンタ及び時刻取得系関数
6917 
6918 	/**
6919 	 * ミリ秒単位の精度を持つカウンタの現在の値を得る
6920 	 */
6921 	extern int GetNowCount(int UseRDTSCFlag = dxlib_d.DxDataType.FALSE);
6922 
6923 	/**
6924 	 * GetNowCountの高精度バージョン(μ秒単位の精度を持つカウンタの現在の値を得る)
6925 	 */
6926 	extern dxlib_d.DxDataType.LONGLONG GetNowHiPerformanceCount(int UseRDTSCFlag = dxlib_d.DxDataType.FALSE);
6927 
6928 	/**
6929 	 * OSが提供する高精度カウンタの現在の値を得る
6930 	 */
6931 	extern dxlib_d.DxDataType.ULONGLONG GetNowSysPerformanceCount();
6932 
6933 	/**
6934 	 * OSが提供する高精度カウンタの周波数(1秒辺りのカウント数)を得る
6935 	 */
6936 	extern dxlib_d.DxDataType.ULONGLONG GetSysPerformanceFrequency();
6937 
6938 	/**
6939 	 * OSが提供する高精度カウンタの値を秒の値に変換する
6940 	 */
6941 	extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToSeconds(dxlib_d.DxDataType.ULONGLONG Count);
6942 
6943 	/**
6944 	 * OSが提供する高精度カウンタの値をミリ秒の値に変換する
6945 	 */
6946 	extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToMilliSeconds(dxlib_d.DxDataType.ULONGLONG Count);
6947 
6948 	/**
6949 	 * OSが提供する高精度カウンタの値をマイクロ秒の値に変換する
6950 	 */
6951 	extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToMicroSeconds(dxlib_d.DxDataType.ULONGLONG Count);
6952 
6953 	/**
6954 	 * OSが提供する高精度カウンタの値をナノ秒の値に変換する
6955 	 */
6956 	extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToNanoSeconds(dxlib_d.DxDataType.ULONGLONG Count);
6957 
6958 	/**
6959 	 * 秒の値をOSが提供する高精度カウンタの値に変換する
6960 	 */
6961 	extern dxlib_d.DxDataType.ULONGLONG ConvSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG Seconds);
6962 
6963 	/**
6964 	 * ミリ秒の値をOSが提供する高精度カウンタの値に変換する
6965 	 */
6966 	extern dxlib_d.DxDataType.ULONGLONG ConvMilliSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG MilliSeconds);
6967 
6968 	/**
6969 	 * マイクロ秒の値をOSが提供する高精度カウンタの値に変換する
6970 	 */
6971 	extern dxlib_d.DxDataType.ULONGLONG ConvMicroSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG MicroSeconds);
6972 
6973 	/**
6974 	 * ナノ秒の値をOSが提供する高精度カウンタの値に変換する
6975 	 */
6976 	extern dxlib_d.DxDataType.ULONGLONG ConvNanoSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG NanoSeconds);
6977 
6978 	/**
6979 	 * 現在時刻を取得する
6980 	 */
6981 	extern int GetDateTime(.DATEDATA* DateBuf);
6982 
6983 	// 乱数取得
6984 
6985 	/**
6986 	 * 乱数を取得する
6987 	 *
6988 	 * Params:
6989 	 *      RandMax = 返って来る値の最大値
6990 	 */
6991 	extern int GetRand(int RandMax);
6992 
6993 	/**
6994 	 * 乱数の初期値を設定する
6995 	 */
6996 	extern int SRand(int Seed);
6997 
6998 	// バッテリー関連
6999 
7000 	/**
7001 	 * 電池の残量を%で取得する
7002 	 *
7003 	 * Returns: 100:フル充電状態  0:充電残量無し
7004 	 */
7005 	extern int GetBatteryLifePercent();
7006 
7007 	// クリップボード関係
7008 
7009 	/**
7010 	 * クリップボードに格納されているテキストデータを読み出す
7011 	 *
7012 	 * Params:
7013 	 *      DestBuffer = 文字列を格納するバッファの先頭アドレス
7014 	 *
7015 	 * Returns: -1:クリップボードにテキストデータが無い  -1以外:クリップボードに格納されている文字列データのサイズ(単位:byte)
7016 	 */
7017 	extern int GetClipboardText(dxlib_d.DxDataType.TCHAR* DestBuffer);
7018 
7019 	/**
7020 	 * クリップボードにテキストデータを格納する
7021 	 */
7022 	extern int SetClipboardText(const (dxlib_d.DxDataType.TCHAR)* Text);
7023 
7024 	/**
7025 	 * クリップボードにテキストデータを格納する
7026 	 */
7027 	extern int SetClipboardTextWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Text, size_t TextLength);
7028 
7029 	// iniファイル関係
7030 
7031 	/**
7032 	 * GetPrivateProfileStringのDXライブラリ版
7033 	 */
7034 	extern int GetPrivateProfileStringDx(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, const (dxlib_d.DxDataType.TCHAR)* Default, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7035 
7036 	/**
7037 	 * GetPrivateProfileStringのDXライブラリ版
7038 	 */
7039 	extern int GetPrivateProfileStringDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, const (dxlib_d.DxDataType.TCHAR)* Default, size_t DefaultLength, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, size_t IniFilePathLength, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7040 
7041 	/**
7042 	 * GetPrivateProfileIntのDXライブラリ版
7043 	 */
7044 	extern int GetPrivateProfileIntDx(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, int Default, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7045 
7046 	/**
7047 	 * GetPrivateProfileIntのDXライブラリ版
7048 	 */
7049 	extern int GetPrivateProfileIntDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, int Default, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, size_t IniFilePathLength, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7050 
7051 	/**
7052 	 * GetPrivateProfileStringDxのメモリから読み込む版
7053 	 */
7054 	extern int GetPrivateProfileStringDxForMem(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, const (dxlib_d.DxDataType.TCHAR)* Default, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7055 
7056 	/**
7057 	 * GetPrivateProfileStringDxのメモリから読み込む版
7058 	 */
7059 	extern int GetPrivateProfileStringDxForMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, const (dxlib_d.DxDataType.TCHAR)* Default, size_t DefaultLength, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7060 
7061 	/**
7062 	 * GetPrivateProfileIntDxのメモリから読み込む版
7063 	 */
7064 	extern int GetPrivateProfileIntDxForMem(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, int Default, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7065 
7066 	/**
7067 	 * GetPrivateProfileIntDxのメモリから読み込む版
7068 	 */
7069 	extern int GetPrivateProfileIntDxForMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, int Default, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */);
7070 
7071 	version (iOS) {
7072 		version = ENABLE_MAIL;
7073 	} else version (Android) {
7074 		version = ENABLE_MAIL;
7075 	}
7076 
7077 	version (ENABLE_MAIL) {
7078 		/**
7079 		 * メールアプリを送信メール編集状態で起動する
7080 		 *
7081 		 * Params:
7082 		 *      MailAddr = 宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7083 		 *      MailCCAddr = CCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7084 		 *      MailBCCAddr = BCCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7085 		 *      Subject = タイトル(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7086 		 *      Text = 本文(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7087 		 */
7088 		extern int MailApp_Send(const (dxlib_d.DxDataType.TCHAR)* MailAddr = null, const (dxlib_d.DxDataType.TCHAR)* MailCCAddr = null, const (dxlib_d.DxDataType.TCHAR)* MailBCCAddr = null, const (dxlib_d.DxDataType.TCHAR)* Subject = null, const (dxlib_d.DxDataType.TCHAR)* Text = null);
7089 
7090 		/**
7091 		 * メールアプリを送信メール編集状態で起動する
7092 		 *
7093 		 * Params:
7094 		 *      MailAddr = 宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7095 		 *      MailAddrLength = ?
7096 		 *      MailCCAddr = CCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7097 		 *      MailCCAddrLength = ?
7098 		 *      MailBCCAddr = BCCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7099 		 *      MailBCCAddrLength = ?
7100 		 *      Subject = タイトル(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7101 		 *      Text = 本文(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください
7102 		 */
7103 		extern int MailApp_SendWithStrLen(const (dxlib_d.DxDataType.TCHAR)* MailAddr = null, size_t MailAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* MailCCAddr = null, size_t MailCCAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* MailBCCAddr = null, size_t MailBCCAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* Subject = null, size_t SubjectLength = 0, const (dxlib_d.DxDataType.TCHAR)* Text = null, size_t TextLength = 0);
7104 	}
7105 
7106 	// DxLog.cpp関数プロトタイプ宣言
7107 
7108 	version (DX_NON_LOG) {
7109 	} else {
7110 		// ログファイル関数
7111 
7112 		/**
7113 		 * ログファイル(Log.txt)に文字列を出力する
7114 		 */
7115 		extern int LogFileAdd(const (dxlib_d.DxDataType.TCHAR)* String);
7116 
7117 		/**
7118 		 * ログファイル(Log.txt)に文字列を出力する
7119 		 */
7120 		extern int LogFileAddWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
7121 
7122 		/**
7123 		 * 書式付きでログファイル(Log.txt)に文字列を出力する(書式はprintfと同じ)
7124 		 */
7125 		extern int LogFileFmtAdd(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7126 
7127 		/**
7128 		 * ログファイル(Log.txt)に出力する文字列の前に付けるタブの数を1つ増やす
7129 		 */
7130 		extern int LogFileTabAdd();
7131 
7132 		/**
7133 		 * ログファイル(Log.txt)に出力する文字列の前に付けるタブの数を1つ減らす
7134 		 */
7135 		extern int LogFileTabSub();
7136 
7137 		/**
7138 		 * LogFileAddの旧名称関数
7139 		 */
7140 		extern int ErrorLogAdd(const (dxlib_d.DxDataType.TCHAR)* String);
7141 
7142 		/**
7143 		 * LogFileFmtAddの旧名称関数
7144 		 */
7145 		extern int ErrorLogFmtAdd(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7146 
7147 		/**
7148 		 * LogFileTabAddの旧名称関数
7149 		 */
7150 		extern int ErrorLogTabAdd();
7151 
7152 		/**
7153 		 * LogFileTabSubの旧名称関数
7154 		 */
7155 		extern int ErrorLogTabSub();
7156 
7157 		/**
7158 		 * ログファイル(Log.txt)に出力する文字列の前に起動してからの時間を付けるかどうかを設定する
7159 		 *
7160 		 * Params:
7161 		 *      UseFlag = dxlib_d.DxDataType.TRUE:付ける(デフォルト)  dxlib_d.DxDataType.FALSE:付けない
7162 		 */
7163 		extern int SetUseTimeStampFlag(int UseFlag);
7164 
7165 		/**
7166 		 * LogFileFmtAddと同じ機能の関数
7167 		 */
7168 		extern int AppLogAdd(const (dxlib_d.DxDataType.TCHAR)* String, ...);
7169 
7170 		// ログ出力設定関数
7171 
7172 		/**
7173 		 * ログファイル(Log.txt)を作成するかどうかを設定する、DxLib_Initの前でのみ使用可能
7174 		 *
7175 		 * Params:
7176 		 *      Flag = dxlib_d.DxDataType.TRUE:作成する(デフォルト)  dxlib_d.DxDataType.FALSE:作成しない
7177 		 */
7178 		extern int SetOutApplicationLogValidFlag(int Flag);
7179 
7180 		/**
7181 		 * ログファイルの名前を設定する(Log.txt以外にしたい場合に使用)
7182 		 */
7183 		extern int SetApplicationLogFileName(const (dxlib_d.DxDataType.TCHAR)* FileName);
7184 
7185 		/**
7186 		 * ログファイルの名前を設定する(Log.txt以外にしたい場合に使用)
7187 		 */
7188 		extern int SetApplicationLogFileNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
7189 
7190 		/**
7191 		 * ログファイル(Log.txt)を保存するディレクトリパスを設定する
7192 		 */
7193 		extern int SetApplicationLogSaveDirectory(const (dxlib_d.DxDataType.TCHAR)* DirectoryPath);
7194 
7195 		/**
7196 		 * ログファイル(Log.txt)を保存するディレクトリパスを設定する
7197 		 */
7198 		extern int SetApplicationLogSaveDirectoryWithStrLen(const (dxlib_d.DxDataType.TCHAR)* DirectoryPath, size_t DirectoryPathLength);
7199 
7200 		/**
7201 		 * ログファイル名に日付をつけるかどうかをセットする
7202 		 *
7203 		 * Params:
7204 		 *      Flag = dxlib_d.DxDataType.TRUE:付ける  dxlib_d.DxDataType.FALSE:付けない(デフォルト)
7205 		 */
7206 		extern int SetUseDateNameLogFile(int Flag);
7207 
7208 		version (DX_NON_PRINTF_DX) {
7209 		} else {
7210 			// ログ出力機能関数
7211 
7212 			/**
7213 			 * printfDxの結果を画面に出力するかどうかを設定する、dxlib_d.DxDataType.TRUE:出力を行う  dxlib_d.DxDataType.FALSE:出力を行わない(printfDxを実行すると内部でSetLogDrawOutFlag(dxlib_d.DxDataType.TRUE);が呼ばれます)
7214 			 */
7215 			extern int SetLogDrawOutFlag(int DrawFlag);
7216 
7217 			/**
7218 			 * printfDxの結果を画面に出力するかどうかの設定を取得する
7219 			 *
7220 			 * Returns: dxlib_d.DxDataType.TRUE:出力を行う  dxlib_d.DxDataType.FALSE:出力を行わない
7221 			 */
7222 			extern int GetLogDrawFlag();
7223 
7224 			/**
7225 			 * printfDxの結果を画面に出力する際に使用するフォントのサイズを設定する
7226 			 */
7227 			extern int SetLogFontSize(int Size);
7228 
7229 			/**
7230 			 * printfDxの結果を画面に出力する際に使用するフォントのハンドルを変更する
7231 			 */
7232 			extern int SetLogFontHandle(int FontHandle);
7233 
7234 			/**
7235 			 * printfDxの結果を画面に出力する際の描画する領域を設定する
7236 			 */
7237 			extern int SetLogDrawArea(int x1, int y1, int x2, int y2);
7238 
7239 			// 簡易画面出力関数
7240 
7241 			/**
7242 			 * printfと同じ引数で画面に文字列を表示するための関数
7243 			 */
7244 			extern int printfDx(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7245 
7246 			/**
7247 			 * putsと同じ引数で画面に文字列を表示するための関数
7248 			 */
7249 			extern int putsDx(const (dxlib_d.DxDataType.TCHAR)* String, int NewLine = dxlib_d.DxDataType.TRUE);
7250 
7251 			/**
7252 			 * putsと同じ引数で画面に文字列を表示するための関数
7253 			 */
7254 			extern int putsDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int NewLine = dxlib_d.DxDataType.TRUE);
7255 
7256 			/**
7257 			 * printfDxの結果をリセットするための関数
7258 			 */
7259 			extern int clsDx();
7260 		}
7261 	}
7262 
7263 	version (DX_NON_ASYNCLOAD) {
7264 	} else {
7265 		// DxASyncLoad.cpp関数プロトタイプ宣言
7266 
7267 		// 非同期読み込み関係
7268 
7269 		/**
7270 		 * 読み込み処理系の関数で非同期読み込みを行うかどうかを設定する(非同期読み込みに対応している関数のみ有効)
7271 		 *
7272 		 * Params:
7273 		 *      Flag = dxlib_d.DxDataType.TRUE:非同期読み込みを行う  dxlib_d.DxDataType.FALSE:非同期読み込みを行わない(デフォルト)
7274 		 */
7275 		extern int SetUseASyncLoadFlag(int Flag);
7276 
7277 		/**
7278 		 * 読み込み処理系の関数で非同期読み込みを行うかどうかを取得する(非同期読み込みに対応している関数のみ有効)
7279 		 *
7280 		 * Returns: dxlib_d.DxDataType.TRUE:非同期読み込みを行う  dxlib_d.DxDataType.FALSE:非同期読み込みを行わない(デフォルト)
7281 		 */
7282 		extern int GetUseASyncLoadFlag();
7283 
7284 		/**
7285 		 * ハンドルの非同期読み込みが完了しているかどうかを取得する
7286 		 *
7287 		 * Returns: dxlib_d.DxDataType.TRUE:まだ完了していない  dxlib_d.DxDataType.FALSE:完了している  -1:エラー
7288 		 */
7289 		extern int CheckHandleASyncLoad(int Handle);
7290 
7291 		/**
7292 		 * ハンドルの非同期読み込み処理の戻り値を取得する(非同期読み込み中の場合は1つ前の非同期読み込み処理の戻り値が返ってきます)
7293 		 */
7294 		extern int GetHandleASyncLoadResult(int Handle);
7295 
7296 		/**
7297 		 * ハンドルの非同期読み込み処理が完了したらハンドルを削除するフラグを立てる
7298 		 */
7299 		extern int SetASyncLoadFinishDeleteFlag(int Handle);
7300 
7301 		/**
7302 		 * 非同期読み込み中の処理の数を取得する
7303 		 */
7304 		extern int GetASyncLoadNum();
7305 
7306 		/**
7307 		 * 非同期読み込み処理を行うスレッドの数を設定する(ThreadNumに指定できる数は1~32)
7308 		 */
7309 		extern int SetASyncLoadThreadNum(int ThreadNum);
7310 	}
7311 
7312 	// DxHandle.cpp関数プロトタイプ宣言
7313 
7314 	/**
7315 	 * ハンドルが削除されたときに-1が設定される変数を登録する
7316 	 */
7317 	extern int SetDeleteHandleFlag(int Handle, int* DeleteFlag);
7318 
7319 	// マウス関係関数
7320 
7321 	/**
7322 	 * マウスポインタの表示状態を設定する(DispFlag:マウスポインタを表示するかどうか
7323 	 *
7324 	 * Params:
7325 	 *      DispFlag = dxlib_d.DxDataType.TRUE:表示する  dxlib_d.DxDataType.FALSE:表示しない
7326 	 */
7327 	extern int SetMouseDispFlag(int DispFlag);
7328 
7329 	version (DX_NON_INPUT) {
7330 	} else {
7331 		/**
7332 		 * マウスポインタの位置を取得する
7333 		 */
7334 		extern int GetMousePoint(int* XBuf, int* YBuf);
7335 
7336 		/**
7337 		 * マウスポインタの位置を設定する
7338 		 */
7339 		extern int SetMousePoint(int PointX, int PointY);
7340 
7341 		/**
7342 		 * マウスのボタンの押下状態を取得する
7343 		 */
7344 		extern int GetMouseInput();
7345 
7346 		/**
7347 		 * 垂直マウスホイールの回転量を取得する
7348 		 */
7349 		extern int GetMouseWheelRotVol(int CounterReset = dxlib_d.DxDataType.TRUE);
7350 
7351 		/**
7352 		 * 水平マウスホイールの回転量を取得する
7353 		 */
7354 		extern int GetMouseHWheelRotVol(int CounterReset = dxlib_d.DxDataType.TRUE);
7355 
7356 		/**
7357 		 * 垂直マウスホイールの回転量を取得する(戻り値がfloat型)
7358 		 */
7359 		extern float GetMouseWheelRotVolF(int CounterReset = dxlib_d.DxDataType.TRUE);
7360 
7361 		/**
7362 		 * 水平マウスホイールの回転量を取得する(戻り値がfloat型)
7363 		 */
7364 		extern float GetMouseHWheelRotVolF(int CounterReset = dxlib_d.DxDataType.TRUE);
7365 
7366 		/**
7367 		 * マウスのボタンを押した情報を1つ取得する
7368 		 *
7369 		 * Params:
7370 		 *      Button = 押されたボタン(MOUSE_INPUT_LEFT等)を格納する変数のアドレス
7371 		 *      ClickX = 押された時のX座標を格納する変数のアドレス
7372 		 *      ClickY = 押された時のY座標を格納する変数のアドレス
7373 		 *      LogDelete = 取得した押下情報1つ分をログから削除するかどうか(dxlib_d.DxDataType.TRUE:削除する  dxlib_d.DxDataType.FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる)
7374 		 *
7375 		 * Returns: 0:押された情報取得できた -1:押された情報が無かった、つまり前回の呼び出し(または起動時から最初の呼び出し)の間に一度もマウスのボタンが押されなかった
7376 		 */
7377 		extern int GetMouseInputLog(int* Button, int* ClickX, int* ClickY, int LogDelete = dxlib_d.DxDataType.TRUE);
7378 
7379 		/**
7380 		 * マウスのボタンを押したり離したりした情報を1つ取得する
7381 		 *
7382 		 * Params:
7383 		 *      Button = 押されたり離されたりしたボタン(MOUSE_INPUT_LEFT等)を格納する変数のアドレス
7384 		 *      ClickX = 押されたり離されたりした時のX座標を格納する変数のアドレス
7385 		 *      ClickY = 押されたり離されたりした時のY座標を格納する変数のアドレス
7386 		 *      LogType = 押されたのか(MOUSE_INPUT_LOG_DOWN)離されたのか(MOUSE_INPUT_LOG_UP)、等の情報を格納する変数のアドレス
7387 		 *      LogDelete = 取得した押されたり離されたりした情報1つ分をログから削除するかどうか(dxlib_d.DxDataType.TRUE:削除する  dxlib_d.DxDataType.FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる)
7388 		 *
7389 		 * Returns: 0:押されたり離されたりした情報取得できた -1:押されたり離されたりした情報が無かった、つまり前回の呼び出し(または起動時から最初の呼び出し)の間に一度もマウスのボタンが押されたり離されたりしなかった
7390 		 */
7391 		extern int GetMouseInputLog2(int* Button, int* ClickX, int* ClickY, int* LogType, int LogDelete = dxlib_d.DxDataType.TRUE);
7392 	}
7393 
7394 	// タッチパネル入力関係関数
7395 	version (DX_NON_INPUT) {
7396 	} else {
7397 		/**
7398 		 * タッチされている数を取得する
7399 		 */
7400 		extern int GetTouchInputNum();
7401 
7402 		/**
7403 		 * タッチの情報を取得する
7404 		 */
7405 		extern int GetTouchInput(int InputNo, int* PositionX, int* PositionY, int* ID = null, int* Device = null);
7406 
7407 		/**
7408 		 * ストックされているタッチ情報の数を取得する
7409 		 */
7410 		extern int GetTouchInputLogNum();
7411 
7412 		/**
7413 		 * ストックされているタッチ情報をクリアする
7414 		 */
7415 		extern int ClearTouchInputLog();
7416 
7417 		/**
7418 		 * ストックされているタッチ情報から一番古い情報をひとつ取得する
7419 		 */
7420 		extern .TOUCHINPUTDATA GetTouchInputLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE);
7421 
7422 		/**
7423 		 * ストックされているタッチ情報から古い順に指定数バッファに取得する
7424 		 *
7425 		 * Returns: -1:エラー  0以上:取得した情報の数
7426 		 */
7427 		extern int GetTouchInputLog(.TOUCHINPUTDATA* TouchData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE);
7428 
7429 		/**
7430 		 * ストックされているタッチされ始めた情報の数を取得する
7431 		 */
7432 		extern int GetTouchInputDownLogNum();
7433 
7434 		/**
7435 		 * ストックされているタッチされ始めた情報をクリアする
7436 		 */
7437 		extern int ClearTouchInputDownLog();
7438 
7439 		/**
7440 		 * ストックされているタッチされ始めた情報から一番古い情報をひとつ取得する
7441 		 */
7442 		extern .TOUCHINPUTPOINT GetTouchInputDownLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE);
7443 
7444 		/**
7445 		 * ストックされているタッチされ始めた情報から古い順に指定数バッファに取得する
7446 		 *
7447 		 * Returns: -1:エラー  0以上:取得した情報の数
7448 		 */
7449 		extern int GetTouchInputDownLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE);
7450 
7451 		/**
7452 		 * ストックされているタッチが離された情報の数を取得する
7453 		 */
7454 		extern int GetTouchInputUpLogNum();
7455 
7456 		/**
7457 		 * ストックされているタッチが離された情報をクリアする
7458 		 */
7459 		extern int ClearTouchInputUpLog();
7460 
7461 		/**
7462 		 * ストックされているタッチが離された情報から一番古い情報をひとつ取得する
7463 		 */
7464 		extern .TOUCHINPUTPOINT GetTouchInputUpLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE);
7465 
7466 		/**
7467 		 * ストックされているタッチが離された情報から古い順に指定数バッファに取得する
7468 		 *
7469 		 * Returns: -1:エラー  0以上:取得した情報の数
7470 		 */
7471 		extern int GetTouchInputUpLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE);
7472 	}
7473 
7474 	// DxMemory.cpp関数プロトタイプ宣言
7475 
7476 	// メモリ確保系関数
7477 
7478 	/**
7479 	 * 指定のサイズのメモリを確保する
7480 	 *
7481 	 * Params:
7482 	 *      AllocSize = 確保するメモリのサイズ(単位:byte)
7483 	 *      File = DxAllocを呼んだソースファイル名(デバッグ用)
7484 	 *      Line = DxAllocを呼んだソースファイル中の行番号(デバッグ用)
7485 	 *
7486 	 * Returns: null:メモリの確保失敗   NULL以外:確保したメモリ領域の先頭アドレス
7487 	 */
7488 	extern void* DxAlloc(size_t AllocSize, const (char)* File = null, int Line = -1);
7489 
7490 	/**
7491 	 * 指定のサイズのメモリを確保する(アライン指定版)
7492 	 *
7493 	 * Params:
7494 	 *      AllocSize = 確保するメモリのサイズ(単位:byte)
7495 	 *      Alignment = 確保するメモリ領域のアドレス値の倍数
7496 	 *      File = DxAllocを呼んだソースファイル名(デバッグ用)
7497 	 *      Line = DxAllocを呼んだソースファイル中の行番号(デバッグ用)
7498 	 *
7499 	 * Returns: null:メモリの確保失敗   NULL以外:確保したメモリ領域の先頭アドレス
7500 	 */
7501 	extern void* DxAllocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1);
7502 
7503 	/**
7504 	 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外はDxAllocと動作は同じ
7505 	 */
7506 	extern void* DxCalloc(size_t AllocSize, const (char)* File = null, int Line = -1);
7507 
7508 	/**
7509 	 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外はDxAllocAlignedと動作は同じ
7510 	 */
7511 	extern void* DxCallocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1);
7512 
7513 	/**
7514 	 * メモリの再確保を行う(FileとLineの説明はDxAllocの注釈の通り)
7515 	 *
7516 	 * Params:
7517 	 *      Memory = 再確保を行うメモリ領域の先頭アドレス(DxAllocの戻り値)
7518 	 *      AllocSize = 新しい確保サイズ
7519 	 *      File = ?
7520 	 *      Line = ?
7521 	 *
7522 	 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス
7523 	 */
7524 	extern void* DxRealloc(void* Memory, size_t AllocSize, const (char)* File = null, int Line = -1);
7525 
7526 	/**
7527 	 * メモリの再確保を行う(アライン指定版)(FileとLineの説明はDxAllocの注釈の通り)
7528 	 *
7529 	 * Params:
7530 	 *      Memory = 再確保を行うメモリ領域の先頭アドレス(DxAllocの戻り値)
7531 	 *      AllocSize = 新しい確保サイズ
7532 	 *      Alignment = 新しく確保するメモリ領域のアドレス値の倍数
7533 	 *      File = ?
7534 	 *      Line = ?
7535 	 *
7536 	 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス
7537 	 */
7538 	extern void* DxReallocAligned(void* Memory, size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1);
7539 
7540 	/**
7541 	 * メモリを解放する
7542 	 *
7543 	 * Params:
7544 	 *      Memory = 解放するメモリ領域の先頭アドレス(DxAllocの戻り値)
7545 	 */
7546 	extern void DxFree(void* Memory);
7547 
7548 	/**
7549 	 * 列挙対象にするメモリの確保容量をセットする
7550 	 */
7551 	extern size_t DxSetAllocSizeTrap(size_t Size);
7552 
7553 	/**
7554 	 * DXライブラリ内でメモリ確保が行われる時に情報を出力するかどうかをセットする
7555 	 */
7556 	extern int DxSetAllocPrintFlag(int Flag);
7557 
7558 	/**
7559 	 * DxAllocやDxCallocで確保しているメモリサイズを取得する
7560 	 */
7561 	extern size_t DxGetAllocSize();
7562 
7563 	/**
7564 	 * DxAllocやDxCallocで確保しているメモリの数を取得する
7565 	 */
7566 	extern int DxGetAllocNum();
7567 
7568 	/**
7569 	 * DxAllocやDxCallocで確保しているメモリを列挙する
7570 	 */
7571 	extern void DxDumpAlloc();
7572 
7573 	/**
7574 	 * DxAllocやDxCallocで確保しているメモリの状況を描画する
7575 	 */
7576 	extern void DxDrawAlloc(int x, int y, int Width, int Height);
7577 
7578 	/**
7579 	 * 確保したメモリ情報が破壊されていないか調べる
7580 	 *
7581 	 * Returns: -1:破壊あり  0:なし
7582 	 */
7583 	extern int DxErrorCheckAlloc();
7584 
7585 	/**
7586 	 * メモリが確保、解放が行われる度に確保しているメモリの容量を出力するかどうかのフラグをセットする
7587 	 */
7588 	extern int DxSetAllocSizeOutFlag(int Flag);
7589 
7590 	/**
7591 	 * メモリの確保、解放が行われる度に確保しているメモリ確保情報が破損していないか調べるかどうかのフラグをセットする
7592 	 */
7593 	extern int DxSetAllocMemoryErrorCheckFlag(int Flag);
7594 
7595 	// DxBaseFunc.cpp 関数プロトタイプ宣言
7596 
7597 	// 文字コード関係
7598 
7599 	/**
7600 	 * 文字列の先頭の文字のバイト数を取得する
7601 	 *
7602 	 * Params:
7603 	 *      CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等
7604 	 *      String = ?
7605 	 */
7606 	extern int GetCharBytes(int CharCodeFormat, const (void)* String);
7607 
7608 	/**
7609 	 * 文字列の文字コード形式を別の文字コード形式に変換する
7610 	 *
7611 	 * Params:
7612 	 *      SrcCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等
7613 	 *      SrcString = ?
7614 	 *      DestCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等
7615 	 *      DestStringBuffer = ?
7616 	 */
7617 	extern int ConvertStringCharCodeFormat(int SrcCharCodeFormat, const (void)* SrcString, int DestCharCodeFormat, void* DestStringBuffer);
7618 
7619 	/**
7620 	 * 文字列の引数の文字コード形式を設定する(文字列描画系関数とその他一部関数を除く)(UNICODE版では無効)
7621 	 *
7622 	 * Params:
7623 	 *      CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等
7624 	 */
7625 	extern int SetUseCharCodeFormat(int CharCodeFormat);
7626 
7627 	/**
7628 	 * 文字列の引数の文字コード形式を取得する(UNICODE版では無効)
7629 	 *
7630 	 * Returns: 文字コード形式(DX_CHARCODEFORMAT_SHIFTJIS等)
7631 	 */
7632 	extern int GetUseCharCodeFormat();
7633 
7634 	/**
7635 	 * wchar_t型の文字コード形式を取得する
7636 	 *
7637 	 * Returns: DX_CHARCODEFORMAT_UTF16LEなど
7638 	 */
7639 	extern int Get_wchar_t_CharCodeFormat();
7640 
7641 	// 文字列関係
7642 
7643 	/**
7644 	 * strcpyと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7645 	 */
7646 	extern void strcpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src);
7647 
7648 	/**
7649 	 * strcpy_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7650 	 */
7651 	extern void strcpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src);
7652 
7653 	/**
7654 	 * 位置指定付きstrcpy、Posはコピー開始位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7655 	 */
7656 	extern void strpcpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos);
7657 
7658 	/**
7659 	 * 位置指定付きstrcpy_s、Posはコピー開始位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7660 	 */
7661 	extern void strpcpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos);
7662 
7663 	/**
7664 	 * 位置指定付きstrcpy、Posはコピー開始位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7665 	 */
7666 	extern void strpcpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos);
7667 
7668 	/**
7669 	 * 位置指定付きstrcpy_s、Posはコピー開始位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7670 	 */
7671 	extern void strpcpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos);
7672 
7673 	/**
7674 	 * strncpyと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7675 	 */
7676 	extern void strncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7677 
7678 	/**
7679 	 * strncpy_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7680 	 */
7681 	extern void strncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7682 
7683 	/**
7684 	 * strncpyのNumが文字数(全角文字も1扱い)になったもの、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7685 	 */
7686 	extern void strncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7687 
7688 	/**
7689 	 * strncpy_sのNumが文字数(全角文字も1扱い)になったもの、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7690 	 */
7691 	extern void strncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7692 
7693 	/**
7694 	 * strncpyの文字列の終端からの文字数指定版(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7695 	 */
7696 	extern void strrncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7697 
7698 	/**
7699 	 * strncpy_sの文字列の終端からの文字数指定版(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7700 	 */
7701 	extern void strrncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7702 
7703 	/**
7704 	 * strncpyの文字列の終端からの文字数(全角文字も1扱い)指定版、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7705 	 */
7706 	extern void strrncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7707 
7708 	/**
7709 	 * strncpy_sの文字列の終端からの文字数(全角文字も1扱い)指定版、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7710 	 */
7711 	extern void strrncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num);
7712 
7713 	/**
7714 	 * strncpyのコピー開始位置指定版、Posはコピー開始位置、Numは文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7715 	 */
7716 	extern void strpncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num);
7717 
7718 	/**
7719 	 * strncpy_sのコピー開始位置指定版、Posはコピー開始位置、Numは文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7720 	 */
7721 	extern void strpncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num);
7722 
7723 	/**
7724 	 * strncpyのコピー開始位置指定版、Posはコピー開始位置(全角文字も1扱い)、Numは文字数(全角文字も1扱い)、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7725 	 */
7726 	extern void strpncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num);
7727 
7728 	/**
7729 	 * strncpy_sのコピー開始位置指定版、Posはコピー開始位置(全角文字も1扱い)、Numは文字数(全角文字も1扱い)、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7730 	 */
7731 	extern void strpncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num);
7732 
7733 	/**
7734 	 * strcatと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7735 	 */
7736 	extern void strcatDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src);
7737 
7738 	/**
7739 	 * strcat_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7740 	 */
7741 	extern void strcat_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src);
7742 
7743 	/**
7744 	 * strlenと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7745 	 */
7746 	extern size_t strlenDx(const (dxlib_d.DxDataType.TCHAR)* Str);
7747 
7748 	/**
7749 	 * strlenの戻り値が文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7750 	 */
7751 	extern size_t strlen2Dx(const (dxlib_d.DxDataType.TCHAR)* Str);
7752 
7753 	/**
7754 	 * strcmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7755 	 */
7756 	extern int strcmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7757 
7758 	/**
7759 	 * stricmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7760 	 */
7761 	extern int stricmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7762 
7763 	/**
7764 	 * strncmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7765 	 */
7766 	extern int strncmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Num);
7767 
7768 	/**
7769 	 * strncmpのNumが文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7770 	 */
7771 	extern int strncmp2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Num);
7772 
7773 	/**
7774 	 * strncmpの比較開始位置指定版、PosがStr1の比較開始位置、Numが文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7775 	 */
7776 	extern int strpncmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Pos, int Num);
7777 
7778 	/**
7779 	 * strncmpの比較開始位置指定版、PosがStr1の比較開始位置(全角文字も1扱い)、Numが文字数(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7780 	 */
7781 	extern int strpncmp2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Pos, int Num);
7782 
7783 	/**
7784 	 * 文字列の指定の位置の文字コードを取得する、Posは取得する位置、CharNumsは文字数を代入する変数のアドレス
7785 	 *
7786 	 * Returns: 文字コード(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7787 	 */
7788 	extern dxlib_d.DxDataType.DWORD strgetchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos, int* CharNums = null);
7789 
7790 	/**
7791 	 * 文字列の指定の位置の文字コードを取得する、Posは取得する位置(全角文字も1扱い)、CharNumsは文字数を代入する変数のアドレス、
7792 	 *
7793 	 * Returns: 文字コード(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7794 	 */
7795 	extern dxlib_d.DxDataType.DWORD strgetchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos, int* CharNums = null);
7796 
7797 	/**
7798 	 * 文字列の指定の位置に文字コードを書き込む、Posは書き込む位置、CharCodeは文字コード
7799 	 *
7800 	 * Returns: 書き込んだ文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7801 	 */
7802 	extern int strputchrDx(dxlib_d.DxDataType.TCHAR* Str, int Pos, dxlib_d.DxDataType.DWORD CharCode);
7803 
7804 	/**
7805 	 * 文字列の指定の位置に文字コードを書き込む、Posは書き込む位置(全角文字も1扱い)、CharCodeは文字コード
7806 	 *
7807 	 * Returns: 書き込んだ文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7808 	 */
7809 	extern int strputchr2Dx(dxlib_d.DxDataType.TCHAR* Str, int Pos, dxlib_d.DxDataType.DWORD CharCode);
7810 
7811 	/**
7812 	 * 文字列の指定の位置のアドレスを取得する、Posは取得する位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7813 	 */
7814 	extern const (dxlib_d.DxDataType.TCHAR)* strposDx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos);
7815 
7816 	/**
7817 	 * 文字列の指定の位置のアドレスを取得する、Posは取得する位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7818 	 */
7819 	extern const (dxlib_d.DxDataType.TCHAR)* strpos2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos);
7820 
7821 	/**
7822 	 * strstrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7823 	 */
7824 	extern const (dxlib_d.DxDataType.TCHAR)* strstrDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7825 
7826 	/**
7827 	 * strstrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7828 	 */
7829 	extern int strstr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7830 
7831 	/**
7832 	 * strrstrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7833 	 */
7834 	extern const (dxlib_d.DxDataType.TCHAR)* strrstrDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7835 
7836 	/**
7837 	 * strrstrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7838 	 */
7839 	extern int strrstr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2);
7840 
7841 	/**
7842 	 * strchrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7843 	 */
7844 	extern const (dxlib_d.DxDataType.TCHAR)* strchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode);
7845 
7846 	/**
7847 	 * strchrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7848 	 */
7849 	extern int strchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode);
7850 
7851 	/**
7852 	 * strrchrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7853 	 */
7854 	extern const (dxlib_d.DxDataType.TCHAR)* strrchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode);
7855 
7856 	/**
7857 	 * strrchrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7858 	 */
7859 	extern int strrchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode);
7860 
7861 	/**
7862 	 * struprと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7863 	 */
7864 	extern dxlib_d.DxDataType.TCHAR* struprDx(dxlib_d.DxDataType.TCHAR* Str);
7865 
7866 	/**
7867 	 * vsprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7868 	 */
7869 	extern int vsprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg);
7870 
7871 	/**
7872 	 * vsnprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7873 	 */
7874 	extern int vsnprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg);
7875 
7876 	/**
7877 	 * sprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7878 	 */
7879 	extern int sprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7880 
7881 	/**
7882 	 * snprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7883 	 */
7884 	extern int snprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7885 
7886 	/**
7887 	 * itoaと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7888 	 */
7889 	extern dxlib_d.DxDataType.TCHAR* itoaDx(int Value, dxlib_d.DxDataType.TCHAR* Buffer, int Radix);
7890 
7891 	/**
7892 	 * itoa_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7893 	 */
7894 	extern dxlib_d.DxDataType.TCHAR* itoa_sDx(int Value, dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferBytes, int Radix);
7895 
7896 	/**
7897 	 * atoiと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7898 	 */
7899 	extern int atoiDx(const (dxlib_d.DxDataType.TCHAR)* Str);
7900 
7901 	/**
7902 	 * atofと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7903 	 */
7904 	extern double atofDx(const (dxlib_d.DxDataType.TCHAR)* Str);
7905 
7906 	/**
7907 	 * vsscanfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7908 	 */
7909 	extern int vsscanfDx(const (dxlib_d.DxDataType.TCHAR)* String, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg);
7910 
7911 	/**
7912 	 * sscanfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます)
7913 	 */
7914 	extern int sscanfDx(const (dxlib_d.DxDataType.TCHAR)* String, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
7915 
7916 	// DxNetwork.cpp関数プロトタイプ宣言
7917 
7918 	version (DX_NON_NETWORK) {
7919 	} else {
7920 		// 通信関係
7921 
7922 		/**
7923 		 * 通信メッセージの処理をする関数
7924 		 */
7925 		extern int ProcessNetMessage(int RunReleaseProcess = dxlib_d.DxDataType.FALSE);
7926 
7927 		/**
7928 		 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv4版)
7929 		 */
7930 		extern int GetHostIPbyName(const (dxlib_d.DxDataType.TCHAR)* HostName, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null);
7931 
7932 		/**
7933 		 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv4版)
7934 		 */
7935 		extern int GetHostIPbyNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* HostName, size_t HostNameLength, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null);
7936 
7937 		/**
7938 		 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv6版)
7939 		 */
7940 		extern int GetHostIPbyName_IPv6(const (dxlib_d.DxDataType.TCHAR)* HostName, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null);
7941 
7942 		/**
7943 		 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv6版)
7944 		 */
7945 		extern int GetHostIPbyName_IPv6WithStrLen(const (dxlib_d.DxDataType.TCHAR)* HostName, size_t HostNameLength, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null);
7946 
7947 		/**
7948 		 * 他マシンに接続する(IPv4版)
7949 		 */
7950 		extern int ConnectNetWork(.IPDATA IPData, int Port = -1);
7951 
7952 		/**
7953 		 * 他マシンに接続する(IPv6版)
7954 		 */
7955 		extern int ConnectNetWork_IPv6(.IPDATA_IPv6 IPData, int Port = -1);
7956 
7957 		/**
7958 		 * 他マシンに接続する(IPv4版)、非同期版
7959 		 */
7960 		extern int ConnectNetWork_ASync(.IPDATA IPData, int Port = -1);
7961 
7962 		/**
7963 		 * 他マシンに接続する(IPv6版)、非同期版
7964 		 */
7965 		extern int ConnectNetWork_IPv6_ASync(.IPDATA_IPv6 IPData, int Port = -1);
7966 
7967 		/**
7968 		 * 接続を受けられる状態にする(IPv4版)
7969 		 */
7970 		extern int PreparationListenNetWork(int Port = -1);
7971 
7972 		/**
7973 		 * 接続を受けられる状態にする(IPv6版)
7974 		 */
7975 		extern int PreparationListenNetWork_IPv6(int Port = -1);
7976 
7977 		/**
7978 		 * 接続を受けつけ状態の解除
7979 		 */
7980 		extern int StopListenNetWork();
7981 
7982 		/**
7983 		 * 接続を終了する
7984 		 */
7985 		extern int CloseNetWork(int NetHandle);
7986 
7987 		/**
7988 		 * 接続状態を取得する
7989 		 */
7990 		extern int GetNetWorkAcceptState(int NetHandle);
7991 
7992 		/**
7993 		 * 受信データの量を得る
7994 		 */
7995 		extern int GetNetWorkDataLength(int NetHandle);
7996 
7997 		/**
7998 		 * 未送信のデータの量を得る
7999 		 */
8000 		extern int GetNetWorkSendDataLength(int NetHandle);
8001 
8002 		/**
8003 		 * 新たに接続した通信回線を得る
8004 		 */
8005 		extern int GetNewAcceptNetWork();
8006 
8007 		/**
8008 		 * 接続を切断された通信回線を得る
8009 		 */
8010 		extern int GetLostNetWork();
8011 
8012 		/**
8013 		 * 接続先のIPを得る(IPv4版)
8014 		 */
8015 		extern int GetNetWorkIP(int NetHandle, .IPDATA* IpBuf);
8016 
8017 		/**
8018 		 * 接続先のIPを得る(IPv6版)
8019 		 */
8020 		extern int GetNetWorkIP_IPv6(int NetHandle, .IPDATA_IPv6* IpBuf);
8021 
8022 		/**
8023 		 * 自分のIPv4を得る
8024 		 */
8025 		extern int GetMyIPAddress(.IPDATA* IpBuf, int IpBufLength = 1, int* IpNum = null);
8026 
8027 		/**
8028 		 * 自分のIPv6を得る
8029 		 */
8030 		extern int GetMyIPAddress_IPv6(.IPDATA_IPv6* IpBuf, int IpBufLength = 1, int* IpNum = null);
8031 
8032 		/**
8033 		 * 接続のタイムアウトまでの時間を設定する
8034 		 */
8035 		extern int SetConnectTimeOutWait(int Time);
8036 
8037 		/**
8038 		 * DXライブラリの通信形態を使うかどうかをセットする
8039 		 */
8040 		extern int SetUseDXNetWorkProtocol(int Flag);
8041 
8042 		/**
8043 		 * DXライブラリの通信形態を使うかどうかを取得する
8044 		 */
8045 		extern int GetUseDXNetWorkProtocol();
8046 
8047 		/**
8048 		 * SetUseDXNetWorkProtocolの別名
8049 		 */
8050 		extern int SetUseDXProtocol(int Flag);
8051 
8052 		/**
8053 		 * GetUseDXNetWorkProtocolの別名
8054 		 */
8055 		extern int GetUseDXProtocol();
8056 
8057 		/**
8058 		 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグをセットする
8059 		 */
8060 		extern int SetNetWorkCloseAfterLostFlag(int Flag);
8061 
8062 		/**
8063 		 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグを取得する
8064 		 */
8065 		extern int GetNetWorkCloseAfterLostFlag();
8066 
8067 		/**
8068 		 * HTTP通信で使用するプロキシ設定を行う
8069 		 */
8070 		version (none)
8071 		extern int SetProxySetting(int UseFlag, const (char)* Address, int Port);
8072 
8073 		/**
8074 		 * HTTP通信で使用するプロキシ設定を取得する
8075 		 */
8076 		version (none)
8077 		extern int GetProxySetting(int* UseFlagBuffer, char* AddressBuffer, int* PortBuffer);
8078 
8079 		/**
8080 		 * IEのプロキシ設定を適応する
8081 		 */
8082 		version (none)
8083 		extern int SetIEProxySetting();
8084 
8085 		/**
8086 		 * 受信したデータを読み込む
8087 		 */
8088 		extern int NetWorkRecv(int NetHandle, void* Buffer, int Length);
8089 
8090 		/**
8091 		 * 受信したデータを読み込む、読み込んだデータはバッファから削除されない
8092 		 */
8093 		extern int NetWorkRecvToPeek(int NetHandle, void* Buffer, int Length);
8094 
8095 		/**
8096 		 * 受信したデータをクリアする
8097 		 */
8098 		extern int NetWorkRecvBufferClear(int NetHandle);
8099 
8100 		/**
8101 		 * データを送信する
8102 		 */
8103 		extern int NetWorkSend(int NetHandle, const (void)* Buffer, int Length);
8104 
8105 		/**
8106 		 * UDPを使用した通信を行うソケットハンドルを作成する(RecvPortを-1にすると送信専用のソケットハンドルになります)
8107 		 */
8108 		extern int MakeUDPSocket(int RecvPort = -1);
8109 
8110 		/**
8111 		 * UDPを使用した通信を行うソケットハンドルを作成する(RecvPortを-1にすると送信専用のソケットハンドルになります)(IPv6版)
8112 		 */
8113 		extern int MakeUDPSocket_IPv6(int RecvPort = -1);
8114 
8115 		/**
8116 		 * UDPを使用した通信を行うソケットハンドルを削除する
8117 		 */
8118 		extern int DeleteUDPSocket(int NetUDPHandle);
8119 
8120 		/**
8121 		 * UDPを使用した通信で指定のIPにデータを送信する、Lengthは最大65507、SendPortを-1にするとMakeUDPSocketにRecvPortで渡したポートが使用されます
8122 		 *
8123 		 * Returns: 0以上;送信できたデータサイズ  -1:エラー  -2:送信データが大きすぎる  -3:送信準備ができていない
8124 		 */
8125 		extern int NetWorkSendUDP(int NetUDPHandle, .IPDATA SendIP, int SendPort, const (void)* Buffer, int Length);
8126 
8127 		/**
8128 		 * UDPを使用した通信で指定のIPにデータを送信する、Lengthは最大65507、SendPortを-1にするとMakeUDPSocketにRecvPortで渡したポートが使用されます(IPv6版)
8129 		 *
8130 		 * Returns: 0以上;送信できたデータサイズ  -1:エラー  -2:送信データが大きすぎる  -3:送信準備ができていない
8131 		 */
8132 		extern int NetWorkSendUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6 SendIP, int SendPort, const (void)* Buffer, int Length);
8133 
8134 		/**
8135 		 * UDPを使用した通信でデータを受信する、Peekにdxlib_d.DxDataType.TRUEを渡すと受信に成功してもデータを受信キューから削除しません
8136 		 *
8137 		 * Returns: 0以上:受信したデータのサイズ  -1:エラー  -2:バッファのサイズが足りない  -3:受信データがない
8138 		 */
8139 		extern int NetWorkRecvUDP(int NetUDPHandle, .IPDATA* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek);
8140 
8141 		/**
8142 		 * UDPを使用した通信でデータを受信する、Peekにdxlib_d.DxDataType.TRUEを渡すと受信に成功してもデータを受信キューから削除しません(IPv6版)
8143 		 *
8144 		 * Returns: 0以上:受信したデータのサイズ  -1:エラー  -2:バッファのサイズが足りない  -3:受信データがない
8145 		 */
8146 		extern int NetWorkRecvUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek);
8147 
8148 		/**
8149 		 * UDPを使用した通信でデータが送信できる状態かどうかを調べる
8150 		 *
8151 		 * Returns: -1:エラー  dxlib_d.DxDataType.TRUE:送信可能  dxlib_d.DxDataType.FALSE:送信不可能
8152 		 */
8153 		version (none)
8154 		extern int CheckNetWorkSendUDP(int NetUDPHandle);
8155 
8156 		/**
8157 		 * UDPを使用した通信で新たな受信データが存在するかどうかを調べる
8158 		 *
8159 		 * Returns: -1:エラー  dxlib_d.DxDataType.TRUE:受信データあり  dxlib_d.DxDataType.FALSE:受信データなし
8160 		 */
8161 		extern int CheckNetWorkRecvUDP(int NetUDPHandle);
8162 
8163 		//使用不可
8164 
8165 		/**
8166 		 * HTTPを使用してネットワーク上のファイルをダウンロードする
8167 		 */
8168 		version (none)
8169 		extern int HTTP_FileDownload(const (char)* FileURL, const (char)* SavePath = null, void** SaveBufferP = null, int* FileSize = null, char** ParamList = null);
8170 
8171 		/**
8172 		 * HTTPを使用してネットワーク上のファイルのサイズを得る
8173 		 */
8174 		version (none)
8175 		extern int HTTP_GetFileSize(const (char)* FileURL);
8176 
8177 		/**
8178 		 * HTTPを使用したネットワーク上のファイルをダウンロードする処理を開始する
8179 		 */
8180 		version (none)
8181 		extern int HTTP_StartFileDownload(const (char)* FileURL, const (char)* SavePath, void** SaveBufferP = null, char** ParamList = null);
8182 
8183 		/**
8184 		 * HTTPを使用したネットワーク上のファイルのサイズを得る処理を開始する
8185 		 */
8186 		version (none)
8187 		extern int HTTP_StartGetFileSize(const (char)* FileURL);
8188 
8189 		/**
8190 		 * HTTPの処理を終了し、ハンドルを解放する
8191 		 */
8192 		version (none)
8193 		extern int HTTP_Close(int HttpHandle);
8194 
8195 		/**
8196 		 * 全てのハンドルに対して HTTP_Closeを行う
8197 		 */
8198 		version (none)
8199 		extern int HTTP_CloseAll();
8200 
8201 		/**
8202 		 * HTTP 処理の現在の状態を得る(NET_RES_COMPLETE等)
8203 		 */
8204 		version (none)
8205 		extern int HTTP_GetState(int HttpHandle);
8206 
8207 		/**
8208 		 * HTTP 処理でエラーが発生した場合、エラーの内容を得る(HTTP_ERR_NONE等)
8209 		 */
8210 		version (none)
8211 		extern int HTTP_GetError(int HttpHandle);
8212 
8213 		/**
8214 		 * HTTP 処理で対象となっているファイルのサイズを得る
8215 		 *
8216 		 * Returns: -1:エラー・若しくはまだファイルのサイズを取得していない  0以上:ファイルのサイズ
8217 		 */
8218 		version (none)
8219 		extern int HTTP_GetDownloadFileSize(int HttpHandle);
8220 
8221 		/**
8222 		 * HTTP 処理で既にダウンロードしたファイルのサイズを取得する
8223 		 */
8224 		version (none)
8225 		extern int HTTP_GetDownloadedFileSize(int HttpHandle);
8226 
8227 		/**
8228 		 * fgetsのネットワークハンドル版(-1:取得できず 0:取得できた)
8229 		 */
8230 		version (none)
8231 		extern int fgetsForNetHandle(int NetHandle, char* strbuffer);
8232 
8233 		/**
8234 		 * URLを解析する
8235 		 */
8236 		version (none)
8237 		extern int URLAnalys(const (char)* URL, char* HostBuf = null, char* PathBuf = null, char* FileNameBuf = null, int* PortBuf = null);
8238 
8239 		/**
8240 		 * HTTPに渡せない記号が使われた文字列を渡せるような文字列に変換する
8241 		 *
8242 		 * Returns: -1:エラー  0以上:変換後の文字列のサイズ
8243 		 */
8244 		version (none)
8245 		extern int URLConvert(char* URL, int ParamConvert = dxlib_d.DxDataType.TRUE, int NonConvert = dxlib_d.DxDataType.FALSE);
8246 
8247 		/**
8248 		 * HTTP用パラメータリストから1つのパラメータ文字列を作成する
8249 		 *
8250 		 * Returns: -1:エラー  0以上:パラメータの文字列の長さ
8251 		 */
8252 		version (none)
8253 		extern int URLParamAnalysis(char** ParamList, char** ParamStringP);
8254 	}
8255 
8256 	// DxInputString.cpp関数プロトタイプ宣言
8257 
8258 	version (DX_NON_INPUTSTRING) {
8259 	} else {
8260 		// 文字コードバッファ操作関係
8261 
8262 		/**
8263 		 * 文字コードバッファに文字コードをストックする
8264 		 */
8265 		extern int StockInputChar(dxlib_d.DxDataType.TCHAR CharCode);
8266 
8267 		/**
8268 		 * 文字コードバッファをクリアする
8269 		 */
8270 		extern int ClearInputCharBuf();
8271 
8272 		/**
8273 		 * 文字コードバッファに溜まったデータから文字コードを1つ取得する
8274 		 */
8275 		extern dxlib_d.DxDataType.TCHAR GetInputChar(int DeleteFlag);
8276 
8277 		/**
8278 		 * 文字コードバッファに溜まったデータから文字コードを1つ取得する、バッファになにも文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ
8279 		 */
8280 		extern dxlib_d.DxDataType.TCHAR GetInputCharWait(int DeleteFlag);
8281 
8282 		/**
8283 		 * 文字コードバッファに溜まったデータから1文字分取得する
8284 		 */
8285 		extern int GetOneChar(dxlib_d.DxDataType.TCHAR* CharBuffer, int DeleteFlag);
8286 
8287 		/**
8288 		 * 文字コードバッファに溜まったデータから1文字分取得する、バッファに何も文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ
8289 		 */
8290 		extern int GetOneCharWait(dxlib_d.DxDataType.TCHAR* CharBuffer, int DeleteFlag);
8291 
8292 		/**
8293 		 * 指定の文字コードがアスキーコントロールコードか調べる
8294 		 */
8295 		extern int GetCtrlCodeCmp(dxlib_d.DxDataType.TCHAR Char);
8296 	}
8297 
8298 	version (DX_NON_KEYEX) {
8299 	} else {
8300 		/**
8301 		 * 画面上に入力中の文字列を描画する
8302 		 */
8303 		extern int DrawIMEInputString(int x, int y, int SelectStringNum, int DrawCandidateList = dxlib_d.DxDataType.TRUE);
8304 
8305 		/**
8306 		 * IMEを使用するかどうかを設定する
8307 		 */
8308 		extern int SetUseIMEFlag(int UseFlag);
8309 
8310 		/**
8311 		 * IMEを使用するかどうかの設定を取得する
8312 		 */
8313 		extern int GetUseIMEFlag();
8314 
8315 		/**
8316 		 * IMEで入力できる最大文字数をMakeKeyInputの設定に合わせるかどうかをセットする
8317 		 *
8318 		 * Params:
8319 		 *      Flag = dxlib_d.DxDataType.TRUE:あわせる  dxlib_d.DxDataType.FALSE:あわせない(デフォルト)
8320 		 */
8321 		extern int SetInputStringMaxLengthIMESync(int Flag);
8322 
8323 		/**
8324 		 * IMEで一度に入力できる最大文字数を設定する(0:制限なし  1以上:指定の文字数で制限)
8325 		 *
8326 		 * Params:
8327 		 *      Length = ?
8328 		 */
8329 		extern int SetIMEInputStringMaxLength(int Length);
8330 	}
8331 
8332 	/**
8333 	 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る
8334 	 */
8335 	extern int GetStringPoint(const (dxlib_d.DxDataType.TCHAR)* String, int Point);
8336 
8337 	/**
8338 	 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る
8339 	 */
8340 	extern int GetStringPointWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int Point);
8341 
8342 	/**
8343 	 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る
8344 	 */
8345 	extern int GetStringPoint2(const (dxlib_d.DxDataType.TCHAR)* String, int Point);
8346 
8347 	/**
8348 	 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る
8349 	 */
8350 	extern int GetStringPoint2WithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int Point);
8351 
8352 	/**
8353 	 * 全角文字、半角文字入り乱れる中から文字数を取得する
8354 	 */
8355 	extern int GetStringLength(const (dxlib_d.DxDataType.TCHAR)* String);
8356 
8357 	version (DX_NON_FONT) {
8358 	} else {
8359 		/**
8360 		 * 描画可能領域に収まるように改行しながら文字列を描画
8361 		 */
8362 		extern int DrawObtainsString(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1);
8363 
8364 		/**
8365 		 * 描画可能領域に収まるように改行しながら文字列を描画
8366 		 */
8367 		extern int DrawObtainsNString(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1);
8368 
8369 		/**
8370 		 * 描画可能領域に収まるように改行しながら文字列を描画(クリップが文字単位)
8371 		 */
8372 		extern int DrawObtainsString_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1);
8373 
8374 		/**
8375 		 * 描画可能領域に収まるように改行しながら文字列を描画(クリップが文字単位)
8376 		 */
8377 		extern int DrawObtainsNString_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1);
8378 
8379 		/**
8380 		 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する
8381 		 */
8382 		extern int GetObtainsStringCharPosition(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int* PosX, int* PosY, int FontHandle = -1);
8383 
8384 		/**
8385 		 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する(クリップが文字単位)
8386 		 */
8387 		extern int GetObtainsStringCharPosition_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int* PosX, int* PosY, int FontHandle = -1);
8388 	}
8389 
8390 	/**
8391 	 * 描画可能領域に収まるように補正を加えながら矩形を描画
8392 	 */
8393 	extern int DrawObtainsBox(int x1, int y1, int x2, int y2, int AddY, uint Color, int FillFlag);
8394 
8395 	version (DX_NON_KEYEX) {
8396 	} else {
8397 		/**
8398 		 * 文字列の入力取得
8399 		 */
8400 		extern int InputStringToCustom(int x, int y, size_t BufLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = dxlib_d.DxDataType.FALSE, int EnableNewLineFlag = dxlib_d.DxDataType.FALSE, int DisplayCandidateList = dxlib_d.DxDataType.TRUE);
8401 
8402 		/**
8403 		 * 文字列の入力取得
8404 		 */
8405 		extern int KeyInputString(int x, int y, size_t CharMaxLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag);
8406 
8407 		/**
8408 		 * 半角文字列のみの入力取得
8409 		 */
8410 		extern int KeyInputSingleCharString(int x, int y, size_t CharMaxLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag);
8411 
8412 		/**
8413 		 * 数値の入力取得
8414 		 */
8415 		extern int KeyInputNumber(int x, int y, int MaxNum, int MinNum, int CancelValidFlag);
8416 
8417 		/**
8418 		 * IMEの入力モード文字列を取得する
8419 		 */
8420 		extern int GetIMEInputModeStr(dxlib_d.DxDataType.TCHAR* GetBuffer);
8421 
8422 		/**
8423 		 * IMEで入力中の文字列の情報を取得する
8424 		 */
8425 		extern const (.IMEINPUTDATA)* GetIMEInputData();
8426 
8427 		/**
8428 		 * (SetKeyInputStringColor2の旧関数)InputString関数使用時の文字の各色を変更する
8429 		 */
8430 		extern int SetKeyInputStringColor(dxlib_d.DxDataType.ULONGLONG NmlStr, dxlib_d.DxDataType.ULONGLONG NmlCur, dxlib_d.DxDataType.ULONGLONG IMEStrBack, dxlib_d.DxDataType.ULONGLONG IMECur, dxlib_d.DxDataType.ULONGLONG IMELine, dxlib_d.DxDataType.ULONGLONG IMESelectStr, dxlib_d.DxDataType.ULONGLONG IMEModeStr, dxlib_d.DxDataType.ULONGLONG NmlStrE = 0, dxlib_d.DxDataType.ULONGLONG IMESelectStrE = 0, dxlib_d.DxDataType.ULONGLONG IMEModeStrE = 0, dxlib_d.DxDataType.ULONGLONG IMESelectWinE = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMESelectWinF = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrBackColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrEdgeColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMEStr = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMEStrE = 0xFFFFFFFFFFFFFFFFUL);
8431 
8432 		/**
8433 		 * InputString関数使用時の文字の各色を変更する
8434 		 */
8435 		extern int SetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR等 */, uint Color);
8436 
8437 		/**
8438 		 * SetKeyInputStringColor2で設定した色をデフォルトに戻す
8439 		 */
8440 		extern int ResetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR等 */);
8441 
8442 		/**
8443 		 * キー入力文字列描画関連で使用するフォントのハンドルを変更する(-1でデフォルトのフォントハンドル)
8444 		 */
8445 		extern int SetKeyInputStringFont(int FontHandle);
8446 
8447 		/**
8448 		 * キー入力文字列処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モードを変更する
8449 		 */
8450 		extern int SetKeyInputStringEndCharaMode(int EndCharaMode /* DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE等 */);
8451 
8452 		/**
8453 		 * 入力モード文字列を描画する
8454 		 */
8455 		extern int DrawKeyInputModeString(int x, int y);
8456 
8457 		/**
8458 		 * キー入力データ初期化
8459 		 */
8460 		extern int InitKeyInput();
8461 
8462 		/**
8463 		 * 新しいキー入力ハンドルの作成
8464 		 */
8465 		extern int MakeKeyInput(size_t MaxStrLength, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = dxlib_d.DxDataType.FALSE, int EnableNewLineFlag = dxlib_d.DxDataType.FALSE);
8466 
8467 		/**
8468 		 * キー入力ハンドルの削除
8469 		 */
8470 		extern int DeleteKeyInput(int InputHandle);
8471 
8472 		/**
8473 		 * 指定のキー入力ハンドルをアクティブにする(-1を指定するとアクティブなキー入力ハンドルが無い状態になります)
8474 		 */
8475 		extern int SetActiveKeyInput(int InputHandle);
8476 
8477 		/**
8478 		 * 現在アクティブになっているキー入力ハンドルを取得する
8479 		 */
8480 		extern int GetActiveKeyInput();
8481 
8482 		/**
8483 		 * キー入力ハンドルの入力が終了しているか取得する
8484 		 */
8485 		extern int CheckKeyInput(int InputHandle);
8486 
8487 		/**
8488 		 * 入力が完了したキー入力ハンドルを再度編集状態に戻す
8489 		 */
8490 		extern int ReStartKeyInput(int InputHandle);
8491 
8492 		/**
8493 		 * キー入力ハンドル処理関数
8494 		 */
8495 		extern int ProcessActKeyInput();
8496 
8497 		/**
8498 		 * キー入力ハンドルの入力中情報の描画
8499 		 */
8500 		extern int DrawKeyInputString(int x, int y, int InputHandle, int DrawCandidateList = dxlib_d.DxDataType.TRUE);
8501 
8502 		/**
8503 		 * キー入力ハンドルの入力中文字列を描画する際の描画範囲を設定する
8504 		 */
8505 		extern int SetKeyInputDrawArea(int x1, int y1, int x2, int y2, int InputHandle);
8506 
8507 		/**
8508 		 * キー入力ハンドルの指定の領域を選択状態にする(SelectStartとSelectEndに-1を指定すると選択状態が解除されます)
8509 		 */
8510 		extern int SetKeyInputSelectArea(int SelectStart, int SelectEnd, int InputHandle);
8511 
8512 		/**
8513 		 * キー入力ハンドルの選択領域を取得する
8514 		 */
8515 		extern int GetKeyInputSelectArea(int* SelectStart, int* SelectEnd, int InputHandle);
8516 
8517 		/**
8518 		 * キー入力ハンドルの描画開始文字位置を設定する
8519 		 */
8520 		extern int SetKeyInputDrawStartPos(int DrawStartPos, int InputHandle);
8521 
8522 		/**
8523 		 * キー入力ハンドルの描画開始文字位置を取得する
8524 		 */
8525 		extern int GetKeyInputDrawStartPos(int InputHandle);
8526 
8527 		/**
8528 		 * キー入力ハンドルのキー入力時のカーソルの点滅する早さをセットする
8529 		 */
8530 		extern int SetKeyInputCursorBrinkTime(int Time);
8531 
8532 		/**
8533 		 * キー入力ハンドルのキー入力時のカーソルを点滅させるかどうかをセットする
8534 		 */
8535 		extern int SetKeyInputCursorBrinkFlag(int Flag);
8536 
8537 		/**
8538 		 * キー入力ハンドルに指定の文字列をセットする
8539 		 */
8540 		extern int SetKeyInputString(const (dxlib_d.DxDataType.TCHAR)* String, int InputHandle);
8541 
8542 		/**
8543 		 * キー入力ハンドルに指定の文字列をセットする
8544 		 */
8545 		extern int SetKeyInputStringWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int InputHandle);
8546 
8547 		/**
8548 		 * キー入力ハンドルに指定の数値を文字に置き換えてセットする
8549 		 */
8550 		extern int SetKeyInputNumber(int Number, int InputHandle);
8551 
8552 		/**
8553 		 * キー入力ハンドルに指定の浮動小数点値を文字に置き換えてセットする
8554 		 */
8555 		extern int SetKeyInputNumberToFloat(float Number, int InputHandle);
8556 
8557 		/**
8558 		 * キー入力ハンドルの入力中の文字列を取得する
8559 		 */
8560 		extern int GetKeyInputString(dxlib_d.DxDataType.TCHAR* StrBuffer, int InputHandle);
8561 
8562 		/**
8563 		 * キー入力ハンドルの入力中の文字列を整数値として取得する
8564 		 */
8565 		extern int GetKeyInputNumber(int InputHandle);
8566 
8567 		/**
8568 		 * キー入力ハンドルの入力中の文字列を浮動小数点値として取得する
8569 		 */
8570 		extern float GetKeyInputNumberToFloat(int InputHandle);
8571 
8572 		/**
8573 		 * キー入力ハンドルの現在のカーソル位置を設定する
8574 		 */
8575 		extern int SetKeyInputCursorPosition(int Position, int InputHandle);
8576 
8577 		/**
8578 		 * キー入力ハンドルの現在のカーソル位置を取得する
8579 		 */
8580 		extern int GetKeyInputCursorPosition(int InputHandle);
8581 	}
8582 
8583 	// DxFile.cpp関数プロトタイプ宣言
8584 
8585 	// ファイルアクセス関数
8586 
8587 	/**
8588 	 * ファイルを開く
8589 	 */
8590 	extern int FileRead_open(const (dxlib_d.DxDataType.TCHAR)* FilePath, int ASync = dxlib_d.DxDataType.FALSE);
8591 
8592 	/**
8593 	 * ファイルを開く
8594 	 */
8595 	extern int FileRead_open_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.DxDataType.FALSE);
8596 
8597 	/**
8598 	 * メモリに展開されたファイルを開く
8599 	 */
8600 	extern int FileRead_open_mem(const (void)* FileImage, size_t FileImageSize);
8601 
8602 	/**
8603 	 * ファイルのサイズを取得する
8604 	 */
8605 	extern dxlib_d.DxDataType.LONGLONG FileRead_size(const (dxlib_d.DxDataType.TCHAR)* FilePath);
8606 
8607 	/**
8608 	 * ファイルのサイズを取得する
8609 	 */
8610 	extern dxlib_d.DxDataType.LONGLONG FileRead_size_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
8611 
8612 	/**
8613 	 * ファイルを閉じる
8614 	 */
8615 	extern int FileRead_close(int FileHandle);
8616 
8617 	/**
8618 	 * ファイルポインタの読み込み位置を取得する
8619 	 */
8620 	extern dxlib_d.DxDataType.LONGLONG FileRead_tell(int FileHandle);
8621 
8622 	/**
8623 	 * ファイルポインタの読み込み位置を変更する
8624 	 */
8625 	extern int FileRead_seek(int FileHandle, dxlib_d.DxDataType.LONGLONG Offset, int Origin);
8626 
8627 	/**
8628 	 * ファイルからデータを読み込む
8629 	 */
8630 	extern int FileRead_read(void* Buffer, int ReadSize, int FileHandle);
8631 
8632 	/**
8633 	 * ファイル読み込みが完了しているかどうかを取得する
8634 	 */
8635 	extern int FileRead_idle_chk(int FileHandle);
8636 
8637 	/**
8638 	 * ファイルの読み込み位置が終端に達しているかどうかを取得する
8639 	 */
8640 	extern int FileRead_eof(int FileHandle);
8641 
8642 	/**
8643 	 * ファイルの文字コード形式を設定する(テキストファイル用)
8644 	 */
8645 	extern int FileRead_set_format(int FileHandle, int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */);
8646 
8647 	/**
8648 	 * ファイルから文字列を読み出す
8649 	 */
8650 	extern int FileRead_gets(dxlib_d.DxDataType.TCHAR* Buffer, int BufferSize, int FileHandle);
8651 
8652 	/**
8653 	 * ファイルから1文字読み出す
8654 	 */
8655 	extern dxlib_d.DxDataType.TCHAR FileRead_getc(int FileHandle);
8656 
8657 	/**
8658 	 * ファイルから書式化されたデータを読み出す
8659 	 */
8660 	extern int FileRead_scanf(int FileHandle, const (dxlib_d.DxDataType.TCHAR)* Format, ...);
8661 
8662 	/**
8663 	 * ファイル情報ハンドルを作成する
8664 	 *
8665 	 * Returns: -1:エラー  -1以外:ファイル情報ハンドル
8666 	 */
8667 	extern dxlib_d.DxDataType.DWORD_PTR FileRead_createInfo(const (dxlib_d.DxDataType.TCHAR)* ObjectPath);
8668 
8669 	/**
8670 	 * ファイル情報ハンドルを作成する
8671 	 *
8672 	 * Returns: -1:エラー  -1以外:ファイル情報ハンドル
8673 	 */
8674 	extern dxlib_d.DxDataType.DWORD_PTR FileRead_createInfo_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* ObjectPath, size_t ObjectPathLength);
8675 
8676 	/**
8677 	 * ファイル情報ハンドル中のファイルの数を取得する
8678 	 */
8679 	extern int FileRead_getInfoNum(dxlib_d.DxDataType.DWORD_PTR FileInfoHandle);
8680 
8681 	/**
8682 	 * ファイル情報ハンドル中のファイルの情報を取得する
8683 	 */
8684 	extern int FileRead_getInfo(int Index, .FILEINFO* Buffer, dxlib_d.DxDataType.DWORD_PTR FileInfoHandle);
8685 
8686 	/**
8687 	 * ファイル情報ハンドルを削除する
8688 	 */
8689 	extern int FileRead_deleteInfo(dxlib_d.DxDataType.DWORD_PTR FileInfoHandle);
8690 
8691 	/**
8692 	 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する
8693 	 *
8694 	 * Returns: -1:エラー  -1以外:ファイル検索ハンドル
8695 	 */
8696 	extern dxlib_d.DxDataType.DWORD_PTR FileRead_findFirst(const (dxlib_d.DxDataType.TCHAR)* FilePath, .FILEINFO* Buffer);
8697 
8698 	/**
8699 	 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する
8700 	 *
8701 	 * Returns: -1:エラー  -1以外:ファイル検索ハンドル
8702 	 */
8703 	extern dxlib_d.DxDataType.DWORD_PTR FileRead_findFirst_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .FILEINFO* Buffer);
8704 
8705 	/**
8706 	 * 条件の合致する次のファイルの情報を取得する
8707 	 *
8708 	 * Returns: -1:エラー  0:成功
8709 	 */
8710 	extern int FileRead_findNext(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFO* Buffer);
8711 
8712 	/**
8713 	 * ファイル検索ハンドルを閉じる
8714 	 *
8715 	 * Returns: -1:エラー  0:成功
8716 	 */
8717 	extern int FileRead_findClose(dxlib_d.DxDataType.DWORD_PTR FindHandle);
8718 
8719 	/**
8720 	 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルはFileRead_fullyLoad_deleteで削除する必要があります
8721 	 *
8722 	 * Returns: -1:エラー  -1以外:ハンドル
8723 	 */
8724 	extern int FileRead_fullyLoad(const (dxlib_d.DxDataType.TCHAR)* FilePath);
8725 
8726 	/**
8727 	 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルはFileRead_fullyLoad_deleteで削除する必要があります
8728 	 *
8729 	 * Returns: -1:エラー  -1以外:ハンドル
8730 	 */
8731 	extern int FileRead_fullyLoad_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
8732 
8733 	/**
8734 	 * FileRead_fullyLoadで読み込んだファイルのハンドルを削除する
8735 	 */
8736 	extern int FileRead_fullyLoad_delete(int FLoadHandle);
8737 
8738 	/**
8739 	 * FileRead_fullyLoadで読み込んだファイルの内容を格納したメモリアドレスを取得する
8740 	 */
8741 	extern const (void)* FileRead_fullyLoad_getImage(int FLoadHandle);
8742 
8743 	/**
8744 	 * FileRead_fullyLoadで読み込んだファイルのサイズを取得する
8745 	 */
8746 	extern dxlib_d.DxDataType.LONGLONG FileRead_fullyLoad_getSize(int FLoadHandle);
8747 
8748 	// 設定関係関数
8749 
8750 	/**
8751 	 * DXライブラリでストリームデータアクセスに使用する関数がデフォルトのものか調べる
8752 	 *
8753 	 * Returns: dxlib_d.DxDataType.TRUE:デフォルトのもの  dxlib_d.DxDataType.FALSE:デフォルトではない
8754 	 */
8755 	extern int GetStreamFunctionDefault();
8756 
8757 	/**
8758 	 * DXライブラリでストリームデータアクセスに使用する関数を変更する
8759 	 */
8760 	extern int ChangeStreamFunction(const (.STREAMDATASHREDTYPE2)* StreamThread);
8761 
8762 	/**
8763 	 * DXライブラリでストリームデータアクセスに使用する関数を変更する(wchar_t使用版)
8764 	 */
8765 	extern int ChangeStreamFunctionW(const (.STREAMDATASHREDTYPE2W)* StreamThreadW);
8766 
8767 	// 補助関係関数
8768 
8769 	/**
8770 	 * フルパスではないパス文字列をフルパスに変換する(CurrentDirはフルパスである必要がある(語尾に『\』があっても無くても良い))(CurrentDirがnullの場合は現在のカレントディレクトリを使用する)
8771 	 */
8772 	extern int ConvertFullPath(const (dxlib_d.DxDataType.TCHAR)* Src, dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* CurrentDir = null);
8773 
8774 	/**
8775 	 * フルパスではないパス文字列をフルパスに変換する(CurrentDirはフルパスである必要がある(語尾に『\』があっても無くても良い))(CurrentDirがnullの場合は現在のカレントディレクトリを使用する)
8776 	 */
8777 	extern int ConvertFullPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Src, size_t SrcLength, dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* CurrentDir = null, size_t CurrentDirLength = 0);
8778 
8779 	// DxInput.cpp関数プロトタイプ宣言
8780 
8781 	version (DX_NON_INPUT) {
8782 	} else {
8783 		// 入力状態取得関数
8784 
8785 		/**
8786 		 * キーボードの押下状態を取得する
8787 		 */
8788 		extern int CheckHitKey(int KeyCode);
8789 
8790 		/**
8791 		 * どれか1つでもキーが押されているかどうかを取得
8792 		 *
8793 		 * Returns: 押されていたら0以外
8794 		 */
8795 		extern int CheckHitKeyAll(int CheckType = DX_CHECKINPUT_ALL);
8796 
8797 		/**
8798 		 * すべてのキーの押下状態を取得する
8799 		 *
8800 		 * Params:
8801 		 *      KeyStateBuf = char型256個分の配列の先頭アドレス
8802 		 */
8803 		extern int GetHitKeyStateAll(DX_CHAR* KeyStateArray);
8804 
8805 		/**
8806 		 * ジョイパッドが接続されている数を取得する
8807 		 */
8808 		extern int GetJoypadNum();
8809 
8810 		/**
8811 		 * ジョイパッドのボタンの数を取得する
8812 		 */
8813 		extern int GetJoypadButtonNum(int InputType);
8814 
8815 		/**
8816 		 * ジョイパッドの入力状態を取得する
8817 		 */
8818 		extern int GetJoypadInputState(int InputType);
8819 
8820 		/**
8821 		 * ジョイパッドのアナログ的なスティック入力情報を得る
8822 		 */
8823 		extern int GetJoypadAnalogInput(int* XBuf, int* YBuf, int InputType);
8824 
8825 		/**
8826 		 * (使用非推奨)ジョイパッドのアナログ的なスティック入力情報を得る(右スティック用)
8827 		 */
8828 		extern int GetJoypadAnalogInputRight(int* XBuf, int* YBuf, int InputType);
8829 
8830 		/**
8831 		 * DirectInput から得られるジョイパッドの生のデータを取得する(DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す)
8832 		 */
8833 		extern int GetJoypadDirectInputState(int InputType, .DINPUT_JOYSTATE* DInputState);
8834 
8835 		/**
8836 		 * 指定の入力デバイスがXInputに対応しているかどうかを取得する(DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す)
8837 		 *
8838 		 * Returns: dxlib_d.DxDataType.TRUE:XInput対応の入力デバイス  dxlib_d.DxDataType.FALSE:XInput非対応の入力デバイス   -1:エラー
8839 		 */
8840 		extern int CheckJoypadXInput(int InputType);
8841 
8842 		/**
8843 		 * XInput から得られる入力デバイス(Xbox360コントローラ等)の生のデータを取得する(XInput非対応のパッドの場合はエラーとなり -1を返す、DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す)
8844 		 */
8845 		extern int GetJoypadXInputState(int InputType, .XINPUT_STATE* XInputState);
8846 
8847 		/**
8848 		 * ジョイパッドの入力に対応したキーボードの入力を設定する
8849 		 *
8850 		 * Params:
8851 		 *      InputType = 設定を変更するパッドの識別子(DX_INPUT_PAD1等)
8852 		 *      PadInput = 設定を変更するパッドボタンの識別子(PAD_INPUT_1等)
8853 		 *      KeyInput1 = PadInputを押下したことにするキーコード(KEY_INPUT_Aなど)その1
8854 		 *      KeyInput2 = その2、-1で設定なし
8855 		 *      KeyInput3 = その3、-1で設定なし
8856 		 *      KeyInput4 = その4、-1で設定なし
8857 		 */
8858 		extern int SetJoypadInputToKeyInput(int InputType, int PadInput, int KeyInput1, int KeyInput2 = -1, int KeyInput3 = -1, int KeyInput4 = -1);
8859 
8860 		/**
8861 		 * ジョイパッドの無効ゾーンの設定を行う(InputType:設定を変更するパッドの識別子(DX_INPUT_PAD1等)   Zone:新しい無効ゾーン(0.0~1.0)、デフォルト値は0.35)
8862 		 *
8863 		 * Params:
8864 		 *      InputType = ?
8865 		 *      Zone = ?
8866 		 */
8867 		extern int SetJoypadDeadZone(int InputType, double Zone);
8868 
8869 		/**
8870 		 * ジョイパッドの無効ゾーンの設定を取得する
8871 		 *
8872 		 * Params:
8873 		 *      InputType = 設定を変更するパッドの識別子(DX_INPUT_PAD1等)
8874 		 *
8875 		 * Returns: 無効ゾーン(0.0~1.0)
8876 		 */
8877 		extern double GetJoypadDeadZone(int InputType);
8878 
8879 		/**
8880 		 * ジョイパッドの振動を開始する
8881 		 */
8882 		extern int StartJoypadVibration(int InputType, int Power, int Time, int EffectIndex = -1);
8883 
8884 		/**
8885 		 * ジョイパッドの振動を停止する
8886 		 */
8887 		extern int StopJoypadVibration(int InputType, int EffectIndex = -1);
8888 
8889 		/**
8890 		 * ジョイパッドのPOV入力の状態を得る
8891 		 *
8892 		 * Returns: 指定のPOVデータの角度、単位は角度の100倍(90度なら9000) 中心位置にある場合は-1が返る
8893 		 */
8894 		extern int GetJoypadPOVState(int InputType, int POVNumber);
8895 
8896 		/**
8897 		 * ジョイパッドの再セットアップを行う(新たに接続されたジョイパッドがあったら検出される)
8898 		 */
8899 		extern int ReSetupJoypad();
8900 
8901 		/**
8902 		 * ジョイパッドの振動機能を使用するかどうかを設定する
8903 		 *
8904 		 * Params:
8905 		 *      Flag = dxlib_d.DxDataType.TRUE:使用する  dxlib_d.DxDataType.FALSE:使用しない
8906 		 */
8907 		extern int SetUseJoypadVibrationFlag(int Flag);
8908 	}
8909 
8910 	version (DX_NOTUSE_DRAWFUNCTION) {
8911 	} else {
8912 		// 画像処理系関数プロトタイプ宣言
8913 
8914 		// グラフィックハンドル作成関係関数
8915 
8916 		/**
8917 		 * 指定サイズのグラフィックハンドルを作成する
8918 		 */
8919 		extern int MakeGraph(int SizeX, int SizeY, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
8920 
8921 		/**
8922 		 * SetDrawScreenで描画対象にできるグラフィックハンドルを作成する
8923 		 */
8924 		extern int MakeScreen(int SizeX, int SizeY, int UseAlphaChannel = dxlib_d.DxDataType.FALSE);
8925 
8926 		/**
8927 		 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する
8928 		 */
8929 		extern int DerivationGraph(int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle);
8930 
8931 		/**
8932 		 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する(float版)
8933 		 */
8934 		extern int DerivationGraphF(float SrcX, float SrcY, float Width, float Height, int SrcGraphHandle);
8935 
8936 		/**
8937 		 * グラフィックハンドルを削除する
8938 		 */
8939 		extern int DeleteGraph(int GrHandle, int LogOutFlag = dxlib_d.DxDataType.FALSE);
8940 
8941 		/**
8942 		 * 指定のグラフィックハンドルと、同じグラフィックハンドルから派生しているグラフィックハンドル(DerivationGraphで派生したハンドル、LoadDivGraph 読み込んで作成された複数のハンドル)を一度に削除する
8943 		 */
8944 		extern int DeleteSharingGraph(int GrHandle);
8945 
8946 		/**
8947 		 * 有効なグラフィックハンドルの数を取得する
8948 		 */
8949 		extern int GetGraphNum();
8950 
8951 		/**
8952 		 * グラフィックハンドルを指定の色で塗りつぶす
8953 		 */
8954 		extern int FillGraph(int GrHandle, int Red, int Green, int Blue, int Alpha = 255);
8955 
8956 		/**
8957 		 * グラフィックハンドルの指定の範囲を指定の色で塗りつぶす
8958 		 */
8959 		extern int FillRectGraph(int GrHandle, int x, int y, int Width, int Height, int Red, int Green, int Blue, int Alpha = 255);
8960 
8961 		/**
8962 		 * 指定のグラフィックハンドルが削除された際に1にする変数のアドレスを設定する
8963 		 */
8964 		extern int SetGraphLostFlag(int GrHandle, int* LostFlag);
8965 
8966 		/**
8967 		 * すべてのグラフィックハンドルを削除する
8968 		 */
8969 		extern int InitGraph(int LogOutFlag = dxlib_d.DxDataType.FALSE);
8970 
8971 		/**
8972 		 * ファイルから画像を読み込んだ全てのグラフィックハンドルについて、再度ファイルから画像を読み込む
8973 		 */
8974 		extern int ReloadFileGraphAll();
8975 
8976 		// シャドウマップハンドル関係関数
8977 
8978 		/**
8979 		 * シャドウマップハンドルを作成する
8980 		 */
8981 		extern int MakeShadowMap(int SizeX, int SizeY);
8982 
8983 		/**
8984 		 * シャドウマップハンドルを削除する
8985 		 */
8986 		extern int DeleteShadowMap(int SmHandle);
8987 
8988 		/**
8989 		 * シャドウマップが想定するライトの方向を設定する
8990 		 */
8991 		extern int SetShadowMapLightDirection(int SmHandle, .VECTOR Direction);
8992 
8993 		/**
8994 		 * シャドウマップへの描画の準備を行う
8995 		 */
8996 		extern int ShadowMap_DrawSetup(int SmHandle);
8997 
8998 		/**
8999 		 * シャドウマップへの描画を終了する
9000 		 */
9001 		extern int ShadowMap_DrawEnd();
9002 
9003 		/**
9004 		 * 描画で使用するシャドウマップを指定する、有効なスロットは0~2、SmHandleに-1を渡すと指定のスロットのシャドウマップを解除
9005 		 */
9006 		extern int SetUseShadowMap(int SmSlotIndex, int SmHandle);
9007 
9008 		/**
9009 		 * シャドウマップに描画する際の範囲を設定する(この関数で描画範囲を設定しない場合は視錐台を拡大した範囲が描画範囲となる)
9010 		 */
9011 		extern int SetShadowMapDrawArea(int SmHandle, .VECTOR MinPosition, .VECTOR MaxPosition);
9012 
9013 		/**
9014 		 * SetShadowMapDrawAreaの設定を解除する
9015 		 */
9016 		extern int ResetShadowMapDrawArea(int SmHandle);
9017 
9018 		/**
9019 		 * シャドウマップを使用した描画時の補正深度を設定する
9020 		 */
9021 		extern int SetShadowMapAdjustDepth(int SmHandle, float Depth);
9022 
9023 		/**
9024 		 * シャドウマップ作成時や適用時に使用するビュー行列と射影行列を乗算した行列を取得する
9025 		 */
9026 		extern int GetShadowMapViewProjectionMatrix(int SmHandle, .MATRIX* MatrixBuffer);
9027 
9028 		/**
9029 		 * シャドウマップを画面にテスト描画する
9030 		 */
9031 		extern int TestDrawShadowMap(int SmHandle, int x1, int y1, int x2, int y2);
9032 
9033 		// グラフィックハンドルへの画像転送関数
9034 
9035 		/**
9036 		 * BMPの内容をグラフィックハンドルに転送
9037 		 */
9038 		extern int BltBmpToGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int CopyPointX, int CopyPointY, int GrHandle);
9039 
9040 		/**
9041 		 * BMPの内容を分割作成したグラフィックハンドルたちに転送
9042 		 */
9043 		extern int BltBmpToDivGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int AllNum, int XNum, int YNum, int Width, int Height, const (int)* GrHandle, int ReverseFlag);
9044 
9045 		/**
9046 		 * BMP か BASEIMAGEをグラフィックハンドルに転送
9047 		 */
9048 		extern int BltBmpOrGraphImageToGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int CopyPointX, int CopyPointY, int GrHandle);
9049 
9050 		/**
9051 		 * BMP か BASEIMAGEの指定の領域をグラフィックハンドルに転送
9052 		 */
9053 		extern int BltBmpOrGraphImageToGraph2(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, const (dxlib_d.DxDataType.RECT)* SrcRect, int DestX, int DestY, int GrHandle);
9054 
9055 		/**
9056 		 * BMP か BASEIMAGEを分割作成したグラフィックハンドルたちに転送
9057 		 */
9058 		extern int BltBmpOrGraphImageToDivGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int Width, int Height, const (int)* GrHandle, int ReverseFlag);
9059 
9060 		/**
9061 		 * BMP か BASEIMAGEを分割作成したグラフィックハンドルたちに転送(float型)
9062 		 */
9063 		extern int BltBmpOrGraphImageToDivGraphF(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float Width, float Height, const (int)* GrHandle, int ReverseFlag);
9064 
9065 		// 画像からグラフィックハンドルを作成する関数
9066 
9067 		/**
9068 		 * 画像ファイルからグラフィックハンドルを作成する
9069 		 */
9070 		extern int LoadBmpToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL);
9071 
9072 		/**
9073 		 * 画像ファイルからグラフィックハンドルを作成する
9074 		 */
9075 		extern int LoadBmpToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL);
9076 
9077 		/**
9078 		 * 画像ファイルからグラフィックハンドルを作成する
9079 		 */
9080 		extern int LoadGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9081 
9082 		/**
9083 		 * 画像ファイルからグラフィックハンドルを作成する
9084 		 */
9085 		extern int LoadGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9086 
9087 		/**
9088 		 * 画像ファイルを反転したものでグラフィックハンドルを作成する
9089 		 */
9090 		extern int LoadReverseGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9091 
9092 		/**
9093 		 * 画像ファイルを反転したものでグラフィックハンドルを作成する
9094 		 */
9095 		extern int LoadReverseGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9096 
9097 		/**
9098 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9099 		 */
9100 		extern int LoadDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9101 
9102 		/**
9103 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9104 		 */
9105 		extern int LoadDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9106 
9107 		/**
9108 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9109 		 */
9110 		extern int LoadDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9111 
9112 		/**
9113 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9114 		 */
9115 		extern int LoadDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9116 
9117 		/**
9118 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9119 		 */
9120 		extern int LoadDivBmpToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag, int ReverseFlag);
9121 
9122 		/**
9123 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9124 		 */
9125 		extern int LoadDivBmpToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag, int ReverseFlag);
9126 
9127 		/**
9128 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9129 		 */
9130 		extern int LoadDivBmpToGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag, int ReverseFlag);
9131 
9132 		/**
9133 		 * 画像ファイルを分割してグラフィックハンドルを作成する
9134 		 */
9135 		extern int LoadDivBmpToGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag, int ReverseFlag);
9136 
9137 		/**
9138 		 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
9139 		 */
9140 		extern int LoadReverseDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9141 
9142 		/**
9143 		 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
9144 		 */
9145 		extern int LoadReverseDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9146 
9147 		/**
9148 		 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
9149 		 */
9150 		extern int LoadReverseDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9151 
9152 		/**
9153 		 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
9154 		 */
9155 		extern int LoadReverseDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE);
9156 
9157 		/**
9158 		 * 画像ファイルからブレンド用グラフィックハンドルを作成する
9159 		 */
9160 		extern int LoadBlendGraph(const (dxlib_d.DxDataType.TCHAR)* FileName);
9161 
9162 		/**
9163 		 * 画像ファイルからブレンド用グラフィックハンドルを作成する
9164 		 */
9165 		extern int LoadBlendGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
9166 
9167 		/**
9168 		 * メモリ上の画像イメージからグラフィックハンドルを作成する
9169 		 */
9170 		extern int CreateGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9171 
9172 		/**
9173 		 * メモリ上の画像イメージから既存のグラフィックハンドルにデータを転送する
9174 		 */
9175 		extern int ReCreateGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int GrHandle, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9176 
9177 		/**
9178 		 * メモリ上の画像イメージから分割グラフィックハンドルを作成する
9179 		 */
9180 		extern int CreateDivGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0);
9181 
9182 		/**
9183 		 * メモリ上の画像イメージから分割グラフィックハンドルを作成する(float版)
9184 		 */
9185 		extern int CreateDivGraphFFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0);
9186 
9187 		/**
9188 		 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する
9189 		 */
9190 		extern int ReCreateDivGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0);
9191 
9192 		/**
9193 		 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する(float版)
9194 		 */
9195 		extern int ReCreateDivGraphFFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0);
9196 
9197 		/**
9198 		 * ビットマップデータからグラフィックハンドルを作成する
9199 		 */
9200 		extern int CreateGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9201 
9202 		/**
9203 		 * ビットマップデータから既存のグラフィックハンドルにデータを転送する
9204 		 */
9205 		extern int ReCreateGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int GrHandle, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9206 
9207 		/**
9208 		 * ビットマップデータから分割グラフィックハンドルを作成する
9209 		 */
9210 		extern int CreateDivGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null);
9211 
9212 		/**
9213 		 * ビットマップデータから分割グラフィックハンドルを作成する(float版)
9214 		 */
9215 		extern int CreateDivGraphFFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null);
9216 
9217 		/**
9218 		 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する
9219 		 */
9220 		extern int ReCreateDivGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null);
9221 
9222 		/**
9223 		 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する(float版)
9224 		 */
9225 		extern int ReCreateDivGraphFFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null);
9226 
9227 		/**
9228 		 * 基本イメージデータからサイズを割り出し、それに合ったグラフィックハンドルを作成する
9229 		 */
9230 		extern int CreateDXGraph(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag);
9231 
9232 		/**
9233 		 * 基本イメージデータからグラフィックハンドルを作成する
9234 		 */
9235 		extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9236 
9237 		/**
9238 		 * 基本イメージデータからグラフィックハンドルを作成する
9239 		 */
9240 		extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9241 
9242 		/**
9243 		 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する
9244 		 */
9245 		extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int GrHandle, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9246 
9247 		/**
9248 		 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する
9249 		 */
9250 		extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int GrHandle, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9251 
9252 		/**
9253 		 * 基本イメージデータから分割グラフィックハンドルを作成する
9254 		 */
9255 		extern int CreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9256 
9257 		/**
9258 		 * 基本イメージデータから分割グラフィックハンドルを作成する(float版)
9259 		 */
9260 		extern int CreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9261 
9262 		/**
9263 		 * 基本イメージデータから分割グラフィックハンドルを作成する
9264 		 */
9265 		extern int CreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9266 
9267 		/**
9268 		 * 基本イメージデータから分割グラフィックハンドルを作成する(float版)
9269 		 */
9270 		extern int CreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9271 
9272 		/**
9273 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
9274 		 */
9275 		extern int ReCreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9276 
9277 		/**
9278 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版)
9279 		 */
9280 		extern int ReCreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9281 
9282 		/**
9283 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
9284 		 */
9285 		extern int ReCreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9286 
9287 		/**
9288 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版)
9289 		 */
9290 		extern int ReCreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9291 
9292 		/**
9293 		 * メモリ上のビットマップイメージからグラフィックハンドルを作成する
9294 		 */
9295 		extern int CreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, const (void)* AlphaImage = null, int GrHandle = -1);
9296 
9297 		/**
9298 		 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する
9299 		 */
9300 		extern int CreateDivGraph(int Width, int Height, int Pitch, const (void)* RGBImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, const (void)* AlphaImage = null);
9301 
9302 		/**
9303 		 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する(float版)
9304 		 */
9305 		extern int CreateDivGraphF(int Width, int Height, int Pitch, const (void)* RGBImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, const (void)* AlphaImage = null);
9306 
9307 		/**
9308 		 * メモリ上のビットマップイメージからグラフィックハンドルを再作成する
9309 		 */
9310 		extern int ReCreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, int GrHandle, const (void)* AlphaImage = null);
9311 
9312 		version (DX_NON_SOFTIMAGE) {
9313 		} else {
9314 			/**
9315 			 * ソフトウエアで扱うイメージからブレンド用画像グラフィックハンドルを作成する
9316 			 *
9317 			 * Returns: -1:エラー  -1以外:ブレンド用グラフィックハンドル
9318 			 */
9319 			extern int CreateBlendGraphFromSoftImage(int SIHandle);
9320 
9321 			/**
9322 			 * ソフトウエアで扱うイメージからグラフィックハンドルを作成する
9323 			 *
9324 			 * Returns: -1:エラー  -1以外:グラフィックハンドル
9325 			 */
9326 			extern int CreateGraphFromSoftImage(int SIHandle);
9327 
9328 			/**
9329 			 * ソフトウエアで扱うイメージの指定の領域を使ってグラフィックハンドルを作成する
9330 			 *
9331 			 * Returns: -1:エラー  -1以外:グラフィックハンドル
9332 			 */
9333 			extern int CreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY);
9334 
9335 			/**
9336 			 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
9337 			 */
9338 			extern int ReCreateGraphFromSoftImage(int SIHandle, int GrHandle);
9339 
9340 			/**
9341 			 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
9342 			 */
9343 			extern int ReCreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY, int GrHandle);
9344 
9345 			/**
9346 			 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する
9347 			 */
9348 			extern int CreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray);
9349 
9350 			/**
9351 			 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する(float版)
9352 			 */
9353 			extern int CreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray);
9354 
9355 			/**
9356 			 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する
9357 			 */
9358 			extern int ReCreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray);
9359 
9360 			/**
9361 			 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する(float版)
9362 			 */
9363 			extern int ReCreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray);
9364 		}
9365 
9366 		/**
9367 		 * 基本イメージデータからグラフィックハンドルを作成する
9368 		 */
9369 		extern int CreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage);
9370 
9371 		/**
9372 		 * 基本イメージデータの指定の領域を使ってグラフィックハンドルを作成する
9373 		 */
9374 		extern int CreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY);
9375 
9376 		/**
9377 		 * 基本イメージデータから既存のグラフィックハンドルに画像データを転送する
9378 		 */
9379 		extern int ReCreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage, int GrHandle);
9380 
9381 		/**
9382 		 * 基本イメージデータの指定の領域を使って既存のグラフィックハンドルに画像データを転送する
9383 		 */
9384 		extern int ReCreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY, int GrHandle);
9385 
9386 		/**
9387 		 * 基本イメージデータから分割グラフィックハンドルを作成する
9388 		 */
9389 		extern int CreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray);
9390 
9391 		/**
9392 		 * 基本イメージデータから分割グラフィックハンドルを作成する(float版)
9393 		 */
9394 		extern int CreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray);
9395 
9396 		/**
9397 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
9398 		 */
9399 		extern int ReCreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray);
9400 
9401 		/**
9402 		 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版)
9403 		 */
9404 		extern int ReCreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray);
9405 
9406 		/**
9407 		 * 画像ファイルからグラフィックハンドルへ画像データを転送する
9408 		 */
9409 		extern int ReloadGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int GrHandle, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9410 
9411 		/**
9412 		 * 画像ファイルからグラフィックハンドルへ画像データを転送する
9413 		 */
9414 		extern int ReloadGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int GrHandle, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9415 
9416 		/**
9417 		 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する
9418 		 */
9419 		extern int ReloadDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9420 
9421 		/**
9422 		 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する
9423 		 */
9424 		extern int ReloadDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9425 
9426 		/**
9427 		 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する(float版)
9428 		 */
9429 		extern int ReloadDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9430 
9431 		/**
9432 		 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する(float版)
9433 		 */
9434 		extern int ReloadDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE);
9435 
9436 		/**
9437 		 * ReloadGraphの画像反転処理追加版
9438 		 */
9439 		extern int ReloadReverseGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int GrHandle);
9440 
9441 		/**
9442 		 * ReloadGraphの画像反転処理追加版
9443 		 */
9444 		extern int ReloadReverseGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int GrHandle);
9445 
9446 		/**
9447 		 * ReloadDivGraphの画像反転処理追加版
9448 		 */
9449 		extern int ReloadReverseDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray);
9450 
9451 		/**
9452 		 * ReloadDivGraphの画像反転処理追加版
9453 		 */
9454 		extern int ReloadReverseDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray);
9455 
9456 		/**
9457 		 * ReloadDivGraphの画像反転処理追加版(float版)
9458 		 */
9459 		extern int ReloadReverseDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray);
9460 
9461 		/**
9462 		 * ReloadDivGraphの画像反転処理追加版(float版)
9463 		 */
9464 		extern int ReloadReverseDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray);
9465 
9466 		// グラフィックハンドル作成時設定係関数
9467 
9468 		/**
9469 		 * SetCreateGraphColorBitDepthの旧名称
9470 		 */
9471 		extern int SetGraphColorBitDepth(int ColorBitDepth);
9472 
9473 		/**
9474 		 * GetCreateGraphColorBitDepthの旧名称
9475 		 */
9476 		extern int GetGraphColorBitDepth();
9477 
9478 		/**
9479 		 * 作成するグラフィックハンドルの色深度を設定する
9480 		 */
9481 		extern int SetCreateGraphColorBitDepth(int BitDepth);
9482 
9483 		/**
9484 		 * 作成するグラフィックハンドルの色深度を取得する
9485 		 */
9486 		extern int GetCreateGraphColorBitDepth();
9487 
9488 		/**
9489 		 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を設定する
9490 		 */
9491 		extern int SetCreateGraphChannelBitDepth(int BitDepth);
9492 
9493 		/**
9494 		 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を取得する
9495 		 */
9496 		extern int GetCreateGraphChannelBitDepth();
9497 
9498 		/**
9499 		 * SetDrawScreenに引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成するかどうかを設定する
9500 		 *
9501 		 * Params:
9502 		 *      Flag = dxlib_d.DxDataType.TRUE:描画可能グラフィックハンドルを作成する  FLASE:通常のグラフィックハンドルを作成する(デフォルト)
9503 		 */
9504 		extern int SetDrawValidGraphCreateFlag(int Flag);
9505 
9506 		/**
9507 		 * SetDrawScreenに引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成するかどうかを設定を取得する
9508 		 */
9509 		extern int GetDrawValidGraphCreateFlag();
9510 
9511 		/**
9512 		 * SetDrawValidGraphCreateFlagの旧名称
9513 		 */
9514 		extern int SetDrawValidFlagOf3DGraph(int Flag);
9515 
9516 		/**
9517 		 * 画像ファイルからグラフィックハンドルを作成する際に画像左上の色を透過色として扱うかどうかを設定する
9518 		 *
9519 		 * Params:
9520 		 *      Flag = dxlib_d.DxDataType.TRUE:透過色として扱う  dxlib_d.DxDataType.FALSE:透過色として扱わない(デフォルト)
9521 		 */
9522 		extern int SetLeftUpColorIsTransColorFlag(int Flag);
9523 
9524 		/**
9525 		 * 読み込む画像がパレット画像の場合、パレット画像として使用できる場合はパレット画像として使用するかどうかを設定する
9526 		 *
9527 		 * Params:
9528 		 *      Flag = dxlib_d.DxDataType.TRUE:パレット画像として使用できる場合はパレット画像として使用する(デフォルト)  dxlib_d.DxDataType.FALSE:パレット画像として使用できる場合もパレット画像としては使用しない(通常タイプの画像に変換して使用する)
9529 		 */
9530 		extern int SetUsePaletteGraphFlag(int Flag);
9531 
9532 		/**
9533 		 * ブレンド処理用画像を作成するかどうか(要は画像の赤成分をα成分として扱うかどうか)の設定を行う
9534 		 *
9535 		 * Params:
9536 		 *      Flag = dxlib_d.DxDataType.TRUE:ブレンド画像として読み込む  dxlib_d.DxDataType.FALSE:通常画像として読み込む(デフォルト)
9537 		 */
9538 		extern int SetUseBlendGraphCreateFlag(int Flag);
9539 
9540 		/**
9541 		 * ブレンド処理用画像を作成するかどうか(要は画像の赤成分をα成分として扱うかどうか)の設定を取得する
9542 		 */
9543 		extern int GetUseBlendGraphCreateFlag();
9544 
9545 		/**
9546 		 * アルファテストを使用するグラフィックハンドルを作成するかどうかを設定する
9547 		 *
9548 		 * Params:
9549 		 *      Flag = dxlib_d.DxDataType.TRUE:アルファテストを使用する(デフォルト)  dxlib_d.DxDataType.FALSE:アルファテストを使用しない
9550 		 */
9551 		extern int SetUseAlphaTestGraphCreateFlag(int Flag);
9552 
9553 		/**
9554 		 * アルファテストを使用するグラフィックハンドルを作成するかどうかを取得する
9555 		 */
9556 		extern int GetUseAlphaTestGraphCreateFlag();
9557 
9558 		/**
9559 		 * SetUseAlphaTestGraphCreateFlagの旧名称
9560 		 */
9561 		extern int SetUseAlphaTestFlag(int Flag);
9562 
9563 		/**
9564 		 * GetUseAlphaTestGraphCreateFlagの旧名称
9565 		 */
9566 		extern int GetUseAlphaTestFlag();
9567 
9568 		/**
9569 		 * キューブマップテクスチャを作成するかどうかのフラグを設定する
9570 		 */
9571 		extern int SetCubeMapTextureCreateFlag(int Flag);
9572 
9573 		/**
9574 		 * キューブマップテクスチャを作成するかどうかのフラグを取得する
9575 		 */
9576 		extern int GetCubeMapTextureCreateFlag();
9577 
9578 		/**
9579 		 * SetDrawBlendMode関数の第1引数にDX_BLENDMODE_NOBLENDを代入した際に、デフォルトでは第二引数は内部で255を指定したことになるが、その自動255化をしないかどうかを設定する。αチャンネル付き画像に対して描画を行う場合のみ意味がある関数
9580 		 *
9581 		 * Params:
9582 		 *      Flag = dxlib_d.DxDataType.TRUE:しない(第二引数の値が使用される)   dxlib_d.DxDataType.FALSE:する(第二引数の値は無視されて 255が常に使用される)(デフォルト)
9583 		 */
9584 		extern int SetUseNoBlendModeParam(int Flag);
9585 
9586 		/**
9587 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)αチャンネル付きグラフィックハンドルを作成するかどうかを設定する(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません)
9588 		 *
9589 		 * Params:
9590 		 *      Flag = dxlib_d.DxDataType.TRUE:αチャンネル付き   dxlib_d.DxDataType.FALSE:αチャンネルなし(デフォルト)
9591 		 */
9592 		extern int SetDrawValidAlphaChannelGraphCreateFlag(int Flag);
9593 
9594 		/**
9595 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)αチャンネル付きグラフィックハンドルを作成するかどうかを取得する
9596 		 */
9597 		extern int GetDrawValidAlphaChannelGraphCreateFlag();
9598 
9599 		/**
9600 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを設定する(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません)、グラフィックスデバイスが浮動小数点型のピクセルフォーマットに対応していない場合はグラフィックハンドルの作成に失敗する
9601 		 *
9602 		 * Params:
9603 		 *      Flag = dxlib_d.DxDataType.TRUE:浮動小数点型  dxlib_d.DxDataType.FALSE:整数型(デフォルト)
9604 		 */
9605 		extern int SetDrawValidFloatTypeGraphCreateFlag(int Flag);
9606 
9607 		/**
9608 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを取得する
9609 		 */
9610 		extern int GetDrawValidFloatTypeGraphCreateFlag();
9611 
9612 		/**
9613 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを設定する
9614 		 *
9615 		 * Params:
9616 		 *      Flag = dxlib_d.DxDataType.TRUE:専用のZバッファを作成する(デフォルト)  dxlib_d.DxDataType.FALSE:専用のZバッファは作成しない
9617 		 */
9618 		extern int SetDrawValidGraphCreateZBufferFlag(int Flag);
9619 
9620 		/**
9621 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを取得する
9622 		 */
9623 		extern int GetDrawValidGraphCreateZBufferFlag();
9624 
9625 		/**
9626 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するZバッファのビット深度を設定する(BitDepth:ビット深度(指定可能な値は16, 24, 32の何れか(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません)
9627 		 *
9628 		 * Params:
9629 		 *      BitDepth = ?
9630 		 */
9631 		extern int SetCreateDrawValidGraphZBufferBitDepth(int BitDepth);
9632 
9633 		/**
9634 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するZバッファのビット深度を取得する
9635 		 */
9636 		extern int GetCreateDrawValidGraphZBufferBitDepth();
9637 
9638 		/**
9639 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するMipMapのレベルを設定する
9640 		 */
9641 		extern int SetCreateDrawValidGraphMipLevels(int MipLevels);
9642 
9643 		/**
9644 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するMipMapのレベルを取得する
9645 		 */
9646 		extern int GetCreateDrawValidGraphMipLevels();
9647 
9648 		/**
9649 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用する色のチャンネル数を設定する(ChannelNum:チャンネル数(指定可能な値は1, 2, 4の何れか(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません)
9650 		 *
9651 		 * Params:
9652 		 *      ChannelNum = ?
9653 		 */
9654 		extern int SetCreateDrawValidGraphChannelNum(int ChannelNum);
9655 
9656 		/**
9657 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用する色のチャンネル数を取得する
9658 		 */
9659 		extern int GetCreateDrawValidGraphChannelNum();
9660 
9661 		/**
9662 		 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するマルチサンプリング(アンチエイリアシング)設定を行う(Samples:マルチサンプル処理に使用するドット数(多いほど重くなります)  Quality:マルチサンプル処理の品質)
9663 		 *
9664 		 * Params:
9665 		 *      Samples = ?
9666 		 *      Quality = ?
9667 		 */
9668 		extern int SetCreateDrawValidGraphMultiSample(int Samples, int Quality);
9669 
9670 		/**
9671 		 * SetCreateDrawValidGraphMultiSampleの旧名称
9672 		 */
9673 		extern int SetDrawValidMultiSample(int Samples, int Quality);
9674 
9675 		/**
9676 		 * 指定のマルチサンプル数で使用できる最大クオリティ値を取得する(戻り値がマイナスの場合は引数のサンプル数が使用できないことを示します)
9677 		 */
9678 		extern int GetMultiSampleQuality(int Samples);
9679 
9680 		/**
9681 		 * 透過色機能を使用するかどうかを設定する
9682 		 *
9683 		 * Params:
9684 		 *      Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
9685 		 */
9686 		extern int SetUseTransColor(int Flag);
9687 
9688 		/**
9689 		 * 透過色機能を使用することを前提とした画像データの読み込み処理を行うかどうかを設定する(dxlib_d.DxDataType.TRUEにするとSetDrawMode(DX_DRAWMODE_BILINEAR);をした状態でDrawGraphF等の浮動小数点型座標を受け取る関数で小数点以下の値を指定した場合に発生する描画結果の不自然を緩和する効果があります (デフォルトはdxlib_d.DxDataType.FALSE))
9690 		 */
9691 		extern int SetUseTransColorGraphCreateFlag(int Flag);
9692 
9693 		/**
9694 		 * SetUseAlphaChannelGraphCreateFlagの旧名称
9695 		 */
9696 		extern int SetUseGraphAlphaChannel(int Flag);
9697 
9698 		/**
9699 		 * GetUseAlphaChannelGraphCreateFlagの旧名称
9700 		 */
9701 		extern int GetUseGraphAlphaChannel();
9702 
9703 		/**
9704 		 * αチャンネル付きグラフィックハンドルを作成するかどうかを設定する
9705 		 *
9706 		 * Params:
9707 		 *      Flag = dxlib_d.DxDataType.TRUE:αチャンネル付き   dxlib_d.DxDataType.FALSE:αチャンネル無し
9708 		 */
9709 		extern int SetUseAlphaChannelGraphCreateFlag(int Flag);
9710 
9711 		/**
9712 		 * αチャンネル付きグラフィックハンドルを作成するかどうかを取得する
9713 		 *
9714 		 * Returns: dxlib_d.DxDataType.TRUE:αチャンネル付き   dxlib_d.DxDataType.FALSE:αチャンネル無し
9715 		 */
9716 		extern int GetUseAlphaChannelGraphCreateFlag();
9717 
9718 		/**
9719 		 * Direct3Dの管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを設定する、管理機能を使用するとグラフィックスデバイスのVRAM容量以上の画像を扱うことができる代わりにシステムメモリの使用量が増えます
9720 		 *
9721 		 * Params:
9722 		 *      Flag = dxlib_d.DxDataType.TRUE:管理機能を使用する(デフォルト)  dxlib_d.DxDataType.FALSE:管理機能を使用しない
9723 		 */
9724 		extern int SetUseNotManageTextureFlag(int Flag);
9725 
9726 		/**
9727 		 * Direct3Dの管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを取得する
9728 		 */
9729 		extern int GetUseNotManageTextureFlag();
9730 
9731 		/**
9732 		 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを指定する(Direct3D9環境ならDX_TEXTUREFORMAT_DIRECT3D9_R8G8B8など、0を渡すと解除)
9733 		 */
9734 		extern int SetUsePlatformTextureFormat(int PlatformTextureFormat);
9735 
9736 		/**
9737 		 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを取得する
9738 		 */
9739 		extern int GetUsePlatformTextureFormat();
9740 
9741 		/**
9742 		 * 作成するグラフィックハンドルに適用する透過色を設定する
9743 		 *
9744 		 * Params:
9745 		 *      Red = 透過色を光の3原色で表したもの(0~255)
9746 		 *      Green = 透過色を光の3原色で表したもの(0~255)
9747 		 *      Blue = 透過色を光の3原色で表したもの(0~255)
9748 		 */
9749 		extern int SetTransColor(int Red, int Green, int Blue);
9750 
9751 		/**
9752 		 * 作成するグラフィックハンドルに適用する透過色を取得する
9753 		 */
9754 		extern int GetTransColor(int* Red, int* Green, int* Blue);
9755 
9756 		/**
9757 		 * 2のn乗ではないサイズの画像を複数のテクスチャを使用してVRAMの無駄を省くかどうかを設定する、複数のテクスチャを使用する場合はVRAM容量の節約ができる代わりに速度の低下やバイリニアフィルタリング描画時にテクスチャとテクスチャの境目が良く見るとわかる等の弊害があります
9758 		 *
9759 		 * Params:
9760 		 *      Flag = dxlib_d.DxDataType.TRUE:複数のテクスチャを使用する   dxlib_d.DxDataType.FALSE:なるべく1枚のテクスチャで済ます(デフォルト)
9761 		 */
9762 		extern int SetUseDivGraphFlag(int Flag);
9763 
9764 		/**
9765 		 * LoadGraphなどの際にファイル名の末尾に_aが付いたアルファチャンネル用の画像ファイルを追加で読み込む処理を行うかどうかを設定する
9766 		 *
9767 		 * Params:
9768 		 *      Flag = dxlib_d.DxDataType.TRUE:行う(デフォルト)  dxlib_d.DxDataType.FALSE:行わない
9769 		 */
9770 		extern int SetUseAlphaImageLoadFlag(int Flag);
9771 
9772 		/**
9773 		 * 使用するテクスチャーの最大サイズを設定する(デフォルトではグラフィックスデバイスが対応している最大テクスチャーサイズ、引数に0を渡すとデフォルト設定になります)
9774 		 */
9775 		extern int SetUseMaxTextureSize(int Size);
9776 
9777 		/**
9778 		 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDeviceのデバイスロスト時に使用するかどうかを設定する、バックアップをしないとメモリの節約になりますが、復帰に掛かる時間が長くなり、メモリ上のファイルイメージからグラフィックハンドルを作成した場合は自動復帰ができないなどの弊害があります
9779 		 *
9780 		 * Params:
9781 		 *      Flag = dxlib_d.DxDataType.TRUE:バックアップをする(デフォルト)  dxlib_d.DxDataType.FALSE:バックアップをしない
9782 		 */
9783 		extern int SetUseGraphBaseDataBackup(int Flag);
9784 
9785 		/**
9786 		 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDeviceのデバイスロスト時に使用するかどうかを取得する
9787 		 */
9788 		extern int GetUseGraphBaseDataBackup();
9789 
9790 		/**
9791 		 * (現在効果なし)グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを設定する
9792 		 *
9793 		 * Params:
9794 		 *      Flag = dxlib_d.DxDataType.TRUE:システムメモリ上に作成  dxlib_d.DxDataType.FALSE:VRAM上に作成(デフォルト)
9795 		 */
9796 		extern int SetUseSystemMemGraphCreateFlag(int Flag);
9797 
9798 		/**
9799 		 * (現在効果なし)グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを取得する
9800 		 */
9801 		extern int GetUseSystemMemGraphCreateFlag();
9802 
9803 		// 画像情報関係関数
9804 
9805 		/**
9806 		 * 指定のグラフィックハンドルのARGB8イメージを取得する(現在動画ファイルをグラフィックハンドルで読み込んだ場合のみ使用可能)
9807 		 */
9808 		extern const (uint)* GetFullColorImage(int GrHandle);
9809 
9810 		/**
9811 		 * グラフィックメモリ領域のロック
9812 		 */
9813 		extern int GraphLock(int GrHandle, int* PitchBuf, void** DataPointBuf, .COLORDATA** ColorDataPP = null, int WriteOnly = dxlib_d.DxDataType.FALSE);
9814 
9815 		/**
9816 		 * グラフィックメモリ領域のロック解除
9817 		 */
9818 		extern int GraphUnLock(int GrHandle);
9819 
9820 		/**
9821 		 * グラフィックハンドル専用のZバッファを持つかどうかを設定する
9822 		 *
9823 		 * Params:
9824 		 *      GrHandle = 対象となるグラフィックハンドル(描画対象として使用可能なグラフィックハンドルのみ有効)
9825 		 *      UseFlag = 専用のZバッファを持つかどうか(dxlib_d.DxDataType.TRUE:持つ(デフォルト)  dxlib_d.DxDataType.FALSE:持たない)
9826 		 *      BitDepth = ビット深度(16 or 24 or 32)
9827 		 */
9828 		extern int SetUseGraphZBuffer(int GrHandle, int UseFlag, int BitDepth = -1);
9829 
9830 		/**
9831 		 * グラフィックハンドルのZバッファの状態を別のグラフィックハンドルのZバッファにコピーする(DestGrHandle も SrcGrHandle もZバッファを持っている描画対象にできるグラフィックハンドルで、サイズが同じであり、且つマルチサンプリング(アンチエイリアス)設定が無いことが条件)
9832 		 */
9833 		extern int CopyGraphZBufferImage(int DestGrHandle, int SrcGrHandle);
9834 
9835 		/**
9836 		 * グラフィックスデバイスのデバイスロスト発生時に指定のグラフィックハンドルを削除するかどうかを設定する
9837 		 *
9838 		 * Params:
9839 		 *      GrHandle = ?
9840 		 *      DeleteFlag = dxlib_d.DxDataType.TRUE:デバイスロスト時に削除する  dxlib_d.DxDataType.FALSE:デバイスロストが発生しても削除しない
9841 		 */
9842 		extern int SetDeviceLostDeleteGraphFlag(int GrHandle, int DeleteFlag);
9843 
9844 		/**
9845 		 * グラフィックハンドルが持つ画像のサイズを得る
9846 		 */
9847 		extern int GetGraphSize(int GrHandle, int* SizeXBuf, int* SizeYBuf);
9848 
9849 		/**
9850 		 * グラフィックハンドルが持つ画像のサイズを得る(float型)
9851 		 */
9852 		extern int GetGraphSizeF(int GrHandle, float* SizeXBuf, float* SizeYBuf);
9853 
9854 		/**
9855 		 * グラフィックハンドルが持つ1つ目のテクスチャのサイズを得る
9856 		 */
9857 		extern int GetGraphTextureSize(int GrHandle, int* SizeXBuf, int* SizeYBuf);
9858 
9859 		/**
9860 		 * LoadDivGraphやDerivationGraphで元画像の一部分を使用している場合に、指定のグラフィックハンドルが使用している元画像の範囲を取得する
9861 		 */
9862 		extern int GetGraphUseBaseGraphArea(int GrHandle, int* UseX, int* UseY, int* UseSizeX, int* UseSizeY);
9863 
9864 		/**
9865 		 * グラフィックハンドルが持つテクスチャのミップマップレベル数を取得する
9866 		 */
9867 		extern int GetGraphMipmapCount(int GrHandle);
9868 
9869 		/**
9870 		 * グラフィックハンドルが画像ファイルから読み込まれていた場合、その画像のファイルパスを取得する
9871 		 */
9872 		extern int GetGraphFilePath(int GrHandle, dxlib_d.DxDataType.TCHAR* FilePathBuffer);
9873 
9874 		/**
9875 		 * 指定のグラフィックハンドルが描画対象にできる(SetDrawScreenの引数に渡せる)グラフィックハンドルかどうかを取得する
9876 		 *
9877 		 * Returns: dxlib_d.DxDataType.TRUE:描画対象にできるグラフィックハンドル dxlib_d.DxDataType.FALSE:描画対象にできないグラフィックハンドル
9878 		 */
9879 		extern int CheckDrawValidGraph(int GrHandle);
9880 
9881 		/**
9882 		 * カラーデータを得る
9883 		 */
9884 		extern const (.COLORDATA)* GetTexColorData(int AlphaCh, int AlphaTest, int ColorBitDepth, int DrawValid = dxlib_d.DxDataType.FALSE);
9885 
9886 		/**
9887 		 * フォーマットに基づいたカラーデータを得る
9888 		 */
9889 		extern const (.COLORDATA)* GetTexColorData(const (.IMAGEFORMATDESC)* Format);
9890 
9891 		/**
9892 		 * 指定のフォーマットインデックスのカラーデータを得る
9893 		 */
9894 		extern const (.COLORDATA)* GetTexColorData(int FormatIndex);
9895 
9896 		/**
9897 		 * グラフィックスデバイスが対応している最大テクスチャサイズを取得する
9898 		 */
9899 		extern int GetMaxGraphTextureSize(int* SizeX, int* SizeY);
9900 
9901 		/**
9902 		 * グラフィックハンドルの画像を復元する関数が登録されているかどうかを取得する
9903 		 *
9904 		 * Returns: dxlib_d.DxDataType.TRUE:登録されている  dxlib_d.DxDataType.FALSE:登録されていない
9905 		 */
9906 		extern int GetValidRestoreShredPoint();
9907 
9908 		/**
9909 		 * (現在効果なし)これから新たにグラフィックを作成する場合に使用するカラー情報を取得する
9910 		 */
9911 		extern int GetCreateGraphColorData(.COLORDATA* ColorData, .IMAGEFORMATDESC* Format);
9912 
9913 		// 画像パレット操作関係関数(ソフトウエア画像のみ使用可能)
9914 
9915 		/**
9916 		 * グラフィックハンドルのパレットを取得する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能)
9917 		 */
9918 		extern int GetGraphPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue);
9919 
9920 		/**
9921 		 * グラフィックハンドルのSetGraphPaletteで変更する前のパレットを取得する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能)
9922 		 */
9923 		extern int GetGraphOriginalPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue);
9924 
9925 		/**
9926 		 * グラフィックハンドルのパレットを変更する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能)
9927 		 */
9928 		extern int SetGraphPalette(int GrHandle, int ColorIndex, uint Color);
9929 
9930 		/**
9931 		 * SetGraphPaletteで変更したパレットを全て元に戻す(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能)
9932 		 */
9933 		extern int ResetGraphPalette(int GrHandle);
9934 
9935 		// 図形描画関数
9936 
9937 		/**
9938 		 * 線を描画する
9939 		 */
9940 		extern int DrawLine(int x1, int y1, int x2, int y2, uint Color, int Thickness = 1);
9941 
9942 		/**
9943 		 * 線を描画する(アンチエイリアス付き)
9944 		 */
9945 		extern int DrawLineAA(float x1, float y1, float x2, float y2, uint Color, float Thickness = 1.0f);
9946 
9947 		/**
9948 		 * 四角形を描画する
9949 		 */
9950 		extern int DrawBox(int x1, int y1, int x2, int y2, uint Color, int FillFlag);
9951 
9952 		/**
9953 		 * 四角形を描画する(アンチエイリアス付き)
9954 		 */
9955 		extern int DrawBoxAA(float x1, float y1, float x2, float y2, uint Color, int FillFlag, float LineThickness = 1.0f);
9956 
9957 		/**
9958 		 * 中身を塗りつぶす四角形を描画する
9959 		 */
9960 		extern int DrawFillBox(int x1, int y1, int x2, int y2, uint Color);
9961 
9962 		/**
9963 		 * 枠だけの四角形の描画 する
9964 		 */
9965 		extern int DrawLineBox(int x1, int y1, int x2, int y2, uint Color);
9966 
9967 		/**
9968 		 * 円を描画する
9969 		 */
9970 		extern int DrawCircle(int x, int y, int r, uint Color, int FillFlag = dxlib_d.DxDataType.TRUE, int LineThickness = 1);
9971 
9972 		/**
9973 		 * 円を描画する(アンチエイリアス付き)
9974 		 */
9975 		extern int DrawCircleAA(float x, float y, float r, int posnum, uint Color, int FillFlag = dxlib_d.DxDataType.TRUE, float LineThickness = 1.0f);
9976 
9977 		/**
9978 		 * 楕円を描画する
9979 		 */
9980 		extern int DrawOval(int x, int y, int rx, int ry, uint Color, int FillFlag, int LineThickness = 1);
9981 
9982 		/**
9983 		 * 楕円を描画する(アンチエイリアス付き)
9984 		 */
9985 		extern int DrawOvalAA(float x, float y, float rx, float ry, int posnum, uint Color, int FillFlag, float LineThickness = 1.0f);
9986 
9987 		/**
9988 		 * 指定の矩形に収まる円(楕円)を描画する
9989 		 */
9990 		extern int DrawOval_Rect(int x1, int y1, int x2, int y2, uint Color, int FillFlag);
9991 
9992 		/**
9993 		 * 三角形を描画する
9994 		 */
9995 		extern int DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint Color, int FillFlag);
9996 
9997 		/**
9998 		 * 三角形を描画する(アンチエイリアス付き)
9999 		 */
10000 		extern int DrawTriangleAA(float x1, float y1, float x2, float y2, float x3, float y3, uint Color, int FillFlag, float LineThickness = 1.0f);
10001 
10002 		/**
10003 		 * 四角形を描画する
10004 		 */
10005 		extern int DrawQuadrangle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FillFlag);
10006 
10007 		/**
10008 		 * 四角形を描画する(アンチエイリアス付き)
10009 		 */
10010 		extern int DrawQuadrangleAA(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FillFlag, float LineThickness = 1.0f);
10011 
10012 		/**
10013 		 * 角の丸い四角形を描画する
10014 		 */
10015 		extern int DrawRoundRect(int x1, int y1, int x2, int y2, int rx, int ry, uint Color, int FillFlag);
10016 
10017 		/**
10018 		 * 角の丸い四角形を描画する(アンチエイリアス付き)
10019 		 */
10020 		extern int DrawRoundRectAA(float x1, float y1, float x2, float y2, float rx, float ry, int posnum, uint Color, int FillFlag, float LineThickness = 1.0f);
10021 
10022 		/**
10023 		 * DrawTriangleAAなどのアンチエイリアス付き図形描画の準備を行う
10024 		 */
10025 		extern int BeginAADraw();
10026 
10027 		/**
10028 		 * DrawTriangleAAなどのアンチエイリアス付き図形描画の後始末を行う
10029 		 */
10030 		extern int EndAADraw();
10031 
10032 		/**
10033 		 * 点を描画する
10034 		 */
10035 		extern int DrawPixel(int x, int y, uint Color);
10036 
10037 		/**
10038 		 * 指定点から境界色があるところまで塗りつぶす(境界色を-1にすると指定点の色の領域を塗りつぶす)
10039 		 */
10040 		extern int Paint(int x, int y, uint FillColor, dxlib_d.DxDataType.ULONGLONG BoundaryColor = 0xFFFFFFFFFFFFFFFFUL);
10041 
10042 		/**
10043 		 * 点の集合を描画する
10044 		 */
10045 		extern int DrawPixelSet(const (.POINTDATA)* PointDataArray, int Num);
10046 
10047 		/**
10048 		 * 線の集合を描画する
10049 		 */
10050 		extern int DrawLineSet(const (.LINEDATA)* LineDataArray, int Num);
10051 
10052 		/**
10053 		 * 3Dの点を描画する
10054 		 */
10055 		extern int DrawPixel3D(.VECTOR Pos, uint Color);
10056 
10057 		/**
10058 		 * 3Dの点を描画する
10059 		 */
10060 		extern int DrawPixel3DD(.VECTOR_D Pos, uint Color);
10061 
10062 		/**
10063 		 * 3Dの線分を描画する
10064 		 */
10065 		extern int DrawLine3D(.VECTOR Pos1, .VECTOR Pos2, uint Color);
10066 
10067 		/**
10068 		 * 3Dの線分を描画する
10069 		 */
10070 		extern int DrawLine3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint Color);
10071 
10072 		/**
10073 		 * 3Dの三角形を描画する
10074 		 */
10075 		extern int DrawTriangle3D(.VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, uint Color, int FillFlag);
10076 
10077 		/**
10078 		 * 3Dの三角形を描画する
10079 		 */
10080 		extern int DrawTriangle3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, .VECTOR_D Pos3, uint Color, int FillFlag);
10081 
10082 		/**
10083 		 * 3Dの立方体を描画する
10084 		 */
10085 		extern int DrawCube3D(.VECTOR Pos1, .VECTOR Pos2, uint DifColor, uint SpcColor, int FillFlag);
10086 
10087 		/**
10088 		 * 3Dの立方体を描画する
10089 		 */
10090 		extern int DrawCube3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint DifColor, uint SpcColor, int FillFlag);
10091 
10092 		/**
10093 		 * 3Dの立方体の集合を描画する
10094 		 */
10095 		extern int DrawCubeSet3D(.CUBEDATA* CubeDataArray, int Num, int FillFlag);
10096 
10097 		/**
10098 		 * 3Dの球体を描画する
10099 		 */
10100 		extern int DrawSphere3D(.VECTOR CenterPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10101 
10102 		/**
10103 		 * 3Dの球体を描画する
10104 		 */
10105 		extern int DrawSphere3DD(.VECTOR_D CenterPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10106 
10107 		/**
10108 		 * 3Dのカプセルを描画する
10109 		 */
10110 		extern int DrawCapsule3D(.VECTOR Pos1, .VECTOR Pos2, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10111 
10112 		/**
10113 		 * 3Dのカプセルを描画する
10114 		 */
10115 		extern int DrawCapsule3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10116 
10117 		/**
10118 		 * 3Dの円錐を描画する
10119 		 */
10120 		extern int DrawCone3D(.VECTOR TopPos, .VECTOR BottomPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10121 
10122 		/**
10123 		 * 3Dの円錐を描画する
10124 		 */
10125 		extern int DrawCone3DD(.VECTOR_D TopPos, .VECTOR_D BottomPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag);
10126 
10127 		// 画像描画関数
10128 
10129 		/**
10130 		 * 画像ファイルを読みこんで画面に描画する
10131 		 */
10132 		extern int LoadGraphScreen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* GraphName, int TransFlag);
10133 
10134 		/**
10135 		 * 画像ファイルを読みこんで画面に描画する
10136 		 */
10137 		extern int LoadGraphScreenWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* GraphName, size_t GraphNameLength, int TransFlag);
10138 
10139 		/**
10140 		 * 画像の等倍描画
10141 		 */
10142 		extern int DrawGraph(int x, int y, int GrHandle, int TransFlag);
10143 
10144 		/**
10145 		 * 画像の拡大描画
10146 		 */
10147 		extern int DrawExtendGraph(int x1, int y1, int x2, int y2, int GrHandle, int TransFlag);
10148 
10149 		/**
10150 		 * 画像の回転描画
10151 		 */
10152 		extern int DrawRotaGraph(int x, int y, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10153 
10154 		/**
10155 		 * 画像の回転描画2(回転中心指定付き)
10156 		 */
10157 		extern int DrawRotaGraph2(int x, int y, int cx, int cy, double ExtRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10158 
10159 		/**
10160 		 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)
10161 		 */
10162 		extern int DrawRotaGraph3(int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10163 
10164 		/**
10165 		 * 画像の回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10166 		 */
10167 		extern int DrawRotaGraphFast(int x, int y, float ExRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10168 
10169 		/**
10170 		 * 画像の回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10171 		 */
10172 		extern int DrawRotaGraphFast2(int x, int y, int cx, int cy, float ExtRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10173 
10174 		/**
10175 		 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10176 		 */
10177 		extern int DrawRotaGraphFast3(int x, int y, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10178 
10179 		/**
10180 		 * 画像の自由変形描画
10181 		 */
10182 		extern int DrawModiGraph(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int TransFlag);
10183 
10184 		/**
10185 		 * 画像の左右反転描画
10186 		 */
10187 		extern int DrawTurnGraph(int x, int y, int GrHandle, int TransFlag);
10188 
10189 		/**
10190 		 * 画像の反転描画
10191 		 */
10192 		extern int DrawReverseGraph(int x, int y, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10193 
10194 		/**
10195 		 * 画像の描画(座標指定がfloat版)
10196 		 */
10197 		extern int DrawGraphF(float xf, float yf, int GrHandle, int TransFlag);
10198 
10199 		/**
10200 		 * 画像の拡大描画(座標指定がfloat版)
10201 		 */
10202 		extern int DrawExtendGraphF(float x1f, float y1f, float x2f, float y2, int GrHandle, int TransFlag);
10203 
10204 		/**
10205 		 * 画像の回転描画(座標指定がfloat版)
10206 		 */
10207 		extern int DrawRotaGraphF(float xf, float yf, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10208 
10209 		/**
10210 		 * 画像の回転描画2(回転中心指定付き)(座標指定がfloat版)
10211 		 */
10212 		extern int DrawRotaGraph2F(float xf, float yf, float cxf, float cyf, double ExtRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10213 
10214 		/**
10215 		 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)
10216 		 */
10217 		extern int DrawRotaGraph3F(float xf, float yf, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10218 
10219 		/**
10220 		 * 画像の回転描画(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10221 		 */
10222 		extern int DrawRotaGraphFastF(float xf, float yf, float ExRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10223 
10224 		/**
10225 		 * 画像の回転描画2(回転中心指定付き)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10226 		 */
10227 		extern int DrawRotaGraphFast2F(float xf, float yf, float cxf, float cyf, float ExtRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10228 
10229 		/**
10230 		 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10231 		 */
10232 		extern int DrawRotaGraphFast3F(float xf, float yf, float cxf, float cyf, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10233 
10234 		/**
10235 		 * 画像の自由変形描画(座標指定がfloat版)
10236 		 */
10237 		extern int DrawModiGraphF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag);
10238 
10239 		/**
10240 		 * 画像の左右反転描画(座標指定がfloat版)
10241 		 */
10242 		extern int DrawTurnGraphF(float xf, float yf, int GrHandle, int TransFlag);
10243 
10244 		/**
10245 		 * 画像の反転描画(座標指定がfloat版)
10246 		 */
10247 		extern int DrawReverseGraphF(float xf, float yf, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10248 
10249 		/**
10250 		 * チップ画像を使った2Dマップ描画
10251 		 */
10252 		extern int DrawChipMap(int Sx, int Sy, int XNum, int YNum, const (int)* MapData, int ChipTypeNum, int MapDataPitch, const (int)* ChipGrHandle, int TransFlag);
10253 
10254 		/**
10255 		 * チップ画像を使った2Dマップ描画
10256 		 */
10257 		extern int DrawChipMap(int MapWidth, int MapHeight, const (int)* MapData, int ChipTypeNum, const (int)* ChipGrHandle, int TransFlag, int MapDrawPointX, int MapDrawPointY, int MapDrawWidth, int MapDrawHeight, int ScreenX, int ScreenY);
10258 
10259 		/**
10260 		 * 画像を指定領域にタイル状に描画する
10261 		 */
10262 		extern int DrawTile(int x1, int y1, int x2, int y2, int Tx, int Ty, double ExtRate, double Angle, int GrHandle, int TransFlag);
10263 
10264 		/**
10265 		 * 画像の指定矩形部分のみを等倍描画
10266 		 */
10267 		extern int DrawRectGraph(int DestX, int DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10268 
10269 		/**
10270 		 * 画像の指定矩形部分のみを拡大描画
10271 		 */
10272 		extern int DrawRectExtendGraph(int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag);
10273 
10274 		/**
10275 		 * 画像の指定矩形部分のみを回転描画
10276 		 */
10277 		extern int DrawRectRotaGraph(int x, int y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10278 
10279 		/**
10280 		 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)
10281 		 */
10282 		extern int DrawRectRotaGraph2(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10283 
10284 		/**
10285 		 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)
10286 		 */
10287 		extern int DrawRectRotaGraph3(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10288 
10289 		/**
10290 		 * 画像の指定矩形部分のみを回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10291 		 */
10292 		extern int DrawRectRotaGraphFast(int x, int y, int SrcX, int SrcY, int Width, int Height, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10293 
10294 		/**
10295 		 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10296 		 */
10297 		extern int DrawRectRotaGraphFast2(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10298 
10299 		/**
10300 		 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10301 		 */
10302 		extern int DrawRectRotaGraphFast3(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10303 
10304 		/**
10305 		 * 画像の指定矩形部分のみを自由変形描画
10306 		 */
10307 		extern int DrawRectModiGraph(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag);
10308 
10309 		/**
10310 		 * 画像の指定矩形部分のみを等倍描画(座標指定がfloat版)
10311 		 */
10312 		extern int DrawRectGraphF(float DestX, float DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10313 
10314 		/**
10315 		 * 画像の指定矩形部分のみを拡大描画(座標指定がfloat版)
10316 		 */
10317 		extern int DrawRectExtendGraphF(float DestX1, float DestY1, float DestX2, float DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag);
10318 
10319 		/**
10320 		 * 画像の指定矩形部分のみを回転描画(座標指定がfloat版)
10321 		 */
10322 		extern int DrawRectRotaGraphF(float x, float y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10323 
10324 		/**
10325 		 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(座標指定がfloat版)
10326 		 */
10327 		extern int DrawRectRotaGraph2F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10328 
10329 		/**
10330 		 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)
10331 		 */
10332 		extern int DrawRectRotaGraph3F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10333 
10334 		/**
10335 		 * 画像の指定矩形部分のみを回転描画(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10336 		 */
10337 		extern int DrawRectRotaGraphFastF(float x, float y, int SrcX, int SrcY, int Width, int Height, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10338 
10339 		/**
10340 		 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10341 		 */
10342 		extern int DrawRectRotaGraphFast2F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10343 
10344 		/**
10345 		 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10346 		 */
10347 		extern int DrawRectRotaGraphFast3F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, float ExtRateX, float ExtRateY, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10348 
10349 		/**
10350 		 * 画像の指定矩形部分のみを自由変形描画(座標指定がfloat版)
10351 		 */
10352 		extern int DrawRectModiGraphF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag);
10353 
10354 		/**
10355 		 * ブレンド画像と合成して画像を等倍描画する
10356 		 */
10357 		extern int DrawBlendGraph(int x, int y, int GrHandle, int TransFlag, int BlendGraph, int BorderParam, int BorderRange);
10358 
10359 		/**
10360 		 * ブレンド画像と合成して画像を等倍描画する(ブレンド画像の起点座標を指定する引数付き)
10361 		 */
10362 		extern int DrawBlendGraphPos(int x, int y, int GrHandle, int TransFlag, int bx, int by, int BlendGraph, int BorderParam, int BorderRange);
10363 
10364 		/**
10365 		 * 円グラフ的な描画を行う(GrHandleの画像の上下左右の端は透過色にしておく必要があります)
10366 		 */
10367 		extern int DrawCircleGauge(int CenterX, int CenterY, double Percent, int GrHandle, double StartPercent = 0.0, double Scale = 1.0, int ReverseX = dxlib_d.DxDataType.FALSE, int ReverseY = dxlib_d.DxDataType.FALSE);
10368 
10369 		/**
10370 		 * 円グラフ的な描画を行う(GrHandleの画像の上下左右の端は透過色にしておく必要があります)(座標指定がfloat版)
10371 		 */
10372 		extern int DrawCircleGaugeF(float CenterX, float CenterY, double Percent, int GrHandle, double StartPercent = 0.0, double Scale = 1.0, int ReverseX = dxlib_d.DxDataType.FALSE, int ReverseY = dxlib_d.DxDataType.FALSE);
10373 
10374 		/**
10375 		 * Zバッファに対して画像の等倍描画
10376 		 */
10377 		extern int DrawGraphToZBuffer(int X, int Y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
10378 
10379 		/**
10380 		 * Zバッファに対して画像の左右反転描画
10381 		 */
10382 		extern int DrawTurnGraphToZBuffer(int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
10383 
10384 		/**
10385 		 * Zバッファに対して画像の反転描画
10386 		 */
10387 		extern int DrawReverseGraphToZBuffer(int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10388 
10389 		/**
10390 		 * Zバッファに対して画像の拡大描画
10391 		 */
10392 		extern int DrawExtendGraphToZBuffer(int x1, int y1, int x2, int y2, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
10393 
10394 		/**
10395 		 * Zバッファに対して画像の回転描画
10396 		 */
10397 		extern int DrawRotaGraphToZBuffer(int x, int y, double ExRate, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10398 
10399 		/**
10400 		 * Zバッファに対して画像の回転描画2(回転中心指定付き)
10401 		 */
10402 		extern int DrawRotaGraph2ToZBuffer(int x, int y, int cx, int cy, double ExtRate, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10403 
10404 		/**
10405 		 * Zバッファに対して画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)
10406 		 */
10407 		extern int DrawRotaGraph3ToZBuffer(int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10408 
10409 		/**
10410 		 * Zバッファに対して画像の回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10411 		 */
10412 		extern int DrawRotaGraphFastToZBuffer(int x, int y, float ExRate, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10413 
10414 		/**
10415 		 * Zバッファに対して画像の回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10416 		 */
10417 		extern int DrawRotaGraphFast2ToZBuffer(int x, int y, int cx, int cy, float ExtRate, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10418 
10419 		/**
10420 		 * Zバッファに対して画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です)
10421 		 */
10422 		extern int DrawRotaGraphFast3ToZBuffer(int x, int y, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10423 
10424 		/**
10425 		 * Zバッファに対して画像の自由変形描画
10426 		 */
10427 		extern int DrawModiGraphToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
10428 
10429 		/**
10430 		 * Zバッファに対して矩形の描画
10431 		 */
10432 		extern int DrawBoxToZBuffer(int x1, int y1, int x2, int y2, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */);
10433 
10434 		/**
10435 		 * Zバッファに対して円の描画
10436 		 */
10437 		extern int DrawCircleToZBuffer(int x, int y, int r, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */);
10438 
10439 		/**
10440 		 * Zバッファに対して三角形を描画する
10441 		 */
10442 		extern int DrawTriangleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */);
10443 
10444 		/**
10445 		 * Zバッファに対して四角形を描画する
10446 		 */
10447 		extern int DrawQuadrangleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */);
10448 
10449 		/**
10450 		 * Zバッファに対して角の丸い四角形を描画する
10451 		 */
10452 		extern int DrawRoundRectToZBuffer(int x1, int y1, int x2, int y2, int rx, int ry, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */);
10453 
10454 		/**
10455 		 * 2Dポリゴンを描画する
10456 		 *
10457 		 * Params:
10458 		 *      Vertex = 三角形を形成する頂点配列の先頭アドレス(頂点の数はポリゴンの数×3)
10459 		 *      PolygonNum = 描画するポリゴンの数
10460 		 *      GrHandle = 使用するグラフィックハンドル
10461 		 *      TransFlag = 透過色処理を行うかどうか(dxlib_d.DxDataType.TRUE:行う  dxlib_d.DxDataType.FALSE:行わない)
10462 		 *      UVScaling = 基本dxlib_d.DxDataType.FALSEでOK
10463 		 */
10464 		extern int DrawPolygon(const (.VERTEX)* VertexArray, int PolygonNum, int GrHandle, int TransFlag, int UVScaling = dxlib_d.DxDataType.FALSE);
10465 
10466 		/**
10467 		 * 2Dポリゴンを描画する
10468 		 */
10469 		extern int DrawPolygon2D(const (.VERTEX2D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag);
10470 
10471 		/**
10472 		 * 3Dポリゴンを描画する
10473 		 */
10474 		extern int DrawPolygon3D(const (.VERTEX3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag);
10475 
10476 		/**
10477 		 * 2Dポリゴンを描画する(頂点インデックスを使用)
10478 		 */
10479 		extern int DrawPolygonIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag);
10480 
10481 		/**
10482 		 * 3Dポリゴンを描画する(頂点インデックスを使用)
10483 		 */
10484 		extern int DrawPolygonIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag);
10485 
10486 		/**
10487 		 * 3Dポリゴンを描画する(頂点インデックスを使用)(旧バージョン用)
10488 		 */
10489 		extern int DrawPolygonIndexed3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10490 
10491 		/**
10492 		 * 3Dポリゴンを描画する(旧バージョン用)
10493 		 */
10494 		extern int DrawPolygon3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10495 
10496 		/**
10497 		 * 3Dポリゴンを描画する(旧バージョン用)
10498 		 */
10499 		extern int DrawPolygon3D(const (.VERTEX_3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag);
10500 
10501 		/**
10502 		 * 2Dプリミティブを描画する
10503 		 */
10504 		extern int DrawPolygonBase(const (.VERTEX)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag, int UVScaling = dxlib_d.DxDataType.FALSE);
10505 
10506 		/**
10507 		 * 2Dプリミティブを描画する
10508 		 */
10509 		extern int DrawPrimitive2D(const (.VERTEX2D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10510 
10511 		/**
10512 		 * 3Dプリミティブを描画する
10513 		 */
10514 		extern int DrawPrimitive3D(const (.VERTEX3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10515 
10516 		/**
10517 		 * 2Dプリミティブを描画する(頂点インデックス使用)
10518 		 */
10519 		extern int DrawPrimitiveIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10520 
10521 		/**
10522 		 * 3Dプリミティブを描画する(頂点インデックス使用)
10523 		 */
10524 		extern int DrawPrimitiveIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10525 
10526 		/**
10527 		 * 頂点バッファを使用して3Dポリゴンを描画する
10528 		 */
10529 		extern int DrawPolygon3D_UseVertexBuffer(int VertexBufHandle, int GrHandle, int TransFlag);
10530 
10531 		/**
10532 		 * 頂点バッファを使用して3Dプリミティブを描画する
10533 		 */
10534 		extern int DrawPrimitive3D_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10535 
10536 		/**
10537 		 * 頂点バッファを使用して3Dプリミティブを描画する
10538 		 */
10539 		extern int DrawPrimitive3D_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int StartVertex, int UseVertexNum, int GrHandle, int TransFlag);
10540 
10541 		/**
10542 		 * 頂点バッファとインデックスバッファを使用して3Dポリゴンを描画する
10543 		 */
10544 		extern int DrawPolygonIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int GrHandle, int TransFlag);
10545 
10546 		/**
10547 		 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する
10548 		 */
10549 		extern int DrawPrimitiveIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag);
10550 
10551 		/**
10552 		 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する
10553 		 */
10554 		extern int DrawPrimitiveIndexed3D_UseVertexBuffer2(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum, int GrHandle, int TransFlag);
10555 
10556 		/**
10557 		 * 画像の3D描画
10558 		 */
10559 		extern int DrawGraph3D(float x, float y, float z, int GrHandle, int TransFlag);
10560 
10561 		/**
10562 		 * 画像の拡大3D描画
10563 		 */
10564 		extern int DrawExtendGraph3D(float x, float y, float z, double ExRateX, double ExRateY, int GrHandle, int TransFlag);
10565 
10566 		/**
10567 		 * 画像の回転3D描画
10568 		 */
10569 		extern int DrawRotaGraph3D(float x, float y, float z, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10570 
10571 		/**
10572 		 * 画像の回転3D描画(回転中心指定型)
10573 		 */
10574 		extern int DrawRota2Graph3D(float x, float y, float z, float cx, float cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10575 
10576 		/**
10577 		 * 画像の自由変形3D描画
10578 		 */
10579 		extern int DrawModiBillboard3D(.VECTOR Pos, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag);
10580 
10581 		/**
10582 		 * 3D空間上に画像を描画
10583 		 */
10584 		extern int DrawBillboard3D(.VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
10585 
10586 		// 描画設定関係関数
10587 
10588 		/**
10589 		 * 描画モードを設定する
10590 		 */
10591 		extern int SetDrawMode(int DrawMode);
10592 
10593 		/**
10594 		 * 描画モードを取得する
10595 		 */
10596 		extern int GetDrawMode();
10597 
10598 		/**
10599 		 * 描画ブレンドモードを設定する
10600 		 */
10601 		extern int SetDrawBlendMode(int BlendMode, int BlendParam);
10602 
10603 		/**
10604 		 * 描画ブレンドモードを取得する
10605 		 */
10606 		extern int GetDrawBlendMode(int* BlendMode, int* BlendParam);
10607 
10608 		/**
10609 		 * 描画時のアルファテストの設定を行う(TestMode:テストモード(DX_CMP_GREATER等 -1でデフォルト動作に戻す)  TestParam:描画アルファ値との比較に使用する値(0~255))
10610 		 *
10611 		 * Params:
10612 		 *      TestMode = ?
10613 		 *      TestParam = ?
10614 		 */
10615 		extern int SetDrawAlphaTest(int TestMode, int TestParam);
10616 
10617 		/**
10618 		 * 描画時のアルファテストの設定を取得する(TestMode:テストモード(DX_CMP_GREATER等 -1でデフォルト動作に戻す)  TestParam:描画アルファ値との比較に使用する値(0~255))
10619 		 *
10620 		 * Params:
10621 		 *      TestMode = ?
10622 		 *      TestParam = ?
10623 		 */
10624 		extern int GetDrawAlphaTest(int* TestMode, int* TestParam);
10625 
10626 		/**
10627 		 * (SetBlendGraphParamのBlendType = DX_BLENDGRAPHTYPE_WIPEの処理を行う旧関数)描画処理時に描画する画像とブレンドするαチャンネル付き画像をセットする(BlendGraphを-1でブレンド機能を無効)
10628 		 */
10629 		extern int SetBlendGraph(int BlendGraph, int BorderParam, int BorderRange);
10630 
10631 		/**
10632 		 * 描画処理時に描画する画像とブレンドする画像のブレンド設定を行う、BlendGraphを-1にすれば設定を解除、その場合BlendTypeとその後ろのパラメータは無視される
10633 		 */
10634 		extern int SetBlendGraphParam(int BlendGraph, int BlendType, ...);
10635 
10636 		// int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_NORMAL, int Ratio = (0(ブレンド率0%)~255(ブレンド率100%)));
10637 		// int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_WIPE, int BorderParam = 境界位置(0~255), int BorderRange = 境界幅(指定できる値は1、64、128、255の4つ));
10638 		// int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_ALPHA);
10639 
10640 		/**
10641 		 * ブレンド画像の起点座標をセットする
10642 		 */
10643 		extern int SetBlendGraphPosition(int x, int y);
10644 
10645 		/**
10646 		 * ブレンド画像の適応座標モードを設定する
10647 		 */
10648 		extern int SetBlendGraphPositionMode(int BlendGraphPositionMode /* DX_BLENDGRAPH_POSMODE_DRAWGRAPHなど */);
10649 
10650 		/**
10651 		 * 描画輝度を設定する
10652 		 */
10653 		extern int SetDrawBright(int RedBright, int GreenBright, int BlueBright);
10654 
10655 		/**
10656 		 * 描画輝度を取得する
10657 		 */
10658 		extern int GetDrawBright(int* Red, int* Green, int* Blue);
10659 
10660 		/**
10661 		 * 描画先のアルファチャンネルの内容を書き換えるかを設定する
10662 		 *
10663 		 * Params:
10664 		 *      Flag = dxlib_d.DxDataType.FALSE:書き換えない  dxlib_d.DxDataType.TRUE:書き換える(デフォルト)
10665 		 */
10666 		extern int SetWriteAlphaChannelFlag(int Flag);
10667 
10668 		/**
10669 		 * 描画先のアルファチャンネルの内容を書き換えるかを取得する
10670 		 *
10671 		 * Returns: dxlib_d.DxDataType.FALSE:書き換えない  dxlib_d.DxDataType.TRUE:書き換える(デフォルト)
10672 		 */
10673 		extern int GetWriteAlphaChannelFlag();
10674 
10675 		/**
10676 		 * 描画先のアルファチャンネルの内容を書き換えないことができるかどうかを取得する
10677 		 *
10678 		 * Returns: dxlib_d.DxDataType.TRUE:書き換えないことができる  dxlib_d.DxDataType.FALSE:書き換えないことができない
10679 		 */
10680 		extern int CheckSeparateAlphaBlendEnable();
10681 
10682 		/**
10683 		 * 描画する画像のRGB成分を無視するかどうかを指定する
10684 		 *
10685 		 * Params:
10686 		 *      EnableFlag = この機能を使うかどうか(dxlib_d.DxDataType.TRUE:使う  dxlib_d.DxDataType.FALSE:使わない(デフォルト))
10687 		 */
10688 		extern int SetIgnoreDrawGraphColor(int EnableFlag);
10689 
10690 		/**
10691 		 * 最大異方性値を設定する
10692 		 */
10693 		extern int SetMaxAnisotropy(int MaxAnisotropy);
10694 
10695 		/**
10696 		 * 最大異方性値を取得する
10697 		 */
10698 		extern int GetMaxAnisotropy();
10699 
10700 		/**
10701 		 * 3D処理で使用する座標値が10000000.0fなどの大きな値になっても描画の崩れを小さく抑える処理を使用するかどうかを設定する、DxLib_Initの呼び出し前でのみ使用可能
10702 		 *
10703 		 * Params:
10704 		 *      UseFlag = dxlib_d.DxDataType.TRUE:描画の崩れを抑える処理を使用する(CPU負荷が上がります)  dxlib_d.DxDataType.FALSE:描画の崩れを抑える処理は使用しない(デフォルト)
10705 		 */
10706 		extern int SetUseLarge3DPositionSupport(int UseFlag);
10707 
10708 		/**
10709 		 * Zバッファを使用するかどうかを設定する(2Dと3D描画に影響)
10710 		 *
10711 		 * Params:
10712 		 *      Flag = dxlib_d.DxDataType.TRUE:Zバッファを使用する  dxlib_d.DxDataType.FALSE:Zバッファを使用しない(デフォルト)
10713 		 */
10714 		extern int SetUseZBufferFlag(int Flag);
10715 
10716 		/**
10717 		 * Zバッファに書き込みを行うかどうかを設定する(2Dと3D描画に影響)
10718 		 *
10719 		 * Params:
10720 		 *      Flag = dxlib_d.DxDataType.TRUE:書き込みを行う  dxlib_d.DxDataType.FALSE:書き込みを行わない(デフォルト)
10721 		 */
10722 		extern int SetWriteZBufferFlag(int Flag);
10723 
10724 		/**
10725 		 * ZバッファのZ値と書き込むZ値との比較モードを設定する(2Dと3D描画に影響)
10726 		 *
10727 		 * Params:
10728 		 *      CmpType = DX_CMP_NEVER等(デフォルト:DX_CMP_LESSEQUAL)
10729 		 */
10730 		extern int SetZBufferCmpType(int CmpType /* DX_CMP_NEVER等 */);
10731 
10732 		/**
10733 		 * 書き込むZ値のバイアスを設定する(2Dと3D描画に影響)(Bias:バイアス値(デフォルト:0))
10734 		 *
10735 		 * Params:
10736 		 *      Bias = ?
10737 		 */
10738 		extern int SetZBias(int Bias);
10739 
10740 		/**
10741 		 * Zバッファを使用するかどうかを設定する(3D描画のみに影響)
10742 		 *
10743 		 * Params:
10744 		 *      Flag = dxlib_d.DxDataType.TRUE:Zバッファを使用する  dxlib_d.DxDataType.FALSE:Zバッファを使用しない(デフォルト)
10745 		 */
10746 		extern int SetUseZBuffer3D(int Flag);
10747 
10748 		/**
10749 		 * Zバッファに書き込みを行うかどうかを設定する(3D描画のみに影響)
10750 		 *
10751 		 * Params:
10752 		 *      Flag = dxlib_d.DxDataType.TRUE:書き込みを行う  dxlib_d.DxDataType.FALSE:書き込みを行わない(デフォルト)
10753 		 */
10754 		extern int SetWriteZBuffer3D(int Flag);
10755 
10756 		/**
10757 		 * ZバッファのZ値と書き込むZ値との比較モードを設定する(3D描画のみに影響)
10758 		 *
10759 		 * Params:
10760 		 *      CmpType = DX_CMP_NEVER等(デフォルト:DX_CMP_LESSEQUAL)
10761 		 */
10762 		extern int SetZBufferCmpType3D(int CmpType /* DX_CMP_NEVER等 */);
10763 
10764 		/**
10765 		 * 書き込むZ値のバイアスを設定する(3D描画のみに影響)(Bias:バイアス値(デフォルト:0))
10766 		 *
10767 		 * Params:
10768 		 *      Bias = ?
10769 		 */
10770 		extern int SetZBias3D(int Bias);
10771 
10772 		/**
10773 		 * 2D描画でZバッファに書き込むZ値を設定する(Z:書き込むZ値(デフォルト:0.2f))
10774 		 *
10775 		 * Params:
10776 		 *      Z = ?
10777 		 */
10778 		extern int SetDrawZ(float Z);
10779 
10780 		/**
10781 		 * 描画可能領域の設定する
10782 		 */
10783 		extern int SetDrawArea(int x1, int y1, int x2, int y2);
10784 
10785 		/**
10786 		 * 描画可能領域を取得する
10787 		 */
10788 		extern int GetDrawArea(dxlib_d.DxDataType.RECT* Rect);
10789 
10790 		/**
10791 		 * 描画可能領域を描画対象画面全体にする
10792 		 */
10793 		extern int SetDrawAreaFull();
10794 
10795 		/**
10796 		 * 3D描画の拡大率を設定する
10797 		 */
10798 		extern int SetDraw3DScale(float Scale);
10799 
10800 		/**
10801 		 * SetRestoreGraphCallbackの旧名
10802 		 */
10803 		extern int SetRestoreShredPoint(void function() ShredPoint);
10804 
10805 		/**
10806 		 * グラフィックハンドル復元関数を登録する
10807 		 */
10808 		extern int SetRestoreGraphCallback(void function() Callback);
10809 
10810 		/**
10811 		 * グラフィック復元関数を実行する
10812 		 */
10813 		extern int RunRestoreShred();
10814 
10815 		/**
10816 		 * グラフィックスデバイスがロストから復帰した際に呼ばれるコールバック関数を設定する
10817 		 */
10818 		extern int SetGraphicsDeviceRestoreCallbackFunction(void function(void* Data) Callback, void* CallbackData);
10819 
10820 		/**
10821 		 * グラフィックスデバイスがロストから復帰する前に呼ばれるコールバック関数を設定する
10822 		 */
10823 		extern int SetGraphicsDeviceLostCallbackFunction(void function(void* Data) Callback, void* CallbackData);
10824 
10825 		/**
10826 		 * 2D描画に使用される変換行列を設定する
10827 		 */
10828 		extern int SetTransformTo2D(const (.MATRIX)* Matrix);
10829 
10830 		/**
10831 		 * 2D描画に使用される変換行列を設定する
10832 		 */
10833 		extern int SetTransformTo2DD(const (.MATRIX_D)* Matrix);
10834 
10835 		/**
10836 		 * 2D描画用に使用する変換行列の設定を初期状態に戻す
10837 		 */
10838 		extern int ResetTransformTo2D();
10839 
10840 		/**
10841 		 * ローカル座標からワールド座標に変換するための行列を設定する
10842 		 */
10843 		extern int SetTransformToWorld(const (.MATRIX)* Matrix);
10844 
10845 		/**
10846 		 * ローカル座標からワールド座標に変換するための行列を設定する
10847 		 */
10848 		extern int SetTransformToWorldD(const (.MATRIX_D)* Matrix);
10849 
10850 		/**
10851 		 * ローカル座標からワールド座標に変換するための行列を取得する
10852 		 */
10853 		extern int GetTransformToWorldMatrix(.MATRIX* MatBuf);
10854 
10855 		/**
10856 		 * ローカル座標からワールド座標に変換するための行列を取得する
10857 		 */
10858 		extern int GetTransformToWorldMatrixD(.MATRIX_D* MatBuf);
10859 
10860 		/**
10861 		 * ワールド座標からビュー座標に変換するための行列を設定する
10862 		 */
10863 		extern int SetTransformToView(const (.MATRIX)* Matrix);
10864 
10865 		/**
10866 		 * ワールド座標からビュー座標に変換するための行列を設定する
10867 		 */
10868 		extern int SetTransformToViewD(const (.MATRIX_D)* Matrix);
10869 
10870 		/**
10871 		 * ワールド座標からビュー座標に変換するための行列を取得する
10872 		 */
10873 		extern int GetTransformToViewMatrix(.MATRIX* MatBuf);
10874 
10875 		/**
10876 		 * ワールド座標からビュー座標に変換するための行列を取得する
10877 		 */
10878 		extern int GetTransformToViewMatrixD(.MATRIX_D* MatBuf);
10879 
10880 		/**
10881 		 * ビュー座標からプロジェクション座標に変換するための行列を設定する
10882 		 */
10883 		extern int SetTransformToProjection(const (.MATRIX)* Matrix);
10884 
10885 		/**
10886 		 * ビュー座標からプロジェクション座標に変換するための行列を設定する
10887 		 */
10888 		extern int SetTransformToProjectionD(const (.MATRIX_D)* Matrix);
10889 
10890 		/**
10891 		 * ビュー座標からプロジェクション座標に変換するための行列を取得する
10892 		 */
10893 		extern int GetTransformToProjectionMatrix(.MATRIX* MatBuf);
10894 
10895 		/**
10896 		 * ビュー座標からプロジェクション座標に変換するための行列を取得する
10897 		 */
10898 		extern int GetTransformToProjectionMatrixD(.MATRIX_D* MatBuf);
10899 
10900 		/**
10901 		 * ビューポート行列を設定する
10902 		 */
10903 		extern int SetTransformToViewport(const (.MATRIX)* Matrix);
10904 
10905 		/**
10906 		 * ビューポート行列を設定する
10907 		 */
10908 		extern int SetTransformToViewportD(const (.MATRIX_D)* Matrix);
10909 
10910 		/**
10911 		 * ビューポート行列を取得する
10912 		 */
10913 		extern int GetTransformToViewportMatrix(.MATRIX* MatBuf);
10914 
10915 		/**
10916 		 * ビューポート行列を取得する
10917 		 */
10918 		extern int GetTransformToViewportMatrixD(.MATRIX_D* MatBuf);
10919 
10920 		/**
10921 		 * Direct3Dで自動適用されるビューポート行列を取得する
10922 		 */
10923 		extern int GetTransformToAPIViewportMatrix(.MATRIX* MatBuf);
10924 
10925 		/**
10926 		 * Direct3Dで自動適用されるビューポート行列を取得する
10927 		 */
10928 		extern int GetTransformToAPIViewportMatrixD(.MATRIX_D* MatBuf);
10929 
10930 		/**
10931 		 * デフォルトの変換行列を設定する
10932 		 */
10933 		extern int SetDefTransformMatrix();
10934 
10935 		/**
10936 		 * ローカル座標からスクリーン座標を取得する
10937 		 */
10938 		extern int GetTransformPosition(.VECTOR* LocalPos, float* x, float* y);
10939 
10940 		/**
10941 		 * ローカル座標からスクリーン座標を取得する
10942 		 */
10943 		extern int GetTransformPositionD(.VECTOR_D* LocalPos, double* x, double* y);
10944 
10945 		/**
10946 		 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する
10947 		 */
10948 		extern float GetBillboardPixelSize(.VECTOR WorldPos, float WorldSize);
10949 
10950 		/**
10951 		 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する
10952 		 */
10953 		extern double GetBillboardPixelSizeD(.VECTOR_D WorldPos, double WorldSize);
10954 
10955 		/**
10956 		 * ワールド座標をビュー座標に変換する
10957 		 */
10958 		extern .VECTOR ConvWorldPosToViewPos(.VECTOR WorldPos);
10959 
10960 		/**
10961 		 * ワールド座標をビュー座標に変換する
10962 		 */
10963 		extern .VECTOR_D ConvWorldPosToViewPosD(.VECTOR_D WorldPos);
10964 
10965 		/**
10966 		 * ワールド座標をスクリーン座標に変換する
10967 		 */
10968 		extern .VECTOR ConvWorldPosToScreenPos(.VECTOR WorldPos);
10969 
10970 		/**
10971 		 * ワールド座標をスクリーン座標に変換する
10972 		 */
10973 		extern .VECTOR_D ConvWorldPosToScreenPosD(.VECTOR_D WorldPos);
10974 
10975 		/**
10976 		 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る
10977 		 */
10978 		extern .FLOAT4 ConvWorldPosToScreenPosPlusW(.VECTOR WorldPos);
10979 
10980 		/**
10981 		 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る
10982 		 */
10983 		extern .DOUBLE4 ConvWorldPosToScreenPosPlusWD(.VECTOR_D WorldPos);
10984 
10985 		/**
10986 		 * スクリーン座標をワールド座標に変換する
10987 		 */
10988 		extern .VECTOR ConvScreenPosToWorldPos(.VECTOR ScreenPos);
10989 
10990 		/**
10991 		 * スクリーン座標をワールド座標に変換する
10992 		 */
10993 		extern .VECTOR_D ConvScreenPosToWorldPosD(.VECTOR_D ScreenPos);
10994 
10995 		/**
10996 		 * スクリーン座標をワールド座標に変換する(Z座標が線形)
10997 		 */
10998 		extern .VECTOR ConvScreenPosToWorldPos_ZLinear(.VECTOR ScreenPos);
10999 
11000 		/**
11001 		 * スクリーン座標をワールド座標に変換する(Z座標が線形)
11002 		 */
11003 		extern .VECTOR_D ConvScreenPosToWorldPos_ZLinearD(.VECTOR_D ScreenPos);
11004 
11005 		/**
11006 		 * SetUseBackCullingの旧名称
11007 		 */
11008 		extern int SetUseCullingFlag(int Flag);
11009 
11010 		/**
11011 		 * ポリゴンカリングモードを設定する
11012 		 */
11013 		extern int SetUseBackCulling(int Flag /* DX_CULLING_LEFT等 */);
11014 
11015 		/**
11016 		 * ポリゴンカリングモードを取得する
11017 		 */
11018 		extern int GetUseBackCulling();
11019 
11020 		/**
11021 		 * テクスチャアドレスモードを設定する
11022 		 */
11023 		extern int SetTextureAddressMode(int Mode /* DX_TEXADDRESS_WRAP等 */, int Stage = -1);
11024 
11025 		/**
11026 		 * テクスチャアドレスモードを設定する(UとVを別々に設定する)
11027 		 */
11028 		extern int SetTextureAddressModeUV(int ModeU, int ModeV, int Stage = -1);
11029 
11030 		/**
11031 		 * テクスチャ座標変換パラメータを設定する
11032 		 */
11033 		extern int SetTextureAddressTransform(float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate);
11034 
11035 		/**
11036 		 * テクスチャ座標変換行列を設定する
11037 		 */
11038 		extern int SetTextureAddressTransformMatrix(.MATRIX Matrix);
11039 
11040 		/**
11041 		 * テクスチャ座標変換設定をリセットする
11042 		 */
11043 		extern int ResetTextureAddressTransform();
11044 
11045 		/**
11046 		 * フォグを有効にするかどうかを設定する
11047 		 *
11048 		 * Params:
11049 		 *      Flag = dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
11050 		 */
11051 		extern int SetFogEnable(int Flag);
11052 
11053 		/**
11054 		 * フォグが有効かどうかを取得する
11055 		 *
11056 		 * Returns: dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
11057 		 */
11058 		extern int GetFogEnable();
11059 
11060 		/**
11061 		 * フォグモードを設定する
11062 		 */
11063 		extern int SetFogMode(int Mode /* DX_FOGMODE_NONE等 */);
11064 
11065 		/**
11066 		 * フォグモードを取得する
11067 		 */
11068 		extern int GetFogMode();
11069 
11070 		/**
11071 		 * フォグカラーを設定する
11072 		 */
11073 		extern int SetFogColor(int r, int g, int b);
11074 
11075 		/**
11076 		 * フォグカラーを取得する
11077 		 */
11078 		extern int GetFogColor(int* r, int* g, int* b);
11079 
11080 		/**
11081 		 * フォグが始まる距離と終了する距離を設定する(0.0f~1.0f)
11082 		 */
11083 		extern int SetFogStartEnd(float start, float end);
11084 
11085 		/**
11086 		 * フォグが始まる距離と終了する距離を取得する(0.0f~1.0f)
11087 		 */
11088 		extern int GetFogStartEnd(float* start, float* end);
11089 
11090 		/**
11091 		 * フォグの密度を設定する(0.0f~1.0f)
11092 		 */
11093 		extern int SetFogDensity(float density);
11094 
11095 		/**
11096 		 * フォグの密度を取得する(0.0f~1.0f)
11097 		 */
11098 		extern float GetFogDensity();
11099 
11100 		// 画面関係関数
11101 
11102 		/**
11103 		 * 指定座標の色を取得する
11104 		 */
11105 		extern uint GetPixel(int x, int y);
11106 
11107 		/**
11108 		 * 指定座標の色を取得する(float型)
11109 		 */
11110 		extern .COLOR_F GetPixelF(int x, int y);
11111 
11112 		/**
11113 		 * メインウインドウの背景色を設定する
11114 		 *
11115 		 * Params:
11116 		 *      Red= 0~255
11117 		 *      Green = 0~255
11118 		 *      Blue = 0~255
11119 		 *      Alpha = 0~255
11120 		 */
11121 		extern int SetBackgroundColor(int Red, int Green, int Blue, int Alpha = 0);
11122 
11123 		/**
11124 		 * メインウインドウの背景色を取得する
11125 		 *
11126 		 * Params:
11127 		 *      Red= 0~255
11128 		 *      Green = 0~255
11129 		 *      Blue = 0~255
11130 		 *      Alpha = 0~255
11131 		 */
11132 		extern int GetBackgroundColor(int* Red, int* Green, int* Blue, int* Alpha = null);
11133 
11134 		/**
11135 		 * 描画先の画面から指定領域の画像情報をグラフィックハンドルに転送する
11136 		 */
11137 		extern int GetDrawScreenGraph(int x1, int y1, int x2, int y2, int GrHandle, int UseClientFlag = dxlib_d.DxDataType.TRUE);
11138 
11139 		/**
11140 		 * SetDrawScreenで描画対象にできるグラフィックハンドルから指定領域の画像情報を別のグラフィックハンドルに転送する
11141 		 */
11142 		extern int BltDrawValidGraph(int TargetDrawValidGrHandle, int x1, int y1, int x2, int y2, int DestX, int DestY, int DestGrHandle);
11143 
11144 		/**
11145 		 * 裏画面と表画面の内容を交換する
11146 		 */
11147 		extern int ScreenFlip();
11148 
11149 		/**
11150 		 * 裏画面の内容を表画面に転送する
11151 		 */
11152 		extern int ScreenCopy();
11153 
11154 		/**
11155 		 * 垂直同期信号を待つ
11156 		 */
11157 		extern int WaitVSync(int SyncNum);
11158 
11159 		/**
11160 		 * 画面をクリアする
11161 		 */
11162 		extern int ClearDrawScreen(const (dxlib_d.DxDataType.RECT)* ClearRect = null);
11163 
11164 		/**
11165 		 * 画面のZバッファをクリアする
11166 		 */
11167 		extern int ClearDrawScreenZBuffer(const (dxlib_d.DxDataType.RECT)* ClearRect = null);
11168 
11169 		/**
11170 		 * ClearDrawScreenの旧名称
11171 		 */
11172 		extern int ClsDrawScreen();
11173 
11174 		/**
11175 		 * 描画先画面を設定する(MakeScreenで作成したグラフィックハンドルも渡すことができます)
11176 		 */
11177 		extern int SetDrawScreen(int DrawScreen);
11178 
11179 		/**
11180 		 * 描画先画面を取得する
11181 		 */
11182 		extern int GetDrawScreen();
11183 
11184 		/**
11185 		 * GetDrawScreenの旧名称
11186 		 */
11187 		extern int GetActiveGraph();
11188 
11189 		/**
11190 		 * SetDrawScreenを実行した際にカメラや描画範囲の設定をリセットするかを設定する
11191 		 *
11192 		 * Params:
11193 		 *      UseFlag = dxlib_d.DxDataType.TRUE:リセットする(デフォルト)  dxlib_d.DxDataType.FALSE:リセットしない
11194 		 */
11195 		extern int SetUseSetDrawScreenSettingReset(int UseFlag);
11196 
11197 		/**
11198 		 * SetDrawScreenを実行した際にカメラや描画範囲の設定をリセットするかを取得する
11199 		 */
11200 		extern int GetUseSetDrawScreenSettingReset();
11201 
11202 		/**
11203 		 * 描画先Zバッファのセット(DrawScreen 付属のZバッファを描画先Zバッファにする、DrawScreenを-1にするとデフォルトの描画先Zバッファに戻る)
11204 		 */
11205 		extern int SetDrawZBuffer(int DrawScreen);
11206 
11207 		/**
11208 		 * 画面モードを設定する
11209 		 */
11210 		extern int SetGraphMode(int ScreenSizeX, int ScreenSizeY, int ColorBitDepth, int RefreshRate = 60);
11211 
11212 		/**
11213 		 * 画面のメモリイメージをセットする(DxLib_Initの前で呼ぶ必要がある(DxLib_Initの前に一度でも呼んでいれば、DxLib_Init後はImageのアドレスのみの変更目的で呼ぶことは可能)、PixelFormatにDX_USER_SCREEN_PIXEL_FORMAT_R5G6B5又はDX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8の二つ以外を指定した場合はDXライブラリの描画関数は一切使用できなくなります)
11214 		 */
11215 		extern int SetUserScreenImage(void* Image, int PixelFormat /* DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5等 */);
11216 
11217 		/**
11218 		 * フルスクリーン解像度モードを設定する
11219 		 */
11220 		extern int SetFullScreenResolutionMode(int ResolutionMode /* DX_FSRESOLUTIONMODE_NATIVE等 */);
11221 
11222 		/**
11223 		 * フルスクリーン解像度モードを取得する(UseResolutionModeは実際に使用されている解像度モード(例えば DX_FSRESOLUTIONMODE_NATIVEを指定していてもモニタが指定の解像度に対応していない場合はUseResolutionModeがDX_FSRESOLUTIONMODE_DESKTOPやDX_FSRESOLUTIONMODE_MAXIMUMになります))
11224 		 */
11225 		extern int GetFullScreenResolutionMode(int* ResolutionMode, int* UseResolutionMode);
11226 
11227 		/**
11228 		 * フルスクリーンモード時の画面拡大モードを設定する
11229 		 */
11230 		extern int SetFullScreenScalingMode(int ScalingMode /* DX_FSSCALINGMODE_NEAREST等 */, int FitScaling = dxlib_d.DxDataType.FALSE);
11231 
11232 		/**
11233 		 * 640x480の画面で320x240の画面解像度にするかどうかを設定する、640x480以外の解像度では無効
11234 		 *
11235 		 * Params:
11236 		 *      Flag = dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
11237 		 */
11238 		extern int SetEmulation320x240(int Flag);
11239 
11240 		/**
11241 		 * 画面用のZバッファのサイズを設定する
11242 		 */
11243 		extern int SetZBufferSize(int ZBufferSizeX, int ZBufferSizeY);
11244 
11245 		/**
11246 		 * 画面用のZバッファのビット深度を設定する(16 or 24 or 32)
11247 		 */
11248 		extern int SetZBufferBitDepth(int BitDepth);
11249 
11250 		/**
11251 		 * ScreenFlip 実行時にVSYNC待ちをするかどうかを設定する
11252 		 */
11253 		extern int SetWaitVSyncFlag(int Flag);
11254 
11255 		/**
11256 		 * ScreenFlip 実行時にVSYNC待ちをするかどうかを取得する
11257 		 */
11258 		extern int GetWaitVSyncFlag();
11259 
11260 		/**
11261 		 * 画面のフルスクリーンアンチエイリアスモードの設定を行う(DxLib_Initの前でのみ使用可能)
11262 		 */
11263 		extern int SetFullSceneAntiAliasingMode(int Samples, int Quality);
11264 
11265 		/**
11266 		 * ScreenFlip 時に表画面全体に転送する裏画面の領域を設定する(DxLib_Initの前でのみ使用可能)
11267 		 */
11268 		extern int SetGraphDisplayArea(int x1, int y1, int x2, int y2);
11269 
11270 		/**
11271 		 * 画面モード変更時(とウインドウモード変更時)にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する
11272 		 *
11273 		 * Params:
11274 		 *      Flag = dxlib_d.DxDataType.TRUE:リセットする(デフォルト)  dxlib_d.DxDataType.FALSE:リセットしない
11275 		 */
11276 		extern int SetChangeScreenModeGraphicsSystemResetFlag(int Flag);
11277 
11278 		/**
11279 		 * 現在の画面の解像度とカラービット数を得る
11280 		 */
11281 		extern int GetScreenState(int* SizeX, int* SizeY, int* ColorBitDepth);
11282 
11283 		/**
11284 		 * 描画先のサイズを取得する
11285 		 */
11286 		extern int GetDrawScreenSize(int* XBuf, int* YBuf);
11287 
11288 		/**
11289 		 * 画面のカラービット数を取得する
11290 		 */
11291 		extern int GetScreenBitDepth();
11292 
11293 		/**
11294 		 * GetScreenBitDepthの旧名称
11295 		 */
11296 		extern int GetColorBitDepth();
11297 
11298 		/**
11299 		 * 画面モードが変更されているかどうかを取得する
11300 		 */
11301 		extern int GetChangeDisplayFlag();
11302 
11303 		/**
11304 		 * (現在正常に動作しません)ビデオメモリの容量を得る
11305 		 */
11306 		extern int GetVideoMemorySize(int* AllSize, int* FreeSize);
11307 
11308 		/**
11309 		 * 現在の画面のリフレッシュレートを取得する
11310 		 */
11311 		extern int GetRefreshRate();
11312 
11313 		/**
11314 		 * ディスプレイの数を取得
11315 		 */
11316 		extern int GetDisplayNum();
11317 
11318 		/**
11319 		 * ディスプレイのデスクトップ上での矩形位置を取得する
11320 		 */
11321 		extern int GetDisplayInfo(int DisplayIndex, int* DesktopRectX, int* DesktopRectY, int* DesktopSizeX, int* DesktopSizeY, int* IsPrimary);
11322 
11323 		/**
11324 		 * 変更可能なディスプレイモードの数を取得する
11325 		 */
11326 		extern int GetDisplayModeNum(int DisplayIndex = 0);
11327 
11328 		/**
11329 		 * 変更可能なディスプレイモードの情報を取得する(ModeIndexは0~GetDisplayModeNumの戻り値-1)
11330 		 */
11331 		extern .DISPLAYMODEDATA GetDisplayMode(int ModeIndex, int DisplayIndex = 0);
11332 
11333 		/**
11334 		 * ディスプレイの最大解像度を取得する
11335 		 */
11336 		extern int GetDisplayMaxResolution(int* SizeX, int* SizeY, int DisplayIndex = 0);
11337 
11338 		/**
11339 		 * ディスプレイのカラーデータアドレスを取得する
11340 		 */
11341 		extern const (.COLORDATA)* GetDispColorData();
11342 
11343 		/**
11344 		 * 同時に描画を行うことができる画面の数を取得する
11345 		 */
11346 		extern int GetMultiDrawScreenNum();
11347 
11348 		/**
11349 		 * DrawGraphF等の浮動小数点値で座標を指定する関数における座標タイプを取得する
11350 		 *
11351 		 * Returns: DX_DRAWFLOATCOORDTYPE_DIRECT3D9など
11352 		 */
11353 		extern int GetDrawFloatCoordType();
11354 
11355 		// その他設定関係関数
11356 
11357 		/**
11358 		 * 通常描画にプログラマブルシェーダーを使用するかどうかを設定する
11359 		 *
11360 		 * Params:
11361 		 *      Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
11362 		 */
11363 		extern int SetUseNormalDrawShader(int Flag);
11364 
11365 		/**
11366 		 * ソフトウエアレンダリングモードを使用するかどうかを設定する(DxLib_Initの前に呼ぶ必要があります)
11367 		 *
11368 		 * Params:
11369 		 *      Flag = dxlib_d.DxDataType.TRUE:使用する  dxlib_d.DxDataType.FALSE:使用しない(デフォルト)
11370 		 */
11371 		extern int SetUseSoftwareRenderModeFlag(int Flag);
11372 
11373 		/**
11374 		 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)3D機能を使わないかどうかを設定する
11375 		 */
11376 		extern int SetNotUse3DFlag(int Flag);
11377 
11378 		/**
11379 		 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)3D機能を使うかどうかを設定する
11380 		 */
11381 		extern int SetUse3DFlag(int Flag);
11382 
11383 		/**
11384 		 * 描画に3D機能を使うかどうかを取得する
11385 		 */
11386 		extern int GetUse3DFlag();
11387 
11388 		/**
11389 		 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)画面のピクセルデータをVRAMに置くかどうかを設定する
11390 		 */
11391 		extern int SetScreenMemToVramFlag(int Flag);
11392 
11393 		/**
11394 		 * 画面のピクセルデータがシステムメモリ上に存在するかを取得する
11395 		 */
11396 		extern int GetScreenMemToSystemMemFlag();
11397 
11398 		/**
11399 		 * 通常使用しない
11400 		 */
11401 		extern int SetWindowDrawRect(const (dxlib_d.DxDataType.RECT)* DrawRect);
11402 
11403 		/**
11404 		 * DXライブラリのグラフィックス処理関連の復帰処理を行う
11405 		 */
11406 		extern int RestoreGraphSystem();
11407 
11408 		/**
11409 		 * ハードウエアの頂点演算処理機能を使用するかどうかを設定する(DxLib_Initの前に呼ぶ必要があります)
11410 		 *
11411 		 * Params:
11412 		 *      Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
11413 		 */
11414 		extern int SetUseHardwareVertexProcessing(int Flag);
11415 
11416 		/**
11417 		 * ピクセル単位でライティングを行うかどうかを設定する、要 ShaderModel 3.0
11418 		 *
11419 		 * Params:
11420 		 *      Flag = dxlib_d.DxDataType.TRUE:ピクセル単位のライティングを行う  dxlib_d.DxDataType.FALSE:頂点単位のライティングを行う(デフォルト)
11421 		 */
11422 		extern int SetUsePixelLighting(int Flag);
11423 
11424 		/**
11425 		 * 古いバージョンのDrawModiGraph関数のコードを使用するかどうかを設定する
11426 		 */
11427 		extern int SetUseOldDrawModiGraphCodeFlag(int Flag);
11428 
11429 		/**
11430 		 * (現在効果なし)VRAMを使用するかのフラグをセットする
11431 		 */
11432 		extern int SetUseVramFlag(int Flag);
11433 
11434 		/**
11435 		 * (現在効果なし)2Dグラフィックサーフェス作成時にシステムメモリーを使用するかのフラグ取得
11436 		 */
11437 		extern int GetUseVramFlag();
11438 
11439 		/**
11440 		 * (現在効果なし)簡略化ブレンド処理を行うか否かのフラグをセットする
11441 		 */
11442 		extern int SetBasicBlendFlag(int Flag);
11443 
11444 		/**
11445 		 * (現在効果なし)単純図形の描画に3Dデバイスの機能を使用するかどうかを設定する
11446 		 */
11447 		extern int SetUseBasicGraphDraw3DDeviceMethodFlag(int Flag);
11448 
11449 		/**
11450 		 * DXライブラリのウインドウを表示するディスプレイデバイスを設定する(-1を指定するとマウスカーソルがあるディスプレイデバイスにDXライブラリのウインドウを表示する)
11451 		 */
11452 		extern int SetUseDisplayIndex(int Index);
11453 
11454 		/**
11455 		 * 頂点バッファに溜まった頂点データを描画する(特殊用途)
11456 		 */
11457 		extern int RenderVertex();
11458 
11459 		// 描画パフォーマンス関係関数
11460 
11461 		/**
11462 		 * 前々回のScreenFlip 呼び出しから、前回のScreenFlip 呼び出しまでの間に行われた描画コールの回数を取得する
11463 		 */
11464 		extern int GetDrawCallCount();
11465 
11466 		/**
11467 		 * フレームレート(1秒間に呼ばれるScreenFlipの回数)を取得する
11468 		 */
11469 		extern float GetFPS();
11470 
11471 		version (DX_NON_SAVEFUNCTION) {
11472 		} else {
11473 			// 描画先画面保存関数
11474 			// Jpeg_Quality         = 0:低画質~100:高画質
11475 			// Png_CompressionLevel = 0:無圧縮~9:最高圧縮
11476 
11477 			/**
11478 			 * 現在描画対象になっている画面をファイルで保存する
11479 			 */
11480 			extern int SaveDrawScreen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1);
11481 
11482 			/**
11483 			 * 現在描画対象になっている画面をファイルで保存する
11484 			 */
11485 			extern int SaveDrawScreenWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1);
11486 
11487 			/**
11488 			 * 現在描画対象になっている画面をBMP形式で保存する
11489 			 */
11490 			extern int SaveDrawScreenToBMP(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName);
11491 
11492 			/**
11493 			 * 現在描画対象になっている画面をBMP形式で保存する
11494 			 */
11495 			extern int SaveDrawScreenToBMPWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11496 
11497 			/**
11498 			 * 現在描画対象になっている画面をDDS形式で保存する
11499 			 */
11500 			extern int SaveDrawScreenToDDS(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName);
11501 
11502 			/**
11503 			 * 現在描画対象になっている画面をDDS形式で保存する
11504 			 */
11505 			extern int SaveDrawScreenToDDSWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11506 
11507 			/**
11508 			 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
11509 			 */
11510 			extern int SaveDrawScreenToJPEG(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE);
11511 
11512 			/**
11513 			 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
11514 			 */
11515 			extern int SaveDrawScreenToJPEGWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE);
11516 
11517 			/**
11518 			 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
11519 			 */
11520 			extern int SaveDrawScreenToPNG(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int CompressionLevel = -1);
11521 
11522 			/**
11523 			 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
11524 			 */
11525 			extern int SaveDrawScreenToPNGWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CompressionLevel = -1);
11526 
11527 			// 描画対象にできるグラフィックハンドル保存関数
11528 			// Jpeg_Quality         = 0:低画質~100:高画質
11529 			// Png_CompressionLevel = 0:無圧縮~9:最高圧縮
11530 
11531 			/**
11532 			 * 描画対象にできるグラフィックハンドルをファイルで保存する
11533 			 */
11534 			extern int SaveDrawValidGraph(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1);
11535 
11536 			/**
11537 			 * 描画対象にできるグラフィックハンドルをファイルで保存する
11538 			 */
11539 			extern int SaveDrawValidGraphWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1);
11540 
11541 			/**
11542 			 * 描画対象にできるグラフィックハンドルをBMP形式で保存する
11543 			 */
11544 			extern int SaveDrawValidGraphToBMP(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName);
11545 
11546 			/**
11547 			 * 描画対象にできるグラフィックハンドルをBMP形式で保存する
11548 			 */
11549 			extern int SaveDrawValidGraphToBMPWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11550 
11551 			/**
11552 			 * 描画対象にできるグラフィックハンドルをDDS形式で保存する
11553 			 */
11554 			extern int SaveDrawValidGraphToDDS(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName);
11555 
11556 			/**
11557 			 * 描画対象にできるグラフィックハンドルをDDS形式で保存する
11558 			 */
11559 			extern int SaveDrawValidGraphToDDSWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11560 
11561 			/**
11562 			 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
11563 			 */
11564 			extern int SaveDrawValidGraphToJPEG(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE);
11565 
11566 			/**
11567 			 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
11568 			 */
11569 			extern int SaveDrawValidGraphToJPEGWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE);
11570 
11571 			/**
11572 			 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
11573 			 */
11574 			extern int SaveDrawValidGraphToPNG(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int CompressionLevel = -1);
11575 
11576 			/**
11577 			 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
11578 			 */
11579 			extern int SaveDrawValidGraphToPNGWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CompressionLevel = -1);
11580 		}
11581 
11582 		// 頂点バッファ関係関数
11583 
11584 		/**
11585 		 * 頂点バッファを作成する
11586 		 *
11587 		 * Returns: -1:エラー  0以上:頂点バッファハンドル
11588 		 */
11589 		extern int CreateVertexBuffer(int VertexNum, int VertexType /* DX_VERTEX_TYPE_NORMAL_3D等 */);
11590 
11591 		/**
11592 		 * 頂点バッファを削除する
11593 		 */
11594 		extern int DeleteVertexBuffer(int VertexBufHandle);
11595 
11596 		/**
11597 		 * すべての頂点バッファを削除する
11598 		 */
11599 		extern int InitVertexBuffer();
11600 
11601 		/**
11602 		 * 頂点バッファに頂点データを転送する
11603 		 */
11604 		extern int SetVertexBufferData(int SetIndex, const (void)* VertexArray, int VertexNum, int VertexBufHandle);
11605 
11606 		/**
11607 		 * 頂点バッファハンドルの頂点バッファのアドレスを取得する
11608 		 */
11609 		extern void* GetBufferVertexBuffer(int VertexBufHandle);
11610 
11611 		/**
11612 		 * 頂点バッファハンドルの頂点バッファへの変更を適用する(GetBufferVertexBufferで取得したバッファへの変更を反映する)
11613 		 */
11614 		extern int UpdateVertexBuffer(int VertexBufHandle, int UpdateStartIndex, int UpdateVertexNum);
11615 
11616 		/**
11617 		 * インデックスバッファを作成する
11618 		 *
11619 		 * Returns: -1:エラー 0以上:インデックスバッファハンドル
11620 		 */
11621 		extern int CreateIndexBuffer(int IndexNum, int IndexType /* DX_INDEX_TYPE_16BIT等 */);
11622 
11623 		/**
11624 		 * インデックスバッファを削除する
11625 		 */
11626 		extern int DeleteIndexBuffer(int IndexBufHandle);
11627 
11628 		/**
11629 		 * すべてのインデックスバッファを削除する
11630 		 */
11631 		extern int InitIndexBuffer();
11632 
11633 		/**
11634 		 * インデックスバッファにインデックスデータを転送する
11635 		 */
11636 		extern int SetIndexBufferData(int SetIndex, const (void)* IndexArray, int IndexNum, int IndexBufHandle);
11637 
11638 		/**
11639 		 * インデックスバッファハンドルのインデックスバッファのアドレスを取得する
11640 		 */
11641 		extern void* GetBufferIndexBuffer(int IndexBufHandle);
11642 
11643 		/**
11644 		 * インデックスバッファハンドルのインデックスバッファへの変更を適用する(GetBufferIndexBufferで取得したバッファへの変更を反映する)
11645 		 */
11646 		extern int UpdateIndexBuffer(int IndexBufHandle, int UpdateStartIndex, int UpdateIndexNum);
11647 
11648 		/**
11649 		 * グラフィックスデバイスが対応している一度に描画できるプリミティブの最大数を取得する
11650 		 */
11651 		extern int GetMaxPrimitiveCount();
11652 
11653 		/**
11654 		 * グラフィックスデバイスが対応している一度に使用することのできる最大頂点数を取得する
11655 		 */
11656 		extern int GetMaxVertexIndex();
11657 
11658 		// シェーダー関係関数
11659 
11660 		/**
11661 		 * 使用できるシェーダーのバージョンを取得する(0:使えない  200:シェーダーモデル2.0が使用可能  300:シェーダーモデル3.0が使用可能)
11662 		 */
11663 		extern int GetValidShaderVersion();
11664 
11665 		/**
11666 		 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する
11667 		 *
11668 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11669 		 */
11670 		extern int LoadVertexShader(const (dxlib_d.DxDataType.TCHAR)* FileName);
11671 
11672 		/**
11673 		 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する
11674 		 *
11675 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11676 		 */
11677 		extern int LoadVertexShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11678 
11679 		/**
11680 		 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する
11681 		 *
11682 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11683 		 */
11684 		extern int LoadGeometryShader(const (dxlib_d.DxDataType.TCHAR)* FileName);
11685 
11686 		/**
11687 		 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する
11688 		 *
11689 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11690 		 */
11691 		extern int LoadGeometryShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11692 
11693 		/**
11694 		 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する
11695 		 *
11696 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11697 		 */
11698 		extern int LoadPixelShader(const (dxlib_d.DxDataType.TCHAR)* FileName);
11699 
11700 		/**
11701 		 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する
11702 		 *
11703 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11704 		 */
11705 		extern int LoadPixelShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
11706 
11707 		/**
11708 		 * メモリに読み込まれた頂点シェーダーバイナリから頂点シェーダーハンドルを作成する
11709 		 *
11710 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11711 		 */
11712 		extern int LoadVertexShaderFromMem(const (void)* ImageAddress, int ImageSize);
11713 
11714 		/**
11715 		 * メモリに読み込まれたジオメトリシェーダーバイナリからジオメトリシェーダーハンドルを作成する
11716 		 *
11717 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11718 		 */
11719 		extern int LoadGeometryShaderFromMem(const (void)* ImageAddress, int ImageSize);
11720 
11721 		/**
11722 		 * メモリに読み込まれたピクセルシェーダーバイナリからピクセルシェーダーハンドルを作成する
11723 		 *
11724 		 * Returns: -1:エラー  -1以外:シェーダーハンドル
11725 		 */
11726 		extern int LoadPixelShaderFromMem(const (void)* ImageAddress, int ImageSize);
11727 
11728 		/**
11729 		 * シェーダーハンドルの削除(頂点シェーダー・ピクセルシェーダー共通)
11730 		 */
11731 		extern int DeleteShader(int ShaderHandle);
11732 
11733 		/**
11734 		 * シェーダーハンドルを全て削除する(頂点シェーダーハンドル・ピクセルシェーダーハンドルどちらもすべて削除)
11735 		 */
11736 		extern int InitShader();
11737 
11738 		/**
11739 		 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する
11740 		 */
11741 		extern int GetConstIndexToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle);
11742 
11743 		/**
11744 		 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する
11745 		 */
11746 		extern int GetConstIndexToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle);
11747 
11748 		/**
11749 		 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する
11750 		 */
11751 		extern int GetConstCountToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle);
11752 
11753 		/**
11754 		 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する
11755 		 */
11756 		extern int GetConstCountToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle);
11757 
11758 		/**
11759 		 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する
11760 		 */
11761 		extern const (.FLOAT4)* GetConstDefaultParamFToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle);
11762 
11763 		/**
11764 		 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する
11765 		 */
11766 		extern const (.FLOAT4)* GetConstDefaultParamFToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle);
11767 
11768 		/**
11769 		 * 頂点シェーダーのfloat型定数を設定する
11770 		 */
11771 		extern int SetVSConstSF(int ConstantIndex, float Param);
11772 
11773 		/**
11774 		 * 頂点シェーダーのfloat型定数を設定する
11775 		 */
11776 		extern int SetVSConstF(int ConstantIndex, .FLOAT4 Param);
11777 
11778 		/**
11779 		 * 頂点シェーダーのfloat型定数に行列を設定する
11780 		 */
11781 		extern int SetVSConstFMtx(int ConstantIndex, .MATRIX Param);
11782 
11783 		/**
11784 		 * 頂点シェーダーのfloat型定数に転置した行列を設定する
11785 		 */
11786 		extern int SetVSConstFMtxT(int ConstantIndex, .MATRIX Param);
11787 
11788 		/**
11789 		 * 頂点シェーダーのint型定数を設定する
11790 		 */
11791 		extern int SetVSConstSI(int ConstantIndex, int Param);
11792 
11793 		/**
11794 		 * 頂点シェーダーのint型定数を設定する
11795 		 */
11796 		extern int SetVSConstI(int ConstantIndex, .INT4 Param);
11797 
11798 		/**
11799 		 * 頂点シェーダーのBOOL型定数を設定する
11800 		 */
11801 		extern int SetVSConstB(int ConstantIndex, dxlib_d.DxDataType.BOOL Param);
11802 
11803 		/**
11804 		 * 頂点シェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定)
11805 		 */
11806 		extern int SetVSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum);
11807 
11808 		/**
11809 		 * 頂点シェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定)
11810 		 */
11811 		extern int SetVSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum);
11812 
11813 		/**
11814 		 * 頂点シェーダーのfloat型定数に行列を設定する(配列を使って連番インデックスに一度に設定)
11815 		 */
11816 		extern int SetVSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum);
11817 
11818 		/**
11819 		 * 頂点シェーダーのfloat型定数に転置した行列を設定する(配列を使って連番インデックスに一度に設定)
11820 		 */
11821 		extern int SetVSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum);
11822 
11823 		/**
11824 		 * 頂点シェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定)
11825 		 */
11826 		extern int SetVSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum);
11827 
11828 		/**
11829 		 * 頂点シェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定)
11830 		 */
11831 		extern int SetVSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum);
11832 
11833 		/**
11834 		 * 頂点シェーダーのBOOL型定数を設定する(配列を使って連番インデックスに一度に設定)
11835 		 */
11836 		extern int SetVSConstBArray(int ConstantIndex, const (dxlib_d.DxDataType.BOOL)* ParamArray, int ParamNum);
11837 
11838 		/**
11839 		 * 頂点シェーダーのfloat型定数の設定をリセットする
11840 		 */
11841 		extern int ResetVSConstF(int ConstantIndex, int ParamNum);
11842 
11843 		/**
11844 		 * 頂点シェーダーのint型定数の設定をリセットする
11845 		 */
11846 		extern int ResetVSConstI(int ConstantIndex, int ParamNum);
11847 
11848 		/**
11849 		 * 頂点シェーダーのBOOL型定数の設定をリセットする
11850 		 */
11851 		extern int ResetVSConstB(int ConstantIndex, int ParamNum);
11852 
11853 		/**
11854 		 * ピクセルシェーダーのfloat型定数を設定する
11855 		 */
11856 		extern int SetPSConstSF(int ConstantIndex, float Param);
11857 
11858 		/**
11859 		 * ピクセルシェーダーのfloat型定数を設定する
11860 		 */
11861 		extern int SetPSConstF(int ConstantIndex, .FLOAT4 Param);
11862 
11863 		/**
11864 		 * ピクセルシェーダーのfloat型定数に行列を設定する
11865 		 */
11866 		extern int SetPSConstFMtx(int ConstantIndex, .MATRIX Param);
11867 
11868 		/**
11869 		 * ピクセルシェーダーのfloat型定数に転置した行列を設定する
11870 		 */
11871 		extern int SetPSConstFMtxT(int ConstantIndex, .MATRIX Param);
11872 
11873 		/**
11874 		 * ピクセルシェーダーのint型定数を設定する
11875 		 */
11876 		extern int SetPSConstSI(int ConstantIndex, int Param);
11877 
11878 		/**
11879 		 * ピクセルシェーダーのint型定数を設定する
11880 		 */
11881 		extern int SetPSConstI(int ConstantIndex, .INT4 Param);
11882 
11883 		/**
11884 		 * ピクセルシェーダーのBOOL型定数を設定する
11885 		 */
11886 		extern int SetPSConstB(int ConstantIndex, dxlib_d.DxDataType.BOOL Param);
11887 
11888 		/**
11889 		 * ピクセルシェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定)
11890 		 */
11891 		extern int SetPSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum);
11892 
11893 		/**
11894 		 * ピクセルシェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定)
11895 		 */
11896 		extern int SetPSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum);
11897 
11898 		/**
11899 		 * ピクセルシェーダーのfloat型定数に行列を設定する(配列を使って連番インデックスに一度に設定)
11900 		 */
11901 		extern int SetPSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum);
11902 
11903 		/**
11904 		 * ピクセルシェーダーのfloat型定数に転置した行列を設定する(配列を使って連番インデックスに一度に設定)
11905 		 */
11906 		extern int SetPSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum);
11907 
11908 		/**
11909 		 * ピクセルシェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定)
11910 		 */
11911 		extern int SetPSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum);
11912 
11913 		/**
11914 		 * ピクセルシェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定)
11915 		 */
11916 		extern int SetPSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum);
11917 
11918 		/**
11919 		 * ピクセルシェーダーのBOOL型定数を設定する(配列を使って連番インデックスに一度に設定)
11920 		 */
11921 		extern int SetPSConstBArray(int ConstantIndex, const (dxlib_d.DxDataType.BOOL)* ParamArray, int ParamNum);
11922 
11923 		/**
11924 		 * ピクセルシェーダーのfloat型定数の設定をリセットする
11925 		 */
11926 		extern int ResetPSConstF(int ConstantIndex, int ParamNum);
11927 
11928 		/**
11929 		 * ピクセルシェーダーのint型定数の設定をリセットする
11930 		 */
11931 		extern int ResetPSConstI(int ConstantIndex, int ParamNum);
11932 
11933 		/**
11934 		 * ピクセルシェーダーのBOOL型定数の設定をリセットする
11935 		 */
11936 		extern int ResetPSConstB(int ConstantIndex, int ParamNum);
11937 
11938 		/**
11939 		 * シェーダーを使用した描画での描画先を設定する(DrawScreenに-1を渡すと無効化)
11940 		 */
11941 		extern int SetRenderTargetToShader(int TargetIndex, int DrawScreen, int SurfaceIndex = 0, int MipLevel = 0);
11942 
11943 		/**
11944 		 * シェーダーを使用した描画で使用するグラフィックハンドルを設定する
11945 		 */
11946 		extern int SetUseTextureToShader(int StageIndex, int GraphHandle);
11947 
11948 		/**
11949 		 * シェーダーを使用した描画に使用する頂点シェーダーを設定する(-1を渡すと解除)
11950 		 */
11951 		extern int SetUseVertexShader(int ShaderHandle);
11952 
11953 		/**
11954 		 * シェーダーを使用した描画に使用するジオメトリシェーダーを設定する(-1を渡すと解除)
11955 		 */
11956 		extern int SetUseGeometryShader(int ShaderHandle);
11957 
11958 		/**
11959 		 * シェーダーを使用した描画に使用するピクセルシェーダーを設定する(-1を渡すと解除)
11960 		 */
11961 		extern int SetUsePixelShader(int ShaderHandle);
11962 
11963 		/**
11964 		 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする
11965 		 */
11966 		extern int CalcPolygonBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int PolygonNum);
11967 
11968 		/**
11969 		 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする(頂点インデックスを使用する)
11970 		 */
11971 		extern int CalcPolygonIndexedBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum);
11972 
11973 		/**
11974 		 * シェーダーを使ってビルボードを描画する
11975 		 */
11976 		extern int DrawBillboard3DToShader(.VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE);
11977 
11978 		/**
11979 		 * シェーダーを使って2Dポリゴンを描画する
11980 		 */
11981 		extern int DrawPolygon2DToShader(const (.VERTEX2DSHADER)* VertexArray, int PolygonNum);
11982 
11983 		/**
11984 		 * シェーダーを使って3Dポリゴンを描画する
11985 		 */
11986 		extern int DrawPolygon3DToShader(const (.VERTEX3DSHADER)* VertexArray, int PolygonNum);
11987 
11988 		/**
11989 		 * シェーダーを使って2Dポリゴンを描画する(頂点インデックスを使用する)
11990 		 */
11991 		extern int DrawPolygonIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum);
11992 
11993 		/**
11994 		 * シェーダーを使って3Dポリゴンを描画する(頂点インデックスを使用する)
11995 		 */
11996 		extern int DrawPolygonIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum);
11997 
11998 		/**
11999 		 * シェーダーを使って2Dプリミティブを描画する
12000 		 */
12001 		extern int DrawPrimitive2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12002 
12003 		/**
12004 		 * シェーダーを使って3Dプリミティブを描画する
12005 		 */
12006 		extern int DrawPrimitive3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12007 
12008 		/**
12009 		 * シェーダーを使って2Dプリミティブを描画する(頂点インデックスを使用する)
12010 		 */
12011 		extern int DrawPrimitiveIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12012 
12013 		/**
12014 		 * シェーダーを使って3Dプリミティブを描画する(頂点インデックスを使用する)
12015 		 */
12016 		extern int DrawPrimitiveIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12017 
12018 		/**
12019 		 * シェーダーを使って3Dポリゴンを描画する(頂点バッファ使用版)
12020 		 */
12021 		extern int DrawPolygon3DToShader_UseVertexBuffer(int VertexBufHandle);
12022 
12023 		/**
12024 		 * シェーダーを使って3Dポリゴンを描画する(頂点バッファとインデックスバッファ使用版)
12025 		 */
12026 		extern int DrawPolygonIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle);
12027 
12028 		/**
12029 		 * シェーダーを使って3Dプリミティブを描画する(頂点バッファ使用版)
12030 		 */
12031 		extern int DrawPrimitive3DToShader_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12032 
12033 		/**
12034 		 * シェーダーを使って3Dプリミティブを描画する(頂点バッファ使用版)
12035 		 */
12036 		extern int DrawPrimitive3DToShader_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int StartVertex, int UseVertexNum);
12037 
12038 		/**
12039 		 * シェーダーを使って3Dプリミティブを描画する(頂点バッファとインデックスバッファ使用版)
12040 		 */
12041 		extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */);
12042 
12043 		/**
12044 		 * シェーダーを使って3Dプリミティブを描画する(頂点バッファとインデックスバッファ使用版)
12045 		 */
12046 		extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer2(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum);
12047 
12048 		// シェーダー用定数バッファ関係関数
12049 
12050 		/**
12051 		 * 全てのシェーダー用定数バッファハンドルを削除する
12052 		 */
12053 		extern int InitShaderConstantBuffer();
12054 
12055 		/**
12056 		 * シェーダー用定数バッファハンドルを初期化する
12057 		 */
12058 		extern int CreateShaderConstantBuffer(int BufferSize);
12059 
12060 		/**
12061 		 * シェーダー用定数バッファハンドルを削除する
12062 		 */
12063 		extern int DeleteShaderConstantBuffer(int SConstBufHandle);
12064 
12065 		/**
12066 		 * シェーダー用定数バッファハンドルの定数バッファのアドレスを取得する
12067 		 */
12068 		extern void* GetBufferShaderConstantBuffer(int SConstBufHandle);
12069 
12070 		/**
12071 		 * シェーダー用定数バッファハンドルの定数バッファへの変更を適用する
12072 		 */
12073 		extern int UpdateShaderConstantBuffer(int SConstBufHandle);
12074 
12075 		/**
12076 		 * シェーダー用定数バッファハンドルの定数バッファを指定のシェーダーの指定のスロットにセットする
12077 		 */
12078 		extern int SetShaderConstantBuffer(int SConstBufHandle, int TargetShader /* DX_SHADERTYPE_VERTEXなど */, int Slot);
12079 
12080 		// フィルター関係関数
12081 		version (DX_NON_FILTER) {
12082 		} else {
12083 			/**
12084 			 * GraphFilterBltやGraphBlendBltの結果を転送先に転送する際のブレンドモードを設定する(現状で対応しているのはDX_BLENDMODE_NOBLENDとDX_BLENDMODE_ALPHAのみ)
12085 			 */
12086 			extern int SetGraphFilterBltBlendMode(int BlendMode /* DX_BLENDMODE_ALPHAなど */);
12087 
12088 			/**
12089 			 * 画像にフィルター処理を行う
12090 			 */
12091 			extern int GraphFilter(int GrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...);
12092 
12093 			/**
12094 			 * 画像のフィルター付き転送を行う
12095 			 */
12096 			extern int GraphFilterBlt(int SrcGrHandle, int DestGrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...);
12097 
12098 			/**
12099 			 * 画像のフィルター付き転送を行う(矩形指定)
12100 			 */
12101 			extern int GraphFilterRectBlt(int SrcGrHandle, int DestGrHandle, int SrcX1, int SrcY1, int SrcX2, int SrcY2, int DestX, int DestY, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...);
12102 
12103 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_MONO, int Cb = 青色差(-255~255), int Cr = 赤色差(-255~255));
12104 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GAUSS, int PixelWidth = 使用ピクセル幅(8 , 16 , 32の何れか), int Param = ぼかしパラメータ(100で約1ピクセル分の幅));
12105 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_DOWN_SCALE, int DivNum = 元のサイズの何分の1か、という値(2 , 4 , 8の何れか));
12106 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_CLIP, int CmpType = クリップタイプ(DX_CMP_LESS:CmpParam以下をクリップ又はDX_CMP_GREATER:CmpParam以上をクリップ), int CmpParam = クリップパラメータ(0~255), int ClipFillFlag = クリップしたピクセルを塗りつぶすかどうか(dxlib_d.DxDataType.TRUE:塗りつぶす  dxlib_d.DxDataType.FALSE:塗りつぶさない), uint ClipFillColor = クリップしたピクセルに塗る色値(GetColorで取得する)(ClipFillFlagがdxlib_d.DxDataType.FALSEの場合は使用しない), int ClipFillAlpha = クリップしたピクセルに塗るα値(0~255)(ClipFillFlagがdxlib_d.DxDataType.FALSEの場合は使用しない));
12107 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_SCALE, int MinBright = 変換後に真っ暗になる明るさ(0~255), int MaxBright = 変換後に真っ白になる明るさ(0~255));
12108 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_HSB, int HueType = Hueの意味(0:相対値  1:絶対値), int Hue = 色相パラメータ(HueTypeが0の場合 = ピクセルの色相に対する相対値(-180~180)   HueTypeが1の場合 = 色相の絶対値(0~360)), int Saturation = 彩度(-255~), int Bright = 輝度(-255~255));
12109 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INVERT);
12110 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_LEVEL, int Min = 変換元の下限値(0~255), int Max = 変換元の上限値(0~255), int Gamma = ガンマ値(100でガンマ補正無し、0とそれ以下の値は不可), int AfterMin = 変換後の最低値(0~255), int AfterMax = 変換後の最大値(0~255));
12111 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_TWO_COLOR, int Threshold = 閾値(0~255), uint LowColor = 閾値より値が低かったピクセルの変換後の色値(GetColorで取得する), int LowAlpha = 閾値より値が低かったピクセルの変換後のα値(0~255), uint HighColor = 閾値より値が高かったピクセルの変換後の色値(GetColorで取得する), int HighAlpha = 閾値より値が高かったピクセルの変換後のα値(0~255));
12112 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GRADIENT_MAP, int MapGrHandle = グラデーションマップのグラフィックハンドル(元画像の輝度からグラデーションマップ画像のx座標を算出しますので縦幅は1dotでもOK), int Reverse = グラデーションマップ左右反転フラグ(dxlib_d.DxDataType.TRUE:グラデーションマップを左右反転して使う  dxlib_d.DxDataType.FALSE:左右反転しない));
12113 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_REPLACEMENT, int TargetR, int TargetG, int TargetB, int TargetA = 置換対象の色(0~255), int R, int G, int B, int A = 置換後の色(0~255));
12114 
12115 			/*
12116 			 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ
12117 			 */
12118 			// int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_PREMUL_ALPHA);
12119 
12120 			/*
12121 			 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ
12122 			 */
12123 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INTERP_ALPHA);
12124 
12125 			/*
12126 			 * YUVカラーをRGBカラーに変換するフィルタ
12127 			 */
12128 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB);
12129 
12130 			/*
12131 			 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)
12132 			 */
12133 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分(若しくは4分の1)のグラフィックハンドル(U=R, V=G));
12134 
12135 			/*
12136 			 * YUVカラーをRGBカラーに変換するフィルタ(且つ右側半分のRの値をアルファ値として扱う)
12137 			 */
12138 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB_RRA);
12139 
12140 			/*
12141 			 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)(且つ右側半分のRの値をアルファ値として扱う)
12142 			 */
12143 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分(若しくは4分の1)のグラフィックハンドル(U=R, V=G));
12144 
12145 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BICUBIC_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数);
12146 			//int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_LANCZOS3_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数);
12147 
12148 			/**
12149 			 * 二つの画像をブレンドする
12150 			 */
12151 			extern int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio /* ブレンド効果の影響度(0:0%  255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...);
12152 
12153 			/**
12154 			 * 二つの画像をブレンドして結果を指定の画像に出力する
12155 			 */
12156 			extern int GraphBlendBlt(int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int BlendRatio /* ブレンド効果の影響度(0:0%  255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...);
12157 
12158 			/**
12159 			 * 二つの画像をブレンドして結果を指定の画像に出力する(矩形指定)
12160 			 */
12161 			extern int GraphBlendRectBlt(int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int SrcX1, int SrcY1, int SrcX2, int SrcY2, int BlendX, int BlendY, int DestX, int DestY, int BlendRatio /* ブレンド効果の影響度(0:0%  255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...);
12162 
12163 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL);
12164 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_RGBA_SELECT_MIX, int SelectR = (出力の赤分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectG = (出力の緑成分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectB = (出力の青成分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectA = (出力のα成分となる成分 DX_RGBA_SELECT_SRC_R等));
12165 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE);
12166 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DIFFERENCE);
12167 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD);
12168 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SCREEN);
12169 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_OVERLAY);
12170 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DODGE);
12171 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BURN);
12172 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DARKEN);
12173 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_LIGHTEN);
12174 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SOFTLIGHT);
12175 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HARDLIGHT);
12176 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_EXCLUSION);
12177 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL_ALPHACH);
12178 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD_ALPHACH);
12179 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE_A_ONLY);
12180 			// int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY);
12181 		}
12182 
12183 		version (DX_NON_MOVIE) {
12184 		} else {
12185 			// ムービーグラフィック関係関数
12186 
12187 			/**
12188 			 * 動画ファイルの再生
12189 			 */
12190 			extern int PlayMovie(const (dxlib_d.DxDataType.TCHAR)* FileName, int ExRate, int PlayType);
12191 
12192 			/**
12193 			 * 動画ファイルの再生
12194 			 */
12195 			extern int PlayMovieWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int ExRate, int PlayType);
12196 
12197 			/**
12198 			 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する
12199 			 */
12200 			extern int GetMovieImageSize_File(const (dxlib_d.DxDataType.TCHAR)* FileName, int* SizeX, int* SizeY);
12201 
12202 			/**
12203 			 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する
12204 			 */
12205 			extern int GetMovieImageSize_File_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY);
12206 
12207 			/**
12208 			 * メモリ上に展開された動画ファイルの横ピクセル数と縦ピクセル数を取得する
12209 			 */
12210 			extern int GetMovieImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY);
12211 
12212 			/**
12213 			 * 動画ファイルを開く
12214 			 */
12215 			extern int OpenMovieToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int FullColor = dxlib_d.DxDataType.TRUE);
12216 
12217 			/**
12218 			 * 動画ファイルを開く
12219 			 */
12220 			extern int OpenMovieToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int FullColor = dxlib_d.DxDataType.TRUE);
12221 
12222 			/**
12223 			 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を開始する
12224 			 */
12225 			extern int PlayMovieToGraph(int GraphHandle, int PlayType = DX_PLAYTYPE_BACK, int SysPlay = 0);
12226 
12227 			/**
12228 			 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を停止する
12229 			 */
12230 			extern int PauseMovieToGraph(int GraphHandle, int SysPause = 0);
12231 
12232 			/**
12233 			 * 動画ファイルの再生フレームを進める、戻すことは出来ない(動画ファイルが停止状態で、且つ Ogg Theoraのみ有効)
12234 			 */
12235 			extern int AddMovieFrameToGraph(int GraphHandle, uint FrameNum);
12236 
12237 			/**
12238 			 * 動画ファイルの再生位置を設定する(ミリ秒単位)
12239 			 */
12240 			extern int SeekMovieToGraph(int GraphHandle, int Time);
12241 
12242 			/**
12243 			 * 動画ファイルの再生速度を設定する(1.0 = 等倍速  2.0 = 2倍速)、一部のファイルフォーマットのみで有効な機能です
12244 			 */
12245 			extern int SetPlaySpeedRateMovieToGraph(int GraphHandle, double SpeedRate);
12246 
12247 			/**
12248 			 * 動画ファイルの再生状態を得る
12249 			 */
12250 			extern int GetMovieStateToGraph(int GraphHandle);
12251 
12252 			/**
12253 			 * 動画ファイルの音量を設定する(0~10000)
12254 			 */
12255 			extern int SetMovieVolumeToGraph(int Volume, int GraphHandle);
12256 
12257 			/**
12258 			 * 動画ファイルの音量を設定する(0~255)
12259 			 */
12260 			extern int ChangeMovieVolumeToGraph(int Volume, int GraphHandle);
12261 
12262 			/**
12263 			 * 動画ファイルの基本イメージデータを取得する(ImageUpdateFlagにint型変数のアドレスを渡すと、イメージが更新された場合は1が、更新されていない場合は0が格納されます、ImageUpdateFlagSetOnlyをdxlib_d.DxDataType.TRUEにすると戻り値のBASEIMAGEは有効な画像データではなくなりますが、BASEIMAGEの更新処理が行われませんので、ImageUpdateFlagを利用して画像が更新されたかどうかだけをチェックしたい場合はdxlib_d.DxDataType.TRUEにしてください)
12264 			 */
12265 			extern const (.BASEIMAGE)* GetMovieBaseImageToGraph(int GraphHandle, int* ImageUpdateFlag = null, int ImageUpdateFlagSetOnly = dxlib_d.DxDataType.FALSE);
12266 
12267 			/**
12268 			 * 動画ファイルの総フレーム数を得る(Ogg Theoraとmp4でのみ有効)
12269 			 */
12270 			extern int GetMovieTotalFrameToGraph(int GraphHandle);
12271 
12272 			/**
12273 			 * 動画ファイルの再生位置を取得する(ミリ秒単位)
12274 			 */
12275 			extern int TellMovieToGraph(int GraphHandle);
12276 
12277 			/**
12278 			 * 動画ファイルの再生位置を取得する(フレーム単位)
12279 			 */
12280 			extern int TellMovieToGraphToFrame(int GraphHandle);
12281 
12282 			/**
12283 			 * 動画ファイルの再生位置を設定する(フレーム単位)
12284 			 */
12285 			extern int SeekMovieToGraphToFrame(int GraphHandle, int Frame);
12286 
12287 			/**
12288 			 * 動画ファイルの1フレームあたりの時間を取得する
12289 			 *
12290 			 * Returns: 1フレームの時間(単位:マイクロ秒)
12291 			 */
12292 			extern dxlib_d.DxDataType.LONGLONG GetOneFrameTimeMovieToGraph(int GraphHandle);
12293 
12294 			/**
12295 			 * 動画ファイルのイメージを最後に更新した時間を得る(ミリ秒単位)
12296 			 */
12297 			extern int GetLastUpdateTimeMovieToGraph(int GraphHandle);
12298 
12299 			/**
12300 			 * 読み込む動画ファイル映像の右半分の赤成分をα情報として扱うかどうかをセットする
12301 			 *
12302 			 * Params:
12303 			 *      Flag = dxlib_d.DxDataType.TRUE:α情報として扱う  dxlib_d.DxDataType.FALSE:α情報として扱わない(デフォルト)
12304 			 */
12305 			extern int SetMovieRightImageAlphaFlag(int Flag);
12306 
12307 			/**
12308 			 * 読み込む動画ファイルが32bitカラーだった場合、A8R8G8B8形式として扱うかどうかをセットする、32bitカラーではない動画ファイルに対しては無効
12309 			 *
12310 			 * Params:
12311 			 *      Flag = dxlib_d.DxDataType.TRUE:A8R8G8B8として扱う  dxlib_d.DxDataType.FALSE:X8R8G8B8として扱う(デフォルト)
12312 			 */
12313 			extern int SetMovieColorA8R8G8B8Flag(int Flag);
12314 
12315 			/**
12316 			 * YUVフォーマットのサーフェスが使用できる場合はYUVフォーマットのサーフェスを使用するかどうかを設定する
12317 			 *
12318 			 * Params:
12319 			 *      Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:RGBフォーマットのサーフェスを使用する
12320 			 */
12321 			extern int SetMovieUseYUVFormatSurfaceFlag(int Flag);
12322 		}
12323 
12324 		// カメラ関係関数
12325 
12326 		/**
12327 		 * カメラのNearクリップ面とFarクリップ面の距離を設定する
12328 		 */
12329 		extern int SetCameraNearFar(float Near, float Far);
12330 
12331 		/**
12332 		 * カメラのNearクリップ面とFarクリップ面の距離を設定する
12333 		 */
12334 		extern int SetCameraNearFarD(double Near, double Far);
12335 
12336 		/**
12337 		 * カメラの視点、注視点、アップベクトルを設定する(アップベクトルはY軸方向から導き出す)
12338 		 */
12339 		extern int SetCameraPositionAndTarget_UpVecY(.VECTOR Position, .VECTOR Target);
12340 
12341 		/**
12342 		 * カメラの視点、注視点、アップベクトルを設定する(アップベクトルはY軸方向から導き出す)
12343 		 */
12344 		extern int SetCameraPositionAndTarget_UpVecYD(.VECTOR_D Position, .VECTOR_D Target);
12345 
12346 		/**
12347 		 * カメラの視点、注視点、アップベクトルを設定する
12348 		 */
12349 		extern int SetCameraPositionAndTargetAndUpVec(.VECTOR Position, .VECTOR TargetPosition, .VECTOR UpVector);
12350 
12351 		/**
12352 		 * カメラの視点、注視点、アップベクトルを設定する
12353 		 */
12354 		extern int SetCameraPositionAndTargetAndUpVecD(.VECTOR_D Position, .VECTOR_D TargetPosition, .VECTOR_D UpVector);
12355 
12356 		/**
12357 		 * カメラの視点、注視点、アップベクトルを設定する(注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す)
12358 		 */
12359 		extern int SetCameraPositionAndAngle(.VECTOR Position, float VRotate, float HRotate, float TRotate);
12360 
12361 		/**
12362 		 * カメラの視点、注視点、アップベクトルを設定する(注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す)
12363 		 */
12364 		extern int SetCameraPositionAndAngleD(.VECTOR_D Position, double VRotate, double HRotate, double TRotate);
12365 
12366 		/**
12367 		 * ビュー行列を直接設定する
12368 		 */
12369 		extern int SetCameraViewMatrix(.MATRIX ViewMatrix);
12370 
12371 		/**
12372 		 * ビュー行列を直接設定する
12373 		 */
12374 		extern int SetCameraViewMatrixD(.MATRIX_D ViewMatrix);
12375 
12376 		/**
12377 		 * 画面上におけるカメラが見ている映像の中心の座標を設定する
12378 		 */
12379 		extern int SetCameraScreenCenter(float x, float y);
12380 
12381 		/**
12382 		 * 画面上におけるカメラが見ている映像の中心の座標を設定する
12383 		 */
12384 		extern int SetCameraScreenCenterD(double x, double y);
12385 
12386 		/**
12387 		 * 遠近法カメラをセットアップする
12388 		 */
12389 		extern int SetupCamera_Perspective(float Fov);
12390 
12391 		/**
12392 		 * 遠近法カメラをセットアップする
12393 		 */
12394 		extern int SetupCamera_PerspectiveD(double Fov);
12395 
12396 		/**
12397 		 * 正射影カメラをセットアップする
12398 		 */
12399 		extern int SetupCamera_Ortho(float Size);
12400 
12401 		/**
12402 		 * 正射影カメラをセットアップする
12403 		 */
12404 		extern int SetupCamera_OrthoD(double Size);
12405 
12406 		/**
12407 		 * 射影行列を直接設定する
12408 		 */
12409 		extern int SetupCamera_ProjectionMatrix(.MATRIX ProjectionMatrix);
12410 
12411 		/**
12412 		 * 射影行列を直接設定する
12413 		 */
12414 		extern int SetupCamera_ProjectionMatrixD(.MATRIX_D ProjectionMatrix);
12415 
12416 		/**
12417 		 * カメラのドットアスペクト比を設定する
12418 		 */
12419 		extern int SetCameraDotAspect(float DotAspect);
12420 
12421 		/**
12422 		 * カメラのドットアスペクト比を設定する
12423 		 */
12424 		extern int SetCameraDotAspectD(double DotAspect);
12425 
12426 		/**
12427 		 * 指定の座標がカメラの視界に入っているかどうかを判定する
12428 		 *
12429 		 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない  dxlib_d.DxDataType.FALSE:視界に入っている
12430 		 */
12431 		extern int CheckCameraViewClip(.VECTOR CheckPos);
12432 
12433 		/**
12434 		 * 指定の座標がカメラの視界に入っているかどうかを判定する
12435 		 *
12436 		 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない  dxlib_d.DxDataType.FALSE:視界に入っている
12437 		 */
12438 		extern int CheckCameraViewClipD(.VECTOR_D CheckPos);
12439 
12440 		/**
12441 		 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる
12442 		 *
12443 		 * Returns: 0:視界に入っている  0以外:視界に入っていない(DX_CAMERACLIP_LEFTやDX_CAMERACLIP_RIGHTがor演算で混合されたもの、and演算で方向を確認できる)
12444 		 */
12445 		extern int CheckCameraViewClip_Dir(.VECTOR CheckPos);
12446 
12447 		/**
12448 		 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる
12449 		 *
12450 		 * Returns: 0:視界に入っている  0以外:視界に入っていない(DX_CAMERACLIP_LEFTやDX_CAMERACLIP_RIGHTがor演算で混合されたもの、and演算で方向を確認できる)
12451 		 */
12452 		extern int CheckCameraViewClip_DirD(.VECTOR_D CheckPos);
12453 
12454 		/**
12455 		 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する
12456 		 *
12457 		 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない  dxlib_d.DxDataType.FALSE:視界に入っている
12458 		 */
12459 		extern int CheckCameraViewClip_Box(.VECTOR BoxPos1, .VECTOR BoxPos2);
12460 
12461 		/**
12462 		 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する
12463 		 *
12464 		 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない  dxlib_d.DxDataType.FALSE:視界に入っている
12465 		 */
12466 		extern int CheckCameraViewClip_BoxD(.VECTOR_D BoxPos1, .VECTOR_D BoxPos2);
12467 
12468 		/**
12469 		 * カメラのNearクリップ面の距離を取得する
12470 		 */
12471 		extern float GetCameraNear();
12472 
12473 		/**
12474 		 * カメラのNearクリップ面の距離を取得する
12475 		 */
12476 		extern double GetCameraNearD();
12477 
12478 		/**
12479 		 * カメラのFarクリップ面の距離を取得する
12480 		 */
12481 		extern float GetCameraFar();
12482 
12483 		/**
12484 		 * カメラのFarクリップ面の距離を取得する
12485 		 */
12486 		extern double GetCameraFarD();
12487 
12488 		/**
12489 		 * カメラの位置を取得する
12490 		 */
12491 		extern .VECTOR GetCameraPosition();
12492 
12493 		/**
12494 		 * カメラの位置を取得する
12495 		 */
12496 		extern .VECTOR_D GetCameraPositionD();
12497 
12498 		/**
12499 		 * カメラの注視点を取得する
12500 		 */
12501 		extern .VECTOR GetCameraTarget();
12502 
12503 		/**
12504 		 * カメラの注視点を取得する
12505 		 */
12506 		extern .VECTOR_D GetCameraTargetD();
12507 
12508 		/**
12509 		 * カメラの正面方向に垂直な上方向のベクトルを取得する
12510 		 */
12511 		extern .VECTOR GetCameraUpVector();
12512 
12513 		/**
12514 		 * カメラの正面方向に垂直な上方向のベクトルを取得する
12515 		 */
12516 		extern .VECTOR_D GetCameraUpVectorD();
12517 
12518 		/**
12519 		 * カメラの正面方向に垂直な下方向のベクトルを取得する
12520 		 */
12521 		extern .VECTOR GetCameraDownVector();
12522 
12523 		/**
12524 		 * カメラの正面方向に垂直な下方向のベクトルを取得する
12525 		 */
12526 		extern .VECTOR_D GetCameraDownVectorD();
12527 
12528 		/**
12529 		 * カメラの正面方向に垂直な右方向のベクトルを取得する
12530 		 */
12531 		extern .VECTOR GetCameraRightVector();
12532 
12533 		/**
12534 		 * カメラの正面方向に垂直な右方向のベクトルを取得する
12535 		 */
12536 		extern .VECTOR_D GetCameraRightVectorD();
12537 
12538 		/**
12539 		 * カメラの正面方向に垂直な左方向のベクトルを取得する
12540 		 */
12541 		extern .VECTOR GetCameraLeftVector();
12542 
12543 		/**
12544 		 * カメラの正面方向に垂直な左方向のベクトルを取得する
12545 		 */
12546 		extern .VECTOR_D GetCameraLeftVectorD();
12547 
12548 		/**
12549 		 * カメラの正面方向のベクトルを取得する
12550 		 */
12551 		extern .VECTOR GetCameraFrontVector();
12552 
12553 		/**
12554 		 * カメラの正面方向のベクトルを取得する
12555 		 */
12556 		extern .VECTOR_D GetCameraFrontVectorD();
12557 
12558 		/**
12559 		 * カメラの後ろ方向のベクトルを取得する
12560 		 */
12561 		extern .VECTOR GetCameraBackVector();
12562 
12563 		/**
12564 		 * カメラの後ろ方向のベクトルを取得する
12565 		 */
12566 		extern .VECTOR_D GetCameraBackVectorD();
12567 
12568 		/**
12569 		 * カメラの水平方向の向きを取得する
12570 		 */
12571 		extern float GetCameraAngleHRotate();
12572 
12573 		/**
12574 		 * カメラの水平方向の向きを取得する
12575 		 */
12576 		extern double GetCameraAngleHRotateD();
12577 
12578 		/**
12579 		 * カメラの垂直方向の向きを取得する
12580 		 */
12581 		extern float GetCameraAngleVRotate();
12582 
12583 		/**
12584 		 * カメラの垂直方向の向きを取得する
12585 		 */
12586 		extern double GetCameraAngleVRotateD();
12587 
12588 		/**
12589 		 * カメラの向きの捻り角度を取得する
12590 		 */
12591 		extern float GetCameraAngleTRotate();
12592 
12593 		/**
12594 		 * カメラの向きの捻り角度を取得する
12595 		 */
12596 		extern double GetCameraAngleTRotateD();
12597 
12598 		/**
12599 		 * ビュー行列を取得する
12600 		 */
12601 		extern .MATRIX GetCameraViewMatrix();
12602 
12603 		/**
12604 		 * ビュー行列を取得する
12605 		 */
12606 		extern .MATRIX_D GetCameraViewMatrixD();
12607 
12608 		/**
12609 		 * ビルボード行列を取得する
12610 		 */
12611 		extern .MATRIX GetCameraBillboardMatrix();
12612 
12613 		/**
12614 		 * ビルボード行列を取得する
12615 		 */
12616 		extern .MATRIX_D GetCameraBillboardMatrixD();
12617 
12618 		/**
12619 		 * 画面上におけるカメラが見ている映像の中心の座標を取得する
12620 		 */
12621 		extern int GetCameraScreenCenter(float* x, float* y);
12622 
12623 		/**
12624 		 * 画面上におけるカメラが見ている映像の中心の座標を取得する
12625 		 */
12626 		extern int GetCameraScreenCenterD(double* x, double* y);
12627 
12628 		/**
12629 		 * カメラの視野角を取得する
12630 		 */
12631 		extern float GetCameraFov();
12632 
12633 		/**
12634 		 * カメラの視野角を取得する
12635 		 */
12636 		extern double GetCameraFovD();
12637 
12638 		/**
12639 		 * カメラの視野サイズを取得する
12640 		 */
12641 		extern float GetCameraSize();
12642 
12643 		/**
12644 		 * カメラの視野サイズを取得する
12645 		 */
12646 		extern double GetCameraSizeD();
12647 
12648 		/**
12649 		 * 射影行列を取得する
12650 		 */
12651 		extern .MATRIX GetCameraProjectionMatrix();
12652 
12653 		/**
12654 		 * 射影行列を取得する
12655 		 */
12656 		extern .MATRIX_D GetCameraProjectionMatrixD();
12657 
12658 		/**
12659 		 * カメラのドットアスペクト比を得る
12660 		 */
12661 		extern float GetCameraDotAspect();
12662 
12663 		/**
12664 		 * カメラのドットアスペクト比を得る
12665 		 */
12666 		extern double GetCameraDotAspectD();
12667 
12668 		/**
12669 		 * ビューポート行列を取得する
12670 		 */
12671 		extern .MATRIX GetCameraViewportMatrix();
12672 
12673 		/**
12674 		 * ビューポート行列を取得する
12675 		 */
12676 		extern .MATRIX_D GetCameraViewportMatrixD();
12677 
12678 		/**
12679 		 * Direct3Dで自動適用されるビューポート行列を取得する
12680 		 */
12681 		extern .MATRIX GetCameraAPIViewportMatrix();
12682 
12683 		/**
12684 		 * Direct3Dで自動適用されるビューポート行列を取得する
12685 		 */
12686 		extern .MATRIX_D GetCameraAPIViewportMatrixD();
12687 
12688 		// ライト関係関数
12689 
12690 		/**
12691 		 * ライティングを使用するかどうかを設定する
12692 		 */
12693 		extern int SetUseLighting(int Flag);
12694 
12695 		/**
12696 		 * 3D描画のライティング計算で頂点カラーのディフューズカラーを使用するかどうかを設定する
12697 		 */
12698 		extern int SetMaterialUseVertDifColor(int UseFlag);
12699 
12700 		/**
12701 		 * 3D描画のライティング計算で頂点カラーのスペキュラカラーを使用するかどうかを設定する
12702 		 */
12703 		extern int SetMaterialUseVertSpcColor(int UseFlag);
12704 
12705 		/**
12706 		 * 3D描画のライティング計算で使用するマテリアルパラメータを設定する
12707 		 */
12708 		extern int SetMaterialParam(MATERIALPARAM Material);
12709 
12710 		/**
12711 		 * 3D描画にスペキュラを使用するかどうかを設定する
12712 		 */
12713 		extern int SetUseSpecular(int UseFlag);
12714 
12715 		/**
12716 		 * グローバルアンビエントライトカラーを設定する
12717 		 */
12718 		extern int SetGlobalAmbientLight(.COLOR_F Color);
12719 
12720 		/**
12721 		 * デフォルトライトのタイプをディレクショナルライトにする
12722 		 */
12723 		extern int ChangeLightTypeDir(.VECTOR Direction);
12724 
12725 		/**
12726 		 * デフォルトライトのタイプをスポットライトにする
12727 		 */
12728 		extern int ChangeLightTypeSpot(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2);
12729 
12730 		/**
12731 		 * デフォルトライトのタイプをポイントライトにする
12732 		 */
12733 		extern int ChangeLightTypePoint(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2);
12734 
12735 		/**
12736 		 * デフォルトライトのタイプを取得する
12737 		 *
12738 		 * Returns: DX_LIGHTTYPE_DIRECTIONAL等
12739 		 */
12740 		extern int GetLightType();
12741 
12742 		/**
12743 		 * デフォルトライトを使用するかどうかを設定する
12744 		 */
12745 		extern int SetLightEnable(int EnableFlag);
12746 
12747 		/**
12748 		 * デフォルトライトを使用するかどうかを取得する
12749 		 *
12750 		 * Returns: dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
12751 		 */
12752 		extern int GetLightEnable();
12753 
12754 		/**
12755 		 * デフォルトライトのディフューズカラーを設定する
12756 		 */
12757 		extern int SetLightDifColor(.COLOR_F Color);
12758 
12759 		/**
12760 		 * デフォルトライトのディフューズカラーを取得する
12761 		 */
12762 		extern .COLOR_F GetLightDifColor();
12763 
12764 		/**
12765 		 * デフォルトライトのスペキュラカラーを設定する
12766 		 */
12767 		extern int SetLightSpcColor(.COLOR_F Color);
12768 
12769 		/**
12770 		 * デフォルトライトのスペキュラカラーを取得する
12771 		 */
12772 		extern .COLOR_F GetLightSpcColor();
12773 
12774 		/**
12775 		 * デフォルトライトのアンビエントカラーを設定する
12776 		 */
12777 		extern int SetLightAmbColor(.COLOR_F Color);
12778 
12779 		/**
12780 		 * デフォルトライトのアンビエントカラーを取得する
12781 		 */
12782 		extern .COLOR_F GetLightAmbColor();
12783 
12784 		/**
12785 		 * デフォルトライトの方向を設定する
12786 		 */
12787 		extern int SetLightDirection(.VECTOR Direction);
12788 
12789 		/**
12790 		 * デフォルトライトの方向を取得する
12791 		 */
12792 		extern .VECTOR GetLightDirection();
12793 
12794 		/**
12795 		 * デフォルトライトの位置を設定する
12796 		 */
12797 		extern int SetLightPosition(.VECTOR Position);
12798 
12799 		/**
12800 		 * デフォルトライトの位置を取得する
12801 		 */
12802 		extern .VECTOR GetLightPosition();
12803 
12804 		/**
12805 		 * デフォルトライトの距離減衰パラメータを設定する(有効距離、距離減衰係数0、1、2)
12806 		 */
12807 		extern int SetLightRangeAtten(float Range, float Atten0, float Atten1, float Atten2);
12808 
12809 		/**
12810 		 * デフォルトライトの距離減衰パラメータを取得する(有効距離、距離減衰係数0、1、2)
12811 		 */
12812 		extern int GetLightRangeAtten(float* Range, float* Atten0, float* Atten1, float* Atten2);
12813 
12814 		/**
12815 		 * デフォルトライトのスポットライトのパラメータを設定する(外部コーン角度、内部コーン角度)
12816 		 */
12817 		extern int SetLightAngle(float OutAngle, float InAngle);
12818 
12819 		/**
12820 		 * デフォルトライトのスポットライトのパラメータを取得する(外部コーン角度、内部コーン角度)
12821 		 */
12822 		extern int GetLightAngle(float* OutAngle, float* InAngle);
12823 
12824 		/**
12825 		 * デフォルトライトにSetUseShadowMapで指定したシャドウマップを適用するかどうかを設定する
12826 		 *
12827 		 * Params:
12828 		 *      SmSlotIndex = シャドウマップスロット(SetUseShadowMapの第1引数に設定する値)
12829 		 *      UseFlag = 適用にするかどうかのフラグ(dxlib_d.DxDataType.TRUE:適用する(デフォルト)  dxlib_d.DxDataType.FALSE:適用しない)
12830 		 */
12831 		extern int SetLightUseShadowMap(int SmSlotIndex, int UseFlag);
12832 
12833 		/**
12834 		 * ディレクショナルライトハンドルを作成する
12835 		 */
12836 		extern int CreateDirLightHandle(.VECTOR Direction);
12837 
12838 		/**
12839 		 * スポットライトハンドルを作成する
12840 		 */
12841 		extern int CreateSpotLightHandle(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2);
12842 
12843 		/**
12844 		 * ポイントライトハンドルを作成する
12845 		 */
12846 		extern int CreatePointLightHandle(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2);
12847 
12848 		/**
12849 		 * ライトハンドルを削除する
12850 		 */
12851 		extern int DeleteLightHandle(int LHandle);
12852 
12853 		/**
12854 		 * ライトハンドルを全て削除する
12855 		 */
12856 		extern int DeleteLightHandleAll();
12857 
12858 		/**
12859 		 * ライトハンドルのライトのタイプを変更する(DX_LIGHTTYPE_DIRECTIONAL等)
12860 		 */
12861 		extern int SetLightTypeHandle(int LHandle, int LightType);
12862 
12863 		/**
12864 		 * ライトハンドルのライト効果の有効、無効を設定する
12865 		 *
12866 		 * Params:
12867 		 *      LHandle = ?
12868 		 *      EnableFlag = dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
12869 		 */
12870 		extern int SetLightEnableHandle(int LHandle, int EnableFlag);
12871 
12872 		/**
12873 		 * ライトハンドルのライトのディフューズカラーを設定する
12874 		 */
12875 		extern int SetLightDifColorHandle(int LHandle, .COLOR_F Color);
12876 
12877 		/**
12878 		 * ライトハンドルのライトのスペキュラカラーを設定する
12879 		 */
12880 		extern int SetLightSpcColorHandle(int LHandle, .COLOR_F Color);
12881 
12882 		/**
12883 		 * ライトハンドルのライトのアンビエントカラーを設定する
12884 		 */
12885 		extern int SetLightAmbColorHandle(int LHandle, .COLOR_F Color);
12886 
12887 		/**
12888 		 * ライトハンドルのライトの方向を設定する
12889 		 */
12890 		extern int SetLightDirectionHandle(int LHandle, .VECTOR Direction);
12891 
12892 		/**
12893 		 * ライトハンドルのライトの位置を設定する
12894 		 */
12895 		extern int SetLightPositionHandle(int LHandle, .VECTOR Position);
12896 
12897 		/**
12898 		 * ライトハンドルのライトの距離減衰パラメータを設定する(有効距離、距離減衰係数0、1、2)
12899 		 */
12900 		extern int SetLightRangeAttenHandle(int LHandle, float Range, float Atten0, float Atten1, float Atten2);
12901 
12902 		/**
12903 		 * ライトハンドルのライトのスポットライトのパラメータを設定する(外部コーン角度、内部コーン角度)
12904 		 */
12905 		extern int SetLightAngleHandle(int LHandle, float OutAngle, float InAngle);
12906 
12907 		/**
12908 		 * ライトハンドルのライトにSetUseShadowMapで指定したシャドウマップを適用するかどうかを設定する
12909 		 *
12910 		 * Params:
12911 		 *      LHandle = ?
12912 		 *      SmSlotIndex = シャドウマップスロット(SetUseShadowMapの第1引数に設定する値)
12913 		 *      UseFlag = 適用にするかどうかのフラグ(dxlib_d.DxDataType.TRUE:適用する(デフォルト)  dxlib_d.DxDataType.FALSE:適用しない)
12914 		 */
12915 		extern int SetLightUseShadowMapHandle(int LHandle, int SmSlotIndex, int UseFlag);
12916 
12917 		/**
12918 		 * ライトハンドルのライトのタイプを取得する
12919 		 *
12920 		 * Returns: DX_LIGHTTYPE_DIRECTIONAL等
12921 		 */
12922 		extern int GetLightTypeHandle(int LHandle);
12923 
12924 		/**
12925 		 * ライトハンドルのライト効果の有効、無効を取得する
12926 		 *
12927 		 * Returns: dxlib_d.DxDataType.TRUE:有効  dxlib_d.DxDataType.FALSE:無効
12928 		 */
12929 		extern int GetLightEnableHandle(int LHandle);
12930 
12931 		/**
12932 		 * ライトハンドルのライトのディフューズカラーを取得する
12933 		 */
12934 		extern .COLOR_F GetLightDifColorHandle(int LHandle);
12935 
12936 		/**
12937 		 * ライトハンドルのライトのスペキュラカラーを取得する
12938 		 */
12939 		extern .COLOR_F GetLightSpcColorHandle(int LHandle);
12940 
12941 		/**
12942 		 * ライトハンドルのライトのアンビエントカラーを取得する
12943 		 */
12944 		extern .COLOR_F GetLightAmbColorHandle(int LHandle);
12945 
12946 		/**
12947 		 * ライトハンドルのライトの方向を取得する
12948 		 */
12949 		extern .VECTOR GetLightDirectionHandle(int LHandle);
12950 
12951 		/**
12952 		 * ライトハンドルのライトの位置を取得する
12953 		 */
12954 		extern .VECTOR GetLightPositionHandle(int LHandle);
12955 
12956 		/**
12957 		 * ライトハンドルのライトの距離減衰パラメータを取得する(有効距離、距離減衰係数0、1、2)
12958 		 */
12959 		extern int GetLightRangeAttenHandle(int LHandle, float* Range, float* Atten0, float* Atten1, float* Atten2);
12960 
12961 		/**
12962 		 * ライトハンドルのライトのスポットライトのパラメータを取得する(外部コーン角度、内部コーン角度)
12963 		 */
12964 		extern int GetLightAngleHandle(int LHandle, float* OutAngle, float* InAngle);
12965 
12966 		/**
12967 		 * 有効になっているライトハンドルの数を取得する
12968 		 */
12969 		extern int GetEnableLightHandleNum();
12970 
12971 		/**
12972 		 * 有効になっているライトハンドルを取得する
12973 		 */
12974 		extern int GetEnableLightHandle(int Index);
12975 
12976 		// 色情報取得用関数
12977 
12978 		/**
12979 		 * テクスチャフォーマットのインデックスを得る
12980 		 */
12981 		extern int GetTexFormatIndex(const (.IMAGEFORMATDESC)* Format);
12982 
12983 		// DxMask.cpp 関数プロトタイプ宣言
12984 
12985 		version (DX_NON_MASK) {
12986 		} else {
12987 			// マスク関係
12988 
12989 			/**
12990 			 * マスクスクリーンを作成する
12991 			 */
12992 			extern int CreateMaskScreen();
12993 
12994 			/**
12995 			 * マスクスクリーンを削除する
12996 			 */
12997 			extern int DeleteMaskScreen();
12998 
12999 			/**
13000 			 * マスクスクリーンにメモリ上のビットマップデータを転送する(MaskDataは1byteで1dot 表す1ラインあたり Width byteのデータ配列の先頭アドレス)
13001 			 */
13002 			extern int DrawMaskToDirectData(int x, int y, int Width, int Height, const (void)* MaskData, int TransMode);
13003 
13004 			/**
13005 			 * マスクスクリーンにメモリ上のビットマップデータで指定矩形内を塗りつぶすように転送する
13006 			 */
13007 			extern int DrawFillMaskToDirectData(int x1, int y1, int x2, int y2, int Width, int Height, const (void)* MaskData);
13008 
13009 			/**
13010 			 * マスクスクリーンを使用するかどうかを設定する
13011 			 *
13012 			 * Params:
13013 			 *      ValidFlag = 使用するかどうか(dxlib_d.DxDataType.TRUE:使用する  dxlib_d.DxDataType.FALSE:使用しない(デフォルト)
13014 			 */
13015 			extern int SetUseMaskScreenFlag(int ValidFlag);
13016 
13017 			/**
13018 			 * マスクスクリーンを使用するかどうかを取得する
13019 			 */
13020 			extern int GetUseMaskScreenFlag();
13021 
13022 			/**
13023 			 * マスクスクリーンを指定の色で塗りつぶす
13024 			 */
13025 			extern int FillMaskScreen(int Flag);
13026 
13027 			/**
13028 			 * マスクスクリーンとして使用するグラフィックのハンドルを設定する、-1を渡すと解除(引数で渡すグラフィックハンドルはMakeScreenで作成した「アルファチャンネル付きの描画対象にできるグラフィックハンドル」である必要があります(アルファチャンネルがマスクに使用されます))
13029 			 */
13030 			extern int SetMaskScreenGraph(int GraphHandle);
13031 
13032 			/**
13033 			 * マスクスクリーンとして使用するグラフィックの、どのチャンネルをマスクとして使用するかを設定する(デフォルトはDX_MASKGRAPH_CH_A、尚、DX_MASKGRAPH_CH_A以外を使用する場合はグラフィックスデバイスがシェーダーモデル2.0以降に対応している必要があります)
13034 			 */
13035 			extern int SetMaskScreenGraphUseChannel(int UseChannel /* DX_MASKGRAPH_CH_A等 */);
13036 
13037 			/**
13038 			 * マスクハンドルをすべて削除する
13039 			 */
13040 			extern int InitMask();
13041 
13042 			/**
13043 			 * マスクハンドルを作成する
13044 			 */
13045 			extern int MakeMask(int Width, int Height);
13046 
13047 			/**
13048 			 * マスクハンドルが持つマスクイメージのサイズを取得する
13049 			 */
13050 			extern int GetMaskSize(int* WidthBuf, int* HeightBuf, int MaskHandle);
13051 
13052 			/**
13053 			 * マスクハンドルが持つマスクイメージのBASEIMAGEデータを取得する(フォーマットが変更されるような操作をすると正常に動作しなくなります、あと、ReleaseBaseImageは実行する必要はありません)
13054 			 */
13055 			extern int GetMaskBaseImageInfo(.BASEIMAGE* BaseImage, int MaskHandle);
13056 
13057 			/**
13058 			 * マスクハンドルにビットマップイメージを転送する
13059 			 */
13060 			extern int SetDataToMask(int Width, int Height, const (void)* MaskData, int MaskHandle);
13061 
13062 			/**
13063 			 * マスクハンドルを削除する
13064 			 */
13065 			extern int DeleteMask(int MaskHandle);
13066 
13067 			/**
13068 			 * マスクハンドルにBASEIMAGEデータを転送する
13069 			 */
13070 			extern int GraphImageBltToMask(const (.BASEIMAGE)* BaseImage, int ImageX, int ImageY, int MaskHandle);
13071 
13072 			/**
13073 			 * 画像ファイルを読み込みマスクハンドルを作成する
13074 			 */
13075 			extern int LoadMask(const (dxlib_d.DxDataType.TCHAR)* FileName);
13076 
13077 			/**
13078 			 * 画像ファイルを読み込みマスクハンドルを作成する
13079 			 */
13080 			extern int LoadMaskWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
13081 
13082 			/**
13083 			 * 画像ファイルを分割読み込みしてマスクハンドルを作成する
13084 			 */
13085 			extern int LoadDivMask(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray);
13086 
13087 			/**
13088 			 * 画像ファイルを分割読み込みしてマスクハンドルを作成する
13089 			 */
13090 			extern int LoadDivMaskWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray);
13091 
13092 			/**
13093 			 * メモリ上にある画像ファイルイメージを読み込みマスクハンドルを作成する
13094 			 */
13095 			extern int CreateMaskFromMem(const (void)* FileImage, int FileImageSize);
13096 
13097 			/**
13098 			 * メモリ上にある画像ファイルイメージを分割読み込みしてマスクハンドルを作成する
13099 			 */
13100 			extern int CreateDivMaskFromMem(const (void)* FileImage, int FileImageSize, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray);
13101 
13102 			/**
13103 			 * マスクスクリーンにマスクハンドルの持つマスクイメージを書き込む
13104 			 */
13105 			extern int DrawMask(int x, int y, int MaskHandle, int TransMode);
13106 
13107 			version (DX_NON_FONT) {
13108 			} else {
13109 				/**
13110 				 * 書式指定ありの文字列をマスクスクリーンに描画する
13111 				 */
13112 				extern int DrawFormatStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13113 
13114 				/**
13115 				 * 書式指定ありの文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能)
13116 				 */
13117 				extern int DrawFormatStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13118 
13119 				/**
13120 				 * 文字列をマスクスクリーンに描画する
13121 				 */
13122 				extern int DrawStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* String);
13123 
13124 				/**
13125 				 * 文字列をマスクスクリーンに描画する
13126 				 */
13127 				extern int DrawNStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
13128 
13129 				/**
13130 				 * 文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能)
13131 				 */
13132 				extern int DrawStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* String);
13133 
13134 				/**
13135 				 * 文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能)
13136 				 */
13137 				extern int DrawNStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
13138 			}
13139 
13140 			/**
13141 			 * マスクハンドルが持つマスクイメージをマスクスクリーンいっぱいに描画する(タイル状に並べる)
13142 			 */
13143 			extern int DrawFillMask(int x1, int y1, int x2, int y2, int MaskHandle);
13144 
13145 			/**
13146 			 * マスクイメージ内の数値に対する効果を逆転させる(旧バージョンとの互換性の為の機能)
13147 			 */
13148 			extern int SetMaskReverseEffectFlag(int ReverseFlag);
13149 
13150 			/**
13151 			 * マスクスクリーンの指定矩形部分をマスクハンドルに転送する
13152 			 */
13153 			extern int GetMaskScreenData(int x1, int y1, int x2, int y2, int MaskHandle);
13154 
13155 			/**
13156 			 * マスクスクリーンを使用する設定になっているかどうかを取得する
13157 			 */
13158 			extern int GetMaskUseFlag();
13159 		}
13160 	}
13161 
13162 	// DxFont.cpp 関数プロトタイプ宣言
13163 
13164 	version (DX_NON_FONT) {
13165 	} else {
13166 		// フォント、文字列描画関係関数
13167 
13168 		/**
13169 		 * 使用可能なフォントの名前を列挙する(NameBufferに64バイト区切りで名前が格納されます)
13170 		 */
13171 		extern int EnumFontName(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, int JapanOnlyFlag = dxlib_d.DxDataType.TRUE);
13172 
13173 		/**
13174 		 * 使用可能なフォントの名前を列挙する(NameBufferに64バイト区切りで名前が格納されます)(文字セット指定版)
13175 		 */
13176 		extern int EnumFontNameEx(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */);
13177 
13178 		/**
13179 		 * 指定のフォント名のフォントを列挙する
13180 		 */
13181 		extern int EnumFontNameEx2(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, const (dxlib_d.DxDataType.TCHAR)* EnumFontName, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */);
13182 
13183 		/**
13184 		 * 指定のフォント名のフォントを列挙する
13185 		 */
13186 		extern int EnumFontNameEx2WithStrLen(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, const (dxlib_d.DxDataType.TCHAR)* EnumFontName, size_t EnumFontNameLength, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */);
13187 
13188 		/**
13189 		 * 指定のフォント名のフォントが存在するかどうかをチェックする
13190 		 *
13191 		 * Returns: dxlib_d.DxDataType.TRUE:存在する  dxlib_d.DxDataType.FALSE:存在しない
13192 		 */
13193 		extern int CheckFontName(const (dxlib_d.DxDataType.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */);
13194 
13195 		/**
13196 		 * 指定のフォント名のフォントが存在するかどうかをチェックする
13197 		 *
13198 		 * Returns: dxlib_d.DxDataType.TRUE:存在する  dxlib_d.DxDataType.FALSE:存在しない
13199 		 */
13200 		extern int CheckFontNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */);
13201 
13202 		/**
13203 		 * 全てのフォントハンドルを削除する
13204 		 */
13205 		extern int InitFontToHandle();
13206 
13207 		/**
13208 		 * フォントハンドルを作成する
13209 		 */
13210 		extern int CreateFontToHandle(const (dxlib_d.DxDataType.TCHAR)* FontName, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE, int Handle = -1);
13211 
13212 		/**
13213 		 * フォントハンドルを作成する
13214 		 */
13215 		extern int CreateFontToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE, int Handle = -1);
13216 
13217 		/**
13218 		 * フォントデータファイルからフォントハンドルを作成する
13219 		 */
13220 		extern int LoadFontDataToHandle(const (dxlib_d.DxDataType.TCHAR)* FileName, int EdgeSize = 0);
13221 
13222 		/**
13223 		 * フォントデータファイルからフォントハンドルを作成する
13224 		 */
13225 		extern int LoadFontDataToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int EdgeSize = 0);
13226 
13227 		/**
13228 		 * メモリ上のフォントデータファイルイメージからフォントハンドルを作成する
13229 		 */
13230 		extern int LoadFontDataFromMemToHandle(const (void)* FontDataImage, int FontDataImageSize, int EdgeSize = 0);
13231 
13232 		/**
13233 		 * フォントハンドルの字間を変更する
13234 		 */
13235 		extern int SetFontSpaceToHandle(int Pixel, int FontHandle);
13236 
13237 		/**
13238 		 * フォントハンドルの行間を変更する
13239 		 */
13240 		extern int SetFontLineSpaceToHandle(int Pixel, int FontHandle);
13241 
13242 		/**
13243 		 * 指定のフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する(UNICODE版では無効)
13244 		 */
13245 		extern int SetFontCharCodeFormatToHandle(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */, int FontHandle);
13246 
13247 		/**
13248 		 * フォントハンドルを削除する
13249 		 */
13250 		extern int DeleteFontToHandle(int FontHandle);
13251 
13252 		/**
13253 		 * フォントハンドルを削除した際にdxlib_d.DxDataType.TRUEを代入する変数のアドレスを設定する
13254 		 */
13255 		extern int SetFontLostFlag(int FontHandle, int* LostFlag);
13256 
13257 		/**
13258 		 * 指定の文字の代わりに描画するグラフィックハンドルを登録する
13259 		 */
13260 		extern int AddFontImageToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, int GrHandle, int DrawX, int DrawY, int AddX);
13261 
13262 		/**
13263 		 * 指定の文字の代わりに描画するグラフィックハンドルを登録する
13264 		 */
13265 		extern int AddFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength, int GrHandle, int DrawX, int DrawY, int AddX);
13266 
13267 		/**
13268 		 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する
13269 		 */
13270 		extern int SubFontImageToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char);
13271 
13272 		/**
13273 		 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する
13274 		 */
13275 		extern int SubFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength);
13276 
13277 		/**
13278 		 * 代替フォントハンドル(FontHandleに無い文字を描画しようとしたときに代わりに使用されるフォントハンドル)を登録する
13279 		 */
13280 		extern int AddSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle, int DrawX, int DrawY);
13281 
13282 		/**
13283 		 * 代替フォントハンドルの登録を解除する
13284 		 */
13285 		extern int SubSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle);
13286 
13287 		/**
13288 		 * デフォルトフォントハンドルで使用するフォントを変更
13289 		 */
13290 		extern int ChangeFont(const (dxlib_d.DxDataType.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_SHFTJIS等 */);
13291 
13292 		/**
13293 		 * デフォルトフォントハンドルで使用するフォントを変更
13294 		 */
13295 		extern int ChangeFontWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_SHFTJIS等 */);
13296 
13297 		/**
13298 		 * デフォルトフォントハンドルのフォントタイプの変更
13299 		 */
13300 		extern int ChangeFontType(int FontType);
13301 
13302 		/**
13303 		 * デフォルトフォントハンドルのフォント名を取得する
13304 		 */
13305 		extern const (dxlib_d.DxDataType.TCHAR)* GetFontName();
13306 
13307 		/**
13308 		 * デフォルトフォントハンドルのサイズを設定する
13309 		 */
13310 		extern int SetFontSize(int FontSize);
13311 
13312 		/**
13313 		 * デフォルトフォントハンドルのサイズを取得する
13314 		 */
13315 		extern int GetFontSize();
13316 
13317 		/**
13318 		 * デフォルトフォントハンドルの縁サイズを取得する
13319 		 */
13320 		extern int GetFontEdgeSize();
13321 
13322 		/**
13323 		 * デフォルトフォントハンドルの太さを設定する
13324 		 */
13325 		extern int SetFontThickness(int ThickPal);
13326 
13327 		/**
13328 		 * デフォルトフォントハンドルの字間を変更する
13329 		 */
13330 		extern int SetFontSpace(int Pixel);
13331 
13332 		/**
13333 		 * デフォルトフォントハンドルの字間を取得する
13334 		 */
13335 		extern int GetFontSpace();
13336 
13337 		/**
13338 		 * デフォルトフォントハンドルの行間を変更する
13339 		 */
13340 		extern int SetFontLineSpace(int Pixel);
13341 
13342 		/**
13343 		 * デフォルトフォントハンドルの行間を取得する
13344 		 */
13345 		extern int GetFontLineSpace();
13346 
13347 		/**
13348 		 * デフォルトフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する(UNICODE版では無効)
13349 		 */
13350 		extern int SetFontCharCodeFormat(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */);
13351 
13352 		/**
13353 		 * デフォルトフォントハンドルの設定を変更する
13354 		 */
13355 		extern int SetDefaultFontState(const (dxlib_d.DxDataType.TCHAR)* FontName, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE);
13356 
13357 		/**
13358 		 * デフォルトフォントハンドルの設定を変更する
13359 		 */
13360 		extern int SetDefaultFontStateWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE);
13361 
13362 		/**
13363 		 * デフォルトフォントハンドルを取得する
13364 		 */
13365 		extern int GetDefaultFontHandle();
13366 
13367 		/**
13368 		 * デフォルトフォントハンドルのキャッシュできる文字の数を取得する
13369 		 */
13370 		extern int GetFontMaxCacheCharNum();
13371 
13372 		/**
13373 		 * デフォルトフォントハンドルの文字の最大幅を取得する
13374 		 */
13375 		extern int GetFontMaxWidth();
13376 
13377 		/**
13378 		 * デフォルトフォントハンドルの描画位置からベースラインまでの高さを取得する
13379 		 */
13380 		extern int GetFontAscent();
13381 
13382 		/**
13383 		 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する
13384 		 */
13385 		extern int GetDrawStringWidth(const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13386 
13387 		/**
13388 		 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する
13389 		 */
13390 		extern int GetDrawNStringWidth(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13391 
13392 		/**
13393 		 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する
13394 		 */
13395 		extern int GetDrawFormatStringWidth(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13396 
13397 		/**
13398 		 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する(拡大率付き)
13399 		 */
13400 		extern int GetDrawExtendStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13401 
13402 		/**
13403 		 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する(拡大率付き)
13404 		 */
13405 		extern int GetDrawExtendNStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13406 
13407 		/**
13408 		 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する(拡大率付き)
13409 		 */
13410 		extern int GetDrawExtendFormatStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13411 
13412 		/**
13413 		 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13414 		 */
13415 		extern int GetDrawStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13416 
13417 		/**
13418 		 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13419 		 */
13420 		extern int GetDrawNStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13421 
13422 		/**
13423 		 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する
13424 		 */
13425 		extern int GetDrawFormatStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13426 
13427 		/**
13428 		 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する(拡大率付き)
13429 		 */
13430 		extern int GetDrawExtendStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13431 
13432 		/**
13433 		 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する(拡大率付き)
13434 		 */
13435 		extern int GetDrawExtendNStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13436 
13437 		/**
13438 		 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する(拡大率付き)
13439 		 */
13440 		extern int GetDrawExtendFormatStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13441 
13442 		/**
13443 		 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する
13444 		 */
13445 		extern int GetDrawStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13446 
13447 		/**
13448 		 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する
13449 		 */
13450 		extern int GetDrawNStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13451 
13452 		/**
13453 		 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する
13454 		 */
13455 		extern int GetDrawFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13456 
13457 		/**
13458 		 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する
13459 		 */
13460 		extern int GetDrawExtendStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13461 
13462 		/**
13463 		 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する
13464 		 */
13465 		extern int GetDrawExtendNStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13466 
13467 		/**
13468 		 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する
13469 		 */
13470 		extern int GetDrawExtendFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13471 
13472 		/**
13473 		 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する
13474 		 *
13475 		 * Params:
13476 		 *      PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます)
13477 		 *      KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス
13478 		 */
13479 		extern int GetDrawStringKerningPairInfo(const (dxlib_d.DxDataType.TCHAR)* PairChar, int* KernAmount);
13480 
13481 		/**
13482 		 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する
13483 		 *
13484 		 * Params:
13485 		 *      PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます)
13486 		 *      PairCharLength = ?
13487 		 *      KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス
13488 		 */
13489 		extern int GetDrawStringKerningPairInfoWithStrLen(const (dxlib_d.DxDataType.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount);
13490 
13491 		/**
13492 		 * フォントハンドルのフォント名を取得する
13493 		 */
13494 		extern const (dxlib_d.DxDataType.TCHAR)* GetFontNameToHandle(int FontHandle);
13495 
13496 		/**
13497 		 * フォントハンドルのキャッシュできる文字の数を取得する
13498 		 */
13499 		extern int GetFontMaxCacheCharNumToHandle(int FontHandle);
13500 
13501 		/**
13502 		 * フォントハンドルの文字の最大幅を取得する
13503 		 */
13504 		extern int GetFontMaxWidthToHandle(int FontHandle);
13505 
13506 		/**
13507 		 * フォントハンドルの描画位置からベースラインまでの高さを取得する
13508 		 */
13509 		extern int GetFontAscentToHandle(int FontHandle);
13510 
13511 		/**
13512 		 * フォントハンドルのサイズを取得する
13513 		 */
13514 		extern int GetFontSizeToHandle(int FontHandle);
13515 
13516 		/**
13517 		 * フォントハンドルの縁サイズを取得する
13518 		 */
13519 		extern int GetFontEdgeSizeToHandle(int FontHandle);
13520 
13521 		/**
13522 		 * フォントハンドルの字間を取得する
13523 		 */
13524 		extern int GetFontSpaceToHandle(int FontHandle);
13525 
13526 		/**
13527 		 * フォントハンドルの行間を取得する
13528 		 */
13529 		extern int GetFontLineSpaceToHandle(int FontHandle);
13530 
13531 		/**
13532 		 * フォントハンドルの指定の文字の描画情報を取得する
13533 		 */
13534 		extern int GetFontCharInfo(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY);
13535 
13536 		/**
13537 		 * フォントハンドルの指定の文字の描画情報を取得する
13538 		 */
13539 		extern int GetFontCharInfoWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY);
13540 
13541 		/**
13542 		 * フォントハンドルを使用した文字列の描画幅を取得する
13543 		 */
13544 		extern int GetDrawStringWidthToHandle(const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13545 
13546 		/**
13547 		 * フォントハンドルを使用した文字列の描画幅を取得する
13548 		 */
13549 		extern int GetDrawNStringWidthToHandle(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13550 
13551 		/**
13552 		 * フォントハンドルを使用した書式付き文字列の描画幅を取得する
13553 		 */
13554 		extern int GetDrawFormatStringWidthToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13555 
13556 		/**
13557 		 * フォントハンドルを使用した文字列の描画幅を取得する
13558 		 */
13559 		extern int GetDrawExtendStringWidthToHandle(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13560 
13561 		/**
13562 		 * フォントハンドルを使用した文字列の描画幅を取得する
13563 		 */
13564 		extern int GetDrawExtendNStringWidthToHandle(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13565 
13566 		/**
13567 		 * フォントハンドルを使用した書式付き文字列の描画幅を取得する
13568 		 */
13569 		extern int GetDrawExtendFormatStringWidthToHandle(double ExRateX, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13570 
13571 		/**
13572 		 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13573 		 */
13574 		extern int GetDrawStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13575 
13576 		/**
13577 		 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13578 		 */
13579 		extern int GetDrawNStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13580 
13581 		/**
13582 		 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する
13583 		 */
13584 		extern int GetDrawFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13585 
13586 		/**
13587 		 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13588 		 */
13589 		extern int GetDrawExtendStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13590 
13591 		/**
13592 		 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する
13593 		 */
13594 		extern int GetDrawExtendNStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13595 
13596 		/**
13597 		 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する
13598 		 */
13599 		extern int GetDrawExtendFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13600 
13601 		/**
13602 		 * フォントハンドルを使用した文字列の1文字毎の情報を取得する
13603 		 */
13604 		extern int GetDrawStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13605 
13606 		/**
13607 		 * フォントハンドルを使用した文字列の1文字毎の情報を取得する
13608 		 */
13609 		extern int GetDrawNStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13610 
13611 		/**
13612 		 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する
13613 		 */
13614 		extern int GetDrawFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13615 
13616 		/**
13617 		 * フォントハンドルを使用した文字列の1文字毎の情報を取得する
13618 		 */
13619 		extern int GetDrawExtendStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13620 
13621 		/**
13622 		 * フォントハンドルを使用した文字列の1文字毎の情報を取得する
13623 		 */
13624 		extern int GetDrawExtendNStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13625 
13626 		/**
13627 		 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する
13628 		 */
13629 		extern int GetDrawExtendFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13630 
13631 		/**
13632 		 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する
13633 		 *
13634 		 * Params:
13635 		 *      PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます)
13636 		 *      KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス
13637 		 *      FontHandle = ?
13638 		 */
13639 		extern int GetDrawStringKerningPairInfoToHandle(const (dxlib_d.DxDataType.TCHAR)* PairChar, int* KernAmount, int FontHandle);
13640 
13641 		/**
13642 		 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する
13643 		 *
13644 		 * Params:
13645 		 *      PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます)
13646 		 *      KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス
13647 		 *      FontHandle = ?
13648 		 */
13649 		extern int GetDrawStringKerningPairInfoToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount, int FontHandle);
13650 
13651 		/**
13652 		 * フォントハンドルの情報を取得する
13653 		 */
13654 		extern int GetFontStateToHandle(dxlib_d.DxDataType.TCHAR* FontName, int* Size, int* Thick, int FontHandle, int* FontType = null, int* CharSet = null, int* EdgeSize = null, int* Italic = null);
13655 
13656 		/**
13657 		 * フォントハンドルがテクスチャキャッシュを使用しているかどうかを取得する
13658 		 */
13659 		extern int CheckFontCacheToTextureFlag(int FontHandle);
13660 
13661 		/**
13662 		 * CheckFontCacheToTextureFlagの誤字版
13663 		 */
13664 		extern int CheckFontChacheToTextureFlag(int FontHandle);
13665 
13666 		/**
13667 		 * フォントハンドルが有効かどうかを取得する
13668 		 */
13669 		extern int CheckFontHandleValid(int FontHandle);
13670 
13671 		/**
13672 		 * フォントハンドルのキャッシュ情報を初期化する
13673 		 */
13674 		extern int ClearFontCacheToHandle(int FontHandle);
13675 
13676 		/**
13677 		 * フォントのキャッシュにテクスチャを使用するかどうかを設定する
13678 		 *
13679 		 * Params:
13680 		 *      Flag = dxlib_d.DxDataType.TRUE:テクスチャを使用する(デフォルト)  dxlib_d.DxDataType.FALSE:テクスチャは使用しない
13681 		 */
13682 		extern int SetFontCacheToTextureFlag(int Flag);
13683 
13684 		/**
13685 		 * フォントのキャッシュにテクスチャを使用するかどうかを設定する
13686 		 */
13687 		extern int GetFontCacheToTextureFlag();
13688 
13689 		/**
13690 		 * SetFontCacheToTextureFlagの誤字版
13691 		 */
13692 		extern int SetFontChacheToTextureFlag(int Flag);
13693 
13694 		/**
13695 		 * GetFontCacheToTextureFlagの誤字版
13696 		 */
13697 		extern int GetFontChacheToTextureFlag();
13698 
13699 		/**
13700 		 * フォントのキャッシュとして使用するテクスチャのカラービット深度を設定する(16又は32のみ指定可能  デフォルトは32)
13701 		 */
13702 		extern int SetFontCacheTextureColorBitDepth(int ColorBitDepth);
13703 
13704 		/**
13705 		 * フォントのキャッシュとして使用するテクスチャのカラービット深度を取得する
13706 		 */
13707 		extern int GetFontCacheTextureColorBitDepth();
13708 
13709 		/**
13710 		 * フォントキャッシュでキャッシュできる文字数を設定する
13711 		 */
13712 		extern int SetFontCacheCharNum(int CharNum);
13713 
13714 		/**
13715 		 * フォントキャッシュでキャッシュできる文字数を取得する
13716 		 *
13717 		 * Returns: 0:デフォルト  1以上:指定文字数
13718 		 */
13719 		extern int GetFontCacheCharNum();
13720 
13721 		/**
13722 		 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを設定する
13723 		 *
13724 		 * Params:
13725 		 *      Flag = dxlib_d.DxDataType.TRUE:乗算済みαを使用する  FLASE:乗算済みαを使用しない(デフォルト)
13726 		 */
13727 		extern int SetFontCacheUsePremulAlphaFlag(int Flag);
13728 
13729 		/**
13730 		 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを取得する
13731 		 */
13732 		extern int GetFontCacheUsePremulAlphaFlag();
13733 
13734 		/**
13735 		 * フォントのサイズを補正する処理を行うかどうかを設定する
13736 		 *
13737 		 * Params:
13738 		 *      Flag = dxlib_d.DxDataType.TRUE:行う(デフォルト)  dxlib_d.DxDataType.FALSE:行わない
13739 		 */
13740 		extern int SetFontUseAdjustSizeFlag(int Flag);
13741 
13742 		/**
13743 		 * フォントのサイズを補正する処理を行うかどうかを取得する
13744 		 */
13745 		extern int GetFontUseAdjustSizeFlag();
13746 
13747 		// FontCacheStringDrawの代わりにDrawStringを使ってください
13748 
13749 		/**
13750 		 * ?
13751 		 */
13752 		extern int FontCacheStringDrawToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, uint Color, uint EdgeColor, .BASEIMAGE* DestImage, const (dxlib_d.DxDataType.RECT)* ClipRect /* null可 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxDataType.SIZE* DrawSizeP = null);
13753 
13754 		/**
13755 		 * ?
13756 		 */
13757 		extern int FontCacheStringDrawToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, uint Color, uint EdgeColor, .BASEIMAGE* DestImage, const (dxlib_d.DxDataType.RECT)* ClipRect /* null可 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxDataType.SIZE* DrawSizeP = null);
13758 
13759 		/**
13760 		 * 基本イメージに文字列を描画する(デフォルトフォントハンドルを使用する)
13761 		 */
13762 		extern int FontBaseImageBlt(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13763 
13764 		/**
13765 		 * 基本イメージに文字列を描画する(デフォルトフォントハンドルを使用する)
13766 		 */
13767 		extern int FontBaseImageBltWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13768 
13769 		/**
13770 		 * 基本イメージに文字列を描画する
13771 		 */
13772 		extern int FontBaseImageBltToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13773 
13774 		/**
13775 		 * 基本イメージに文字列を描画する
13776 		 */
13777 		extern int FontBaseImageBltToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
13778 
13779 		/**
13780 		 * 2バイト文字か調べる(dxlib_d.DxDataType.TRUE:2バイト文字  dxlib_d.DxDataType.FALSE:1バイト文字)
13781 		 *
13782 		 * Returns: dxlib_d.DxDataType.TRUE:2バイト文字  dxlib_d.DxDataType.FALSE:1バイト文字
13783 		 */
13784 		extern int MultiByteCharCheck(const (char)* Buf, int CharSet /* DX_CHARSET_SHFTJIS */);
13785 
13786 		// 文字列描画関数
13787 
13788 		/**
13789 		 * デフォルトフォントハンドルを使用して文字列を描画する
13790 		 */
13791 		extern int DrawString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13792 
13793 		/**
13794 		 * デフォルトフォントハンドルを使用して文字列を描画する
13795 		 */
13796 		extern int DrawNString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13797 
13798 		/**
13799 		 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)
13800 		 */
13801 		extern int DrawVString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13802 
13803 		/**
13804 		 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)
13805 		 */
13806 		extern int DrawNVString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13807 
13808 		/**
13809 		 * デフォルトフォントハンドルを使用して書式指定文字列を描画する
13810 		 */
13811 		extern int DrawFormatString(int x, int y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13812 
13813 		/**
13814 		 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(縦書き)
13815 		 */
13816 		extern int DrawFormatVString(int x, int y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13817 
13818 		/**
13819 		 * デフォルトフォントハンドルを使用して文字列の拡大描画
13820 		 */
13821 		extern int DrawExtendString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13822 
13823 		/**
13824 		 * デフォルトフォントハンドルを使用して文字列の拡大描画
13825 		 */
13826 		extern int DrawExtendNString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13827 
13828 		/**
13829 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)
13830 		 */
13831 		extern int DrawExtendVString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13832 
13833 		/**
13834 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)
13835 		 */
13836 		extern int DrawExtendNVString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13837 
13838 		/**
13839 		 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する
13840 		 */
13841 		extern int DrawExtendFormatString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13842 
13843 		/**
13844 		 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)
13845 		 */
13846 		extern int DrawExtendFormatVString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13847 
13848 		/**
13849 		 * デフォルトフォントハンドルを使用して文字列を回転描画する
13850 		 */
13851 		extern int DrawRotaString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null);
13852 
13853 		/**
13854 		 * デフォルトフォントハンドルを使用して文字列を回転描画する
13855 		 */
13856 		extern int DrawRotaNString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0);
13857 
13858 		/**
13859 		 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する
13860 		 */
13861 		extern int DrawRotaFormatString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...);
13862 
13863 		/**
13864 		 * デフォルトフォントハンドルを使用して文字列を変形描画する
13865 		 */
13866 		extern int DrawModiString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null);
13867 
13868 		/**
13869 		 * デフォルトフォントハンドルを使用して文字列を変形描画する
13870 		 */
13871 		extern int DrawModiNString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0);
13872 
13873 		/**
13874 		 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する
13875 		 */
13876 		extern int DrawModiFormatString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...);
13877 
13878 		/**
13879 		 * デフォルトフォントハンドルを使用して文字列を描画する(座標指定がfloat版)
13880 		 */
13881 		extern int DrawStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13882 
13883 		/**
13884 		 * デフォルトフォントハンドルを使用して文字列を描画する(座標指定がfloat版)
13885 		 */
13886 		extern int DrawNStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13887 
13888 		/**
13889 		 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版)
13890 		 */
13891 		extern int DrawVStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13892 
13893 		/**
13894 		 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版)
13895 		 */
13896 		extern int DrawNVStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13897 
13898 		/**
13899 		 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(座標指定がfloat版)
13900 		 */
13901 		extern int DrawFormatStringF(float x, float y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13902 
13903 		/**
13904 		 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(縦書き)(座標指定がfloat版)
13905 		 */
13906 		extern int DrawFormatVStringF(float x, float y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13907 
13908 		/**
13909 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(座標指定がfloat版)
13910 		 */
13911 		extern int DrawExtendStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13912 
13913 		/**
13914 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(座標指定がfloat版)
13915 		 */
13916 		extern int DrawExtendNStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13917 
13918 		/**
13919 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)(座標指定がfloat版)
13920 		 */
13921 		extern int DrawExtendVStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0);
13922 
13923 		/**
13924 		 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)(座標指定がfloat版)
13925 		 */
13926 		extern int DrawExtendNVStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0);
13927 
13928 		/**
13929 		 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(座標指定がfloat版)
13930 		 */
13931 		extern int DrawExtendFormatStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13932 
13933 		/**
13934 		 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)(座標指定がfloat版)
13935 		 */
13936 		extern int DrawExtendFormatVStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
13937 
13938 		/**
13939 		 * デフォルトフォントハンドルを使用して文字列を回転描画する(座標指定がfloat版)
13940 		 */
13941 		extern int DrawRotaStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null);
13942 
13943 		/**
13944 		 * デフォルトフォントハンドルを使用して文字列を回転描画する(座標指定がfloat版)
13945 		 */
13946 		extern int DrawRotaNStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0);
13947 
13948 		/**
13949 		 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する(座標指定がfloat版)
13950 		 */
13951 		extern int DrawRotaFormatStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...);
13952 
13953 		/**
13954 		 * デフォルトフォントハンドルを使用して文字列を変形描画する(座標指定がfloat版)
13955 		 */
13956 		extern int DrawModiStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null);
13957 
13958 		/**
13959 		 * デフォルトフォントハンドルを使用して文字列を変形描画する(座標指定がfloat版)
13960 		 */
13961 		extern int DrawModiNStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0);
13962 
13963 		/**
13964 		 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する(座標指定がfloat版)
13965 		 */
13966 		extern int DrawModiFormatStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...);
13967 
13968 		/**
13969 		 * デフォルトフォントハンドルを使用して整数型の数値を描画する
13970 		 */
13971 		extern int DrawNumberToI(int x, int y, int Num, int RisesNum, uint Color, uint EdgeColor = 0);
13972 
13973 		/**
13974 		 * デフォルトフォントハンドルを使用して浮動小数点型の数値を描画する
13975 		 */
13976 		extern int DrawNumberToF(int x, int y, double Num, int Length, uint Color, uint EdgeColor = 0);
13977 
13978 		/**
13979 		 * デフォルトフォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
13980 		 */
13981 		extern int DrawNumberPlusToI(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, int Num, int RisesNum, uint Color, uint EdgeColor = 0);
13982 
13983 		/**
13984 		 * デフォルトフォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
13985 		 */
13986 		extern int DrawNumberPlusToF(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, double Num, int Length, uint Color, uint EdgeColor = 0);
13987 
13988 		/**
13989 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する
13990 		 */
13991 		extern int DrawStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */);
13992 
13993 		/**
13994 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する
13995 		 */
13996 		extern int DrawNStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */);
13997 
13998 		/**
13999 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する(縦書き)
14000 		 */
14001 		extern int DrawVStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */);
14002 
14003 		/**
14004 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する(縦書き)
14005 		 */
14006 		extern int DrawNVStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */);
14007 
14008 		/**
14009 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する
14010 		 */
14011 		extern int DrawFormatStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14012 
14013 		/**
14014 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する(縦書き)
14015 		 */
14016 		extern int DrawFormatVStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14017 
14018 		/**
14019 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する
14020 		 */
14021 		extern int DrawExtendStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */);
14022 
14023 		/**
14024 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する
14025 		 */
14026 		extern int DrawExtendNStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */);
14027 
14028 		/**
14029 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き)
14030 		 */
14031 		extern int DrawExtendVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */);
14032 
14033 		/**
14034 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き)
14035 		 */
14036 		extern int DrawExtendNVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */);
14037 
14038 		/**
14039 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する
14040 		 */
14041 		extern int DrawExtendFormatStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14042 
14043 		/**
14044 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する(縦書き)
14045 		 */
14046 		extern int DrawExtendFormatVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14047 
14048 		/**
14049 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する
14050 		 */
14051 		extern int DrawRotaStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14052 
14053 		/**
14054 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する
14055 		 */
14056 		extern int DrawRotaNStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14057 
14058 		/**
14059 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する
14060 		 */
14061 		extern int DrawRotaFormatStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14062 
14063 		/**
14064 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する
14065 		 */
14066 		extern int DrawModiStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14067 
14068 		/**
14069 		 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する
14070 		 */
14071 		extern int DrawModiNStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14072 
14073 		/**
14074 		 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する
14075 		 */
14076 		extern int DrawModiFormatStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14077 
14078 		/**
14079 		 * フォントハンドルを使用して文字列を描画する
14080 		 */
14081 		extern int DrawStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14082 
14083 		/**
14084 		 * フォントハンドルを使用して文字列を描画する
14085 		 */
14086 		extern int DrawNStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14087 
14088 		/**
14089 		 * フォントハンドルを使用して文字列を描画する(縦書き)
14090 		 */
14091 		extern int DrawVStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0);
14092 
14093 		/**
14094 		 * フォントハンドルを使用して文字列を描画する(縦書き)
14095 		 */
14096 		extern int DrawNVStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0);
14097 
14098 		/**
14099 		 * フォントハンドルを使用して書式指定文字列を描画する
14100 		 */
14101 		extern int DrawFormatStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14102 
14103 		/**
14104 		 * フォントハンドルを使用して書式指定文字列を描画する(縦書き)
14105 		 */
14106 		extern int DrawFormatVStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14107 
14108 		/**
14109 		 * フォントハンドルを使用して文字列を拡大描画する
14110 		 */
14111 		extern int DrawExtendStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14112 
14113 		/**
14114 		 * フォントハンドルを使用して文字列を拡大描画する
14115 		 */
14116 		extern int DrawExtendNStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14117 
14118 		/**
14119 		 * フォントハンドルを使用して文字列を拡大描画する(縦書き)
14120 		 */
14121 		extern int DrawExtendVStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0);
14122 
14123 		/**
14124 		 * フォントハンドルを使用して文字列を拡大描画する(縦書き)
14125 		 */
14126 		extern int DrawExtendNVStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0);
14127 
14128 		/**
14129 		 * フォントハンドルを使用して書式指定文字列を拡大描画する
14130 		 */
14131 		extern int DrawExtendFormatStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14132 
14133 		/**
14134 		 * フォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)
14135 		 */
14136 		extern int DrawExtendFormatVStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14137 
14138 		/**
14139 		 * フォントハンドルを使用して文字列を回転描画する
14140 		 */
14141 		extern int DrawRotaStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14142 
14143 		/**
14144 		 * フォントハンドルを使用して文字列を回転描画する
14145 		 */
14146 		extern int DrawRotaNStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14147 
14148 		/**
14149 		 * フォントハンドルを使用して書式指定文字列を回転描画する
14150 		 */
14151 		extern int DrawRotaFormatStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14152 
14153 		/**
14154 		 * フォントハンドルを使用して文字列を変形描画する
14155 		 */
14156 		extern int DrawModiStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14157 
14158 		/**
14159 		 * フォントハンドルを使用して文字列を変形描画する
14160 		 */
14161 		extern int DrawModiNStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14162 
14163 		/**
14164 		 * フォントハンドルを使用して書式指定文字列を変形描画する
14165 		 */
14166 		extern int DrawModiFormatStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14167 
14168 		/**
14169 		 * フォントハンドルを使用して文字列を描画する(座標指定がfloat版)
14170 		 */
14171 		extern int DrawStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14172 
14173 		/**
14174 		 * フォントハンドルを使用して文字列を描画する(座標指定がfloat版)
14175 		 */
14176 		extern int DrawNStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14177 
14178 		/**
14179 		 * フォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版)
14180 		 */
14181 		extern int DrawVStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0);
14182 
14183 		/**
14184 		 * フォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版)
14185 		 */
14186 		extern int DrawNVStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0);
14187 
14188 		/**
14189 		 * フォントハンドルを使用して書式指定文字列を描画する(座標指定がfloat版)
14190 		 */
14191 		extern int DrawFormatStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14192 
14193 		/**
14194 		 * フォントハンドルを使用して書式指定文字列を描画する(縦書き)(座標指定がfloat版)
14195 		 */
14196 		extern int DrawFormatVStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14197 
14198 		/**
14199 		 * フォントハンドルを使用して文字列を拡大描画する(座標指定がfloat版)
14200 		 */
14201 		extern int DrawExtendStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14202 
14203 		/**
14204 		 * フォントハンドルを使用して文字列を拡大描画する(座標指定がfloat版)
14205 		 */
14206 		extern int DrawExtendNStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14207 
14208 		/**
14209 		 * フォントハンドルを使用して文字列を拡大描画する(縦書き)(座標指定がfloat版)
14210 		 */
14211 		extern int DrawExtendVStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0);
14212 
14213 		/**
14214 		 * フォントハンドルを使用して文字列を拡大描画する(縦書き)(座標指定がfloat版)
14215 		 */
14216 		extern int DrawExtendNVStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0);
14217 
14218 		/**
14219 		 * フォントハンドルを使用して書式指定文字列を拡大描画する(座標指定がfloat版)
14220 		 */
14221 		extern int DrawExtendFormatStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14222 
14223 		/**
14224 		 * フォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)(座標指定がfloat版)
14225 		 */
14226 		extern int DrawExtendFormatVStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14227 
14228 		/**
14229 		 * フォントハンドルを使用して文字列を回転描画する(座標指定がfloat版)
14230 		 */
14231 		extern int DrawRotaStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null);
14232 
14233 		/**
14234 		 * フォントハンドルを使用して文字列を回転描画する(座標指定がfloat版)
14235 		 */
14236 		extern int DrawRotaNStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0);
14237 
14238 		/**
14239 		 * フォントハンドルを使用して書式指定文字列を回転描画する(座標指定がfloat版)
14240 		 */
14241 		extern int DrawRotaFormatStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...);
14242 
14243 		/**
14244 		 * フォントハンドルを使用して文字列を変形描画する(座標指定がfloat版)
14245 		 */
14246 		extern int DrawModiStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14247 
14248 		/**
14249 		 * フォントハンドルを使用して文字列を変形描画する(座標指定がfloat版)
14250 		 */
14251 		extern int DrawModiNStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14252 
14253 		/**
14254 		 * フォントハンドルを使用して書式指定文字列を変形描画する(座標指定がfloat版)
14255 		 */
14256 		extern int DrawModiFormatStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14257 
14258 		/**
14259 		 * フォントハンドルを使用して整数型の数値を描画する
14260 		 */
14261 		extern int DrawNumberToIToHandle(int x, int y, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0);
14262 
14263 		/**
14264 		 * フォントハンドルを使用して浮動小数点型の数値を描画する
14265 		 */
14266 		extern int DrawNumberToFToHandle(int x, int y, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0);
14267 
14268 		/**
14269 		 * フォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
14270 		 */
14271 		extern int DrawNumberPlusToIToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0);
14272 
14273 		/**
14274 		 * フォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
14275 		 */
14276 		extern int DrawNumberPlusToFToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0);
14277 
14278 		/**
14279 		 * フォントハンドルを使用してZバッファに対して文字列を描画する
14280 		 */
14281 		extern int DrawStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14282 
14283 		/**
14284 		 * フォントハンドルを使用してZバッファに対して文字列を描画する
14285 		 */
14286 		extern int DrawNStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14287 
14288 		/**
14289 		 * フォントハンドルを使用してZバッファに対して文字列を描画する(縦書き)
14290 		 */
14291 		extern int DrawVStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
14292 
14293 		/**
14294 		 * フォントハンドルを使用してZバッファに対して文字列を描画する(縦書き)
14295 		 */
14296 		extern int DrawNVStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
14297 
14298 		/**
14299 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する
14300 		 */
14301 		extern int DrawFormatStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14302 
14303 		/**
14304 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する(縦書き)
14305 		 */
14306 		extern int DrawFormatVStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14307 
14308 		/**
14309 		 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する
14310 		 */
14311 		extern int DrawExtendStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14312 
14313 		/**
14314 		 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する
14315 		 */
14316 		extern int DrawExtendNStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE);
14317 
14318 		/**
14319 		 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き)
14320 		 */
14321 		extern int DrawExtendVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
14322 
14323 		/**
14324 		 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き)
14325 		 */
14326 		extern int DrawExtendNVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */);
14327 
14328 		/**
14329 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する
14330 		 */
14331 		extern int DrawExtendFormatStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14332 
14333 		/**
14334 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する(縦書き)
14335 		 */
14336 		extern int DrawExtendFormatVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14337 
14338 		/**
14339 		 * フォントハンドルを使用してZバッファに対して文字列を回転描画する
14340 		 */
14341 		extern int DrawRotaStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14342 
14343 		/**
14344 		 * フォントハンドルを使用してZバッファに対して文字列を回転描画する
14345 		 */
14346 		extern int DrawRotaNStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14347 
14348 		/**
14349 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する
14350 		 */
14351 		extern int DrawRotaFormatStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14352 
14353 		/**
14354 		 * フォントハンドルを使用してZバッファに対して文字列を変形描画する
14355 		 */
14356 		extern int DrawModiStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String);
14357 
14358 		/**
14359 		 * フォントハンドルを使用してZバッファに対して文字列を変形描画する
14360 		 */
14361 		extern int DrawModiNStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength);
14362 
14363 		/**
14364 		 * フォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する
14365 		 */
14366 		extern int DrawModiFormatStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...);
14367 	}
14368 
14369 	// DxMath.cpp 関数プロトタイプ宣言
14370 
14371 	// 演算ライブラリ
14372 
14373 	/**
14374 	 * float型要素の行列をdouble型要素の行列に変換する
14375 	 */
14376 	extern int ConvertMatrixFtoD(.MATRIX_D* Out, const (.MATRIX)* In);
14377 
14378 	/**
14379 	 * double型要素の行列をfloat型要素の行列に変換する
14380 	 */
14381 	extern int ConvertMatrixDtoF(.MATRIX* Out, const (.MATRIX_D)* In);
14382 
14383 	/**
14384 	 * 単位行列を作成する
14385 	 */
14386 	extern int CreateIdentityMatrix(.MATRIX* Out);
14387 
14388 	/**
14389 	 * 単位行列を作成する
14390 	 */
14391 	extern int CreateIdentityMatrixD(.MATRIX_D* Out);
14392 
14393 	/**
14394 	 * ビュー行列を作成する
14395 	 */
14396 	extern int CreateLookAtMatrix(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up);
14397 
14398 	/**
14399 	 * ビュー行列を作成する
14400 	 */
14401 	extern int CreateLookAtMatrixD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up);
14402 
14403 	/**
14404 	 * ビュー行列を作成する(方向を回転値で指定)
14405 	 */
14406 	extern int CreateLookAtMatrix2(.MATRIX* Out, const (.VECTOR)* Eye, double XZAngle, double Oira);
14407 
14408 	/**
14409 	 * ビュー行列を作成する(方向を回転値で指定)
14410 	 */
14411 	extern int CreateLookAtMatrix2D(.MATRIX_D* Out, const (.VECTOR_D)* Eye, double XZAngle, double Oira);
14412 
14413 	/**
14414 	 * ビュー行列を作成する(右手座標系用)
14415 	 */
14416 	extern int CreateLookAtMatrixRH(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up);
14417 
14418 	/**
14419 	 * ビュー行列を作成する(右手座標系用)
14420 	 */
14421 	extern int CreateLookAtMatrixRHD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up);
14422 
14423 	/**
14424 	 * 行列の積を求める
14425 	 */
14426 	extern int CreateMultiplyMatrix(.MATRIX* Out, const (.MATRIX)* In1, const (.MATRIX)* In2);
14427 
14428 	/**
14429 	 * 行列の積を求める
14430 	 */
14431 	extern int CreateMultiplyMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In1, const (.MATRIX_D)* In2);
14432 
14433 	/**
14434 	 * 射影行列を作成する
14435 	 */
14436 	extern int CreatePerspectiveFovMatrix(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f);
14437 
14438 	/**
14439 	 * 射影行列を作成する
14440 	 */
14441 	extern int CreatePerspectiveFovMatrixD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f);
14442 
14443 	/**
14444 	 * 射影行列を作成する(右手座標系用)
14445 	 */
14446 	extern int CreatePerspectiveFovMatrixRH(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f);
14447 
14448 	/**
14449 	 * 射影行列を作成する(右手座標系用)
14450 	 */
14451 	extern int CreatePerspectiveFovMatrixRHD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f);
14452 
14453 	/**
14454 	 * 正射影行列を作成する
14455 	 */
14456 	extern int CreateOrthoMatrix(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f);
14457 
14458 	/**
14459 	 * 正射影行列を作成する
14460 	 */
14461 	extern int CreateOrthoMatrixD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f);
14462 
14463 	/**
14464 	 * 正射影行列を作成する(右手座標系用)
14465 	 */
14466 	extern int CreateOrthoMatrixRH(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f);
14467 
14468 	/**
14469 	 * 正射影行列を作成する(右手座標系用)
14470 	 */
14471 	extern int CreateOrthoMatrixRHD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f);
14472 
14473 	/**
14474 	 * スケーリング行列を作成する
14475 	 */
14476 	extern int CreateScalingMatrix(.MATRIX* Out, float sx, float sy, float sz);
14477 
14478 	/**
14479 	 * スケーリング行列を作成する
14480 	 */
14481 	extern int CreateScalingMatrixD(.MATRIX_D* Out, double sx, double sy, double sz);
14482 
14483 	/**
14484 	 * X軸を中心とした回転行列を作成する
14485 	 */
14486 	extern int CreateRotationXMatrix(.MATRIX* Out, float Angle);
14487 
14488 	/**
14489 	 * X軸を中心とした回転行列を作成する
14490 	 */
14491 	extern int CreateRotationXMatrixD(.MATRIX_D* Out, double Angle);
14492 
14493 	/**
14494 	 * Y軸を中心とした回転行列を作成する
14495 	 */
14496 	extern int CreateRotationYMatrix(.MATRIX* Out, float Angle);
14497 
14498 	/**
14499 	 * Y軸を中心とした回転行列を作成する
14500 	 */
14501 	extern int CreateRotationYMatrixD(.MATRIX_D* Out, double Angle);
14502 
14503 	/**
14504 	 * Z軸を中心とした回転行列を作成する
14505 	 */
14506 	extern int CreateRotationZMatrix(.MATRIX* Out, float Angle);
14507 
14508 	/**
14509 	 * Z軸を中心とした回転行列を作成する
14510 	 */
14511 	extern int CreateRotationZMatrixD(.MATRIX_D* Out, double Angle);
14512 
14513 	/**
14514 	 * 平行移動行列を作成する
14515 	 */
14516 	extern int CreateTranslationMatrix(.MATRIX* Out, float x, float y, float z);
14517 
14518 	/**
14519 	 * 平行移動行列を作成する
14520 	 */
14521 	extern int CreateTranslationMatrixD(.MATRIX_D* Out, double x, double y, double z);
14522 
14523 	/**
14524 	 * 転置行列を作成する
14525 	 */
14526 	extern int CreateTransposeMatrix(.MATRIX* Out, const (.MATRIX)* In);
14527 
14528 	/**
14529 	 * 転置行列を作成する
14530 	 */
14531 	extern int CreateTransposeMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In);
14532 
14533 	/**
14534 	 * 逆行列を作成する
14535 	 */
14536 	extern int CreateInverseMatrix(.MATRIX* Out, const (.MATRIX)* In);
14537 
14538 	/**
14539 	 * 逆行列を作成する
14540 	 */
14541 	extern int CreateInverseMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In);
14542 
14543 	/**
14544 	 * ビューポート行列を作成する
14545 	 */
14546 	extern int CreateViewportMatrix(.MATRIX* Out, float CenterX, float CenterY, float Width, float Height);
14547 
14548 	/**
14549 	 * ビューポート行列を作成する
14550 	 */
14551 	extern int CreateViewportMatrixD(.MATRIX_D* Out, double CenterX, double CenterY, double Width, double Height);
14552 
14553 	/**
14554 	 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する
14555 	 */
14556 	extern int CreateRotationXYZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14557 
14558 	/**
14559 	 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する
14560 	 */
14561 	extern int CreateRotationXYZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14562 
14563 	/**
14564 	 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する
14565 	 */
14566 	extern int CreateRotationXZYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14567 
14568 	/**
14569 	 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する
14570 	 */
14571 	extern int CreateRotationXZYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14572 
14573 	/**
14574 	 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する
14575 	 */
14576 	extern int CreateRotationYXZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14577 
14578 	/**
14579 	 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する
14580 	 */
14581 	extern int CreateRotationYXZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14582 
14583 	/**
14584 	 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する
14585 	 */
14586 	extern int CreateRotationYZXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14587 
14588 	/**
14589 	 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する
14590 	 */
14591 	extern int CreateRotationYZXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14592 
14593 	/**
14594 	 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する
14595 	 */
14596 	extern int CreateRotationZXYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14597 
14598 	/**
14599 	 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する
14600 	 */
14601 	extern int CreateRotationZXYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14602 
14603 	/**
14604 	 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する
14605 	 */
14606 	extern int CreateRotationZYXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot);
14607 
14608 	/**
14609 	 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する
14610 	 */
14611 	extern int CreateRotationZYXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot);
14612 
14613 	/**
14614 	 * 行列からXYZ軸回転の値を取得する
14615 	 *
14616 	 * Returns: -1:ジンバルロック発生  0:成功
14617 	 */
14618 	extern int GetMatrixXYZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14619 
14620 	/**
14621 	 * 行列からXYZ軸回転の値を取得する
14622 	 *
14623 	 * Returns: -1:ジンバルロック発生  0:成功
14624 	 */
14625 	extern int GetMatrixXYZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14626 
14627 	/**
14628 	 * 行列からXZY軸回転の値を取得する
14629 	 *
14630 	 * Returns: -1:ジンバルロック発生  0:成功
14631 	 */
14632 	extern int GetMatrixXZYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14633 
14634 	/**
14635 	 * 行列からXZY軸回転の値を取得する
14636 	 *
14637 	 * Returns: -1:ジンバルロック発生  0:成功
14638 	 */
14639 	extern int GetMatrixXZYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14640 
14641 	/**
14642 	 * 行列からYXZ軸回転の値を取得する
14643 	 *
14644 	 * Returns: -1:ジンバルロック発生  0:成功
14645 	 */
14646 	extern int GetMatrixYXZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14647 
14648 	/**
14649 	 * 行列からYXZ軸回転の値を取得する
14650 	 *
14651 	 * Returns: -1:ジンバルロック発生  0:成功
14652 	 */
14653 	extern int GetMatrixYXZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14654 
14655 	/**
14656 	 * 行列からYZX軸回転の値を取得する
14657 	 *
14658 	 * Returns: -1:ジンバルロック発生  0:成功
14659 	 */
14660 	extern int GetMatrixYZXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14661 
14662 	/**
14663 	 * 行列からYZX軸回転の値を取得する
14664 	 *
14665 	 * Returns: -1:ジンバルロック発生  0:成功
14666 	 */
14667 	extern int GetMatrixYZXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14668 
14669 	/**
14670 	 * 行列からZXY軸回転の値を取得する
14671 	 *
14672 	 * Returns: -1:ジンバルロック発生  0:成功
14673 	 */
14674 	extern int GetMatrixZXYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14675 
14676 	/**
14677 	 * 行列からZXY軸回転の値を取得する
14678 	 *
14679 	 * Returns: -1:ジンバルロック発生  0:成功
14680 	 */
14681 	extern int GetMatrixZXYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14682 
14683 	/**
14684 	 * 行列からZYX軸回転の値を取得する
14685 	 *
14686 	 * Returns: -1:ジンバルロック発生  0:成功
14687 	 */
14688 	extern int GetMatrixZYXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot);
14689 
14690 	/**
14691 	 * 行列からZYX軸回転の値を取得する
14692 	 *
14693 	 * Returns: -1:ジンバルロック発生  0:成功
14694 	 */
14695 	extern int GetMatrixZYXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot);
14696 
14697 	/**
14698 	 * float型のベクトルをdouble型のベクトルに変換する
14699 	 */
14700 	extern int VectorConvertFtoD(.VECTOR_D* Out, const (.VECTOR)* In);
14701 
14702 	/**
14703 	 * double型のベクトルをfloat型のベクトルに変換する
14704 	 */
14705 	extern int VectorConvertDtoF(.VECTOR* Out, const (.VECTOR_D)* In);
14706 
14707 	/**
14708 	 * ベクトルを正規化する
14709 	 */
14710 	extern int VectorNormalize(.VECTOR* Out, const (.VECTOR)* In);
14711 
14712 	/**
14713 	 * ベクトルを正規化する
14714 	 */
14715 	extern int VectorNormalizeD(.VECTOR_D* Out, const (.VECTOR_D)* In);
14716 
14717 	/**
14718 	 * ベクトルをスカラー倍する
14719 	 */
14720 	extern int VectorScale(.VECTOR* Out, const (.VECTOR)* In, float Scale);
14721 
14722 	/**
14723 	 * ベクトルをスカラー倍する
14724 	 */
14725 	extern int VectorScaleD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Scale);
14726 
14727 	/**
14728 	 * ベクトルの掛け算をする
14729 	 */
14730 	extern int VectorMultiply(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2);
14731 
14732 	/**
14733 	 * ベクトルの掛け算をする
14734 	 */
14735 	extern int VectorMultiplyD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2);
14736 
14737 	/**
14738 	 * Out = In1 - In2のベクトル計算をする
14739 	 */
14740 	extern int VectorSub(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2);
14741 
14742 	/**
14743 	 * Out = In1 - In2のベクトル計算をする
14744 	 */
14745 	extern int VectorSubD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2);
14746 
14747 	/**
14748 	 * Out = In1 + In2のベクトル計算をする
14749 	 */
14750 	extern int VectorAdd(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2);
14751 
14752 	/**
14753 	 * Out = In1 + In2のベクトル計算をする
14754 	 */
14755 	extern int VectorAddD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2);
14756 
14757 	/**
14758 	 * In1とIn2の外積を計算する
14759 	 */
14760 	extern int VectorOuterProduct(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2);
14761 
14762 	/**
14763 	 * In1とIn2の外積を計算する
14764 	 */
14765 	extern int VectorOuterProductD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2);
14766 
14767 	/**
14768 	 * In1とIn2の内積を計算する
14769 	 */
14770 	extern float VectorInnerProduct(const (.VECTOR)* In1, const (.VECTOR)* In2);
14771 
14772 	/**
14773 	 * In1とIn2の内積を計算する
14774 	 */
14775 	extern double VectorInnerProductD(const (.VECTOR_D)* In1, const (.VECTOR_D)* In2);
14776 
14777 	/**
14778 	 * ベクトルのX軸を軸にした回転を行う
14779 	 */
14780 	extern int VectorRotationX(.VECTOR* Out, const (.VECTOR)* In, double Angle);
14781 
14782 	/**
14783 	 * ベクトルのX軸を軸にした回転を行う
14784 	 */
14785 	extern int VectorRotationXD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle);
14786 
14787 	/**
14788 	 * ベクトルのY軸を軸にした回転を行う
14789 	 */
14790 	extern int VectorRotationY(.VECTOR* Out, const (.VECTOR)* In, double Angle);
14791 
14792 	/**
14793 	 * ベクトルのY軸を軸にした回転を行う
14794 	 */
14795 	extern int VectorRotationYD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle);
14796 
14797 	/**
14798 	 * ベクトルのZ軸を軸にした回転を行う
14799 	 */
14800 	extern int VectorRotationZ(.VECTOR* Out, const (.VECTOR)* In, double Angle);
14801 
14802 	/**
14803 	 * ベクトルのZ軸を軸にした回転を行う
14804 	 */
14805 	extern int VectorRotationZD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle);
14806 
14807 	/**
14808 	 * ベクトル行列と4x4正方行列を乗算する(wは1と仮定)
14809 	 */
14810 	extern int VectorTransform(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix);
14811 
14812 	/**
14813 	 * ベクトル行列と4x4正方行列を乗算する(wは1と仮定)
14814 	 */
14815 	extern int VectorTransformD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix);
14816 
14817 	/**
14818 	 * ベクトル行列と4x4正方行列の回転部分のみを乗算する
14819 	 */
14820 	extern int VectorTransformSR(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix);
14821 
14822 	/**
14823 	 * ベクトル行列と4x4正方行列の回転部分のみを乗算する
14824 	 */
14825 	extern int VectorTransformSRD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix);
14826 
14827 	/**
14828 	 * ベクトル行列と4x4正方行列を乗算する(wの要素を渡す)
14829 	 */
14830 	extern int VectorTransform4(.VECTOR* Out, float* V4Out, const (.VECTOR)* InVec, const (float)* V4In, const (.MATRIX)* InMatrix);
14831 
14832 	/**
14833 	 * ベクトル行列と4x4正方行列を乗算する(wの要素を渡す)
14834 	 */
14835 	extern int VectorTransform4D(.VECTOR_D* Out, double* V4Out, const (.VECTOR_D)* InVec, const (double)* V4In, const (.MATRIX_D)* InMatrix);
14836 
14837 	/**
14838 	 * 二つの線分の最接近点情報を解析する
14839 	 */
14840 	extern int Segment_Segment_Analyse(const (.VECTOR)* SegmentAPos1, const (.VECTOR)* SegmentAPos2, const (.VECTOR)* SegmentBPos1, const (.VECTOR)* SegmentBPos2, .SEGMENT_SEGMENT_RESULT* Result);
14841 
14842 	/**
14843 	 * 二つの線分の最接近点情報を解析する
14844 	 */
14845 	extern int Segment_Segment_AnalyseD(const (.VECTOR_D)* SegmentAPos1, const (.VECTOR_D)* SegmentAPos2, const (.VECTOR_D)* SegmentBPos1, const (.VECTOR_D)* SegmentBPos2, .SEGMENT_SEGMENT_RESULT_D* Result);
14846 
14847 	/**
14848 	 * 線分と点の最接近点情報を解析する
14849 	 */
14850 	extern int Segment_Point_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* PointPos, .SEGMENT_POINT_RESULT* Result);
14851 
14852 	/**
14853 	 * 線分と点の最接近点情報を解析する
14854 	 */
14855 	extern int Segment_Point_AnalyseD(const (.VECTOR_D)* SegmentPos1, const (.VECTOR_D)* SegmentPos2, const (.VECTOR_D)* PointPos, .SEGMENT_POINT_RESULT_D* Result);
14856 
14857 	/**
14858 	 * 線分と三角形の最接近点情報を解析する
14859 	 */
14860 	extern int Segment_Triangle_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, .SEGMENT_TRIANGLE_RESULT* Result);
14861 
14862 	/**
14863 	 * 線分と三角形の最接近点情報を解析する
14864 	 */
14865 	extern int Segment_Triangle_AnalyseD(const (.VECTOR_D)* SegmentPos1, const (.VECTOR_D)* SegmentPos2, const (.VECTOR_D)* TrianglePos1, const (.VECTOR_D)* TrianglePos2, const (.VECTOR_D)* TrianglePos3, .SEGMENT_TRIANGLE_RESULT_D* Result);
14866 
14867 	/**
14868 	 * 三角形と点の最接近点情報を解析する
14869 	 */
14870 	extern int Triangle_Point_Analyse(const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, const (.VECTOR)* PointPos, .TRIANGLE_POINT_RESULT* Result);
14871 
14872 	/**
14873 	 * 三角形と点の最接近点情報を解析する
14874 	 */
14875 	extern int Triangle_Point_AnalyseD(const (.VECTOR_D)* TrianglePos1, const (.VECTOR_D)* TrianglePos2, const (.VECTOR_D)* TrianglePos3, const (.VECTOR_D)* PointPos, .TRIANGLE_POINT_RESULT_D* Result);
14876 
14877 	/**
14878 	 * 平面と点の最近点情報を解析する
14879 	 */
14880 	extern int Plane_Point_Analyse(const (.VECTOR)* PlanePos, const (.VECTOR)* PlaneNormal, const (.VECTOR)* PointPos, .PLANE_POINT_RESULT* Result);
14881 
14882 	/**
14883 	 * 平面と点の最近点情報を解析する
14884 	 */
14885 	extern int Plane_Point_AnalyseD(const (.VECTOR_D)* PlanePos, const (.VECTOR_D)* PlaneNormal, const (.VECTOR_D)* PointPos, .PLANE_POINT_RESULT_D* Result);
14886 
14887 	/**
14888 	 * 指定の座標から三角形の重心を求める
14889 	 */
14890 	extern void TriangleBarycenter(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR Position, float* TrianglePos1Weight, float* TrianglePos2Weight, float* TrianglePos3Weight);
14891 
14892 	/**
14893 	 * 指定の座標から三角形の重心を求める
14894 	 */
14895 	extern void TriangleBarycenterD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D Position, double* TrianglePos1Weight, double* TrianglePos2Weight, double* TrianglePos3Weight);
14896 
14897 	/**
14898 	 * 二つの線分の最近点間の距離を得る
14899 	 */
14900 	extern float Segment_Segment_MinLength(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2);
14901 
14902 	/**
14903 	 * 二つの線分の最近点間の距離を得る
14904 	 */
14905 	extern double Segment_Segment_MinLengthD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2);
14906 
14907 	/**
14908 	 * 二つの線分の最近点間の距離の二乗を得る
14909 	 */
14910 	extern float Segment_Segment_MinLength_Square(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2);
14911 
14912 	/**
14913 	 * 二つの線分の最近点間の距離の二乗を得る
14914 	 */
14915 	extern double Segment_Segment_MinLength_SquareD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2);
14916 
14917 	/**
14918 	 * 線分と三角形の最近点間の距離を得る
14919 	 */
14920 	extern float Segment_Triangle_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3);
14921 
14922 	/**
14923 	 * 線分と三角形の最近点間の距離を得る
14924 	 */
14925 	extern double Segment_Triangle_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3);
14926 
14927 	/**
14928 	 * 線分と三角形の最近点間の距離の二乗を得る
14929 	 */
14930 	extern float Segment_Triangle_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3);
14931 
14932 	/**
14933 	 * 線分と三角形の最近点間の距離の二乗を得る
14934 	 */
14935 	extern double Segment_Triangle_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3);
14936 
14937 	/**
14938 	 * 線分と点の一番近い距離を得る
14939 	 */
14940 	extern float Segment_Point_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos);
14941 
14942 	/**
14943 	 * 線分と点の一番近い距離を得る
14944 	 */
14945 	extern double Segment_Point_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos);
14946 
14947 	/**
14948 	 * 線分と点の一番近い距離の二乗を得る
14949 	 */
14950 	extern float Segment_Point_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos);
14951 
14952 	/**
14953 	 * 線分と点の一番近い距離の二乗を得る
14954 	 */
14955 	extern double Segment_Point_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos);
14956 
14957 	/**
14958 	 * 三角形と点の一番近い距離を得る
14959 	 */
14960 	extern float Triangle_Point_MinLength(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos);
14961 
14962 	/**
14963 	 * 三角形と点の一番近い距離を得る
14964 	 */
14965 	extern double Triangle_Point_MinLengthD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos);
14966 
14967 	/**
14968 	 * 三角形と点の一番近い距離の二乗を得る
14969 	 */
14970 	extern float Triangle_Point_MinLength_Square(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos);
14971 
14972 	/**
14973 	 * 三角形と点の一番近い距離の二乗を得る
14974 	 */
14975 	extern double Triangle_Point_MinLength_SquareD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos);
14976 
14977 	/**
14978 	 * 二つの三角形の最近点間の距離を得る
14979 	 */
14980 	extern float Triangle_Triangle_MinLength(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3);
14981 
14982 	/**
14983 	 * 二つの三角形の最近点間の距離を得る
14984 	 */
14985 	extern double Triangle_Triangle_MinLengthD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3);
14986 
14987 	/**
14988 	 * 二つの三角形の最近点間の距離の二乗を得る
14989 	 */
14990 	extern float Triangle_Triangle_MinLength_Square(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3);
14991 
14992 	/**
14993 	 * 二つの三角形の最近点間の距離の二乗を得る
14994 	 */
14995 	extern double Triangle_Triangle_MinLength_SquareD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3);
14996 
14997 	/**
14998 	 * 点に一番近い平面上の座標を得る
14999 	 */
15000 	extern .VECTOR Plane_Point_MinLength_Position(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos);
15001 
15002 	/**
15003 	 * 点に一番近い平面上の座標を得る
15004 	 */
15005 	extern .VECTOR_D Plane_Point_MinLength_PositionD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos);
15006 
15007 	/**
15008 	 * 平面と点の一番近い距離を得る
15009 	 */
15010 	extern float Plane_Point_MinLength(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos);
15011 
15012 	/**
15013 	 * 平面と点の一番近い距離を得る
15014 	 */
15015 	extern double Plane_Point_MinLengthD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos);
15016 
15017 	/**
15018 	 * 三角形と線の当たり判定
15019 	 */
15020 	extern .HITRESULT_LINE HitCheck_Line_Triangle(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3);
15021 
15022 	/**
15023 	 * 三角形と線の当たり判定
15024 	 */
15025 	extern .HITRESULT_LINE_D HitCheck_Line_TriangleD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3);
15026 
15027 	/**
15028 	 * 三角形と三角形の当たり判定
15029 	 *
15030 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15031 	 */
15032 	extern int HitCheck_Triangle_Triangle(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3);
15033 
15034 	/**
15035 	 * 三角形と三角形の当たり判定
15036 	 *
15037 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15038 	 */
15039 	extern int HitCheck_Triangle_TriangleD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3);
15040 
15041 	/**
15042 	 * 三角形と三角形の当たり判定(2D版)
15043 	 *
15044 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15045 	 */
15046 	extern int HitCheck_Triangle_Triangle_2D(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3);
15047 
15048 	/**
15049 	 * 三角形と三角形の当たり判定(2D版)
15050 	 *
15051 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15052 	 */
15053 	extern int HitCheck_Triangle_TriangleD_2D(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3);
15054 
15055 	/**
15056 	 * 線と箱の当たり判定
15057 	 */
15058 	extern .HITRESULT_LINE HitCheck_Line_Cube(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR CubePos1, .VECTOR CubePos2);
15059 
15060 	/**
15061 	 * 線と箱の当たり判定
15062 	 */
15063 	extern .HITRESULT_LINE_D HitCheck_Line_CubeD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D CubePos1, .VECTOR_D CubePos2);
15064 
15065 	/**
15066 	 * 点と円錐の当たり判定
15067 	 *
15068 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15069 	 */
15070 	extern int HitCheck_Point_Cone(.VECTOR PointPos, .VECTOR ConeTopPos, .VECTOR ConeBottomPos, float ConeR);
15071 
15072 	/**
15073 	 * 点と円錐の当たり判定
15074 	 *
15075 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15076 	 */
15077 	extern int HitCheck_Point_ConeD(.VECTOR_D PointPos, .VECTOR_D ConeTopPos, .VECTOR_D ConeBottomPos, double ConeR);
15078 
15079 	/**
15080 	 * 線と球の当たり判定
15081 	 *
15082 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15083 	 */
15084 	extern int HitCheck_Line_Sphere(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR SphereCenterPos, float SphereR);
15085 
15086 	/**
15087 	 * 線と球の当たり判定
15088 	 *
15089 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15090 	 */
15091 	extern int HitCheck_Line_SphereD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D SphereCenterPos, double SphereR);
15092 
15093 	/**
15094 	 * 球と球の当たり判定
15095 	 *
15096 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15097 	 */
15098 	extern int HitCheck_Sphere_Sphere(.VECTOR Sphere1CenterPos, float Sphere1R, .VECTOR Sphere2CenterPos, float Sphere2R);
15099 
15100 	/**
15101 	 * 球と球の当たり判定
15102 	 *
15103 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15104 	 */
15105 	extern int HitCheck_Sphere_SphereD(.VECTOR_D Sphere1CenterPos, double Sphere1R, .VECTOR_D Sphere2CenterPos, double Sphere2R);
15106 
15107 	/**
15108 	 * 球とカプセルの当たり判定
15109 	 *
15110 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15111 	 */
15112 	extern int HitCheck_Sphere_Capsule(.VECTOR SphereCenterPos, float SphereR, .VECTOR CapPos1, .VECTOR CapPos2, float CapR);
15113 
15114 	/**
15115 	 * 球とカプセルの当たり判定
15116 	 *
15117 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15118 	 */
15119 	extern int HitCheck_Sphere_CapsuleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR);
15120 
15121 	/**
15122 	 * 球と三角形の当たり判定
15123 	 *
15124 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15125 	 */
15126 	extern int HitCheck_Sphere_Triangle(.VECTOR SphereCenterPos, float SphereR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3);
15127 
15128 	/**
15129 	 * 球と三角形の当たり判定
15130 	 *
15131 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15132 	 */
15133 	extern int HitCheck_Sphere_TriangleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3);
15134 
15135 	/**
15136 	 * カプセル同士の当たり判定
15137 	 *
15138 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15139 	 */
15140 	extern int HitCheck_Capsule_Capsule(.VECTOR Cap1Pos1, .VECTOR Cap1Pos2, float Cap1R, .VECTOR Cap2Pos1, .VECTOR Cap2Pos2, float Cap2R);
15141 
15142 	/**
15143 	 * カプセル同士の当たり判定
15144 	 *
15145 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15146 	 */
15147 	extern int HitCheck_Capsule_CapsuleD(.VECTOR_D Cap1Pos1, .VECTOR_D Cap1Pos2, double Cap1R, .VECTOR_D Cap2Pos1, .VECTOR_D Cap2Pos2, double Cap2R);
15148 
15149 	/**
15150 	 * カプセルと三角形の当たり判定
15151 	 *
15152 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15153 	 */
15154 	extern int HitCheck_Capsule_Triangle(.VECTOR CapPos1, .VECTOR CapPos2, float CapR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3);
15155 
15156 	/**
15157 	 * カプセルと三角形の当たり判定
15158 	 *
15159 	 * Returns: dxlib_d.DxDataType.TRUE:当たっている  dxlib_d.DxDataType.FALSE:当たっていない
15160 	 */
15161 	extern int HitCheck_Capsule_TriangleD(.VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3);
15162 
15163 	// その他
15164 
15165 	/**
15166 	 * 矩形のクリッピング
15167 	 */
15168 	extern int RectClipping(dxlib_d.DxDataType.RECT* Rect, const (dxlib_d.DxDataType.RECT)* ClippuRect);
15169 
15170 	/**
15171 	 * 矩形のleftがrightより値が大きい場合などの誤りを補正する
15172 	 */
15173 	extern int RectAdjust(dxlib_d.DxDataType.RECT* Rect);
15174 
15175 	/**
15176 	 * 矩形の幅と高さを求める
15177 	 */
15178 	extern int GetRectSize(const (dxlib_d.DxDataType.RECT)* Rect, int* Width, int* Height);
15179 
15180 	// 表記簡略版
15181 
15182 	/**
15183 	 * 単位行列を取得する
15184 	 */
15185 	extern .MATRIX MGetIdent();
15186 
15187 	/**
15188 	 * 単位行列を取得する
15189 	 */
15190 	extern .MATRIX_D MGetIdentD();
15191 
15192 	/**
15193 	 * 行列の乗算を行う
15194 	 */
15195 	extern .MATRIX MMult(.MATRIX In1, .MATRIX In2);
15196 
15197 	/**
15198 	 * 行列の乗算を行う
15199 	 */
15200 	extern .MATRIX_D MMultD(.MATRIX_D In1, .MATRIX_D In2);
15201 
15202 	/**
15203 	 * 行列のスケーリングを行う
15204 	 */
15205 	extern .MATRIX MScale(.MATRIX InM, float Scale);
15206 
15207 	/**
15208 	 * 行列のスケーリングを行う
15209 	 */
15210 	extern .MATRIX_D MScaleD(.MATRIX_D InM, double Scale);
15211 
15212 	/**
15213 	 * 行列の足し算を行う
15214 	 */
15215 	extern .MATRIX MAdd(.MATRIX In1, .MATRIX In2);
15216 
15217 	/**
15218 	 * 行列の足し算を行う
15219 	 */
15220 	extern .MATRIX_D MAddD(.MATRIX_D In1, .MATRIX_D In2);
15221 
15222 	/**
15223 	 * 拡大行列を取得する
15224 	 */
15225 	extern .MATRIX MGetScale(.VECTOR Scale);
15226 
15227 	/**
15228 	 * 拡大行列を取得する
15229 	 */
15230 	extern .MATRIX_D MGetScaleD(.VECTOR_D Scale);
15231 
15232 	/**
15233 	 * X軸回転行列を取得する
15234 	 */
15235 	extern .MATRIX MGetRotX(float XAxisRotate);
15236 
15237 	/**
15238 	 * X軸回転行列を取得する
15239 	 */
15240 	extern .MATRIX_D MGetRotXD(double XAxisRotate);
15241 
15242 	/**
15243 	 * Y軸回転行列を取得する
15244 	 */
15245 	extern .MATRIX MGetRotY(float YAxisRotate);
15246 
15247 	/**
15248 	 * Y軸回転行列を取得する
15249 	 */
15250 	extern .MATRIX_D MGetRotYD(double YAxisRotate);
15251 
15252 	/**
15253 	 * Z軸回転行列を取得する
15254 	 */
15255 	extern .MATRIX MGetRotZ(float ZAxisRotate);
15256 
15257 	/**
15258 	 * Z軸回転行列を取得する
15259 	 */
15260 	extern .MATRIX_D MGetRotZD(double ZAxisRotate);
15261 
15262 	/**
15263 	 * 指定軸で指定角度回転する行列を取得する
15264 	 */
15265 	extern .MATRIX MGetRotAxis(.VECTOR RotateAxis, float Rotate);
15266 
15267 	/**
15268 	 * 指定軸で指定角度回転する行列を取得する
15269 	 */
15270 	extern .MATRIX_D MGetRotAxisD(.VECTOR_D RotateAxis, double Rotate);
15271 
15272 	/**
15273 	 * In1の向きからIn2の向きへ変換する回転行列を取得する(In2とIn1が真逆のベクトルの場合は回転軸は不定)
15274 	 */
15275 	extern .MATRIX MGetRotVec2(.VECTOR In1, .VECTOR In2);
15276 
15277 	/**
15278 	 * In1の向きからIn2の向きへ変換する回転行列を取得する(In2とIn1が真逆のベクトルの場合は回転軸は不定)
15279 	 */
15280 	extern .MATRIX_D MGetRotVec2D(.VECTOR_D In1, .VECTOR_D In2);
15281 
15282 	/**
15283 	 * 平行移動行列を取得する
15284 	 */
15285 	extern .MATRIX MGetTranslate(.VECTOR Trans);
15286 
15287 	/**
15288 	 * 平行移動行列を取得する
15289 	 */
15290 	extern .MATRIX_D MGetTranslateD(.VECTOR_D Trans);
15291 
15292 	/**
15293 	 * 指定の3軸ローカルのベクトルを基本軸上のベクトルに変換する行列を取得する(x' = (XAxis.x * x) + (YAixs.x * y) + (ZAxis.z * z) + Pos.x   y' = (XAxis.y * x) + (YAixs.y * y) + (ZAxis.y * z) + Pos.y      z' = (XAxis.z * x) + (YAixs.z * y) + (ZAxis.z * z) + Pos.z)
15294 	 */
15295 	extern .MATRIX MGetAxis1(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos);
15296 
15297 	/**
15298 	 * 指定の3軸ローカルのベクトルを基本軸上のベクトルに変換する行列を取得する(x' = (XAxis.x * x) + (YAixs.x * y) + (ZAxis.z * z) + Pos.x   y' = (XAxis.y * x) + (YAixs.y * y) + (ZAxis.y * z) + Pos.y      z' = (XAxis.z * x) + (YAixs.z * y) + (ZAxis.z * z) + Pos.z)
15299 	 */
15300 	extern .MATRIX_D MGetAxis1D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos);
15301 
15302 	/**
15303 	 * 基本軸上のベクトルを指定の3軸上に投影したベクトルに変換する行列を取得する(x' = (XAxis.x * (x - Pos.x)) + (XAxis.y * (x - Pos.x)) + (XAxis.z * (x - Pos.x))    y' = (YAxis.x * (x - Pos.x)) + (YAxis.y * (x - Pos.x)) + (YAxis.z * (x - Pos.x))    z' = (ZAxis.x * (x - Pos.x)) + (ZAxis.y * (x - Pos.x)) + (ZAxis.z * (x - Pos.x)))
15304 	 */
15305 	extern .MATRIX MGetAxis2(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos);
15306 
15307 	/**
15308 	 * 基本軸上のベクトルを指定の3軸上に投影したベクトルに変換する行列を取得する(x' = (XAxis.x * (x - Pos.x)) + (XAxis.y * (x - Pos.x)) + (XAxis.z * (x - Pos.x))    y' = (YAxis.x * (x - Pos.x)) + (YAxis.y * (x - Pos.x)) + (YAxis.z * (x - Pos.x))    z' = (ZAxis.x * (x - Pos.x)) + (ZAxis.y * (x - Pos.x)) + (ZAxis.z * (x - Pos.x)))
15309 	 */
15310 	extern .MATRIX_D MGetAxis2D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos);
15311 
15312 	/**
15313 	 * 転置行列を取得する
15314 	 */
15315 	extern .MATRIX MTranspose(.MATRIX InM);
15316 
15317 	/**
15318 	 * 転置行列を取得する
15319 	 */
15320 	extern .MATRIX_D MTransposeD(.MATRIX_D InM);
15321 
15322 	/**
15323 	 * 逆行列を取得する
15324 	 */
15325 	extern .MATRIX MInverse(.MATRIX InM);
15326 
15327 	/**
15328 	 * 逆行列を取得する
15329 	 */
15330 	extern .MATRIX_D MInverseD(.MATRIX_D InM);
15331 
15332 	/**
15333 	 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する
15334 	 */
15335 	extern .VECTOR MGetSize(.MATRIX InM);
15336 
15337 	/**
15338 	 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する
15339 	 */
15340 	extern .VECTOR_D MGetSizeD(.MATRIX_D InM);
15341 
15342 	/**
15343 	 * 行列の回転成分を取得する
15344 	 */
15345 	extern .MATRIX MGetRotElem(.MATRIX InM);
15346 
15347 	/**
15348 	 * 行列の回転成分を取得する
15349 	 */
15350 	extern .MATRIX_D MGetRotElemD(.MATRIX_D InM);
15351 
15352 	/**
15353 	 * 行列の平行移動成分を取得する
15354 	 */
15355 	pragma(inline, true)
15356 	pure nothrow @safe @nogc @live
15357 	.VECTOR MGetTranslateElem(ref .MATRIX InM)
15358 	{
15359 		.VECTOR Result =
15360 		{
15361 			x: InM.m[3][0],
15362 			y: InM.m[3][1],
15363 			z: InM.m[3][2],
15364 		};
15365 
15366 		return Result;
15367 	}
15368 
15369 	/**
15370 	 * 行列の平行移動成分を取得する
15371 	 */
15372 	pragma(inline, true)
15373 	pure nothrow @safe @nogc @live
15374 	.VECTOR_D MGetTranslateElemD(ref .MATRIX_D InM)
15375 	{
15376 		.VECTOR_D Result =
15377 		{
15378 			x: InM.m[3][0],
15379 			y: InM.m[3][1],
15380 			z: InM.m[3][2],
15381 		};
15382 
15383 		return Result;
15384 	}
15385 
15386 	/**
15387 	 * ベクトル値の変換
15388 	 */
15389 	pragma(inline, true)
15390 	pure nothrow @safe @nogc @live
15391 	.VECTOR_D VConvFtoD(const ref .VECTOR In)
15392 	{
15393 		.VECTOR_D Result =
15394 		{
15395 			x: In.x,
15396 			y: In.y,
15397 			z: In.z,
15398 		};
15399 
15400 		return Result;
15401 	}
15402 
15403 	pragma(inline, true)
15404 	pure nothrow @safe @nogc @live
15405 	.VECTOR VConvDtoF(const ref .VECTOR_D In)
15406 	{
15407 		.VECTOR Result =
15408 		{
15409 			x: cast(float)(In.x),
15410 			y: cast(float)(In.y),
15411 			z: cast(float)(In.z),
15412 		};
15413 
15414 		return Result;
15415 	}
15416 
15417 	/**
15418 	 * ベクトル値の生成
15419 	 */
15420 	pragma(inline, true)
15421 	pure nothrow @safe @nogc @live
15422 	.VECTOR VGet(float x, float y, float z)
15423 	{
15424 		.VECTOR Result =
15425 		{
15426 			x: x,
15427 			y: y,
15428 			z: z,
15429 		};
15430 
15431 		return Result;
15432 	}
15433 
15434 	pragma(inline, true)
15435 	pure nothrow @safe @nogc @live
15436 	.VECTOR_D VGetD(double x, double y, double z)
15437 	{
15438 		.VECTOR_D Result =
15439 		{
15440 			x: x,
15441 			y: y,
15442 			z: z,
15443 		};
15444 
15445 		return Result;
15446 	}
15447 
15448 	pragma(inline, true)
15449 	pure nothrow @safe @nogc @live
15450 	.FLOAT2 F2Get(float u, float v)
15451 	{
15452 		.FLOAT2 Result =
15453 		{
15454 			u: u,
15455 			v: v,
15456 		};
15457 
15458 		return Result;
15459 	}
15460 
15461 	/**
15462 	 * 4要素ベクトル値の生成
15463 	 */
15464 	pragma(inline, true)
15465 	pure nothrow @safe @nogc @live
15466 	.FLOAT4 F4Get(float x, float y, float z, float w)
15467 	{
15468 		.FLOAT4 Result =
15469 		{
15470 			x: x,
15471 			y: y,
15472 			z: z,
15473 			w: w,
15474 		};
15475 
15476 		return Result;
15477 	}
15478 
15479 	pragma(inline, true)
15480 	pure nothrow @safe @nogc @live
15481 	.DOUBLE4 D4Get(double x, double y, double z, double w)
15482 	{
15483 		.DOUBLE4 Result =
15484 		{
15485 			x: x,
15486 			y: y,
15487 			z: z,
15488 			w: w,
15489 		};
15490 
15491 		return Result;
15492 	}
15493 
15494 	/**
15495 	 * ベクトルの加算
15496 	 */
15497 	pragma(inline, true)
15498 	pure nothrow @safe @nogc @live
15499 	.VECTOR VAdd(const ref .VECTOR In1, const ref .VECTOR In2)
15500 	{
15501 		.VECTOR Result =
15502 		{
15503 			x: In1.x + In2.x,
15504 			y: In1.y + In2.y,
15505 			z: In1.z + In2.z,
15506 		};
15507 
15508 		return Result;
15509 	}
15510 
15511 	pragma(inline, true)
15512 	pure nothrow @safe @nogc @live
15513 	.VECTOR_D VAddD(const ref .VECTOR_D In1, const ref .VECTOR_D In2)
15514 	{
15515 		.VECTOR_D Result =
15516 		{
15517 			x: In1.x + In2.x,
15518 			y: In1.y + In2.y,
15519 			z: In1.z + In2.z,
15520 		};
15521 
15522 		return Result;
15523 	}
15524 
15525 	/**
15526 	 * ベクトルの減算
15527 	 */
15528 	pragma(inline, true)
15529 	pure nothrow @safe @nogc @live
15530 	.VECTOR VSub(const ref .VECTOR In1, const ref .VECTOR In2)
15531 	{
15532 		.VECTOR Result =
15533 		{
15534 			x: In1.x - In2.x,
15535 			y: In1.y - In2.y,
15536 			z: In1.z - In2.z,
15537 		};
15538 
15539 		return Result;
15540 	}
15541 
15542 	pragma(inline, true)
15543 	pure nothrow @safe @nogc @live
15544 	.VECTOR_D VSubD(const ref .VECTOR_D In1, const ref .VECTOR_D In2)
15545 	{
15546 		.VECTOR_D Result =
15547 		{
15548 			x: In1.x - In2.x,
15549 			y: In1.y - In2.y,
15550 			z: In1.z - In2.z,
15551 		};
15552 
15553 		return Result;
15554 	}
15555 
15556 	pragma(inline, true)
15557 	pure nothrow @safe @nogc @live
15558 	.FLOAT2 F2Add(const ref .FLOAT2 In1, const ref .FLOAT2 In2)
15559 	{
15560 		.FLOAT2 Result =
15561 		{
15562 			u: In1.u + In2.u,
15563 			v: In1.v + In2.v,
15564 		};
15565 
15566 		return Result;
15567 	}
15568 
15569 	/**
15570 	 * 4要素ベクトルの加算
15571 	 */
15572 	pragma(inline, true)
15573 	pure nothrow @safe @nogc @live
15574 	.FLOAT4 F4Add(const ref .FLOAT4 In1, const ref .FLOAT4 In2)
15575 	{
15576 		.FLOAT4 Result =
15577 		{
15578 			x: In1.x + In2.x,
15579 			y: In1.y + In2.y,
15580 			z: In1.z + In2.z,
15581 			w: In1.w + In2.w,
15582 		};
15583 
15584 		return Result;
15585 	}
15586 
15587 	pragma(inline, true)
15588 	pure nothrow @safe @nogc @live
15589 	.DOUBLE4 D4Add(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2)
15590 	{
15591 		.DOUBLE4 Result =
15592 		{
15593 			x: In1.x + In2.x,
15594 			y: In1.y + In2.y,
15595 			z: In1.z + In2.z,
15596 			w: In1.w + In2.w,
15597 		};
15598 
15599 		return Result;
15600 	}
15601 
15602 	pragma(inline, true)
15603 	pure nothrow @safe @nogc @live
15604 	.FLOAT2 F2Sub(const ref .FLOAT2 In1, const ref .FLOAT2 In2)
15605 	{
15606 		.FLOAT2 Result =
15607 		{
15608 			u: In1.u - In2.u,
15609 			v: In1.v - In2.v,
15610 		};
15611 
15612 		return Result;
15613 	}
15614 
15615 	/**
15616 	 * 4要素ベクトルの減算
15617 	 */
15618 	pragma(inline, true)
15619 	pure nothrow @safe @nogc @live
15620 	.FLOAT4 F4Sub(const ref .FLOAT4 In1, const ref .FLOAT4 In2)
15621 	{
15622 		.FLOAT4 Result =
15623 		{
15624 			x: In1.x - In2.x,
15625 			y: In1.y - In2.y,
15626 			z: In1.z - In2.z,
15627 			w: In1.w - In2.w,
15628 		};
15629 
15630 		return Result;
15631 	}
15632 
15633 	pragma(inline, true)
15634 	pure nothrow @safe @nogc @live
15635 	.DOUBLE4 D4Sub(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2)
15636 	{
15637 		.DOUBLE4 Result =
15638 		{
15639 			x: In1.x - In2.x,
15640 			y: In1.y - In2.y,
15641 			z: In1.z - In2.z,
15642 			w: In1.w - In2.w,
15643 		};
15644 
15645 		return Result;
15646 	}
15647 
15648 	/**
15649 	 * ベクトルの内積
15650 	 */
15651 	pragma(inline, true)
15652 	pure nothrow @safe @nogc @live
15653 	float VDot(const ref .VECTOR In1, const ref .VECTOR In2)
15654 	{
15655 		return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z);
15656 	}
15657 
15658 	pragma(inline, true)
15659 	pure nothrow @safe @nogc @live
15660 	double VDotD(const ref .VECTOR_D In1, const ref .VECTOR_D In2)
15661 	{
15662 		return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z);
15663 	}
15664 
15665 	/**
15666 	 * ベクトルの外積
15667 	 */
15668 	pragma(inline, true)
15669 	pure nothrow @safe @nogc @live
15670 	.VECTOR VCross(const ref .VECTOR In1, const ref .VECTOR In2)
15671 	{
15672 		.VECTOR Result =
15673 		{
15674 			x: (In1.y * In2.z) - (In1.z * In2.y),
15675 			y: (In1.z * In2.x) - (In1.x * In2.z),
15676 			z: (In1.x * In2.y) - (In1.y * In2.x),
15677 		};
15678 
15679 		return Result;
15680 	}
15681 
15682 	pragma(inline, true)
15683 	pure nothrow @safe @nogc @live
15684 	.VECTOR_D VCrossD(const ref .VECTOR_D In1, const ref .VECTOR_D In2)
15685 	{
15686 		.VECTOR_D Result =
15687 		{
15688 			x: (In1.y * In2.z) - (In1.z * In2.y),
15689 			y: (In1.z * In2.x) - (In1.x * In2.z),
15690 			z: (In1.x * In2.y) - (In1.y * In2.x),
15691 		};
15692 
15693 		return Result;
15694 	}
15695 
15696 	/**
15697 	 * ベクトルのスケーリング
15698 	 */
15699 	pragma(inline, true)
15700 	pure nothrow @safe @nogc @live
15701 	.VECTOR VScale(const ref .VECTOR In, float Scale)
15702 	{
15703 		.VECTOR Result =
15704 		{
15705 			x: In.x * Scale,
15706 			y: In.y * Scale,
15707 			z: In.z * Scale,
15708 		};
15709 
15710 		return Result;
15711 	}
15712 
15713 	pragma(inline, true)
15714 	pure nothrow @safe @nogc @live
15715 	.VECTOR_D VScaleD(const ref .VECTOR_D In, double Scale)
15716 	{
15717 		.VECTOR_D Result =
15718 		{
15719 			x: In.x * Scale,
15720 			y: In.y * Scale,
15721 			z: In.z * Scale,
15722 		};
15723 
15724 		return Result;
15725 	}
15726 
15727 	pragma(inline, true)
15728 	pure nothrow @safe @nogc @live
15729 	.FLOAT2 F2Scale(const ref .FLOAT2 In, float Scale)
15730 	{
15731 		.FLOAT2 Result =
15732 		{
15733 			u: In.u * Scale,
15734 			v: In.v * Scale,
15735 		};
15736 
15737 		return Result;
15738 	}
15739 
15740 	/**
15741 	 * 4要素ベクトルのスケーリング
15742 	 */
15743 	pragma(inline, true)
15744 	pure nothrow @safe @nogc @live
15745 	.FLOAT4 F4Scale(const ref .FLOAT4 In, float Scale)
15746 	{
15747 		.FLOAT4 Result =
15748 		{
15749 			x: In.x * Scale,
15750 			y: In.y * Scale,
15751 			z: In.z * Scale,
15752 			w: In.w * Scale,
15753 		};
15754 
15755 		return Result;
15756 	}
15757 
15758 	pragma(inline, true)
15759 	pure nothrow @safe @nogc @live
15760 	.DOUBLE4 D4Scale(const ref .DOUBLE4 In, double Scale)
15761 	{
15762 		.DOUBLE4 Result =
15763 		{
15764 			x: In.x * Scale,
15765 			y: In.y * Scale,
15766 			z: In.z * Scale,
15767 			w: In.w * Scale,
15768 		};
15769 
15770 		return Result;
15771 	}
15772 
15773 	/**
15774 	 * ベクトルの正規化
15775 	 */
15776 	extern .VECTOR VNorm(.VECTOR In);
15777 
15778 	/**
15779 	 * ベクトルの正規化
15780 	 */
15781 	extern .VECTOR_D VNormD(.VECTOR_D In);
15782 
15783 	/**
15784 	 * ベクトルのサイズ
15785 	 */
15786 	extern float VSize(.VECTOR In);
15787 
15788 	/**
15789 	 * ベクトルのサイズ
15790 	 */
15791 	extern double VSizeD(.VECTOR_D In);
15792 
15793 	/**
15794 	 * ベクトルのサイズの2乗
15795 	 */
15796 	pragma(inline, true)
15797 	pure nothrow @safe @nogc @live
15798 	float VSquareSize(const ref .VECTOR In)
15799 	{
15800 		return (In.x * In.x) + (In.y * In.y) + (In.z * In.z);
15801 	}
15802 
15803 	pragma(inline, true)
15804 	pure nothrow @safe @nogc @live
15805 	double VSquareSizeD(const ref .VECTOR_D In)
15806 	{
15807 		return (In.x * In.x) + (In.y * In.y) + (In.z * In.z);
15808 	}
15809 
15810 	/**
15811 	 * 行列を使った座標変換
15812 	 */
15813 	pragma(inline, true)
15814 	pure nothrow @safe @nogc @live
15815 	.VECTOR VTransform(const ref .VECTOR InV, const ref .MATRIX InM)
15816 	{
15817 		.VECTOR Result =
15818 		{
15819 			x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0],
15820 			y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1],
15821 			z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2],
15822 		};
15823 
15824 		return Result;
15825 	}
15826 
15827 	pragma(inline, true)
15828 	pure nothrow @safe @nogc @live
15829 	.VECTOR_D VTransformD(const ref .VECTOR_D InV, const ref .MATRIX_D InM)
15830 	{
15831 		.VECTOR_D Result =
15832 		{
15833 			x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0],
15834 			y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1],
15835 			z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2],
15836 		};
15837 
15838 		return Result;
15839 	}
15840 
15841 	/**
15842 	 * 行列を使った座標変換(スケーリング+回転成分のみ)
15843 	 */
15844 	pragma(inline, true)
15845 	pure nothrow @safe @nogc @live
15846 	.VECTOR VTransformSR(const ref .VECTOR InV, const ref .MATRIX InM)
15847 	{
15848 		.VECTOR Result =
15849 		{
15850 			x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]),
15851 			y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]),
15852 			z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]),
15853 		};
15854 
15855 		return Result;
15856 	}
15857 
15858 	pragma(inline, true)
15859 	pure nothrow @safe @nogc @live
15860 	.VECTOR_D VTransformSRD(const ref .VECTOR_D InV, const ref .MATRIX_D InM)
15861 	{
15862 		.VECTOR_D Result =
15863 		{
15864 			x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]),
15865 			y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]),
15866 			z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]),
15867 		};
15868 
15869 		return Result;
15870 	}
15871 
15872 	/**
15873 	 * 二つのベクトルが成す角のコサイン値を得る
15874 	 */
15875 	extern float VCos(.VECTOR In1, .VECTOR In2);
15876 
15877 	/**
15878 	 * 二つのベクトルが成す角のコサイン値を得る
15879 	 */
15880 	extern double VCosD(.VECTOR_D In1, .VECTOR_D In2);
15881 
15882 	/**
15883 	 * 二つのベクトルが成す角の角度を得る(単位:ラジアン)
15884 	 */
15885 	extern float VRad(.VECTOR In1, .VECTOR In2);
15886 
15887 	/**
15888 	 * 二つのベクトルが成す角の角度を得る(単位:ラジアン)
15889 	 */
15890 	extern double VRadD(.VECTOR_D In1, .VECTOR_D In2);
15891 
15892 	/**
15893 	 * 2つのクォータニオンの乗算の結果を返す
15894 	 */
15895 	pragma(inline, true)
15896 	pure nothrow @safe @nogc @live
15897 	.FLOAT4 QTCross(const ref .FLOAT4 A, const ref .FLOAT4 B)
15898 	{
15899 		.FLOAT4 Result =
15900 		{
15901 			w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)),
15902 			x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)),
15903 			y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)),
15904 			z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)),
15905 		};
15906 
15907 		return Result;
15908 	}
15909 
15910 	pragma(inline, true)
15911 	pure nothrow @safe @nogc @live
15912 	.DOUBLE4 QTCrossD(const ref .DOUBLE4 A, const ref .DOUBLE4 B)
15913 	{
15914 		.DOUBLE4 Result =
15915 		{
15916 			w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)),
15917 			x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)),
15918 			y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)),
15919 			z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)),
15920 		};
15921 
15922 		return Result;
15923 	}
15924 
15925 	/**
15926 	 * 共役クォータニオンを返す
15927 	 */
15928 	pragma(inline, true)
15929 	pure nothrow @safe @nogc @live
15930 	.FLOAT4 QTConj(const ref .FLOAT4 A)
15931 	{
15932 		.FLOAT4 Result =
15933 		{
15934 			w: A.w,
15935 			x: -A.x,
15936 			y: -A.y,
15937 			z: -A.z,
15938 		};
15939 
15940 		return Result;
15941 	}
15942 
15943 	pragma(inline, true)
15944 	pure nothrow @safe @nogc @live
15945 	.DOUBLE4 QTConjD(const ref .DOUBLE4 A)
15946 	{
15947 		.DOUBLE4 Result =
15948 		{
15949 			w: A.w,
15950 			x: -A.x,
15951 			y: -A.y,
15952 			z: -A.z,
15953 		};
15954 
15955 		return Result;
15956 	}
15957 
15958 	/**
15959 	 * 回転を表すクォータニオンを返す
15960 	 */
15961 	extern .FLOAT4 QTRot(.VECTOR Axis, float Angle);
15962 
15963 	/**
15964 	 * 回転を表すクォータニオンを返す
15965 	 */
15966 	extern .DOUBLE4 QTRotD(.VECTOR_D Axis, double Angle);
15967 
15968 	/**
15969 	 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数
15970 	 */
15971 	extern .VECTOR VRotQ(.VECTOR P, .VECTOR Axis, float Angle);
15972 
15973 	/**
15974 	 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数
15975 	 */
15976 	extern .VECTOR_D VRotQD(.VECTOR_D P, .VECTOR_D Axis, double Angle);
15977 
15978 	// DxBaseImage.cpp 関数プロトタイプ宣言
15979 
15980 	// 基本イメージデータのロード+DIB関係
15981 
15982 	/**
15983 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する
15984 	 */
15985 	extern int CreateGraphImageOrDIBGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* DataImage, int DataImageSize, int DataImageType /* LOADIMAGE_TYPE_FILE等 */, int BmpFlag, int ReverseFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData);
15986 
15987 	/**
15988 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する
15989 	 */
15990 	extern int CreateGraphImageOrDIBGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* DataImage, int DataImageSize, int DataImageType /* LOADIMAGE_TYPE_FILE等 */, int BmpFlag, int ReverseFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData);
15991 
15992 	/**
15993 	 * 画像データから構築したストリーム読み込み用データを使用して基本イメージデータを構築する
15994 	 */
15995 	extern int CreateGraphImageType2(.STREAMDATA* Src, .BASEIMAGE* Dest);
15996 
15997 	/**
15998 	 * 24bitカラー形式のビットマップデータからBMPデータを構築する
15999 	 */
16000 	extern int CreateBmpInfo(dxlib_d.DxDataType.BITMAPINFO* BmpInfo, int Width, int Height, int Pitch, const (void)* SrcGrData, void** DestGrData);
16001 
16002 	/**
16003 	 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する
16004 	 */
16005 	extern int GetImageSize_File(const (dxlib_d.DxDataType.TCHAR)* FileName, int* SizeX, int* SizeY);
16006 
16007 	/**
16008 	 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する
16009 	 */
16010 	extern int GetImageSize_FileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY);
16011 
16012 	/**
16013 	 * メモリ上に展開された画像ファイルの横ピクセル数と縦ピクセル数を取得する
16014 	 */
16015 	extern int GetImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY);
16016 
16017 	/**
16018 	 * 基本イメージデータの指定座標のフルカラーコードを取得する
16019 	 */
16020 	extern uint GetGraphImageFullColorCode(const (.BASEIMAGE)* GraphImage, int x, int y);
16021 
16022 	/**
16023 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する
16024 	 */
16025 	extern int CreateGraphImage_plus_Alpha(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* RgbImage, int RgbImageSize, int RgbImageType, const (void)* AlphaImage, int AlphaImageSize, int AlphaImageType, .BASEIMAGE* RgbGraphImage, .BASEIMAGE* AlphaGraphImage, int ReverseFlag);
16026 
16027 	/**
16028 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する
16029 	 */
16030 	extern int CreateGraphImage_plus_AlphaWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* RgbImage, int RgbImageSize, int RgbImageType, const (void)* AlphaImage, int AlphaImageSize, int AlphaImageType, .BASEIMAGE* RgbGraphImage, .BASEIMAGE* AlphaGraphImage, int ReverseFlag);
16031 
16032 	/**
16033 	 * 基本イメージデータを左右反転する
16034 	 */
16035 	extern int ReverseGraphImage(.BASEIMAGE* GraphImage);
16036 
16037 	/**
16038 	 * ユーザー定義の画像データ読み込み関数を登録する
16039 	 */
16040 	version (none)
16041 	extern int AddUserGraphLoadFunction(int function(FILE* fp, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16042 
16043 	/**
16044 	 * ユーザー定義の画像データ読み込み関数を登録する
16045 	 */
16046 	version (none)
16047 	extern int AddUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16048 
16049 	/**
16050 	 * ユーザー定義の画像データ読み込み関数Ver3を登録する
16051 	 */
16052 	version (none)
16053 	extern int AddUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16054 
16055 	/**
16056 	 * ユーザー定義の画像データ読み込み関数Ver4を登録する
16057 	 */
16058 	extern int AddUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc);
16059 
16060 	/**
16061 	 * ユーザー定義の画像データ読み込み関数を登録から抹消する
16062 	 */
16063 	version (none)
16064 	extern int SubUserGraphLoadFunction(int function(FILE* fp, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16065 
16066 	/**
16067 	 * ユーザー定義の画像データ読み込み関数を登録から抹消する
16068 	 */
16069 	version (none)
16070 	extern int SubUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16071 
16072 	/**
16073 	 * ユーザー定義の画像データ読み込み関数Ver3を登録から抹消する
16074 	 */
16075 	version (none)
16076 	extern int SubUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc);
16077 
16078 	/**
16079 	 * ユーザー定義の画像データ読み込み関数Ver4を登録から抹消する
16080 	 */
16081 	extern int SubUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc);
16082 
16083 	/**
16084 	 * 高速読み込みルーチンを使用するかどうかを設定する
16085 	 *
16086 	 * Params:
16087 	 *      Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
16088 	 */
16089 	extern int SetUseFastLoadFlag(int Flag);
16090 
16091 	/**
16092 	 * 画像減色時の画像劣化緩和処理モードを設定する(デフォルトでは緩和処理無しのDX_SHAVEDMODE_NONE)
16093 	 */
16094 	extern int SetGraphDataShavedMode(int ShavedMode /* DX_SHAVEDMODE_NONE等 */);
16095 
16096 	/**
16097 	 * 画像減色時の画像劣化緩和処理モードを取得する
16098 	 */
16099 	extern int GetGraphDataShavedMode();
16100 
16101 	/**
16102 	 * 画像ファイル読み込み時に乗算済みアルファ画像に変換するかどうかを設定する
16103 	 *
16104 	 * Params:
16105 	 *      UseFlag = dxlib_d.DxDataType.TRUE:変換処理を行う  dxlib_d.DxDataType.FALSE:変換処理を行わない(デフォルト)
16106 	 */
16107 	extern int SetUsePremulAlphaConvertLoad(int UseFlag);
16108 
16109 	// 基本イメージデータ構造体関係
16110 
16111 	/**
16112 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
16113 	 */
16114 	extern int CreateBaseImage(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/, .BASEIMAGE* BaseImage, int ReverseFlag);
16115 
16116 	/**
16117 	 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
16118 	 */
16119 	extern int CreateBaseImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/, .BASEIMAGE* BaseImage, int ReverseFlag);
16120 
16121 	/**
16122 	 * CreateBaseImageの旧名称
16123 	 */
16124 	extern int CreateGraphImage(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* DataImage, int DataImageSize, int DataImageType, .BASEIMAGE* GraphImage, int ReverseFlag);
16125 
16126 	/**
16127 	 * 画像ファイルから基本イメージデータを構築する
16128 	 */
16129 	extern int CreateBaseImageToFile(const (dxlib_d.DxDataType.TCHAR)* FileName, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE);
16130 
16131 	/**
16132 	 * 画像ファイルから基本イメージデータを構築する
16133 	 */
16134 	extern int CreateBaseImageToFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE);
16135 
16136 	/**
16137 	 * メモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
16138 	 */
16139 	extern int CreateBaseImageToMem(const (void)* FileImage, int FileImageSize, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE);
16140 
16141 	/**
16142 	 * ARGB各チャンネル32bit浮動小数点型カラーの基本イメージデータを作成する
16143 	 */
16144 	extern int CreateARGBF32ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16145 
16146 	/**
16147 	 * ARGB各チャンネル16bit浮動小数点型カラーの基本イメージデータを作成する
16148 	 */
16149 	extern int CreateARGBF16ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16150 
16151 	/**
16152 	 * ARGB8カラーの基本イメージデータを作成する
16153 	 */
16154 	extern int CreateARGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16155 
16156 	/**
16157 	 * XRGB8カラーの基本イメージデータを作成する
16158 	 */
16159 	extern int CreateXRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16160 
16161 	/**
16162 	 * RGB8カラーの基本イメージデータを作成する
16163 	 */
16164 	extern int CreateRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16165 
16166 	/**
16167 	 * ARGB4カラーの基本イメージデータを作成する
16168 	 */
16169 	extern int CreateARGB4ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16170 
16171 	/**
16172 	 * A1R5G5B5カラーの基本イメージデータを作成する
16173 	 */
16174 	extern int CreateA1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16175 
16176 	/**
16177 	 * X1R5G5B5カラーの基本イメージデータを作成する
16178 	 */
16179 	extern int CreateX1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16180 
16181 	/**
16182 	 * R5G5B5A1カラーの基本イメージデータを作成する
16183 	 */
16184 	extern int CreateR5G5B5A1ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16185 
16186 	/**
16187 	 * R5G6B5カラーの基本イメージデータを作成する
16188 	 */
16189 	extern int CreateR5G6B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage);
16190 
16191 	/**
16192 	 * パレット8ビットカラーの基本イメージデータを作成する
16193 	 */
16194 	extern int CreatePAL8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage, int UseAlpha = dxlib_d.DxDataType.FALSE);
16195 
16196 	/**
16197 	 * 指定のカラーフォーマットの基本イメージデータを作成する
16198 	 */
16199 	extern int CreateColorDataBaseImage(int SizeX, int SizeY, const (.COLORDATA)* ColorData, .BASEIMAGE* BaseImage);
16200 
16201 	/**
16202 	 * 基本イメージデータのイメージサイズを取得する
16203 	 *
16204 	 * Returns: イメージサイズ(単位:byte)
16205 	 */
16206 	extern int GetBaseImageGraphDataSize(const (.BASEIMAGE)* BaseImage);
16207 
16208 	/**
16209 	 * 基本イメージデータの指定の部分だけを使う基本イメージデータの情報を作成する(BaseImageにはフォーマットがDX_BASEIMAGE_FORMAT_NORMALでミップマップを使用していない画像のみ使用可能)
16210 	 */
16211 	extern int DerivationBaseImage(const (.BASEIMAGE)* BaseImage, int x1, int y1, int x2, int y2, .BASEIMAGE* NewBaseImage);
16212 
16213 	/**
16214 	 * 基本イメージデータの後始末を行う
16215 	 */
16216 	extern int ReleaseBaseImage(.BASEIMAGE* BaseImage);
16217 
16218 	/**
16219 	 * ReleaseBaseImageの旧名称
16220 	 */
16221 	extern int ReleaseGraphImage(.BASEIMAGE* GraphImage);
16222 
16223 	/**
16224 	 * DX_BASEIMAGE_FORMAT_NORMAL以外の形式のイメージをDX_BASEIMAGE_FORMAT_NORMAL形式のイメージに変換する
16225 	 */
16226 	extern int ConvertNormalFormatBaseImage(.BASEIMAGE* BaseImage, int ReleaseOrigGraphData = dxlib_d.DxDataType.TRUE);
16227 
16228 	/**
16229 	 * 通常のαチャンネル付き画像を乗算済みαチャンネル付き画像に変換する(ピクセルフォーマットがARGB8以外の場合はARGB8に変換されます)
16230 	 */
16231 	extern int ConvertPremulAlphaBaseImage(.BASEIMAGE* BaseImage);
16232 
16233 	/**
16234 	 * 乗算済みαチャンネル付き画像を通常のαチャンネル付き画像に変換する(ピクセルフォーマットがARGB8以外の場合はARGB8に変換されます)
16235 	 */
16236 	extern int ConvertInterpAlphaBaseImage(.BASEIMAGE* BaseImage);
16237 
16238 	/**
16239 	 * 描画対象の画面から指定領域を基本イメージデータに転送する
16240 	 */
16241 	extern int GetDrawScreenBaseImage(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage);
16242 
16243 	/**
16244 	 * 描画対象の画面から指定領域を基本イメージデータに転送する(転送先座標指定版)
16245 	 */
16246 	extern int GetDrawScreenBaseImageDestPos(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage, int DestX, int DestY);
16247 
16248 	/**
16249 	 * 基本イメージデータを指定の色で塗りつぶす
16250 	 */
16251 	extern int FillBaseImage(.BASEIMAGE* BaseImage, int r, int g, int b, int a);
16252 
16253 	/**
16254 	 * 基本イメージデータの指定の領域を指定の色で塗りつぶす
16255 	 */
16256 	extern int FillRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h, int r, int g, int b, int a);
16257 
16258 	/**
16259 	 * 基本イメージデータの指定の領域を0クリアする
16260 	 */
16261 	extern int ClearRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h);
16262 
16263 	/**
16264 	 * 基本イメージデータのパレットを取得する
16265 	 */
16266 	extern int GetPaletteBaseImage(const (.BASEIMAGE)* BaseImage, int PaletteNo, int* r, int* g, int* b, int* a);
16267 
16268 	/**
16269 	 * 基本イメージデータのパレットをセットする
16270 	 */
16271 	extern int SetPaletteBaseImage(.BASEIMAGE* BaseImage, int PaletteNo, int r, int g, int b, int a);
16272 
16273 	/**
16274 	 * 基本イメージデータの指定の座標の色コードを変更する(パレット画像用)
16275 	 */
16276 	extern int SetPixelPalCodeBaseImage(.BASEIMAGE* BaseImage, int x, int y, int palNo);
16277 
16278 	/**
16279 	 * 基本イメージデータの指定の座標の色コードを取得する(パレット画像用)
16280 	 */
16281 	extern int GetPixelPalCodeBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y);
16282 
16283 	/**
16284 	 * 基本イメージデータの指定の座標の色を変更する(各色要素は0~255)
16285 	 */
16286 	extern int SetPixelBaseImage(.BASEIMAGE* BaseImage, int x, int y, int r, int g, int b, int a);
16287 
16288 	/**
16289 	 * 基本イメージデータの指定の座標の色を変更する(各色要素は浮動小数点数)
16290 	 */
16291 	extern int SetPixelBaseImageF(.BASEIMAGE* BaseImage, int x, int y, float r, float g, float b, float a);
16292 
16293 	/**
16294 	 * 基本イメージデータの指定の座標の色を取得する(各色要素は0~255)
16295 	 */
16296 	extern int GetPixelBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int* r, int* g, int* b, int* a);
16297 
16298 	/**
16299 	 * 基本イメージデータの指定の座標の色を取得する(各色要素は浮動小数点数)
16300 	 */
16301 	extern int GetPixelBaseImageF(const (.BASEIMAGE)* BaseImage, int x, int y, float* r, float* g, float* b, float* a);
16302 
16303 	/**
16304 	 * 基本イメージデータの指定の座標に線を描画する(各色要素は0~255)
16305 	 */
16306 	extern int DrawLineBaseImage(.BASEIMAGE* BaseImage, int x1, int y1, int x2, int y2, int r, int g, int b, int a);
16307 
16308 	/**
16309 	 * 基本イメージデータの指定の座標に円を描画する(各色要素は0~255)
16310 	 */
16311 	extern int DrawCircleBaseImage(.BASEIMAGE* BaseImage, int x, int y, int radius, int r, int g, int b, int a, int FillFlag = dxlib_d.DxDataType.TRUE);
16312 
16313 	/**
16314 	 * 基本イメージデータを別の基本イメージデータに転送する
16315 	 */
16316 	extern int BltBaseImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage);
16317 
16318 	/**
16319 	 * 基本イメージデータを別の基本イメージデータに転送する
16320 	 */
16321 	extern int BltBaseImage(int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage);
16322 
16323 	/**
16324 	 * 基本イメージデータを別の基本イメージデータに透過色処理付きで転送する
16325 	 */
16326 	extern int BltBaseImageWithTransColor(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage, int Tr, int Tg, int Tb, int Ta);
16327 
16328 	/**
16329 	 * 基本イメージデータを別の基本イメージデータにアルファ値のブレンドを考慮した上で転送する(出力先がARGB8形式以外の場合はエラーになります)
16330 	 *
16331 	 * Params:
16332 	 *      SrcX = ?
16333 	 *      SrcY = ?
16334 	 *      SrcSizeX = ?
16335 	 *      SrcSizeY = ?
16336 	 *      DestX = ?
16337 	 *      DestY = ?
16338 	 *      SrcBaseImage = ?
16339 	 *      DestBaseImage = ?
16340 	 *      Opacity = 透明度:0(完全透明)~255(完全不透明)
16341 	 */
16342 	extern int BltBaseImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage, int Opacity = 255);
16343 
16344 	/**
16345 	 * 基本イメージデータを左右反転する
16346 	 */
16347 	extern int ReverseBaseImageH(.BASEIMAGE* BaseImage);
16348 
16349 	/**
16350 	 * 基本イメージデータを上下反転する
16351 	 */
16352 	extern int ReverseBaseImageV(.BASEIMAGE* BaseImage);
16353 
16354 	/**
16355 	 * 基本イメージデータを上下左右反転する
16356 	 */
16357 	extern int ReverseBaseImage(.BASEIMAGE* BaseImage);
16358 
16359 	/**
16360 	 * 基本イメージデータに含まれるピクセルのアルファ値をチェックする
16361 	 *
16362 	 * Returns: -1:エラー  0:画像にアルファ成分が無い  1:画像にアルファ成分があり、すべて最大(255)値  2:画像にアルファ成分があり、存在するアルファ値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にアルファ成分があり、最小と最大以外の中間の値がある
16363 	 */
16364 	extern int CheckPixelAlphaBaseImage(const (.BASEIMAGE)* BaseImage);
16365 
16366 	/**
16367 	 * 基本イメージデータで使用されているパレット番号の最大値を取得する(パレット画像では無い場合は-1が返る)
16368 	 */
16369 	extern int GetBaseImageUseMaxPaletteNo(const (.BASEIMAGE)* BaseImage);
16370 
16371 	version (DX_NON_JPEGREAD) {
16372 	} else {
16373 		/**
16374 		 * JPEGファイルのExif情報を取得する、ExifBufferをnullに渡すと、戻り値の情報のサイズのみ取得できます
16375 		 *
16376 		 * Returns: -1:エラー  -1以外:Exif情報のサイズ
16377 		 */
16378 		extern int ReadJpegExif(const (dxlib_d.DxDataType.TCHAR)* JpegFilePath, dxlib_d.DxDataType.BYTE* ExifBuffer_Array, size_t ExifBufferSize);
16379 
16380 		/**
16381 		 * JPEGファイルのExif情報を取得する、ExifBufferをnullに渡すと、戻り値の情報のサイズのみ取得できます
16382 		 *
16383 		 * Returns: 戻り値  -1:エラー  -1以外:Exif情報のサイズ
16384 		 */
16385 		extern int ReadJpegExifWithStrLen(const (dxlib_d.DxDataType.TCHAR)* JpegFilePath, size_t JpegFilePathLength, dxlib_d.DxDataType.BYTE* ExifBuffer_Array, size_t ExifBufferSize);
16386 	}
16387 
16388 	version (DX_NON_SAVEFUNCTION) {
16389 	} else {
16390 		/**
16391 		 * 基本イメージデータをBMP画像として保存する
16392 		 */
16393 		extern int SaveBaseImageToBmp(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage);
16394 
16395 		/**
16396 		 * 基本イメージデータをBMP画像として保存する
16397 		 */
16398 		extern int SaveBaseImageToBmpWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage);
16399 
16400 		/**
16401 		 * 基本イメージデータをDDS画像として保存する
16402 		 */
16403 		extern int SaveBaseImageToDds(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage);
16404 
16405 		/**
16406 		 * 基本イメージデータをDDS画像として保存する
16407 		 */
16408 		extern int SaveBaseImageToDdsWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage);
16409 
16410 		version (DX_NON_PNGREAD) {
16411 		} else {
16412 			/**
16413 			 * 基本イメージデータをPNG画像として保存する
16414 			 */
16415 			extern int SaveBaseImageToPng(const (dxlib_d.DxDataType.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int CompressionLevel);
16416 
16417 			/**
16418 			 * 基本イメージデータをPNG画像として保存する
16419 			 */
16420 			extern int SaveBaseImageToPngWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int CompressionLevel);
16421 		}
16422 
16423 		version (DX_NON_JPEGREAD) {
16424 		} else {
16425 			/**
16426 			 * 基本イメージデータをJPEG画像として保存する
16427 			 */
16428 			extern int SaveBaseImageToJpeg(const (dxlib_d.DxDataType.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int Quality, int Sample2x1);
16429 
16430 			/**
16431 			 * 基本イメージデータをJPEG画像として保存する
16432 			 */
16433 			extern int SaveBaseImageToJpegWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int Quality, int Sample2x1);
16434 		}
16435 	}
16436 
16437 	// 基本イメージ描画
16438 
16439 	/**
16440 	 * 基本イメージデータを描画する
16441 	 */
16442 	extern int DrawBaseImage(int x, int y, .BASEIMAGE* BaseImage);
16443 
16444 	/**
16445 	 * カラーマッチングしながらイメージデータ間転送を行う Ver2
16446 	 */
16447 	extern int GraphColorMatchBltVer2(void* DestGraphData, int DestPitch, const (.COLORDATA)* DestColorData, const (void)* SrcGraphData, int SrcPitch, const (.COLORDATA)* SrcColorData, const (void)* AlphaMask, int AlphaPitch, const (.COLORDATA)* AlphaColorData, dxlib_d.DxDataType.POINT DestPoint, const (dxlib_d.DxDataType.RECT)* SrcRect, int ReverseFlag, int TransColorAlphaTestFlag, uint TransColor, int ImageShavedMode, int AlphaOnlyFlag = dxlib_d.DxDataType.FALSE, int RedIsAlphaFlag = dxlib_d.DxDataType.FALSE, int TransColorNoMoveFlag = dxlib_d.DxDataType.FALSE, int Pal8ColorMatch = dxlib_d.DxDataType.FALSE);
16448 
16449 	// 色情報取得関係
16450 
16451 	/**
16452 	 * 浮動小数点型のカラー値を作成する
16453 	 */
16454 	extern .COLOR_F GetColorF(float Red, float Green, float Blue, float Alpha);
16455 
16456 	/**
16457 	 * 符号なし整数8ビットのカラー値を作成する
16458 	 */
16459 	extern .COLOR_U8 GetColorU8(int Red, int Green, int Blue, int Alpha);
16460 
16461 	/**
16462 	 * DrawPixel等の描画関数で使用するカラー値を取得する
16463 	 */
16464 	extern uint GetColor(int Red, int Green, int Blue);
16465 
16466 	/**
16467 	 * カラー値から赤、緑、青の値を取得する
16468 	 */
16469 	extern int GetColor2(uint Color, int* Red, int* Green, int* Blue);
16470 
16471 	/**
16472 	 * 指定のピクセルフォーマットに対応したカラー値を得る
16473 	 */
16474 	extern uint GetColor3(const (.COLORDATA)* ColorData, int Red, int Green, int Blue, int Alpha = 255);
16475 
16476 	/**
16477 	 * 指定のカラーフォーマットのカラー値を別のカラーフォーマットのカラー値に変換する
16478 	 */
16479 	extern uint GetColor4(const (.COLORDATA)* DestColorData, const (.COLORDATA)* SrcColorData, uint SrcColor);
16480 
16481 	/**
16482 	 * 指定のカラーフォーマットのカラー値を赤、緑、青、アルファの値を取得する
16483 	 */
16484 	extern int GetColor5(const (.COLORDATA)* ColorData, uint Color, int* Red, int* Green, int* Blue, int* Alpha = null);
16485 
16486 	/**
16487 	 * パレットカラーのカラーフォーマットを構築する
16488 	 */
16489 	extern int CreatePaletteColorData(.COLORDATA* ColorDataBuf);
16490 
16491 	/**
16492 	 * ARGB各チャンネル32bit浮動小数点型カラーのカラーフォーマットを構築する
16493 	 */
16494 	extern int CreateARGBF32ColorData(.COLORDATA* ColorDataBuf);
16495 
16496 	/**
16497 	 * ARGB各チャンネル16bit浮動小数点型カラーのカラーフォーマットを構築する
16498 	 */
16499 	extern int CreateARGBF16ColorData(.COLORDATA* ColorDataBuf);
16500 
16501 	/**
16502 	 * XRGB8カラーのカラーフォーマットを構築する
16503 	 */
16504 	extern int CreateXRGB8ColorData(.COLORDATA* ColorDataBuf);
16505 
16506 	/**
16507 	 * ARGB8カラーのカラーフォーマットを構築する
16508 	 */
16509 	extern int CreateARGB8ColorData(.COLORDATA* ColorDataBuf);
16510 
16511 	/**
16512 	 * ARGB4カラーのカラーフォーマットを構築する
16513 	 */
16514 	extern int CreateARGB4ColorData(.COLORDATA* ColorDataBuf);
16515 
16516 	/**
16517 	 * A1R5G5B5カラーのカラーフォーマットを構築する
16518 	 */
16519 	extern int CreateA1R5G5B5ColorData(.COLORDATA* ColorDataBuf);
16520 
16521 	/**
16522 	 * X1R5G5B5カラーのカラーフォーマットを構築する
16523 	 */
16524 	extern int CreateX1R5G5B5ColorData(.COLORDATA* ColorDataBuf);
16525 
16526 	/**
16527 	 * R5G5B5A1カラーのカラーフォーマットを構築する
16528 	 */
16529 	extern int CreateR5G5B5A1ColorData(.COLORDATA* ColorDataBuf);
16530 
16531 	/**
16532 	 * R5G6B5カラーのカラーフォーマットを構築する
16533 	 */
16534 	extern int CreateR5G6B5ColorData(.COLORDATA* ColorDataBuf);
16535 
16536 	/**
16537 	 * 24ビットカラーのカラーフォーマットを構築する
16538 	 */
16539 	extern int CreateFullColorData(.COLORDATA* ColorDataBuf);
16540 
16541 	/**
16542 	 * グレースケールのカラーフォーマットを構築する
16543 	 */
16544 	extern int CreateGrayColorData(.COLORDATA* ColorDataBuf);
16545 
16546 	/**
16547 	 * パレット256色のカラーフォーマットを構築する
16548 	 */
16549 	extern int CreatePal8ColorData(.COLORDATA* ColorDataBuf, int UseAlpha = dxlib_d.DxDataType.FALSE);
16550 
16551 	/**
16552 	 * カラーフォーマットを作成する
16553 	 */
16554 	extern int CreateColorData(.COLORDATA* ColorDataBuf, int ColorBitDepth, dxlib_d.DxDataType.DWORD RedMask, dxlib_d.DxDataType.DWORD GreenMask, dxlib_d.DxDataType.DWORD BlueMask, dxlib_d.DxDataType.DWORD AlphaMask, int ChannelNum = 0, int ChannelBitDepth = 0, int FloatTypeFlag = dxlib_d.DxDataType.FALSE);
16555 
16556 	/**
16557 	 * NoneMask以外の要素を埋めたCOLORDATA構造体の情報を元にNoneMaskをセットする
16558 	 */
16559 	extern void SetColorDataNoneMask(.COLORDATA* ColorData);
16560 
16561 	/**
16562 	 * 二つのカラーフォーマットが等しいかどうか調べる
16563 	 *
16564 	 * Returns: dxlib_d.DxDataType.TRUE:等しい  dxlib_d.DxDataType.FALSE:等しくない
16565 	 */
16566 	extern int CmpColorData(const (.COLORDATA)* ColorData1, const (.COLORDATA)* ColorData2);
16567 
16568 	// DxSoftImage.cpp関数プロトタイプ宣言
16569 	version (DX_NON_SOFTIMAGE) {
16570 	} else {
16571 		/**
16572 		 * ソフトウエアイメージハンドルを全て削除する
16573 		 */
16574 		extern int InitSoftImage();
16575 
16576 		/**
16577 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する
16578 		 *
16579 		 * Returns: -1:エラー  -1以外:イメージハンドル
16580 		 */
16581 		extern int LoadSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName);
16582 
16583 		/**
16584 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する
16585 		 *
16586 		 * Returns: -1:エラー  -1以外:イメージハンドル
16587 		 */
16588 		extern int LoadSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
16589 
16590 		/**
16591 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換)
16592 		 *
16593 		 * Returns: -1:エラー  -1以外:イメージハンドル
16594 		 */
16595 		extern int LoadARGB8ColorSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName);
16596 
16597 		/**
16598 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換)
16599 		 *
16600 		 * Returns: -1:エラー  -1以外:イメージハンドル
16601 		 */
16602 		extern int LoadARGB8ColorSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
16603 
16604 		/**
16605 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換)
16606 		 *
16607 		 * Returns: -1:エラー  -1以外:イメージハンドル
16608 		 */
16609 		extern int LoadXRGB8ColorSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName);
16610 
16611 		/**
16612 		 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換)
16613 		 *
16614 		 * Returns: -1:エラー  -1以外:イメージハンドル
16615 		 */
16616 		extern int LoadXRGB8ColorSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
16617 
16618 		/**
16619 		 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する
16620 		 *
16621 		 * Returns: -1:エラー  -1以外:イメージハンドル
16622 		 */
16623 		extern int LoadSoftImageToMem(const (void)* FileImage, int FileImageSize);
16624 
16625 		/**
16626 		 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換)
16627 		 *
16628 		 * Returns: -1:エラー  -1以外:イメージハンドル
16629 		 */
16630 		extern int LoadARGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize);
16631 
16632 		/**
16633 		 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換)
16634 		 *
16635 		 * Returns: -1:エラー  -1以外:イメージハンドル
16636 		 */
16637 		extern int LoadXRGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize);
16638 
16639 		/**
16640 		 * ソフトウエアイメージハンドルの作成
16641 		 *
16642 		 * Returns: -1:エラー  -1以外:イメージハンドル
16643 		 */
16644 		extern int MakeSoftImage(int SizeX, int SizeY);
16645 
16646 		/**
16647 		 * ソフトウエアイメージハンドルの作成(RGBA各チャンネル32bit浮動小数点型カラー)
16648 		 */
16649 		extern int MakeARGBF32ColorSoftImage(int SizeX, int SizeY);
16650 
16651 		/**
16652 		 * ソフトウエアイメージハンドルの作成(RGBA各チャンネル16bit浮動小数点型カラー)
16653 		 */
16654 		extern int MakeARGBF16ColorSoftImage(int SizeX, int SizeY);
16655 
16656 		/**
16657 		 * ソフトウエアイメージハンドルの作成(RGBA8カラー)
16658 		 */
16659 		extern int MakeARGB8ColorSoftImage(int SizeX, int SizeY);
16660 
16661 		/**
16662 		 * ソフトウエアイメージハンドルの作成(XRGB8カラー)
16663 		 */
16664 		extern int MakeXRGB8ColorSoftImage(int SizeX, int SizeY);
16665 
16666 		/**
16667 		 * ソフトウエアイメージハンドルの作成(ARGB4カラー)
16668 		 */
16669 		extern int MakeARGB4ColorSoftImage(int SizeX, int SizeY);
16670 
16671 		/**
16672 		 * ソフトウエアイメージハンドルの作成(A1R5G5B5カラー)
16673 		 */
16674 		extern int MakeA1R5G5B5ColorSoftImage(int SizeX, int SizeY);
16675 
16676 		/**
16677 		 * ソフトウエアイメージハンドルの作成(X1R5G5B5カラー)
16678 		 */
16679 		extern int MakeX1R5G5B5ColorSoftImage(int SizeX, int SizeY);
16680 
16681 		/**
16682 		 * ソフトウエアイメージハンドルの作成(R5G5B5A1カラー)
16683 		 */
16684 		extern int MakeR5G5B5A1ColorSoftImage(int SizeX, int SizeY);
16685 
16686 		/**
16687 		 * ソフトウエアイメージハンドルの作成(R5G6B5カラー)
16688 		 */
16689 		extern int MakeR5G6B5ColorSoftImage(int SizeX, int SizeY);
16690 
16691 		/**
16692 		 * ソフトウエアイメージハンドルの作成(RGB8カラー)
16693 		 */
16694 		extern int MakeRGB8ColorSoftImage(int SizeX, int SizeY);
16695 
16696 		/**
16697 		 * ソフトウエアイメージハンドルの作成(パレット256色カラー)
16698 		 */
16699 		extern int MakePAL8ColorSoftImage(int SizeX, int SizeY, int UseAlpha = dxlib_d.DxDataType.FALSE);
16700 
16701 		/**
16702 		 * ソフトウエアイメージハンドルの削除する
16703 		 */
16704 		extern int DeleteSoftImage(int SIHandle);
16705 
16706 		/**
16707 		 * ソフトウエアイメージハンドルのサイズを取得する
16708 		 */
16709 		extern int GetSoftImageSize(int SIHandle, int* Width, int* Height);
16710 
16711 		/**
16712 		 * ソフトウエアイメージハンドルがパレット画像かどうかを取得する
16713 		 *
16714 		 * Returns: dxlib_d.DxDataType.TRUE:パレット画像  dxlib_d.DxDataType.FALSE:パレット画像じゃない
16715 		 */
16716 		extern int CheckPaletteSoftImage(int SIHandle);
16717 
16718 		/**
16719 		 * ソフトウエアイメージハンドルのフォーマットにα要素があるかどうかを取得する
16720 		 *
16721 		 * Returns: dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない
16722 		 */
16723 		extern int CheckAlphaSoftImage(int SIHandle);
16724 
16725 		/**
16726 		 * ソフトウエアイメージハンドルに含まれるピクセルのα値をチェックする
16727 		 *
16728 		 * Returns: -1:エラー  0:画像にα成分が無い  1:画像にα成分があり、すべて最大(255)値  2:画像にα成分があり、存在するα値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にα成分があり、最小と最大以外の中間の値がある
16729 		 */
16730 		extern int CheckPixelAlphaSoftImage(int SIHandle);
16731 
16732 		/**
16733 		 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する
16734 		 */
16735 		extern int GetDrawScreenSoftImage(int x1, int y1, int x2, int y2, int SIHandle);
16736 
16737 		/**
16738 		 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する(転送先座標指定版)
16739 		 */
16740 		extern int GetDrawScreenSoftImageDestPos(int x1, int y1, int x2, int y2, int SIHandle, int DestX, int DestY);
16741 
16742 		/**
16743 		 * ソフトウエアイメージハンドルを指定色で塗りつぶす(各色要素は0~255)
16744 		 */
16745 		extern int FillSoftImage(int SIHandle, int r, int g, int b, int a);
16746 
16747 		/**
16748 		 * ソフトウエアイメージハンドルの指定の領域を0クリアする
16749 		 */
16750 		extern int ClearRectSoftImage(int SIHandle, int x, int y, int w, int h);
16751 
16752 		/**
16753 		 * ソフトウエアイメージハンドルのパレットを取得する(各色要素は0~255)
16754 		 */
16755 		extern int GetPaletteSoftImage(int SIHandle, int PaletteNo, int* r, int* g, int* b, int* a);
16756 
16757 		/**
16758 		 * ソフトウエアイメージハンドルのパレットを設定する(各色要素は0~255)
16759 		 */
16760 		extern int SetPaletteSoftImage(int SIHandle, int PaletteNo, int r, int g, int b, int a);
16761 
16762 		/**
16763 		 * ソフトウエアイメージハンドルの指定座標にドットを描画する(パレット画像用、有効値は0~255)
16764 		 */
16765 		extern int DrawPixelPalCodeSoftImage(int SIHandle, int x, int y, int palNo);
16766 
16767 		/**
16768 		 * ソフトウエアイメージハンドルの指定座標の色コードを取得する(パレット画像用)
16769 		 *
16770 		 * Returns: 0~255
16771 		 */
16772 		extern int GetPixelPalCodeSoftImage(int SIHandle, int x, int y);
16773 
16774 		/**
16775 		 * ソフトウエアイメージハンドルの画像が格納されているメモリ領域の先頭アドレスを取得する
16776 		 */
16777 		extern void* GetImageAddressSoftImage(int SIHandle);
16778 
16779 		/**
16780 		 * ソフトウエアイメージハンドルのメモリに格納されている画像データの1ライン辺りのバイト数を取得する
16781 		 */
16782 		extern int GetPitchSoftImage(int SIHandle);
16783 
16784 		/**
16785 		 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)
16786 		 */
16787 		extern int DrawPixelSoftImage(int SIHandle, int x, int y, int r, int g, int b, int a);
16788 
16789 		/**
16790 		 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は浮動小数点数)
16791 		 */
16792 		extern int DrawPixelSoftImageF(int SIHandle, int x, int y, float r, float g, float b, float a);
16793 
16794 		/**
16795 		 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やARGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
16796 		 */
16797 		extern void DrawPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int r, int g, int b);
16798 
16799 		/**
16800 		 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やXRGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
16801 		 */
16802 		extern void DrawPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int r, int g, int b, int a);
16803 
16804 		/**
16805 		 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)
16806 		 */
16807 		extern int GetPixelSoftImage(int SIHandle, int x, int y, int* r, int* g, int* b, int* a);
16808 
16809 		/**
16810 		 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は浮動小数点数)
16811 		 */
16812 		extern int GetPixelSoftImageF(int SIHandle, int x, int y, float* r, float* g, float* b, float* a);
16813 
16814 		/**
16815 		 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やXRGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
16816 		 */
16817 		extern void GetPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int* r, int* g, int* b);
16818 
16819 		/**
16820 		 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やARGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
16821 		 */
16822 		extern void GetPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int* r, int* g, int* b, int* a);
16823 
16824 		/**
16825 		 * ソフトウエアイメージハンドルの指定座標に線を描画する(各色要素は0~255)
16826 		 */
16827 		extern int DrawLineSoftImage(int SIHandle, int x1, int y1, int x2, int y2, int r, int g, int b, int a);
16828 
16829 		/**
16830 		 * ソフトウエアイメージハンドルの指定座標に円を描画する(各色要素は0~255)
16831 		 */
16832 		extern int DrawCircleSoftImage(int SIHandle, int x, int y, int radius, int r, int g, int b, int a, int FillFlag = dxlib_d.DxDataType.TRUE);
16833 
16834 		/**
16835 		 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに転送する
16836 		 */
16837 		extern int BltSoftImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle);
16838 
16839 		/**
16840 		 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに透過色処理付きで転送する
16841 		 */
16842 		extern int BltSoftImageWithTransColor(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Tr, int Tg, int Tb, int Ta);
16843 
16844 		/**
16845 		 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルにアルファ値のブレンドを考慮した上で転送する(Opacityは透明度:0(完全透明)~255(完全不透明))(出力先がARGB8形式以外の場合はエラーになります)
16846 		 */
16847 		extern int BltSoftImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Opacity = 255);
16848 
16849 		/**
16850 		 * ソフトウエアイメージハンドルを左右反転する
16851 		 */
16852 		extern int ReverseSoftImageH(int SIHandle);
16853 
16854 		/**
16855 		 * ソフトウエアイメージハンドルを上下反転する
16856 		 */
16857 		extern int ReverseSoftImageV(int SIHandle);
16858 
16859 		/**
16860 		 * ソフトウエアイメージハンドルを上下左右反転する
16861 		 */
16862 		extern int ReverseSoftImage(int SIHandle);
16863 
16864 		version (DX_NON_FONT) {
16865 		} else {
16866 			/**
16867 			 * ソフトウエアイメージハンドルに文字列を描画する(デフォルトフォントハンドルを使用する)
16868 			 */
16869 			extern int BltStringSoftImage(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, int DestSIHandle, int DestEdgeSIHandle = -1, int VerticalFlag = dxlib_d.DxDataType.FALSE);
16870 
16871 			/**
16872 			 * ソフトウエアイメージハンドルに文字列を描画する(デフォルトフォントハンドルを使用する)
16873 			 */
16874 			extern int BltStringSoftImageWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, int DestSIHandle, int DestEdgeSIHandle = -1, int VerticalFlag = dxlib_d.DxDataType.FALSE);
16875 
16876 			/**
16877 			 * ソフトウエアイメージハンドルに文字列を描画する(フォントハンドル使用版)
16878 			 */
16879 			extern int BltStringSoftImageToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は-1 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
16880 
16881 			/**
16882 			 * ソフトウエアイメージハンドルに文字列を描画する(フォントハンドル使用版)
16883 			 */
16884 			extern int BltStringSoftImageToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は-1 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE);
16885 		}
16886 
16887 		/**
16888 		 * ソフトウエアイメージハンドルを画面に描画する
16889 		 */
16890 		extern int DrawSoftImage(int x, int y, int SIHandle);
16891 
16892 		version (DX_NON_SAVEFUNCTION) {
16893 		} else {
16894 			/**
16895 			 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する
16896 			 */
16897 			extern int SaveSoftImageToBmp(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle);
16898 
16899 			/**
16900 			 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する
16901 			 */
16902 			extern int SaveSoftImageToBmpWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle);
16903 
16904 			/**
16905 			 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する
16906 			 */
16907 			extern int SaveSoftImageToDds(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle);
16908 
16909 			/**
16910 			 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する
16911 			 */
16912 			extern int SaveSoftImageToDdsWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle);
16913 
16914 			version (DX_NON_PNGREAD) {
16915 			} else {
16916 				/**
16917 				 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する
16918 				 *
16919 				 * Params:
16920 				 *      FilePath = ?
16921 				 *      SIHandle = ?
16922 				 *      CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
16923 				 */
16924 				extern int SaveSoftImageToPng(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle, int CompressionLevel);
16925 
16926 				/**
16927 				 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する
16928 				 *
16929 				 * Params:
16930 				 *      ? = ?
16931 				 *      ? = ?
16932 				 *      ? = ?
16933 				 *      CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
16934 				 */
16935 				extern int SaveSoftImageToPngWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int CompressionLevel);
16936 			}
16937 
16938 			version (DX_NON_JPEGREAD) {
16939 			} else {
16940 				/**
16941 				 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
16942 				 */
16943 				extern int SaveSoftImageToJpeg(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle, int Quality, int Sample2x1);
16944 
16945 				/**
16946 				 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
16947 				 */
16948 				extern int SaveSoftImageToJpegWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int Quality, int Sample2x1);
16949 			}
16950 		}
16951 	}
16952 
16953 	version (DX_NON_SOUND) {
16954 	} else {
16955 		// DxSound.cpp関数プロトタイプ宣言
16956 
16957 		// サウンドデータ管理系関数
16958 
16959 		/**
16960 		 * 全てのサウンドハンドルを削除する
16961 		 */
16962 		extern int InitSoundMem(int LogOutFlag = dxlib_d.DxDataType.FALSE);
16963 
16964 		/**
16965 		 * サウンドハンドルを作成する
16966 		 */
16967 		extern int AddSoundData(int Handle = -1);
16968 
16969 		/**
16970 		 * ストリーム再生タイプのサウンドハンドルにストリームデータを再生対象に追加する
16971 		 */
16972 		extern int AddStreamSoundMem(.STREAMDATA* Stream, int LoopNum, int SoundHandle, int StreamDataType, int* CanStreamCloseFlag, int UnionHandle = -1);
16973 
16974 		/**
16975 		 * ストリーム再生タイプのサウンドハンドルにメモリ上に展開したサウンドファイルイメージを再生対象に追加する
16976 		 */
16977 		extern int AddStreamSoundMemToMem(const (void)* FileImage, size_t FileImageSize, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1);
16978 
16979 		/**
16980 		 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する
16981 		 */
16982 		extern int AddStreamSoundMemToFile(const (dxlib_d.DxDataType.TCHAR)* WaveFile, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1);
16983 
16984 		/**
16985 		 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する
16986 		 */
16987 		extern int AddStreamSoundMemToFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* WaveFile, size_t WaveFilePathLength, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1);
16988 
16989 		/**
16990 		 * ストリーム再生タイプのサウンドハンドルの再生準備をする
16991 		 */
16992 		extern int SetupStreamSoundMem(int SoundHandle);
16993 
16994 		/**
16995 		 * ストリーム再生タイプのサウンドハンドルの再生を開始する
16996 		 */
16997 		extern int PlayStreamSoundMem(int SoundHandle, int PlayType = DX_PLAYTYPE_LOOP, int TopPositionFlag = dxlib_d.DxDataType.TRUE);
16998 
16999 		/**
17000 		 * ストリーム再生タイプのサウンドハンドルの再生状態を取得する
17001 		 */
17002 		extern int CheckStreamSoundMem(int SoundHandle);
17003 
17004 		/**
17005 		 * ストリーム再生タイプのサウンドハンドルの再生を停止する
17006 		 */
17007 		extern int StopStreamSoundMem(int SoundHandle);
17008 
17009 		/**
17010 		 * サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効)
17011 		 */
17012 		extern int SetStreamSoundCurrentPosition(dxlib_d.DxDataType.LONGLONG Byte, int SoundHandle);
17013 
17014 		/**
17015 		 * サウンドハンドルの再生位置をバイト単位で取得する
17016 		 */
17017 		extern dxlib_d.DxDataType.LONGLONG GetStreamSoundCurrentPosition(int SoundHandle);
17018 
17019 		/**
17020 		 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
17021 		 */
17022 		extern int SetStreamSoundCurrentTime(dxlib_d.DxDataType.LONGLONG Time, int SoundHandle);
17023 
17024 		/**
17025 		 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
17026 		 */
17027 		extern dxlib_d.DxDataType.LONGLONG GetStreamSoundCurrentTime(int SoundHandle);
17028 
17029 		/**
17030 		 * ストリーム再生タイプのサウンドハンドルの周期的な処理を行う関数(内部で自動的に呼ばれます)
17031 		 */
17032 		extern int ProcessStreamSoundMem(int SoundHandle);
17033 
17034 		/**
17035 		 * 有効なストリーム再生タイプのサウンドハンドルに対して ProcessStreamSoundMemを実行する(内部で自動的に呼ばれます)
17036 		 */
17037 		extern int ProcessStreamSoundMemAll();
17038 
17039 		/**
17040 		 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する
17041 		 */
17042 		extern int LoadSoundMem2(const (dxlib_d.DxDataType.TCHAR)* FileName1, const (dxlib_d.DxDataType.TCHAR)* FileName2);
17043 
17044 		/**
17045 		 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する
17046 		 */
17047 		extern int LoadSoundMem2WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName1, size_t FileName1Length, const (dxlib_d.DxDataType.TCHAR)* FileName2, size_t FileName2Length);
17048 
17049 		/**
17050 		 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数
17051 		 */
17052 		extern int LoadBGM(const (dxlib_d.DxDataType.TCHAR)* FileName);
17053 
17054 		/**
17055 		 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数
17056 		 */
17057 		extern int LoadBGMWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
17058 
17059 		/**
17060 		 * サウンドファイルからサウンドハンドルを作成する
17061 		 */
17062 		extern int LoadSoundMemBase(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum, int UnionHandle = -1);
17063 
17064 		/**
17065 		 * サウンドファイルからサウンドハンドルを作成する
17066 		 */
17067 		extern int LoadSoundMemBaseWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum, int UnionHandle = -1);
17068 
17069 		/**
17070 		 * LoadSoundMemBaseの別名関数
17071 		 */
17072 		extern int LoadSoundMem(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum = 3, int UnionHandle = -1);
17073 
17074 		/**
17075 		 * LoadSoundMemBaseの別名関数
17076 		 */
17077 		extern int LoadSoundMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum = 3, int UnionHandle = -1);
17078 
17079 		/**
17080 		 * LoadSoundMemを使用して下さい
17081 		 */
17082 		extern int LoadSoundMemToBufNumSitei(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum);
17083 
17084 		/**
17085 		 * LoadSoundMemを使用して下さい
17086 		 */
17087 		extern int LoadSoundMemToBufNumSiteiWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum);
17088 
17089 		/**
17090 		 * 同じサウンドデータを使用するサウンドハンドルを作成する(DX_SOUNDDATATYPE_MEMNOPRESS タイプのサウンドハンドルのみ可能)
17091 		 */
17092 		extern int DuplicateSoundMem(int SrcSoundHandle, int BufferNum = 3);
17093 
17094 		/**
17095 		 * メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
17096 		 */
17097 		extern int LoadSoundMemByMemImageBase(const (void)* FileImage, size_t FileImageSize, int BufferNum, int UnionHandle = -1);
17098 
17099 		/**
17100 		 * LoadSoundMemByMemImageBaseの別名関数
17101 		 */
17102 		extern int LoadSoundMemByMemImage(const (void)* FileImage, size_t FileImageSize, int BufferNum = 3, int UnionHandle = -1);
17103 
17104 		/**
17105 		 * メモリ上に展開されたPCMデータからサウンドハンドルを作成する
17106 		 */
17107 		extern int LoadSoundMemByMemImage2(const (void)* WaveImage, size_t WaveImageSize, const (.WAVEFORMATEX)* WaveFormat, size_t WaveHeaderSize);
17108 
17109 		/**
17110 		 * LoadSoundMemByMemImageBaseを使用して下さい
17111 		 */
17112 		extern int LoadSoundMemByMemImageToBufNumSitei(const (void)* FileImage, size_t FileImageSize, int BufferNum);
17113 
17114 		/**
17115 		 * 前奏部とループ部に分かれた二つのメモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
17116 		 */
17117 		extern int LoadSoundMem2ByMemImage(const (void)* FileImage1, size_t FileImageSize1, const (void)* FileImage2, size_t FileImageSize2);
17118 
17119 		/**
17120 		 * ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する
17121 		 */
17122 		extern int LoadSoundMemFromSoftSound(int SoftSoundHandle, int BufferNum = 3);
17123 
17124 		/**
17125 		 * サウンドハンドルを削除する
17126 		 */
17127 		extern int DeleteSoundMem(int SoundHandle, int LogOutFlag = dxlib_d.DxDataType.FALSE);
17128 
17129 		/**
17130 		 * サウンドハンドルを再生する
17131 		 */
17132 		extern int PlaySoundMem(int SoundHandle, int PlayType, int TopPositionFlag = dxlib_d.DxDataType.TRUE);
17133 
17134 		/**
17135 		 * サウンドハンドルの再生を停止する
17136 		 */
17137 		extern int StopSoundMem(int SoundHandle);
17138 
17139 		/**
17140 		 * サウンドハンドルが再生中かどうかを取得する
17141 		 */
17142 		extern int CheckSoundMem(int SoundHandle);
17143 
17144 		/**
17145 		 * サウンドハンドルのパンを設定する(100分の1デシベル単位0~10000)
17146 		 */
17147 		extern int SetPanSoundMem(int PanPal, int SoundHandle);
17148 
17149 		/**
17150 		 * サウンドハンドルのパンを設定する(-255~255)
17151 		 */
17152 		extern int ChangePanSoundMem(int PanPal, int SoundHandle);
17153 
17154 		/**
17155 		 * サウンドハンドルのパンを取得する
17156 		 */
17157 		extern int GetPanSoundMem(int SoundHandle);
17158 
17159 		/**
17160 		 * サウンドハンドルのボリュームを設定する(100分の1デシベル単位0~10000)
17161 		 */
17162 		extern int SetVolumeSoundMem(int VolumePal, int SoundHandle);
17163 
17164 		/**
17165 		 * サウンドハンドルのボリュームを設定する(0~255)
17166 		 */
17167 		extern int ChangeVolumeSoundMem(int VolumePal, int SoundHandle);
17168 
17169 		/**
17170 		 * サウンドハンドルのボリュームを取得する(100分の1デシベル単位0~10000)
17171 		 */
17172 		extern int GetVolumeSoundMem(int SoundHandle);
17173 
17174 		/**
17175 		 * サウンドハンドルのボリュームを取得する(0~255)
17176 		 */
17177 		extern int GetVolumeSoundMem2(int SoundHandle);
17178 
17179 		/**
17180 		 * サウンドハンドルの指定のチャンネルのボリュームを設定する(100分の1デシベル単位0~10000)
17181 		 */
17182 		extern int SetChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle);
17183 
17184 		/**
17185 		 * サウンドハンドルの指定のチャンネルのボリュームを設定する(0~255)
17186 		 */
17187 		extern int ChangeChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle);
17188 
17189 		/**
17190 		 * サウンドハンドルの指定のチャンネルのボリュームを取得する(100分の1デシベル単位0~10000)
17191 		 */
17192 		extern int GetChannelVolumeSoundMem(int Channel, int SoundHandle);
17193 
17194 		/**
17195 		 * サウンドハンドルの指定のチャンネルのボリュームを取得する(0~255)
17196 		 */
17197 		extern int GetChannelVolumeSoundMem2(int Channel, int SoundHandle);
17198 
17199 		/**
17200 		 * サウンドハンドルの再生周波数を設定する
17201 		 */
17202 		extern int SetFrequencySoundMem(int FrequencyPal, int SoundHandle);
17203 
17204 		/**
17205 		 * サウンドハンドルの再生周波数を取得する
17206 		 */
17207 		extern int GetFrequencySoundMem(int SoundHandle);
17208 
17209 		/**
17210 		 * サウンドハンドルの再生周波数を読み込み直後の状態に戻す
17211 		 */
17212 		extern int ResetFrequencySoundMem(int SoundHandle);
17213 
17214 		/**
17215 		 * サウンドハンドルの次の再生にのみ使用するパンを設定する(100分の1デシベル単位0~10000)
17216 		 */
17217 		extern int SetNextPlayPanSoundMem(int PanPal, int SoundHandle);
17218 
17219 		/**
17220 		 * サウンドハンドルの次の再生にのみ使用するパンを設定する(-255~255)
17221 		 */
17222 		extern int ChangeNextPlayPanSoundMem(int PanPal, int SoundHandle);
17223 
17224 		/**
17225 		 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する(100分の1デシベル単位0~10000)
17226 		 */
17227 		extern int SetNextPlayVolumeSoundMem(int VolumePal, int SoundHandle);
17228 
17229 		/**
17230 		 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する(0~255)
17231 		 */
17232 		extern int ChangeNextPlayVolumeSoundMem(int VolumePal, int SoundHandle);
17233 
17234 		/**
17235 		 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する(100分の1デシベル単位0~10000)
17236 		 */
17237 		extern int SetNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle);
17238 
17239 		/**
17240 		 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する(0~255)
17241 		 */
17242 		extern int ChangeNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle);
17243 
17244 		/**
17245 		 * サウンドハンドルの次の再生にのみ使用する再生周波数を設定する
17246 		 */
17247 		extern int SetNextPlayFrequencySoundMem(int FrequencyPal, int SoundHandle);
17248 
17249 		/**
17250 		 * サウンドハンドルの再生位置をサンプル単位で設定する(再生が止まっている時のみ有効)
17251 		 */
17252 		extern int SetCurrentPositionSoundMem(dxlib_d.DxDataType.LONGLONG SamplePosition, int SoundHandle);
17253 
17254 		/**
17255 		 * サウンドハンドルの再生位置をサンプル単位で取得する
17256 		 */
17257 		extern dxlib_d.DxDataType.LONGLONG GetCurrentPositionSoundMem(int SoundHandle);
17258 
17259 		/**
17260 		 * サウンドハンドルの再生位置をバイト単位で設定する(再生が止まっている時のみ有効)
17261 		 */
17262 		extern int SetSoundCurrentPosition(dxlib_d.DxDataType.LONGLONG Byte, int SoundHandle);
17263 
17264 		/**
17265 		 * サウンドハンドルの再生位置をバイト単位で取得する
17266 		 */
17267 		extern dxlib_d.DxDataType.LONGLONG GetSoundCurrentPosition(int SoundHandle);
17268 
17269 		/**
17270 		 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
17271 		 */
17272 		extern int SetSoundCurrentTime(dxlib_d.DxDataType.LONGLONG Time, int SoundHandle);
17273 
17274 		/**
17275 		 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
17276 		 */
17277 		extern dxlib_d.DxDataType.LONGLONG GetSoundCurrentTime(int SoundHandle);
17278 
17279 		/**
17280 		 * サウンドハンドルの音の総時間をサンプル単位で取得する
17281 		 */
17282 		extern dxlib_d.DxDataType.LONGLONG GetSoundTotalSample(int SoundHandle);
17283 
17284 		/**
17285 		 * サウンドハンドルの音の総時間をミリ秒単位で取得する
17286 		 */
17287 		extern dxlib_d.DxDataType.LONGLONG GetSoundTotalTime(int SoundHandle);
17288 
17289 		/**
17290 		 * SetLoopTimePosSoundMemの別名関数
17291 		 */
17292 		extern int SetLoopPosSoundMem(dxlib_d.DxDataType.LONGLONG LoopTime, int SoundHandle);
17293 
17294 		/**
17295 		 * サウンドハンドルにループ位置を設定する(ミリ秒単位)
17296 		 */
17297 		extern int SetLoopTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopTime, int SoundHandle);
17298 
17299 		/**
17300 		 * サウンドハンドルにループ位置を設定する(サンプル単位)
17301 		 */
17302 		extern int SetLoopSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopSamplePosition, int SoundHandle);
17303 
17304 		/**
17305 		 * サウンドハンドルにループ開始位置を設定する(ミリ秒単位)
17306 		 */
17307 		extern int SetLoopStartTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartTime, int SoundHandle);
17308 
17309 		/**
17310 		 * サウンドハンドルにループ開始位置を設定する(サンプル単位)
17311 		 */
17312 		extern int SetLoopStartSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, int SoundHandle);
17313 
17314 		/**
17315 		 * サウンドハンドルにループ範囲を設定する(ミリ秒単位)
17316 		 */
17317 		extern int SetLoopAreaTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartTime, dxlib_d.DxDataType.LONGLONG LoopEndTime, int SoundHandle);
17318 
17319 		/**
17320 		 * サウンドハンドルにループ範囲を取得する(ミリ秒単位)
17321 		 */
17322 		extern int GetLoopAreaTimePosSoundMem(dxlib_d.DxDataType.LONGLONG* LoopStartTime, dxlib_d.DxDataType.LONGLONG* LoopEndTime, int SoundHandle);
17323 
17324 		/**
17325 		 * サウンドハンドルにループ範囲を設定する(サンプル単位)
17326 		 */
17327 		extern int SetLoopAreaSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG LoopEndSamplePosition, int SoundHandle);
17328 
17329 		/**
17330 		 * サウンドハンドルにループ範囲を取得する(サンプル単位)
17331 		 */
17332 		extern int GetLoopAreaSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG* LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG* LoopEndSamplePosition, int SoundHandle);
17333 
17334 		/**
17335 		 * サウンドハンドルの再生が終了したら自動的にハンドルを削除するかどうかを設定する
17336 		 */
17337 		extern int SetPlayFinishDeleteSoundMem(int DeleteFlag, int SoundHandle);
17338 
17339 		/**
17340 		 * サウンドハンドルの3Dサウンド用のリバーブパラメータを設定する
17341 		 */
17342 		extern int Set3DReverbParamSoundMem(const (.SOUND3D_REVERB_PARAM)* Param, int SoundHandle);
17343 
17344 		/**
17345 		 * サウンドハンドルの3Dサウンド用のリバーブパラメータをプリセットを使用して設定する
17346 		 */
17347 		extern int Set3DPresetReverbParamSoundMem(int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */, int SoundHandle);
17348 
17349 		/**
17350 		 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータを設定する
17351 		 *
17352 		 * Params:
17353 		 *      Param = ?
17354 		 *      PlaySoundOnly = dxlib_d.DxDataType.TRUE:再生中のサウンドにのみ設定する  dxlib_d.DxDataType.FALSE:再生していないサウンドにも設定する
17355 		 */
17356 		extern int Set3DReverbParamSoundMemAll(const (.SOUND3D_REVERB_PARAM)* Param, int PlaySoundOnly = dxlib_d.DxDataType.FALSE);
17357 
17358 		/**
17359 		 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータをプリセットを使用して設定する
17360 		 *
17361 		 * Params:
17362 		 *      PresetNo = ?
17363 		 *      PlaySoundOnly = dxlib_d.DxDataType.TRUE:再生中のサウンドにのみ設定する  dxlib_d.DxDataType.FALSE:再生していないサウンドにも設定する
17364 		 */
17365 		extern int Set3DPresetReverbParamSoundMemAll(int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */, int PlaySoundOnly = dxlib_d.DxDataType.FALSE);
17366 
17367 		/**
17368 		 * サウンドハンドルに設定されている3Dサウンド用のリバーブパラメータを取得する
17369 		 */
17370 		extern int Get3DReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int SoundHandle);
17371 
17372 		/**
17373 		 * プリセットの3Dサウンド用のリバーブパラメータを取得する
17374 		 */
17375 		extern int Get3DPresetReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */);
17376 
17377 		/**
17378 		 * サウンドハンドルの3Dサウンド用の再生位置を設定する
17379 		 */
17380 		extern int Set3DPositionSoundMem(.VECTOR Position, int SoundHandle);
17381 
17382 		/**
17383 		 * サウンドハンドルの3Dサウンド用の音が聞こえる距離を設定する
17384 		 */
17385 		extern int Set3DRadiusSoundMem(float Radius, int SoundHandle);
17386 
17387 		/**
17388 		 * サウンドハンドルの3Dサウンド用の移動速度を設定する
17389 		 */
17390 		extern int Set3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle);
17391 
17392 		/**
17393 		 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の再生位置を設定する
17394 		 */
17395 		extern int SetNextPlay3DPositionSoundMem(.VECTOR Position, int SoundHandle);
17396 
17397 		/**
17398 		 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の音が聞こえる距離を設定する
17399 		 */
17400 		extern int SetNextPlay3DRadiusSoundMem(float Radius, int SoundHandle);
17401 
17402 		/**
17403 		 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の移動速度を設定する
17404 		 */
17405 		extern int SetNextPlay3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle);
17406 
17407 		// 特殊関数
17408 
17409 		/**
17410 		 * MP3ファイルのタグ情報を取得する
17411 		 */
17412 		extern int GetMP3TagInfo(const (dxlib_d.DxDataType.TCHAR)* FileName, dxlib_d.DxDataType.TCHAR* TitleBuffer, size_t TitleBufferBytes, dxlib_d.DxDataType.TCHAR* ArtistBuffer, size_t ArtistBufferBytes, dxlib_d.DxDataType.TCHAR* AlbumBuffer, size_t AlbumBufferBytes, dxlib_d.DxDataType.TCHAR* YearBuffer, size_t YearBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, size_t CommentBufferBytes, dxlib_d.DxDataType.TCHAR* TrackBuffer, size_t TrackBufferBytes, dxlib_d.DxDataType.TCHAR* GenreBuffer, size_t GenreBufferBytes, int* PictureGrHandle);
17413 
17414 		/**
17415 		 * MP3ファイルのタグ情報を取得する
17416 		 */
17417 		extern int GetMP3TagInfoWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, dxlib_d.DxDataType.TCHAR* TitleBuffer, size_t TitleBufferBytes, dxlib_d.DxDataType.TCHAR* ArtistBuffer, size_t ArtistBufferBytes, dxlib_d.DxDataType.TCHAR* AlbumBuffer, size_t AlbumBufferBytes, dxlib_d.DxDataType.TCHAR* YearBuffer, size_t YearBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, size_t CommentBufferBytes, dxlib_d.DxDataType.TCHAR* TrackBuffer, size_t TrackBufferBytes, dxlib_d.DxDataType.TCHAR* GenreBuffer, size_t GenreBufferBytes, int* PictureGrHandle);
17418 
17419 		version (DX_NON_OGGVORBIS) {
17420 		} else {
17421 			/**
17422 			 * Oggファイルのコメント情報の数を取得する
17423 			 */
17424 			extern int GetOggCommentNum(const (dxlib_d.DxDataType.TCHAR)* FileName);
17425 
17426 			/**
17427 			 * Oggファイルのコメント情報の数を取得する
17428 			 */
17429 			extern int GetOggCommentNumWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
17430 
17431 			extern int GetOggComment(const (dxlib_d.DxDataType.TCHAR)* FileName, int CommentIndex, dxlib_d.DxDataType.TCHAR* CommentNameBuffer, size_t CommentNameBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer,
17432 			/**
17433 			 * Oggファイルのコメント情報を取得する
17434 			 */
17435 			size_t CommentBufferBytes);
17436 
17437 			extern int GetOggCommentWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CommentIndex, dxlib_d.DxDataType.TCHAR* CommentNameBuffer, size_t CommentNameBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer,
17438 			/**
17439 			 * Oggファイルのコメント情報を取得する
17440 			 */
17441 			size_t CommentBufferBytes);
17442 		}
17443 
17444 		// 設定関係関数
17445 
17446 		/**
17447 		 * 作成するサウンドハンドルの再生タイプを設定する(DX_SOUNDDATATYPE_MEMNOPRESS等)
17448 		 */
17449 		extern int SetCreateSoundDataType(int SoundDataType);
17450 
17451 		/**
17452 		 * 作成するサウンドハンドルの再生タイプを取得する(DX_SOUNDDATATYPE_MEMNOPRESS等)
17453 		 */
17454 		extern int GetCreateSoundDataType();
17455 
17456 		/**
17457 		 * 作成するサウンドハンドルのピッチ(音の長さを変えずに音程を変更する)レートを設定する(単位はセント(100.0fで半音、1200.0fで1オクターヴ)、プラスの値で音程が高く、マイナスの値で音程が低くなります)
17458 		 */
17459 		extern int SetCreateSoundPitchRate(float Cents);
17460 
17461 		/**
17462 		 * 作成するサウンドハンドルのピッチ(音の長さを変えずに音程を変更する)レートを取得する(単位はセント(100.0fで半音、1200.0fで1オクターヴ)、プラスの値で音程が高く、マイナスの値で音程が低くなります)
17463 		 */
17464 		extern float GetCreateSoundPitchRate();
17465 
17466 		/**
17467 		 * 作成するサウンドハンドルのタイムストレッチ(音程を変えずに音の長さを変更する)レートを設定する(単位は倍率、2.0fで音の長さが2倍に、0.5fで音の長さが半分になります)
17468 		 */
17469 		extern int SetCreateSoundTimeStretchRate(float Rate);
17470 
17471 		/**
17472 		 * 作成するサウンドハンドルのタイムストレッチ(音程を変えずに音の長さを変更する)レートを取得する(単位は倍率、2.0fで音の長さが2倍に、0.5fで音の長さが半分になります)
17473 		 */
17474 		extern float GetCreateSoundTimeStretchRate();
17475 
17476 		/**
17477 		 * 作成するサウンドハンドルのループ範囲を設定する(ミリ秒単位)
17478 		 */
17479 		extern int SetCreateSoundLoopAreaTimePos(dxlib_d.DxDataType.LONGLONG LoopStartTime, dxlib_d.DxDataType.LONGLONG LoopEndTime);
17480 
17481 		/**
17482 		 * 作成するサウンドハンドルのループ範囲を取得する(ミリ秒単位)
17483 		 */
17484 		extern int GetCreateSoundLoopAreaTimePos(dxlib_d.DxDataType.LONGLONG* LoopStartTime, dxlib_d.DxDataType.LONGLONG* LoopEndTime);
17485 
17486 		/**
17487 		 * 作成するサウンドハンドルのループ範囲を設定する(サンプル単位)
17488 		 */
17489 		extern int SetCreateSoundLoopAreaSamplePos(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG LoopEndSamplePosition);
17490 
17491 		/**
17492 		 * 作成するサウンドハンドルのループ範囲を取得する(サンプル単位)
17493 		 */
17494 		extern int GetCreateSoundLoopAreaSamplePos(dxlib_d.DxDataType.LONGLONG* LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG* LoopEndSamplePosition);
17495 
17496 		/**
17497 		 * LoadSoundMemなどで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを設定する
17498 		 *
17499 		 * Params:
17500 		 *      IgnoreFlag = dxlib_d.DxDataType.TRUE:無視する  dxlib_d.DxDataType.FALSE:無視しない(デフォルト)
17501 		 */
17502 		extern int SetCreateSoundIgnoreLoopAreaInfo(int IgnoreFlag);
17503 
17504 		/**
17505 		 * LoadSoundMemなどで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを取得する
17506 		 *
17507 		 * Returns: dxlib_d.DxDataType.TRUE:無視する  dxlib_d.DxDataType.FALSE:無視しない(デフォルト)
17508 		 */
17509 		extern int GetCreateSoundIgnoreLoopAreaInfo();
17510 
17511 		/**
17512 		 * 使用しないサウンドデータ読み込み処理のマスクを設定する(DX_READSOUNDFUNCTION_PCM等)
17513 		 */
17514 		extern int SetDisableReadSoundFunctionMask(int Mask);
17515 
17516 		/**
17517 		 * 使用しないサウンドデータ読み込み処理のマスクを取得する(DX_READSOUNDFUNCTION_PCM等)
17518 		 */
17519 		extern int GetDisableReadSoundFunctionMask();
17520 
17521 		/**
17522 		 * サウンドキャプチャを前提とした動作をするかどうかを設定する
17523 		 */
17524 		extern int SetEnableSoundCaptureFlag(int Flag);
17525 
17526 		/**
17527 		 * ChangeVolumeSoundMem, ChangeNextPlayVolumeSoundMem, ChangeMovieVolumeToGraphの音量計算式をVer3.10c以前のものを使用するかどうかを設定する
17528 		 *
17529 		 * Params:
17530 		 *      Flag = dxlib_d.DxDataType.TRUE:Ver3.10c以前の計算式を使用  dxlib_d.DxDataType.FALSE:3.10d以降の計算式を使用(デフォルト)
17531 		 */
17532 		extern int SetUseOldVolumeCalcFlag(int Flag);
17533 
17534 		/**
17535 		 * GetSoundCurrentTimeなどを使用した場合に取得できる再生時間のタイプを設定する
17536 		 */
17537 		extern int SetSoundCurrentTimeType(int Type /* DX_SOUNDCURRENTTIME_TYPE_LOW_LEVELなど */);
17538 
17539 		/**
17540 		 * GetSoundCurrentTimeなどを使用した場合に取得できる再生時間のタイプを取得する
17541 		 */
17542 		extern int GetSoundCurrentTimeType();
17543 
17544 		/**
17545 		 * 次に作成するサウンドハンドルを3Dサウンド用にするかどうかを設定する
17546 		 *
17547 		 * Params:
17548 		 *      Flag = dxlib_d.DxDataType.TRUE:3Dサウンド用にする  dxlib_d.DxDataType.FALSE:3Dサウンド用にしない(デフォルト)
17549 		 */
17550 		extern int SetCreate3DSoundFlag(int Flag);
17551 
17552 		/**
17553 		 * 3D空間の1メートルに相当する距離を設定する、DxLib_Initを呼び出す前でのみ呼び出し可能(デフォルト:1.0f)
17554 		 *
17555 		 * Params:
17556 		 *      Distance = ?
17557 		 */
17558 		extern int Set3DSoundOneMetre(float Distance);
17559 
17560 		/**
17561 		 * 3Dサウンドのリスナーの位置とリスナーの前方位置を設定する(リスナーの上方向はY軸固定)
17562 		 */
17563 		extern int Set3DSoundListenerPosAndFrontPos_UpVecY(.VECTOR Position, .VECTOR FrontPosition);
17564 
17565 		/**
17566 		 * 3Dサウンドのリスナーの位置とリスナーの前方位置とリスナーの上方向を設定する
17567 		 */
17568 		extern int Set3DSoundListenerPosAndFrontPosAndUpVec(.VECTOR Position, .VECTOR FrontPosition, .VECTOR UpVector);
17569 
17570 		/**
17571 		 * 3Dサウンドのリスナーの移動速度を設定する
17572 		 */
17573 		extern int Set3DSoundListenerVelocity(.VECTOR Velocity);
17574 
17575 		/**
17576 		 * 3Dサウンドのリスナーの可聴角度範囲を設定する
17577 		 */
17578 		extern int Set3DSoundListenerConeAngle(float InnerAngle, float OuterAngle);
17579 
17580 		/**
17581 		 * 3Dサウンドのリスナーの可聴角度範囲の音量倍率を設定する
17582 		 */
17583 		extern int Set3DSoundListenerConeVolume(float InnerAngleVolume, float OuterAngleVolume);
17584 
17585 		version (DX_NON_BEEP) {
17586 		} else {
17587 			// BEEP音再生用命令
17588 
17589 			/**
17590 			 * ビープ音周波数設定関数
17591 			 */
17592 			extern int SetBeepFrequency(int Freq);
17593 
17594 			/**
17595 			 * ビープ音を再生する
17596 			 */
17597 			extern int PlayBeep();
17598 
17599 			/**
17600 			 * ビープ音を止める
17601 			 */
17602 			extern int StopBeep();
17603 		}
17604 
17605 		// ラッパー関数
17606 
17607 		/**
17608 		 * サウンドファイルを再生する
17609 		 */
17610 		extern int PlaySoundFile(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType);
17611 
17612 		/**
17613 		 * サウンドファイルを再生する
17614 		 */
17615 		extern int PlaySoundFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType);
17616 
17617 		/**
17618 		 * PlaySoundFileの旧名称
17619 		 */
17620 		extern int PlaySound(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType);
17621 
17622 		/**
17623 		 * PlaySoundFileの旧名称
17624 		 */
17625 		extern int PlaySoundWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType);
17626 
17627 		/**
17628 		 * サウンドファイルの再生中かどうかを取得する
17629 		 */
17630 		extern int CheckSoundFile();
17631 
17632 		/**
17633 		 * CheckSoundFileの旧名称
17634 		 */
17635 		extern int CheckSound();
17636 
17637 		/**
17638 		 * サウンドファイルの再生を停止する
17639 		 */
17640 		extern int StopSoundFile();
17641 
17642 		/**
17643 		 * StopSoundFileの旧名称
17644 		 */
17645 		extern int StopSound();
17646 
17647 		/**
17648 		 * サウンドファイルの音量を設定する
17649 		 */
17650 		extern int SetVolumeSoundFile(int VolumePal);
17651 
17652 		/**
17653 		 * SetVolumeSoundの旧名称
17654 		 */
17655 		extern int SetVolumeSound(int VolumePal);
17656 
17657 		// ソフトウエア制御サウンド系関数
17658 
17659 		/**
17660 		 * ソフトウエアで扱う波形データハンドルをすべて削除する
17661 		 */
17662 		extern int InitSoftSound();
17663 
17664 		/**
17665 		 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する
17666 		 */
17667 		extern int LoadSoftSound(const (dxlib_d.DxDataType.TCHAR)* FileName);
17668 
17669 		/**
17670 		 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する
17671 		 */
17672 		extern int LoadSoftSoundWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
17673 
17674 		/**
17675 		 * ソフトウエアで扱う波形データハンドルをメモリ上に展開されたサウンドファイルイメージから作成する
17676 		 */
17677 		extern int LoadSoftSoundFromMemImage(const (void)* FileImage, size_t FileImageSize);
17678 
17679 		/**
17680 		 * ソフトウエアで扱う空の波形データハンドルを作成する(フォーマットは引数のソフトウエアサウンドハンドルと同じものにする)
17681 		 */
17682 		extern int MakeSoftSound(int UseFormat_SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SampleNum);
17683 
17684 		/**
17685 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:44.1KHz)
17686 		 */
17687 		extern int MakeSoftSound2Ch16Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17688 
17689 		/**
17690 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:22KHz)
17691 		 */
17692 		extern int MakeSoftSound2Ch16Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17693 
17694 		/**
17695 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:44.1KHz)
17696 		 */
17697 		extern int MakeSoftSound2Ch8Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17698 
17699 		/**
17700 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:22KHz)
17701 		 */
17702 		extern int MakeSoftSound2Ch8Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17703 
17704 		/**
17705 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:44.1KHz)
17706 		 */
17707 		extern int MakeSoftSound1Ch16Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17708 
17709 		/**
17710 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:22KHz)
17711 		 */
17712 		extern int MakeSoftSound1Ch16Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17713 
17714 		/**
17715 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:44.1KHz)
17716 		 */
17717 		extern int MakeSoftSound1Ch8Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17718 
17719 		/**
17720 		 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:22KHz)
17721 		 */
17722 		extern int MakeSoftSound1Ch8Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum);
17723 
17724 		/**
17725 		 * ソフトウエアで扱う空の波形データハンドルを作成する
17726 		 */
17727 		extern int MakeSoftSoundCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec, dxlib_d.DxDataType.LONGLONG SampleNum, int IsFloatType = 0);
17728 
17729 		/**
17730 		 * ソフトウエアで扱う波形データハンドルを削除する
17731 		 */
17732 		extern int DeleteSoftSound(int SoftSoundHandle);
17733 
17734 		version (DX_NON_SAVEFUNCTION) {
17735 		} else {
17736 			/**
17737 			 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する
17738 			 */
17739 			extern int SaveSoftSound(int SoftSoundHandle, const (dxlib_d.DxDataType.TCHAR)* FileName);
17740 
17741 			/**
17742 			 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する
17743 			 */
17744 			extern int SaveSoftSoundWithStrLen(int SoftSoundHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
17745 		}
17746 
17747 		/**
17748 		 * ソフトウエアで扱う波形データハンドルのサンプル数を取得する
17749 		 */
17750 		extern dxlib_d.DxDataType.LONGLONG GetSoftSoundSampleNum(int SoftSoundHandle);
17751 
17752 		/**
17753 		 * ソフトウエアで扱う波形データハンドルのフォーマットを取得する
17754 		 */
17755 		extern int GetSoftSoundFormat(int SoftSoundHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec, int* IsFloatType = null);
17756 
17757 		/**
17758 		 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る
17759 		 */
17760 		extern int ReadSoftSoundData(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, int* Channel1, int* Channel2);
17761 
17762 		/**
17763 		 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る(float型版)
17764 		 */
17765 		extern int ReadSoftSoundDataF(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, float* Channel1, float* Channel2);
17766 
17767 		/**
17768 		 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む
17769 		 */
17770 		extern int WriteSoftSoundData(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, int Channel1, int Channel2);
17771 
17772 		/**
17773 		 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む(float型版)
17774 		 */
17775 		extern int WriteSoftSoundDataF(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, float Channel1, float Channel2);
17776 
17777 		/**
17778 		 * ソフトウエアで扱う波形データハンドルの波形データを音程を変えずにデータの長さを変更する
17779 		 */
17780 		extern int WriteTimeStretchSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle);
17781 
17782 		/**
17783 		 * ソフトウエアで扱う波形データハンドルの波形データの長さを変更する
17784 		 */
17785 		extern int WritePitchShiftSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle);
17786 
17787 		/**
17788 		 * ソフトウエアで扱う波形データハンドルの波形イメージが格納されているメモリアドレスを取得する
17789 		 */
17790 		extern void* GetSoftSoundDataImage(int SoftSoundHandle);
17791 
17792 		/**
17793 		 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する(SampleNumは16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536の何れかである必要があります、Channelを-1にすると二つのチャンネルを合成した結果になります)
17794 		 */
17795 		extern int GetFFTVibrationSoftSound(int SoftSoundHandle, int Channel, dxlib_d.DxDataType.LONGLONG SamplePosition, int SampleNum, float* Buffer_Array, int BufferLength);
17796 
17797 		/**
17798 		 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する、結果の実数と虚数を別々に取得することができるバージョン(SampleNumは16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536の何れかである必要があります、Channelを-1にすると二つのチャンネルを合成した結果になります)
17799 		 */
17800 		extern int GetFFTVibrationSoftSoundBase(int SoftSoundHandle, int Channel, dxlib_d.DxDataType.LONGLONG SamplePosition, int SampleNum, float* RealBuffer_Array, float* ImagBuffer_Array, int BufferLength);
17801 
17802 		/**
17803 		 * ソフトウエアで扱う波形データのプレイヤーハンドルをすべて解放する
17804 		 */
17805 		extern int InitSoftSoundPlayer();
17806 
17807 		/**
17808 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(フォーマットは引数のソフトウエアサウンドハンドルと同じものにする)
17809 		 */
17810 		extern int MakeSoftSoundPlayer(int UseFormat_SoftSoundHandle);
17811 
17812 		/**
17813 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:44.1KHz)
17814 		 */
17815 		extern int MakeSoftSoundPlayer2Ch16Bit44KHz();
17816 
17817 		/**
17818 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:22KHz)
17819 		 */
17820 		extern int MakeSoftSoundPlayer2Ch16Bit22KHz();
17821 
17822 		/**
17823 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:44.1KHz)
17824 		 */
17825 		extern int MakeSoftSoundPlayer2Ch8Bit44KHz();
17826 
17827 		/**
17828 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:22KHz)
17829 		 */
17830 		extern int MakeSoftSoundPlayer2Ch8Bit22KHz();
17831 
17832 		/**
17833 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:44.1KHz)
17834 		 */
17835 		extern int MakeSoftSoundPlayer1Ch16Bit44KHz();
17836 
17837 		/**
17838 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:22KHz)
17839 		 */
17840 		extern int MakeSoftSoundPlayer1Ch16Bit22KHz();
17841 
17842 		/**
17843 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:44.1KHz)
17844 		 */
17845 		extern int MakeSoftSoundPlayer1Ch8Bit44KHz();
17846 
17847 		/**
17848 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:22KHz)
17849 		 */
17850 		extern int MakeSoftSoundPlayer1Ch8Bit22KHz();
17851 
17852 		/**
17853 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する
17854 		 */
17855 		extern int MakeSoftSoundPlayerCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec);
17856 
17857 		/**
17858 		 * ソフトウエアで扱う波形データのプレイヤーハンドルを削除する
17859 		 */
17860 		extern int DeleteSoftSoundPlayer(int SSoundPlayerHandle);
17861 
17862 		/**
17863 		 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを追加する(フォーマットが同じではない場合はエラー)
17864 		 */
17865 		extern int AddDataSoftSoundPlayer(int SSoundPlayerHandle, int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG AddSamplePosition, int AddSampleNum);
17866 
17867 		/**
17868 		 * ソフトウエアで扱う波形データのプレイヤーハンドルにプレイヤーが対応したフォーマットの生波形データを追加する
17869 		 */
17870 		extern int AddDirectDataSoftSoundPlayer(int SSoundPlayerHandle, const (void)* SoundData, int AddSampleNum);
17871 
17872 		/**
17873 		 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを1つ追加する
17874 		 */
17875 		extern int AddOneDataSoftSoundPlayer(int SSoundPlayerHandle, int Channel1, int Channel2);
17876 
17877 		/**
17878 		 * ソフトウエアで扱う波形データのプレイヤーハンドルが扱うデータフォーマットを取得する
17879 		 */
17880 		extern int GetSoftSoundPlayerFormat(int SSoundPlayerHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec);
17881 
17882 		/**
17883 		 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を開始する
17884 		 */
17885 		extern int StartSoftSoundPlayer(int SSoundPlayerHandle);
17886 
17887 		/**
17888 		 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理が開始されているか取得する
17889 		 *
17890 		 * Returns: dxlib_d.DxDataType.TRUE:開始している  dxlib_d.DxDataType.FALSE:停止している
17891 		 */
17892 		extern int CheckStartSoftSoundPlayer(int SSoundPlayerHandle);
17893 
17894 		/**
17895 		 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を停止する
17896 		 */
17897 		extern int StopSoftSoundPlayer(int SSoundPlayerHandle);
17898 
17899 		/**
17900 		 * ソフトウエアで扱う波形データのプレイヤーハンドルの状態を初期状態に戻す(追加された波形データは削除され、再生状態だった場合は停止する)
17901 		 */
17902 		extern int ResetSoftSoundPlayer(int SSoundPlayerHandle);
17903 
17904 		/**
17905 		 * ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する
17906 		 */
17907 		extern int GetStockDataLengthSoftSoundPlayer(int SSoundPlayerHandle);
17908 
17909 		/**
17910 		 * ソフトウエアで扱う波形データのプレイヤーハンドルに再生用サウンドバッファに転送していない波形データが無く、再生用サウンドバッファにも無音データ以外無いかどうかを取得する
17911 		 *
17912 		 * Returns: dxlib_d.DxDataType.TRUE:無音データ以外無い  dxlib_d.DxDataType.FALSE:有効データがある
17913 		 */
17914 		extern int CheckSoftSoundPlayerNoneData(int SSoundPlayerHandle);
17915 
17916 		// MIDI制御関数
17917 
17918 		/**
17919 		 * MIDIハンドルを削除する
17920 		 */
17921 		extern int DeleteMusicMem(int MusicHandle);
17922 
17923 		/**
17924 		 * MIDIファイルを読み込みMIDIハンドルを作成する
17925 		 */
17926 		extern int LoadMusicMem(const (dxlib_d.DxDataType.TCHAR)* FileName);
17927 
17928 		/**
17929 		 * MIDIファイルを読み込みMIDIハンドルを作成する
17930 		 */
17931 		extern int LoadMusicMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
17932 
17933 		/**
17934 		 * メモリ上に展開されたMIDIファイルイメージからMIDIハンドルを作成する
17935 		 */
17936 		extern int LoadMusicMemByMemImage(const (void)* FileImage, size_t FileImageSize);
17937 
17938 		/**
17939 		 * MIDIハンドルの演奏を開始する
17940 		 */
17941 		extern int PlayMusicMem(int MusicHandle, int PlayType);
17942 
17943 		/**
17944 		 * MIDIハンドルの演奏を停止する
17945 		 */
17946 		extern int StopMusicMem(int MusicHandle);
17947 
17948 		/**
17949 		 * MIDIハンドルが演奏中かどうかを取得する
17950 		 *
17951 		 * Returns: dxlib_d.DxDataType.TRUE:演奏中  dxlib_d.DxDataType.FALSE:停止中
17952 		 */
17953 		extern int CheckMusicMem(int MusicHandle);
17954 
17955 		/**
17956 		 * MIDIハンドルの再生音量をセットする
17957 		 */
17958 		extern int SetVolumeMusicMem(int Volume, int MusicHandle);
17959 
17960 		/**
17961 		 * MIDIハンドルの現在の再生位置を取得する
17962 		 */
17963 		extern int GetMusicMemPosition(int MusicHandle);
17964 
17965 		/**
17966 		 * MIDIハンドルをすべて削除する
17967 		 */
17968 		extern int InitMusicMem();
17969 
17970 		/**
17971 		 * MIDIハンドルの周期的処理(内部で呼ばれます)
17972 		 */
17973 		extern int ProcessMusicMem();
17974 
17975 		/**
17976 		 * MIDIファイルを演奏する
17977 		 */
17978 		extern int PlayMusic(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType);
17979 
17980 		/**
17981 		 * MIDIファイルを演奏する
17982 		 */
17983 		extern int PlayMusicWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType);
17984 
17985 		/**
17986 		 * メモリ上に展開されているMIDIファイルを演奏する
17987 		 */
17988 		extern int PlayMusicByMemImage(const (void)* FileImage, size_t FileImageSize, int PlayType);
17989 
17990 		/**
17991 		 * MIDIの再生音量をセットする
17992 		 */
17993 		extern int SetVolumeMusic(int Volume);
17994 
17995 		/**
17996 		 * MIDIファイルの演奏停止
17997 		 */
17998 		extern int StopMusic();
17999 
18000 		/**
18001 		 * MIDIファイルが演奏中か否か情報を取得する
18002 		 */
18003 		extern int CheckMusic();
18004 
18005 		/**
18006 		 * MIDIの現在の再生位置を取得する
18007 		 */
18008 		extern int GetMusicPosition();
18009 
18010 		/**
18011 		 * MIDIの再生形式を設定する
18012 		 */
18013 		extern int SelectMidiMode(int Mode);
18014 	}
18015 
18016 	// DxArchive_.cpp 関数 プロトタイプ宣言
18017 
18018 	/**
18019 	 * DXアーカイブファイルの読み込み機能を使うかどうかを設定する
18020 	 *
18021 	 * Returns: dxlib_d.DxDataType.FALSE:使用しない  dxlib_d.DxDataType.TRUE:使用する
18022 	 */
18023 	extern int SetUseDXArchiveFlag(int Flag);
18024 
18025 	/**
18026 	 * 同名のDXアーカイブファイルとフォルダが存在した場合、どちらを優先させるかを設定する
18027 	 *
18028 	 * Params:
18029 	 *      Priority = 1:フォルダを優先  0:DXアーカイブファイルを優先(デフォルト)
18030 	 */
18031 	extern int SetDXArchivePriority(int Priority = 0);
18032 
18033 	/**
18034 	 * 検索するDXアーカイブファイルの拡張子を設定する
18035 	 *
18036 	 * Params:
18037 	 *      Extension = 拡張子名文字列
18038 	 */
18039 	extern int SetDXArchiveExtension(const (dxlib_d.DxDataType.TCHAR)* Extension = null);
18040 
18041 	/**
18042 	 * 検索するDXアーカイブファイルの拡張子を設定する
18043 	 *
18044 	 * Params:
18045 	 *      Extension = 拡張子名文字列
18046 	 *      ExtensionLength = ?
18047 	 */
18048 	extern int SetDXArchiveExtensionWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Extension = null, size_t ExtensionLength = 0);
18049 
18050 	/**
18051 	 * DXアーカイブファイルの鍵文字列を設定する
18052 	 *
18053 	 * Params:
18054 	 *      KeyString = 鍵文字列
18055 	 */
18056 	extern int SetDXArchiveKeyString(const (dxlib_d.DxDataType.TCHAR)* KeyString = null);
18057 
18058 	/**
18059 	 * DXアーカイブファイルの鍵文字列を設定する
18060 	 *
18061 	 * Params:
18062 	 *      KeyString = 鍵文字列
18063 	 *      KeyStringLength = ?
18064 	 */
18065 	extern int SetDXArchiveKeyStringWithStrLen(const (dxlib_d.DxDataType.TCHAR)* KeyString = null, size_t KeyStringLength = 0);
18066 
18067 	/**
18068 	 * 指定のDXAファイルを丸ごとメモリに読み込む
18069 	 *
18070 	 * Returns: -1:エラー  0:成功
18071 	 */
18072 	extern int DXArchivePreLoad(const (dxlib_d.DxDataType.TCHAR)* FilePath, int ASync = dxlib_d.DxDataType.FALSE);
18073 
18074 	/**
18075 	 * 指定のDXAファイルを丸ごとメモリに読み込む
18076 	 *
18077 	 * Returns: -1:エラー  0:成功
18078 	 */
18079 	extern int DXArchivePreLoadWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.DxDataType.FALSE);
18080 
18081 	/**
18082 	 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する
18083 	 *
18084 	 * Returns: dxlib_d.DxDataType.TRUE:完了した dxlib_d.DxDataType.FALSE:まだ
18085 	 */
18086 	extern int DXArchiveCheckIdle(const (dxlib_d.DxDataType.TCHAR)* FilePath);
18087 
18088 	/**
18089 	 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する
18090 	 *
18091 	 * Returns: dxlib_d.DxDataType.TRUE:完了した dxlib_d.DxDataType.FALSE:まだ
18092 	 */
18093 	extern int DXArchiveCheckIdleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
18094 
18095 	/**
18096 	 * 指定のDXAファイルをメモリから解放する
18097 	 */
18098 	extern int DXArchiveRelease(const (dxlib_d.DxDataType.TCHAR)* FilePath);
18099 
18100 	/**
18101 	 * 指定のDXAファイルをメモリから解放する
18102 	 */
18103 	extern int DXArchiveReleaseWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
18104 
18105 	/**
18106 	 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePathはDXAファイルをカレントフォルダとした場合のパス
18107 	 *
18108 	 * Returns: -1:エラー  0:無い  1:ある
18109 	 */
18110 	extern int DXArchiveCheckFile(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (dxlib_d.DxDataType.TCHAR)* TargetFilePath);
18111 
18112 	/**
18113 	 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePathはDXAファイルをカレントフォルダとした場合のパス
18114 	 *
18115 	 * Returns: -1:エラー  0:無い  1:ある
18116 	 */
18117 	extern int DXArchiveCheckFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (dxlib_d.DxDataType.TCHAR)* TargetFilePath, size_t TargetFilePathLength);
18118 
18119 	/**
18120 	 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする(EmulateFilePathは見立てるdxaファイルのパス、例えばDXAファイルイメージをImage.dxaというファイル名でc:\Tempにあることにしたい場合はEmulateFilePathに"c:\\Temp\\Image.dxa"を渡す、SetDXArchiveExtensionで拡張子を変更している場合はEmulateFilePathに渡すファイルパスの拡張子もそれに合わせる必要あり)
18121 	 */
18122 	extern int DXArchiveSetMemImage(void* ArchiveImage, int ArchiveImageSize, const (dxlib_d.DxDataType.TCHAR)* EmulateFilePath, int ArchiveImageCopyFlag = dxlib_d.DxDataType.FALSE, int ArchiveImageReadOnly = dxlib_d.DxDataType.TRUE);
18123 
18124 	/**
18125 	 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする(EmulateFilePathは見立てるdxaファイルのパス、例えばDXAファイルイメージをImage.dxaというファイル名でc:\Tempにあることにしたい場合はEmulateFilePathに"c:\\Temp\\Image.dxa"を渡す、SetDXArchiveExtensionで拡張子を変更している場合はEmulateFilePathに渡すファイルパスの拡張子もそれに合わせる必要あり)
18126 	 */
18127 	extern int DXArchiveSetMemImageWithStrLen(void* ArchiveImage, int ArchiveImageSize, const (dxlib_d.DxDataType.TCHAR)* EmulateFilePath, size_t EmulateFilePathLength, int ArchiveImageCopyFlag = dxlib_d.DxDataType.FALSE, int ArchiveImageReadOnly = dxlib_d.DxDataType.TRUE);
18128 
18129 	/**
18130 	 * DXArchiveSetMemImageの設定を解除する
18131 	 */
18132 	extern int DXArchiveReleaseMemImage(void* ArchiveImage);
18133 
18134 	/**
18135 	 * バイナリデータを元にCRC32のハッシュ値を計算する
18136 	 */
18137 	extern dxlib_d.DxDataType.DWORD HashCRC32(const (void)* SrcData, size_t SrcDataSize);
18138 
18139 	// DxModel.cpp 関数 プロトタイプ宣言
18140 
18141 	version (DX_NON_MODEL) {
18142 	} else {
18143 		// モデルの読み込み・複製関係
18144 
18145 		/**
18146 		 * モデルの読み込み
18147 		 *
18148 		 * Returns: -1:エラー  0以上:モデルハンドル
18149 		 */
18150 		extern int MV1LoadModel(const (dxlib_d.DxDataType.TCHAR)* FileName);
18151 
18152 		/**
18153 		 * モデルの読み込み
18154 		 *
18155 		 * Returns: -1:エラー  0以上:モデルハンドル
18156 		 */
18157 		extern int MV1LoadModelWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
18158 
18159 		/**
18160 		 * メモリ上のモデルファイルイメージと独自の読み込みルーチンを使用してモデルを読み込む
18161 		 */
18162 		extern int MV1LoadModelFromMem(const (void)* FileImage, int FileSize, int function(const (dxlib_d.DxDataType.TCHAR)* FilePath, void** FileImageAddr, int* FileSize, void* FileReadFuncData) FileReadFunc, int function(void* MemoryAddr, void* FileReadFuncData) FileReleaseFunc, void* FileReadFuncData = null);
18163 
18164 		/**
18165 		 * 指定のモデルと同じモデル基本データを使用してモデルを作成する
18166 		 *
18167 		 * Returns: -1:エラー  0以上:モデルハンドル
18168 		 */
18169 		extern int MV1DuplicateModel(int SrcMHandle);
18170 
18171 		/**
18172 		 * 指定のモデルをモデル基本データも含め複製する(MV1DuplicateModelはモデル基本データは共有しますが、こちらは複製元のモデルとは一切共有データの無いモデルハンドルを作成します)
18173 		 *
18174 		 * Returns: -1:エラー  0以上:モデルハンドル
18175 		 */
18176 		extern int MV1CreateCloneModel(int SrcMHandle);
18177 
18178 		/**
18179 		 * モデルを削除する
18180 		 */
18181 		extern int MV1DeleteModel(int MHandle);
18182 
18183 		/**
18184 		 * すべてのモデルを削除する
18185 		 */
18186 		extern int MV1InitModel();
18187 
18188 		/**
18189 		 * モデルを読み込む際に法線の再計算を行うかどうかを設定する
18190 		 *
18191 		 * Params:
18192 		 *      Flag = dxlib_d.DxDataType.TRUE:行う  dxlib_d.DxDataType.FALSE:行わない(デフォルト)
18193 		 */
18194 		extern int MV1SetLoadModelReMakeNormal(int Flag);
18195 
18196 		/**
18197 		 * モデルを読み込む際に行う法泉の再計算で使用するスムージング角度を設定する(単位はラジアン)
18198 		 */
18199 		extern int MV1SetLoadModelReMakeNormalSmoothingAngle(float SmoothingAngle = 1.562069f);
18200 
18201 		/**
18202 		 * モデルを読み込む際にスケーリングデータを無視するかどうかを設定する
18203 		 *
18204 		 * Params:
18205 		 *      Flag = dxlib_d.DxDataType.TRUE:無視する  dxlib_d.DxDataType.FALSE:無視しない(デフォルト)
18206 		 */
18207 		extern int MV1SetLoadModelIgnoreScaling(int Flag);
18208 
18209 		/**
18210 		 * モデルを読み込む際に座標データの最適化を行うかどうかを設定する
18211 		 *
18212 		 * Params:
18213 		 *      Flag = dxlib_d.DxDataType.TRUE:行う  dxlib_d.DxDataType.FALSE:行わない(デフォルト)
18214 		 */
18215 		extern int MV1SetLoadModelPositionOptimize(int Flag);
18216 
18217 		/**
18218 		 * モデルを読み込む際にポリゴンの辺が接していて、且つ法線の方向が異なる辺に面積0のポリゴンを埋め込むかどうかを設定する、(MV1ファイルの読み込みではこの関数の設定は無視され、ポリゴンの埋め込みは実行されません)
18219 		 *
18220 		 * Params:
18221 		 *      Flag = dxlib_d.DxDataType.TRUE:埋め込む dxlib_d.DxDataType.FALSE:埋め込まない(デフォルト)
18222 		 */
18223 		extern int MV1SetLoadModelNotEqNormalSide_AddZeroAreaPolygon(int Flag);
18224 
18225 		/**
18226 		 * 読み込むモデルの物理演算モードを設定する
18227 		 */
18228 		extern int MV1SetLoadModelUsePhysicsMode(int PhysicsMode /* DX_LOADMODEL_PHYSICS_LOADCALC等 */);
18229 
18230 		/**
18231 		 * 読み込むモデルの物理演算に適用する重力パラメータを設定する
18232 		 */
18233 		extern int MV1SetLoadModelPhysicsWorldGravity(float Gravity);
18234 
18235 		/**
18236 		 * 読み込むモデルの物理演算に適用する重力パラメータを取得する
18237 		 */
18238 		extern float MV1GetLoadModelPhysicsWorldGravity();
18239 
18240 		/**
18241 		 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される重力の設定をする
18242 		 */
18243 		extern int MV1SetLoadCalcPhysicsWorldGravity(int GravityNo, .VECTOR Gravity);
18244 
18245 		/**
18246 		 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される重力を取得する
18247 		 */
18248 		extern .VECTOR MV1GetLoadCalcPhysicsWorldGravity(int GravityNo);
18249 
18250 		/**
18251 		 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される物理演算の時間進行の精度を設定する(0:60FPS  1:120FPS  2:240FPS  3:480FPS  4:960FPS  5:1920FPS)
18252 		 *
18253 		 * Params:
18254 		 *      Precision = ?
18255 		 */
18256 		extern int MV1SetLoadModelPhysicsCalcPrecision(int Precision);
18257 
18258 		/**
18259 		 * PMD, PMXファイルを読み込んだ際のアニメーションのFPSモードを設定する
18260 		 */
18261 		extern int MV1SetLoadModel_PMD_PMX_AnimationFPSMode(int FPSMode /* DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30等 */);
18262 
18263 		/**
18264 		 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は63文字、追加できるワードの数は最大256個
18265 		 */
18266 		extern int MV1AddLoadModelDisablePhysicsNameWord(const (dxlib_d.DxDataType.TCHAR)* NameWord);
18267 
18268 		/**
18269 		 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は63文字、追加できるワードの数は最大256個
18270 		 */
18271 		extern int MV1AddLoadModelDisablePhysicsNameWordWithStrLen(const (dxlib_d.DxDataType.TCHAR)* NameWord, size_t NameWordLength);
18272 
18273 		/**
18274 		 * MV1AddLoadModelDisablePhysicsNameWordで追加した剛体の無効ワードをリセットして無効ワード無しの初期状態に戻す
18275 		 */
18276 		extern int MV1ResetLoadModelDisablePhysicsNameWord();
18277 
18278 		/**
18279 		 * MV1AddLoadModelDisablePhysicsNameWordで追加した剛体の無効ワードの適用ルールを変更する
18280 		 */
18281 		extern int MV1SetLoadModelDisablePhysicsNameWordMode(int DisableNameWordMode /* DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS等 */);
18282 
18283 		/**
18284 		 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット(現在はPMD,PMXのみに効果あり)
18285 		 */
18286 		extern int MV1SetLoadModelAnimFilePath(const (dxlib_d.DxDataType.TCHAR)* FileName);
18287 
18288 		/**
18289 		 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット(現在はPMD,PMXのみに効果あり)
18290 		 */
18291 		extern int MV1SetLoadModelAnimFilePathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength);
18292 
18293 		/**
18294 		 * 読み込むモデルを同時複数描画に対応させるかどうかを設定する、(「対応させる」にすると描画が高速になる可能性がある代わりに消費VRAMが増えます)
18295 		 *
18296 		 * Params:
18297 		 *      Flag = dxlib_d.DxDataType.TRUE:対応させる  dxlib_d.DxDataType.FALSE:対応させない(デフォルト)
18298 		 */
18299 		extern int MV1SetLoadModelUsePackDraw(int Flag);
18300 
18301 		/**
18302 		 * 読み込むモデルのひとつのトライアングルリストで使用できる最大ボーン数を設定する(UseMaxBoneNumで指定できる値の範囲は8~54、0を指定するとデフォルト動作に戻る)
18303 		 */
18304 		extern int MV1SetLoadModelTriangleListUseMaxBoneNum(int UseMaxBoneNum);
18305 
18306 		// モデル保存関係
18307 
18308 		/**
18309 		 * 指定のパスにモデルを保存する
18310 		 *
18311 		 * Returns: 0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった
18312 		 */
18313 		extern int MV1SaveModelToMV1File(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE, int Normal8BitFlag = 1, int Position16BitFlag = 1, int Weight8BitFlag = 0, int Anim16BitFlag = 1);
18314 
18315 		/**
18316 		 * 指定のパスにモデルを保存する
18317 		 *
18318 		 * Returns: 0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった
18319 		 */
18320 		extern int MV1SaveModelToMV1FileWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE, int Normal8BitFlag = 1, int Position16BitFlag = 1, int Weight8BitFlag = 0, int Anim16BitFlag = 1);
18321 
18322 		version (DX_NON_SAVEFUNCTION) {
18323 		} else {
18324 			/**
18325 			 * 指定のパスにモデルをXファイル形式で保存する
18326 			 *
18327 			 * Returns: 0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった
18328 			 */
18329 			extern int MV1SaveModelToXFile(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE);
18330 
18331 			/**
18332 			 * 指定のパスにモデルをXファイル形式で保存する
18333 			 *
18334 			 * Returns: 0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった
18335 			 */
18336 			extern int MV1SaveModelToXFileWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE);
18337 		}
18338 
18339 		// モデル描画関係
18340 
18341 		/**
18342 		 * モデルを描画する
18343 		 */
18344 		extern int MV1DrawModel(int MHandle);
18345 
18346 		/**
18347 		 * モデルの指定のフレームを描画する
18348 		 */
18349 		extern int MV1DrawFrame(int MHandle, int FrameIndex);
18350 
18351 		/**
18352 		 * モデルの指定のメッシュを描画する
18353 		 */
18354 		extern int MV1DrawMesh(int MHandle, int MeshIndex);
18355 
18356 		/**
18357 		 * モデルの指定のトライアングルリストを描画する
18358 		 */
18359 		extern int MV1DrawTriangleList(int MHandle, int TriangleListIndex);
18360 
18361 		/**
18362 		 * モデルのデバッグ描画
18363 		 */
18364 		extern int MV1DrawModelDebug(int MHandle, uint Color, int IsNormalLine, float NormalLineLength, int IsPolyLine, int IsCollisionBox);
18365 
18366 		// 描画設定関係
18367 
18368 		/**
18369 		 * モデルの描画にSetUseVertexShader, SetUsePixelShaderで指定したシェーダーを使用するかどうかを設定する
18370 		 *
18371 		 * Params:
18372 		 *      UseFlag = dxlib_d.DxDataType.TRUE:使用する  dxlib_d.DxDataType.FALSE:使用しない(デフォルト)
18373 		 */
18374 		extern int MV1SetUseOrigShader(int UseFlag);
18375 
18376 		/**
18377 		 * モデルの半透明要素がある部分についての描画モードを設定する
18378 		 */
18379 		extern int MV1SetSemiTransDrawMode(int DrawMode /* DX_SEMITRANSDRAWMODE_ALWAYS等 */);
18380 
18381 		// モデル基本制御関係
18382 
18383 		/**
18384 		 * モデルのローカル座標からワールド座標に変換する行列を得る
18385 		 */
18386 		extern .MATRIX MV1GetLocalWorldMatrix(int MHandle);
18387 
18388 		/**
18389 		 * モデルのローカル座標からワールド座標に変換する行列を得る
18390 		 */
18391 		extern .MATRIX_D MV1GetLocalWorldMatrixD(int MHandle);
18392 
18393 		/**
18394 		 * モデルの座標をセット
18395 		 */
18396 		extern int MV1SetPosition(int MHandle, .VECTOR Position);
18397 
18398 		/**
18399 		 * モデルの座標をセット
18400 		 */
18401 		extern int MV1SetPositionD(int MHandle, .VECTOR_D Position);
18402 
18403 		/**
18404 		 * モデルの座標を取得
18405 		 */
18406 		extern .VECTOR MV1GetPosition(int MHandle);
18407 
18408 		/**
18409 		 * モデルの座標を取得
18410 		 */
18411 		extern .VECTOR_D MV1GetPositionD(int MHandle);
18412 
18413 		/**
18414 		 * モデルの拡大値をセット
18415 		 */
18416 		extern int MV1SetScale(int MHandle, .VECTOR Scale);
18417 
18418 		/**
18419 		 * モデルの拡大値を取得
18420 		 */
18421 		extern .VECTOR MV1GetScale(int MHandle);
18422 
18423 		/**
18424 		 * モデルの回転値をセット(X軸回転→Y軸回転→Z軸回転方式)
18425 		 */
18426 		extern int MV1SetRotationXYZ(int MHandle, .VECTOR Rotate);
18427 
18428 		/**
18429 		 * モデルの回転値を取得(X軸回転→Y軸回転→Z軸回転方式)
18430 		 */
18431 		extern .VECTOR MV1GetRotationXYZ(int MHandle);
18432 
18433 		/**
18434 		 * モデルのZ軸とY軸の向きをセットする
18435 		 */
18436 		extern int MV1SetRotationZYAxis(int MHandle, .VECTOR ZAxisDirection, .VECTOR YAxisDirection, float ZAxisTwistRotate);
18437 
18438 		/**
18439 		 * モデルのY軸の回転値を指定のベクトルの向きを元に設定する、モデルはZ軸のマイナス方向を向いていることを想定するので、そうではない場合はOffsetYAngleで補正する、X軸回転、Z軸回転は0で固定
18440 		 */
18441 		extern int MV1SetRotationYUseDir(int MHandle, .VECTOR Direction, float OffsetYAngle);
18442 
18443 		/**
18444 		 * モデルの回転用行列をセットする
18445 		 */
18446 		extern int MV1SetRotationMatrix(int MHandle, .MATRIX Matrix);
18447 
18448 		/**
18449 		 * モデルの回転用行列を取得する
18450 		 */
18451 		extern .MATRIX MV1GetRotationMatrix(int MHandle);
18452 
18453 		/**
18454 		 * モデルの変形用行列をセットする
18455 		 */
18456 		extern int MV1SetMatrix(int MHandle, .MATRIX Matrix);
18457 
18458 		/**
18459 		 * モデルの変形用行列をセットする
18460 		 */
18461 		extern int MV1SetMatrixD(int MHandle, .MATRIX_D Matrix);
18462 
18463 		/**
18464 		 * モデルの変形用行列を取得する
18465 		 */
18466 		extern .MATRIX MV1GetMatrix(int MHandle);
18467 
18468 		/**
18469 		 * モデルの変形用行列を取得する
18470 		 */
18471 		extern .MATRIX_D MV1GetMatrixD(int MHandle);
18472 
18473 		/**
18474 		 * モデルの表示、非表示状態を変更する
18475 		 *
18476 		 * Params:
18477 		 *      MHandle = ?
18478 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
18479 		 */
18480 		extern int MV1SetVisible(int MHandle, int VisibleFlag);
18481 
18482 		/**
18483 		 * モデルの表示、非表示状態を取得する
18484 		 *
18485 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
18486 		 */
18487 		extern int MV1GetVisible(int MHandle);
18488 
18489 		/**
18490 		 * モデルのメッシュの種類(DX_MV1_MESHCATEGORY_NORMALなど)毎の表示、非表示を設定する
18491 		 *
18492 		 * Params:
18493 		 *      MHandle = ?
18494 		 *      MeshCategory = ?
18495 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
18496 		 */
18497 		extern int MV1SetMeshCategoryVisible(int MHandle, int MeshCategory, int VisibleFlag);
18498 
18499 		/**
18500 		 * モデルのメッシュの種類(DX_MV1_MESHCATEGORY_NORMALなど)毎の表示、非表示を取得する
18501 		 *
18502 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
18503 		 */
18504 		extern int MV1GetMeshCategoryVisible(int MHandle, int MeshCategory);
18505 
18506 		/**
18507 		 * モデルのディフューズカラーのスケール値を設定する(デフォルト値は1.0f)
18508 		 */
18509 		extern int MV1SetDifColorScale(int MHandle, .COLOR_F Scale);
18510 
18511 		/**
18512 		 * モデルのディフューズカラーのスケール値を取得する(デフォルト値は1.0f)
18513 		 */
18514 		extern .COLOR_F MV1GetDifColorScale(int MHandle);
18515 
18516 		/**
18517 		 * モデルのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f)
18518 		 */
18519 		extern int MV1SetSpcColorScale(int MHandle, .COLOR_F Scale);
18520 
18521 		/**
18522 		 * モデルのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f)
18523 		 */
18524 		extern .COLOR_F MV1GetSpcColorScale(int MHandle);
18525 
18526 		/**
18527 		 * モデルのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f)
18528 		 */
18529 		extern int MV1SetEmiColorScale(int MHandle, .COLOR_F Scale);
18530 
18531 		/**
18532 		 * モデルのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f)
18533 		 */
18534 		extern .COLOR_F MV1GetEmiColorScale(int MHandle);
18535 
18536 		/**
18537 		 * モデルのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f)
18538 		 */
18539 		extern int MV1SetAmbColorScale(int MHandle, .COLOR_F Scale);
18540 
18541 		/**
18542 		 * モデルのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f)
18543 		 */
18544 		extern .COLOR_F MV1GetAmbColorScale(int MHandle);
18545 
18546 		/**
18547 		 * モデルに半透明要素があるかどうかを取得する
18548 		 *
18549 		 * Returns: dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない
18550 		 */
18551 		extern int MV1GetSemiTransState(int MHandle);
18552 
18553 		/**
18554 		 * モデルの不透明度を設定する(不透明1.0f~透明 0.0f)
18555 		 */
18556 		extern int MV1SetOpacityRate(int MHandle, float Rate);
18557 
18558 		/**
18559 		 * モデルの不透明度を取得する(不透明1.0f~透明 0.0f)
18560 		 */
18561 		extern float MV1GetOpacityRate(int MHandle);
18562 
18563 		/**
18564 		 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを設定する(描画結果が乗算済みアルファ画像になります)
18565 		 *
18566 		 * Params:
18567 		 *      MHandle = ?
18568 		 *      Flag = dxlib_d.DxDataType.TRUE:RGB値に対してA値を乗算する  dxlib_d.DxDataType.FALSE:乗算しない(デフォルト)
18569 		 */
18570 		extern int MV1SetUseDrawMulAlphaColor(int MHandle, int Flag);
18571 
18572 		/**
18573 		 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを取得する(描画結果が乗算済みアルファ画像になります)
18574 		 *
18575 		 * Returns: dxlib_d.DxDataType.TRUE:RGB値に対してA値を乗算する  dxlib_d.DxDataType.FALSE:乗算しない(デフォルト)
18576 		 */
18577 		extern int MV1GetUseDrawMulAlphaColor(int MHandle);
18578 
18579 		/**
18580 		 * モデルを描画する際にZバッファを使用するかどうかを設定する
18581 		 */
18582 		extern int MV1SetUseZBuffer(int MHandle, int Flag);
18583 
18584 		/**
18585 		 * モデルを描画する際にZバッファに書き込みを行うかどうかを設定する
18586 		 */
18587 		extern int MV1SetWriteZBuffer(int MHandle, int Flag);
18588 
18589 		/**
18590 		 * モデルの描画時のZ値の比較モードを設定する
18591 		 */
18592 		extern int MV1SetZBufferCmpType(int MHandle, int CmpType /* DX_CMP_NEVER等 */);
18593 
18594 		/**
18595 		 * モデルの描画時の書き込むZ値のバイアスを設定する
18596 		 */
18597 		extern int MV1SetZBias(int MHandle, int Bias);
18598 
18599 		/**
18600 		 * モデルの含まれるメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する
18601 		 *
18602 		 * Params:
18603 		 *      MHandle = ?
18604 		 *      UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
18605 		 */
18606 		extern int MV1SetUseVertDifColor(int MHandle, int UseFlag);
18607 
18608 		/**
18609 		 * モデルに含まれるメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する
18610 		 *
18611 		 * Params:
18612 		 *      MHandle = ?
18613 		 *      UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
18614 		 */
18615 		extern int MV1SetUseVertSpcColor(int MHandle, int UseFlag);
18616 
18617 		/**
18618 		 * モデルのテクスチャのサンプルフィルターモードを変更する(FilterModeはDX_DRAWMODE_NEAREST等)
18619 		 *
18620 		 * Params:
18621 		 *      MHandle = ?
18622 		 *      FilterMode = ?
18623 		 */
18624 		extern int MV1SetSampleFilterMode(int MHandle, int FilterMode);
18625 
18626 		/**
18627 		 * モデルの異方性フィルタリングの最大次数を設定する
18628 		 */
18629 		extern int MV1SetMaxAnisotropy(int MHandle, int MaxAnisotropy);
18630 
18631 		/**
18632 		 * モデルをワイヤーフレームで描画するかどうかを設定する
18633 		 */
18634 		extern int MV1SetWireFrameDrawFlag(int MHandle, int Flag);
18635 
18636 		/**
18637 		 * モデルの頂点カラーを現在設定されているマテリアルのカラーにする
18638 		 */
18639 		extern int MV1RefreshVertColorFromMaterial(int MHandle);
18640 
18641 		/**
18642 		 * モデルの物理演算の重力を設定する
18643 		 */
18644 		extern int MV1SetPhysicsWorldGravity(int MHandle, .VECTOR Gravity);
18645 
18646 		/**
18647 		 * モデルの物理演算を指定時間分経過したと仮定して計算する(MillisecondTimeで指定する時間の単位はミリ秒)
18648 		 */
18649 		extern int MV1PhysicsCalculation(int MHandle, float MillisecondTime);
18650 
18651 		/**
18652 		 * モデルの物理演算の状態をリセットする(位置がワープしたとき用)
18653 		 */
18654 		extern int MV1PhysicsResetState(int MHandle);
18655 
18656 		/**
18657 		 * モデルのシェイプ機能を使用するかどうかを設定する
18658 		 *
18659 		 * Params:
18660 		 *      MHandle = ?
18661 		 *      UseFlag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
18662 		 */
18663 		extern int MV1SetUseShapeFlag(int MHandle, int UseFlag);
18664 
18665 		/**
18666 		 * モデルのマテリアル番号順にメッシュを描画するかどうかのフラグを取得する
18667 		 *
18668 		 * Returns: dxlib_d.DxDataType.TRUE:マテリアル番号順に描画  dxlib_d.DxDataType.FALSE:不透明メッシュの後半透明メッシュ
18669 		 */
18670 		extern int MV1GetMaterialNumberOrderFlag(int MHandle);
18671 
18672 		// アニメーション関係
18673 
18674 		/**
18675 		 * アニメーションをアタッチする
18676 		 *
18677 		 * Returns: -1:エラー  0以上:アタッチインデックス
18678 		 */
18679 		extern int MV1AttachAnim(int MHandle, int AnimIndex, int AnimSrcMHandle = -1, int NameCheck = dxlib_d.DxDataType.TRUE);
18680 
18681 		/**
18682 		 * アニメーションをデタッチする
18683 		 */
18684 		extern int MV1DetachAnim(int MHandle, int AttachIndex);
18685 
18686 		/**
18687 		 * アタッチしているアニメーションの再生時間を設定する
18688 		 */
18689 		extern int MV1SetAttachAnimTime(int MHandle, int AttachIndex, float Time);
18690 
18691 		/**
18692 		 * アタッチしているアニメーションの再生時間を取得する
18693 		 */
18694 		extern float MV1GetAttachAnimTime(int MHandle, int AttachIndex);
18695 
18696 		/**
18697 		 * アタッチしているアニメーションの総時間を得る
18698 		 */
18699 		extern float MV1GetAttachAnimTotalTime(int MHandle, int AttachIndex);
18700 
18701 		/**
18702 		 * アタッチしているアニメーションのブレンド率を設定する
18703 		 */
18704 		extern int MV1SetAttachAnimBlendRate(int MHandle, int AttachIndex, float Rate = 1.0f);
18705 
18706 		/**
18707 		 * アタッチしているアニメーションのブレンド率を取得する
18708 		 */
18709 		extern float MV1GetAttachAnimBlendRate(int MHandle, int AttachIndex);
18710 
18711 		/**
18712 		 * アタッチしているアニメーションのブレンド率を設定する(フレーム単位)
18713 		 */
18714 		extern int MV1SetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex, float Rate, int SetChild = dxlib_d.DxDataType.TRUE);
18715 
18716 		/**
18717 		 * アタッチしているアニメーションのブレンド率を設定する(フレーム単位)
18718 		 */
18719 		extern float MV1GetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex);
18720 
18721 		/**
18722 		 * アタッチしているアニメーションのアニメーションインデックスを取得する
18723 		 */
18724 		extern int MV1GetAttachAnim(int MHandle, int AttachIndex);
18725 
18726 		/**
18727 		 * アタッチしているアニメーションのシェイプを使用するかどうかを設定する
18728 		 *
18729 		 * Params:
18730 		 *      MHandle = ?
18731 		 *      AttachIndex = ?
18732 		 *      UseFlag = dxlib_d.DxDataType.TRUE:使用する(デフォルト)  dxlib_d.DxDataType.FALSE:使用しない
18733 		 */
18734 		extern int MV1SetAttachAnimUseShapeFlag(int MHandle, int AttachIndex, int UseFlag);
18735 
18736 		/**
18737 		 * アタッチしているアニメーションのシェイプを使用するかどうかを取得する
18738 		 */
18739 		extern int MV1GetAttachAnimUseShapeFlag(int MHandle, int AttachIndex);
18740 
18741 		/**
18742 		 * アタッチしているアニメーションの指定のフレームの現在のローカル座標を取得する
18743 		 */
18744 		extern .VECTOR MV1GetAttachAnimFrameLocalPosition(int MHandle, int AttachIndex, int FrameIndex);
18745 
18746 		/**
18747 		 * アタッチしているアニメーションの指定のフレームの現在のローカル変換行列を取得する
18748 		 */
18749 		extern .MATRIX MV1GetAttachAnimFrameLocalMatrix(int MHandle, int AttachIndex, int FrameIndex);
18750 
18751 		/**
18752 		 * アニメーションの数を取得する
18753 		 */
18754 		extern int MV1GetAnimNum(int MHandle);
18755 
18756 		/**
18757 		 * 指定番号のアニメーション名を取得する
18758 		 *
18759 		 * Returns: null:エラー
18760 		 */
18761 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetAnimName(int MHandle, int AnimIndex);
18762 
18763 		/**
18764 		 * 指定番号のアニメーション名を変更する
18765 		 */
18766 		extern int MV1SetAnimName(int MHandle, int AnimIndex, const (dxlib_d.DxDataType.TCHAR)* AnimName);
18767 
18768 		/**
18769 		 * 指定番号のアニメーション名を変更する
18770 		 */
18771 		extern int MV1SetAnimNameWithStrLen(int MHandle, int AnimIndex, const (dxlib_d.DxDataType.TCHAR)* AnimName, size_t AnimNameLength);
18772 
18773 		/**
18774 		 * 指定名のアニメーション番号を取得する
18775 		 *
18776 		 * Returns: -1:エラー
18777 		 */
18778 		extern int MV1GetAnimIndex(int MHandle, const (dxlib_d.DxDataType.TCHAR)* AnimName);
18779 
18780 		/**
18781 		 * 指定名のアニメーション番号を取得する
18782 		 *
18783 		 * Returns: -1:エラー
18784 		 */
18785 		extern int MV1GetAnimIndexWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* AnimName, size_t AnimNameLength);
18786 
18787 		/**
18788 		 * 指定番号のアニメーションの総時間を得る
18789 		 */
18790 		extern float MV1GetAnimTotalTime(int MHandle, int AnimIndex);
18791 
18792 		/**
18793 		 * 指定のアニメーションがターゲットとするフレームの数を取得する
18794 		 */
18795 		extern int MV1GetAnimTargetFrameNum(int MHandle, int AnimIndex);
18796 
18797 		/**
18798 		 * 指定のアニメーションがターゲットとするフレームの名前を取得する
18799 		 */
18800 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetAnimTargetFrameName(int MHandle, int AnimIndex, int AnimFrameIndex);
18801 
18802 		/**
18803 		 * 指定のアニメーションがターゲットとするフレームの番号を取得する
18804 		 */
18805 		extern int MV1GetAnimTargetFrame(int MHandle, int AnimIndex, int AnimFrameIndex);
18806 
18807 		/**
18808 		 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットの数を取得する
18809 		 */
18810 		extern int MV1GetAnimTargetFrameKeySetNum(int MHandle, int AnimIndex, int AnimFrameIndex);
18811 
18812 		/**
18813 		 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットキーセットインデックスを取得する
18814 		 */
18815 		extern int MV1GetAnimTargetFrameKeySet(int MHandle, int AnimIndex, int AnimFrameIndex, int Index);
18816 
18817 		/**
18818 		 * モデルに含まれるアニメーションキーセットの総数を得る
18819 		 */
18820 		extern int MV1GetAnimKeySetNum(int MHandle);
18821 
18822 		/**
18823 		 * 指定のアニメーションキーセットのタイプを取得する(MV1_ANIMKEY_TYPE_QUATERNION等)
18824 		 */
18825 		extern int MV1GetAnimKeySetType(int MHandle, int AnimKeySetIndex);
18826 
18827 		/**
18828 		 * 指定のアニメーションキーセットのデータタイプを取得する(MV1_ANIMKEY_DATATYPE_ROTATE等)
18829 		 */
18830 		extern int MV1GetAnimKeySetDataType(int MHandle, int AnimKeySetIndex);
18831 
18832 		/**
18833 		 * 指定のアニメーションキーセットのキーの時間データタイプを取得する(MV1_ANIMKEY_TIME_TYPE_ONE等)
18834 		 */
18835 		extern int MV1GetAnimKeySetTimeType(int MHandle, int AnimKeySetIndex);
18836 
18837 		/**
18838 		 * 指定のアニメーションキーセットのキーの数を取得する
18839 		 */
18840 		extern int MV1GetAnimKeySetDataNum(int MHandle, int AnimKeySetIndex);
18841 
18842 		/**
18843 		 * 指定のアニメーションキーセットのキーの時間を取得する
18844 		 */
18845 		extern float MV1GetAnimKeyDataTime(int MHandle, int AnimKeySetIndex, int Index);
18846 
18847 		/**
18848 		 * 指定のアニメーションキーセットの指定の時間でのキーの番号を取得する
18849 		 */
18850 		extern int MV1GetAnimKeyDataIndexFromTime(int MHandle, int AnimKeySetIndex, float Time);
18851 
18852 		/**
18853 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_QUATERNIONでは無かった場合は失敗する
18854 		 */
18855 		extern .FLOAT4 MV1GetAnimKeyDataToQuaternion(int MHandle, int AnimKeySetIndex, int Index);
18856 
18857 		/**
18858 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_QUATERNIONでは無かった場合は失敗する(時間指定版)
18859 		 */
18860 		extern .FLOAT4 MV1GetAnimKeyDataToQuaternionFromTime(int MHandle, int AnimKeySetIndex, float Time);
18861 
18862 		/**
18863 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_VECTORでは無かった場合は失敗する
18864 		 */
18865 		extern .VECTOR MV1GetAnimKeyDataToVector(int MHandle, int AnimKeySetIndex, int Index);
18866 
18867 		/**
18868 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_VECTORでは無かった場合は失敗する(時間指定版)
18869 		 */
18870 		extern .VECTOR MV1GetAnimKeyDataToVectorFromTime(int MHandle, int AnimKeySetIndex, float Time);
18871 
18872 		/**
18873 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3では無かった場合は失敗する
18874 		 */
18875 		extern .MATRIX MV1GetAnimKeyDataToMatrix(int MHandle, int AnimKeySetIndex, int Index);
18876 
18877 		/**
18878 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3では無かった場合は失敗する(時間指定版)
18879 		 */
18880 		extern .MATRIX MV1GetAnimKeyDataToMatrixFromTime(int MHandle, int AnimKeySetIndex, float Time);
18881 
18882 		/**
18883 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_FLATでは無かった場合は失敗する
18884 		 */
18885 		extern float MV1GetAnimKeyDataToFlat(int MHandle, int AnimKeySetIndex, int Index);
18886 
18887 		/**
18888 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_FLATでは無かった場合は失敗する(時間指定版)
18889 		 */
18890 		extern float MV1GetAnimKeyDataToFlatFromTime(int MHandle, int AnimKeySetIndex, float Time);
18891 
18892 		/**
18893 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_LINEARでは無かった場合は失敗する
18894 		 */
18895 		extern float MV1GetAnimKeyDataToLinear(int MHandle, int AnimKeySetIndex, int Index);
18896 
18897 		/**
18898 		 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_LINEARでは無かった場合は失敗する(時間指定版)
18899 		 */
18900 		extern float MV1GetAnimKeyDataToLinearFromTime(int MHandle, int AnimKeySetIndex, float Time);
18901 
18902 		// マテリアル関係
18903 
18904 		/**
18905 		 * モデルで使用しているマテリアルの数を取得する
18906 		 */
18907 		extern int MV1GetMaterialNum(int MHandle);
18908 
18909 		/**
18910 		 * 指定のマテリアルの名前を取得する
18911 		 */
18912 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetMaterialName(int MHandle, int MaterialIndex);
18913 
18914 		/**
18915 		 * 全てのマテリアルのタイプを変更する
18916 		 *
18917 		 * Params:
18918 		 *      MHandle = ?
18919 		 *      Type = DX_MATERIAL_TYPE_NORMALなど
18920 		 */
18921 		extern int MV1SetMaterialTypeAll(int MHandle, int Type);
18922 
18923 		/**
18924 		 * 指定のマテリアルのタイプを変更する
18925 		 *
18926 		 * Params:
18927 		 *      MHandle = ?
18928 		 *      MaterialIndex = ?
18929 		 *      Type = DX_MATERIAL_TYPE_NORMAL
18930 		 */
18931 		extern int MV1SetMaterialType(int MHandle, int MaterialIndex, int Type);
18932 
18933 		/**
18934 		 * 指定のマテリアルのタイプを取得する
18935 		 *
18936 		 * Returns: DX_MATERIAL_TYPE_NORMALなど
18937 		 */
18938 		extern int MV1GetMaterialType(int MHandle, int MaterialIndex);
18939 
18940 		/**
18941 		 * 全てのマテリアルのタイプ別パラメータを変更する(マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLORなどで使用)
18942 		 */
18943 		extern int MV1SetMaterialTypeParamAll(int MHandle, ...);
18944 
18945 		/**
18946 		 * 指定のマテリアルのタイプ別パラメータを変更する(マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLORなどで使用)
18947 		 */
18948 		extern int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, ...);
18949 
18950 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる));
18951 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CLIP_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる), float ClipParam = 閾値(この値未満が0.0fになる));
18952 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUALの場合 */ float CmpParam = 比較値(この値以上の場合は1.0fが、未満の場合は0.0fが書き込まれる));
18953 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる));
18954 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_CLIP_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる), float ClipParam = 閾値(この値未満が0.0fになる));
18955 		// int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUALの場合 */ float CmpParam = 比較値(この値以上の場合は1.0fが、未満の場合は0.0fが書き込まれる));
18956 
18957 		/**
18958 		 * 指定のマテリアルのディフューズカラーを設定する
18959 		 */
18960 		extern int MV1SetMaterialDifColor(int MHandle, int MaterialIndex, .COLOR_F Color);
18961 
18962 		/**
18963 		 * 指定のマテリアルのディフューズカラーを取得する
18964 		 */
18965 		extern .COLOR_F MV1GetMaterialDifColor(int MHandle, int MaterialIndex);
18966 
18967 		/**
18968 		 * 指定のマテリアルのスペキュラカラーを設定する
18969 		 */
18970 		extern int MV1SetMaterialSpcColor(int MHandle, int MaterialIndex, .COLOR_F Color);
18971 
18972 		/**
18973 		 * 指定のマテリアルのスペキュラカラーを取得する
18974 		 */
18975 		extern .COLOR_F MV1GetMaterialSpcColor(int MHandle, int MaterialIndex);
18976 
18977 		/**
18978 		 * 指定のマテリアルのエミッシブカラーを設定する
18979 		 */
18980 		extern int MV1SetMaterialEmiColor(int MHandle, int MaterialIndex, .COLOR_F Color);
18981 
18982 		/**
18983 		 * 指定のマテリアルのエミッシブカラーを取得する
18984 		 */
18985 		extern .COLOR_F MV1GetMaterialEmiColor(int MHandle, int MaterialIndex);
18986 
18987 		/**
18988 		 * 指定のマテリアルのアンビエントカラーを設定する
18989 		 */
18990 		extern int MV1SetMaterialAmbColor(int MHandle, int MaterialIndex, .COLOR_F Color);
18991 
18992 		/**
18993 		 * 指定のマテリアルのアンビエントカラーを取得する
18994 		 */
18995 		extern .COLOR_F MV1GetMaterialAmbColor(int MHandle, int MaterialIndex);
18996 
18997 		/**
18998 		 * 指定のマテリアルのスペキュラの強さを設定する
18999 		 */
19000 		extern int MV1SetMaterialSpcPower(int MHandle, int MaterialIndex, float Power);
19001 
19002 		/**
19003 		 * 指定のマテリアルのスペキュラの強さを取得する
19004 		 */
19005 		extern float MV1GetMaterialSpcPower(int MHandle, int MaterialIndex);
19006 
19007 		/**
19008 		 * 指定のマテリアルでディフューズマップとして使用するテクスチャを指定する
19009 		 */
19010 		extern int MV1SetMaterialDifMapTexture(int MHandle, int MaterialIndex, int TexIndex);
19011 
19012 		/**
19013 		 * 指定のマテリアルでディフューズマップとして使用されているテクスチャのインデックスを取得する
19014 		 */
19015 		extern int MV1GetMaterialDifMapTexture(int MHandle, int MaterialIndex);
19016 
19017 		/**
19018 		 * 指定のマテリアルでサブディフューズマップとして使用するテクスチャを指定する
19019 		 */
19020 		extern int MV1SetMaterialSubDifMapTexture(int MHandle, int MaterialIndex, int TexIndex);
19021 
19022 		/**
19023 		 * 指定のマテリアルでサブディフューズマップとして使用されているテクスチャのインデックスを取得する
19024 		 */
19025 		extern int MV1GetMaterialSubDifMapTexture(int MHandle, int MaterialIndex);
19026 
19027 		/**
19028 		 * 指定のマテリアルでスペキュラマップとして使用するテクスチャを指定する
19029 		 */
19030 		extern int MV1SetMaterialSpcMapTexture(int MHandle, int MaterialIndex, int TexIndex);
19031 
19032 		/**
19033 		 * 指定のマテリアルでスペキュラマップとして使用されているテクスチャのインデックスを取得する
19034 		 */
19035 		extern int MV1GetMaterialSpcMapTexture(int MHandle, int MaterialIndex);
19036 
19037 		/**
19038 		 * 指定のマテリアルで法線マップとして使用されているテクスチャのインデックスを取得する
19039 		 */
19040 		extern int MV1GetMaterialNormalMapTexture(int MHandle, int MaterialIndex);
19041 
19042 		/**
19043 		 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを設定する
19044 		 */
19045 		extern int MV1SetMaterialDifGradTexture(int MHandle, int MaterialIndex, int TexIndex);
19046 
19047 		/**
19048 		 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを取得する
19049 		 */
19050 		extern int MV1GetMaterialDifGradTexture(int MHandle, int MaterialIndex);
19051 
19052 		/**
19053 		 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを設定する
19054 		 */
19055 		extern int MV1SetMaterialSpcGradTexture(int MHandle, int MaterialIndex, int TexIndex);
19056 
19057 		/**
19058 		 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを取得する
19059 		 */
19060 		extern int MV1GetMaterialSpcGradTexture(int MHandle, int MaterialIndex);
19061 
19062 		/**
19063 		 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを設定する
19064 		 */
19065 		extern int MV1SetMaterialSphereMapTexture(int MHandle, int MaterialIndex, int TexIndex);
19066 
19067 		/**
19068 		 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを取得する
19069 		 */
19070 		extern int MV1GetMaterialSphereMapTexture(int MHandle, int MaterialIndex);
19071 
19072 		/**
19073 		 * 全てのマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19074 		 */
19075 		extern int MV1SetMaterialDifGradBlendTypeAll(int MHandle, int BlendType);
19076 
19077 		/**
19078 		 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19079 		 */
19080 		extern int MV1SetMaterialDifGradBlendType(int MHandle, int MaterialIndex, int BlendType);
19081 
19082 		/**
19083 		 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19084 		 */
19085 		extern int MV1GetMaterialDifGradBlendType(int MHandle, int MaterialIndex);
19086 
19087 		/**
19088 		 * 全てのマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19089 		 */
19090 		extern int MV1SetMaterialSpcGradBlendTypeAll(int MHandle, int BlendType);
19091 
19092 		/**
19093 		 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19094 		 */
19095 		extern int MV1SetMaterialSpcGradBlendType(int MHandle, int MaterialIndex, int BlendType);
19096 
19097 		/**
19098 		 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19099 		 */
19100 		extern int MV1GetMaterialSpcGradBlendType(int MHandle, int MaterialIndex);
19101 
19102 		/**
19103 		 * 全てのマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19104 		 */
19105 		extern int MV1SetMaterialSphereMapBlendTypeAll(int MHandle, int BlendType);
19106 
19107 		/**
19108 		 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19109 		 */
19110 		extern int MV1SetMaterialSphereMapBlendType(int MHandle, int MaterialIndex, int BlendType);
19111 
19112 		/**
19113 		 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど)
19114 		 */
19115 		extern int MV1GetMaterialSphereMapBlendType(int MHandle, int MaterialIndex);
19116 
19117 		/**
19118 		 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する
19119 		 */
19120 		extern int MV1SetMaterialOutLineWidthAll(int MHandle, float Width);
19121 
19122 		/**
19123 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する
19124 		 */
19125 		extern int MV1SetMaterialOutLineWidth(int MHandle, int MaterialIndex, float Width);
19126 
19127 		/**
19128 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを取得する
19129 		 */
19130 		extern float MV1GetMaterialOutLineWidth(int MHandle, int MaterialIndex);
19131 
19132 		/**
19133 		 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する
19134 		 */
19135 		extern int MV1SetMaterialOutLineDotWidthAll(int MHandle, float Width);
19136 
19137 		/**
19138 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する
19139 		 */
19140 		extern int MV1SetMaterialOutLineDotWidth(int MHandle, int MaterialIndex, float Width);
19141 
19142 		/**
19143 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを取得する
19144 		 */
19145 		extern float MV1GetMaterialOutLineDotWidth(int MHandle, int MaterialIndex);
19146 
19147 		/**
19148 		 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する
19149 		 */
19150 		extern int MV1SetMaterialOutLineColorAll(int MHandle, .COLOR_F Color);
19151 
19152 		/**
19153 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する
19154 		 */
19155 		extern int MV1SetMaterialOutLineColor(int MHandle, int MaterialIndex, .COLOR_F Color);
19156 
19157 		/**
19158 		 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を取得する
19159 		 */
19160 		extern .COLOR_F MV1GetMaterialOutLineColor(int MHandle, int MaterialIndex);
19161 
19162 		/**
19163 		 * 全てのマテリアルの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等)
19164 		 */
19165 		extern int MV1SetMaterialDrawBlendModeAll(int MHandle, int BlendMode);
19166 
19167 		/**
19168 		 * 指定のマテリアルの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等)
19169 		 */
19170 		extern int MV1SetMaterialDrawBlendMode(int MHandle, int MaterialIndex, int BlendMode);
19171 
19172 		/**
19173 		 * 指定のマテリアルの描画ブレンドモードを取得する(DX_BLENDMODE_ALPHA等)
19174 		 */
19175 		extern int MV1GetMaterialDrawBlendMode(int MHandle, int MaterialIndex);
19176 
19177 		/**
19178 		 * 全てのマテリアルの描画ブレンドパラメータを設定する
19179 		 */
19180 		extern int MV1SetMaterialDrawBlendParamAll(int MHandle, int BlendParam);
19181 
19182 		/**
19183 		 * 指定のマテリアルの描画ブレンドパラメータを設定する
19184 		 */
19185 		extern int MV1SetMaterialDrawBlendParam(int MHandle, int MaterialIndex, int BlendParam);
19186 
19187 		/**
19188 		 * 指定のマテリアルの描画ブレンドパラメータを設定する
19189 		 */
19190 		extern int MV1GetMaterialDrawBlendParam(int MHandle, int MaterialIndex);
19191 
19192 		/**
19193 		 * 全てのマテリアルの描画時のアルファテストの設定を行う
19194 		 *
19195 		 * Params:
19196 		 *      MHandle = ?
19197 		 *      Enable = αテストを行うかどうか(dxlib_d.DxDataType.TRUE:行う  dxlib_d.DxDataType.FALSE:行わない(デフォルト))
19198 		 *      Mode = テストモード(DX_CMP_GREATER等)
19199 		 *      Param = 描画アルファ値との比較に使用する値(0~255)
19200 		 */
19201 		extern int MV1SetMaterialDrawAlphaTestAll(int MHandle, int Enable, int Mode, int Param);
19202 
19203 		/**
19204 		 * 指定のマテリアルの描画時のアルファテストの設定を行う
19205 		 *
19206 		 * Params:
19207 		 *      MHandle = ?
19208 		 *      MaterialIndex = ?
19209 		 *      Enable = αテストを行うかどうか(dxlib_d.DxDataType.TRUE:行う  dxlib_d.DxDataType.FALSE:行わない(デフォルト))
19210 		 *      Mode = テストモード(DX_CMP_GREATER等)
19211 		 *      Param = 描画アルファ値との比較に使用する値(0~255)
19212 		 */
19213 		extern int MV1SetMaterialDrawAlphaTest(int MHandle, int MaterialIndex, int Enable, int Mode, int Param);
19214 
19215 		/**
19216 		 * 指定のマテリアルの描画時のアルファテストを行うかどうかを取得する
19217 		 *
19218 		 * Returns: dxlib_d.DxDataType.TRUE:アルファテストを行う  dxlib_d.DxDataType.FALSE:アルファテストを行わない
19219 		 */
19220 		extern int MV1GetMaterialDrawAlphaTestEnable(int MHandle, int MaterialIndex);
19221 
19222 		/**
19223 		 * 指定のマテリアルの描画時のアルファテストのテストモードを取得する
19224 		 *
19225 		 * Returns: テストモード(DX_CMP_GREATER等)
19226 		 */
19227 		extern int MV1GetMaterialDrawAlphaTestMode(int MHandle, int MaterialIndex);
19228 
19229 		/**
19230 		 * 指定のマテリアルの描画時のアルファテストの描画アルファ地との比較に使用する値(0~255)を取得する
19231 		 */
19232 		extern int MV1GetMaterialDrawAlphaTestParam(int MHandle, int MaterialIndex);
19233 
19234 		// テクスチャ関係
19235 
19236 		/**
19237 		 * テクスチャの数を取得
19238 		 */
19239 		extern int MV1GetTextureNum(int MHandle);
19240 
19241 		/**
19242 		 * テクスチャの名前を取得
19243 		 */
19244 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureName(int MHandle, int TexIndex);
19245 
19246 		/**
19247 		 * カラーテクスチャのファイルパスを変更する
19248 		 */
19249 		extern int MV1SetTextureColorFilePath(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath);
19250 
19251 		/**
19252 		 * カラーテクスチャのファイルパスを変更する
19253 		 */
19254 		extern int MV1SetTextureColorFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
19255 
19256 		/**
19257 		 * カラーテクスチャのファイルパスを取得
19258 		 */
19259 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureColorFilePath(int MHandle, int TexIndex);
19260 
19261 		/**
19262 		 * アルファテクスチャのファイルパスを変更する
19263 		 */
19264 		extern int MV1SetTextureAlphaFilePath(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath);
19265 
19266 		/**
19267 		 * アルファテクスチャのファイルパスを変更する
19268 		 */
19269 		extern int MV1SetTextureAlphaFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
19270 
19271 		/**
19272 		 * アルファテクスチャのファイルパスを取得
19273 		 */
19274 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureAlphaFilePath(int MHandle, int TexIndex);
19275 
19276 		/**
19277 		 * テクスチャで使用するグラフィックハンドルを変更する(GrHandleを-1にすると解除)
19278 		 */
19279 		extern int MV1SetTextureGraphHandle(int MHandle, int TexIndex, int GrHandle, int SemiTransFlag);
19280 
19281 		/**
19282 		 * テクスチャのグラフィックハンドルを取得する
19283 		 */
19284 		extern int MV1GetTextureGraphHandle(int MHandle, int TexIndex);
19285 
19286 		/**
19287 		 * テクスチャのアドレスモードを設定する(AddUModeの値はDX_TEXADDRESS_WRAP等)
19288 		 */
19289 		extern int MV1SetTextureAddressMode(int MHandle, int TexIndex, int AddrUMode, int AddrVMode);
19290 
19291 		/**
19292 		 * テクスチャのU値のアドレスモードを取得する
19293 		 *
19294 		 * Returns: DX_TEXADDRESS_WRAP等
19295 		 */
19296 		extern int MV1GetTextureAddressModeU(int MHandle, int TexIndex);
19297 
19298 		/**
19299 		 * テクスチャのV値のアドレスモードを取得する
19300 		 *
19301 		 * Returns: DX_TEXADDRESS_WRAP等
19302 		 */
19303 		extern int MV1GetTextureAddressModeV(int MHandle, int TexIndex);
19304 
19305 		/**
19306 		 * テクスチャの幅を取得する
19307 		 */
19308 		extern int MV1GetTextureWidth(int MHandle, int TexIndex);
19309 
19310 		/**
19311 		 * テクスチャの高さを取得する
19312 		 */
19313 		extern int MV1GetTextureHeight(int MHandle, int TexIndex);
19314 
19315 		/**
19316 		 * テクスチャに半透明要素があるかどうかを取得する
19317 		 *
19318 		 * Returns: dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない
19319 		 */
19320 		extern int MV1GetTextureSemiTransState(int MHandle, int TexIndex);
19321 
19322 		/**
19323 		 * テクスチャで使用している画像がバンプマップかどうかを設定する
19324 		 */
19325 		extern int MV1SetTextureBumpImageFlag(int MHandle, int TexIndex, int Flag);
19326 
19327 		/**
19328 		 * テクスチャがバンプマップかどうかを取得する
19329 		 *
19330 		 * Returns: dxlib_d.DxDataType.TRUE:バンプマップ  dxlib_d.DxDataType.FALSE:違う
19331 		 */
19332 		extern int MV1GetTextureBumpImageFlag(int MHandle, int TexIndex);
19333 
19334 		/**
19335 		 * バンプマップ画像の場合の隣のピクセルとの距離を設定する
19336 		 */
19337 		extern int MV1SetTextureBumpImageNextPixelLength(int MHandle, int TexIndex, float Length);
19338 
19339 		/**
19340 		 * バンプマップ画像の場合の隣のピクセルとの距離を取得する
19341 		 */
19342 		extern float MV1GetTextureBumpImageNextPixelLength(int MHandle, int TexIndex);
19343 
19344 		/**
19345 		 * テクスチャのフィルタリングモードを設定する
19346 		 */
19347 		extern int MV1SetTextureSampleFilterMode(int MHandle, int TexIndex, int FilterMode);
19348 
19349 		/**
19350 		 * テクスチャのフィルタリングモードを取得する
19351 		 *
19352 		 * Returns: DX_DRAWMODE_BILINEAR等
19353 		 */
19354 		extern int MV1GetTextureSampleFilterMode(int MHandle, int TexIndex);
19355 
19356 		/**
19357 		 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む
19358 		 *
19359 		 * Returns: -1:エラー  0以上:グラフィックハンドル
19360 		 */
19361 		extern int MV1LoadTexture(const (dxlib_d.DxDataType.TCHAR)* FilePath);
19362 
19363 		/**
19364 		 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む
19365 		 *
19366 		 * Returns: -1:エラー  0以上:グラフィックハンドル
19367 		 */
19368 		extern int MV1LoadTextureWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
19369 
19370 		// フレーム関係
19371 
19372 		/**
19373 		 * フレームの数を取得する
19374 		 */
19375 		extern int MV1GetFrameNum(int MHandle);
19376 
19377 		/**
19378 		 * フレームの名前からモデル中のフレームのフレームインデックスを取得する
19379 		 *
19380 		 * Returns: 無かった場合は-1
19381 		 */
19382 		extern int MV1SearchFrame(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FrameName);
19383 
19384 		/**
19385 		 * フレームの名前からモデル中のフレームのフレームインデックスを取得する
19386 		 *
19387 		 * Returns: 無かった場合は-1
19388 		 */
19389 		extern int MV1SearchFrameWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FrameName, size_t FrameNameLength);
19390 
19391 		/**
19392 		 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する(名前指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する)
19393 		 *
19394 		 * Returns: 無かった場合は-1
19395 		 */
19396 		extern int MV1SearchFrameChild(int MHandle, int FrameIndex = -1, const (dxlib_d.DxDataType.TCHAR)* ChildName = null);
19397 
19398 		/**
19399 		 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する(名前指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する)
19400 		 *
19401 		 * Returns: 無かった場合は-1
19402 		 */
19403 		extern int MV1SearchFrameChildWithStrLen(int MHandle, int FrameIndex = -1, const (dxlib_d.DxDataType.TCHAR)* ChildName = null, size_t ChildNameLength = 0);
19404 
19405 		/**
19406 		 * 指定のフレームの名前を取得する
19407 		 *
19408 		 * Returns: エラーの場合はNULL
19409 		 */
19410 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetFrameName(int MHandle, int FrameIndex);
19411 
19412 		/**
19413 		 * 指定のフレームの名前を取得する
19414 		 *
19415 		 * Returns: -1:エラー  -1以外:文字列のサイズ
19416 		 */
19417 		extern int MV1GetFrameName2(int MHandle, int FrameIndex, dxlib_d.DxDataType.TCHAR* StrBuffer);
19418 
19419 		/**
19420 		 * 指定のフレームの親フレームのインデックスを得る
19421 		 *
19422 		 * Returns: 親がいない場合は-2
19423 		 */
19424 		extern int MV1GetFrameParent(int MHandle, int FrameIndex);
19425 
19426 		/**
19427 		 * 指定のフレームの子フレームの数を取得する(FrameIndexを-1にすると親を持たないフレームの数が返ってくる)
19428 		 */
19429 		extern int MV1GetFrameChildNum(int MHandle, int FrameIndex = -1);
19430 
19431 		/**
19432 		 * 指定のフレームの子フレームのフレームインデックスを取得する(番号指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する)
19433 		 *
19434 		 * Returns: エラーの場合は-1
19435 		 */
19436 		extern int MV1GetFrameChild(int MHandle, int FrameIndex = -1, int ChildIndex = 0);
19437 
19438 		/**
19439 		 * 指定のフレームの座標を取得する
19440 		 */
19441 		extern .VECTOR MV1GetFramePosition(int MHandle, int FrameIndex);
19442 
19443 		/**
19444 		 * 指定のフレームの座標を取得する
19445 		 */
19446 		extern .VECTOR_D MV1GetFramePositionD(int MHandle, int FrameIndex);
19447 
19448 		/**
19449 		 * 指定のフレームの初期状態での座標変換行列を取得する
19450 		 */
19451 		extern .MATRIX MV1GetFrameBaseLocalMatrix(int MHandle, int FrameIndex);
19452 
19453 		/**
19454 		 * 指定のフレームの初期状態での座標変換行列を取得する
19455 		 */
19456 		extern .MATRIX_D MV1GetFrameBaseLocalMatrixD(int MHandle, int FrameIndex);
19457 
19458 		/**
19459 		 * 指定のフレームの座標変換行列を取得する
19460 		 */
19461 		extern .MATRIX MV1GetFrameLocalMatrix(int MHandle, int FrameIndex);
19462 
19463 		/**
19464 		 * 指定のフレームの座標変換行列を取得する
19465 		 */
19466 		extern .MATRIX_D MV1GetFrameLocalMatrixD(int MHandle, int FrameIndex);
19467 
19468 		/**
19469 		 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る
19470 		 */
19471 		extern .MATRIX MV1GetFrameLocalWorldMatrix(int MHandle, int FrameIndex);
19472 
19473 		/**
19474 		 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る
19475 		 */
19476 		extern .MATRIX_D MV1GetFrameLocalWorldMatrixD(int MHandle, int FrameIndex);
19477 
19478 		/**
19479 		 * 指定のフレームの座標変換行列(ローカル行列)を設定する
19480 		 */
19481 		extern int MV1SetFrameUserLocalMatrix(int MHandle, int FrameIndex, .MATRIX Matrix);
19482 
19483 		/**
19484 		 * 指定のフレームの座標変換行列(ローカル行列)を設定する
19485 		 */
19486 		extern int MV1SetFrameUserLocalMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix);
19487 
19488 		/**
19489 		 * 指定のフレームの座標変換行列(ローカル行列)をデフォルトに戻す
19490 		 */
19491 		extern int MV1ResetFrameUserLocalMatrix(int MHandle, int FrameIndex);
19492 
19493 		/**
19494 		 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)を設定する
19495 		 */
19496 		extern int MV1SetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex, .MATRIX Matrix);
19497 
19498 		/**
19499 		 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)を設定する
19500 		 */
19501 		extern int MV1SetFrameUserLocalWorldMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix);
19502 
19503 		/**
19504 		 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)をデフォルトに戻す
19505 		 */
19506 		extern int MV1ResetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex);
19507 
19508 		/**
19509 		 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る
19510 		 */
19511 		extern .VECTOR MV1GetFrameMaxVertexLocalPosition(int MHandle, int FrameIndex);
19512 
19513 		/**
19514 		 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る
19515 		 */
19516 		extern .VECTOR_D MV1GetFrameMaxVertexLocalPositionD(int MHandle, int FrameIndex);
19517 
19518 		/**
19519 		 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る
19520 		 */
19521 		extern .VECTOR MV1GetFrameMinVertexLocalPosition(int MHandle, int FrameIndex);
19522 
19523 		/**
19524 		 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る
19525 		 */
19526 		extern .VECTOR_D MV1GetFrameMinVertexLocalPositionD(int MHandle, int FrameIndex);
19527 
19528 		/**
19529 		 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る
19530 		 */
19531 		extern .VECTOR MV1GetFrameAvgVertexLocalPosition(int MHandle, int FrameIndex);
19532 
19533 		/**
19534 		 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る
19535 		 */
19536 		extern .VECTOR_D MV1GetFrameAvgVertexLocalPositionD(int MHandle, int FrameIndex);
19537 
19538 		/**
19539 		 * 指定のフレームに含まれる頂点の数を取得する
19540 		 */
19541 		extern int MV1GetFrameVertexNum(int MHandle, int FrameIndex);
19542 
19543 		/**
19544 		 * 指定のフレームに含まれるポリゴンの数を取得する
19545 		 */
19546 		extern int MV1GetFrameTriangleNum(int MHandle, int FrameIndex);
19547 
19548 		/**
19549 		 * 指定のフレームが持つメッシュの数を取得する
19550 		 */
19551 		extern int MV1GetFrameMeshNum(int MHandle, int FrameIndex);
19552 
19553 		/**
19554 		 * 指定のフレームが持つメッシュのメッシュインデックスを取得する
19555 		 */
19556 		extern int MV1GetFrameMesh(int MHandle, int FrameIndex, int Index);
19557 
19558 		/**
19559 		 * 指定のフレームの表示、非表示状態を変更する
19560 		 *
19561 		 * Params:
19562 		 *      MHandle = ?
19563 		 *      FrameIndex = ?
19564 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19565 		 */
19566 		extern int MV1SetFrameVisible(int MHandle, int FrameIndex, int VisibleFlag);
19567 
19568 		/**
19569 		 * 指定のフレームの表示、非表示状態を取得する
19570 		 *
19571 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19572 		 */
19573 		extern int MV1GetFrameVisible(int MHandle, int FrameIndex);
19574 
19575 		/**
19576 		 * 指定のフレームのディフューズカラーのスケール値を設定する(デフォルト値は1.0f)
19577 		 */
19578 		extern int MV1SetFrameDifColorScale(int MHandle, int FrameIndex, .COLOR_F Scale);
19579 
19580 		/**
19581 		 * 指定のフレームのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f)
19582 		 */
19583 		extern int MV1SetFrameSpcColorScale(int MHandle, int FrameIndex, .COLOR_F Scale);
19584 
19585 		/**
19586 		 * 指定のフレームのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f)
19587 		 */
19588 		extern int MV1SetFrameEmiColorScale(int MHandle, int FrameIndex, .COLOR_F Scale);
19589 
19590 		/**
19591 		 * 指定のフレームのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f)
19592 		 */
19593 		extern int MV1SetFrameAmbColorScale(int MHandle, int FrameIndex, .COLOR_F Scale);
19594 
19595 		/**
19596 		 * 指定のフレームのディフューズカラーのスケール値を取得する(デフォルト値は1.0f)
19597 		 */
19598 		extern .COLOR_F MV1GetFrameDifColorScale(int MHandle, int FrameIndex);
19599 
19600 		/**
19601 		 * 指定のフレームのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f)
19602 		 */
19603 		extern .COLOR_F MV1GetFrameSpcColorScale(int MHandle, int FrameIndex);
19604 
19605 		/**
19606 		 * 指定のフレームのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f)
19607 		 */
19608 		extern .COLOR_F MV1GetFrameEmiColorScale(int MHandle, int FrameIndex);
19609 
19610 		/**
19611 		 * 指定のフレームのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f)
19612 		 */
19613 		extern .COLOR_F MV1GetFrameAmbColorScale(int MHandle, int FrameIndex);
19614 
19615 		/**
19616 		 * 指定のフレームに半透明要素があるかどうかを取得する
19617 		 *
19618 		 * Returns: dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない
19619 		 */
19620 		extern int MV1GetFrameSemiTransState(int MHandle, int FrameIndex);
19621 
19622 		/**
19623 		 * 指定のフレームの不透明度を設定する(不透明1.0f~透明 0.0f)
19624 		 */
19625 		extern int MV1SetFrameOpacityRate(int MHandle, int FrameIndex, float Rate);
19626 
19627 		/**
19628 		 * 指定のフレームの不透明度を取得する(不透明1.0f~透明 0.0f)
19629 		 */
19630 		extern float MV1GetFrameOpacityRate(int MHandle, int FrameIndex);
19631 
19632 		/**
19633 		 * 指定のフレームの初期表示状態を設定する
19634 		 *
19635 		 * Params:
19636 		 *      MHandle = ?
19637 		 *      FrameIndex = ?
19638 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19639 		 */
19640 		extern int MV1SetFrameBaseVisible(int MHandle, int FrameIndex, int VisibleFlag);
19641 
19642 		/**
19643 		 * 指定のフレームの初期表示状態を取得する
19644 		 *
19645 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19646 		 */
19647 		extern int MV1GetFrameBaseVisible(int MHandle, int FrameIndex);
19648 
19649 		/**
19650 		 * 指定のフレームのテクスチャ座標変換パラメータを設定する
19651 		 */
19652 		extern int MV1SetFrameTextureAddressTransform(int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate);
19653 
19654 		/**
19655 		 * 指定のフレームのテクスチャ座標変換行列をセットする
19656 		 */
19657 		extern int MV1SetFrameTextureAddressTransformMatrix(int MHandle, int FrameIndex, .MATRIX Matrix);
19658 
19659 		/**
19660 		 * 指定のフレームのテクスチャ座標変換パラメータをリセットする
19661 		 */
19662 		extern int MV1ResetFrameTextureAddressTransform(int MHandle, int FrameIndex);
19663 
19664 		// メッシュ関係
19665 
19666 		/**
19667 		 * モデルに含まれるメッシュの数を取得する
19668 		 */
19669 		extern int MV1GetMeshNum(int MHandle);
19670 
19671 		/**
19672 		 * 指定メッシュが使用しているマテリアルのインデックスを取得する
19673 		 */
19674 		extern int MV1GetMeshMaterial(int MHandle, int MeshIndex);
19675 
19676 		/**
19677 		 * 指定メッシュに含まれる頂点の数を取得する
19678 		 */
19679 		extern int MV1GetMeshVertexNum(int MHandle, int MeshIndex);
19680 
19681 		/**
19682 		 * 指定メッシュに含まれる三角形ポリゴンの数を取得する
19683 		 */
19684 		extern int MV1GetMeshTriangleNum(int MHandle, int MeshIndex);
19685 
19686 		/**
19687 		 * 指定メッシュの表示、非表示状態を変更する
19688 		 *
19689 		 * Params:
19690 		 *      MHandle = ?
19691 		 *      MeshIndex = ?
19692 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19693 		 */
19694 		extern int MV1SetMeshVisible(int MHandle, int MeshIndex, int VisibleFlag);
19695 
19696 		/**
19697 		 * 指定メッシュの表示、非表示状態を取得する
19698 		 *
19699 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19700 		 */
19701 		extern int MV1GetMeshVisible(int MHandle, int MeshIndex);
19702 
19703 		/**
19704 		 * 指定のメッシュのディフューズカラーのスケール値を設定する(デフォルト値は1.0f)
19705 		 */
19706 		extern int MV1SetMeshDifColorScale(int MHandle, int MeshIndex, .COLOR_F Scale);
19707 
19708 		/**
19709 		 * 指定のメッシュのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f)
19710 		 */
19711 		extern int MV1SetMeshSpcColorScale(int MHandle, int MeshIndex, .COLOR_F Scale);
19712 
19713 		/**
19714 		 * 指定のメッシュのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f)
19715 		 */
19716 		extern int MV1SetMeshEmiColorScale(int MHandle, int MeshIndex, .COLOR_F Scale);
19717 
19718 		/**
19719 		 * 指定のメッシュのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f)
19720 		 */
19721 		extern int MV1SetMeshAmbColorScale(int MHandle, int MeshIndex, .COLOR_F Scale);
19722 
19723 		/**
19724 		 * 指定のメッシュのディフューズカラーのスケール値を取得する(デフォルト値は1.0f)
19725 		 */
19726 		extern .COLOR_F MV1GetMeshDifColorScale(int MHandle, int MeshIndex);
19727 
19728 		/**
19729 		 * 指定のメッシュのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f)
19730 		 */
19731 		extern .COLOR_F MV1GetMeshSpcColorScale(int MHandle, int MeshIndex);
19732 
19733 		/**
19734 		 * 指定のメッシュのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f)
19735 		 */
19736 		extern .COLOR_F MV1GetMeshEmiColorScale(int MHandle, int MeshIndex);
19737 
19738 		/**
19739 		 * 指定のメッシュのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f)
19740 		 */
19741 		extern .COLOR_F MV1GetMeshAmbColorScale(int MHandle, int MeshIndex);
19742 
19743 		/**
19744 		 * 指定のメッシュの不透明度を設定する(不透明1.0f~透明 0.0f)
19745 		 */
19746 		extern int MV1SetMeshOpacityRate(int MHandle, int MeshIndex, float Rate);
19747 
19748 		/**
19749 		 * 指定のメッシュの不透明度を取得する(不透明1.0f~透明 0.0f)
19750 		 */
19751 		extern float MV1GetMeshOpacityRate(int MHandle, int MeshIndex);
19752 
19753 		/**
19754 		 * 指定のメッシュの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等)
19755 		 */
19756 		extern int MV1SetMeshDrawBlendMode(int MHandle, int MeshIndex, int BlendMode);
19757 
19758 		/**
19759 		 * 指定のメッシュの描画ブレンドパラメータを設定する
19760 		 */
19761 		extern int MV1SetMeshDrawBlendParam(int MHandle, int MeshIndex, int BlendParam);
19762 
19763 		/**
19764 		 * 指定のメッシュの描画ブレンドモードを取得する(DX_BLENDMODE_ALPHA等)
19765 		 */
19766 		extern int MV1GetMeshDrawBlendMode(int MHandle, int MeshIndex);
19767 
19768 		/**
19769 		 * 指定のメッシュの描画ブレンドパラメータを設定する
19770 		 */
19771 		extern int MV1GetMeshDrawBlendParam(int MHandle, int MeshIndex);
19772 
19773 		/**
19774 		 * 指定のメッシュの初期表示状態を設定する
19775 		 *
19776 		 * Params:
19777 		 *      MHandle = ?
19778 		 *      MeshIndex = ?
19779 		 *      VisibleFlag = dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19780 		 */
19781 		extern int MV1SetMeshBaseVisible(int MHandle, int MeshIndex, int VisibleFlag);
19782 
19783 		/**
19784 		 * 指定のメッシュの初期表示状態を取得する
19785 		 *
19786 		 * Returns: dxlib_d.DxDataType.TRUE:表示  dxlib_d.DxDataType.FALSE:非表示
19787 		 */
19788 		extern int MV1GetMeshBaseVisible(int MHandle, int MeshIndex);
19789 
19790 		/**
19791 		 * 指定のメッシュのバックカリングを行うかどうかを設定する(DX_CULLING_LEFT等)
19792 		 */
19793 		extern int MV1SetMeshBackCulling(int MHandle, int MeshIndex, int CullingFlag);
19794 
19795 		/**
19796 		 * 指定のメッシュのバックカリングを行うかどうかを取得する(DX_CULLING_LEFT等)
19797 		 */
19798 		extern int MV1GetMeshBackCulling(int MHandle, int MeshIndex);
19799 
19800 		/**
19801 		 * 指定のメッシュに含まれるポリゴンの最大ローカル座標を取得する
19802 		 */
19803 		extern .VECTOR MV1GetMeshMaxPosition(int MHandle, int MeshIndex);
19804 
19805 		/**
19806 		 * 指定のメッシュに含まれるポリゴンの最小ローカル座標を取得する
19807 		 */
19808 		extern .VECTOR MV1GetMeshMinPosition(int MHandle, int MeshIndex);
19809 
19810 		/**
19811 		 * 指定のメッシュに含まれるトライアングルリストの数を取得する
19812 		 */
19813 		extern int MV1GetMeshTListNum(int MHandle, int MeshIndex);
19814 
19815 		/**
19816 		 * 指定のメッシュに含まれるトライアングルリストのインデックスを取得する
19817 		 */
19818 		extern int MV1GetMeshTList(int MHandle, int MeshIndex, int Index);
19819 
19820 		/**
19821 		 * 指定のメッシュに半透明要素があるかどうかを取得する
19822 		 *
19823 		 * Returns: dxlib_d.DxDataType.TRUE:ある  dxlib_d.DxDataType.FALSE:ない
19824 		 */
19825 		extern int MV1GetMeshSemiTransState(int MHandle, int MeshIndex);
19826 
19827 		/**
19828 		 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する
19829 		 *
19830 		 * Params:
19831 		 *      MHandle = ?
19832 		 *      MeshIndex = ?
19833 		 *      UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
19834 		 */
19835 		extern int MV1SetMeshUseVertDifColor(int MHandle, int MeshIndex, int UseFlag);
19836 
19837 		/**
19838 		 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する
19839 		 *
19840 		 * Params:
19841 		 *      MHandle = ?
19842 		 *      MeshIndex = ?
19843 		 *      UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
19844 		 */
19845 		extern int MV1SetMeshUseVertSpcColor(int MHandle, int MeshIndex, int UseFlag);
19846 
19847 		/**
19848 		 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかの設定を取得する
19849 		 *
19850 		 * Returns: dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
19851 		 */
19852 		extern int MV1GetMeshUseVertDifColor(int MHandle, int MeshIndex);
19853 
19854 		/**
19855 		 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかの設定を取得する
19856 		 *
19857 		 * Returns: dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する  dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する
19858 		 */
19859 		extern int MV1GetMeshUseVertSpcColor(int MHandle, int MeshIndex);
19860 
19861 		/**
19862 		 * 指定のメッシュがシェイプメッシュかどうかを取得する
19863 		 *
19864 		 * Returns: dxlib_d.DxDataType.TRUE:シェイプメッシュ  dxlib_d.DxDataType.FALSE:通常メッシュ
19865 		 */
19866 		extern int MV1GetMeshShapeFlag(int MHandle, int MeshIndex);
19867 
19868 		// シェイプ関係
19869 
19870 		/**
19871 		 * モデルに含まれるシェイプの数を取得する
19872 		 */
19873 		extern int MV1GetShapeNum(int MHandle);
19874 
19875 		/**
19876 		 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する
19877 		 *
19878 		 * Returns: 無かった場合は-1
19879 		 */
19880 		extern int MV1SearchShape(int MHandle, const (dxlib_d.DxDataType.TCHAR)* ShapeName);
19881 
19882 		/**
19883 		 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する
19884 		 *
19885 		 * Returns: 無かった場合は-1
19886 		 */
19887 		extern int MV1SearchShapeWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* ShapeName, size_t ShapeNameLength);
19888 
19889 		/**
19890 		 * 指定シェイプの名前を取得する
19891 		 */
19892 		extern const (dxlib_d.DxDataType.TCHAR)* MV1GetShapeName(int MHandle, int ShapeIndex);
19893 
19894 		/**
19895 		 * 指定シェイプが対象としているメッシュの数を取得する
19896 		 */
19897 		extern int MV1GetShapeTargetMeshNum(int MHandle, int ShapeIndex);
19898 
19899 		/**
19900 		 * 指定シェイプが対象としているメッシュのメッシュインデックスを取得する
19901 		 */
19902 		extern int MV1GetShapeTargetMesh(int MHandle, int ShapeIndex, int Index);
19903 
19904 		/**
19905 		 * 指定シェイプの有効率を設定する
19906 		 *
19907 		 * Params:
19908 		 *      MHandle = ?
19909 		 *      ShapeIndex = ?
19910 		 *      Rate = 0.0f:0%~1.0f:100%
19911 		 *      Type = ?
19912 		 */
19913 		extern int MV1SetShapeRate(int MHandle, int ShapeIndex, float Rate, int Type = DX_MV1_SHAPERATE_ADD);
19914 
19915 		/**
19916 		 * 指定シェイプの有効率を取得する
19917 		 *
19918 		 * Returns: 0.0f:0%~1.0f:100%
19919 		 */
19920 		extern float MV1GetShapeRate(int MHandle, int ShapeIndex);
19921 
19922 		/**
19923 		 * 指定シェイプの有効率を取得する(MV1SetShapeRateで指定した値がそのまま戻り値となるMV1GetShapeRateと異なりアニメーションのシェイプ情報なども加味した値が戻り値となります)
19924 		 *
19925 		 * Returns: 0.0f:0%~1.0f:100%
19926 		 */
19927 		extern float MV1GetShapeApplyRate(int MHandle, int ShapeIndex);
19928 
19929 		// トライアングルリスト関係
19930 
19931 		/**
19932 		 * モデルに含まれるトライアングルリストの数を取得する
19933 		 */
19934 		extern int MV1GetTriangleListNum(int MHandle);
19935 
19936 		/**
19937 		 * 指定のトライアングルリストの頂点データタイプを取得する(DX_MV1_VERTEX_TYPE_1FRAME等)
19938 		 */
19939 		extern int MV1GetTriangleListVertexType(int MHandle, int TListIndex);
19940 
19941 		/**
19942 		 * 指定のトライアングルリストに含まれるポリゴンの数を取得する
19943 		 */
19944 		extern int MV1GetTriangleListPolygonNum(int MHandle, int TListIndex);
19945 
19946 		/**
19947 		 * 指定のトライアングルリストに含まれる頂点データの数を取得する
19948 		 */
19949 		extern int MV1GetTriangleListVertexNum(int MHandle, int TListIndex);
19950 
19951 		/**
19952 		 * 指定のトライアングルリストが使用する座標変換行列の数を取得する
19953 		 */
19954 		extern int MV1GetTriangleListLocalWorldMatrixNum(int MHandle, int TListIndex);
19955 
19956 		/**
19957 		 * 指定のトライアングルリストが使用する座標変換行列(ローカル→ワールド)を取得する
19958 		 */
19959 		extern .MATRIX MV1GetTriangleListLocalWorldMatrix(int MHandle, int TListIndex, int LWMatrixIndex);
19960 
19961 		/**
19962 		 * 指定のトライアングルリストの指定のポリゴンが使用している頂点の座標を取得する
19963 		 *
19964 		 * Returns: エラー:-1  0以上:ポリゴンが使用している頂点の数
19965 		 */
19966 		extern int MV1GetTriangleListPolygonVertexPosition(int MHandle, int TListIndex, int PolygonIndex, .VECTOR* VertexPositionArray = null, float* MatrixWeightArray = null);
19967 
19968 		/**
19969 		 * 指定のトライアングルリストが使用しているマテリアルのインデックスを取得する
19970 		 */
19971 		extern int MV1GetTriangleListUseMaterial(int MHandle, int TListIndex);
19972 
19973 		// コリジョン関係
19974 
19975 		/**
19976 		 * コリジョン情報を構築する
19977 		 */
19978 		extern int MV1SetupCollInfo(int MHandle, int FrameIndex = -1, int XDivNum = 32, int YDivNum = 8, int ZDivNum = 32, int MeshIndex = -1);
19979 
19980 		/**
19981 		 * コリジョン情報の後始末
19982 		 */
19983 		extern int MV1TerminateCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1);
19984 
19985 		/**
19986 		 * コリジョン情報を更新する
19987 		 */
19988 		extern int MV1RefreshCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1);
19989 
19990 		/**
19991 		 * 線とモデルの当たり判定
19992 		 */
19993 		extern .MV1_COLL_RESULT_POLY MV1CollCheck_Line(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1);
19994 
19995 		/**
19996 		 * 線とモデルの当たり判定(戻り値がMV1_COLL_RESULT_POLY_DIM)
19997 		 */
19998 		extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_LineDim(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1);
19999 
20000 		/**
20001 		 * 球とモデルの当たり判定
20002 		 */
20003 		extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Sphere(int MHandle, int FrameIndex, .VECTOR CenterPos, float r, int MeshIndex = -1);
20004 
20005 		/**
20006 		 * カプセルとモデルの当たり判定
20007 		 */
20008 		extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Capsule(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, float r, int MeshIndex = -1);
20009 
20010 		/**
20011 		 * 三角形とモデルの当たり判定
20012 		 */
20013 		extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Triangle(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, int MeshIndex = -1);
20014 
20015 		/**
20016 		 * コリジョン結果ポリゴン配列から指定番号のポリゴン情報を取得する
20017 		 */
20018 		extern .MV1_COLL_RESULT_POLY MV1CollCheck_GetResultPoly(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim, int PolyNo);
20019 
20020 		/**
20021 		 * コリジョン結果ポリゴン配列の後始末をする
20022 		 */
20023 		extern int MV1CollResultPolyDimTerminate(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim);
20024 
20025 		// 参照用メッシュ関係
20026 
20027 		/**
20028 		 * 参照用メッシュのセットアップ
20029 		 */
20030 		extern int MV1SetupReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1);
20031 
20032 		/**
20033 		 * 参照用メッシュの後始末
20034 		 */
20035 		extern int MV1TerminateReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1);
20036 
20037 		/**
20038 		 * 参照用メッシュの更新
20039 		 */
20040 		extern int MV1RefreshReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1);
20041 
20042 		/**
20043 		 * 参照用メッシュを取得する
20044 		 */
20045 		extern .MV1_REF_POLYGONLIST MV1GetReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1);
20046 	}
20047 
20048 	// DxLive2DCubism4.cpp 関数 プロトタイプ宣言
20049 
20050 	version (DX_NON_LIVE2D_CUBISM4) {
20051 	} else {
20052 		/**
20053 		 * Live2DCubismCore.dllのファイルパスを設定する
20054 		 */
20055 		extern int Live2D_SetCubism4CoreDLLPath(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath);
20056 
20057 		/**
20058 		 * Live2DCubismCore.dllのファイルパスを設定する
20059 		 */
20060 		extern int Live2D_SetCubism4CoreDLLPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength);
20061 
20062 		/**
20063 		 * Live2DCubismCore.dllのファイルパスを設定する
20064 		 */
20065 		extern int Live2D_SetCubism3CoreDLLPath(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath);
20066 
20067 		/**
20068 		 * Live2DCubismCore.dllのファイルパスを設定する
20069 		 */
20070 		extern int Live2D_SetCubism3CoreDLLPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength);
20071 
20072 		/**
20073 		 * Live2Dの描画処理を開始する
20074 		 */
20075 		extern int Live2D_RenderBegin();
20076 
20077 		/**
20078 		 * Live2Dの描画処理を終了する
20079 		 */
20080 		extern int Live2D_RenderEnd();
20081 
20082 		/**
20083 		 * Live2Dのモデルファイルを読み込む
20084 		 *
20085 		 * Returns: 0以上:Live2Dモデルハンドル  マイナス値:エラー発生
20086 		 */
20087 		extern int Live2D_LoadModel(const (dxlib_d.DxDataType.TCHAR)* FilePath);
20088 
20089 		/**
20090 		 * Live2Dのモデルファイルを読み込む
20091 		 *
20092 		 * Returns: 0以上:Live2Dモデルハンドル  マイナス値:エラー発生
20093 		 */
20094 		extern int Live2D_LoadModelWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength);
20095 
20096 		/**
20097 		 * Live2Dのモデルを削除する
20098 		 */
20099 		extern int Live2D_DeleteModel(int Live2DModelHandle);
20100 
20101 		/**
20102 		 * すべてのLive2Dのモデルを削除する
20103 		 */
20104 		extern int Live2D_InitModel();
20105 
20106 		/**
20107 		 * Live2Dのモデルの状態を更新する
20108 		 */
20109 		extern int Live2D_Model_Update(int Live2DModelHandle, float DeltaTimeSeconds);
20110 
20111 		/**
20112 		 * Live2Dのモデルの位置を設定する
20113 		 */
20114 		extern int Live2D_Model_SetTranslate(int Live2DModelHandle, float x, float y);
20115 
20116 		/**
20117 		 * Live2Dのモデルの拡大率を設定する
20118 		 */
20119 		extern int Live2D_Model_SetExtendRate(int Live2DModelHandle, float ExRateX, float ExRateY);
20120 
20121 		/**
20122 		 * Live2Dのモデルの回転を設定する
20123 		 */
20124 		extern int Live2D_Model_SetRotate(int Live2DModelHandle, float RotAngle);
20125 
20126 		/**
20127 		 * Live2Dのモデルを描画する
20128 		 */
20129 		extern int Live2D_Model_Draw(int Live2DModelHandle);
20130 
20131 		/**
20132 		 * Live2Dのモデルの指定のモーションを再生する
20133 		 */
20134 		extern int Live2D_Model_StartMotion(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* group, int no);
20135 
20136 		/**
20137 		 * Live2Dのモデルの指定のモーションを再生する
20138 		 */
20139 		extern int Live2D_Model_StartMotionWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* group, size_t groupLength, int no);
20140 
20141 		/**
20142 		 * Live2Dのモデルのモーション再生が終了しているかを取得する
20143 		 *
20144 		 * Returns: dxlib_d.DxDataType.TRUE:再生が終了している  dxlib_d.DxDataType.FALSE:再生中
20145 		 */
20146 		extern int Live2D_Model_IsMotionFinished(int Live2DModelHandle);
20147 
20148 		/**
20149 		 * Live2Dのモデルの指定の表情モーションを設定する
20150 		 */
20151 		extern int Live2D_Model_SetExpression(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* expressionID);
20152 
20153 		/**
20154 		 * Live2Dのモデルの指定の表情モーションを設定する
20155 		 */
20156 		extern int Live2D_Model_SetExpressionWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* expressionID, size_t expressionIDLength);
20157 
20158 		/**
20159 		 * 指定の座標がLive2Dのモデルの指定の当たり判定の矩形範囲内か判定する
20160 		 *
20161 		 * Returns: dxlib_d.DxDataType.TRUE:矩形範囲内  dxlib_d.DxDataType.FALSE:矩形範囲外
20162 		 */
20163 		extern int Live2D_Model_HitTest(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* hitAreaName, float x, float y);
20164 
20165 		/**
20166 		 * 指定の座標がLive2Dのモデルの指定の当たり判定の矩形範囲内か判定する
20167 		 *
20168 		 * Returns: dxlib_d.DxDataType.TRUE:矩形範囲内  dxlib_d.DxDataType.FALSE:矩形範囲外
20169 		 */
20170 		extern int Live2D_Model_HitTestWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* hitAreaName, size_t hitAreaNameLength, float x, float y);
20171 
20172 		/**
20173 		 * Live2Dのモデルに設定されているパラメータの数を取得する
20174 		 */
20175 		extern int Live2D_Model_GetParameterCount(int Live2DModelHandle);
20176 
20177 		/**
20178 		 * Live2Dのモデルに設定されているパラメータのIDを取得する
20179 		 */
20180 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetParameterId(int Live2DModelHandle, int index);
20181 
20182 		/**
20183 		 * Live2Dのモデルに設定されているパラメータを取得する
20184 		 */
20185 		extern float Live2D_Model_GetParameterValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId);
20186 
20187 		/**
20188 		 * Live2Dのモデルに設定されているパラメータを取得する
20189 		 */
20190 		extern float Live2D_Model_GetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, size_t parameterIdLength);
20191 
20192 		/**
20193 		 * Live2Dのモデルに設定されているパラメータを設定する
20194 		 */
20195 		extern int Live2D_Model_SetParameterValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, float value);
20196 
20197 		/**
20198 		 * Live2Dのモデルに設定されているパラメータを設定する
20199 		 */
20200 		extern int Live2D_Model_SetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, size_t parameterIdLength, float value);
20201 
20202 		/**
20203 		 * Live2Dのモデルに設定された当たり判定の数を取得する
20204 		 */
20205 		extern int Live2D_Model_GetHitAreasCount(int Live2DModelHandle);
20206 
20207 		/**
20208 		 * Live2Dのモデルの当たり判定に設定された名前を取得する
20209 		 */
20210 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetHitAreaName(int Live2DModelHandle, int index);
20211 
20212 		/**
20213 		 * Live2Dのモデルの物理演算設定ファイルの名前を取得する
20214 		 */
20215 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetPhysicsFileName(int Live2DModelHandle);
20216 
20217 		/**
20218 		 * Live2Dのモデルのパーツ切り替え設定ファイルの名前を取得する
20219 		 */
20220 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetPoseFileName(int Live2DModelHandle);
20221 
20222 		/**
20223 		 * Live2Dのモデルの表情設定ファイルの数を取得する
20224 		 */
20225 		extern int Live2D_Model_GetExpressionCount(int Live2DModelHandle);
20226 
20227 		/**
20228 		 * Live2Dのモデルの表情設定ファイルを識別するIDを取得する
20229 		 */
20230 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetExpressionName(int Live2DModelHandle, int index);
20231 
20232 		/**
20233 		 * Live2Dのモデルの表情設定ファイルの名前を取得する
20234 		 */
20235 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetExpressionFileName(int Live2DModelHandle, int index);
20236 
20237 		/**
20238 		 * Live2Dのモデルのモーショングループの数を取得する
20239 		 */
20240 		extern int Live2D_Model_GetMotionGroupCount(int Live2DModelHandle);
20241 
20242 		/**
20243 		 * Live2Dのモデルのモーショングループの名前を取得する
20244 		 */
20245 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionGroupName(int Live2DModelHandle, int index);
20246 
20247 		/**
20248 		 * Live2Dのモデルのモーショングループに含まれるモーションの数を取得する
20249 		 */
20250 		extern int Live2D_Model_GetMotionCount(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName);
20251 
20252 		/**
20253 		 * Live2Dのモデルのモーショングループに含まれるモーションの数を取得する
20254 		 */
20255 		extern int Live2D_Model_GetMotionCountWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength);
20256 
20257 		/**
20258 		 * Live2Dのモデルのグループ名とインデックス値からモーションファイルの名前を取得する
20259 		 */
20260 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionFileName(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index);
20261 
20262 		/**
20263 		 * Live2Dのモデルのグループ名とインデックス値からモーションファイルの名前を取得する
20264 		 */
20265 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index);
20266 
20267 		/**
20268 		 * Live2Dのモデルのモーションに対応するサウンドファイルの名前を取得する
20269 		 */
20270 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionSoundFileName(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index);
20271 
20272 		/**
20273 		 * Live2Dのモデルのモーションに対応するサウンドファイルの名前を取得する
20274 		 */
20275 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionSoundFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index);
20276 
20277 		/**
20278 		 * Live2Dのモデルのモーション開始時のフェードイン処理時間を取得する
20279 		 */
20280 		extern float Live2D_Model_GetMotionFadeInTimeValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index);
20281 
20282 		/**
20283 		 * Live2Dのモデルのモーション開始時のフェードイン処理時間を取得する
20284 		 */
20285 		extern float Live2D_Model_GetMotionFadeInTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index);
20286 
20287 		/**
20288 		 * Live2Dのモデルのモーション終了時のフェードアウト処理時間を取得する
20289 		 */
20290 		extern float Live2D_Model_GetMotionFadeOutTimeValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index);
20291 
20292 		/**
20293 		 * Live2Dのモデルのモーション終了時のフェードアウト処理時間を取得する
20294 		 */
20295 		extern float Live2D_Model_GetMotionFadeOutTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index);
20296 
20297 		/**
20298 		 * Live2Dのモデルのユーザデータのファイル名を取得する
20299 		 */
20300 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetUserDataFile(int Live2DModelHandle);
20301 
20302 		/**
20303 		 * Live2Dのモデルの目パチに関連付けられたパラメータの数を取得する
20304 		 */
20305 		extern int Live2D_Model_GetEyeBlinkParameterCount(int Live2DModelHandle);
20306 
20307 		/**
20308 		 * Live2Dのモデルの目パチに関連付けられたパラメータのIDを取得する
20309 		 */
20310 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetEyeBlinkParameterId(int Live2DModelHandle, int index);
20311 
20312 		/**
20313 		 * Live2Dのモデルのリップシンクに関連付けられたパラメータの数を取得する
20314 		 */
20315 		extern int Live2D_Model_GetLipSyncParameterCount(int Live2DModelHandle);
20316 
20317 		/**
20318 		 * Live2Dのモデルのリップシンクに関連付けられたパラメータのIDを取得する
20319 		 */
20320 		extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetLipSyncParameterId(int Live2DModelHandle, int index);
20321 	}
20322 }
20323 
20324 // ネームスペースDxLibを使用する ------------------------------------------------------
20325 version (DX_NON_NAMESPACE) {
20326 } else {
20327 	version (DX_NON_USING_NAMESPACE_DXLIB) {
20328 	} else {
20329 		/+
20330 		using namespace DxLib;
20331 		+/
20332 	}
20333 }
20334 
20335 // DXライブラリ内部でのみ使用するヘッダファイルのインクルード -------------------------
20336 
20337 version (DX_MAKE) {
20338 	//    #include "DxStatic.h"
20339 }