1 // ------------------------------------------------------------------------------- 2 // 3 // DXライブラリ ヘッダファイル 4 // 5 // Ver 3.22a 6 // 7 // ------------------------------------------------------------------------------- 8 module dxlib_d.dxlib; 9 10 11 private static import core.stdc.config; 12 private static import core.stdc.stdarg; 13 public import dxlib_d.dxcompileconfig; 14 public import dxlib_d.dxdatatype; 15 16 nothrow @nogc: 17 18 // DXライブラリのバージョン 19 20 /** 21 * DXライブラリのバージョン 22 */ 23 enum DXLIB_VERSION = 0x322A; 24 25 version (Unicode) { 26 enum DXLIB_VERSION_STR_T = "3.22a"w; 27 } else { 28 enum DXLIB_VERSION_STR_T = "3.22a"; 29 } 30 31 enum DXLIB_VERSION_STR_W = "3.22a"w; 32 33 // 設定 ----------------------------------------------------------------------- 34 35 // DXライブラリに必要な lib ファイルを、プロジェクトのカレントフォルダや 36 // コンパイラのデフォルト LIB パスに設定せずに使用される場合は以下の 37 // コメントを外してください 38 //#define DX_LIB_NOT_DEFAULTPATH 39 40 version (DX_MAKE) { 41 } else { 42 // 描画関連の関数を一切使用されない場合は以下のコメントを外して下さい 43 //#define DX_NOTUSE_DRAWFUNCTION 44 } 45 46 // 定義--------------------------------------------------------------------------- 47 48 /** 49 * π 50 */ 51 enum 52 { 53 /** 54 * π 55 */ 56 DX_PI = 3.1415926535897932384626433832795, 57 58 /** 59 * π 60 */ 61 DX_PI_F = 3.1415926535897932384626433832795f, 62 63 /** 64 * π 65 */ 66 DX_TWO_PI = 3.1415926535897932384626433832795 * 2.0, 67 68 /** 69 * π 70 */ 71 DX_TWO_PI_F = 3.1415926535897932384626433832795f * 2.0f, 72 } 73 74 /** 75 * ? 76 */ 77 alias DX_CHAR = char; 78 79 /** 80 * 最大数 81 */ 82 enum 83 { 84 /** 85 * 同時に持てるグラフィックハンドルの最大数( ハンドルエラーチェックのマスクに使用しているので 0x040000 以下の 2 のべき乗にして下さい ) 86 */ 87 MAX_IMAGE_NUM = 0x040000, 88 89 /** 90 * 画像分割の最大数 91 */ 92 MAX_IMAGE_DIVNUM = 64, 93 94 /** 95 * シャドウマップデータの最大数 96 */ 97 MAX_SHADOWMAP_NUM = 8192, 98 99 /** 100 * 同時に持てるソフトイメージハンドルの最大数( ハンドルエラーチェックのマスクに使用しているので 0x040000 以下の 2 のべき乗にして下さい ) 101 */ 102 MAX_SOFTIMAGE_NUM = 8192, 103 104 /** 105 * 同時に持てるサウンドハンドルの最大数 106 */ 107 MAX_SOUND_NUM = 32768, 108 109 /** 110 * 同時に持てるソフトウエアサウンドハンドルの最大数 111 */ 112 MAX_SOFTSOUND_NUM = 8192, 113 114 /** 115 * 同時に持てるミュージックハンドルの最大数 116 */ 117 MAX_MUSIC_NUM = 256, 118 119 /** 120 * 同時に持てるムービーハンドルの最大数 121 */ 122 MAX_MOVIE_NUM = 100, 123 124 /** 125 * 同時に持てるマスクハンドルの最大数 126 */ 127 MAX_MASK_NUM = 32768, 128 129 /** 130 * 同時に持てるフォントハンドルの最大数 131 */ 132 MAX_FONT_NUM = 40, 133 134 /** 135 * 同時に持てる文字列入力ハンドルの最大数 136 */ 137 MAX_INPUT_NUM = 256, 138 139 /** 140 * 同時に持てる通信ハンドルの最大数 141 */ 142 MAX_SOCKET_NUM = 8192, 143 144 /** 145 * 同時に持てるライトハンドルの最大数 146 */ 147 MAX_LIGHT_NUM = 4096, 148 149 /** 150 * 同時に持てるシェーダーハンドルの最大数 151 */ 152 MAX_SHADER_NUM = 4096, 153 154 /** 155 * 同時に持てる定数バッファハンドルの最大数 156 */ 157 MAX_CONSTANT_BUFFER_NUM = 32768, 158 159 /** 160 * 同時に持てる3Dモデル基本データハンドルの最大数 161 */ 162 MAX_MODEL_BASE_NUM = 32768, 163 164 /** 165 * 同時に持てる3Dモデルデータハンドルの最大数 166 */ 167 MAX_MODEL_NUM = 32768, 168 169 /** 170 * 同時に持てる頂点バッファハンドルの最大数 171 */ 172 MAX_VERTEX_BUFFER_NUM = 16384, 173 174 /** 175 * 同時に持てるインデックスバッファの最大数 176 */ 177 MAX_INDEX_BUFFER_NUM = 16384, 178 179 /** 180 * 同時に持てるファイルハンドルの最大数 181 */ 182 MAX_FILE_NUM = 32768, 183 184 /** 185 * 同時に持てる Live2D Cubism 4 Model ハンドルの最大数 186 */ 187 MAX_LIVE2D_CUBISM4_MODEL_NUM = 32768, 188 189 /** 190 * ジョイパッドの最大数 191 */ 192 MAX_JOYPAD_NUM = 16, 193 194 /** 195 * ユーザーが登録できるグラフィックロード関数の最大数 196 */ 197 MAX_USERIMAGEREAD_FUNCNUM = 10, 198 } 199 200 /** 201 * デフォルト値 202 */ 203 enum 204 { 205 /** 206 * デフォルトの画面の幅 207 */ 208 DEFAULT_SCREEN_SIZE_X = 640, 209 210 /** 211 * デフォルトの画面の高さ 212 */ 213 DEFAULT_SCREEN_SIZE_Y = 480, 214 215 /** 216 * デフォルトの色ビット深度 217 */ 218 DEFAULT_COLOR_BITDEPTH = 16, 219 220 /** 221 * デフォルトのZバッファビット深度 222 */ 223 DEFAULT_ZBUFFER_BITDEPTH = 16, 224 225 /** 226 * デフォルトの視野角 227 */ 228 DEFAULT_FOV = 60.0F * 3.1415926535897932384626433832795F / 180.0F, 229 230 /** 231 * tan( FOV * 0.5 ) 232 */ 233 DEFAULT_TAN_FOV_HALF = 0.57735026918962576450914878050196F, 234 235 /** 236 * NEARクリップ面 237 */ 238 DEFAULT_NEAR = 0.0F, 239 240 /** 241 * FARクリップ面 242 */ 243 DEFAULT_FAR = 20000.0F, 244 245 /** 246 * デフォルトフォントを示す値 247 */ 248 DX_DEFAULT_FONT_HANDLE = -2, 249 250 /** 251 * フォントのデフォルトのサイズ 252 */ 253 DEFAULT_FONT_SIZE = 16, 254 255 /** 256 * フォントのデフォルトの太さ 257 */ 258 DEFAULT_FONT_THINCK = 6, 259 260 /** 261 * フォントのデフォルトの形態 262 */ 263 DEFAULT_FONT_TYPE = DX_FONTTYPE_NORMAL, 264 265 /** 266 * フォントのデフォルトの太さ 267 */ 268 DEFAULT_FONT_EDGESIZE = 1, 269 } 270 271 /** 272 * WINDOWSのバージョンマクロ 273 */ 274 enum 275 { 276 /** 277 * WINDOWSのバージョンマクロ 278 */ 279 DX_WINDOWSVERSION_31 = 0x0000, 280 281 /** 282 * WINDOWSのバージョンマクロ 283 */ 284 DX_WINDOWSVERSION_95 = 0x0001, 285 286 /** 287 * WINDOWSのバージョンマクロ 288 */ 289 DX_WINDOWSVERSION_98 = 0x0002, 290 291 /** 292 * WINDOWSのバージョンマクロ 293 */ 294 DX_WINDOWSVERSION_ME = 0x0003, 295 296 /** 297 * WINDOWSのバージョンマクロ 298 */ 299 DX_WINDOWSVERSION_NT31 = 0x0104, 300 301 /** 302 * WINDOWSのバージョンマクロ 303 */ 304 DX_WINDOWSVERSION_NT40 = 0x0105, 305 306 /** 307 * WINDOWSのバージョンマクロ 308 */ 309 DX_WINDOWSVERSION_2000 = 0x0106, 310 311 /** 312 * WINDOWSのバージョンマクロ 313 */ 314 DX_WINDOWSVERSION_XP = 0x0107, 315 316 /** 317 * WINDOWSのバージョンマクロ 318 */ 319 DX_WINDOWSVERSION_VISTA = 0x0108, 320 321 /** 322 * WINDOWSのバージョンマクロ 323 */ 324 DX_WINDOWSVERSION_7 = 0x0109, 325 326 /** 327 * WINDOWSのバージョンマクロ 328 */ 329 DX_WINDOWSVERSION_8 = 0x010A, 330 331 /** 332 * WINDOWSのバージョンマクロ 333 */ 334 DX_WINDOWSVERSION_8_1 = 0x010B, 335 336 /** 337 * WINDOWSのバージョンマクロ 338 */ 339 DX_WINDOWSVERSION_10 = 0x010C, 340 341 /** 342 * WINDOWSのバージョンマクロ 343 */ 344 DX_WINDOWSVERSION_NT_TYPE = 0x0100, 345 } 346 347 /** 348 * DirectXのバージョン 349 */ 350 enum 351 { 352 /** 353 * DirectXのバージョン 354 */ 355 DX_DIRECTXVERSION_NON = 0, 356 357 /** 358 * DirectXのバージョン 359 */ 360 DX_DIRECTXVERSION_1 = 0x010000, 361 362 /** 363 * DirectXのバージョン 364 */ 365 DX_DIRECTXVERSION_2 = 0x020000, 366 367 /** 368 * DirectXのバージョン 369 */ 370 DX_DIRECTXVERSION_3 = 0x030000, 371 372 /** 373 * DirectXのバージョン 374 */ 375 DX_DIRECTXVERSION_4 = 0x040000, 376 377 /** 378 * DirectXのバージョン 379 */ 380 DX_DIRECTXVERSION_5 = 0x050000, 381 382 /** 383 * DirectXのバージョン 384 */ 385 DX_DIRECTXVERSION_6 = 0x060000, 386 387 /** 388 * DirectXのバージョン 389 */ 390 DX_DIRECTXVERSION_6_1 = 0x060100, 391 392 /** 393 * DirectXのバージョン 394 */ 395 DX_DIRECTXVERSION_7 = 0x070000, 396 397 /** 398 * DirectXのバージョン 399 */ 400 DX_DIRECTXVERSION_8 = 0x080000, 401 402 /** 403 * DirectXのバージョン 404 */ 405 DX_DIRECTXVERSION_8_1 = 0x080100, 406 } 407 408 /** 409 * Direct3Dのバージョン 410 */ 411 enum 412 { 413 /** 414 * Direct3Dのバージョン 415 */ 416 DX_DIRECT3D_NONE = 0, 417 418 /** 419 * Direct3Dのバージョン 420 */ 421 DX_DIRECT3D_9 = 1, 422 423 /** 424 * Direct3Dのバージョン 425 */ 426 DX_DIRECT3D_9EX = 2, 427 428 /** 429 * Direct3Dのバージョン 430 */ 431 DX_DIRECT3D_11 = 3, 432 } 433 434 /** 435 * Direct3D11 の Feature Level 436 */ 437 enum 438 { 439 /** 440 * Direct3D11 の Feature Level 441 */ 442 DX_DIRECT3D_11_FEATURE_LEVEL_9_1 = 0x9100, 443 444 /** 445 * Direct3D11 の Feature Level 446 */ 447 DX_DIRECT3D_11_FEATURE_LEVEL_9_2 = 0x9200, 448 449 /** 450 * Direct3D11 の Feature Level 451 */ 452 DX_DIRECT3D_11_FEATURE_LEVEL_9_3 = 0x9300, 453 454 /** 455 * Direct3D11 の Feature Level 456 */ 457 DX_DIRECT3D_11_FEATURE_LEVEL_10_0 = 0xA000, 458 459 /** 460 * Direct3D11 の Feature Level 461 */ 462 DX_DIRECT3D_11_FEATURE_LEVEL_10_1 = 0xA100, 463 464 /** 465 * Direct3D11 の Feature Level 466 */ 467 DX_DIRECT3D_11_FEATURE_LEVEL_11_0 = 0xB000, 468 469 /** 470 * Direct3D11 の Feature Level 471 */ 472 DX_DIRECT3D_11_FEATURE_LEVEL_11_1 = 0xB100, 473 } 474 475 /** 476 * 文字セット 477 */ 478 enum 479 { 480 /** 481 * デフォルト文字セット 482 */ 483 DX_CHARSET_DEFAULT = 0, 484 485 /** 486 * シフトJIS 487 */ 488 DX_CHARSET_SHFTJIS = 1, 489 490 /** 491 * ハングル文字セット 492 */ 493 DX_CHARSET_HANGEUL = 2, 494 495 /** 496 * 繁体文字セット 497 */ 498 DX_CHARSET_BIG5 = 3, 499 500 /** 501 * 簡体文字セット 502 */ 503 DX_CHARSET_GB2312 = 4, 504 505 /** 506 * 欧文(ラテン文字の文字コード) 507 */ 508 DX_CHARSET_WINDOWS_1252 = 5, 509 510 /** 511 * 欧文(ラテン文字の文字コード) 512 */ 513 DX_CHARSET_ISO_IEC_8859_15 = 6, 514 515 /** 516 * UTF-8 517 */ 518 DX_CHARSET_UTF8 = 7, 519 520 /** 521 * 文字セットの数 522 */ 523 DX_CHARSET_NUM = 8, 524 } 525 526 /** 527 * 文字コード形式 528 */ 529 enum 530 { 531 /** 532 * シフトJISコード 533 */ 534 DX_CHARCODEFORMAT_SHIFTJIS = 932, 535 536 /** 537 * 簡体字文字コード 538 */ 539 DX_CHARCODEFORMAT_GB2312 = 936, 540 541 /** 542 * ハングル文字コード 543 */ 544 DX_CHARCODEFORMAT_UHC = 949, 545 546 /** 547 * 繁体文字コード 548 */ 549 DX_CHARCODEFORMAT_BIG5 = 950, 550 551 /** 552 * UTF-16 リトルエンディアン 553 */ 554 DX_CHARCODEFORMAT_UTF16LE = 1200, 555 556 /** 557 * UTF-16 ビッグエンディアン 558 */ 559 DX_CHARCODEFORMAT_UTF16BE = 1201, 560 561 /** 562 * 欧文(ラテン文字の文字コード) 563 */ 564 DX_CHARCODEFORMAT_WINDOWS_1252 = 1252, 565 566 /** 567 * 欧文(ラテン文字の文字コード) 568 */ 569 DX_CHARCODEFORMAT_ISO_IEC_8859_15 = 32764, 570 571 /** 572 * UTF-8 573 */ 574 DX_CHARCODEFORMAT_UTF8 = 65001, 575 576 /** 577 * アスキー文字コード 578 */ 579 DX_CHARCODEFORMAT_ASCII = 32765, 580 581 /** 582 * UTF-32 リトルエンディアン 583 */ 584 DX_CHARCODEFORMAT_UTF32LE = 32766, 585 586 /** 587 * UTF-32 ビッグエンディアン 588 */ 589 DX_CHARCODEFORMAT_UTF32BE = 32767, 590 } 591 592 /** 593 * MIDIの演奏モード定義 594 */ 595 enum 596 { 597 /** 598 * MCIによる演奏 599 */ 600 DX_MIDIMODE_MCI = 0, 601 602 /** 603 * DirectMusicによる演奏 604 */ 605 DX_MIDIMODE_DM = 1, 606 607 /** 608 * DirectMusic(リバーブあり)による演奏 609 */ 610 DX_MIDIMODE_DIRECT_MUSIC_REVERB = 1, 611 612 /** 613 * DirectMusic(リバーブなし)による演奏 614 */ 615 DX_MIDIMODE_DIRECT_MUSIC_NORMAL = 2, 616 617 /** 618 * MIDIの演奏モードの数 619 */ 620 DX_MIDIMODE_NUM = 3, 621 } 622 623 /** 624 * 描画モード定義 625 */ 626 enum 627 { 628 /** 629 * ネアレストネイバー法で描画 630 */ 631 DX_DRAWMODE_NEAREST = 0, 632 633 /** 634 * バイリニア法で描画する 635 */ 636 DX_DRAWMODE_BILINEAR = 1, 637 638 /** 639 * 異方性フィルタリング法で描画する 640 */ 641 DX_DRAWMODE_ANISOTROPIC = 2, 642 643 /** 644 * それ以外 645 */ 646 DX_DRAWMODE_OTHER = 3, 647 648 /** 649 * 描画モードの数 650 */ 651 DX_DRAWMODE_NUM = 4, 652 } 653 654 /** 655 * フォントのタイプ 656 */ 657 enum 658 { 659 /** 660 * ノーマルフォント 661 */ 662 DX_FONTTYPE_NORMAL = 0x00, 663 664 /** 665 * エッジつきフォント 666 */ 667 DX_FONTTYPE_EDGE = 0x01, 668 669 /** 670 * アンチエイリアスフォント( 標準機能アンチエイリアス ) 671 */ 672 DX_FONTTYPE_ANTIALIASING = 0x02, 673 674 /** 675 * アンチエイリアスフォント( 4x4サンプリング ) 676 */ 677 DX_FONTTYPE_ANTIALIASING_4X4 = 0x12, 678 679 /** 680 * アンチエイリアスフォント( 8x8サンプリング ) 681 */ 682 DX_FONTTYPE_ANTIALIASING_8X8 = 0x22, 683 684 /** 685 * アンチエイリアス&エッジ付きフォント( 標準機能アンチエイリアス ) 686 */ 687 DX_FONTTYPE_ANTIALIASING_EDGE = 0x03, 688 689 /** 690 * アンチエイリアス&エッジ付きフォント( 4x4サンプリング ) 691 */ 692 DX_FONTTYPE_ANTIALIASING_EDGE_4X4 = 0x13, 693 694 /** 695 * アンチエイリアス&エッジ付きフォント( 8x8サンプリング ) 696 */ 697 DX_FONTTYPE_ANTIALIASING_EDGE_8X8 = 0x23, 698 } 699 700 /** 701 * フォント画像の階調ビット数 702 */ 703 enum 704 { 705 /** 706 * フォント画像の階調ビット数 707 */ 708 DX_FONTIMAGE_BIT_1 = 0, 709 710 /** 711 * フォント画像の階調ビット数 712 */ 713 DX_FONTIMAGE_BIT_4 = 1, 714 715 /** 716 * フォント画像の階調ビット数 717 */ 718 DX_FONTIMAGE_BIT_8 = 2, 719 } 720 721 /** 722 * 描画ブレンドモード定義 723 */ 724 enum 725 { 726 /** 727 * ノーブレンド 728 */ 729 DX_BLENDMODE_NOBLEND = 0, 730 731 /** 732 * αブレンド 733 */ 734 DX_BLENDMODE_ALPHA = 1, 735 736 /** 737 * 加算ブレンド 738 */ 739 DX_BLENDMODE_ADD = 2, 740 741 /** 742 * 減算ブレンド 743 */ 744 DX_BLENDMODE_SUB = 3, 745 746 /** 747 * 乗算ブレンド 748 */ 749 DX_BLENDMODE_MUL = 4, 750 751 // (内部処理用) 752 753 /** 754 * 内部処理用減算ブレンド2 755 */ 756 DX_BLENDMODE_SUB2 = 5, 757 758 // 境界線ぼかし 759 //DX_BLENDMODE_BLINEALPHA = 7, 760 761 /** 762 * XORブレンド( ソフトウエアレンダリングモードでのみ有効 ) 763 */ 764 DX_BLENDMODE_XOR = 6, 765 766 /** 767 * カラーは更新されない 768 */ 769 DX_BLENDMODE_DESTCOLOR = 8, 770 771 /** 772 * 描画先の色の反転値を掛ける 773 */ 774 DX_BLENDMODE_INVDESTCOLOR = 9, 775 776 /** 777 * 描画元の色を反転する 778 */ 779 DX_BLENDMODE_INVSRC = 10, 780 781 /** 782 * アルファチャンネル考慮付き乗算ブレンド 783 */ 784 DX_BLENDMODE_MULA = 11, 785 786 /** 787 * αブレンドの描画元の輝度を最大4倍にできるモード 788 */ 789 DX_BLENDMODE_ALPHA_X4 = 12, 790 791 /** 792 * 加算ブレンドの描画元の輝度を最大4倍にできるモード 793 */ 794 DX_BLENDMODE_ADD_X4 = 13, 795 796 /** 797 * 描画元のカラーでそのまま描画される 798 */ 799 DX_BLENDMODE_SRCCOLOR = 14, 800 801 /** 802 * 半加算ブレンド 803 */ 804 DX_BLENDMODE_HALF_ADD = 15, 805 806 /** 807 * 内部処理用減算ブレンド1 808 */ 809 DX_BLENDMODE_SUB1 = 16, 810 811 /** 812 * 乗算済みαブレンドモードのαブレンド 813 */ 814 DX_BLENDMODE_PMA_ALPHA = 17, 815 816 /** 817 * 乗算済みαブレンドモードの加算ブレンド 818 */ 819 DX_BLENDMODE_PMA_ADD = 18, 820 821 /** 822 * 乗算済みαブレンドモードの減算ブレンド 823 */ 824 DX_BLENDMODE_PMA_SUB = 19, 825 826 /** 827 * 乗算済みαブレンドモードの描画元の色を反転する 828 */ 829 DX_BLENDMODE_PMA_INVSRC = 20, 830 831 /** 832 * 乗算済みαブレンドモードのαブレンドの描画元の輝度を最大4倍にできるモード 833 */ 834 DX_BLENDMODE_PMA_ALPHA_X4 = 21, 835 836 /** 837 * 乗算済みαブレンドモードの加算ブレンドの描画元の輝度を最大4倍にできるモード 838 */ 839 DX_BLENDMODE_PMA_ADD_X4 = 22, 840 841 /** 842 * Live2D のブレンドモード Zero 用 843 */ 844 DX_BLENDMODE_LIVE2D_ZERO = 23, 845 846 /** 847 * Live2D のブレンドモード Normal 用 848 */ 849 DX_BLENDMODE_LIVE2D_NORMAL = 24, 850 851 /** 852 * Live2D のブレンドモード Add 用 853 */ 854 DX_BLENDMODE_LIVE2D_ADD = 25, 855 856 /** 857 * Live2D のブレンドモード Mult 用 858 */ 859 DX_BLENDMODE_LIVE2D_MULT = 26, 860 861 /** 862 * Live2D のブレンドモード Mask 用 863 */ 864 DX_BLENDMODE_LIVE2D_MASK = 27, 865 866 /** 867 * ブレンドモードの数 868 */ 869 DX_BLENDMODE_NUM = 28, 870 } 871 872 /** 873 * DrawGraphF 等の浮動小数点値で座標を指定する関数における座標タイプ 874 */ 875 enum 876 { 877 /** 878 * Direct3D9タイプ( -0.5f の補正を行わないとテクスチャのピクセルが綺麗にマップされないタイプ ) 879 */ 880 DX_DRAWFLOATCOORDTYPE_DIRECT3D9 = 0, 881 882 /** 883 * Direct3D10タイプ( -0.5f の補正を行わななくてもテクスチャのピクセルが綺麗にマップされるタイプ ) 884 */ 885 DX_DRAWFLOATCOORDTYPE_DIRECT3D10 = 1, 886 } 887 888 /** 889 * 画像合成タイプ 890 */ 891 enum 892 { 893 /** 894 * 通常合成 895 */ 896 DX_BLENDGRAPHTYPE_NORMAL = 0, 897 898 /** 899 * ワイプ処理 900 */ 901 DX_BLENDGRAPHTYPE_WIPE = 1, 902 903 /** 904 * ブレンド画像のα値と元画像のα値を掛け合わせる 905 */ 906 DX_BLENDGRAPHTYPE_ALPHA = 2, 907 908 /** 909 * ? 910 */ 911 DX_BLENDGRAPHTYPE_NUM = 3, 912 } 913 914 /** 915 * 画像合成座標タイプ 916 */ 917 enum 918 { 919 /** 920 * 描画する画像基準で合成画像の座標を決定 921 */ 922 DX_BLENDGRAPH_POSMODE_DRAWGRAPH = 0, 923 924 /** 925 * スクリーン座標基準で合成画像の座標を決定 926 */ 927 DX_BLENDGRAPH_POSMODE_SCREEN = 1, 928 929 /** 930 * ? 931 */ 932 DX_BLENDGRAPH_POSMODE_NUM = 2, 933 } 934 935 /** 936 * グラフィックフィルタータイプ 937 */ 938 enum 939 { 940 /** 941 * モノトーンフィルタ 942 */ 943 DX_GRAPH_FILTER_MONO = 0, 944 945 /** 946 * ガウスフィルタ 947 */ 948 DX_GRAPH_FILTER_GAUSS = 1, 949 950 /** 951 * 縮小フィルタ 952 */ 953 DX_GRAPH_FILTER_DOWN_SCALE = 2, 954 955 /** 956 * 明るさクリップフィルタ 957 */ 958 DX_GRAPH_FILTER_BRIGHT_CLIP = 3, 959 960 /** 961 * 指定の明るさ領域を拡大するフィルタ 962 */ 963 DX_GRAPH_FILTER_BRIGHT_SCALE = 4, 964 965 /** 966 * 色相・彩度・明度フィルタ 967 */ 968 DX_GRAPH_FILTER_HSB = 5, 969 970 /** 971 * 階調の反転フィルタ 972 */ 973 DX_GRAPH_FILTER_INVERT = 6, 974 975 /** 976 * レベル補正フィルタ 977 */ 978 DX_GRAPH_FILTER_LEVEL = 7, 979 980 /** 981 * 2階調化フィルタ 982 */ 983 DX_GRAPH_FILTER_TWO_COLOR = 8, 984 985 /** 986 * グラデーションマップフィルタ 987 */ 988 DX_GRAPH_FILTER_GRADIENT_MAP = 9, 989 990 /** 991 * 色の置換 992 */ 993 DX_GRAPH_FILTER_REPLACEMENT = 10, 994 995 /** 996 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ 997 */ 998 DX_GRAPH_FILTER_PREMUL_ALPHA = 11, 999 1000 /** 1001 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ 1002 */ 1003 DX_GRAPH_FILTER_INTERP_ALPHA = 12, 1004 1005 /** 1006 * YUVカラーをRGBカラーに変換するフィルタ 1007 */ 1008 DX_GRAPH_FILTER_YUV_TO_RGB = 13, 1009 1010 /** 1011 * YUVカラーをRGBカラーに変換するフィルタ( UV成分が Y成分の半分・又は4分の1( 横・縦片方若しくは両方 )の解像度しかない場合用 ) 1012 */ 1013 DX_GRAPH_FILTER_Y2UV1_TO_RGB = 14, 1014 1015 /** 1016 * YUVカラーをRGBカラーに変換するフィルタ( 且つ右側半分のRの値をアルファ値として扱う ) 1017 */ 1018 DX_GRAPH_FILTER_YUV_TO_RGB_RRA = 15, 1019 1020 /** 1021 * YUVカラーをRGBカラーに変換するフィルタ( UV成分が Y成分の半分・又は4分の1( 横・縦片方若しくは両方 )の解像度しかない場合用 )( 且つ右側半分のRの値をアルファ値として扱う ) 1022 */ 1023 DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA = 16, 1024 1025 /** 1026 * バイキュービックを使用した拡大・縮小フィルタ 1027 */ 1028 DX_GRAPH_FILTER_BICUBIC_SCALE = 17, 1029 1030 /** 1031 * Lanczos-3を使用した拡大・縮小フィルタ 1032 */ 1033 DX_GRAPH_FILTER_LANCZOS3_SCALE = 18, 1034 1035 /** 1036 * 明るさクリップフィルタ(乗算済みアルファ画像用) 1037 */ 1038 DX_GRAPH_FILTER_PMA_BRIGHT_CLIP = 19, 1039 1040 /** 1041 * 指定の明るさ領域を拡大するフィルタ(乗算済みアルファ画像用) 1042 */ 1043 DX_GRAPH_FILTER_PMA_BRIGHT_SCALE = 20, 1044 1045 /** 1046 * 色相・彩度・明度フィルタ(乗算済みアルファ画像用) 1047 */ 1048 DX_GRAPH_FILTER_PMA_HSB = 21, 1049 1050 /** 1051 * 階調の反転フィルタ(乗算済みアルファ画像用) 1052 */ 1053 DX_GRAPH_FILTER_PMA_INVERT = 22, 1054 1055 /** 1056 * レベル補正フィルタ(乗算済みアルファ画像用) 1057 */ 1058 DX_GRAPH_FILTER_PMA_LEVEL = 23, 1059 1060 /** 1061 * 2階調化フィルタ(乗算済みアルファ画像用) 1062 */ 1063 DX_GRAPH_FILTER_PMA_TWO_COLOR = 24, 1064 1065 /** 1066 * グラデーションマップフィルタ(乗算済みアルファ画像用) 1067 */ 1068 DX_GRAPH_FILTER_PMA_GRADIENT_MAP = 25, 1069 1070 /** 1071 * 色の置換(乗算済みアルファ画像用) 1072 */ 1073 DX_GRAPH_FILTER_PMA_REPLACEMENT = 26, 1074 1075 /** 1076 * グラフィックフィルタータイプの数 1077 */ 1078 DX_GRAPH_FILTER_NUM = 27, 1079 } 1080 1081 /** 1082 * グラフィックブレンドタイプ 1083 */ 1084 enum 1085 { 1086 /** 1087 * 通常 1088 */ 1089 DX_GRAPH_BLEND_NORMAL = 0, 1090 1091 /** 1092 * RGBAの要素を選択して合成 1093 */ 1094 DX_GRAPH_BLEND_RGBA_SELECT_MIX = 1, 1095 1096 /** 1097 * 乗算 1098 */ 1099 DX_GRAPH_BLEND_MULTIPLE = 2, 1100 1101 /** 1102 * 減算 1103 */ 1104 DX_GRAPH_BLEND_DIFFERENCE = 3, 1105 1106 /** 1107 * 加算 1108 */ 1109 DX_GRAPH_BLEND_ADD = 4, 1110 1111 /** 1112 * スクリーン 1113 */ 1114 DX_GRAPH_BLEND_SCREEN = 5, 1115 1116 /** 1117 * オーバーレイ 1118 */ 1119 DX_GRAPH_BLEND_OVERLAY = 6, 1120 1121 /** 1122 * 覆い焼き 1123 */ 1124 DX_GRAPH_BLEND_DODGE = 7, 1125 1126 /** 1127 * 焼き込み 1128 */ 1129 DX_GRAPH_BLEND_BURN = 8, 1130 1131 /** 1132 * 比較(暗) 1133 */ 1134 DX_GRAPH_BLEND_DARKEN = 9, 1135 1136 /** 1137 * 比較(明) 1138 */ 1139 DX_GRAPH_BLEND_LIGHTEN = 10, 1140 1141 /** 1142 * ソフトライト 1143 */ 1144 DX_GRAPH_BLEND_SOFTLIGHT = 11, 1145 1146 /** 1147 * ハードライト 1148 */ 1149 DX_GRAPH_BLEND_HARDLIGHT = 12, 1150 1151 /** 1152 * 除外 1153 */ 1154 DX_GRAPH_BLEND_EXCLUSION = 13, 1155 1156 /** 1157 * αチャンネル付き画像の通常合成 1158 */ 1159 DX_GRAPH_BLEND_NORMAL_ALPHACH = 14, 1160 1161 /** 1162 * αチャンネル付き画像の加算合成 1163 */ 1164 DX_GRAPH_BLEND_ADD_ALPHACH = 15, 1165 1166 /** 1167 * アルファチャンネルのみの乗算 1168 */ 1169 DX_GRAPH_BLEND_MULTIPLE_A_ONLY = 16, 1170 1171 /** 1172 * 通常( 乗算済みα画像用 ) 1173 */ 1174 DX_GRAPH_BLEND_PMA_NORMAL = 17, 1175 1176 /** 1177 * RGBAの要素を選択して合成( 乗算済みα画像用 ) 1178 */ 1179 DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIX = 18, 1180 1181 /** 1182 * 乗算( 乗算済みα画像用 ) 1183 */ 1184 DX_GRAPH_BLEND_PMA_MULTIPLE = 19, 1185 1186 /** 1187 * 減算( 乗算済みα画像用 ) 1188 */ 1189 DX_GRAPH_BLEND_PMA_DIFFERENCE = 20, 1190 1191 /** 1192 * 加算( 乗算済みα画像用 ) 1193 */ 1194 DX_GRAPH_BLEND_PMA_ADD = 21, 1195 1196 /** 1197 * スクリーン( 乗算済みα画像用 ) 1198 */ 1199 DX_GRAPH_BLEND_PMA_SCREEN = 22, 1200 1201 /** 1202 * オーバーレイ( 乗算済みα画像用 ) 1203 */ 1204 DX_GRAPH_BLEND_PMA_OVERLAY = 23, 1205 1206 /** 1207 * 覆い焼き( 乗算済みα画像用 ) 1208 */ 1209 DX_GRAPH_BLEND_PMA_DODGE = 24, 1210 1211 /** 1212 * 焼き込み( 乗算済みα画像用 ) 1213 */ 1214 DX_GRAPH_BLEND_PMA_BURN = 25, 1215 1216 /** 1217 * 比較(暗)( 乗算済みα画像用 ) 1218 */ 1219 DX_GRAPH_BLEND_PMA_DARKEN = 26, 1220 1221 /** 1222 * 比較(明)( 乗算済みα画像用 ) 1223 */ 1224 DX_GRAPH_BLEND_PMA_LIGHTEN = 27, 1225 1226 /** 1227 * ソフトライト( 乗算済みα画像用 ) 1228 */ 1229 DX_GRAPH_BLEND_PMA_SOFTLIGHT = 28, 1230 1231 /** 1232 * ハードライト( 乗算済みα画像用 ) 1233 */ 1234 DX_GRAPH_BLEND_PMA_HARDLIGHT = 29, 1235 1236 /** 1237 * 除外( 乗算済みα画像用 ) 1238 */ 1239 DX_GRAPH_BLEND_PMA_EXCLUSION = 30, 1240 1241 /** 1242 * αチャンネル付き画像の通常合成( 乗算済みα画像用 ) 1243 */ 1244 DX_GRAPH_BLEND_PMA_NORMAL_ALPHACH = 31, 1245 1246 /** 1247 * αチャンネル付き画像の加算合成( 乗算済みα画像用 ) 1248 */ 1249 DX_GRAPH_BLEND_PMA_ADD_ALPHACH = 32, 1250 1251 /** 1252 * アルファチャンネルのみの乗算( 乗算済みα画像用 ) 1253 */ 1254 DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY = 33, 1255 1256 /** 1257 * ? 1258 */ 1259 DX_GRAPH_BLEND_NUM = 34, 1260 } 1261 1262 /** 1263 * DX_GRAPH_BLEND_RGBA_SELECT_MIX 用の色選択用定義 1264 */ 1265 enum 1266 { 1267 /** 1268 * 元画像の赤成分 1269 */ 1270 DX_RGBA_SELECT_SRC_R = 0, 1271 1272 /** 1273 * 元画像の緑成分 1274 */ 1275 DX_RGBA_SELECT_SRC_G = 1, 1276 1277 /** 1278 * 元画像の青成分 1279 */ 1280 DX_RGBA_SELECT_SRC_B = 2, 1281 1282 /** 1283 * 元画像のα成分 1284 */ 1285 DX_RGBA_SELECT_SRC_A = 3, 1286 1287 /** 1288 * ブレンド画像の赤成分 1289 */ 1290 DX_RGBA_SELECT_BLEND_R = 4, 1291 1292 /** 1293 * ブレンド画像の緑成分 1294 */ 1295 DX_RGBA_SELECT_BLEND_G = 5, 1296 1297 /** 1298 * ブレンド画像の青成分 1299 */ 1300 DX_RGBA_SELECT_BLEND_B = 6, 1301 1302 /** 1303 * ブレンド画像のα成分 1304 */ 1305 DX_RGBA_SELECT_BLEND_A = 7, 1306 1307 /** 1308 * 元画像の赤成分を反転したもの 1309 */ 1310 DX_RGBA_SELECT_SRC_INV_R = 8, 1311 1312 /** 1313 * 元画像の緑成分を反転したもの 1314 */ 1315 DX_RGBA_SELECT_SRC_INV_G = 9, 1316 1317 /** 1318 * 元画像の青成分を反転したもの 1319 */ 1320 DX_RGBA_SELECT_SRC_INV_B = 10, 1321 1322 /** 1323 * 元画像のα成分を反転したもの 1324 */ 1325 DX_RGBA_SELECT_SRC_INV_A = 11, 1326 1327 /** 1328 * ブレンド画像の赤成分を反転したもの 1329 */ 1330 DX_RGBA_SELECT_BLEND_INV_R = 12, 1331 1332 /** 1333 * ブレンド画像の緑成分を反転したもの 1334 */ 1335 DX_RGBA_SELECT_BLEND_INV_G = 13, 1336 1337 /** 1338 * ブレンド画像の青成分を反転したもの 1339 */ 1340 DX_RGBA_SELECT_BLEND_INV_B = 14, 1341 1342 /** 1343 * ブレンド画像のα成分を反転したもの 1344 */ 1345 DX_RGBA_SELECT_BLEND_INV_A = 15, 1346 } 1347 1348 /** 1349 * フィルモード 1350 */ 1351 enum 1352 { 1353 /** 1354 * ワイヤーフレーム 1355 */ 1356 DX_FILL_WIREFRAME = 2, 1357 1358 /** 1359 * ポリゴン 1360 */ 1361 DX_FILL_SOLID = 3, 1362 } 1363 1364 /** 1365 * ポリゴンカリングモード 1366 */ 1367 enum 1368 { 1369 /** 1370 * カリングなし 1371 */ 1372 DX_CULLING_NONE = 0, 1373 1374 /** 1375 * 背面を左回りでカリング 1376 */ 1377 DX_CULLING_LEFT = 1, 1378 1379 /** 1380 * 背面を右回りでカリング 1381 */ 1382 DX_CULLING_RIGHT = 2, 1383 1384 /** 1385 * カリングモードの数 1386 */ 1387 DX_CULLING_NUM = 3, 1388 } 1389 1390 /** 1391 * クリッピング方向 1392 */ 1393 enum 1394 { 1395 /** 1396 * 画面左方向にクリップ 1397 */ 1398 DX_CAMERACLIP_LEFT = 0x01, 1399 1400 /** 1401 * 画面右方向にクリップ 1402 */ 1403 DX_CAMERACLIP_RIGHT = 0x02, 1404 1405 /** 1406 * 画面下方向にクリップ 1407 */ 1408 DX_CAMERACLIP_BOTTOM = 0x04, 1409 1410 /** 1411 * 画面上方向にクリップ 1412 */ 1413 DX_CAMERACLIP_TOP = 0x08, 1414 1415 /** 1416 * 画面後方向にクリップ 1417 */ 1418 DX_CAMERACLIP_BACK = 0x10, 1419 1420 /** 1421 * 画面前方向にクリップ 1422 */ 1423 DX_CAMERACLIP_FRONT = 0x20, 1424 } 1425 1426 /** 1427 * MV1モデルの頂点タイプ 1428 */ 1429 enum 1430 { 1431 /** 1432 * 1フレームの影響を受ける頂点 1433 */ 1434 DX_MV1_VERTEX_TYPE_1FRAME = 0, 1435 1436 /** 1437 * 1〜4フレームの影響を受ける頂点 1438 */ 1439 DX_MV1_VERTEX_TYPE_4FRAME = 1, 1440 1441 /** 1442 * 5〜8フレームの影響を受ける頂点 1443 */ 1444 DX_MV1_VERTEX_TYPE_8FRAME = 2, 1445 1446 /** 1447 * 9フレーム以上の影響を受ける頂点 1448 */ 1449 DX_MV1_VERTEX_TYPE_FREE_FRAME = 3, 1450 1451 /** 1452 * 法線マップ用の情報が含まれる1フレームの影響を受ける頂点 1453 */ 1454 DX_MV1_VERTEX_TYPE_NMAP_1FRAME = 4, 1455 1456 /** 1457 * 法線マップ用の情報が含まれる1〜4フレームの影響を受ける頂点 1458 */ 1459 DX_MV1_VERTEX_TYPE_NMAP_4FRAME = 5, 1460 1461 /** 1462 * 法線マップ用の情報が含まれる5〜8フレームの影響を受ける頂点 1463 */ 1464 DX_MV1_VERTEX_TYPE_NMAP_8FRAME = 6, 1465 1466 /** 1467 * 法線マップ用の情報が含まれる9フレーム以上の影響を受ける頂点 1468 */ 1469 DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME = 7, 1470 1471 /** 1472 * 頂点タイプの数 1473 */ 1474 DX_MV1_VERTEX_TYPE_NUM = 8, 1475 } 1476 1477 /** 1478 * メッシュの種類 1479 */ 1480 enum 1481 { 1482 /** 1483 * 普通のメッシュ 1484 */ 1485 DX_MV1_MESHCATEGORY_NORMAL = 0, 1486 1487 /** 1488 * 輪郭線描画用メッシュ 1489 */ 1490 DX_MV1_MESHCATEGORY_OUTLINE = 1, 1491 1492 /** 1493 * 輪郭線描画用メッシュ( オリジナルシェーダーでの描画用 ) 1494 */ 1495 DX_MV1_MESHCATEGORY_OUTLINE_ORIG_SHADER = 2, 1496 1497 /** 1498 * メッシュの種類の数 1499 */ 1500 DX_MV1_MESHCATEGORY_NUM = 3, 1501 } 1502 1503 /** 1504 * シェイプ率の適用タイプ 1505 */ 1506 enum 1507 { 1508 /** 1509 * 元の値に加算 1510 */ 1511 DX_MV1_SHAPERATE_ADD = 0, 1512 1513 /** 1514 * 元の値に上書き 1515 */ 1516 DX_MV1_SHAPERATE_OVERWRITE = 1, 1517 } 1518 1519 /** 1520 * MV1ファイルの保存タイプ 1521 */ 1522 enum 1523 { 1524 /** 1525 * メッシュ情報のみ保存 1526 */ 1527 MV1_SAVETYPE_MESH = 0x0001, 1528 1529 /** 1530 * アニメーション情報のみ保存 1531 */ 1532 MV1_SAVETYPE_ANIM = 0x0002, 1533 1534 /** 1535 * 通常保存 1536 */ 1537 MV1_SAVETYPE_NORMAL = MV1_SAVETYPE_MESH | MV1_SAVETYPE_ANIM, 1538 } 1539 1540 /** 1541 * アニメーションキーデータタイプ 1542 */ 1543 enum 1544 { 1545 /** 1546 * 回転 1547 */ 1548 MV1_ANIMKEY_DATATYPE_ROTATE = 0, 1549 1550 /** 1551 * 回転X 1552 */ 1553 MV1_ANIMKEY_DATATYPE_ROTATE_X = 1, 1554 1555 /** 1556 * 回転Y 1557 */ 1558 MV1_ANIMKEY_DATATYPE_ROTATE_Y = 2, 1559 1560 /** 1561 * 回転Z 1562 */ 1563 MV1_ANIMKEY_DATATYPE_ROTATE_Z = 3, 1564 1565 /** 1566 * 拡大 1567 */ 1568 MV1_ANIMKEY_DATATYPE_SCALE = 5, 1569 1570 /** 1571 * スケールX 1572 */ 1573 MV1_ANIMKEY_DATATYPE_SCALE_X = 6, 1574 1575 /** 1576 * スケールY 1577 */ 1578 MV1_ANIMKEY_DATATYPE_SCALE_Y = 7, 1579 1580 /** 1581 * スケールZ 1582 */ 1583 MV1_ANIMKEY_DATATYPE_SCALE_Z = 8, 1584 1585 /** 1586 * 平行移動 1587 */ 1588 MV1_ANIMKEY_DATATYPE_TRANSLATE = 10, 1589 1590 /** 1591 * 平行移動X 1592 */ 1593 MV1_ANIMKEY_DATATYPE_TRANSLATE_X = 11, 1594 1595 /** 1596 * 平行移動Y 1597 */ 1598 MV1_ANIMKEY_DATATYPE_TRANSLATE_Y = 12, 1599 1600 /** 1601 * 平行移動Z 1602 */ 1603 MV1_ANIMKEY_DATATYPE_TRANSLATE_Z = 13, 1604 1605 /** 1606 * 4×4行列の4列目( 0,0,0,1 )固定版 1607 */ 1608 MV1_ANIMKEY_DATATYPE_MATRIX4X4C = 15, 1609 1610 /** 1611 * 3×3行列 1612 */ 1613 MV1_ANIMKEY_DATATYPE_MATRIX3X3 = 17, 1614 1615 /** 1616 * シェイプ 1617 */ 1618 MV1_ANIMKEY_DATATYPE_SHAPE = 18, 1619 1620 /** 1621 * その他 1622 */ 1623 MV1_ANIMKEY_DATATYPE_OTHRE = 20, 1624 } 1625 1626 /** 1627 * タイムタイプ 1628 */ 1629 enum 1630 { 1631 /** 1632 * 時間情報は全体で1つ 1633 */ 1634 MV1_ANIMKEY_TIME_TYPE_ONE = 0, 1635 1636 /** 1637 * 時間情報は各キーに1つ 1638 */ 1639 MV1_ANIMKEY_TIME_TYPE_KEY = 1, 1640 } 1641 1642 /** 1643 * アニメーションキータイプ 1644 */ 1645 enum 1646 { 1647 /** 1648 * クォータニオン( Xファイルタイプ ) 1649 */ 1650 MV1_ANIMKEY_TYPE_QUATERNION_X = 0, 1651 1652 /** 1653 * ベクター 1654 */ 1655 MV1_ANIMKEY_TYPE_VECTOR = 1, 1656 1657 /** 1658 * 4×4行列の4列目( 0,0,0,1 )固定版 1659 */ 1660 MV1_ANIMKEY_TYPE_MATRIX4X4C = 2, 1661 1662 /** 1663 * 3×3行列 1664 */ 1665 MV1_ANIMKEY_TYPE_MATRIX3X3 = 3, 1666 1667 /** 1668 * フラット 1669 */ 1670 MV1_ANIMKEY_TYPE_FLAT = 4, 1671 1672 /** 1673 * 線形補間 1674 */ 1675 MV1_ANIMKEY_TYPE_LINEAR = 5, 1676 1677 /** 1678 * 混合 1679 */ 1680 MV1_ANIMKEY_TYPE_BLEND = 6, 1681 1682 /** 1683 * クォータニオン( VMDタイプ ) 1684 */ 1685 MV1_ANIMKEY_TYPE_QUATERNION_VMD = 7, 1686 } 1687 1688 /** 1689 * 描画先画面指定用定義 1690 */ 1691 enum 1692 { 1693 /** 1694 * ? 1695 */ 1696 DX_SCREEN_FRONT = 0xFFFFFFFC, 1697 1698 /** 1699 * ? 1700 */ 1701 DX_SCREEN_BACK = 0xFFFFFFFE, 1702 1703 /** 1704 * ? 1705 */ 1706 DX_SCREEN_WORK = 0xFFFFFFFD, 1707 1708 /** 1709 * ? 1710 */ 1711 DX_SCREEN_TEMPFRONT = 0xFFFFFFF0, 1712 1713 /** 1714 * ? 1715 */ 1716 DX_SCREEN_OTHER = 0xFFFFFFFA, 1717 } 1718 1719 /** 1720 * グラフィックなしハンドル 1721 */ 1722 enum DX_NONE_GRAPH = 0xFFFFFFFB; 1723 1724 /** 1725 * グラフィック減色時の画像劣化緩和処理モード 1726 */ 1727 enum 1728 { 1729 /** 1730 * 画像劣化緩和処理を行わない 1731 */ 1732 DX_SHAVEDMODE_NONE = 0, 1733 1734 /** 1735 * ディザリング 1736 */ 1737 DX_SHAVEDMODE_DITHER = 1, 1738 1739 /** 1740 * 誤差拡散 1741 */ 1742 DX_SHAVEDMODE_DIFFUS = 2, 1743 } 1744 1745 /** 1746 * 画像の保存タイプ 1747 */ 1748 enum 1749 { 1750 /** 1751 * bitmap 1752 */ 1753 DX_IMAGESAVETYPE_BMP = 0, 1754 1755 /** 1756 * jpeg 1757 */ 1758 DX_IMAGESAVETYPE_JPEG = 1, 1759 1760 /** 1761 * Png 1762 */ 1763 DX_IMAGESAVETYPE_PNG = 2, 1764 1765 /** 1766 * Direct Draw Surface 1767 */ 1768 DX_IMAGESAVETYPE_DDS = 3, 1769 } 1770 1771 /** 1772 * サウンド再生形態指定用定義 1773 */ 1774 enum 1775 { 1776 /** 1777 * ループ再生ビット 1778 */ 1779 DX_PLAYTYPE_LOOPBIT = 0x0002, 1780 1781 /** 1782 * バックグラウンド再生ビット 1783 */ 1784 DX_PLAYTYPE_BACKBIT = 0x0001, 1785 1786 /** 1787 * ノーマル再生 1788 */ 1789 DX_PLAYTYPE_NORMAL = 0, 1790 1791 /** 1792 * バックグラウンド再生 1793 */ 1794 DX_PLAYTYPE_BACK = DX_PLAYTYPE_BACKBIT, 1795 1796 /** 1797 * ループ再生 1798 */ 1799 DX_PLAYTYPE_LOOP = DX_PLAYTYPE_LOOPBIT | DX_PLAYTYPE_BACKBIT, 1800 } 1801 1802 /** 1803 * 動画再生タイプ定義 1804 */ 1805 enum 1806 { 1807 /** 1808 * ボタンキャンセルあり 1809 */ 1810 DX_MOVIEPLAYTYPE_BCANCEL = 0, 1811 1812 /** 1813 * ボタンキャンセルなし 1814 */ 1815 DX_MOVIEPLAYTYPE_NORMAL = 1, 1816 } 1817 1818 /** 1819 * サウンドのタイプ 1820 */ 1821 enum 1822 { 1823 /** 1824 * ノーマルサウンド形式 1825 */ 1826 DX_SOUNDTYPE_NORMAL = 0, 1827 1828 /** 1829 * ストリーム風サウンド形式 1830 */ 1831 DX_SOUNDTYPE_STREAMSTYLE = 1, 1832 } 1833 1834 /** 1835 * サウンドデータタイプのマクロ 1836 */ 1837 enum 1838 { 1839 /** 1840 * 圧縮された全データは再生が始まる前にサウンドメモリにすべて解凍され、格納される 1841 */ 1842 DX_SOUNDDATATYPE_MEMNOPRESS = 0, 1843 1844 /** 1845 * 圧縮された全データはシステムメモリに格納され、再生しながら逐次解凍され、最終的にすべてサウンドメモリに格納される(その後システムメモリに存在する圧縮データは破棄される) 1846 */ 1847 DX_SOUNDDATATYPE_MEMNOPRESS_PLUS = 1, 1848 1849 /** 1850 * 圧縮された全データはシステムメモリに格納され、再生する部分だけ逐次解凍しながらサウンドメモリに格納する(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる) 1851 */ 1852 DX_SOUNDDATATYPE_MEMPRESS = 2, 1853 1854 /** 1855 * 圧縮されたデータの再生する部分だけファイルから逐次読み込み解凍され、サウンドメモリに格納される(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる) 1856 */ 1857 DX_SOUNDDATATYPE_FILE = 3, 1858 } 1859 1860 /** 1861 * サウンドの取得する再生時間タイプ 1862 */ 1863 enum 1864 { 1865 /** 1866 * 低レベルAPIを使用してより正確な再生時間を取得する 1867 */ 1868 DX_SOUNDCURRENTTIME_TYPE_LOW_LEVEL = 0, 1869 1870 /** 1871 * APIは使用せず、ソフトウェア処理レベルでの再生時間を取得する 1872 */ 1873 DX_SOUNDCURRENTTIME_TYPE_SOFT = 1, 1874 } 1875 1876 /** 1877 * 読み込み処理のタイプ 1878 */ 1879 enum 1880 { 1881 /** 1882 * PCM の読み込み処理 1883 */ 1884 DX_READSOUNDFUNCTION_PCM = 1 << 0, 1885 1886 /** 1887 * Ogg Vorbis の読み込み処理 1888 */ 1889 DX_READSOUNDFUNCTION_OGG = 1 << 1, 1890 1891 /** 1892 * Opus の読み込み処理 1893 */ 1894 DX_READSOUNDFUNCTION_OPUS = 1 << 2, 1895 1896 /** 1897 * 環境非依存の読み込み処理タイプの数 1898 */ 1899 DX_READSOUNDFUNCTION_DEFAULT_NUM = 3, 1900 } 1901 1902 /** 1903 * 3Dサウンドリバーブエフェクトのプリセット 1904 */ 1905 enum 1906 { 1907 /** 1908 * デフォルト 1909 */ 1910 DX_REVERB_PRESET_DEFAULT = 0, 1911 1912 /** 1913 * 一般的な空間 1914 */ 1915 DX_REVERB_PRESET_GENERIC = 1, 1916 1917 /** 1918 * 精神病患者室(?) 1919 */ 1920 DX_REVERB_PRESET_PADDEDCELL = 2, 1921 1922 /** 1923 * 部屋 1924 */ 1925 DX_REVERB_PRESET_ROOM = 3, 1926 1927 /** 1928 * バスルーム 1929 */ 1930 DX_REVERB_PRESET_BATHROOM = 4, 1931 1932 /** 1933 * リビングルーム 1934 */ 1935 DX_REVERB_PRESET_LIVINGROOM = 5, 1936 1937 /** 1938 * 石の部屋 1939 */ 1940 DX_REVERB_PRESET_STONEROOM = 6, 1941 1942 /** 1943 * 講堂 1944 */ 1945 DX_REVERB_PRESET_AUDITORIUM = 7, 1946 1947 /** 1948 * コンサートホール 1949 */ 1950 DX_REVERB_PRESET_CONCERTHALL = 8, 1951 1952 /** 1953 * 洞穴 1954 */ 1955 DX_REVERB_PRESET_CAVE = 9, 1956 1957 /** 1958 * 舞台 1959 */ 1960 DX_REVERB_PRESET_ARENA = 10, 1961 1962 /** 1963 * 格納庫 1964 */ 1965 DX_REVERB_PRESET_HANGAR = 11, 1966 1967 /** 1968 * カーペットが敷かれた玄関 1969 */ 1970 DX_REVERB_PRESET_CARPETEDHALLWAY = 12, 1971 1972 /** 1973 * 玄関 1974 */ 1975 DX_REVERB_PRESET_HALLWAY = 13, 1976 1977 /** 1978 * 石の廊下 1979 */ 1980 DX_REVERB_PRESET_STONECORRIDOR = 14, 1981 1982 /** 1983 * 裏通り 1984 */ 1985 DX_REVERB_PRESET_ALLEY = 15, 1986 1987 /** 1988 * 森 1989 */ 1990 DX_REVERB_PRESET_FOREST = 16, 1991 1992 /** 1993 * 都市 1994 */ 1995 DX_REVERB_PRESET_CITY = 17, 1996 1997 /** 1998 * 山 1999 */ 2000 DX_REVERB_PRESET_MOUNTAINS = 18, 2001 2002 /** 2003 * 採石場 2004 */ 2005 DX_REVERB_PRESET_QUARRY = 19, 2006 2007 /** 2008 * 平原 2009 */ 2010 DX_REVERB_PRESET_PLAIN = 20, 2011 2012 /** 2013 * 駐車場 2014 */ 2015 DX_REVERB_PRESET_PARKINGLOT = 21, 2016 2017 /** 2018 * 下水管 2019 */ 2020 DX_REVERB_PRESET_SEWERPIPE = 22, 2021 2022 /** 2023 * 水面下 2024 */ 2025 DX_REVERB_PRESET_UNDERWATER = 23, 2026 2027 /** 2028 * 小部屋 2029 */ 2030 DX_REVERB_PRESET_SMALLROOM = 24, 2031 2032 /** 2033 * 中部屋 2034 */ 2035 DX_REVERB_PRESET_MEDIUMROOM = 25, 2036 2037 /** 2038 * 大部屋 2039 */ 2040 DX_REVERB_PRESET_LARGEROOM = 26, 2041 2042 /** 2043 * 中ホール 2044 */ 2045 DX_REVERB_PRESET_MEDIUMHALL = 27, 2046 2047 /** 2048 * 大ホール 2049 */ 2050 DX_REVERB_PRESET_LARGEHALL = 28, 2051 2052 /** 2053 * 板 2054 */ 2055 DX_REVERB_PRESET_PLATE = 29, 2056 2057 /** 2058 * プリセットの数 2059 */ 2060 DX_REVERB_PRESET_NUM = 30, 2061 } 2062 2063 /** 2064 * マスク透過色モード 2065 */ 2066 enum 2067 { 2068 /** 2069 * マスク画像の白い部分を透過色とする 2070 */ 2071 DX_MASKTRANS_WHITE = 0, 2072 2073 /** 2074 * マスク画像の黒い部分を透過色とする 2075 */ 2076 DX_MASKTRANS_BLACK = 1, 2077 2078 /** 2079 * 透過色なし 2080 */ 2081 DX_MASKTRANS_NONE = 2, 2082 } 2083 2084 /** 2085 * マスク画像チャンネル 2086 */ 2087 enum 2088 { 2089 /** 2090 * アルファ 2091 */ 2092 DX_MASKGRAPH_CH_A = 0, 2093 2094 /** 2095 * 赤 2096 */ 2097 DX_MASKGRAPH_CH_R = 1, 2098 2099 /** 2100 * 緑 2101 */ 2102 DX_MASKGRAPH_CH_G = 2, 2103 2104 /** 2105 * 青 2106 */ 2107 DX_MASKGRAPH_CH_B = 3, 2108 } 2109 2110 /** 2111 * Zバッファ書き込みモード 2112 */ 2113 enum 2114 { 2115 /** 2116 * 書き込めないようにマスクする 2117 */ 2118 DX_ZWRITE_MASK = 0, 2119 2120 /** 2121 * 書き込めるようにマスクをクリアする 2122 */ 2123 DX_ZWRITE_CLEAR = 1, 2124 } 2125 2126 /** 2127 * 比較モード 2128 */ 2129 enum 2130 { 2131 /** 2132 * FALSE 2133 */ 2134 DX_CMP_NEVER = 1, 2135 2136 /** 2137 * Src < Dest DrawAlpha < TestParam 2138 */ 2139 DX_CMP_LESS = 2, 2140 2141 /** 2142 * Src == Dest DrawAlpha == TestParam 2143 */ 2144 DX_CMP_EQUAL = 3, 2145 2146 /** 2147 * Src <= Dest DrawAlpha <= TestParam 2148 */ 2149 DX_CMP_LESSEQUAL = 4, 2150 2151 /** 2152 * Src > Dest DrawAlpha > TestParam 2153 */ 2154 DX_CMP_GREATER = 5, 2155 2156 /** 2157 * Src != Dest DrawAlpha != TestParam 2158 */ 2159 DX_CMP_NOTEQUAL = 6, 2160 2161 /** 2162 * Src >= Dest DrawAlpha >= TestParam 2163 */ 2164 DX_CMP_GREATEREQUAL = 7, 2165 2166 /** 2167 * TRUE 2168 */ 2169 DX_CMP_ALWAYS = 8, 2170 2171 /** 2172 * ? 2173 */ 2174 DX_ZCMP_DEFAULT = DX_CMP_LESSEQUAL, 2175 2176 /** 2177 * ? 2178 */ 2179 DX_ZCMP_REVERSE = DX_CMP_GREATEREQUAL, 2180 } 2181 2182 /** 2183 * シェーディングモード 2184 */ 2185 enum 2186 { 2187 /** 2188 * D_D3DSHADE_FLAT 2189 */ 2190 DX_SHADEMODE_FLAT = 1, 2191 2192 /** 2193 * D_D3DSHADE_GOURAUD 2194 */ 2195 DX_SHADEMODE_GOURAUD = 2, 2196 } 2197 2198 /** 2199 * フォグモード 2200 */ 2201 enum 2202 { 2203 /** 2204 * D_D3DFOG_NONE 2205 */ 2206 DX_FOGMODE_NONE = 0, 2207 2208 /** 2209 * D_D3DFOG_EXP 2210 */ 2211 DX_FOGMODE_EXP = 1, 2212 2213 /** 2214 * D_D3DFOG_EXP2 2215 */ 2216 DX_FOGMODE_EXP2 = 2, 2217 2218 /** 2219 * D_D3DFOG_LINEAR 2220 */ 2221 DX_FOGMODE_LINEAR = 3, 2222 } 2223 2224 /** 2225 * マテリアルタイプ 2226 */ 2227 enum 2228 { 2229 /** 2230 * 標準マテリアル 2231 */ 2232 DX_MATERIAL_TYPE_NORMAL = 0, 2233 2234 /** 2235 * トゥーンレンダリング用マテリアル 2236 */ 2237 DX_MATERIAL_TYPE_TOON = 1, 2238 2239 /** 2240 * トゥーンレンダリング用マテリアル_タイプ2( MMD互換 ) 2241 */ 2242 DX_MATERIAL_TYPE_TOON_2 = 2, 2243 2244 /** 2245 * マテリアルのスペキュラ色の輝度の指定の範囲の値を 0.0f 〜 1.0f の値に正規化して書き込むマテリアル 2246 */ 2247 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORM = 3, 2248 2249 /** 2250 * DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORM に『指定の値未満の場合は書き込む値を 0.0f にする』という処理を加えたマテリアル 2251 */ 2252 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CLIP_UNORM = 4, 2253 2254 /** 2255 * マテリアルのスペキュラ色の輝度が指定の閾値以上 の場合は 1.0f を、未満の場合は 0.0f を書き込むマテリアル 2256 */ 2257 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUAL = 5, 2258 2259 /** 2260 * マテリアルのスペキュラハイライトの鮮明度の指定の範囲の値を 0.0f 〜 1.0f の値に正規化して書き込むマテリアル 2261 */ 2262 DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORM = 6, 2263 2264 /** 2265 * DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORM に『指定の値未満の場合は書き込む値を 0.0f にする』という処理を加えたマテリアル 2266 */ 2267 DX_MATERIAL_TYPE_MAT_SPEC_POWER_CLIP_UNORM = 7, 2268 2269 /** 2270 * マテリアルのスペキュラハイライトの鮮明度が指定の閾値以上 の場合は 1.0f を、未満の場合は 0.0f を書き込むマテリアル 2271 */ 2272 DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUAL = 8, 2273 2274 /** 2275 * ? 2276 */ 2277 DX_MATERIAL_TYPE_NUM = 9, 2278 } 2279 2280 /** 2281 * マテリアルブレンドタイプ 2282 */ 2283 enum 2284 { 2285 /** 2286 * アルファ合成 2287 */ 2288 DX_MATERIAL_BLENDTYPE_TRANSLUCENT = 0, 2289 2290 /** 2291 * 加算 2292 */ 2293 DX_MATERIAL_BLENDTYPE_ADDITIVE = 1, 2294 2295 /** 2296 * 乗算 2297 */ 2298 DX_MATERIAL_BLENDTYPE_MODULATE = 2, 2299 2300 /** 2301 * 無効 2302 */ 2303 DX_MATERIAL_BLENDTYPE_NONE = 3, 2304 } 2305 2306 /** 2307 * テクスチャアドレスタイプ 2308 */ 2309 enum 2310 { 2311 /** 2312 * D_D3DTADDRESS_WRAP 2313 */ 2314 DX_TEXADDRESS_WRAP = 1, 2315 2316 /** 2317 * D_D3DTADDRESS_MIRROR 2318 */ 2319 DX_TEXADDRESS_MIRROR = 2, 2320 2321 /** 2322 * D_D3DTADDRESS_CLAMP 2323 */ 2324 DX_TEXADDRESS_CLAMP = 3, 2325 2326 /** 2327 * D_D3DTADDRESS_BORDER 2328 */ 2329 DX_TEXADDRESS_BORDER = 4, 2330 2331 /** 2332 * テクスチャアドレスタイプの数 2333 */ 2334 DX_TEXADDRESS_NUM = 5, 2335 } 2336 2337 /** 2338 * シェーダータイプ 2339 */ 2340 enum 2341 { 2342 /** 2343 * 頂点シェーダー 2344 */ 2345 DX_SHADERTYPE_VERTEX = 0, 2346 2347 /** 2348 * ピクセルシェーダー 2349 */ 2350 DX_SHADERTYPE_PIXEL = 1, 2351 2352 /** 2353 * ジオメトリシェーダー 2354 */ 2355 DX_SHADERTYPE_GEOMETRY = 2, 2356 2357 /** 2358 * コンピュートシェーダー 2359 */ 2360 DX_SHADERTYPE_COMPUTE = 3, 2361 2362 /** 2363 * ドメインシェーダー 2364 */ 2365 DX_SHADERTYPE_DOMAIN = 4, 2366 2367 /** 2368 * ハルシェーダー 2369 */ 2370 DX_SHADERTYPE_HULL = 5, 2371 } 2372 2373 /** 2374 * 頂点データタイプ 2375 */ 2376 enum 2377 { 2378 /** 2379 * VERTEX3D構造体形式 2380 */ 2381 DX_VERTEX_TYPE_NORMAL_3D = 0, 2382 2383 /** 2384 * VERTEX3DSHADER構造体形式 2385 */ 2386 DX_VERTEX_TYPE_SHADER_3D = 1, 2387 2388 /** 2389 * ? 2390 */ 2391 DX_VERTEX_TYPE_NUM = 2, 2392 } 2393 2394 /** 2395 * インデックスデータタイプ 2396 */ 2397 enum 2398 { 2399 /** 2400 * 16bitインデックス 2401 */ 2402 DX_INDEX_TYPE_16BIT = 0, 2403 2404 /** 2405 * 32bitインデックス 2406 */ 2407 DX_INDEX_TYPE_32BIT = 1, 2408 } 2409 2410 /** 2411 * モデルファイル読み込み時の物理演算モード 2412 */ 2413 enum 2414 { 2415 /** 2416 * 物理演算を使用しない 2417 */ 2418 DX_LOADMODEL_PHYSICS_DISABLE = 1, 2419 2420 /** 2421 * 読み込み時に計算 2422 */ 2423 DX_LOADMODEL_PHYSICS_LOADCALC = 0, 2424 2425 /** 2426 * 実行時計算 2427 */ 2428 DX_LOADMODEL_PHYSICS_REALTIME = 2, 2429 } 2430 2431 /** 2432 * モデルファイル読み込み時の物理演算無効名前ワードのモード 2433 */ 2434 enum 2435 { 2436 /** 2437 * 全てのファイルに対して無効名ワードを適用する 2438 */ 2439 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS = 0, 2440 2441 /** 2442 * vmdファイル名に NP を含めた「物理演算無効」のファイルに対してのみ無効名ワードを適用する( この場合、無効名ワードが適用されない剛体については物理演算が行われる ) 2443 */ 2444 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_DISABLEPHYSICSFILEONLY = 1, 2445 2446 /** 2447 * ? 2448 */ 2449 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_NUM = 2, 2450 } 2451 2452 /** 2453 * PMD, PMX ファイル読み込み時のアニメーションの FPS モード( 主に IK 部分の精度に影響します ) 2454 */ 2455 enum 2456 { 2457 /** 2458 * アニメーションを 30FPS で読み込む( IK部分の精度:低 データサイズ:小 )( デフォルト ) 2459 */ 2460 DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30 = 0, 2461 2462 /** 2463 * アニメーションを 60FPS で読み込む( IK部分の精度:高 データサイズ:大 ) 2464 */ 2465 DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_60 = 1, 2466 } 2467 2468 /** 2469 * モデルの半透明要素がある箇所に関する描画モード 2470 */ 2471 enum 2472 { 2473 /** 2474 * 半透明かどうか関係なく描画する 2475 */ 2476 DX_SEMITRANSDRAWMODE_ALWAYS = 0, 2477 2478 /** 2479 * 半透明のもののみ描画する 2480 */ 2481 DX_SEMITRANSDRAWMODE_SEMITRANS_ONLY = 1, 2482 2483 /** 2484 * 半透明ではないもののみ描画する 2485 */ 2486 DX_SEMITRANSDRAWMODE_NOT_SEMITRANS_ONLY = 2, 2487 } 2488 2489 /** 2490 * キューブマップの面番号 2491 */ 2492 enum 2493 { 2494 /** 2495 * ? 2496 */ 2497 DX_CUBEMAP_FACE_POSITIVE_X = 0, 2498 2499 /** 2500 * ? 2501 */ 2502 DX_CUBEMAP_FACE_NEGATIVE_X = 1, 2503 2504 /** 2505 * ? 2506 */ 2507 DX_CUBEMAP_FACE_POSITIVE_Y = 2, 2508 2509 /** 2510 * ? 2511 */ 2512 DX_CUBEMAP_FACE_NEGATIVE_Y = 3, 2513 2514 /** 2515 * ? 2516 */ 2517 DX_CUBEMAP_FACE_POSITIVE_Z = 4, 2518 2519 /** 2520 * ? 2521 */ 2522 DX_CUBEMAP_FACE_NEGATIVE_Z = 5, 2523 } 2524 2525 /** 2526 * ポリゴン描画タイプ 2527 */ 2528 enum 2529 { 2530 /** 2531 * D_D3DPT_POINTLIST 2532 */ 2533 DX_PRIMTYPE_POINTLIST = 1, 2534 2535 /** 2536 * D_D3DPT_LINELIST 2537 */ 2538 DX_PRIMTYPE_LINELIST = 2, 2539 2540 /** 2541 * D_D3DPT_LINESTRIP 2542 */ 2543 DX_PRIMTYPE_LINESTRIP = 3, 2544 2545 /** 2546 * D_D3DPT_TRIANGLELIST 2547 */ 2548 DX_PRIMTYPE_TRIANGLELIST = 4, 2549 2550 /** 2551 * D_D3DPT_TRIANGLESTRIP 2552 */ 2553 DX_PRIMTYPE_TRIANGLESTRIP = 5, 2554 2555 /** 2556 * D_D3DPT_TRIANGLEFAN 2557 */ 2558 DX_PRIMTYPE_TRIANGLEFAN = 6, 2559 2560 /** 2561 * ? 2562 */ 2563 DX_PRIMTYPE_MIN = 1, 2564 2565 /** 2566 * ? 2567 */ 2568 DX_PRIMTYPE_MAX = 6, 2569 } 2570 2571 /** 2572 * ライトタイプ 2573 */ 2574 enum 2575 { 2576 /** 2577 * D_D3DLIGHT_POINT 2578 */ 2579 DX_LIGHTTYPE_D3DLIGHT_POINT = 1, 2580 2581 /** 2582 * D_D3DLIGHT_SPOT 2583 */ 2584 DX_LIGHTTYPE_D3DLIGHT_SPOT = 2, 2585 2586 /** 2587 * D_D3DLIGHT_DIRECTIONAL 2588 */ 2589 DX_LIGHTTYPE_D3DLIGHT_DIRECTIONAL = 3, 2590 2591 /** 2592 * D_D3DLIGHT_POINT 2593 */ 2594 DX_LIGHTTYPE_POINT = 1, 2595 2596 /** 2597 * D_D3DLIGHT_SPOT 2598 */ 2599 DX_LIGHTTYPE_SPOT = 2, 2600 2601 /** 2602 * D_D3DLIGHT_DIRECTIONAL 2603 */ 2604 DX_LIGHTTYPE_DIRECTIONAL = 3, 2605 } 2606 2607 /** 2608 * グラフィックイメージフォーマットの定義 2609 */ 2610 enum 2611 { 2612 /** 2613 * 16色パレットカラー標準 2614 */ 2615 DX_GRAPHICSIMAGE_FORMAT_3D_PAL4 = 0, 2616 2617 /** 2618 * 256色パレットカラー標準 2619 */ 2620 DX_GRAPHICSIMAGE_FORMAT_3D_PAL8 = 1, 2621 2622 /** 2623 * αチャンネルつき16色パレットカラー標準 2624 */ 2625 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL4 = 2, 2626 2627 /** 2628 * αチャンネルつき256色パレットカラー標準 2629 */ 2630 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL8 = 3, 2631 2632 /** 2633 * αテストつき16色パレットカラー標準 2634 */ 2635 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL4 = 4, 2636 2637 /** 2638 * αテストつき256色パレットカラー標準 2639 */ 2640 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL8 = 5, 2641 2642 /** 2643 * 16ビットカラー標準 2644 */ 2645 DX_GRAPHICSIMAGE_FORMAT_3D_RGB16 = 6, 2646 2647 /** 2648 * 32ビットカラー標準 2649 */ 2650 DX_GRAPHICSIMAGE_FORMAT_3D_RGB32 = 7, 2651 2652 /** 2653 * αチャンネル付き16ビットカラー 2654 */ 2655 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB16 = 8, 2656 2657 /** 2658 * αチャンネル付き32ビットカラー 2659 */ 2660 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB32 = 9, 2661 2662 /** 2663 * αテスト付き16ビットカラー 2664 */ 2665 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB16 = 10, 2666 2667 /** 2668 * αテスト付き32ビットカラー 2669 */ 2670 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB32 = 11, 2671 2672 /** 2673 * DXT1 2674 */ 2675 DX_GRAPHICSIMAGE_FORMAT_3D_DXT1 = 12, 2676 2677 /** 2678 * DXT2 2679 */ 2680 DX_GRAPHICSIMAGE_FORMAT_3D_DXT2 = 13, 2681 2682 /** 2683 * DXT3 2684 */ 2685 DX_GRAPHICSIMAGE_FORMAT_3D_DXT3 = 14, 2686 2687 /** 2688 * DXT4 2689 */ 2690 DX_GRAPHICSIMAGE_FORMAT_3D_DXT4 = 15, 2691 2692 /** 2693 * DXT5 2694 */ 2695 DX_GRAPHICSIMAGE_FORMAT_3D_DXT5 = 16, 2696 2697 /** 2698 * BC7 UNORM 2699 */ 2700 DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM = 17, 2701 2702 /** 2703 * BC7 UNORM SRGB 2704 */ 2705 DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM_SRGB = 18, 2706 2707 /** 2708 * プラットフォーム依存フォーマット0 2709 */ 2710 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM0 = 19, 2711 2712 /** 2713 * プラットフォーム依存フォーマット1 2714 */ 2715 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM1 = 20, 2716 2717 /** 2718 * プラットフォーム依存フォーマット2 2719 */ 2720 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM2 = 21, 2721 2722 /** 2723 * プラットフォーム依存フォーマット3 2724 */ 2725 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM3 = 22, 2726 2727 /** 2728 * YUVフォーマット 2729 */ 2730 DX_GRAPHICSIMAGE_FORMAT_3D_YUV = 23, 2731 2732 /** 2733 * ARGB整数16ビット型カラー 2734 */ 2735 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_I16 = 24, 2736 2737 /** 2738 * ARGB浮動小数点16ビット型カラー 2739 */ 2740 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F16 = 25, 2741 2742 /** 2743 * ARGB浮動小数点32ビット型カラー 2744 */ 2745 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F32 = 26, 2746 2747 /** 2748 * 1チャンネル整数8ビット型カラー 2749 */ 2750 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I8 = 27, 2751 2752 /** 2753 * 1チャンネル整数16ビット型カラー 2754 */ 2755 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I16 = 28, 2756 2757 /** 2758 * 1チャンネル浮動少数16ビット型カラー 2759 */ 2760 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F16 = 29, 2761 2762 /** 2763 * 1チャンネル浮動少数32ビット型カラー 2764 */ 2765 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F32 = 30, 2766 2767 /** 2768 * 2チャンネル整数8ビット型カラー 2769 */ 2770 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I8 = 31, 2771 2772 /** 2773 * 2チャンネル整数16ビット型カラー 2774 */ 2775 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I16 = 32, 2776 2777 /** 2778 * 2チャンネル浮動少数16ビット型カラー 2779 */ 2780 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F16 = 33, 2781 2782 /** 2783 * 2チャンネル浮動少数32ビット型カラー 2784 */ 2785 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F32 = 34, 2786 2787 /** 2788 * 描画可能16ビットカラー 2789 */ 2790 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB16 = 35, 2791 2792 /** 2793 * 描画可能32ビットカラー 2794 */ 2795 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB32 = 36, 2796 2797 /** 2798 * 描画可能α付き32ビットカラー 2799 */ 2800 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ALPHA_RGB32 = 37, 2801 2802 /** 2803 * 描画可能ARGB整数16ビット型カラー 2804 */ 2805 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_I16 = 38, 2806 2807 /** 2808 * 描画可能ARGB浮動小数点16ビット型カラー 2809 */ 2810 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F16 = 39, 2811 2812 /** 2813 * 描画可能ARGB浮動小数点32ビット型カラー 2814 */ 2815 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F32 = 40, 2816 2817 /** 2818 * 描画可能1チャンネル整数8ビット型カラー 2819 */ 2820 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I8 = 41, 2821 2822 /** 2823 * 描画可能1チャンネル整数16ビット型カラー 2824 */ 2825 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I16 = 42, 2826 2827 /** 2828 * 描画可能1チャンネル浮動少数16ビット型カラー 2829 */ 2830 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F16 = 43, 2831 2832 /** 2833 * 描画可能1チャンネル浮動少数32ビット型カラー 2834 */ 2835 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F32 = 44, 2836 2837 /** 2838 * 描画可能2チャンネル整数8ビット型カラー 2839 */ 2840 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I8 = 45, 2841 2842 /** 2843 * 描画可能2チャンネル整数16ビット型カラー 2844 */ 2845 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I16 = 46, 2846 2847 /** 2848 * 描画可能2チャンネル浮動少数16ビット型カラー 2849 */ 2850 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F16 = 47, 2851 2852 /** 2853 * 描画可能2チャンネル浮動少数32ビット型カラー 2854 */ 2855 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F32 = 48, 2856 2857 /** 2858 * ? 2859 */ 2860 DX_GRAPHICSIMAGE_FORMAT_3D_NUM = 49, 2861 2862 /** 2863 * 標準( DirectDrawSurface の場合はこれのみ ) 2864 */ 2865 DX_GRAPHICSIMAGE_FORMAT_2D = 50, 2866 2867 /** 2868 * R5G6B5( MEMIMG 用 ) 2869 */ 2870 DX_GRAPHICSIMAGE_FORMAT_R5G6B5 = 51, 2871 2872 /** 2873 * X8A8R5G6B5( MEMIMG 用 ) 2874 */ 2875 DX_GRAPHICSIMAGE_FORMAT_X8A8R5G6B5 = 52, 2876 2877 /** 2878 * X8R8G8B8( MEMIMG 用 ) 2879 */ 2880 DX_GRAPHICSIMAGE_FORMAT_X8R8G8B8 = 53, 2881 2882 /** 2883 * A8R8G8B8( MEMIMG 用 ) 2884 */ 2885 DX_GRAPHICSIMAGE_FORMAT_A8R8G8B8 = 54, 2886 2887 /** 2888 * グラフィックフォーマットの種類の数 2889 */ 2890 DX_GRAPHICSIMAGE_FORMAT_NUM = 55, 2891 } 2892 2893 /** 2894 * 基本イメージのピクセルフォーマット 2895 */ 2896 enum 2897 { 2898 /** 2899 * 普通の画像 2900 */ 2901 DX_BASEIMAGE_FORMAT_NORMAL = 0, 2902 2903 /** 2904 * DXT1 2905 */ 2906 DX_BASEIMAGE_FORMAT_DXT1 = 1, 2907 2908 /** 2909 * DXT2 2910 */ 2911 DX_BASEIMAGE_FORMAT_DXT2 = 2, 2912 2913 /** 2914 * DXT3 2915 */ 2916 DX_BASEIMAGE_FORMAT_DXT3 = 3, 2917 2918 /** 2919 * DXT4 2920 */ 2921 DX_BASEIMAGE_FORMAT_DXT4 = 4, 2922 2923 /** 2924 * DXT5 2925 */ 2926 DX_BASEIMAGE_FORMAT_DXT5 = 5, 2927 2928 /** 2929 * BC7 UNORM 2930 */ 2931 DX_BASEIMAGE_FORMAT_BC7_UNORM = 6, 2932 2933 /** 2934 * BC7 UNORM SRGB 2935 */ 2936 DX_BASEIMAGE_FORMAT_BC7_UNORM_SRGB = 7, 2937 2938 /** 2939 * プラットフォーム依存フォーマット0 2940 */ 2941 DX_BASEIMAGE_FORMAT_PLATFORM0 = 8, 2942 2943 /** 2944 * プラットフォーム依存フォーマット1 2945 */ 2946 DX_BASEIMAGE_FORMAT_PLATFORM1 = 9, 2947 2948 /** 2949 * プラットフォーム依存フォーマット2 2950 */ 2951 DX_BASEIMAGE_FORMAT_PLATFORM2 = 10, 2952 2953 /** 2954 * プラットフォーム依存フォーマット3 2955 */ 2956 DX_BASEIMAGE_FORMAT_PLATFORM3 = 11, 2957 2958 /** 2959 * YUV 2960 */ 2961 DX_BASEIMAGE_FORMAT_YUV = 12, 2962 } 2963 2964 /** 2965 * ムービーのサーフェスモード 2966 */ 2967 enum 2968 { 2969 /** 2970 * ? 2971 */ 2972 DX_MOVIESURFACE_NORMAL = 0, 2973 2974 /** 2975 * ? 2976 */ 2977 DX_MOVIESURFACE_OVERLAY = 1, 2978 2979 /** 2980 * ? 2981 */ 2982 DX_MOVIESURFACE_FULLCOLOR = 2, 2983 } 2984 2985 /** 2986 * SetUserScreenImage で渡す画面のピクセルフォーマット 2987 */ 2988 enum 2989 { 2990 /** 2991 * R5G6B5( DXライブラリの描画関数も使用できます( ソフトウェアレンダリングモード相当 ) ) 2992 */ 2993 DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5 = 0, 2994 2995 /** 2996 * R5G5B5X1( DXライブラリの描画関数は使用できなくなります ) 2997 */ 2998 DX_USER_SCREEN_PIXEL_FORMAT_R5G5B5X1 = 1, 2999 3000 /** 3001 * X1R5G5B5( DXライブラリの描画関数は使用できなくなります ) 3002 */ 3003 DX_USER_SCREEN_PIXEL_FORMAT_X1R5G5B5 = 2, 3004 3005 /** 3006 * X8B8G8R8( DXライブラリの描画関数は使用できなくなります ) 3007 */ 3008 DX_USER_SCREEN_PIXEL_FORMAT_X8B8G8R8 = 3, 3009 3010 /** 3011 * X8R8G8B8( DXライブラリの描画関数も使用できます( ソフトウェアレンダリングモード相当 ) ) 3012 */ 3013 DX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8 = 4, 3014 3015 /** 3016 * ? 3017 */ 3018 DX_USER_SCREEN_PIXEL_FORMAT_NUM = 5, 3019 } 3020 3021 /** 3022 * ウインドウの奥行き位置設定タイプ 3023 */ 3024 enum 3025 { 3026 /** 3027 * 通常設定 3028 */ 3029 DX_WIN_ZTYPE_NORMAL = 0, 3030 3031 /** 3032 * 全てのウインドウの一番奥に配置する 3033 */ 3034 DX_WIN_ZTYPE_BOTTOM = 1, 3035 3036 /** 3037 * 全てのウインドウの一番手前に配置する 3038 */ 3039 DX_WIN_ZTYPE_TOP = 2, 3040 3041 /** 3042 * 全てのウインドウの一番手前に配置する( ウインドウがアクティブではないときも最前面に表示される ) 3043 */ 3044 DX_WIN_ZTYPE_TOPMOST = 3, 3045 } 3046 3047 /** 3048 * ツールバーのボタンの状態 3049 */ 3050 enum 3051 { 3052 /** 3053 * 入力可能な状態 3054 */ 3055 TOOLBUTTON_STATE_ENABLE = 0, 3056 3057 /** 3058 * 押されている状態 3059 */ 3060 TOOLBUTTON_STATE_PRESSED = 1, 3061 3062 /** 3063 * 入力不可能な状態 3064 */ 3065 TOOLBUTTON_STATE_DISABLE = 2, 3066 3067 /** 3068 * 押されている状態で、入力不可能な状態 3069 */ 3070 TOOLBUTTON_STATE_PRESSED_DISABLE = 3, 3071 3072 /** 3073 * ツールバーのボタンの状態の数 3074 */ 3075 TOOLBUTTON_STATE_NUM = 4, 3076 } 3077 3078 /** 3079 * ツールバーのボタンのタイプ 3080 */ 3081 enum 3082 { 3083 /** 3084 * 普通のボタン 3085 */ 3086 TOOLBUTTON_TYPE_NORMAL = 0, 3087 3088 /** 3089 * 押すごとにON/OFFが切り替わるボタン 3090 */ 3091 TOOLBUTTON_TYPE_CHECK = 1, 3092 3093 /** 3094 * 別の TOOLBUTTON_TYPE_GROUP タイプのボタンが押されるとOFFになるタイプのボタン(グループの区切りは隙間で) 3095 */ 3096 TOOLBUTTON_TYPE_GROUP = 2, 3097 3098 /** 3099 * 隙間(ボタンではありません) 3100 */ 3101 TOOLBUTTON_TYPE_SEP = 3, 3102 3103 /** 3104 * ツールバーのボタンのタイプの数 3105 */ 3106 TOOLBUTTON_TYPE_NUM = 4, 3107 } 3108 3109 /** 3110 * 親メニューのID 3111 */ 3112 enum MENUITEM_IDTOP = 0xABABABAB; 3113 3114 /** 3115 * メニューに追加する際のタイプ 3116 */ 3117 enum 3118 { 3119 /** 3120 * 指定の項目の子として追加する 3121 */ 3122 MENUITEM_ADD_CHILD = 0, 3123 3124 /** 3125 * 指定の項目と指定の項目より1つ上の項目の間に追加する 3126 */ 3127 MENUITEM_ADD_INSERT = 1, 3128 } 3129 3130 /** 3131 * メニューの横に付くマークタイプ 3132 */ 3133 enum 3134 { 3135 /** 3136 * 何も付け無い 3137 */ 3138 MENUITEM_MARK_NONE = 0, 3139 3140 /** 3141 * チェックマーク 3142 */ 3143 MENUITEM_MARK_CHECK = 1, 3144 3145 /** 3146 * ラジオボタン 3147 */ 3148 MENUITEM_MARK_RADIO = 2, 3149 } 3150 3151 /** 3152 * 文字変換タイプ定義 3153 */ 3154 enum 3155 { 3156 /** 3157 * 10進数 3158 */ 3159 DX_NUMMODE_10 = 0, 3160 3161 /** 3162 * 16進数 3163 */ 3164 DX_NUMMODE_16 = 1, 3165 3166 /** 3167 * 空きを0で埋めない 3168 */ 3169 DX_STRMODE_NOT0 = 2, 3170 3171 /** 3172 * 空きを0で埋める 3173 */ 3174 DX_STRMODE_USE0 = 3, 3175 } 3176 3177 /** 3178 * CheckHitKeyAll で調べる入力タイプ 3179 */ 3180 enum 3181 { 3182 /** 3183 * キー入力を調べる 3184 */ 3185 DX_CHECKINPUT_KEY = 0x0001, 3186 3187 /** 3188 * パッド入力を調べる 3189 */ 3190 DX_CHECKINPUT_PAD = 0x0002, 3191 3192 /** 3193 * マウスボタン入力を調べる 3194 */ 3195 DX_CHECKINPUT_MOUSE = 0x0004, 3196 3197 /** 3198 * すべての入力を調べる 3199 */ 3200 DX_CHECKINPUT_ALL = DX_CHECKINPUT_KEY | DX_CHECKINPUT_PAD | DX_CHECKINPUT_MOUSE, 3201 } 3202 3203 /** 3204 * パッド入力取得パラメータ 3205 */ 3206 enum 3207 { 3208 /** 3209 * キー入力とパッド1入力 3210 */ 3211 DX_INPUT_KEY_PAD1 = 0x1001, 3212 3213 /** 3214 * パッド1入力 3215 */ 3216 DX_INPUT_PAD1 = 0x0001, 3217 3218 /** 3219 * パッド2入力 3220 */ 3221 DX_INPUT_PAD2 = 0x0002, 3222 3223 /** 3224 * パッド3入力 3225 */ 3226 DX_INPUT_PAD3 = 0x0003, 3227 3228 /** 3229 * パッド4入力 3230 */ 3231 DX_INPUT_PAD4 = 0x0004, 3232 3233 /** 3234 * パッド5入力 3235 */ 3236 DX_INPUT_PAD5 = 0x0005, 3237 3238 /** 3239 * パッド6入力 3240 */ 3241 DX_INPUT_PAD6 = 0x0006, 3242 3243 /** 3244 * パッド7入力 3245 */ 3246 DX_INPUT_PAD7 = 0x0007, 3247 3248 /** 3249 * パッド8入力 3250 */ 3251 DX_INPUT_PAD8 = 0x0008, 3252 3253 /** 3254 * パッド9入力 3255 */ 3256 DX_INPUT_PAD9 = 0x0009, 3257 3258 /** 3259 * パッド10入力 3260 */ 3261 DX_INPUT_PAD10 = 0x000A, 3262 3263 /** 3264 * パッド11入力 3265 */ 3266 DX_INPUT_PAD11 = 0x000B, 3267 3268 /** 3269 * パッド12入力 3270 */ 3271 DX_INPUT_PAD12 = 0x000C, 3272 3273 /** 3274 * パッド13入力 3275 */ 3276 DX_INPUT_PAD13 = 0x000D, 3277 3278 /** 3279 * パッド14入力 3280 */ 3281 DX_INPUT_PAD14 = 0x000E, 3282 3283 /** 3284 * パッド15入力 3285 */ 3286 DX_INPUT_PAD15 = 0x000F, 3287 3288 /** 3289 * パッド16入力 3290 */ 3291 DX_INPUT_PAD16 = 0x0010, 3292 3293 /** 3294 * キー入力 3295 */ 3296 DX_INPUT_KEY = 0x1000, 3297 3298 /** 3299 * タッチの同時接触検出対応最大数 3300 */ 3301 TOUCHINPUTPOINT_MAX = 16, 3302 } 3303 3304 /** 3305 * パッド入力定義 3306 */ 3307 enum 3308 { 3309 /** 3310 * ↓チェックマスク 3311 */ 3312 PAD_INPUT_DOWN = 0x00000001, 3313 3314 /** 3315 * ←チェックマスク 3316 */ 3317 PAD_INPUT_LEFT = 0x00000002, 3318 3319 /** 3320 * →チェックマスク 3321 */ 3322 PAD_INPUT_RIGHT = 0x00000004, 3323 3324 /** 3325 * ↑チェックマスク 3326 */ 3327 PAD_INPUT_UP = 0x00000008, 3328 3329 /** 3330 * Aボタンチェックマスク 3331 */ 3332 PAD_INPUT_A = 0x00000010, 3333 3334 /** 3335 * Bボタンチェックマスク 3336 */ 3337 PAD_INPUT_B = 0x00000020, 3338 3339 /** 3340 * Cボタンチェックマスク 3341 */ 3342 PAD_INPUT_C = 0x00000040, 3343 3344 /** 3345 * Xボタンチェックマスク 3346 */ 3347 PAD_INPUT_X = 0x00000080, 3348 3349 /** 3350 * Yボタンチェックマスク 3351 */ 3352 PAD_INPUT_Y = 0x00000100, 3353 3354 /** 3355 * Zボタンチェックマスク 3356 */ 3357 PAD_INPUT_Z = 0x00000200, 3358 3359 /** 3360 * Lボタンチェックマスク 3361 */ 3362 PAD_INPUT_L = 0x00000400, 3363 3364 /** 3365 * Rボタンチェックマスク 3366 */ 3367 PAD_INPUT_R = 0x00000800, 3368 3369 /** 3370 * STARTボタンチェックマスク 3371 */ 3372 PAD_INPUT_START = 0x00001000, 3373 3374 /** 3375 * Mボタンチェックマスク 3376 */ 3377 PAD_INPUT_M = 0x00002000, 3378 3379 /** 3380 * ? 3381 */ 3382 PAD_INPUT_D = 0x00004000, 3383 3384 /** 3385 * ? 3386 */ 3387 PAD_INPUT_F = 0x00008000, 3388 3389 /** 3390 * ? 3391 */ 3392 PAD_INPUT_G = 0x00010000, 3393 3394 /** 3395 * ? 3396 */ 3397 PAD_INPUT_H = 0x00020000, 3398 3399 /** 3400 * ? 3401 */ 3402 PAD_INPUT_I = 0x00040000, 3403 3404 /** 3405 * ? 3406 */ 3407 PAD_INPUT_J = 0x00080000, 3408 3409 /** 3410 * ? 3411 */ 3412 PAD_INPUT_K = 0x00100000, 3413 3414 /** 3415 * ? 3416 */ 3417 PAD_INPUT_LL = 0x00200000, 3418 3419 /** 3420 * ? 3421 */ 3422 PAD_INPUT_N = 0x00400000, 3423 3424 /** 3425 * ? 3426 */ 3427 PAD_INPUT_O = 0x00800000, 3428 3429 /** 3430 * ? 3431 */ 3432 PAD_INPUT_P = 0x01000000, 3433 3434 /** 3435 * ? 3436 */ 3437 PAD_INPUT_RR = 0x02000000, 3438 3439 /** 3440 * ? 3441 */ 3442 PAD_INPUT_S = 0x04000000, 3443 3444 /** 3445 * ? 3446 */ 3447 PAD_INPUT_T = 0x08000000, 3448 3449 /** 3450 * ? 3451 */ 3452 PAD_INPUT_U = 0x10000000, 3453 3454 /** 3455 * ? 3456 */ 3457 PAD_INPUT_V = 0x20000000, 3458 3459 /** 3460 * ? 3461 */ 3462 PAD_INPUT_W = 0x40000000, 3463 3464 /** 3465 * ? 3466 */ 3467 PAD_INPUT_XX = 0x80000000, 3468 3469 /** 3470 * ? 3471 */ 3472 PAD_INPUT_1 = 0x00000010, 3473 3474 /** 3475 * ? 3476 */ 3477 PAD_INPUT_2 = 0x00000020, 3478 3479 /** 3480 * ? 3481 */ 3482 PAD_INPUT_3 = 0x00000040, 3483 3484 /** 3485 * ? 3486 */ 3487 PAD_INPUT_4 = 0x00000080, 3488 3489 /** 3490 * ? 3491 */ 3492 PAD_INPUT_5 = 0x00000100, 3493 3494 /** 3495 * ? 3496 */ 3497 PAD_INPUT_6 = 0x00000200, 3498 3499 /** 3500 * ? 3501 */ 3502 PAD_INPUT_7 = 0x00000400, 3503 3504 /** 3505 * ? 3506 */ 3507 PAD_INPUT_8 = 0x00000800, 3508 3509 /** 3510 * ? 3511 */ 3512 PAD_INPUT_9 = 0x00001000, 3513 3514 /** 3515 * ? 3516 */ 3517 PAD_INPUT_10 = 0x00002000, 3518 3519 /** 3520 * ? 3521 */ 3522 PAD_INPUT_11 = 0x00004000, 3523 3524 /** 3525 * ? 3526 */ 3527 PAD_INPUT_12 = 0x00008000, 3528 3529 /** 3530 * ? 3531 */ 3532 PAD_INPUT_13 = 0x00010000, 3533 3534 /** 3535 * ? 3536 */ 3537 PAD_INPUT_14 = 0x00020000, 3538 3539 /** 3540 * ? 3541 */ 3542 PAD_INPUT_15 = 0x00040000, 3543 3544 /** 3545 * ? 3546 */ 3547 PAD_INPUT_16 = 0x00080000, 3548 3549 /** 3550 * ? 3551 */ 3552 PAD_INPUT_17 = 0x00100000, 3553 3554 /** 3555 * ? 3556 */ 3557 PAD_INPUT_18 = 0x00200000, 3558 3559 /** 3560 * ? 3561 */ 3562 PAD_INPUT_19 = 0x00400000, 3563 3564 /** 3565 * ? 3566 */ 3567 PAD_INPUT_20 = 0x00800000, 3568 3569 /** 3570 * ? 3571 */ 3572 PAD_INPUT_21 = 0x01000000, 3573 3574 /** 3575 * ? 3576 */ 3577 PAD_INPUT_22 = 0x02000000, 3578 3579 /** 3580 * ? 3581 */ 3582 PAD_INPUT_23 = 0x04000000, 3583 3584 /** 3585 * ? 3586 */ 3587 PAD_INPUT_24 = 0x08000000, 3588 3589 /** 3590 * ? 3591 */ 3592 PAD_INPUT_25 = 0x10000000, 3593 3594 /** 3595 * ? 3596 */ 3597 PAD_INPUT_26 = 0x20000000, 3598 3599 /** 3600 * ? 3601 */ 3602 PAD_INPUT_27 = 0x40000000, 3603 3604 /** 3605 * ? 3606 */ 3607 PAD_INPUT_28 = 0x80000000, 3608 } 3609 3610 /** 3611 * XInputボタン入力定義 3612 */ 3613 enum 3614 { 3615 /** 3616 * デジタル方向ボタン上 3617 */ 3618 XINPUT_BUTTON_DPAD_UP = 0, 3619 3620 /** 3621 * デジタル方向ボタン下 3622 */ 3623 XINPUT_BUTTON_DPAD_DOWN = 1, 3624 3625 /** 3626 * デジタル方向ボタン左 3627 */ 3628 XINPUT_BUTTON_DPAD_LEFT = 2, 3629 3630 /** 3631 * デジタル方向ボタン右 3632 */ 3633 XINPUT_BUTTON_DPAD_RIGHT = 3, 3634 3635 /** 3636 * STARTボタン 3637 */ 3638 XINPUT_BUTTON_START = 4, 3639 3640 /** 3641 * BACKボタン 3642 */ 3643 XINPUT_BUTTON_BACK = 5, 3644 3645 /** 3646 * 左スティック押し込み 3647 */ 3648 XINPUT_BUTTON_LEFT_THUMB = 6, 3649 3650 /** 3651 * 右スティック押し込み 3652 */ 3653 XINPUT_BUTTON_RIGHT_THUMB = 7, 3654 3655 /** 3656 * LBボタン 3657 */ 3658 XINPUT_BUTTON_LEFT_SHOULDER = 8, 3659 3660 /** 3661 * RBボタン 3662 */ 3663 XINPUT_BUTTON_RIGHT_SHOULDER = 9, 3664 3665 /** 3666 * Aボタン 3667 */ 3668 XINPUT_BUTTON_A = 12, 3669 3670 /** 3671 * Bボタン 3672 */ 3673 XINPUT_BUTTON_B = 13, 3674 3675 /** 3676 * Xボタン 3677 */ 3678 XINPUT_BUTTON_X = 14, 3679 3680 /** 3681 * Yボタン 3682 */ 3683 XINPUT_BUTTON_Y = 15, 3684 } 3685 3686 /** 3687 * マウス入力定義 3688 */ 3689 enum 3690 { 3691 /** 3692 * マウス左ボタン 3693 */ 3694 MOUSE_INPUT_LEFT = 0x0001, 3695 3696 /** 3697 * マウス右ボタン 3698 */ 3699 MOUSE_INPUT_RIGHT = 0x0002, 3700 3701 /** 3702 * マウス中央ボタン 3703 */ 3704 MOUSE_INPUT_MIDDLE = 0x0004, 3705 3706 /** 3707 * マウス1ボタン 3708 */ 3709 MOUSE_INPUT_1 = 0x0001, 3710 3711 /** 3712 * マウス2ボタン 3713 */ 3714 MOUSE_INPUT_2 = 0x0002, 3715 3716 /** 3717 * マウス3ボタン 3718 */ 3719 MOUSE_INPUT_3 = 0x0004, 3720 3721 /** 3722 * マウス4ボタン 3723 */ 3724 MOUSE_INPUT_4 = 0x0008, 3725 3726 /** 3727 * マウス5ボタン 3728 */ 3729 MOUSE_INPUT_5 = 0x0010, 3730 3731 /** 3732 * マウス6ボタン 3733 */ 3734 MOUSE_INPUT_6 = 0x0020, 3735 3736 /** 3737 * マウス7ボタン 3738 */ 3739 MOUSE_INPUT_7 = 0x0040, 3740 3741 /** 3742 * マウス8ボタン 3743 */ 3744 MOUSE_INPUT_8 = 0x0080, 3745 } 3746 3747 /** 3748 * マウスのログ情報タイプ 3749 */ 3750 enum 3751 { 3752 /** 3753 * ボタンを押した 3754 */ 3755 MOUSE_INPUT_LOG_DOWN = 0, 3756 3757 /** 3758 * ボタンを離した 3759 */ 3760 MOUSE_INPUT_LOG_UP = 1, 3761 } 3762 3763 /** 3764 * キー定義 3765 */ 3766 enum 3767 { 3768 /** 3769 * BackSpaceキー D_DIK_BACK 3770 */ 3771 KEY_INPUT_BACK = 0x0E, 3772 3773 /** 3774 * Tabキー D_DIK_TAB 3775 */ 3776 KEY_INPUT_TAB = 0x0F, 3777 3778 /** 3779 * Enterキー D_DIK_RETURN 3780 */ 3781 KEY_INPUT_RETURN = 0x1C, 3782 3783 /** 3784 * 左Shiftキー D_DIK_LSHIFT 3785 */ 3786 KEY_INPUT_LSHIFT = 0x2A, 3787 3788 /** 3789 * 右Shiftキー D_DIK_RSHIFT 3790 */ 3791 KEY_INPUT_RSHIFT = 0x36, 3792 3793 /** 3794 * 左Ctrlキー D_DIK_LCONTROL 3795 */ 3796 KEY_INPUT_LCONTROL = 0x1D, 3797 3798 /** 3799 * 右Ctrlキー D_DIK_RCONTROL 3800 */ 3801 KEY_INPUT_RCONTROL = 0x9D, 3802 3803 /** 3804 * Escキー D_DIK_ESCAPE 3805 */ 3806 KEY_INPUT_ESCAPE = 0x01, 3807 3808 /** 3809 * スペースキー D_DIK_SPACE 3810 */ 3811 KEY_INPUT_SPACE = 0x39, 3812 3813 /** 3814 * PageUpキー D_DIK_PGUP 3815 */ 3816 KEY_INPUT_PGUP = 0xC9, 3817 3818 /** 3819 * PageDownキー D_DIK_PGDN 3820 */ 3821 KEY_INPUT_PGDN = 0xD1, 3822 3823 /** 3824 * Endキー D_DIK_END 3825 */ 3826 KEY_INPUT_END = 0xCF, 3827 3828 /** 3829 * Homeキー D_DIK_HOME 3830 */ 3831 KEY_INPUT_HOME = 0xC7, 3832 3833 /** 3834 * 左キー D_DIK_LEFT 3835 */ 3836 KEY_INPUT_LEFT = 0xCB, 3837 3838 /** 3839 * 上キー D_DIK_UP 3840 */ 3841 KEY_INPUT_UP = 0xC8, 3842 3843 /** 3844 * 右キー D_DIK_RIGHT 3845 */ 3846 KEY_INPUT_RIGHT = 0xCD, 3847 3848 /** 3849 * 下キー D_DIK_DOWN 3850 */ 3851 KEY_INPUT_DOWN = 0xD0, 3852 3853 /** 3854 * Insertキー D_DIK_INSERT 3855 */ 3856 KEY_INPUT_INSERT = 0xD2, 3857 3858 /** 3859 * Deleteキー D_DIK_DELETE 3860 */ 3861 KEY_INPUT_DELETE = 0xD3, 3862 3863 /** 3864 * -キー D_DIK_MINUS 3865 */ 3866 KEY_INPUT_MINUS = 0x0C, 3867 3868 /** 3869 * ¥キー D_DIK_YEN 3870 */ 3871 KEY_INPUT_YEN = 0x7D, 3872 3873 /** 3874 * ^キー D_DIK_PREVTRACK 3875 */ 3876 KEY_INPUT_PREVTRACK = 0x90, 3877 3878 /** 3879 * .キー D_DIK_PERIOD 3880 */ 3881 KEY_INPUT_PERIOD = 0x34, 3882 3883 /** 3884 * /キー D_DIK_SLASH 3885 */ 3886 KEY_INPUT_SLASH = 0x35, 3887 3888 /** 3889 * 左Altキー D_DIK_LALT 3890 */ 3891 KEY_INPUT_LALT = 0x38, 3892 3893 /** 3894 * 右Altキー D_DIK_RALT 3895 */ 3896 KEY_INPUT_RALT = 0xB8, 3897 3898 /** 3899 * ScrollLockキー D_DIK_SCROLL 3900 */ 3901 KEY_INPUT_SCROLL = 0x46, 3902 3903 /** 3904 * ;キー D_DIK_SEMICOLON 3905 */ 3906 KEY_INPUT_SEMICOLON = 0x27, 3907 3908 /** 3909 * :キー D_DIK_COLON 3910 */ 3911 KEY_INPUT_COLON = 0x92, 3912 3913 /** 3914 * [キー D_DIK_LBRACKET 3915 */ 3916 KEY_INPUT_LBRACKET = 0x1A, 3917 3918 /** 3919 * ]キー D_DIK_RBRACKET 3920 */ 3921 KEY_INPUT_RBRACKET = 0x1B, 3922 3923 /** 3924 * @キー D_DIK_AT 3925 */ 3926 KEY_INPUT_AT = 0x91, 3927 3928 /** 3929 * \キー D_DIK_BACKSLASH 3930 */ 3931 KEY_INPUT_BACKSLASH = 0x2B, 3932 3933 /** 3934 * ,キー D_DIK_COMMA 3935 */ 3936 KEY_INPUT_COMMA = 0x33, 3937 3938 /** 3939 * 漢字キー D_DIK_KANJI 3940 */ 3941 KEY_INPUT_KANJI = 0x94, 3942 3943 /** 3944 * 変換キー D_DIK_CONVERT 3945 */ 3946 KEY_INPUT_CONVERT = 0x79, 3947 3948 /** 3949 * 無変換キー D_DIK_NOCONVERT 3950 */ 3951 KEY_INPUT_NOCONVERT = 0x7B, 3952 3953 /** 3954 * カナキー D_DIK_KANA 3955 */ 3956 KEY_INPUT_KANA = 0x70, 3957 3958 /** 3959 * アプリケーションメニューキー D_DIK_APPS 3960 */ 3961 KEY_INPUT_APPS = 0xDD, 3962 3963 /** 3964 * CaspLockキー D_DIK_CAPSLOCK 3965 */ 3966 KEY_INPUT_CAPSLOCK = 0x3A, 3967 3968 /** 3969 * PrintScreenキー D_DIK_SYSRQ 3970 */ 3971 KEY_INPUT_SYSRQ = 0xB7, 3972 3973 /** 3974 * PauseBreakキー D_DIK_PAUSE 3975 */ 3976 KEY_INPUT_PAUSE = 0xC5, 3977 3978 /** 3979 * 左Winキー D_DIK_LWIN 3980 */ 3981 KEY_INPUT_LWIN = 0xDB, 3982 3983 /** 3984 * 右Winキー D_DIK_RWIN 3985 */ 3986 KEY_INPUT_RWIN = 0xDC, 3987 3988 /** 3989 * テンキーNumLockキー D_DIK_NUMLOCK 3990 */ 3991 KEY_INPUT_NUMLOCK = 0x45, 3992 3993 /** 3994 * テンキー0 D_DIK_NUMPAD0 3995 */ 3996 KEY_INPUT_NUMPAD0 = 0x52, 3997 3998 /** 3999 * テンキー1 D_DIK_NUMPAD1 4000 */ 4001 KEY_INPUT_NUMPAD1 = 0x4F, 4002 4003 /** 4004 * テンキー2 D_DIK_NUMPAD2 4005 */ 4006 KEY_INPUT_NUMPAD2 = 0x50, 4007 4008 /** 4009 * テンキー3 D_DIK_NUMPAD3 4010 */ 4011 KEY_INPUT_NUMPAD3 = 0x51, 4012 4013 /** 4014 * テンキー4 D_DIK_NUMPAD4 4015 */ 4016 KEY_INPUT_NUMPAD4 = 0x4B, 4017 4018 /** 4019 * テンキー5 D_DIK_NUMPAD5 4020 */ 4021 KEY_INPUT_NUMPAD5 = 0x4C, 4022 4023 /** 4024 * テンキー6 D_DIK_NUMPAD6 4025 */ 4026 KEY_INPUT_NUMPAD6 = 0x4D, 4027 4028 /** 4029 * テンキー7 D_DIK_NUMPAD7 4030 */ 4031 KEY_INPUT_NUMPAD7 = 0x47, 4032 4033 /** 4034 * テンキー8 D_DIK_NUMPAD8 4035 */ 4036 KEY_INPUT_NUMPAD8 = 0x48, 4037 4038 /** 4039 * テンキー9 D_DIK_NUMPAD9 4040 */ 4041 KEY_INPUT_NUMPAD9 = 0x49, 4042 4043 /** 4044 * テンキー*キー D_DIK_MULTIPLY 4045 */ 4046 KEY_INPUT_MULTIPLY = 0x37, 4047 4048 /** 4049 * テンキー+キー D_DIK_ADD 4050 */ 4051 KEY_INPUT_ADD = 0x4E, 4052 4053 /** 4054 * テンキー-キー D_DIK_SUBTRACT 4055 */ 4056 KEY_INPUT_SUBTRACT = 0x4A, 4057 4058 /** 4059 * テンキー.キー D_DIK_DECIMAL 4060 */ 4061 KEY_INPUT_DECIMAL = 0x53, 4062 4063 /** 4064 * テンキー/キー D_DIK_DIVIDE 4065 */ 4066 KEY_INPUT_DIVIDE = 0xB5, 4067 4068 /** 4069 * テンキーのエンターキー D_DIK_NUMPADENTER 4070 */ 4071 KEY_INPUT_NUMPADENTER = 0x9C, 4072 4073 /** 4074 * F1キー D_DIK_F1 4075 */ 4076 KEY_INPUT_F1 = 0x3B, 4077 4078 /** 4079 * F2キー D_DIK_F2 4080 */ 4081 KEY_INPUT_F2 = 0x3C, 4082 4083 /** 4084 * F3キー D_DIK_F3 4085 */ 4086 KEY_INPUT_F3 = 0x3D, 4087 4088 /** 4089 * F4キー D_DIK_F4 4090 */ 4091 KEY_INPUT_F4 = 0x3E, 4092 4093 /** 4094 * F5キー D_DIK_F5 4095 */ 4096 KEY_INPUT_F5 = 0x3F, 4097 4098 /** 4099 * F6キー D_DIK_F6 4100 */ 4101 KEY_INPUT_F6 = 0x40, 4102 4103 /** 4104 * F7キー D_DIK_F7 4105 */ 4106 KEY_INPUT_F7 = 0x41, 4107 4108 /** 4109 * F8キー D_DIK_F8 4110 */ 4111 KEY_INPUT_F8 = 0x42, 4112 4113 /** 4114 * F9キー D_DIK_F9 4115 */ 4116 KEY_INPUT_F9 = 0x43, 4117 4118 /** 4119 * F10キー D_DIK_F10 4120 */ 4121 KEY_INPUT_F10 = 0x44, 4122 4123 /** 4124 * F11キー D_DIK_F11 4125 */ 4126 KEY_INPUT_F11 = 0x57, 4127 4128 /** 4129 * F12キー D_DIK_F12 4130 */ 4131 KEY_INPUT_F12 = 0x58, 4132 4133 /** 4134 * Aキー D_DIK_A 4135 */ 4136 KEY_INPUT_A = 0x1E, 4137 4138 /** 4139 * Bキー D_DIK_B 4140 */ 4141 KEY_INPUT_B = 0x30, 4142 4143 /** 4144 * Cキー D_DIK_C 4145 */ 4146 KEY_INPUT_C = 0x2E, 4147 4148 /** 4149 * Dキー D_DIK_D 4150 */ 4151 KEY_INPUT_D = 0x20, 4152 4153 /** 4154 * Eキー D_DIK_E 4155 */ 4156 KEY_INPUT_E = 0x12, 4157 4158 /** 4159 * Fキー D_DIK_F 4160 */ 4161 KEY_INPUT_F = 0x21, 4162 4163 /** 4164 * Gキー D_DIK_G 4165 */ 4166 KEY_INPUT_G = 0x22, 4167 4168 /** 4169 * Hキー D_DIK_H 4170 */ 4171 KEY_INPUT_H = 0x23, 4172 4173 /** 4174 * Iキー D_DIK_I 4175 */ 4176 KEY_INPUT_I = 0x17, 4177 4178 /** 4179 * Jキー D_DIK_J 4180 */ 4181 KEY_INPUT_J = 0x24, 4182 4183 /** 4184 * Kキー D_DIK_K 4185 */ 4186 KEY_INPUT_K = 0x25, 4187 4188 /** 4189 * Lキー D_DIK_L 4190 */ 4191 KEY_INPUT_L = 0x26, 4192 4193 /** 4194 * Mキー D_DIK_M 4195 */ 4196 KEY_INPUT_M = 0x32, 4197 4198 /** 4199 * Nキー D_DIK_N 4200 */ 4201 KEY_INPUT_N = 0x31, 4202 4203 /** 4204 * Oキー D_DIK_O 4205 */ 4206 KEY_INPUT_O = 0x18, 4207 4208 /** 4209 * Pキー D_DIK_P 4210 */ 4211 KEY_INPUT_P = 0x19, 4212 4213 /** 4214 * Qキー D_DIK_Q 4215 */ 4216 KEY_INPUT_Q = 0x10, 4217 4218 /** 4219 * Rキー D_DIK_R 4220 */ 4221 KEY_INPUT_R = 0x13, 4222 4223 /** 4224 * Sキー D_DIK_S 4225 */ 4226 KEY_INPUT_S = 0x1F, 4227 4228 /** 4229 * Tキー D_DIK_T 4230 */ 4231 KEY_INPUT_T = 0x14, 4232 4233 /** 4234 * Uキー D_DIK_U 4235 */ 4236 KEY_INPUT_U = 0x16, 4237 4238 /** 4239 * Vキー D_DIK_V 4240 */ 4241 KEY_INPUT_V = 0x2F, 4242 4243 /** 4244 * Wキー D_DIK_W 4245 */ 4246 KEY_INPUT_W = 0x11, 4247 4248 /** 4249 * Xキー D_DIK_X 4250 */ 4251 KEY_INPUT_X = 0x2D, 4252 4253 /** 4254 * Yキー D_DIK_Y 4255 */ 4256 KEY_INPUT_Y = 0x15, 4257 4258 /** 4259 * Zキー D_DIK_Z 4260 */ 4261 KEY_INPUT_Z = 0x2C, 4262 4263 /** 4264 * 0キー D_DIK_0 4265 */ 4266 KEY_INPUT_0 = 0x0B, 4267 4268 /** 4269 * 1キー D_DIK_1 4270 */ 4271 KEY_INPUT_1 = 0x02, 4272 4273 /** 4274 * 2キー D_DIK_2 4275 */ 4276 KEY_INPUT_2 = 0x03, 4277 4278 /** 4279 * 3キー D_DIK_3 4280 */ 4281 KEY_INPUT_3 = 0x04, 4282 4283 /** 4284 * 4キー D_DIK_4 4285 */ 4286 KEY_INPUT_4 = 0x05, 4287 4288 /** 4289 * 5キー D_DIK_5 4290 */ 4291 KEY_INPUT_5 = 0x06, 4292 4293 /** 4294 * 6キー D_DIK_6 4295 */ 4296 KEY_INPUT_6 = 0x07, 4297 4298 /** 4299 * 7キー D_DIK_7 4300 */ 4301 KEY_INPUT_7 = 0x08, 4302 4303 /** 4304 * 8キー D_DIK_8 4305 */ 4306 KEY_INPUT_8 = 0x09, 4307 4308 /** 4309 * 9キー D_DIK_9 4310 */ 4311 KEY_INPUT_9 = 0x0A, 4312 } 4313 4314 /** 4315 * アスキーコントロールキーコード 4316 */ 4317 enum 4318 { 4319 /** 4320 * バックスペース 4321 */ 4322 CTRL_CODE_BS = 0x08, 4323 4324 /** 4325 * タブ 4326 */ 4327 CTRL_CODE_TAB = 0x09, 4328 4329 /** 4330 * 改行 4331 */ 4332 CTRL_CODE_CR = 0x0D, 4333 4334 /** 4335 * DELキー 4336 */ 4337 CTRL_CODE_DEL = 0x10, 4338 4339 /** 4340 * コピー 4341 */ 4342 CTRL_CODE_COPY = 0x03, 4343 4344 /** 4345 * ペースト 4346 */ 4347 CTRL_CODE_PASTE = 0x16, 4348 4349 /** 4350 * カット 4351 */ 4352 CTRL_CODE_CUT = 0x18, 4353 4354 /** 4355 * 全て選択 4356 */ 4357 CTRL_CODE_ALL = 0x01, 4358 4359 /** 4360 * ←キー 4361 */ 4362 CTRL_CODE_LEFT = 0x1D, 4363 4364 /** 4365 * →キー 4366 */ 4367 CTRL_CODE_RIGHT = 0x1C, 4368 4369 /** 4370 * ↑キー 4371 */ 4372 CTRL_CODE_UP = 0x1E, 4373 4374 /** 4375 * ↓キー 4376 */ 4377 CTRL_CODE_DOWN = 0x1F, 4378 4379 /** 4380 * HOMEボタン 4381 */ 4382 CTRL_CODE_HOME = 0x1A, 4383 4384 /** 4385 * ENDボタン 4386 */ 4387 CTRL_CODE_END = 0x19, 4388 4389 /** 4390 * PAGE UP 4391 */ 4392 CTRL_CODE_PAGE_UP = 0x17, 4393 4394 /** 4395 * PAGE DOWN 4396 */ 4397 CTRL_CODE_PAGE_DOWN = 0x15, 4398 4399 /** 4400 * ESCキー 4401 */ 4402 CTRL_CODE_ESC = 0x1B, 4403 4404 /** 4405 * 制御コード敷居値 4406 */ 4407 CTRL_CODE_CMP = 0x20, 4408 } 4409 4410 /** 4411 * SetKeyInputStringColor2 に渡す色変更対象を指定するための識別子 4412 */ 4413 enum 4414 { 4415 /** 4416 * 入力文字列の色 4417 */ 4418 DX_KEYINPSTRCOLOR_NORMAL_STR = 0, 4419 4420 /** 4421 * 入力文字列の縁の色 4422 */ 4423 DX_KEYINPSTRCOLOR_NORMAL_STR_EDGE = 1, 4424 4425 /** 4426 * IME非使用時のカーソルの色 4427 */ 4428 DX_KEYINPSTRCOLOR_NORMAL_CURSOR = 2, 4429 4430 /** 4431 * 入力文字列の選択部分( SHIFTキーを押しながら左右キーで選択 )の色 4432 */ 4433 DX_KEYINPSTRCOLOR_SELECT_STR = 3, 4434 4435 /** 4436 * 入力文字列の選択部分( SHIFTキーを押しながら左右キーで選択 )の縁の色 4437 */ 4438 DX_KEYINPSTRCOLOR_SELECT_STR_EDGE = 4, 4439 4440 /** 4441 * 入力文字列の選択部分( SHIFTキーを押しながら左右キーで選択 )の周りの色 4442 */ 4443 DX_KEYINPSTRCOLOR_SELECT_STR_BACK = 5, 4444 4445 /** 4446 * IME使用時の入力文字列の色 4447 */ 4448 DX_KEYINPSTRCOLOR_IME_STR = 6, 4449 4450 /** 4451 * IME使用時の入力文字列の縁の色 4452 */ 4453 DX_KEYINPSTRCOLOR_IME_STR_EDGE = 7, 4454 4455 /** 4456 * IME使用時の入力文字列の周りの色 4457 */ 4458 DX_KEYINPSTRCOLOR_IME_STR_BACK = 8, 4459 4460 /** 4461 * IME使用時のカーソルの色 4462 */ 4463 DX_KEYINPSTRCOLOR_IME_CURSOR = 9, 4464 4465 /** 4466 * IME使用時の変換文字列の下線の色 4467 */ 4468 DX_KEYINPSTRCOLOR_IME_LINE = 10, 4469 4470 /** 4471 * IME使用時の選択対象の変換候補文字列の色 4472 */ 4473 DX_KEYINPSTRCOLOR_IME_SELECT_STR = 11, 4474 4475 /** 4476 * IME使用時の選択対象の変換候補文字列の縁の色 4477 */ 4478 DX_KEYINPSTRCOLOR_IME_SELECT_STR_EDGE = 12, 4479 4480 /** 4481 * IME使用時の選択対象の変換候補文字列の周りの色 4482 */ 4483 DX_KEYINPSTRCOLOR_IME_SELECT_STR_BACK = 13, 4484 4485 /** 4486 * IME使用時の変換候補ウインドウ内の文字列の色 4487 */ 4488 DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR = 14, 4489 4490 /** 4491 * IME使用時の変換候補ウインドウ内の文字列の縁の色 4492 */ 4493 DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR_EDGE = 15, 4494 4495 /** 4496 * IME使用時の変換候補ウインドウ内で選択している文字列の色 4497 */ 4498 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR = 16, 4499 4500 /** 4501 * IME使用時の変換候補ウインドウ内で選択している文字列の縁の色 4502 */ 4503 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_EDGE = 17, 4504 4505 /** 4506 * IME使用時の変換候補ウインドウ内で選択している文字列の周りの色 4507 */ 4508 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_BACK = 18, 4509 4510 /** 4511 * IME使用時の変換候補ウインドウの縁の色 4512 */ 4513 DX_KEYINPSTRCOLOR_IME_CONV_WIN_EDGE = 19, 4514 4515 /** 4516 * IME使用時の変換候補ウインドウの下地の色 4517 */ 4518 DX_KEYINPSTRCOLOR_IME_CONV_WIN_BACK = 20, 4519 4520 /** 4521 * IME使用時の入力モード文字列の色(『全角ひらがな』等) 4522 */ 4523 DX_KEYINPSTRCOLOR_IME_MODE_STR = 21, 4524 4525 /** 4526 * IME使用時の入力モード文字列の縁の色 4527 */ 4528 DX_KEYINPSTRCOLOR_IME_MODE_STR_EDGE = 22, 4529 4530 /** 4531 * ? 4532 */ 4533 DX_KEYINPSTRCOLOR_NUM = 23, 4534 } 4535 4536 /** 4537 * 文字列入力処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モード 4538 */ 4539 enum 4540 { 4541 /** 4542 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、最後の文字を上書き( デフォルト ) 4543 */ 4544 DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE = 0, 4545 4546 /** 4547 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、何も変化しない 4548 */ 4549 DX_KEYINPSTR_ENDCHARAMODE_NOTCHANGE = 1, 4550 } 4551 4552 /** 4553 * フルスクリーン解像度モード定義 4554 */ 4555 enum 4556 { 4557 /** 4558 * モニターの画面モードをデスクトップ画面と同じにしてDXライブラリ画面を拡大して表示するモード 4559 */ 4560 DX_FSRESOLUTIONMODE_DESKTOP = 0, 4561 4562 /** 4563 * モニターの解像度をDXライブラリ画面の解像度に合わせるモード 4564 */ 4565 DX_FSRESOLUTIONMODE_NATIVE = 1, 4566 4567 /** 4568 * モニターの解像度を最大にしてDXライブラリ画面を拡大して表示するモード 4569 */ 4570 DX_FSRESOLUTIONMODE_MAXIMUM = 2, 4571 } 4572 4573 /** 4574 * フルスクリーン拡大モード定義 4575 */ 4576 enum 4577 { 4578 /** 4579 * バイリニアモード( ピクセルが滲んでピクセルとピクセルの区切りがはっきりしない ) 4580 */ 4581 DX_FSSCALINGMODE_BILINEAR = 0, 4582 4583 /** 4584 * 最近点モード( ピクセルが四角くくっきり表示される ) 4585 */ 4586 DX_FSSCALINGMODE_NEAREST = 1, 4587 } 4588 4589 /** 4590 * SetGraphMode 戻り値定義 4591 */ 4592 enum 4593 { 4594 /** 4595 * 画面変更は成功した 4596 */ 4597 DX_CHANGESCREEN_OK = 0, 4598 4599 /** 4600 * 画面の変更は失敗し、元の画面モードに戻された 4601 */ 4602 DX_CHANGESCREEN_RETURN = -1, 4603 4604 /** 4605 * 画面の変更は失敗しデフォルトの画面モードに変更された 4606 */ 4607 DX_CHANGESCREEN_DEFAULT = -2, 4608 4609 /** 4610 * 画面の変更は成功したが、リフレッシュレートの変更は失敗した 4611 */ 4612 DX_CHANGESCREEN_REFRESHNORMAL = -3, 4613 } 4614 4615 // ストリームデータ読み込み処理コード簡略化関連 4616 /+ 4617 #define STTELL(st) ((st)->ReadShred.Tell((st)->DataPoint)) 4618 #define STSEEK(st, pos, type) ((st)->ReadShred.Seek((st)->DataPoint, (pos), (type))) 4619 #define STREAD(buf, length, num, st) ((st)->ReadShred.Read((buf), (length), (num), (st)->DataPoint)) 4620 #define STWRITE(buf, length, num, st) ((st)->ReadShred.Write((buf), (length), (num), (st)->DataPoint)) 4621 #define STEOF(st) ((st)->ReadShred.Eof((st)->DataPoint)) 4622 #define STCLOSE(st) ((st)->ReadShred.Close((st)->DataPoint)) 4623 +/ 4624 4625 /** 4626 * ストリームデータ制御のシークタイプ定義 4627 */ 4628 enum 4629 { 4630 /** 4631 * ? 4632 */ 4633 STREAM_SEEKTYPE_SET = SEEK_SET, 4634 4635 /** 4636 * ? 4637 */ 4638 STREAM_SEEKTYPE_END = SEEK_END, 4639 4640 /** 4641 * ? 4642 */ 4643 STREAM_SEEKTYPE_CUR = SEEK_CUR, 4644 } 4645 4646 /** 4647 * グラフィックロード時のイメージタイプ 4648 */ 4649 enum 4650 { 4651 /** 4652 * イメージはファイルである 4653 */ 4654 LOADIMAGE_TYPE_FILE = 0, 4655 4656 /** 4657 * イメージはメモリである 4658 */ 4659 LOADIMAGE_TYPE_MEM = 1, 4660 4661 /** 4662 * イメージは無い 4663 */ 4664 LOADIMAGE_TYPE_NONE = -1, 4665 } 4666 4667 version (DX_NON_NETWORK) { 4668 } else { 4669 /** 4670 * HTTP エラー 4671 */ 4672 enum 4673 { 4674 /** 4675 * サーバーエラー 4676 */ 4677 HTTP_ERR_SERVER = 0, 4678 4679 /** 4680 * ファイルが見つからなかった 4681 */ 4682 HTTP_ERR_NOTFOUND = 1, 4683 4684 /** 4685 * メモリ確保の失敗 4686 */ 4687 HTTP_ERR_MEMORY = 2, 4688 4689 /** 4690 * 途中で切断された 4691 */ 4692 HTTP_ERR_LOST = 3, 4693 4694 /** 4695 * エラーは報告されていない 4696 */ 4697 HTTP_ERR_NONE = -1, 4698 } 4699 4700 /** 4701 * HTTP 処理の結果 4702 */ 4703 enum 4704 { 4705 /** 4706 * 処理完了 4707 */ 4708 HTTP_RES_COMPLETE = 0, 4709 4710 /** 4711 * 処理中止 4712 */ 4713 HTTP_RES_STOP = 1, 4714 4715 /** 4716 * エラー終了 4717 */ 4718 HTTP_RES_ERROR = 2, 4719 4720 /** 4721 * 現在進行中 4722 */ 4723 HTTP_RES_NOW = -1, 4724 } 4725 } 4726 4727 // データ型定義------------------------------------------------------------------- 4728 4729 // WAVEFORMATEX の定義 4730 version (_WAVEFORMATEX_) { 4731 } else { 4732 package struct tWAVEFORMATEX 4733 { 4734 /** 4735 * フォーマット( WAVE_FORMAT_PCM( 値は 1 ) 等 ) 4736 */ 4737 dxlib_d.dxdatatype.WORD wFormatTag; 4738 4739 /** 4740 * チャンネル数 4741 */ 4742 dxlib_d.dxdatatype.WORD nChannels; 4743 4744 /** 4745 * 1秒辺りのサンプル数 4746 */ 4747 dxlib_d.dxdatatype.DWORD nSamplesPerSec; 4748 4749 /** 4750 * 1秒辺りのバイト数( PCMの場合 nSamplesPerSec * nBlockAlign ) 4751 */ 4752 dxlib_d.dxdatatype.DWORD nAvgBytesPerSec; 4753 4754 /** 4755 * 全チャンネルの1サンプルを合わせたバイト数( wBitsPerSample / 8 * nChannels ) 4756 */ 4757 dxlib_d.dxdatatype.WORD nBlockAlign; 4758 4759 /** 4760 * 1サンプル辺りのビット数 4761 */ 4762 dxlib_d.dxdatatype.WORD wBitsPerSample; 4763 4764 /** 4765 * 拡張情報のバイト数( 拡張情報が無い場合は 0 ) 4766 */ 4767 dxlib_d.dxdatatype.WORD cbSize; 4768 } 4769 4770 public alias WAVEFORMATEX = .tWAVEFORMATEX; 4771 public alias PWAVEFORMATEX = .tWAVEFORMATEX*; 4772 public alias NPWAVEFORMATEX = /* NEAR */ .tWAVEFORMATEX*; 4773 public alias LPWAVEFORMATEX = /* FAR */ .tWAVEFORMATEX*; 4774 } 4775 4776 // WAVEFORMAT の定義 4777 version (WAVE_FORMAT_PCM) { 4778 } else { 4779 package struct waveformat_tag 4780 { 4781 /** 4782 * フォーマット( WAVE_FORMAT_PCM( 値は 1 ) 等 ) 4783 */ 4784 dxlib_d.dxdatatype.WORD wFormatTag; 4785 4786 /** 4787 * チャンネル数 4788 */ 4789 dxlib_d.dxdatatype.WORD nChannels; 4790 4791 /** 4792 * 1秒辺りのサンプル数 4793 */ 4794 dxlib_d.dxdatatype.DWORD nSamplesPerSec; 4795 4796 /** 4797 * 1秒辺りのバイト数( PCMの場合 nSamplesPerSec * nBlockAlign ) 4798 */ 4799 dxlib_d.dxdatatype.DWORD nAvgBytesPerSec; 4800 4801 /** 4802 * 全チャンネルの1サンプルを合わせたバイト数( wBitsPerSample / 8 * nChannels ) 4803 */ 4804 dxlib_d.dxdatatype.WORD nBlockAlign; 4805 } 4806 4807 public alias WAVEFORMAT = .waveformat_tag; 4808 public alias PWAVEFORMAT = .waveformat_tag*; 4809 public alias NPWAVEFORMAT = /* NEAR */ .waveformat_tag*; 4810 public alias LPWAVEFORMAT = /* FAR */ .waveformat_tag*; 4811 4812 enum WAVE_FORMAT_PCM = 1; 4813 } 4814 4815 extern (C++, DxLib) { 4816 /** 4817 * IME入力文字列の描画に必要な情報の内の文節情報 4818 */ 4819 package struct tagIMEINPUTCLAUSEDATA 4820 { 4821 /** 4822 * 何文字目から 4823 */ 4824 int Position; 4825 4826 /** 4827 * 何文字か 4828 */ 4829 int Length; 4830 } 4831 4832 public alias IMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA; 4833 public alias LPIMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA*; 4834 4835 /** 4836 * IME入力文字列の描画に必要な情報 4837 */ 4838 package struct tagIMEINPUTDATA 4839 { 4840 /** 4841 * 入力中の文字列 4842 */ 4843 const (dxlib_d.dxdatatype.TCHAR)* InputString; 4844 4845 /** 4846 * カーソルの入力文字列中の位置(バイト単位) 4847 */ 4848 int CursorPosition; 4849 4850 /** 4851 * 文節情報 4852 */ 4853 const (.IMEINPUTCLAUSEDATA)* ClauseData; 4854 4855 /** 4856 * 文節情報の数 4857 */ 4858 int ClauseNum; 4859 4860 /** 4861 * 選択中の分節( -1 の場合はどの文節にも属していない( 末尾にカーソルがある ) ) 4862 */ 4863 int SelectClause; 4864 4865 /** 4866 * 変換候補の数( 0の場合は変換中ではない ) 4867 */ 4868 int CandidateNum; 4869 4870 /** 4871 * 変換候補文字列リスト( 例:n番目の候補を描画する場合 DrawString(0, 0, data.CandidateList[ n ], GetColor(255,255,255)); ) 4872 */ 4873 const (dxlib_d.dxdatatype.TCHAR)** CandidateList; 4874 4875 /** 4876 * 選択中の変換候補 4877 */ 4878 int SelectCandidate; 4879 4880 /** 4881 * 文字変換中かどうか( TRUE:変換中 FALSE:変換中ではない( 文字単位でカーソルが移動できる状態 ) ) 4882 */ 4883 int ConvertFlag; 4884 } 4885 4886 public alias IMEINPUTDATA = .tagIMEINPUTDATA; 4887 public alias LPIMEINPUTDATA = .tagIMEINPUTDATA*; 4888 4889 /** 4890 * 描画文字列1文字の情報 4891 */ 4892 package struct tagDRAWCHARINFO 4893 { 4894 /** 4895 * 文字 4896 */ 4897 dxlib_d.dxdatatype.TCHAR[14] Char; 4898 4899 /** 4900 * 文字のバイト数 4901 */ 4902 dxlib_d.dxdatatype.WORD Bytes; 4903 4904 /** 4905 * 描画位置 X 4906 */ 4907 float DrawX; 4908 4909 /** 4910 * 描画位置 Y 4911 */ 4912 float DrawY; 4913 4914 /** 4915 * 描画サイズ Y 4916 */ 4917 float SizeX; 4918 4919 /** 4920 * 描画サイズ Y 4921 */ 4922 float SizeY; 4923 } 4924 4925 public alias DRAWCHARINFO = .tagDRAWCHARINFO; 4926 public alias LPDRAWCHARINFO = .tagDRAWCHARINFO*; 4927 4928 /** 4929 * 画面モード情報データ型 4930 */ 4931 package struct tagDISPLAYMODEDATA 4932 { 4933 /** 4934 * 水平解像度 4935 */ 4936 int Width; 4937 4938 /** 4939 * 垂直解像度 4940 */ 4941 int Height; 4942 4943 /** 4944 * 色ビット深度 4945 */ 4946 int ColorBitDepth; 4947 4948 /** 4949 * リフレッシュレート( -1 の場合は規定値 ) 4950 */ 4951 int RefreshRate; 4952 } 4953 4954 public alias DISPLAYMODEDATA = .tagDISPLAYMODEDATA; 4955 public alias LPDISPLAYMODEDATA = .tagDISPLAYMODEDATA*; 4956 4957 /** 4958 * タイムデータ型 4959 */ 4960 package struct tagDATEDATA 4961 { 4962 /** 4963 * 年 4964 */ 4965 int Year; 4966 4967 /** 4968 * 月 4969 */ 4970 int Mon; 4971 4972 /** 4973 * 日 4974 */ 4975 int Day; 4976 4977 /** 4978 * 時間 4979 */ 4980 int Hour; 4981 4982 /** 4983 * 分 4984 */ 4985 int Min; 4986 4987 /** 4988 * 秒 4989 */ 4990 int Sec; 4991 } 4992 4993 public alias DATEDATA = .tagDATEDATA; 4994 public alias LPDATEDATA = .tagDATEDATA*; 4995 4996 /** 4997 * ファイル情報構造体 4998 */ 4999 package struct tagFILEINFO 5000 { 5001 /** 5002 * オブジェクト名 5003 */ 5004 dxlib_d.dxdatatype.TCHAR[260] Name; 5005 5006 /** 5007 * ディレクトリかどうか( TRUE:ディレクトリ FALSE:ファイル ) 5008 */ 5009 int DirFlag; 5010 5011 /** 5012 * サイズ 5013 */ 5014 dxlib_d.dxdatatype.LONGLONG Size; 5015 5016 /** 5017 * 作成日時 5018 */ 5019 .DATEDATA CreationTime; 5020 5021 /** 5022 * 最終更新日時 5023 */ 5024 .DATEDATA LastWriteTime; 5025 } 5026 5027 public alias FILEINFO = .tagFILEINFO; 5028 public alias LPFILEINFO = .tagFILEINFO*; 5029 5030 /** 5031 * ファイル情報構造体( wchar_t 版 ) 5032 */ 5033 package struct tagFILEINFOW 5034 { 5035 /** 5036 * オブジェクト名 5037 */ 5038 .wchar_t[260] Name; 5039 5040 /** 5041 * ディレクトリかどうか( TRUE:ディレクトリ FALSE:ファイル ) 5042 */ 5043 int DirFlag; 5044 5045 /** 5046 * サイズ 5047 */ 5048 dxlib_d.dxdatatype.LONGLONG Size; 5049 5050 /** 5051 * 作成日時 5052 */ 5053 .DATEDATA CreationTime; 5054 5055 /** 5056 * 最終更新日時 5057 */ 5058 .DATEDATA LastWriteTime; 5059 } 5060 5061 public alias FILEINFOW = .tagFILEINFOW; 5062 public alias LPFILEINFOW = .tagFILEINFOW*; 5063 5064 /** 5065 * 行列構造体 5066 */ 5067 package struct tagMATRIX 5068 { 5069 float[4][4] m; 5070 } 5071 5072 public alias MATRIX = .tagMATRIX; 5073 public alias LPMATRIX = .tagMATRIX*; 5074 5075 package struct tagMATRIX_D 5076 { 5077 double[4][4] m; 5078 } 5079 5080 public alias MATRIX_D = .tagMATRIX_D; 5081 public alias LPMATRIX_D = .tagMATRIX_D*; 5082 5083 /** 5084 * ベクトルデータ型 5085 */ 5086 package struct tagVECTOR 5087 { 5088 float x; 5089 float y; 5090 float z; 5091 } 5092 5093 public alias VECTOR = .tagVECTOR; 5094 public alias LPVECTOR = .tagVECTOR*; 5095 public alias FLOAT3 = .tagVECTOR; 5096 public alias LPFLOAT3 = .tagVECTOR*; 5097 5098 package struct tagVECTOR_D 5099 { 5100 double x; 5101 double y; 5102 double z; 5103 } 5104 5105 public alias VECTOR_D = .tagVECTOR_D; 5106 public alias LPVECTOR_D = .tagVECTOR_D*; 5107 public alias DOUBLE3 = .tagVECTOR_D; 5108 public alias LPDOUBLE3 = .tagVECTOR_D*; 5109 5110 /** 5111 * FLOAT2個データ型 5112 */ 5113 package struct tagFLOAT2 5114 { 5115 float u; 5116 float v; 5117 } 5118 5119 public alias FLOAT2 = .tagFLOAT2; 5120 5121 /** 5122 * float 型のカラー値 5123 */ 5124 package struct tagCOLOR_F 5125 { 5126 float r; 5127 float g; 5128 float b; 5129 float a; 5130 } 5131 5132 public alias COLOR_F = .tagCOLOR_F; 5133 public alias LPCOLOR_F = .tagCOLOR_F*; 5134 5135 /** 5136 * ubyte 型のカラー値 5137 */ 5138 package struct tagCOLOR_U8 5139 { 5140 dxlib_d.dxdatatype.BYTE b; 5141 dxlib_d.dxdatatype.BYTE g; 5142 dxlib_d.dxdatatype.BYTE r; 5143 dxlib_d.dxdatatype.BYTE a; 5144 } 5145 5146 public alias COLOR_U8 = .tagCOLOR_U8; 5147 5148 /** 5149 * FLOAT4個データ型 5150 */ 5151 package struct tagFLOAT4 5152 { 5153 float x; 5154 float y; 5155 float z; 5156 float w; 5157 } 5158 5159 public alias FLOAT4 = .tagFLOAT4; 5160 public alias LPFLOAT4 = .tagFLOAT4*; 5161 5162 /** 5163 * DOUBLE4個データ型 5164 */ 5165 package struct tagDOUBLE4 5166 { 5167 double x; 5168 double y; 5169 double z; 5170 double w; 5171 } 5172 5173 public alias DOUBLE4 = .tagDOUBLE4; 5174 public alias LPDOUBLE4 = .tagDOUBLE4*; 5175 5176 /** 5177 * INT4個データ型 5178 */ 5179 package struct tagINT4 5180 { 5181 int x; 5182 int y; 5183 int z; 5184 int w; 5185 } 5186 5187 public alias INT4 = .tagINT4; 5188 5189 version (DX_NOTUSE_DRAWFUNCTION) { 5190 } else { 5191 /** 5192 * 2D描画に使用する頂点データ型(DrawPrimitive2D用) 5193 */ 5194 package struct tagVERTEX2D 5195 { 5196 .VECTOR pos; 5197 float rhw; 5198 .COLOR_U8 dif; 5199 float u; 5200 float v; 5201 } 5202 5203 public alias VERTEX2D = .tagVERTEX2D; 5204 public alias LPVERTEX2D = .tagVERTEX2D*; 5205 5206 /** 5207 * 2D描画に使用する頂点データ型(DrawPrimitive2DToShader用) 5208 */ 5209 package struct tagVERTEX2DSHADER 5210 { 5211 .VECTOR pos; 5212 float rhw; 5213 .COLOR_U8 dif; 5214 .COLOR_U8 spc; 5215 float u; 5216 float v; 5217 float su; 5218 float sv; 5219 } 5220 5221 public alias VERTEX2DSHADER = .tagVERTEX2DSHADER; 5222 public alias LPVERTEX2DSHADER = .tagVERTEX2DSHADER*; 5223 5224 /** 5225 * 2D描画に使用する頂点データ型(公開用) 5226 */ 5227 package struct tagVERTEX 5228 { 5229 float x; 5230 float y; 5231 float u; 5232 float v; 5233 ubyte b; 5234 ubyte g; 5235 ubyte r; 5236 ubyte a; 5237 } 5238 5239 public alias VERTEX = .tagVERTEX; 5240 5241 /** 5242 * 3D描画に使用する頂点データ型( 旧バージョンのもの ) 5243 */ 5244 package struct tagVERTEX_3D 5245 { 5246 .VECTOR pos; 5247 ubyte b; 5248 ubyte g; 5249 ubyte r; 5250 ubyte a; 5251 float u; 5252 float v; 5253 } 5254 5255 public alias VERTEX_3D = .tagVERTEX_3D; 5256 public alias LPVERTEX_3D = .tagVERTEX_3D*; 5257 5258 /** 5259 * 3D描画に使用する頂点データ型 5260 */ 5261 package struct tagVERTEX3D 5262 { 5263 /** 5264 * 座標 5265 */ 5266 .VECTOR pos; 5267 5268 /** 5269 * 法線 5270 */ 5271 .VECTOR norm; 5272 5273 /** 5274 * ディフューズカラー 5275 */ 5276 .COLOR_U8 dif; 5277 5278 /** 5279 * スペキュラカラー 5280 */ 5281 .COLOR_U8 spc; 5282 5283 /** 5284 * テクスチャ座標 5285 */ 5286 float u; 5287 5288 /** 5289 * テクスチャ座標 5290 */ 5291 float v; 5292 5293 /** 5294 * 補助テクスチャ座標 5295 */ 5296 float su; 5297 5298 /** 5299 * 補助テクスチャ座標 5300 */ 5301 float sv; 5302 } 5303 5304 public alias VERTEX3D = .tagVERTEX3D; 5305 public alias LPVERTEX3D = .tagVERTEX3D*; 5306 5307 /** 5308 * 3D描画に使用する頂点データ型( DrawPrimitive3DToShader用 ) 5309 * 注意…メンバ変数に追加があるかもしれませんので、宣言時の初期化( VERTEX3DSHADER Vertex = { 0.0f, 0.0f, ... というようなもの )はしない方が良いです 5310 */ 5311 package struct tagVERTEX3DSHADER 5312 { 5313 /** 5314 * 座標 5315 */ 5316 .VECTOR pos; 5317 5318 /** 5319 * 補助座標 5320 */ 5321 .FLOAT4 spos; 5322 5323 /** 5324 * 法線 5325 */ 5326 .VECTOR norm; 5327 5328 /** 5329 * 接線 5330 */ 5331 .VECTOR tan; 5332 5333 /** 5334 * 従法線 5335 */ 5336 .VECTOR binorm; 5337 5338 /** 5339 * ディフューズカラー 5340 */ 5341 .COLOR_U8 dif; 5342 5343 /** 5344 * スペキュラカラー 5345 */ 5346 .COLOR_U8 spc; 5347 5348 /** 5349 * テクスチャ座標 5350 */ 5351 float u; 5352 5353 /** 5354 * テクスチャ座標 5355 */ 5356 float v; 5357 5358 /** 5359 * 補助テクスチャ座標 5360 */ 5361 float su; 5362 5363 /** 5364 * 補助テクスチャ座標 5365 */ 5366 float sv; 5367 } 5368 5369 public alias VERTEX3DSHADER = .tagVERTEX3DSHADER; 5370 public alias LPVERTEX3DSHADER = .tagVERTEX3DSHADER*; 5371 5372 /** 5373 * ライトパラメータ 5374 */ 5375 package struct tagLIGHTPARAM 5376 { 5377 /** 5378 * ライトのタイプ( DX_LIGHTTYPE_D3DLIGHT_POINT 等 ) 5379 */ 5380 int LightType; 5381 5382 /** 5383 * ディフューズカラー 5384 */ 5385 .COLOR_F Diffuse; 5386 5387 /** 5388 * スペキュラカラー 5389 */ 5390 .COLOR_F Specular; 5391 5392 /** 5393 * アンビエント色 5394 */ 5395 .COLOR_F Ambient; 5396 5397 /** 5398 * 位置 5399 */ 5400 .VECTOR Position; 5401 5402 /** 5403 * 方向 5404 */ 5405 .VECTOR Direction; 5406 5407 /** 5408 * 有効距離 5409 */ 5410 float Range; 5411 5412 /** 5413 * フォールオフ 1.0f にしておくのが好ましい 5414 */ 5415 float Falloff; 5416 5417 /** 5418 * 距離による減衰係数0 5419 */ 5420 float Attenuation0; 5421 5422 /** 5423 * 距離による減衰係数1 5424 */ 5425 float Attenuation1; 5426 5427 /** 5428 * 距離による減衰係数2 5429 */ 5430 float Attenuation2; 5431 5432 /** 5433 * スポットライトの内部コーンの照明角度( ラジアン ) 5434 */ 5435 float Theta; 5436 5437 /** 5438 * スポットライトの外部コーンの照明角度 5439 */ 5440 float Phi; 5441 } 5442 5443 alias LIGHTPARAM = .tagLIGHTPARAM; 5444 5445 /** 5446 * マテリアルパラメータ 5447 */ 5448 package struct tagMATERIALPARAM 5449 { 5450 /** 5451 * ディフューズカラー 5452 */ 5453 .COLOR_F Diffuse; 5454 5455 /** 5456 * アンビエントカラー 5457 */ 5458 .COLOR_F Ambient; 5459 5460 /** 5461 * スペキュラカラー 5462 */ 5463 .COLOR_F Specular; 5464 5465 /** 5466 * エミッシブカラー 5467 */ 5468 .COLOR_F Emissive; 5469 5470 /** 5471 * スペキュラハイライトの鮮明度 5472 */ 5473 float Power; 5474 } 5475 5476 alias MATERIALPARAM = .tagMATERIALPARAM; 5477 } 5478 5479 /** 5480 * ラインヒットチェック結果格納用構造体 5481 */ 5482 package struct tagHITRESULT_LINE 5483 { 5484 /** 5485 * 当たったかどうか( 1:当たった 0:当たらなかった ) 5486 */ 5487 int HitFlag; 5488 5489 /** 5490 * 当たった座標 5491 */ 5492 .VECTOR Position; 5493 } 5494 5495 public alias HITRESULT_LINE = .tagHITRESULT_LINE; 5496 5497 /** 5498 * ラインヒットチェック結果格納用構造体 5499 */ 5500 package struct tagHITRESULT_LINE_D 5501 { 5502 /** 5503 * 当たったかどうか( 1:当たった 0:当たらなかった ) 5504 */ 5505 int HitFlag; 5506 5507 /** 5508 * 当たった座標 5509 */ 5510 .VECTOR_D Position; 5511 } 5512 5513 public alias HITRESULT_LINE_D = .tagHITRESULT_LINE_D; 5514 5515 /** 5516 * 関数 Segment_Segment_Analyse の結果を受け取る為の構造体 5517 */ 5518 package struct tagSEGMENT_SEGMENT_RESULT 5519 { 5520 /** 5521 * 線分Aと線分Bが最も接近する座標間の距離の二乗 5522 */ 5523 float SegA_SegB_MinDist_Square; 5524 5525 /** 5526 * 線分Aと線分Bに最も接近する座標の線分Aの t ( 0.0f 〜 1.0f 、最近点座標 = (( SegAPos2 - SegAPos1 ) * t) + SegAPos1 ) 5527 */ 5528 float SegA_MinDist_Pos1_Pos2_t; 5529 5530 /** 5531 * 線分Bが線分Aに最も接近する座標の線分Bの t ( 0.0f 〜 1.0f 、最近点座標 = (( SegBPos2 - SegBPos1 ) * t) + SegBPos1 ) 5532 */ 5533 float SegB_MinDist_Pos1_Pos2_t; 5534 5535 /** 5536 * 線分Aが線分Bに最も接近する線分A上の座標 5537 */ 5538 .VECTOR SegA_MinDist_Pos; 5539 5540 /** 5541 * 線分Bが線分Aに最も接近する線分B上の座標 5542 */ 5543 .VECTOR SegB_MinDist_Pos; 5544 } 5545 5546 public alias SEGMENT_SEGMENT_RESULT = .tagSEGMENT_SEGMENT_RESULT; 5547 5548 /** 5549 * 関数 Segment_Segment_Analyse の結果を受け取る為の構造体 5550 */ 5551 package struct tagSEGMENT_SEGMENT_RESULT_D 5552 { 5553 /** 5554 * 線分Aと線分Bが最も接近する座標間の距離の二乗 5555 */ 5556 double SegA_SegB_MinDist_Square; 5557 5558 /** 5559 * 線分Aと線分Bに最も接近する座標の線分Aの t ( 0.0 〜 1.0 、最近点座標 = (( SegAPos2 - SegAPos1 ) * t) + SegAPos1 ) 5560 */ 5561 double SegA_MinDist_Pos1_Pos2_t; 5562 5563 /** 5564 * 線分Bが線分Aに最も接近する座標の線分Bの t ( 0.0 〜 1.0 、最近点座標 = (( SegBPos2 - SegBPos1 ) * t) + SegBPos1 ) 5565 */ 5566 double SegB_MinDist_Pos1_Pos2_t; 5567 5568 /** 5569 * 線分Aが線分Bに最も接近する線分A上の座標 5570 */ 5571 .VECTOR_D SegA_MinDist_Pos; 5572 5573 /** 5574 * 線分Bが線分Aに最も接近する線分B上の座標 5575 */ 5576 .VECTOR_D SegB_MinDist_Pos; 5577 } 5578 5579 public alias SEGMENT_SEGMENT_RESULT_D = .tagSEGMENT_SEGMENT_RESULT_D; 5580 5581 /** 5582 * 関数 Segment_Point_Analyse の結果を受け取る為の構造体 5583 */ 5584 package struct tagSEGMENT_POINT_RESULT 5585 { 5586 /** 5587 * 線分と点が最も接近する座標間の距離の二乗 5588 */ 5589 float Seg_Point_MinDist_Square; 5590 5591 /** 5592 * 線分が点に最も接近する座標の線分の t ( 0.0f 〜 1.0f 、最近点座標 = (( SegPos2 - SegPos1 ) * t) + SegPos1 ) 5593 */ 5594 float Seg_MinDist_Pos1_Pos2_t; 5595 5596 /** 5597 * 線分が点に最も接近する線分上の座標 5598 */ 5599 .VECTOR Seg_MinDist_Pos; 5600 } 5601 5602 public alias SEGMENT_POINT_RESULT = .tagSEGMENT_POINT_RESULT; 5603 5604 /** 5605 * 関数 Segment_Point_Analyse の結果を受け取る為の構造体 5606 */ 5607 package struct tagSEGMENT_POINT_RESULT_D 5608 { 5609 /** 5610 * 線分と点が最も接近する座標間の距離の二乗 5611 */ 5612 double Seg_Point_MinDist_Square; 5613 5614 /** 5615 * 線分が点に最も接近する座標の線分の t ( 0.0 〜 1.0 、最近点座標 = (( SegPos2 - SegPos1 ) * t) + SegPos1 ) 5616 */ 5617 double Seg_MinDist_Pos1_Pos2_t; 5618 5619 /** 5620 * 線分が点に最も接近する線分上の座標 5621 */ 5622 .VECTOR_D Seg_MinDist_Pos; 5623 } 5624 5625 public alias SEGMENT_POINT_RESULT_D = .tagSEGMENT_POINT_RESULT_D; 5626 5627 /** 5628 * 関数 Segment_Triangle_Analyse の結果を受け取る為の構造体 5629 */ 5630 package struct tagSEGMENT_TRIANGLE_RESULT 5631 { 5632 /** 5633 * 線分と三角形が最も接近する座標間の距離の二乗 5634 */ 5635 float Seg_Tri_MinDist_Square; 5636 5637 /** 5638 * 線分が三角形に最も接近する座標の線分の t ( 0.0f 〜 1.0f 、最近点座標 = (( SegPos2 - SegPos1 ) * t) + SegPos1 ) 5639 */ 5640 float Seg_MinDist_Pos1_Pos2_t; 5641 5642 /** 5643 * 線分が三角形に最も接近する線分上の座標 5644 */ 5645 .VECTOR Seg_MinDist_Pos; 5646 5647 /** 5648 * 三角形が線分に最も接近する座標の三角形座標1の重み( 最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w) ) 5649 */ 5650 float Tri_MinDist_Pos1_w; 5651 5652 /** 5653 * 三角形が線分に最も接近する座標の三角形座標2の重み 5654 */ 5655 float Tri_MinDist_Pos2_w; 5656 5657 /** 5658 * 三角形が線分に最も接近する座標の三角形座標3の重み 5659 */ 5660 float Tri_MinDist_Pos3_w; 5661 5662 /** 5663 * 三角形が線分に最も接近する三角形上の座標 5664 */ 5665 .VECTOR Tri_MinDist_Pos; 5666 } 5667 5668 public alias SEGMENT_TRIANGLE_RESULT = .tagSEGMENT_TRIANGLE_RESULT; 5669 5670 /** 5671 * 関数 Segment_Triangle_Analyse の結果を受け取る為の構造体 5672 */ 5673 package struct tagSEGMENT_TRIANGLE_RESULT_D 5674 { 5675 /** 5676 * 線分と三角形が最も接近する座標間の距離の二乗 5677 */ 5678 double Seg_Tri_MinDist_Square; 5679 5680 /** 5681 * 線分が三角形に最も接近する座標の線分の t ( 0.0 〜 1.0 、最近点座標 = (( SegPos2 - SegPos1 ) * t) + SegPos1 ) 5682 */ 5683 double Seg_MinDist_Pos1_Pos2_t; 5684 5685 /** 5686 * 線分が三角形に最も接近する線分上の座標 5687 */ 5688 .VECTOR_D Seg_MinDist_Pos; 5689 5690 /** 5691 * 三角形が線分に最も接近する座標の三角形座標1の重み( 最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w) ) 5692 */ 5693 double Tri_MinDist_Pos1_w; 5694 5695 /** 5696 * 三角形が線分に最も接近する座標の三角形座標2の重み 5697 */ 5698 double Tri_MinDist_Pos2_w; 5699 5700 /** 5701 * 三角形が線分に最も接近する座標の三角形座標3の重み 5702 */ 5703 double Tri_MinDist_Pos3_w; 5704 5705 /** 5706 * 三角形が線分に最も接近する三角形上の座標 5707 */ 5708 .VECTOR_D Tri_MinDist_Pos; 5709 } 5710 5711 public alias SEGMENT_TRIANGLE_RESULT_D = .tagSEGMENT_TRIANGLE_RESULT_D; 5712 5713 /** 5714 * 関数 Triangle_Point_Analyse の結果を受け取る為の構造体 5715 */ 5716 package struct tagTRIANGLE_POINT_RESULT 5717 { 5718 /** 5719 * 三角形と点が最も接近する座標間の距離の二乗 5720 */ 5721 float Tri_Pnt_MinDist_Square; 5722 5723 /** 5724 * 三角形が点に最も接近する座標の三角形座標1の重み( 最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w) ) 5725 */ 5726 float Tri_MinDist_Pos1_w; 5727 5728 /** 5729 * 三角形が点に最も接近する座標の三角形座標2の重み 5730 */ 5731 float Tri_MinDist_Pos2_w; 5732 5733 /** 5734 * 三角形が点に最も接近する座標の三角形座標3の重み 5735 */ 5736 float Tri_MinDist_Pos3_w; 5737 5738 /** 5739 * 三角形が点に最も接近する三角形上の座標 5740 */ 5741 .VECTOR Tri_MinDist_Pos; 5742 } 5743 5744 public alias TRIANGLE_POINT_RESULT = .tagTRIANGLE_POINT_RESULT; 5745 5746 /** 5747 * 関数 Triangle_Point_Analyse の結果を受け取る為の構造体 5748 */ 5749 package struct tagTRIANGLE_POINT_RESULT_D 5750 { 5751 /** 5752 * 三角形と点が最も接近する座標間の距離の二乗 5753 */ 5754 double Tri_Pnt_MinDist_Square; 5755 5756 /** 5757 * 三角形が点に最も接近する座標の三角形座標1の重み( 最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w) ) 5758 */ 5759 double Tri_MinDist_Pos1_w; 5760 5761 /** 5762 * 三角形が点に最も接近する座標の三角形座標2の重み 5763 */ 5764 double Tri_MinDist_Pos2_w; 5765 5766 /** 5767 * 三角形が点に最も接近する座標の三角形座標3の重み 5768 */ 5769 double Tri_MinDist_Pos3_w; 5770 5771 /** 5772 * 三角形が点に最も接近する三角形上の座標 5773 */ 5774 .VECTOR_D Tri_MinDist_Pos; 5775 } 5776 5777 public alias TRIANGLE_POINT_RESULT_D = .tagTRIANGLE_POINT_RESULT_D; 5778 5779 /** 5780 * 関数 Plane_Point_Analyse の結果を受け取る為の構造体 5781 */ 5782 package struct tagPLANE_POINT_RESULT 5783 { 5784 /** 5785 * 点が平面の法線の側にあるかどうか( 1:法線の側にある 0:法線と反対側にある ) 5786 */ 5787 int Pnt_Plane_Normal_Side; 5788 5789 /** 5790 * 平面と点の距離 5791 */ 5792 float Plane_Pnt_MinDist_Square; 5793 5794 /** 5795 * 平面上の点との最近点座標 5796 */ 5797 .VECTOR Plane_MinDist_Pos; 5798 } 5799 5800 public alias PLANE_POINT_RESULT = .tagPLANE_POINT_RESULT; 5801 5802 /** 5803 * 関数 Plane_Point_Analyse の結果を受け取る為の構造体 5804 */ 5805 package struct tagPLANE_POINT_RESULT_D 5806 { 5807 /** 5808 * 点が平面の法線の側にあるかどうか( 1:法線の側にある 0:法線と反対側にある ) 5809 */ 5810 int Pnt_Plane_Normal_Side; 5811 5812 /** 5813 * 平面と点の距離 5814 */ 5815 double Plane_Pnt_MinDist_Square; 5816 5817 /** 5818 * 平面上の点との最近点座標 5819 */ 5820 .VECTOR_D Plane_MinDist_Pos; 5821 } 5822 5823 public alias PLANE_POINT_RESULT_D = .tagPLANE_POINT_RESULT_D; 5824 5825 version (DX_NOTUSE_DRAWFUNCTION) { 5826 } else { 5827 /** 5828 * コリジョン結果代入用ポリゴン 5829 */ 5830 package struct tagMV1_COLL_RESULT_POLY 5831 { 5832 /** 5833 * ( MV1CollCheck_Line でのみ有効 )ヒットフラグ( 1:ヒットした 0:ヒットしなかった ) 5834 */ 5835 int HitFlag; 5836 5837 /** 5838 * ( MV1CollCheck_Line でのみ有効 )ヒット座標 5839 */ 5840 .VECTOR HitPosition; 5841 5842 /** 5843 * 当たったポリゴンが含まれるフレームの番号 5844 */ 5845 int FrameIndex; 5846 5847 /** 5848 * 当たったポリゴンが含まれるメッシュの番号( メッシュ単位で判定した場合のみ有効 ) 5849 */ 5850 int MeshIndex; 5851 5852 /** 5853 * 当たったポリゴンの番号 5854 */ 5855 int PolygonIndex; 5856 5857 /** 5858 * 当たったポリゴンが使用しているマテリアルの番号 5859 */ 5860 int MaterialIndex; 5861 5862 /** 5863 * 当たったポリゴンを形成する三点の座標 5864 */ 5865 .VECTOR[3] Position; 5866 5867 /** 5868 * 当たったポリゴンの法線 5869 */ 5870 .VECTOR Normal; 5871 5872 /** 5873 * 当たった座標は、当たったポリゴンの三点それぞれどの割合で影響しているか、の値( 当たった座標 = (Position[ 0 ] * PositionWeight[ 0 ]) + (Position[ 1 ] * PositionWeight[ 1 ]) + (Position[ 2 ] * PositionWeight[ 2 ]) ) 5874 */ 5875 float[3] PositionWeight; 5876 5877 /** 5878 * 当たったポリゴンの座標がそれぞれ最も影響を受けているフレームの番号 5879 */ 5880 int[3] PosMaxWeightFrameIndex; 5881 } 5882 5883 public alias MV1_COLL_RESULT_POLY = .tagMV1_COLL_RESULT_POLY; 5884 5885 /** 5886 * コリジョン結果代入用ポリゴン配列 5887 */ 5888 package struct tagMV1_COLL_RESULT_POLY_DIM 5889 { 5890 /** 5891 * ヒットしたポリゴンの数 5892 */ 5893 int HitNum; 5894 5895 /** 5896 * ヒットしたポリゴンの配列( HitNum個分存在する ) 5897 */ 5898 .MV1_COLL_RESULT_POLY* Dim; 5899 } 5900 5901 public alias MV1_COLL_RESULT_POLY_DIM = .tagMV1_COLL_RESULT_POLY_DIM; 5902 5903 /** 5904 * 参照用頂点構造体 5905 */ 5906 package struct tagMV1_REF_VERTEX 5907 { 5908 /** 5909 * 位置 5910 */ 5911 .VECTOR Position; 5912 5913 /** 5914 * 法線 5915 */ 5916 .VECTOR Normal; 5917 5918 /** 5919 * テクスチャ座標 5920 */ 5921 .FLOAT2[2] TexCoord; 5922 5923 /** 5924 * ディフューズカラー 5925 */ 5926 .COLOR_U8 DiffuseColor; 5927 5928 /** 5929 * スペキュラカラー 5930 */ 5931 .COLOR_U8 SpecularColor; 5932 5933 /** 5934 * 最も大きな影響を与えているフレーム( スキニングメッシュ用 ) 5935 */ 5936 int MaxWeightFrameIndex; 5937 } 5938 5939 public alias MV1_REF_VERTEX = .tagMV1_REF_VERTEX; 5940 5941 /** 5942 * 参照用ポリゴン構造体 5943 */ 5944 package struct tagMV1_REF_POLYGON 5945 { 5946 /** 5947 * このポリゴンが属しているフレーム 5948 */ 5949 ushort FrameIndex; 5950 5951 /** 5952 * このポリゴンが属しているメッシュ 5953 */ 5954 ushort MeshIndex; 5955 5956 /** 5957 * 使用しているマテリアル 5958 */ 5959 ushort MaterialIndex; 5960 5961 /** 5962 * VIndex が指すインデックスの参照先( 1:フレーム 0:モデル全体 ) 5963 */ 5964 ushort VIndexTarget; 5965 5966 /** 5967 * 3角形ポリゴンを成す参照頂点のインデックス 5968 */ 5969 int[3] VIndex; 5970 5971 /** 5972 * ポリゴンを成す頂点座標の最小値 5973 */ 5974 .VECTOR MinPosition; 5975 5976 /** 5977 * ポリゴンを成す頂点座標の最大値 5978 */ 5979 .VECTOR MaxPosition; 5980 } 5981 5982 public alias MV1_REF_POLYGON = .tagMV1_REF_POLYGON; 5983 5984 /** 5985 * 参照用ポリゴンデータ構造体 5986 */ 5987 package struct tagMV1_REF_POLYGONLIST 5988 { 5989 /** 5990 * 参照用ポリゴンの数 5991 */ 5992 int PolygonNum; 5993 5994 /** 5995 * 頂点の数 5996 */ 5997 int VertexNum; 5998 5999 /** 6000 * 頂点座標の最小値 6001 */ 6002 .VECTOR MinPosition; 6003 6004 /** 6005 * 頂点座標の最大値 6006 */ 6007 .VECTOR MaxPosition; 6008 6009 /** 6010 * 参照用ポリゴン配列 6011 */ 6012 .MV1_REF_POLYGON* Polygons; 6013 6014 /** 6015 * 参照用頂点配列 6016 */ 6017 .MV1_REF_VERTEX* Vertexs; 6018 } 6019 6020 public alias MV1_REF_POLYGONLIST = .tagMV1_REF_POLYGONLIST; 6021 } 6022 6023 /** 6024 * 3Dサウンドリバーブエフェクトパラメータ構造体 6025 * ( 注釈は MSDN の XAUDIO2FX_REVERB_PARAMETERS 構造体の解説をほぼ引用しています ) 6026 */ 6027 package struct tagSOUND3D_REVERB_PARAM 6028 { 6029 /** 6030 * リバーブとなる出力の割合( 指定可能範囲 0.0f 〜 100.0f ) 6031 */ 6032 float WetDryMix; 6033 6034 /** 6035 * ダイレクト パスに対する初期反射の遅延時間、単位はミリ秒( 指定可能範囲 0 〜 300 ) 6036 */ 6037 uint ReflectionsDelay; 6038 6039 /** 6040 * 初期反射に対するリバーブの遅延時間、単位はミリ秒( 指定可能範囲 0 〜 85 ) 6041 */ 6042 dxlib_d.dxdatatype.BYTE ReverbDelay; 6043 6044 /** 6045 * 左後方出力および右後方出力の遅延時間、単位はミリ秒( 指定可能範囲 0 〜 5 ) 6046 */ 6047 dxlib_d.dxdatatype.BYTE RearDelay; 6048 6049 /** 6050 * シミュレーション空間における視聴者に対する左入力の位置( 指定可能範囲 0 〜 30 ) 6051 * PositionLeft を最小値に設定した場合、左入力は視聴者の近くに配置されます。 6052 * この位置では、サウンド フィールドにおいて初期反射が優勢になり、残響減衰は弱まって、振幅が小さくなります。 6053 * PositionLeft を最大値に設定した場合、左入力はシミュレーション室内で視聴者から最大限遠い位置に配置されます。 6054 * PositionLeft は残響減衰時間 (部屋の残響効果) に影響せず、視聴者に対する音源の見かけの位置のみに影響します。 6055 */ 6056 dxlib_d.dxdatatype.BYTE PositionLeft; 6057 6058 /** 6059 * PositionLeft と同効果の右入力値( 指定可能範囲 0 〜 30 )、右入力にのみ影響を与える 6060 */ 6061 dxlib_d.dxdatatype.BYTE PositionRight; 6062 6063 /** 6064 * 音源から視聴者までの距離によるインプレッションを増減させる値( 指定可能範囲 0 〜 30 ) 6065 */ 6066 dxlib_d.dxdatatype.BYTE PositionMatrixLeft; 6067 6068 /** 6069 * 音源から視聴者までの距離によるインプレッションを増減させま値( 指定可能範囲 0 〜 30 ) 6070 */ 6071 dxlib_d.dxdatatype.BYTE PositionMatrixRight; 6072 6073 /** 6074 * 個々の壁の反射特性値( 指定可能範囲 0 〜 15 )、( 堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。) 6075 */ 6076 dxlib_d.dxdatatype.BYTE EarlyDiffusion; 6077 6078 /** 6079 * 個々の壁のリバーブ特性値( 指定可能範囲 0 〜 15 )、( 堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。) 6080 */ 6081 dxlib_d.dxdatatype.BYTE LateDiffusion; 6082 6083 /** 6084 * 1 kHz における減衰時間を基準にして低周波数の減衰時間調整値( 指定可能範囲 0 〜 12 ) 6085 * 6086 * 値とゲイン (dB) の関係 6087 * 値 0 1 2 3 4 5 6 7 8 9 10 11 12 6088 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 6089 * LowEQGain の値が 8 の場合、低周波数の減衰時間と 1 kHz における減衰時間が等しくなることに注意してください 6090 */ 6091 dxlib_d.dxdatatype.BYTE LowEQGain; 6092 6093 /** 6094 * LowEQGain パラメーターにより制御されるローパス フィルターの折点周波数の設定値( 指定可能範囲 0 〜 9 ) 6095 * 6096 * 値と周波数 (Hz) の関係 6097 * 値 0 1 2 3 4 5 6 7 8 9 6098 * 周波数(Hz) 50 100 150 200 250 300 350 400 450 500 6099 */ 6100 dxlib_d.dxdatatype.BYTE LowEQCutoff; 6101 6102 /** 6103 * 1 kHz における減衰時間を基準にして高周波数の減衰時間調整値( 指定可能範囲 0 〜 8 ) 6104 * 6105 * 値とゲイン (dB) の関係 6106 * 値 0 1 2 3 4 5 6 7 8 6107 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0 6108 * 0 に設定すると、高周波数の音が 1 kHz の場合と同じ割合で減衰します。最大値に設定すると、高周波数の音が 1 kHz の場合よりもはるかに高い割合で減衰します。 6109 */ 6110 dxlib_d.dxdatatype.BYTE HighEQGain; 6111 6112 /** 6113 * HighEQGain パラメーターにより制御されるハイパス フィルターの折点周波数設定値( 指定可能範囲 0 〜 14 ) 6114 * 6115 * 値と周波数 (kHz) の関係 6116 * 値 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6117 * 周波数(kHz) 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 6118 */ 6119 dxlib_d.dxdatatype.BYTE HighEQCutoff; 6120 6121 /** 6122 * 室内エフェクトのローパス フィルターの折点周波数、単位は Hz ( 指定可能範囲 20.0f 〜 20000.0f ) 6123 */ 6124 float RoomFilterFreq; 6125 6126 /** 6127 * 初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位は dB ( 指定可能範囲 -100.0f 〜 0.0f ) 6128 */ 6129 float RoomFilterMain; 6130 6131 /** 6132 * 折点周波数 (RoomFilterFreq) での初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位は dB ( 指定可能範囲 -100.0f 〜 0.0f ) 6133 */ 6134 float RoomFilterHF; 6135 6136 /** 6137 * 初期反射の強度/レベルを調整値、単位は dB ( 指定可能範囲 -100.0f 〜 20.0f ) 6138 */ 6139 float ReflectionsGain; 6140 6141 /** 6142 * リバーブの強度/レベルを調整値、単位は dB ( 指定可能範囲 -100.0f 〜 20.0f ) 6143 */ 6144 float ReverbGain; 6145 6146 /** 6147 * 1 kHz における残響減衰時間、単位は秒 ( 指定可能範囲 0.1f 〜 上限値特になし )、これは、フル スケールの入力信号が 60 dB 減衰するまでの時間です。 6148 */ 6149 float DecayTime; 6150 6151 /** 6152 * 後期フィールド残響のモード密度を制御値、単位はパーセント( 指定可能範囲 0.0f 〜 100.0f ) 6153 * 無色 (colorless) の空間では、Density を最大値 (100.0f ) に設定する必要があります。 6154 * Density を小さくすると、サウンドはくぐもった音 (くし形フィルターが適用された音) になります。 6155 * これはサイロをシミュレーションするときに有効なエフェクトです。 6156 */ 6157 float Density; 6158 6159 /** 6160 * 音響空間の見かけ上のサイズ、単位はフィート( 指定可能範囲 1.0f (30.48 cm) 〜 100.0f (30.48 m) ) 6161 */ 6162 float RoomSize; 6163 } 6164 6165 public alias SOUND3D_REVERB_PARAM = .tagSOUND3D_REVERB_PARAM; 6166 6167 /** 6168 * ストリームデータ制御用関数ポインタ構造体タイプ2 6169 */ 6170 package struct tagSTREAMDATASHREDTYPE2 6171 { 6172 dxlib_d.dxdatatype.DWORD_PTR function(const (dxlib_d.dxdatatype.TCHAR)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open; 6173 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) Close; 6174 dxlib_d.dxdatatype.LONGLONG function(dxlib_d.dxdatatype.DWORD_PTR Handle) Tell; 6175 int function(dxlib_d.dxdatatype.DWORD_PTR Handle, dxlib_d.dxdatatype.LONGLONG SeekPoint, int SeekType) Seek; 6176 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.dxdatatype.DWORD_PTR Handle) Read; 6177 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) Eof; 6178 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) IdleCheck; 6179 int function(const (dxlib_d.dxdatatype.TCHAR)* Path) ChDir; 6180 int function(dxlib_d.dxdatatype.TCHAR* Buffer) GetDir; 6181 int function(dxlib_d.dxdatatype.TCHAR* Buffer, size_t BufferSize) GetDirS; 6182 6183 /** 6184 * Returns: -1:エラー -1以外:FindHandle 6185 */ 6186 dxlib_d.dxdatatype.DWORD_PTR function(const (dxlib_d.dxdatatype.TCHAR)* FilePath, .FILEINFO* Buffer) FindFirst; 6187 6188 /** 6189 * Returns: -1:エラー 0:成功 6190 */ 6191 int function(dxlib_d.dxdatatype.DWORD_PTR FindHandle, .FILEINFO* Buffer) FindNext; 6192 6193 /** 6194 * Returns: -1:エラー 0:成功 6195 */ 6196 int function(dxlib_d.dxdatatype.DWORD_PTR FindHandle) FindClose; 6197 } 6198 6199 public alias STREAMDATASHREDTYPE2 = .tagSTREAMDATASHREDTYPE2; 6200 6201 /** 6202 * ストリームデータ制御用関数ポインタ構造体タイプ2の wchar_t 使用版 6203 */ 6204 package struct tagSTREAMDATASHREDTYPE2W 6205 { 6206 dxlib_d.dxdatatype.DWORD_PTR function(const (.wchar_t)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open; 6207 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) Close; 6208 dxlib_d.dxdatatype.LONGLONG function(dxlib_d.dxdatatype.DWORD_PTR Handle) Tell; 6209 int function(dxlib_d.dxdatatype.DWORD_PTR Handle, dxlib_d.dxdatatype.LONGLONG SeekPoint, int SeekType) Seek; 6210 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.dxdatatype.DWORD_PTR Handle) Read; 6211 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) Eof; 6212 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) IdleCheck; 6213 6214 /** 6215 * Returns: -1:エラー 0:DXアーカイブファイル内のファイルではない 1:DXアーカイブファイル内のファイル 6216 */ 6217 int function(dxlib_d.dxdatatype.DWORD_PTR Handle) IsDXA; 6218 6219 int function(const (.wchar_t)* Path) ChDir; 6220 int function(.wchar_t* Buffer) GetDir; 6221 int function(.wchar_t* Buffer, size_t BufferSize) GetDirS; 6222 6223 /** 6224 * Returns: -1:エラー -1以外:FindHandle 6225 */ 6226 dxlib_d.dxdatatype.DWORD_PTR function(const (.wchar_t)* FilePath, .FILEINFOW* Buffer) FindFirst; 6227 6228 /** 6229 * Returns: -1:エラー 0:成功 6230 */ 6231 int function(dxlib_d.dxdatatype.DWORD_PTR FindHandle, .FILEINFOW* Buffer) FindNext; 6232 6233 /** 6234 * Returns: -1:エラー 0:成功 6235 */ 6236 int function(dxlib_d.dxdatatype.DWORD_PTR FindHandle) FindClose; 6237 } 6238 6239 public alias STREAMDATASHREDTYPE2W = .tagSTREAMDATASHREDTYPE2W; 6240 6241 /** 6242 * ストリームデータ制御用関数ポインタ構造体 6243 */ 6244 package struct tagSTREAMDATASHRED 6245 { 6246 dxlib_d.dxdatatype.LONGLONG function(dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) Tell; 6247 int function(dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint, dxlib_d.dxdatatype.LONGLONG SeekPoint, int SeekType) Seek; 6248 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) Read; 6249 // size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) Write; 6250 int function(dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) Eof; 6251 int function(dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) IdleCheck; 6252 int function(dxlib_d.dxdatatype.DWORD_PTR StreamDataPoint) Close; 6253 } 6254 6255 public alias STREAMDATASHRED = .tagSTREAMDATASHRED; 6256 public alias LPSTREAMDATASHRED = .tagSTREAMDATASHRED*; 6257 6258 /** 6259 * ストリームデータ制御用データ構造体 6260 */ 6261 package struct tagSTREAMDATA 6262 { 6263 .STREAMDATASHRED ReadShred; 6264 dxlib_d.dxdatatype.DWORD_PTR DataPoint; 6265 } 6266 6267 public alias STREAMDATA = .tagSTREAMDATA; 6268 6269 /** 6270 * パレット情報構造体 6271 */ 6272 package struct tagCOLORPALETTEDATA 6273 { 6274 ubyte Blue; 6275 ubyte Green; 6276 ubyte Red; 6277 ubyte Alpha; 6278 } 6279 6280 public alias COLORPALETTEDATA = .tagCOLORPALETTEDATA; 6281 6282 /** 6283 * カラー構造情報構造体 6284 */ 6285 package struct tagCOLORDATA 6286 { 6287 /** 6288 * フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 ) 6289 */ 6290 ubyte Format; 6291 6292 /** 6293 * チャンネル数 6294 */ 6295 ubyte ChannelNum; 6296 6297 /** 6298 * 1チャンネル辺りのビット深度 6299 */ 6300 ubyte ChannelBitDepth; 6301 6302 /** 6303 * 浮動小数点型かどうか( TRUE:浮動小数点型 FALSE:整数型 ) 6304 */ 6305 ubyte FloatTypeFlag; 6306 6307 /** 6308 * 1ピクセルあたりのバイト数 6309 */ 6310 ubyte PixelByte; 6311 6312 // 以下は ChannelNum 又は ChannelBitDepth が 0 の時のみ有効 6313 6314 /** 6315 * ビット深度 6316 */ 6317 ubyte ColorBitDepth; 6318 6319 /** 6320 * 使われていないビットのアドレスと幅 6321 */ 6322 ubyte NoneLoc; 6323 6324 /** 6325 * 使われていないビットのアドレスと幅 6326 */ 6327 ubyte NoneWidth; 6328 6329 /** 6330 * ビット幅 6331 */ 6332 ubyte RedWidth; 6333 6334 /** 6335 * ビット幅 6336 */ 6337 ubyte GreenWidth; 6338 6339 /** 6340 * ビット幅 6341 */ 6342 ubyte BlueWidth; 6343 6344 /** 6345 * ビット幅 6346 */ 6347 ubyte AlphaWidth; 6348 6349 /** 6350 * 配置されているビットアドレス 6351 */ 6352 ubyte RedLoc; 6353 6354 /** 6355 * 配置されているビットアドレス 6356 */ 6357 ubyte GreenLoc; 6358 6359 /** 6360 * 配置されているビットアドレス 6361 */ 6362 ubyte BlueLoc; 6363 6364 /** 6365 * 配置されているビットアドレス 6366 */ 6367 ubyte AlphaLoc; 6368 6369 /** 6370 * ビットマスク 6371 */ 6372 uint RedMask; 6373 6374 /** 6375 * ビットマスク 6376 */ 6377 uint GreenMask; 6378 6379 /** 6380 * ビットマスク 6381 */ 6382 uint BlueMask; 6383 6384 /** 6385 * ビットマスク 6386 */ 6387 uint AlphaMask; 6388 6389 /** 6390 * 使われていないビットのマスク 6391 */ 6392 uint NoneMask; 6393 6394 /** 6395 * 使用しているパレット番号の最大値( 0 の場合は 255 とみなす ) 6396 */ 6397 int MaxPaletteNo; 6398 6399 // memo: ここより上にメンバー変数を追加したら DxBaseImage.cpp の NS_GraphColorMatchBltVer2 のアセンブラでのパレットデータ参照のリテラル値を修正する必要あり 6400 6401 /** 6402 * パレット( ColorBitDepth が8以下の場合のみ有効 ) 6403 */ 6404 .COLORPALETTEDATA[256] Palette; 6405 } 6406 6407 public alias COLORDATA = .tagCOLORDATA; 6408 public alias LPCOLORDATA = .tagCOLORDATA*; 6409 6410 /** 6411 * 基本イメージデータ構造体 6412 */ 6413 package struct tagBASEIMAGE 6414 { 6415 /** 6416 * 色情報 6417 */ 6418 .COLORDATA ColorData; 6419 6420 /** 6421 * 幅 6422 */ 6423 int Width; 6424 6425 /** 6426 * 高さ 6427 */ 6428 int Height; 6429 6430 /** 6431 * ピッチ 6432 */ 6433 int Pitch; 6434 6435 /** 6436 * グラフィックイメージ 6437 */ 6438 void* GraphData; 6439 6440 /** 6441 * ミップマップの数 6442 */ 6443 int MipMapCount; 6444 6445 /** 6446 * グラフィックイメージの数 6447 */ 6448 int GraphDataCount; 6449 } 6450 6451 public alias BASEIMAGE = .tagBASEIMAGE; 6452 public alias GRAPHIMAGE = .tagBASEIMAGE; 6453 public alias LPGRAPHIMAGE = .tagBASEIMAGE*; 6454 6455 /** 6456 * ラインデータ型 6457 */ 6458 package struct tagLINEDATA 6459 { 6460 /** 6461 * 座標 6462 */ 6463 int x1; 6464 6465 /** 6466 * 座標 6467 */ 6468 int y1; 6469 6470 /** 6471 * 座標 6472 */ 6473 int x2; 6474 6475 /** 6476 * 座標 6477 */ 6478 int y2; 6479 6480 /** 6481 * 色 6482 */ 6483 uint color; 6484 6485 /** 6486 * パラメータ 6487 */ 6488 int pal; 6489 } 6490 6491 public alias LINEDATA = .tagLINEDATA; 6492 public alias LPLINEDATA = .tagLINEDATA*; 6493 6494 /** 6495 * 座標データ型 6496 */ 6497 package struct tagPOINTDATA 6498 { 6499 /** 6500 * 座標 6501 */ 6502 int x; 6503 6504 /** 6505 * 座標 6506 */ 6507 int y; 6508 6509 /** 6510 * 色 6511 */ 6512 uint color; 6513 6514 /** 6515 * パラメータ 6516 */ 6517 int pal; 6518 } 6519 6520 public alias POINTDATA = .tagPOINTDATA; 6521 public alias LPPOINTDATA = .tagPOINTDATA*; 6522 6523 /** 6524 * 立方体データ型 6525 */ 6526 package struct tagCUBEDATA 6527 { 6528 /** 6529 * 座標1 6530 */ 6531 .VECTOR Pos1; 6532 6533 /** 6534 * 座標2 6535 */ 6536 .VECTOR Pos2; 6537 6538 /** 6539 * ディフューズカラー 6540 */ 6541 .COLOR_U8 DifColor; 6542 6543 /** 6544 * スペキュラカラー 6545 */ 6546 .COLOR_U8 SpcColor; 6547 } 6548 6549 public alias CUBEDATA = .tagCUBEDATA; 6550 public alias LPCUBEDATA = .tagCUBEDATA*; 6551 6552 version (DX_NOTUSE_DRAWFUNCTION) { 6553 } else { 6554 /** 6555 * イメージフォーマットデータ 6556 */ 6557 package struct tagIMAGEFORMATDESC 6558 { 6559 /** 6560 * テクスチャか、フラグ( TRUE:テクスチャ FALSE:標準サーフェス ) 6561 */ 6562 ubyte TextureFlag; 6563 6564 /** 6565 * キューブマップテクスチャか、フラグ( TRUE:キューブマップテクスチャ FALSE:それ以外 ) 6566 */ 6567 ubyte CubeMapTextureFlag; 6568 6569 /** 6570 * αチャンネルはあるか、フラグ ( TRUE:ある FALSE:ない ) 6571 */ 6572 ubyte AlphaChFlag; 6573 6574 /** 6575 * 描画可能か、フラグ( TRUE:可能 FALSE:不可能 ) 6576 */ 6577 ubyte DrawValidFlag; 6578 6579 /** 6580 * システムメモリ上に存在しているか、フラグ( TRUE:システムメモリ上 FALSE:VRAM上 )( 標準サーフェスの時のみ有効 ) 6581 */ 6582 ubyte SystemMemFlag; 6583 6584 /** 6585 * マネージドテクスチャを使用するか、フラグ 6586 */ 6587 ubyte UseManagedTextureFlag; 6588 6589 /** 6590 * テクスチャのメモリデータ配置にリニアが選択できる場合はデータ配置方式をリニアにするかどうか( TRUE:リニアが可能な場合はリニアにする FALSE:リニアが可能な場合も特にリニアを指定しない ) 6591 */ 6592 ubyte UseLinearMapTextureFlag; 6593 6594 /** 6595 * 環境依存のテクスチャフォーマットを直接指定するために使用するための変数( DX_TEXTUREFORMAT_DIRECT3D9_R8G8B8 など ) 6596 */ 6597 ubyte PlatformTextureFormat; 6598 6599 /** 6600 * 基本フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 ) 6601 */ 6602 ubyte BaseFormat; 6603 6604 /** 6605 * ミップマップの数 6606 */ 6607 ubyte MipMapCount; 6608 6609 /** 6610 * αテストチャンネルはあるか、フラグ( TRUE:ある FALSE:ない )( テクスチャの場合のみ有効 ) 6611 */ 6612 ubyte AlphaTestFlag; 6613 6614 /** 6615 * 浮動小数点型かどうか 6616 */ 6617 ubyte FloatTypeFlag; 6618 6619 /** 6620 * 色深度( テクスチャの場合のみ有効 ) 6621 */ 6622 ubyte ColorBitDepth; 6623 6624 /** 6625 * チャンネルの数 6626 */ 6627 ubyte ChannelNum; 6628 6629 /** 6630 * 1チャンネル辺りのビット深度( テクスチャの場合のみ有効、0 の場合は ColorBitDepth が使用される ) 6631 */ 6632 ubyte ChannelBitDepth; 6633 6634 /** 6635 * ブレンド用画像か、フラグ 6636 */ 6637 ubyte BlendGraphFlag; 6638 6639 /** 6640 * パレットを使用しているか、フラグ( SystemMemFlag が TRUE の場合のみ有効 ) 6641 */ 6642 ubyte UsePaletteFlag; 6643 6644 /** 6645 * マルチサンプリング数( 描画対象の場合使用 ) 6646 */ 6647 ubyte MSSamples; 6648 6649 /** 6650 * マルチサンプリングクオリティ( 描画対象の場合使用 ) 6651 */ 6652 ubyte MSQuality; 6653 } 6654 6655 public alias IMAGEFORMATDESC = .tagIMAGEFORMATDESC; 6656 } 6657 6658 /** 6659 * DirectInput のジョイパッド入力情報 6660 */ 6661 package struct tagDINPUT_JOYSTATE 6662 { 6663 /** 6664 * スティックのX軸パラメータ( -1000〜1000 ) 6665 */ 6666 int X; 6667 6668 /** 6669 * スティックのY軸パラメータ( -1000〜1000 ) 6670 */ 6671 int Y; 6672 6673 /** 6674 * スティックのZ軸パラメータ( -1000〜1000 ) 6675 */ 6676 int Z; 6677 6678 /** 6679 * スティックのX軸回転パラメータ( -1000〜1000 ) 6680 */ 6681 int Rx; 6682 6683 /** 6684 * スティックのY軸回転パラメータ( -1000〜1000 ) 6685 */ 6686 int Ry; 6687 6688 /** 6689 * スティックのZ軸回転パラメータ( -1000〜1000 ) 6690 */ 6691 int Rz; 6692 6693 /** 6694 * スライダー二つ( 0〜65535 ) 6695 */ 6696 int[2] Slider; 6697 6698 /** 6699 * ハットスイッチ4つ( 0xFFFFFFFF:入力なし 0:上 4500:右上 9000:右 13500:右下 18000:下 22500:左下 27000:左 31500:左上 ) 6700 */ 6701 uint[4] POV; 6702 6703 /** 6704 * ボタン32個( 押されたボタンは 128 になる ) 6705 */ 6706 ubyte[32] Buttons; 6707 } 6708 6709 public alias DINPUT_JOYSTATE = .tagDINPUT_JOYSTATE; 6710 6711 /** 6712 * XInput のジョイパッド入力情報 6713 */ 6714 package struct tagXINPUT_STATE 6715 { 6716 /** 6717 * ボタン16個( 添字には XINPUT_BUTTON_DPAD_UP 等を使用する、0:押されていない 1:押されている ) 6718 */ 6719 ubyte[16] Buttons; 6720 6721 /** 6722 * 左トリガー( 0〜255 ) 6723 */ 6724 ubyte LeftTrigger; 6725 6726 /** 6727 * 右トリガー( 0〜255 ) 6728 */ 6729 ubyte RightTrigger; 6730 6731 /** 6732 * 左スティックの横軸値( -32768 〜 32767 ) 6733 */ 6734 short ThumbLX; 6735 6736 /** 6737 * 左スティックの縦軸値( -32768 〜 32767 ) 6738 */ 6739 short ThumbLY; 6740 6741 /** 6742 * 右スティックの横軸値( -32768 〜 32767 ) 6743 */ 6744 short ThumbRX; 6745 6746 /** 6747 * 右スティックの縦軸値( -32768 〜 32767 ) 6748 */ 6749 short ThumbRY; 6750 } 6751 6752 public alias XINPUT_STATE = .tagXINPUT_STATE; 6753 6754 /** 6755 * タッチパネルの1箇所分のタッチの情報 6756 */ 6757 package struct tagTOUCHINPUTPOINT 6758 { 6759 /** 6760 * タッチされたデバイス 6761 */ 6762 dxlib_d.dxdatatype.DWORD Device; 6763 6764 /** 6765 * タッチを判別するためのID 6766 */ 6767 dxlib_d.dxdatatype.DWORD ID; 6768 6769 /** 6770 * タッチされた座標X 6771 */ 6772 int PositionX; 6773 6774 /** 6775 * タッチされた座標Y 6776 */ 6777 int PositionY; 6778 } 6779 6780 public alias TOUCHINPUTPOINT = .tagTOUCHINPUTPOINT; 6781 6782 /** 6783 * タッチパネルのタッチの情報 6784 */ 6785 package struct tagTOUCHINPUTDATA 6786 { 6787 /** 6788 * 情報の時間 6789 */ 6790 dxlib_d.dxdatatype.LONGLONG Time; 6791 6792 /** 6793 * 有効なタッチ情報の数 6794 */ 6795 int PointNum; 6796 6797 /** 6798 * タッチ情報 6799 */ 6800 .TOUCHINPUTPOINT[TOUCHINPUTPOINT_MAX] Point; 6801 } 6802 6803 public alias TOUCHINPUTDATA = .tagTOUCHINPUTDATA; 6804 6805 /** 6806 * WinSockets使用時のアドレス指定用構造体 6807 */ 6808 package struct tagIPDATA 6809 { 6810 /** 6811 * アドレス値 6812 */ 6813 ubyte d1; 6814 6815 /** 6816 * アドレス値 6817 */ 6818 ubyte d2; 6819 6820 /** 6821 * アドレス値 6822 */ 6823 ubyte d3; 6824 6825 /** 6826 * アドレス値 6827 */ 6828 ubyte d4; 6829 } 6830 6831 public alias IPDATA = .tagIPDATA; 6832 public alias LPIPDATA = .tagIPDATA*; 6833 6834 package struct tagIPDATA_IPv6 6835 { 6836 union { 6837 ubyte[16] Byte; 6838 ushort[8] Word; 6839 } 6840 core.stdc.config.c_ulong ScopeID; 6841 } 6842 6843 public alias IPDATA_IPv6 = .tagIPDATA_IPv6; 6844 6845 /+ 6846 } 6847 6848 // 関数プロトタイプ宣言------------------------------------------------------------------ 6849 6850 //#ifdef WINDOWS_DESKTOP_OS 6851 version (Windows) { 6852 public import dxlib_d.dxfunctionwin; 6853 } 6854 6855 //#ifdef __ANDROID__ 6856 version (Android) { 6857 public import dxlib_d.dxfunctionandroid; 6858 } 6859 6860 //#ifdef __APPLE__ 6861 version (iOS) { 6862 //#include "TargetConditionals.h" 6863 6864 //#if TARGET_OS_IPHONE 6865 public import dxlib_d.dxfunctionios; 6866 //#endif 6867 } 6868 6869 extern (C++, DxLib) { 6870 +/ 6871 // DxSystem.cpp関数プロトタイプ宣言 6872 6873 // 初期化終了系関数 6874 6875 /** 6876 * ライブラリ初期化を行う 6877 */ 6878 extern int DxLib_Init(); 6879 6880 /** 6881 * ライブラリ使用の後始末を行う 6882 */ 6883 extern int DxLib_End(); 6884 6885 /** 6886 * ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Init の前に行った設定を無効化する( DxLib_Init の前でのみ有効 ) 6887 */ 6888 extern int DxLib_GlobalStructInitialize(); 6889 6890 /** 6891 * ライブラリが初期化されているかどうかを取得する 6892 * 6893 * Returns: TRUE:初期化されている FALSE:されていない 6894 */ 6895 extern int DxLib_IsInit(); 6896 6897 // エラー関係関数 6898 6899 /** 6900 * 最後に発生したエラーのエラーコードを取得する 6901 * 6902 * Returns: 0:エラーが発生していない、又はエラーコード出力に対応したエラーが発生していない 0以外:エラーコード、DX_ERRORCODE_WIN_DESKTOP_24BIT_COLOR など 6903 */ 6904 extern int GetLastErrorCode(); 6905 6906 /** 6907 * 最後に発生したエラーのエラーメッセージを指定の文字列バッファに取得する 6908 */ 6909 extern int GetLastErrorMessage(dxlib_d.dxdatatype.TCHAR* StringBuffer, int StringBufferBytes); 6910 6911 // メッセージ処理関数 6912 6913 /** 6914 * ウインドウズのメッセージループに代わる処理を行う 6915 */ 6916 extern int ProcessMessage(); 6917 6918 // 設定系関数 6919 6920 /** 6921 * アプリが非アクティブ状態でも処理を実行するかどうかを設定する 6922 * 6923 * Params: 6924 * Flag = TRUE:実行する FALSE:停止する( デフォルト ) 6925 */ 6926 extern int SetAlwaysRunFlag(int Flag); 6927 6928 // ウエイト系関数 6929 6930 /** 6931 * 指定の時間だけ処理をとめる 6932 */ 6933 extern int WaitTimer(int WaitTime); 6934 6935 version (DX_NON_INPUT) { 6936 } else { 6937 /** 6938 * キーの入力待ちを行う 6939 */ 6940 extern int WaitKey(); 6941 } 6942 6943 // カウンタ及び時刻取得系関数 6944 6945 /** 6946 * ミリ秒単位の精度を持つカウンタの現在の値を得る 6947 */ 6948 extern int GetNowCount(int UseRDTSCFlag = dxlib_d.dxdatatype.FALSE); 6949 6950 /** 6951 * GetNowCountの高精度バージョン( μ秒単位の精度を持つカウンタの現在の値を得る ) 6952 */ 6953 extern dxlib_d.dxdatatype.LONGLONG GetNowHiPerformanceCount(int UseRDTSCFlag = dxlib_d.dxdatatype.FALSE); 6954 6955 /** 6956 * OSが提供する高精度カウンタの現在の値を得る 6957 */ 6958 extern dxlib_d.dxdatatype.ULONGLONG GetNowSysPerformanceCount(); 6959 6960 /** 6961 * OSが提供する高精度カウンタの周波数( 1秒辺りのカウント数 )を得る 6962 */ 6963 extern dxlib_d.dxdatatype.ULONGLONG GetSysPerformanceFrequency(); 6964 6965 /** 6966 * OSが提供する高精度カウンタの値を秒の値に変換する 6967 */ 6968 extern dxlib_d.dxdatatype.ULONGLONG ConvSysPerformanceCountToSeconds(dxlib_d.dxdatatype.ULONGLONG Count); 6969 6970 /** 6971 * OSが提供する高精度カウンタの値をミリ秒の値に変換する 6972 */ 6973 extern dxlib_d.dxdatatype.ULONGLONG ConvSysPerformanceCountToMilliSeconds(dxlib_d.dxdatatype.ULONGLONG Count); 6974 6975 /** 6976 * OSが提供する高精度カウンタの値をマイクロ秒の値に変換する 6977 */ 6978 extern dxlib_d.dxdatatype.ULONGLONG ConvSysPerformanceCountToMicroSeconds(dxlib_d.dxdatatype.ULONGLONG Count); 6979 6980 /** 6981 * OSが提供する高精度カウンタの値をナノ秒の値に変換する 6982 */ 6983 extern dxlib_d.dxdatatype.ULONGLONG ConvSysPerformanceCountToNanoSeconds(dxlib_d.dxdatatype.ULONGLONG Count); 6984 6985 /** 6986 * 秒の値をOSが提供する高精度カウンタの値に変換する 6987 */ 6988 extern dxlib_d.dxdatatype.ULONGLONG ConvSecondsToSysPerformanceCount(dxlib_d.dxdatatype.ULONGLONG Seconds); 6989 6990 /** 6991 * ミリ秒の値をOSが提供する高精度カウンタの値に変換する 6992 */ 6993 extern dxlib_d.dxdatatype.ULONGLONG ConvMilliSecondsToSysPerformanceCount(dxlib_d.dxdatatype.ULONGLONG MilliSeconds); 6994 6995 /** 6996 * マイクロ秒の値をOSが提供する高精度カウンタの値に変換する 6997 */ 6998 extern dxlib_d.dxdatatype.ULONGLONG ConvMicroSecondsToSysPerformanceCount(dxlib_d.dxdatatype.ULONGLONG MicroSeconds); 6999 7000 /** 7001 * ナノ秒の値をOSが提供する高精度カウンタの値に変換する 7002 */ 7003 extern dxlib_d.dxdatatype.ULONGLONG ConvNanoSecondsToSysPerformanceCount(dxlib_d.dxdatatype.ULONGLONG NanoSeconds); 7004 7005 /** 7006 * 現在時刻を取得する 7007 */ 7008 extern int GetDateTime(.DATEDATA* DateBuf); 7009 7010 // 乱数取得 7011 7012 /** 7013 * 乱数を取得する 7014 * 7015 * Params: 7016 * RandMax = 返って来る値の最大値 7017 */ 7018 extern int GetRand(int RandMax); 7019 7020 /** 7021 * 乱数の初期値を設定する 7022 */ 7023 extern int SRand(int Seed); 7024 7025 // バッテリー関連 7026 7027 /** 7028 * 電池の残量を % で取得する 7029 * 7030 * Returns: 100:フル充電状態 0:充電残量無し 7031 */ 7032 extern int GetBatteryLifePercent(); 7033 7034 // クリップボード関係 7035 7036 /** 7037 * クリップボードに格納されているテキストデータを読み出す 7038 * 7039 * Params: 7040 * DestBuffer = 文字列を格納するバッファの先頭アドレス 7041 * 7042 * Returns: -1:クリップボードにテキストデータが無い -1以外:クリップボードに格納されている文字列データのサイズ( 単位:byte ) 7043 */ 7044 extern int GetClipboardText(dxlib_d.dxdatatype.TCHAR* DestBuffer); 7045 7046 /** 7047 * クリップボードにテキストデータを格納する 7048 */ 7049 extern int SetClipboardText(const (dxlib_d.dxdatatype.TCHAR)* Text); 7050 7051 /** 7052 * クリップボードにテキストデータを格納する 7053 */ 7054 extern int SetClipboardTextWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* Text, size_t TextLength); 7055 7056 // iniファイル関係 7057 7058 /** 7059 * GetPrivateProfileString のDXライブラリ版 7060 */ 7061 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 でデフォルト */); 7062 7063 /** 7064 * GetPrivateProfileString のDXライブラリ版 7065 */ 7066 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 でデフォルト */); 7067 7068 /** 7069 * GetPrivateProfileInt のDXライブラリ版 7070 */ 7071 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 でデフォルト */); 7072 7073 /** 7074 * GetPrivateProfileInt のDXライブラリ版 7075 */ 7076 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 でデフォルト */); 7077 7078 /** 7079 * GetPrivateProfileStringDx のメモリから読み込む版 7080 */ 7081 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 でデフォルト */); 7082 7083 /** 7084 * GetPrivateProfileStringDx のメモリから読み込む版 7085 */ 7086 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 でデフォルト */); 7087 7088 /** 7089 * GetPrivateProfileIntDx のメモリから読み込む版 7090 */ 7091 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 でデフォルト */); 7092 7093 /** 7094 * GetPrivateProfileIntDx のメモリから読み込む版 7095 */ 7096 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 でデフォルト */); 7097 7098 //#if defined(__APPLE__) || defined(__ANDROID__) 7099 version (iOS) { 7100 version = ENABLE_MAIL; 7101 } else version (Android) { 7102 version = ENABLE_MAIL; 7103 } 7104 7105 version (ENABLE_MAIL) { 7106 /** 7107 * メールアプリを送信メール編集状態で起動する 7108 * 7109 * Params: 7110 * MailAddr = 宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7111 * MailCCAddr = CC の宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7112 * MailBCCAddr = BCC の宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7113 * Subject = タイトル( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7114 * Text = 本文( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7115 */ 7116 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); 7117 7118 /** 7119 * メールアプリを送信メール編集状態で起動する 7120 * 7121 * Params: 7122 * MailAddr = 宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7123 * MailAddrLength = ? 7124 * MailCCAddr = CC の宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7125 * MailCCAddrLength = ? 7126 * MailBCCAddr = BCC の宛先( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7127 * MailBCCAddrLength = ? 7128 * Subject = タイトル( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7129 * Text = 本文( null で無効 )、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7130 */ 7131 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); 7132 } 7133 7134 // DxLog.cpp関数プロトタイプ宣言 7135 7136 version (DX_NON_LOG) { 7137 } else { 7138 // ログファイル関数 7139 7140 /** 7141 * ログファイル( Log.txt ) に文字列を出力する 7142 */ 7143 extern int LogFileAdd(const (dxlib_d.dxdatatype.TCHAR)* String); 7144 7145 /** 7146 * ログファイル( Log.txt ) に文字列を出力する 7147 */ 7148 extern int LogFileAddWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength); 7149 7150 /** 7151 * 書式付きで ログファイル( Log.txt ) に文字列を出力する( 書式は printf と同じ ) 7152 */ 7153 extern int LogFileFmtAdd(const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7154 7155 /** 7156 * ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を1つ増やす 7157 */ 7158 extern int LogFileTabAdd(); 7159 7160 /** 7161 * ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を1つ減らす 7162 */ 7163 extern int LogFileTabSub(); 7164 7165 /** 7166 * LogFileAdd の旧名称関数 7167 */ 7168 extern int ErrorLogAdd(const (dxlib_d.dxdatatype.TCHAR)* String); 7169 7170 /** 7171 * LogFileFmtAdd の旧名称関数 7172 */ 7173 extern int ErrorLogFmtAdd(const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7174 7175 /** 7176 * LogFileTabAdd の旧名称関数 7177 */ 7178 extern int ErrorLogTabAdd(); 7179 7180 /** 7181 * LogFileTabSub の旧名称関数 7182 */ 7183 extern int ErrorLogTabSub(); 7184 7185 /** 7186 * ログファイル( Log.txt ) に出力する文字列の前に起動してからの時間を付けるかどうかを設定する 7187 * 7188 * Params: 7189 * UseFlag = TRUE:付ける( デフォルト) FALSE:付けない 7190 */ 7191 extern int SetUseTimeStampFlag(int UseFlag); 7192 7193 /** 7194 * LogFileFmtAdd と同じ機能の関数 7195 */ 7196 extern int AppLogAdd(const (dxlib_d.dxdatatype.TCHAR)* String, ...); 7197 7198 // ログ出力設定関数 7199 7200 /** 7201 * ログファイル( Log.txt ) を作成するかどうかを設定する、DxLib_Init の前でのみ使用可能 7202 * 7203 * Params: 7204 * Flag = TRUE:作成する( デフォルト ) FALSE:作成しない 7205 */ 7206 extern int SetOutApplicationLogValidFlag(int Flag); 7207 7208 /** 7209 * ログファイルの名前を設定する( Log.txt 以外にしたい場合に使用 ) 7210 */ 7211 extern int SetApplicationLogFileName(const (dxlib_d.dxdatatype.TCHAR)* FileName); 7212 7213 /** 7214 * ログファイルの名前を設定する( Log.txt 以外にしたい場合に使用 ) 7215 */ 7216 extern int SetApplicationLogFileNameWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 7217 7218 /** 7219 * ログファイル( Log.txt ) を保存するディレクトリパスを設定する 7220 */ 7221 extern int SetApplicationLogSaveDirectory(const (dxlib_d.dxdatatype.TCHAR)* DirectoryPath); 7222 7223 /** 7224 * ログファイル( Log.txt ) を保存するディレクトリパスを設定する 7225 */ 7226 extern int SetApplicationLogSaveDirectoryWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* DirectoryPath, size_t DirectoryPathLength); 7227 7228 /** 7229 * ログファイル名に日付をつけるかどうかをセットする 7230 * 7231 * Params: 7232 * Flag = TRUE:付ける FALSE:付けない( デフォルト ) 7233 */ 7234 extern int SetUseDateNameLogFile(int Flag); 7235 7236 version (DX_NON_PRINTF_DX) { 7237 } else { 7238 // ログ出力機能関数 7239 7240 /** 7241 * printfDx の結果を画面に出力するかどうかを設定する、TRUE:出力を行う FALSE:出力を行わない( printfDx を実行すると内部で SetLogDrawOutFlag(TRUE); が呼ばれます ) 7242 */ 7243 extern int SetLogDrawOutFlag(int DrawFlag); 7244 7245 /** 7246 * printfDx の結果を画面に出力するかどうかの設定を取得する 7247 * 7248 * Returns: TRUE:出力を行う FALSE:出力を行わない 7249 */ 7250 extern int GetLogDrawFlag(); 7251 7252 /** 7253 * printfDx の結果を画面に出力する際に使用するフォントのサイズを設定する 7254 */ 7255 extern int SetLogFontSize(int Size); 7256 7257 /** 7258 * printfDx の結果を画面に出力する際に使用するフォントのハンドルを変更する 7259 */ 7260 extern int SetLogFontHandle(int FontHandle); 7261 7262 /** 7263 * printfDx の結果を画面に出力する際の描画する領域を設定する 7264 */ 7265 extern int SetLogDrawArea(int x1, int y1, int x2, int y2); 7266 7267 // 簡易画面出力関数 7268 7269 /** 7270 * printf と同じ引数で画面に文字列を表示するための関数 7271 */ 7272 extern int printfDx(const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7273 7274 /** 7275 * puts と同じ引数で画面に文字列を表示するための関数 7276 */ 7277 extern int putsDx(const (dxlib_d.dxdatatype.TCHAR)* String, int NewLine = dxlib_d.dxdatatype.TRUE); 7278 7279 /** 7280 * puts と同じ引数で画面に文字列を表示するための関数 7281 */ 7282 extern int putsDxWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int NewLine = dxlib_d.dxdatatype.TRUE); 7283 7284 /** 7285 * printfDx の結果をリセットするための関数 7286 */ 7287 extern int clsDx(); 7288 } 7289 } 7290 7291 version (DX_NON_ASYNCLOAD) { 7292 } else { 7293 // DxASyncLoad.cpp関数プロトタイプ宣言 7294 7295 // 非同期読み込み関係 7296 7297 /** 7298 * 読み込み処理系の関数で非同期読み込みを行うかどうかを設定する( 非同期読み込みに対応している関数のみ有効 ) 7299 * 7300 * Params: 7301 * Flag = TRUE:非同期読み込みを行う FALSE:非同期読み込みを行わない( デフォルト ) 7302 */ 7303 extern int SetUseASyncLoadFlag(int Flag); 7304 7305 /** 7306 * 読み込み処理系の関数で非同期読み込みを行うかどうかを取得する( 非同期読み込みに対応している関数のみ有効 ) 7307 * 7308 * Returns: TRUE:非同期読み込みを行う FALSE:非同期読み込みを行わない( デフォルト ) 7309 */ 7310 extern int GetUseASyncLoadFlag(); 7311 7312 /** 7313 * ハンドルの非同期読み込みが完了しているかどうかを取得する 7314 * 7315 * Returns: TRUE:まだ完了していない FALSE:完了している -1:エラー 7316 */ 7317 extern int CheckHandleASyncLoad(int Handle); 7318 7319 /** 7320 * ハンドルの非同期読み込み処理の戻り値を取得する( 非同期読み込み中の場合は1つ前の非同期読み込み処理の戻り値が返ってきます ) 7321 */ 7322 extern int GetHandleASyncLoadResult(int Handle); 7323 7324 /** 7325 * ハンドルの非同期読み込み処理が完了したらハンドルを削除するフラグを立てる 7326 */ 7327 extern int SetASyncLoadFinishDeleteFlag(int Handle); 7328 7329 /** 7330 * 非同期読み込み中の処理の数を取得する 7331 */ 7332 extern int GetASyncLoadNum(); 7333 7334 /** 7335 * 非同期読み込み処理を行うスレッドの数を設定する( ThreadNum に指定できる数は 1 〜 32 ) 7336 */ 7337 extern int SetASyncLoadThreadNum(int ThreadNum); 7338 } 7339 7340 // DxHandle.cpp関数プロトタイプ宣言 7341 7342 /** 7343 * ハンドルが削除されたときに-1が設定される変数を登録する 7344 */ 7345 extern int SetDeleteHandleFlag(int Handle, int* DeleteFlag); 7346 7347 // マウス関係関数 7348 7349 /** 7350 * マウスポインタの表示状態を設定する( DispFlag:マウスポインタを表示するかどうか 7351 * 7352 * Params: 7353 * DispFlag = TRUE:表示する FALSE:表示しない 7354 */ 7355 extern int SetMouseDispFlag(int DispFlag); 7356 7357 version (DX_NON_INPUT) { 7358 } else { 7359 /** 7360 * マウスポインタの位置を取得する 7361 */ 7362 extern int GetMousePoint(int* XBuf, int* YBuf); 7363 7364 /** 7365 * マウスポインタの位置を設定する 7366 */ 7367 extern int SetMousePoint(int PointX, int PointY); 7368 7369 /** 7370 * マウスのボタンの押下状態を取得する 7371 */ 7372 extern int GetMouseInput(); 7373 7374 /** 7375 * 垂直マウスホイールの回転量を取得する 7376 */ 7377 extern int GetMouseWheelRotVol(int CounterReset = dxlib_d.dxdatatype.TRUE); 7378 7379 /** 7380 * 水平マウスホイールの回転量を取得する 7381 */ 7382 extern int GetMouseHWheelRotVol(int CounterReset = dxlib_d.dxdatatype.TRUE); 7383 7384 /** 7385 * 垂直マウスホイールの回転量を取得する( 戻り値が float 型 ) 7386 */ 7387 extern float GetMouseWheelRotVolF(int CounterReset = dxlib_d.dxdatatype.TRUE); 7388 7389 /** 7390 * 水平マウスホイールの回転量を取得する( 戻り値が float 型 ) 7391 */ 7392 extern float GetMouseHWheelRotVolF(int CounterReset = dxlib_d.dxdatatype.TRUE); 7393 7394 /** 7395 * マウスのボタンを押した情報を1つ取得する 7396 * 7397 * Params: 7398 * Button = 押されたボタン( MOUSE_INPUT_LEFT 等 )を格納する変数のアドレス 7399 * ClickX = 押された時のX座標を格納する変数のアドレス 7400 * ClickY = 押された時のY座標を格納する変数のアドレス 7401 * LogDelete = 取得した押下情報1つ分をログから削除するかどうか( TRUE:削除する FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる ) 7402 * 7403 * Returns: 0:押された情報取得できた -1:押された情報が無かった、つまり前回の呼び出し( または起動時から最初の呼び出し )の間に一度もマウスのボタンが押されなかった 7404 */ 7405 extern int GetMouseInputLog(int* Button, int* ClickX, int* ClickY, int LogDelete = dxlib_d.dxdatatype.TRUE); 7406 7407 /** 7408 * マウスのボタンを押したり離したりした情報を1つ取得する 7409 * 7410 * Params: 7411 * Button = 押されたり離されたりしたボタン( MOUSE_INPUT_LEFT 等 )を格納する変数のアドレス 7412 * ClickX = 押されたり離されたりした時のX座標を格納する変数のアドレス 7413 * ClickY = 押されたり離されたりした時のY座標を格納する変数のアドレス 7414 * LogType = 押されたのか( MOUSE_INPUT_LOG_DOWN )離されたのか( MOUSE_INPUT_LOG_UP )、等の情報を格納する変数のアドレス 7415 * LogDelete = 取得した押されたり離されたりした情報1つ分をログから削除するかどうか( TRUE:削除する FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる ) 7416 * 7417 * Returns: 0:押されたり離されたりした情報取得できた -1:押されたり離されたりした情報が無かった、つまり前回の呼び出し( または起動時から最初の呼び出し )の間に一度もマウスのボタンが押されたり離されたりしなかった 7418 */ 7419 extern int GetMouseInputLog2(int* Button, int* ClickX, int* ClickY, int* LogType, int LogDelete = dxlib_d.dxdatatype.TRUE); 7420 } 7421 7422 // タッチパネル入力関係関数 7423 version (DX_NON_INPUT) { 7424 } else { 7425 /** 7426 * タッチされている数を取得する 7427 */ 7428 extern int GetTouchInputNum(); 7429 7430 /** 7431 * タッチの情報を取得する 7432 */ 7433 extern int GetTouchInput(int InputNo, int* PositionX, int* PositionY, int* ID = null, int* Device = null); 7434 7435 /** 7436 * ストックされているタッチ情報の数を取得する 7437 */ 7438 extern int GetTouchInputLogNum(); 7439 7440 /** 7441 * ストックされているタッチ情報をクリアする 7442 */ 7443 extern int ClearTouchInputLog(); 7444 7445 /** 7446 * ストックされているタッチ情報から一番古い情報をひとつ取得する 7447 */ 7448 extern .TOUCHINPUTDATA GetTouchInputLogOne(int PeekFlag = dxlib_d.dxdatatype.FALSE); 7449 7450 /** 7451 * ストックされているタッチ情報から古い順に指定数バッファに取得する 7452 * 7453 * Returns: -1:エラー 0以上:取得した情報の数 7454 */ 7455 extern int GetTouchInputLog(.TOUCHINPUTDATA* TouchData, int GetNum, int PeekFlag = dxlib_d.dxdatatype.FALSE); 7456 7457 /** 7458 * ストックされているタッチされ始めた情報の数を取得する 7459 */ 7460 extern int GetTouchInputDownLogNum(); 7461 7462 /** 7463 * ストックされているタッチされ始めた情報をクリアする 7464 */ 7465 extern int ClearTouchInputDownLog(); 7466 7467 /** 7468 * ストックされているタッチされ始めた情報から一番古い情報をひとつ取得する 7469 */ 7470 extern .TOUCHINPUTPOINT GetTouchInputDownLogOne(int PeekFlag = dxlib_d.dxdatatype.FALSE); 7471 7472 /** 7473 * ストックされているタッチされ始めた情報から古い順に指定数バッファに取得する 7474 * 7475 * Returns: -1:エラー 0以上:取得した情報の数 7476 */ 7477 extern int GetTouchInputDownLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.dxdatatype.FALSE); 7478 7479 /** 7480 * ストックされているタッチが離された情報の数を取得する 7481 */ 7482 extern int GetTouchInputUpLogNum(); 7483 7484 /** 7485 * ストックされているタッチが離された情報をクリアする 7486 */ 7487 extern int ClearTouchInputUpLog(); 7488 7489 /** 7490 * ストックされているタッチが離された情報から一番古い情報をひとつ取得する 7491 */ 7492 extern .TOUCHINPUTPOINT GetTouchInputUpLogOne(int PeekFlag = dxlib_d.dxdatatype.FALSE); 7493 7494 /** 7495 * ストックされているタッチが離された情報から古い順に指定数バッファに取得する 7496 * 7497 * Returns: -1:エラー 0以上:取得した情報の数 7498 */ 7499 extern int GetTouchInputUpLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.dxdatatype.FALSE); 7500 } 7501 7502 // DxMemory.cpp関数プロトタイプ宣言 7503 7504 // メモリ確保系関数 7505 7506 /** 7507 * 指定のサイズのメモリを確保する 7508 * 7509 * Params: 7510 * AllocSize = 確保するメモリのサイズ( 単位:byte ) 7511 * File = DxAllocを呼んだソースファイル名( デバッグ用 ) 7512 * Line = DxAllocを呼んだソースファイル中の行番号( デバッグ用 ) 7513 * 7514 * Returns: null:メモリの確保失敗 NULL以外:確保したメモリ領域の先頭アドレス 7515 */ 7516 extern void* DxAlloc(size_t AllocSize, const (char)* File = null, int Line = -1); 7517 7518 /** 7519 * 指定のサイズのメモリを確保する( アライン指定版 ) 7520 * 7521 * Params: 7522 * AllocSize = 確保するメモリのサイズ( 単位:byte ) 7523 * Alignment = 確保するメモリ領域のアドレス値の倍数 7524 * File = DxAllocを呼んだソースファイル名( デバッグ用 ) 7525 * Line = DxAllocを呼んだソースファイル中の行番号( デバッグ用 ) 7526 * 7527 * Returns: null:メモリの確保失敗 NULL以外:確保したメモリ領域の先頭アドレス 7528 */ 7529 extern void* DxAllocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7530 7531 /** 7532 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外は DxAlloc と動作は同じ 7533 */ 7534 extern void* DxCalloc(size_t AllocSize, const (char)* File = null, int Line = -1); 7535 7536 /** 7537 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外は DxAllocAligned と動作は同じ 7538 */ 7539 extern void* DxCallocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7540 7541 /** 7542 * メモリの再確保を行う( FileとLine の説明は DxAlloc の注釈の通り ) 7543 * 7544 * Params: 7545 * Memory = 再確保を行うメモリ領域の先頭アドレス( DxAlloc の戻り値 ) 7546 * AllocSize = 新しい確保サイズ 7547 * File = ? 7548 * Line = ? 7549 * 7550 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス 7551 */ 7552 extern void* DxRealloc(void* Memory, size_t AllocSize, const (char)* File = null, int Line = -1); 7553 7554 /** 7555 * メモリの再確保を行う( アライン指定版 )( FileとLine の説明は DxAlloc の注釈の通り ) 7556 * 7557 * Params: 7558 * Memory = 再確保を行うメモリ領域の先頭アドレス( DxAlloc の戻り値 ) 7559 * AllocSize = 新しい確保サイズ 7560 * Alignment = 新しく確保するメモリ領域のアドレス値の倍数 7561 * File = ? 7562 * Line = ? 7563 * 7564 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス 7565 */ 7566 extern void* DxReallocAligned(void* Memory, size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7567 7568 /** 7569 * メモリを解放する 7570 * 7571 * Params: 7572 * Memory = 解放するメモリ領域の先頭アドレス( DxAlloc の戻り値 ) 7573 */ 7574 extern void DxFree(void* Memory); 7575 7576 /** 7577 * 列挙対象にするメモリの確保容量をセットする 7578 */ 7579 extern size_t DxSetAllocSizeTrap(size_t Size); 7580 7581 /** 7582 * DXライブラリ内でメモリ確保が行われる時に情報を出力するかどうかをセットする 7583 */ 7584 extern int DxSetAllocPrintFlag(int Flag); 7585 7586 /** 7587 * DxAlloc や DxCalloc で確保しているメモリサイズを取得する 7588 */ 7589 extern size_t DxGetAllocSize(); 7590 7591 /** 7592 * DxAlloc や DxCalloc で確保しているメモリの数を取得する 7593 */ 7594 extern int DxGetAllocNum(); 7595 7596 /** 7597 * DxAlloc や DxCalloc で確保しているメモリを列挙する 7598 */ 7599 extern void DxDumpAlloc(); 7600 7601 /** 7602 * DxAlloc や DxCalloc で確保しているメモリの状況を描画する 7603 */ 7604 extern void DxDrawAlloc(int x, int y, int Width, int Height); 7605 7606 /** 7607 * 確保したメモリ情報が破壊されていないか調べる 7608 * 7609 * Returns: -1:破壊あり 0:なし 7610 */ 7611 extern int DxErrorCheckAlloc(); 7612 7613 /** 7614 * メモリが確保、解放が行われる度に確保しているメモリの容量を出力するかどうかのフラグをセットする 7615 */ 7616 extern int DxSetAllocSizeOutFlag(int Flag); 7617 7618 /** 7619 * メモリの確保、解放が行われる度に確保しているメモリ確保情報が破損していないか調べるかどうかのフラグをセットする 7620 */ 7621 extern int DxSetAllocMemoryErrorCheckFlag(int Flag); 7622 7623 // DxBaseFunc.cpp 関数プロトタイプ宣言 7624 7625 // 文字コード関係 7626 7627 /** 7628 * 文字列の先頭の文字のバイト数を取得する 7629 * 7630 * Params: 7631 * CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS 等 7632 * String = ? 7633 */ 7634 extern int GetCharBytes(int CharCodeFormat, const (void)* String); 7635 7636 /** 7637 * 文字列の文字コード形式を別の文字コード形式に変換する 7638 * 7639 * Params: 7640 * SrcCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS 等 7641 * SrcString = ? 7642 * DestCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS 等 7643 * DestStringBuffer = ? 7644 */ 7645 extern int ConvertStringCharCodeFormat(int SrcCharCodeFormat, const (void)* SrcString, int DestCharCodeFormat, void* DestStringBuffer); 7646 7647 /** 7648 * 文字列の引数の文字コード形式を設定する( 文字列描画系関数とその他一部関数を除く )( UNICODE版では無効 ) 7649 * 7650 * Params: 7651 * CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS 等 7652 */ 7653 extern int SetUseCharCodeFormat(int CharCodeFormat); 7654 7655 /** 7656 * 文字列の引数の文字コード形式を取得する( UNICODE版では無効 ) 7657 * 7658 * Returns: 文字コード形式( DX_CHARCODEFORMAT_SHIFTJIS 等 ) 7659 */ 7660 extern int GetUseCharCodeFormat(); 7661 7662 /** 7663 * wchar_t型の文字コード形式を取得する 7664 * 7665 * Returns: DX_CHARCODEFORMAT_UTF16LE など 7666 */ 7667 extern int Get_wchar_t_CharCodeFormat(); 7668 7669 // 文字列関係 7670 7671 /** 7672 * strcpy と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7673 */ 7674 extern void strcpyDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src); 7675 7676 /** 7677 * strcpy_s と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7678 */ 7679 extern void strcpy_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src); 7680 7681 /** 7682 * 位置指定付き strcpy、Pos はコピー開始位置 ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7683 */ 7684 extern void strpcpyDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos); 7685 7686 /** 7687 * 位置指定付き strcpy_s、Pos はコピー開始位置 ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7688 */ 7689 extern void strpcpy_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos); 7690 7691 /** 7692 * 位置指定付き strcpy、Pos はコピー開始位置( 全角文字も 1 扱い ) ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7693 */ 7694 extern void strpcpy2Dx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos); 7695 7696 /** 7697 * 位置指定付き strcpy_s、Pos はコピー開始位置( 全角文字も 1 扱い ) ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7698 */ 7699 extern void strpcpy2_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos); 7700 7701 /** 7702 * strncpy と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7703 */ 7704 extern void strncpyDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7705 7706 /** 7707 * strncpy_s と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7708 */ 7709 extern void strncpy_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7710 7711 /** 7712 * strncpy の Num が文字数( 全角文字も 1 扱い )になったもの、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7713 */ 7714 extern void strncpy2Dx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7715 7716 /** 7717 * strncpy_s の Num が文字数( 全角文字も 1 扱い )になったもの、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7718 */ 7719 extern void strncpy2_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7720 7721 /** 7722 * strncpy の文字列の終端からの文字数指定版( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7723 */ 7724 extern void strrncpyDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7725 7726 /** 7727 * strncpy_s の文字列の終端からの文字数指定版( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7728 */ 7729 extern void strrncpy_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7730 7731 /** 7732 * strncpy の文字列の終端からの文字数( 全角文字も 1 扱い )指定版、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7733 */ 7734 extern void strrncpy2Dx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7735 7736 /** 7737 * strncpy_s の文字列の終端からの文字数( 全角文字も 1 扱い )指定版、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7738 */ 7739 extern void strrncpy2_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Num); 7740 7741 /** 7742 * strncpy のコピー開始位置指定版、Pos はコピー開始位置、Num は文字数( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7743 */ 7744 extern void strpncpyDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos, int Num); 7745 7746 /** 7747 * strncpy_s のコピー開始位置指定版、Pos はコピー開始位置、Num は文字数( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7748 */ 7749 extern void strpncpy_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos, int Num); 7750 7751 /** 7752 * strncpy のコピー開始位置指定版、Pos はコピー開始位置( 全角文字も 1 扱い )、Num は文字数( 全角文字も 1 扱い )、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7753 */ 7754 extern void strpncpy2Dx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos, int Num); 7755 7756 /** 7757 * strncpy_s のコピー開始位置指定版、Pos はコピー開始位置( 全角文字も 1 扱い )、Num は文字数( 全角文字も 1 扱い )、終端に必ずヌル文字が代入される( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7758 */ 7759 extern void strpncpy2_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src, int Pos, int Num); 7760 7761 /** 7762 * strcat と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7763 */ 7764 extern void strcatDx(dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* Src); 7765 7766 /** 7767 * strcat_s と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7768 */ 7769 extern void strcat_sDx(dxlib_d.dxdatatype.TCHAR* Dest, size_t DestBytes, const (dxlib_d.dxdatatype.TCHAR)* Src); 7770 7771 /** 7772 * strlen と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7773 */ 7774 extern size_t strlenDx(const (dxlib_d.dxdatatype.TCHAR)* Str); 7775 7776 /** 7777 * strlen の戻り値が文字数( 全角文字も 1 扱い )になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7778 */ 7779 extern size_t strlen2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str); 7780 7781 /** 7782 * strcmp と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7783 */ 7784 extern int strcmpDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7785 7786 /** 7787 * stricmp と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7788 */ 7789 extern int stricmpDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7790 7791 /** 7792 * strncmp と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7793 */ 7794 extern int strncmpDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2, int Num); 7795 7796 /** 7797 * strncmp の Num が文字数( 全角文字も 1 扱い )になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7798 */ 7799 extern int strncmp2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2, int Num); 7800 7801 /** 7802 * strncmp の比較開始位置指定版、Pos が Str1 の比較開始位置、Num が文字数( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7803 */ 7804 extern int strpncmpDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2, int Pos, int Num); 7805 7806 /** 7807 * strncmp の比較開始位置指定版、Pos が Str1 の比較開始位置( 全角文字も 1 扱い )、Num が文字数( 全角文字も 1 扱い )( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7808 */ 7809 extern int strpncmp2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2, int Pos, int Num); 7810 7811 /** 7812 * 文字列の指定の位置の文字コードを取得する、Pos は取得する位置、CharNums は文字数を代入する変数のアドレス 7813 * 7814 * Returns: 文字コード( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7815 */ 7816 extern dxlib_d.dxdatatype.DWORD strgetchrDx(const (dxlib_d.dxdatatype.TCHAR)* Str, int Pos, int* CharNums = null); 7817 7818 /** 7819 * 文字列の指定の位置の文字コードを取得する、Pos は取得する位置( 全角文字も 1 扱い )、CharNums は文字数を代入する変数のアドレス、 7820 * 7821 * Returns: 文字コード( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7822 */ 7823 extern dxlib_d.dxdatatype.DWORD strgetchr2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str, int Pos, int* CharNums = null); 7824 7825 /** 7826 * 文字列の指定の位置に文字コードを書き込む、Pos は書き込む位置、CharCode は文字コード 7827 * 7828 * Returns: 書き込んだ文字数( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7829 */ 7830 extern int strputchrDx(dxlib_d.dxdatatype.TCHAR* Str, int Pos, dxlib_d.dxdatatype.DWORD CharCode); 7831 7832 /** 7833 * 文字列の指定の位置に文字コードを書き込む、Pos は書き込む位置( 全角文字も 1 扱い )、CharCode は文字コード 7834 * 7835 * Returns: 書き込んだ文字数( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7836 */ 7837 extern int strputchr2Dx(dxlib_d.dxdatatype.TCHAR* Str, int Pos, dxlib_d.dxdatatype.DWORD CharCode); 7838 7839 /** 7840 * 文字列の指定の位置のアドレスを取得する、Pos は取得する位置 ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7841 */ 7842 extern const (dxlib_d.dxdatatype.TCHAR)* strposDx(const (dxlib_d.dxdatatype.TCHAR)* Str, int Pos); 7843 7844 /** 7845 * 文字列の指定の位置のアドレスを取得する、Pos は取得する位置( 全角文字も 1 扱い ) ( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7846 */ 7847 extern const (dxlib_d.dxdatatype.TCHAR)* strpos2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str, int Pos); 7848 7849 /** 7850 * strstr と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7851 */ 7852 extern const (dxlib_d.dxdatatype.TCHAR)* strstrDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7853 7854 /** 7855 * strstr の戻り値が文字列先頭からの文字数( 全角文字も 1 扱い ) になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7856 */ 7857 extern int strstr2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7858 7859 /** 7860 * strrstr と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7861 */ 7862 extern const (dxlib_d.dxdatatype.TCHAR)* strrstrDx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7863 7864 /** 7865 * strrstr の戻り値が文字列先頭からの文字数( 全角文字も 1 扱い ) になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7866 */ 7867 extern int strrstr2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str1, const (dxlib_d.dxdatatype.TCHAR)* Str2); 7868 7869 /** 7870 * strchr と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7871 */ 7872 extern const (dxlib_d.dxdatatype.TCHAR)* strchrDx(const (dxlib_d.dxdatatype.TCHAR)* Str, dxlib_d.dxdatatype.DWORD CharCode); 7873 7874 /** 7875 * strchr の戻り値が文字列先頭からの文字数( 全角文字も 1 扱い ) になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7876 */ 7877 extern int strchr2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str, dxlib_d.dxdatatype.DWORD CharCode); 7878 7879 /** 7880 * strrchr と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7881 */ 7882 extern const (dxlib_d.dxdatatype.TCHAR)* strrchrDx(const (dxlib_d.dxdatatype.TCHAR)* Str, dxlib_d.dxdatatype.DWORD CharCode); 7883 7884 /** 7885 * strrchr の戻り値が文字列先頭からの文字数( 全角文字も 1 扱い ) になったもの( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7886 */ 7887 extern int strrchr2Dx(const (dxlib_d.dxdatatype.TCHAR)* Str, dxlib_d.dxdatatype.DWORD CharCode); 7888 7889 /** 7890 * strupr と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7891 */ 7892 extern dxlib_d.dxdatatype.TCHAR* struprDx(dxlib_d.dxdatatype.TCHAR* Str); 7893 7894 /** 7895 * vsprintf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7896 */ 7897 extern int vsprintfDx(dxlib_d.dxdatatype.TCHAR* Buffer, const (dxlib_d.dxdatatype.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7898 7899 /** 7900 * vsnprintf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7901 */ 7902 extern int vsnprintfDx(dxlib_d.dxdatatype.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.dxdatatype.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7903 7904 /** 7905 * sprintf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7906 */ 7907 extern int sprintfDx(dxlib_d.dxdatatype.TCHAR* Buffer, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7908 7909 /** 7910 * snprintf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7911 */ 7912 extern int snprintfDx(dxlib_d.dxdatatype.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7913 7914 /** 7915 * itoa と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7916 */ 7917 extern dxlib_d.dxdatatype.TCHAR* itoaDx(int Value, dxlib_d.dxdatatype.TCHAR* Buffer, int Radix); 7918 7919 /** 7920 * itoa_s と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7921 */ 7922 extern dxlib_d.dxdatatype.TCHAR* itoa_sDx(int Value, dxlib_d.dxdatatype.TCHAR* Buffer, size_t BufferBytes, int Radix); 7923 7924 /** 7925 * atoi と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7926 */ 7927 extern int atoiDx(const (dxlib_d.dxdatatype.TCHAR)* Str); 7928 7929 /** 7930 * atof と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7931 */ 7932 extern double atofDx(const (dxlib_d.dxdatatype.TCHAR)* Str); 7933 7934 /** 7935 * vsscanf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7936 */ 7937 extern int vsscanfDx(const (dxlib_d.dxdatatype.TCHAR)* String, const (dxlib_d.dxdatatype.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7938 7939 /** 7940 * sscanf と同等の機能( マルチバイト文字列版では文字コード形式として SetUseCharCodeFormat で設定した形式が使用されます ) 7941 */ 7942 extern int sscanfDx(const (dxlib_d.dxdatatype.TCHAR)* String, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 7943 7944 // DxNetwork.cpp関数プロトタイプ宣言 7945 7946 version (DX_NON_NETWORK) { 7947 } else { 7948 // 通信関係 7949 7950 /** 7951 * 通信メッセージの処理をする関数 7952 */ 7953 extern int ProcessNetMessage(int RunReleaseProcess = dxlib_d.dxdatatype.FALSE); 7954 7955 /** 7956 * DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv4版 ) 7957 */ 7958 extern int GetHostIPbyName(const (dxlib_d.dxdatatype.TCHAR)* HostName, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7959 7960 /** 7961 * DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv4版 ) 7962 */ 7963 extern int GetHostIPbyNameWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* HostName, size_t HostNameLength, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7964 7965 /** 7966 * DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv6版 ) 7967 */ 7968 extern int GetHostIPbyName_IPv6(const (dxlib_d.dxdatatype.TCHAR)* HostName, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7969 7970 /** 7971 * DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv6版 ) 7972 */ 7973 extern int GetHostIPbyName_IPv6WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* HostName, size_t HostNameLength, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7974 7975 /** 7976 * 他マシンに接続する( IPv4版 ) 7977 */ 7978 extern int ConnectNetWork(.IPDATA IPData, int Port = -1); 7979 7980 /** 7981 * 他マシンに接続する( IPv6版 ) 7982 */ 7983 extern int ConnectNetWork_IPv6(.IPDATA_IPv6 IPData, int Port = -1); 7984 7985 /** 7986 * 他マシンに接続する( IPv4版 )、非同期版 7987 */ 7988 extern int ConnectNetWork_ASync(.IPDATA IPData, int Port = -1); 7989 7990 /** 7991 * 他マシンに接続する( IPv6版 )、非同期版 7992 */ 7993 extern int ConnectNetWork_IPv6_ASync(.IPDATA_IPv6 IPData, int Port = -1); 7994 7995 /** 7996 * 接続を受けられる状態にする( IPv4版 ) 7997 */ 7998 extern int PreparationListenNetWork(int Port = -1); 7999 8000 /** 8001 * 接続を受けられる状態にする( IPv6版 ) 8002 */ 8003 extern int PreparationListenNetWork_IPv6(int Port = -1); 8004 8005 /** 8006 * 接続を受けつけ状態の解除 8007 */ 8008 extern int StopListenNetWork(); 8009 8010 /** 8011 * 接続を終了する 8012 */ 8013 extern int CloseNetWork(int NetHandle); 8014 8015 /** 8016 * 接続状態を取得する 8017 */ 8018 extern int GetNetWorkAcceptState(int NetHandle); 8019 8020 /** 8021 * 受信データの量を得る 8022 */ 8023 extern int GetNetWorkDataLength(int NetHandle); 8024 8025 /** 8026 * 未送信のデータの量を得る 8027 */ 8028 extern int GetNetWorkSendDataLength(int NetHandle); 8029 8030 /** 8031 * 新たに接続した通信回線を得る 8032 */ 8033 extern int GetNewAcceptNetWork(); 8034 8035 /** 8036 * 接続を切断された通信回線を得る 8037 */ 8038 extern int GetLostNetWork(); 8039 8040 /** 8041 * 接続先のIPを得る( IPv4版 ) 8042 */ 8043 extern int GetNetWorkIP(int NetHandle, .IPDATA* IpBuf); 8044 8045 /** 8046 * 接続先のIPを得る( IPv6版 ) 8047 */ 8048 extern int GetNetWorkIP_IPv6(int NetHandle, .IPDATA_IPv6* IpBuf); 8049 8050 /** 8051 * 自分のIPv4を得る 8052 */ 8053 extern int GetMyIPAddress(.IPDATA* IpBuf, int IpBufLength = 1, int* IpNum = null); 8054 8055 /** 8056 * 自分のIPv6を得る 8057 */ 8058 extern int GetMyIPAddress_IPv6(.IPDATA_IPv6* IpBuf, int IpBufLength = 1, int* IpNum = null); 8059 8060 /** 8061 * 接続のタイムアウトまでの時間を設定する 8062 */ 8063 extern int SetConnectTimeOutWait(int Time); 8064 8065 /** 8066 * DXライブラリの通信形態を使うかどうかをセットする 8067 */ 8068 extern int SetUseDXNetWorkProtocol(int Flag); 8069 8070 /** 8071 * DXライブラリの通信形態を使うかどうかを取得する 8072 */ 8073 extern int GetUseDXNetWorkProtocol(); 8074 8075 /** 8076 * SetUseDXNetWorkProtocol の別名 8077 */ 8078 extern int SetUseDXProtocol(int Flag); 8079 8080 /** 8081 * GetUseDXNetWorkProtocol の別名 8082 */ 8083 extern int GetUseDXProtocol(); 8084 8085 /** 8086 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグをセットする 8087 */ 8088 extern int SetNetWorkCloseAfterLostFlag(int Flag); 8089 8090 /** 8091 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグを取得する 8092 */ 8093 extern int GetNetWorkCloseAfterLostFlag(); 8094 8095 /* 8096 * HTTP通信で使用するプロキシ設定を行う 8097 */ 8098 //extern int SetProxySetting(int UseFlag, const (char)* Address, int Port); 8099 8100 /* 8101 * HTTP通信で使用するプロキシ設定を取得する 8102 */ 8103 //extern int GetProxySetting(int* UseFlagBuffer, char* AddressBuffer, int* PortBuffer); 8104 8105 /* 8106 * IEのプロキシ設定を適応する 8107 */ 8108 //extern int SetIEProxySetting(void); 8109 8110 /** 8111 * 受信したデータを読み込む 8112 */ 8113 extern int NetWorkRecv(int NetHandle, void* Buffer, int Length); 8114 8115 /** 8116 * 受信したデータを読み込む、読み込んだデータはバッファから削除されない 8117 */ 8118 extern int NetWorkRecvToPeek(int NetHandle, void* Buffer, int Length); 8119 8120 /** 8121 * 受信したデータをクリアする 8122 */ 8123 extern int NetWorkRecvBufferClear(int NetHandle); 8124 8125 /** 8126 * データを送信する 8127 */ 8128 extern int NetWorkSend(int NetHandle, const (void)* Buffer, int Length); 8129 8130 /** 8131 * UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります ) 8132 */ 8133 extern int MakeUDPSocket(int RecvPort = -1); 8134 8135 /** 8136 * UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります )( IPv6版 ) 8137 */ 8138 extern int MakeUDPSocket_IPv6(int RecvPort = -1); 8139 8140 /** 8141 * UDPを使用した通信を行うソケットハンドルを削除する 8142 */ 8143 extern int DeleteUDPSocket(int NetUDPHandle); 8144 8145 /** 8146 * UDPを使用した通信で指定のIPにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます 8147 * 8148 * Returns: 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない 8149 */ 8150 extern int NetWorkSendUDP(int NetUDPHandle, .IPDATA SendIP, int SendPort, const (void)* Buffer, int Length); 8151 8152 /** 8153 * UDPを使用した通信で指定のIPにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます( IPv6版 ) 8154 * 8155 * Returns: 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない 8156 */ 8157 extern int NetWorkSendUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6 SendIP, int SendPort, const (void)* Buffer, int Length); 8158 8159 /** 8160 * UDPを使用した通信でデータを受信する、Peek に TRUE を渡すと受信に成功してもデータを受信キューから削除しません 8161 * 8162 * Returns: 0以上:受信したデータのサイズ -1:エラー -2:バッファのサイズが足りない -3:受信データがない 8163 */ 8164 extern int NetWorkRecvUDP(int NetUDPHandle, .IPDATA* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek); 8165 8166 /** 8167 * UDPを使用した通信でデータを受信する、Peek に TRUE を渡すと受信に成功してもデータを受信キューから削除しません( IPv6版 ) 8168 * 8169 * Returns: 0以上:受信したデータのサイズ -1:エラー -2:バッファのサイズが足りない -3:受信データがない 8170 */ 8171 extern int NetWorkRecvUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek); 8172 8173 /* 8174 * UDPを使用した通信でデータが送信できる状態かどうかを調べる 8175 * 8176 * Returns: -1:エラー TRUE:送信可能 FALSE:送信不可能 8177 */ 8178 //extern int CheckNetWorkSendUDP(int NetUDPHandle); 8179 8180 /** 8181 * UDPを使用した通信で新たな受信データが存在するかどうかを調べる 8182 * 8183 * Returns: -1:エラー TRUE:受信データあり FALSE:受信データなし 8184 */ 8185 extern int CheckNetWorkRecvUDP(int NetUDPHandle); 8186 8187 //使用不可 8188 8189 /** 8190 * HTTP を使用してネットワーク上のファイルをダウンロードする 8191 */ 8192 @disable 8193 extern int HTTP_FileDownload(const (char)* FileURL, const (char)* SavePath = null, void** SaveBufferP = null, int* FileSize = null, char** ParamList = null); 8194 8195 /** 8196 * HTTP を使用してネットワーク上のファイルのサイズを得る 8197 */ 8198 @disable 8199 extern int HTTP_GetFileSize(const (char)* FileURL); 8200 8201 /** 8202 * HTTP を使用したネットワーク上のファイルをダウンロードする処理を開始する 8203 */ 8204 @disable 8205 extern int HTTP_StartFileDownload(const (char)* FileURL, const (char)* SavePath, void** SaveBufferP = null, char** ParamList = null); 8206 8207 /** 8208 * HTTP を使用したネットワーク上のファイルのサイズを得る処理を開始する 8209 */ 8210 @disable 8211 extern int HTTP_StartGetFileSize(const (char)* FileURL); 8212 8213 /** 8214 * HTTP の処理を終了し、ハンドルを解放する 8215 */ 8216 @disable 8217 extern int HTTP_Close(int HttpHandle); 8218 8219 /** 8220 * 全てのハンドルに対して HTTP_Close を行う 8221 */ 8222 @disable 8223 extern int HTTP_CloseAll(); 8224 8225 /** 8226 * HTTP 処理の現在の状態を得る( NET_RES_COMPLETE 等 ) 8227 */ 8228 @disable 8229 extern int HTTP_GetState(int HttpHandle); 8230 8231 /** 8232 * HTTP 処理でエラーが発生した場合、エラーの内容を得る( HTTP_ERR_NONE 等 ) 8233 */ 8234 @disable 8235 extern int HTTP_GetError(int HttpHandle); 8236 8237 /** 8238 * HTTP 処理で対象となっているファイルのサイズを得る 8239 * 8240 * Returns: -1:エラー・若しくはまだファイルのサイズを取得していない 0以上:ファイルのサイズ 8241 */ 8242 @disable 8243 extern int HTTP_GetDownloadFileSize(int HttpHandle); 8244 8245 /** 8246 * HTTP 処理で既にダウンロードしたファイルのサイズを取得する 8247 */ 8248 @disable 8249 extern int HTTP_GetDownloadedFileSize(int HttpHandle); 8250 8251 /** 8252 * fgets のネットワークハンドル版( -1:取得できず 0:取得できた ) 8253 */ 8254 @disable 8255 extern int fgetsForNetHandle(int NetHandle, char* strbuffer); 8256 8257 /** 8258 * URLを解析する 8259 */ 8260 @disable 8261 extern int URLAnalys(const (char)* URL, char* HostBuf = null, char* PathBuf = null, char* FileNameBuf = null, int* PortBuf = null); 8262 8263 /** 8264 * HTTP に渡せない記号が使われた文字列を渡せるような文字列に変換する 8265 * 8266 * Returns: -1:エラー 0以上:変換後の文字列のサイズ 8267 */ 8268 @disable 8269 extern int URLConvert(char* URL, int ParamConvert = dxlib_d.dxdatatype.TRUE, int NonConvert = dxlib_d.dxdatatype.FALSE); 8270 8271 /** 8272 * HTTP 用パラメータリストから1つのパラメータ文字列を作成する 8273 * 8274 * Returns: -1:エラー 0以上:パラメータの文字列の長さ 8275 */ 8276 @disable 8277 extern int URLParamAnalysis(char** ParamList, char** ParamStringP); 8278 } 8279 8280 // DxInputString.cpp関数プロトタイプ宣言 8281 8282 version (DX_NON_INPUTSTRING) { 8283 } else { 8284 // 文字コードバッファ操作関係 8285 8286 /** 8287 * 文字コードバッファに文字コードをストックする 8288 */ 8289 extern int StockInputChar(dxlib_d.dxdatatype.TCHAR CharCode); 8290 8291 /** 8292 * 文字コードバッファをクリアする 8293 */ 8294 extern int ClearInputCharBuf(); 8295 8296 /** 8297 * 文字コードバッファに溜まったデータから文字コードを1つ取得する 8298 */ 8299 extern dxlib_d.dxdatatype.TCHAR GetInputChar(int DeleteFlag); 8300 8301 /** 8302 * 文字コードバッファに溜まったデータから文字コードを1つ取得する、バッファになにも文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ 8303 */ 8304 extern dxlib_d.dxdatatype.TCHAR GetInputCharWait(int DeleteFlag); 8305 8306 /** 8307 * 文字コードバッファに溜まったデータから1文字分取得する 8308 */ 8309 extern int GetOneChar(dxlib_d.dxdatatype.TCHAR* CharBuffer, int DeleteFlag); 8310 8311 /** 8312 * 文字コードバッファに溜まったデータから1文字分取得する、バッファに何も文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ 8313 */ 8314 extern int GetOneCharWait(dxlib_d.dxdatatype.TCHAR* CharBuffer, int DeleteFlag); 8315 8316 /** 8317 * 指定の文字コードがアスキーコントロールコードか調べる 8318 */ 8319 extern int GetCtrlCodeCmp(dxlib_d.dxdatatype.TCHAR Char); 8320 } 8321 8322 version (DX_NON_KEYEX) { 8323 } else { 8324 /** 8325 * 画面上に入力中の文字列を描画する 8326 */ 8327 extern int DrawIMEInputString(int x, int y, int SelectStringNum, int DrawCandidateList = dxlib_d.dxdatatype.TRUE); 8328 8329 /** 8330 * IMEを使用するかどうかを設定する 8331 */ 8332 extern int SetUseIMEFlag(int UseFlag); 8333 8334 /** 8335 * IMEを使用するかどうかの設定を取得する 8336 */ 8337 extern int GetUseIMEFlag(); 8338 8339 /** 8340 * IMEで入力できる最大文字数を MakeKeyInput の設定に合わせるかどうかをセットする 8341 * 8342 * Params: 8343 * Flag = TRUE:あわせる FALSE:あわせない(デフォルト) 8344 */ 8345 extern int SetInputStringMaxLengthIMESync(int Flag); 8346 8347 /** 8348 * IMEで一度に入力できる最大文字数を設定する( 0:制限なし 1以上:指定の文字数で制限 ) 8349 * 8350 * Params: 8351 * Length = ? 8352 */ 8353 extern int SetIMEInputStringMaxLength(int Length); 8354 } 8355 8356 /** 8357 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る 8358 */ 8359 extern int GetStringPoint(const (dxlib_d.dxdatatype.TCHAR)* String, int Point); 8360 8361 /** 8362 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る 8363 */ 8364 extern int GetStringPointWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int Point); 8365 8366 /** 8367 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る 8368 */ 8369 extern int GetStringPoint2(const (dxlib_d.dxdatatype.TCHAR)* String, int Point); 8370 8371 /** 8372 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る 8373 */ 8374 extern int GetStringPoint2WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int Point); 8375 8376 /** 8377 * 全角文字、半角文字入り乱れる中から文字数を取得する 8378 */ 8379 extern int GetStringLength(const (dxlib_d.dxdatatype.TCHAR)* String); 8380 8381 version (DX_NON_FONT) { 8382 } else { 8383 /** 8384 * 描画可能領域に収まるように改行しながら文字列を描画 8385 */ 8386 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); 8387 8388 /** 8389 * 描画可能領域に収まるように改行しながら文字列を描画 8390 */ 8391 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); 8392 8393 /** 8394 * 描画可能領域に収まるように改行しながら文字列を描画( クリップが文字単位 ) 8395 */ 8396 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); 8397 8398 /** 8399 * 描画可能領域に収まるように改行しながら文字列を描画( クリップが文字単位 ) 8400 */ 8401 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); 8402 8403 /** 8404 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する 8405 */ 8406 extern int GetObtainsStringCharPosition(int x, int y, int AddY, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int* PosX, int* PosY, int FontHandle = -1); 8407 8408 /** 8409 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する( クリップが文字単位 ) 8410 */ 8411 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); 8412 } 8413 8414 /** 8415 * 描画可能領域に収まるように補正を加えながら矩形を描画 8416 */ 8417 extern int DrawObtainsBox(int x1, int y1, int x2, int y2, int AddY, uint Color, int FillFlag); 8418 8419 version (DX_NON_KEYEX) { 8420 } else { 8421 /** 8422 * 文字列の入力取得 8423 */ 8424 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); 8425 8426 /** 8427 * 文字列の入力取得 8428 */ 8429 extern int KeyInputString(int x, int y, size_t CharMaxLength, dxlib_d.dxdatatype.TCHAR* StrBuffer, int CancelValidFlag); 8430 8431 /** 8432 * 半角文字列のみの入力取得 8433 */ 8434 extern int KeyInputSingleCharString(int x, int y, size_t CharMaxLength, dxlib_d.dxdatatype.TCHAR* StrBuffer, int CancelValidFlag); 8435 8436 /** 8437 * 数値の入力取得 8438 */ 8439 extern int KeyInputNumber(int x, int y, int MaxNum, int MinNum, int CancelValidFlag); 8440 8441 /** 8442 * IMEの入力モード文字列を取得する 8443 */ 8444 extern int GetIMEInputModeStr(dxlib_d.dxdatatype.TCHAR* GetBuffer); 8445 8446 /** 8447 * IMEで入力中の文字列の情報を取得する 8448 */ 8449 extern const (.IMEINPUTDATA)* GetIMEInputData(); 8450 8451 /** 8452 * ( SetKeyInputStringColor2 の旧関数 )InputString関数使用時の文字の各色を変更する 8453 */ 8454 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); 8455 8456 /** 8457 * InputString関数使用時の文字の各色を変更する 8458 */ 8459 extern int SetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR 等 */, uint Color); 8460 8461 /** 8462 * SetKeyInputStringColor2 で設定した色をデフォルトに戻す 8463 */ 8464 extern int ResetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR 等 */); 8465 8466 /** 8467 * キー入力文字列描画関連で使用するフォントのハンドルを変更する(-1でデフォルトのフォントハンドル) 8468 */ 8469 extern int SetKeyInputStringFont(int FontHandle); 8470 8471 /** 8472 * キー入力文字列処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モードを変更する 8473 */ 8474 extern int SetKeyInputStringEndCharaMode(int EndCharaMode /* DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE 等 */); 8475 8476 /** 8477 * 入力モード文字列を描画する 8478 */ 8479 extern int DrawKeyInputModeString(int x, int y); 8480 8481 /** 8482 * キー入力データ初期化 8483 */ 8484 extern int InitKeyInput(); 8485 8486 /** 8487 * 新しいキー入力ハンドルの作成 8488 */ 8489 extern int MakeKeyInput(size_t MaxStrLength, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = dxlib_d.dxdatatype.FALSE, int EnableNewLineFlag = dxlib_d.dxdatatype.FALSE); 8490 8491 /** 8492 * キー入力ハンドルの削除 8493 */ 8494 extern int DeleteKeyInput(int InputHandle); 8495 8496 /** 8497 * 指定のキー入力ハンドルをアクティブにする( -1 を指定するとアクティブなキー入力ハンドルが無い状態になります ) 8498 */ 8499 extern int SetActiveKeyInput(int InputHandle); 8500 8501 /** 8502 * 現在アクティブになっているキー入力ハンドルを取得する 8503 */ 8504 extern int GetActiveKeyInput(); 8505 8506 /** 8507 * キー入力ハンドルの入力が終了しているか取得する 8508 */ 8509 extern int CheckKeyInput(int InputHandle); 8510 8511 /** 8512 * 入力が完了したキー入力ハンドルを再度編集状態に戻す 8513 */ 8514 extern int ReStartKeyInput(int InputHandle); 8515 8516 /** 8517 * キー入力ハンドル処理関数 8518 */ 8519 extern int ProcessActKeyInput(); 8520 8521 /** 8522 * キー入力ハンドルの入力中情報の描画 8523 */ 8524 extern int DrawKeyInputString(int x, int y, int InputHandle, int DrawCandidateList = dxlib_d.dxdatatype.TRUE); 8525 8526 /** 8527 * キー入力ハンドルの入力中文字列を描画する際の描画範囲を設定する 8528 */ 8529 extern int SetKeyInputDrawArea(int x1, int y1, int x2, int y2, int InputHandle); 8530 8531 /** 8532 * キー入力ハンドルの指定の領域を選択状態にする( SelectStart と SelectEnd に -1 を指定すると選択状態が解除されます ) 8533 */ 8534 extern int SetKeyInputSelectArea(int SelectStart, int SelectEnd, int InputHandle); 8535 8536 /** 8537 * キー入力ハンドルの選択領域を取得する 8538 */ 8539 extern int GetKeyInputSelectArea(int* SelectStart, int* SelectEnd, int InputHandle); 8540 8541 /** 8542 * キー入力ハンドルの描画開始文字位置を設定する 8543 */ 8544 extern int SetKeyInputDrawStartPos(int DrawStartPos, int InputHandle); 8545 8546 /** 8547 * キー入力ハンドルの描画開始文字位置を取得する 8548 */ 8549 extern int GetKeyInputDrawStartPos(int InputHandle); 8550 8551 /** 8552 * キー入力ハンドルのキー入力時のカーソルの点滅する早さをセットする 8553 */ 8554 extern int SetKeyInputCursorBrinkTime(int Time); 8555 8556 /** 8557 * キー入力ハンドルのキー入力時のカーソルを点滅させるかどうかをセットする 8558 */ 8559 extern int SetKeyInputCursorBrinkFlag(int Flag); 8560 8561 /** 8562 * キー入力ハンドルに指定の文字列をセットする 8563 */ 8564 extern int SetKeyInputString(const (dxlib_d.dxdatatype.TCHAR)* String, int InputHandle); 8565 8566 /** 8567 * キー入力ハンドルに指定の文字列をセットする 8568 */ 8569 extern int SetKeyInputStringWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int InputHandle); 8570 8571 /** 8572 * キー入力ハンドルに指定の数値を文字に置き換えてセットする 8573 */ 8574 extern int SetKeyInputNumber(int Number, int InputHandle); 8575 8576 /** 8577 * キー入力ハンドルに指定の浮動小数点値を文字に置き換えてセットする 8578 */ 8579 extern int SetKeyInputNumberToFloat(float Number, int InputHandle); 8580 8581 /** 8582 * キー入力ハンドルの入力中の文字列を取得する 8583 */ 8584 extern int GetKeyInputString(dxlib_d.dxdatatype.TCHAR* StrBuffer, int InputHandle); 8585 8586 /** 8587 * キー入力ハンドルの入力中の文字列を整数値として取得する 8588 */ 8589 extern int GetKeyInputNumber(int InputHandle); 8590 8591 /** 8592 * キー入力ハンドルの入力中の文字列を浮動小数点値として取得する 8593 */ 8594 extern float GetKeyInputNumberToFloat(int InputHandle); 8595 8596 /** 8597 * キー入力ハンドルの現在のカーソル位置を設定する 8598 */ 8599 extern int SetKeyInputCursorPosition(int Position, int InputHandle); 8600 8601 /** 8602 * キー入力ハンドルの現在のカーソル位置を取得する 8603 */ 8604 extern int GetKeyInputCursorPosition(int InputHandle); 8605 } 8606 8607 // DxFile.cpp関数プロトタイプ宣言 8608 8609 // ファイルアクセス関数 8610 8611 /** 8612 * ファイルを開く 8613 */ 8614 extern int FileRead_open(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int ASync = dxlib_d.dxdatatype.FALSE); 8615 8616 /** 8617 * ファイルを開く 8618 */ 8619 extern int FileRead_open_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.dxdatatype.FALSE); 8620 8621 /** 8622 * メモリに展開されたファイルを開く 8623 */ 8624 extern int FileRead_open_mem(const (void)* FileImage, size_t FileImageSize); 8625 8626 /** 8627 * ファイルのサイズを取得する 8628 */ 8629 extern dxlib_d.dxdatatype.LONGLONG FileRead_size(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 8630 8631 /** 8632 * ファイルのサイズを取得する 8633 */ 8634 extern dxlib_d.dxdatatype.LONGLONG FileRead_size_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 8635 8636 /** 8637 * ファイルを閉じる 8638 */ 8639 extern int FileRead_close(int FileHandle); 8640 8641 /** 8642 * ファイルポインタの読み込み位置を取得する 8643 */ 8644 extern dxlib_d.dxdatatype.LONGLONG FileRead_tell(int FileHandle); 8645 8646 /** 8647 * ファイルポインタの読み込み位置を変更する 8648 */ 8649 extern int FileRead_seek(int FileHandle, dxlib_d.dxdatatype.LONGLONG Offset, int Origin); 8650 8651 /** 8652 * ファイルからデータを読み込む 8653 */ 8654 extern int FileRead_read(void* Buffer, int ReadSize, int FileHandle); 8655 8656 /** 8657 * ファイル読み込みが完了しているかどうかを取得する 8658 */ 8659 extern int FileRead_idle_chk(int FileHandle); 8660 8661 /** 8662 * ファイルの読み込み位置が終端に達しているかどうかを取得する 8663 */ 8664 extern int FileRead_eof(int FileHandle); 8665 8666 /** 8667 * ファイルの文字コード形式を設定する( テキストファイル用 ) 8668 */ 8669 extern int FileRead_set_format(int FileHandle, int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS 等 */); 8670 8671 /** 8672 * ファイルから文字列を読み出す 8673 */ 8674 extern int FileRead_gets(dxlib_d.dxdatatype.TCHAR* Buffer, int BufferSize, int FileHandle); 8675 8676 /** 8677 * ファイルから1文字読み出す 8678 */ 8679 extern dxlib_d.dxdatatype.TCHAR FileRead_getc(int FileHandle); 8680 8681 /** 8682 * ファイルから書式化されたデータを読み出す 8683 */ 8684 extern int FileRead_scanf(int FileHandle, const (dxlib_d.dxdatatype.TCHAR)* Format, ...); 8685 8686 /** 8687 * ファイル情報ハンドルを作成する 8688 * 8689 * Returns: -1:エラー -1以外:ファイル情報ハンドル 8690 */ 8691 extern dxlib_d.dxdatatype.DWORD_PTR FileRead_createInfo(const (dxlib_d.dxdatatype.TCHAR)* ObjectPath); 8692 8693 /** 8694 * ファイル情報ハンドルを作成する 8695 * 8696 * Returns: -1:エラー -1以外:ファイル情報ハンドル 8697 */ 8698 extern dxlib_d.dxdatatype.DWORD_PTR FileRead_createInfo_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* ObjectPath, size_t ObjectPathLength); 8699 8700 /** 8701 * ファイル情報ハンドル中のファイルの数を取得する 8702 */ 8703 extern int FileRead_getInfoNum(dxlib_d.dxdatatype.DWORD_PTR FileInfoHandle); 8704 8705 /** 8706 * ファイル情報ハンドル中のファイルの情報を取得する 8707 */ 8708 extern int FileRead_getInfo(int Index, .FILEINFO* Buffer, dxlib_d.dxdatatype.DWORD_PTR FileInfoHandle); 8709 8710 /** 8711 * ファイル情報ハンドルを削除する 8712 */ 8713 extern int FileRead_deleteInfo(dxlib_d.dxdatatype.DWORD_PTR FileInfoHandle); 8714 8715 /** 8716 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する 8717 * 8718 * Returns: -1:エラー -1以外:ファイル検索ハンドル 8719 */ 8720 extern dxlib_d.dxdatatype.DWORD_PTR FileRead_findFirst(const (dxlib_d.dxdatatype.TCHAR)* FilePath, .FILEINFO* Buffer); 8721 8722 /** 8723 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する 8724 * 8725 * Returns: -1:エラー -1以外:ファイル検索ハンドル 8726 */ 8727 extern dxlib_d.dxdatatype.DWORD_PTR FileRead_findFirst_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, .FILEINFO* Buffer); 8728 8729 /** 8730 * 条件の合致する次のファイルの情報を取得する 8731 * 8732 * Returns: -1:エラー 0:成功 8733 */ 8734 extern int FileRead_findNext(dxlib_d.dxdatatype.DWORD_PTR FindHandle, .FILEINFO* Buffer); 8735 8736 /** 8737 * ファイル検索ハンドルを閉じる 8738 * 8739 * Returns: -1:エラー 0:成功 8740 */ 8741 extern int FileRead_findClose(dxlib_d.dxdatatype.DWORD_PTR FindHandle); 8742 8743 /** 8744 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルは FileRead_fullyLoad_delete で削除する必要があります 8745 * 8746 * Returns: -1:エラー -1以外:ハンドル 8747 */ 8748 extern int FileRead_fullyLoad(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 8749 8750 /** 8751 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルは FileRead_fullyLoad_delete で削除する必要があります 8752 * 8753 * Returns: -1:エラー -1以外:ハンドル 8754 */ 8755 extern int FileRead_fullyLoad_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 8756 8757 /** 8758 * FileRead_fullyLoad で読み込んだファイルのハンドルを削除する 8759 */ 8760 extern int FileRead_fullyLoad_delete(int FLoadHandle); 8761 8762 /** 8763 * FileRead_fullyLoad で読み込んだファイルの内容を格納したメモリアドレスを取得する 8764 */ 8765 extern const (void)* FileRead_fullyLoad_getImage(int FLoadHandle); 8766 8767 /** 8768 * FileRead_fullyLoad で読み込んだファイルのサイズを取得する 8769 */ 8770 extern dxlib_d.dxdatatype.LONGLONG FileRead_fullyLoad_getSize(int FLoadHandle); 8771 8772 // 設定関係関数 8773 8774 /** 8775 * DXライブラリでストリームデータアクセスに使用する関数がデフォルトのものか調べる 8776 * 8777 * Returns: TRUE:デフォルトのもの FALSE:デフォルトではない 8778 */ 8779 extern int GetStreamFunctionDefault(); 8780 8781 /** 8782 * DXライブラリでストリームデータアクセスに使用する関数を変更する 8783 */ 8784 extern int ChangeStreamFunction(const (.STREAMDATASHREDTYPE2)* StreamThread); 8785 8786 /** 8787 * DXライブラリでストリームデータアクセスに使用する関数を変更する( wchar_t 使用版 ) 8788 */ 8789 extern int ChangeStreamFunctionW(const (.STREAMDATASHREDTYPE2W)* StreamThreadW); 8790 8791 // 補助関係関数 8792 8793 /** 8794 * フルパスではないパス文字列をフルパスに変換する( CurrentDir はフルパスである必要がある(語尾に『\』があっても無くても良い) )( CurrentDir が null の場合は現在のカレントディレクトリを使用する ) 8795 */ 8796 extern int ConvertFullPath(const (dxlib_d.dxdatatype.TCHAR)* Src, dxlib_d.dxdatatype.TCHAR* Dest, const (dxlib_d.dxdatatype.TCHAR)* CurrentDir = null); 8797 8798 /** 8799 * フルパスではないパス文字列をフルパスに変換する( CurrentDir はフルパスである必要がある(語尾に『\』があっても無くても良い) )( CurrentDir が null の場合は現在のカレントディレクトリを使用する ) 8800 */ 8801 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); 8802 8803 // DxInput.cpp関数プロトタイプ宣言 8804 8805 version (DX_NON_INPUT) { 8806 } else { 8807 // 入力状態取得関数 8808 8809 /** 8810 * キーボードの押下状態を取得する 8811 */ 8812 extern int CheckHitKey(int KeyCode); 8813 8814 /** 8815 * どれか1つでもキーが押されているかどうかを取得 8816 * 8817 * Returns: 押されていたら 0 以外 8818 */ 8819 extern int CheckHitKeyAll(int CheckType = DX_CHECKINPUT_ALL); 8820 8821 /** 8822 * すべてのキーの押下状態を取得する 8823 * 8824 * Params: 8825 * KeyStateBuf = char型256個分の配列の先頭アドレス 8826 */ 8827 extern int GetHitKeyStateAll(DX_CHAR* KeyStateArray); 8828 8829 /** 8830 * ジョイパッドが接続されている数を取得する 8831 */ 8832 extern int GetJoypadNum(); 8833 8834 /** 8835 * ジョイパッドのボタンの数を取得する 8836 */ 8837 extern int GetJoypadButtonNum(int InputType); 8838 8839 /** 8840 * ジョイパッドの入力状態を取得する 8841 */ 8842 extern int GetJoypadInputState(int InputType); 8843 8844 /** 8845 * ジョイパッドのアナログ的なスティック入力情報を得る 8846 */ 8847 extern int GetJoypadAnalogInput(int* XBuf, int* YBuf, int InputType); 8848 8849 /** 8850 * ( 使用非推奨 )ジョイパッドのアナログ的なスティック入力情報を得る(右スティック用) 8851 */ 8852 extern int GetJoypadAnalogInputRight(int* XBuf, int* YBuf, int InputType); 8853 8854 /** 8855 * DirectInput から得られるジョイパッドの生のデータを取得する( DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返す ) 8856 */ 8857 extern int GetJoypadDirectInputState(int InputType, .DINPUT_JOYSTATE* DInputState); 8858 8859 /** 8860 * 指定の入力デバイスが XInput に対応しているかどうかを取得する( DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返す ) 8861 * 8862 * Returns: TRUE:XInput対応の入力デバイス FALSE:XInput非対応の入力デバイス -1:エラー 8863 */ 8864 extern int CheckJoypadXInput(int InputType); 8865 8866 /** 8867 * XInput から得られる入力デバイス( Xbox360コントローラ等 )の生のデータを取得する( XInput非対応のパッドの場合はエラーとなり -1 を返す、DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返す ) 8868 */ 8869 extern int GetJoypadXInputState(int InputType, .XINPUT_STATE* XInputState); 8870 8871 /** 8872 * ジョイパッドの入力に対応したキーボードの入力を設定する 8873 * 8874 * Params: 8875 * InputType = 設定を変更するパッドの識別子( DX_INPUT_PAD1等 ) 8876 * PadInput = 設定を変更するパッドボタンの識別子( PAD_INPUT_1 等 ) 8877 * KeyInput1 = PadInput を押下したことにするキーコード( KEY_INPUT_A など )その1 8878 * KeyInput2 = その2、-1で設定なし 8879 * KeyInput3 = その3、-1で設定なし 8880 * KeyInput4 = その4、-1で設定なし 8881 */ 8882 extern int SetJoypadInputToKeyInput(int InputType, int PadInput, int KeyInput1, int KeyInput2 = -1, int KeyInput3 = -1, int KeyInput4 = -1); 8883 8884 /** 8885 * ジョイパッドの無効ゾーンの設定を行う( InputType:設定を変更するパッドの識別子( DX_INPUT_PAD1等 ) Zone:新しい無効ゾーン( 0.0 〜 1.0 )、デフォルト値は 0.35 ) 8886 * 8887 * Params: 8888 * InputType = ? 8889 * Zone = ? 8890 */ 8891 extern int SetJoypadDeadZone(int InputType, double Zone); 8892 8893 /** 8894 * ジョイパッドの無効ゾーンの設定を取得する 8895 * 8896 * Params: 8897 * InputType = 設定を変更するパッドの識別子( DX_INPUT_PAD1等 ) 8898 * 8899 * Returns: 無効ゾーン( 0.0 〜 1.0 ) 8900 */ 8901 extern double GetJoypadDeadZone(int InputType); 8902 8903 /** 8904 * ジョイパッドの振動を開始する 8905 */ 8906 extern int StartJoypadVibration(int InputType, int Power, int Time, int EffectIndex = -1); 8907 8908 /** 8909 * ジョイパッドの振動を停止する 8910 */ 8911 extern int StopJoypadVibration(int InputType, int EffectIndex = -1); 8912 8913 /** 8914 * ジョイパッドのPOV入力の状態を得る 8915 * 8916 * Returns: 指定のPOVデータの角度、単位は角度の100倍( 90度なら 9000 ) 中心位置にある場合は -1 が返る 8917 */ 8918 extern int GetJoypadPOVState(int InputType, int POVNumber); 8919 8920 /** 8921 * ジョイパッドの再セットアップを行う( 新たに接続されたジョイパッドがあったら検出される ) 8922 */ 8923 extern int ReSetupJoypad(); 8924 8925 /** 8926 * ジョイパッドの振動機能を使用するかどうかを設定する 8927 * 8928 * Params: 8929 * Flag = TRUE:使用する FALSE:使用しない 8930 */ 8931 extern int SetUseJoypadVibrationFlag(int Flag); 8932 } 8933 8934 version (DX_NOTUSE_DRAWFUNCTION) { 8935 } else { 8936 // 画像処理系関数プロトタイプ宣言 8937 8938 // グラフィックハンドル作成関係関数 8939 8940 /** 8941 * 指定サイズのグラフィックハンドルを作成する 8942 */ 8943 extern int MakeGraph(int SizeX, int SizeY, int NotUse3DFlag = dxlib_d.dxdatatype.FALSE); 8944 8945 /** 8946 * SetDrawScreen で描画対象にできるグラフィックハンドルを作成する 8947 */ 8948 extern int MakeScreen(int SizeX, int SizeY, int UseAlphaChannel = dxlib_d.dxdatatype.FALSE); 8949 8950 /** 8951 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する 8952 */ 8953 extern int DerivationGraph(int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle); 8954 8955 /** 8956 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する( float版 ) 8957 */ 8958 extern int DerivationGraphF(float SrcX, float SrcY, float Width, float Height, int SrcGraphHandle); 8959 8960 /** 8961 * グラフィックハンドルを削除する 8962 */ 8963 extern int DeleteGraph(int GrHandle, int LogOutFlag = dxlib_d.dxdatatype.FALSE); 8964 8965 /** 8966 * 指定のグラフィックハンドルと、同じグラフィックハンドルから派生しているグラフィックハンドル( DerivationGraph で派生したハンドル、LoadDivGraph 読み込んで作成された複数のハンドル )を一度に削除する 8967 */ 8968 extern int DeleteSharingGraph(int GrHandle); 8969 8970 /** 8971 * 有効なグラフィックハンドルの数を取得する 8972 */ 8973 extern int GetGraphNum(); 8974 8975 /** 8976 * グラフィックハンドルを指定の色で塗りつぶす 8977 */ 8978 extern int FillGraph(int GrHandle, int Red, int Green, int Blue, int Alpha = 255); 8979 8980 /** 8981 * グラフィックハンドルの指定の範囲を指定の色で塗りつぶす 8982 */ 8983 extern int FillRectGraph(int GrHandle, int x, int y, int Width, int Height, int Red, int Green, int Blue, int Alpha = 255); 8984 8985 /** 8986 * 指定のグラフィックハンドルが削除された際に 1 にする変数のアドレスを設定する 8987 */ 8988 extern int SetGraphLostFlag(int GrHandle, int* LostFlag); 8989 8990 /** 8991 * すべてのグラフィックハンドルを削除する 8992 */ 8993 extern int InitGraph(int LogOutFlag = dxlib_d.dxdatatype.FALSE); 8994 8995 /** 8996 * ファイルから画像を読み込んだ全てのグラフィックハンドルについて、再度ファイルから画像を読み込む 8997 */ 8998 extern int ReloadFileGraphAll(); 8999 9000 // シャドウマップハンドル関係関数 9001 9002 /** 9003 * シャドウマップハンドルを作成する 9004 */ 9005 extern int MakeShadowMap(int SizeX, int SizeY); 9006 9007 /** 9008 * シャドウマップハンドルを削除する 9009 */ 9010 extern int DeleteShadowMap(int SmHandle); 9011 9012 /** 9013 * シャドウマップが想定するライトの方向を設定する 9014 */ 9015 extern int SetShadowMapLightDirection(int SmHandle, .VECTOR Direction); 9016 9017 /** 9018 * シャドウマップへの描画の準備を行う 9019 */ 9020 extern int ShadowMap_DrawSetup(int SmHandle); 9021 9022 /** 9023 * シャドウマップへの描画を終了する 9024 */ 9025 extern int ShadowMap_DrawEnd(); 9026 9027 /** 9028 * 描画で使用するシャドウマップを指定する、有効なスロットは0〜2、SmHandle に -1 を渡すと指定のスロットのシャドウマップを解除 9029 */ 9030 extern int SetUseShadowMap(int SmSlotIndex, int SmHandle); 9031 9032 /** 9033 * シャドウマップに描画する際の範囲を設定する( この関数で描画範囲を設定しない場合は視錐台を拡大した範囲が描画範囲となる ) 9034 */ 9035 extern int SetShadowMapDrawArea(int SmHandle, .VECTOR MinPosition, .VECTOR MaxPosition); 9036 9037 /** 9038 * SetShadowMapDrawArea の設定を解除する 9039 */ 9040 extern int ResetShadowMapDrawArea(int SmHandle); 9041 9042 /** 9043 * シャドウマップを使用した描画時の補正深度を設定する 9044 */ 9045 extern int SetShadowMapAdjustDepth(int SmHandle, float Depth); 9046 9047 /** 9048 * シャドウマップ作成時や適用時に使用するビュー行列と射影行列を乗算した行列を取得する 9049 */ 9050 extern int GetShadowMapViewProjectionMatrix(int SmHandle, .MATRIX* MatrixBuffer); 9051 9052 /** 9053 * シャドウマップを画面にテスト描画する 9054 */ 9055 extern int TestDrawShadowMap(int SmHandle, int x1, int y1, int x2, int y2); 9056 9057 // グラフィックハンドルへの画像転送関数 9058 9059 /** 9060 * BMPの内容をグラフィックハンドルに転送 9061 */ 9062 extern int BltBmpToGraph(const (.COLORDATA)* BmpColorData, dxlib_d.dxdatatype.HBITMAP RgbBmp, dxlib_d.dxdatatype.HBITMAP AlphaBmp, int CopyPointX, int CopyPointY, int GrHandle); 9063 9064 /** 9065 * BMPの内容を分割作成したグラフィックハンドルたちに転送 9066 */ 9067 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); 9068 9069 /** 9070 * BMP か BASEIMAGE をグラフィックハンドルに転送 9071 */ 9072 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); 9073 9074 /** 9075 * BMP か BASEIMAGE の指定の領域をグラフィックハンドルに転送 9076 */ 9077 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); 9078 9079 /** 9080 * BMP か BASEIMAGE を分割作成したグラフィックハンドルたちに転送 9081 */ 9082 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); 9083 9084 /** 9085 * BMP か BASEIMAGE を分割作成したグラフィックハンドルたちに転送( float型 ) 9086 */ 9087 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); 9088 9089 // 画像からグラフィックハンドルを作成する関数 9090 9091 /** 9092 * 画像ファイルからグラフィックハンドルを作成する 9093 */ 9094 extern int LoadBmpToGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL); 9095 9096 /** 9097 * 画像ファイルからグラフィックハンドルを作成する 9098 */ 9099 extern int LoadBmpToGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL); 9100 9101 /** 9102 * 画像ファイルからグラフィックハンドルを作成する 9103 */ 9104 extern int LoadGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.dxdatatype.FALSE); 9105 9106 /** 9107 * 画像ファイルからグラフィックハンドルを作成する 9108 */ 9109 extern int LoadGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.dxdatatype.FALSE); 9110 9111 /** 9112 * 画像ファイルを反転したものでグラフィックハンドルを作成する 9113 */ 9114 extern int LoadReverseGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.dxdatatype.FALSE); 9115 9116 /** 9117 * 画像ファイルを反転したものでグラフィックハンドルを作成する 9118 */ 9119 extern int LoadReverseGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.dxdatatype.FALSE); 9120 9121 /** 9122 * 画像ファイルを分割してグラフィックハンドルを作成する 9123 */ 9124 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); 9125 9126 /** 9127 * 画像ファイルを分割してグラフィックハンドルを作成する 9128 */ 9129 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); 9130 9131 /** 9132 * 画像ファイルを分割してグラフィックハンドルを作成する 9133 */ 9134 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); 9135 9136 /** 9137 * 画像ファイルを分割してグラフィックハンドルを作成する 9138 */ 9139 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); 9140 9141 /** 9142 * 画像ファイルを分割してグラフィックハンドルを作成する 9143 */ 9144 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); 9145 9146 /** 9147 * 画像ファイルを分割してグラフィックハンドルを作成する 9148 */ 9149 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); 9150 9151 /** 9152 * 画像ファイルを分割してグラフィックハンドルを作成する 9153 */ 9154 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); 9155 9156 /** 9157 * 画像ファイルを分割してグラフィックハンドルを作成する 9158 */ 9159 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); 9160 9161 /** 9162 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9163 */ 9164 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); 9165 9166 /** 9167 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9168 */ 9169 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); 9170 9171 /** 9172 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9173 */ 9174 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); 9175 9176 /** 9177 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9178 */ 9179 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); 9180 9181 /** 9182 * 画像ファイルからブレンド用グラフィックハンドルを作成する 9183 */ 9184 extern int LoadBlendGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName); 9185 9186 /** 9187 * 画像ファイルからブレンド用グラフィックハンドルを作成する 9188 */ 9189 extern int LoadBlendGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 9190 9191 /** 9192 * メモリ上の画像イメージからグラフィックハンドルを作成する 9193 */ 9194 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); 9195 9196 /** 9197 * メモリ上の画像イメージから既存のグラフィックハンドルにデータを転送する 9198 */ 9199 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); 9200 9201 /** 9202 * メモリ上の画像イメージから分割グラフィックハンドルを作成する 9203 */ 9204 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); 9205 9206 /** 9207 * メモリ上の画像イメージから分割グラフィックハンドルを作成する( float版 ) 9208 */ 9209 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); 9210 9211 /** 9212 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する 9213 */ 9214 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); 9215 9216 /** 9217 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9218 */ 9219 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); 9220 9221 /** 9222 * ビットマップデータからグラフィックハンドルを作成する 9223 */ 9224 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); 9225 9226 /** 9227 * ビットマップデータから既存のグラフィックハンドルにデータを転送する 9228 */ 9229 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); 9230 9231 /** 9232 * ビットマップデータから分割グラフィックハンドルを作成する 9233 */ 9234 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); 9235 9236 /** 9237 * ビットマップデータから分割グラフィックハンドルを作成する( float版 ) 9238 */ 9239 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); 9240 9241 /** 9242 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する 9243 */ 9244 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); 9245 9246 /** 9247 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9248 */ 9249 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); 9250 9251 /** 9252 * 基本イメージデータからサイズを割り出し、それに合ったグラフィックハンドルを作成する 9253 */ 9254 extern int CreateDXGraph(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag); 9255 9256 /** 9257 * 基本イメージデータからグラフィックハンドルを作成する 9258 */ 9259 extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int TextureFlag = dxlib_d.dxdatatype.TRUE, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9260 9261 /** 9262 * 基本イメージデータからグラフィックハンドルを作成する 9263 */ 9264 extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag = dxlib_d.dxdatatype.TRUE, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9265 9266 /** 9267 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する 9268 */ 9269 extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int GrHandle, int TextureFlag = dxlib_d.dxdatatype.TRUE, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9270 9271 /** 9272 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する 9273 */ 9274 extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int GrHandle, int TextureFlag = dxlib_d.dxdatatype.TRUE, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9275 9276 /** 9277 * 基本イメージデータから分割グラフィックハンドルを作成する 9278 */ 9279 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); 9280 9281 /** 9282 * 基本イメージデータから分割グラフィックハンドルを作成する( float版 ) 9283 */ 9284 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); 9285 9286 /** 9287 * 基本イメージデータから分割グラフィックハンドルを作成する 9288 */ 9289 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); 9290 9291 /** 9292 * 基本イメージデータから分割グラフィックハンドルを作成する( float版 ) 9293 */ 9294 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); 9295 9296 /** 9297 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9298 */ 9299 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); 9300 9301 /** 9302 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9303 */ 9304 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); 9305 9306 /** 9307 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9308 */ 9309 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); 9310 9311 /** 9312 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9313 */ 9314 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); 9315 9316 /** 9317 * メモリ上のビットマップイメージからグラフィックハンドルを作成する 9318 */ 9319 extern int CreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, const (void)* AlphaImage = null, int GrHandle = -1); 9320 9321 /** 9322 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する 9323 */ 9324 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); 9325 9326 /** 9327 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する( float版 ) 9328 */ 9329 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); 9330 9331 /** 9332 * メモリ上のビットマップイメージからグラフィックハンドルを再作成する 9333 */ 9334 extern int ReCreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, int GrHandle, const (void)* AlphaImage = null); 9335 9336 version (DX_NON_SOFTIMAGE) { 9337 } else { 9338 /** 9339 * ソフトウエアで扱うイメージからブレンド用画像グラフィックハンドルを作成する 9340 * 9341 * Returns: -1:エラー -1以外:ブレンド用グラフィックハンドル 9342 */ 9343 extern int CreateBlendGraphFromSoftImage(int SIHandle); 9344 9345 /** 9346 * ソフトウエアで扱うイメージからグラフィックハンドルを作成する 9347 * 9348 * Returns: -1:エラー -1以外:グラフィックハンドル 9349 */ 9350 extern int CreateGraphFromSoftImage(int SIHandle); 9351 9352 /** 9353 * ソフトウエアで扱うイメージの指定の領域を使ってグラフィックハンドルを作成する 9354 * 9355 * Returns: -1:エラー -1以外:グラフィックハンドル 9356 */ 9357 extern int CreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY); 9358 9359 /** 9360 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する 9361 */ 9362 extern int ReCreateGraphFromSoftImage(int SIHandle, int GrHandle); 9363 9364 /** 9365 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する 9366 */ 9367 extern int ReCreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY, int GrHandle); 9368 9369 /** 9370 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する 9371 */ 9372 extern int CreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray); 9373 9374 /** 9375 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する( float版 ) 9376 */ 9377 extern int CreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray); 9378 9379 /** 9380 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する 9381 */ 9382 extern int ReCreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray); 9383 9384 /** 9385 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9386 */ 9387 extern int ReCreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray); 9388 } 9389 9390 /** 9391 * 基本イメージデータからグラフィックハンドルを作成する 9392 */ 9393 extern int CreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage); 9394 9395 /** 9396 * 基本イメージデータの指定の領域を使ってグラフィックハンドルを作成する 9397 */ 9398 extern int CreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY); 9399 9400 /** 9401 * 基本イメージデータから既存のグラフィックハンドルに画像データを転送する 9402 */ 9403 extern int ReCreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage, int GrHandle); 9404 9405 /** 9406 * 基本イメージデータの指定の領域を使って既存のグラフィックハンドルに画像データを転送する 9407 */ 9408 extern int ReCreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY, int GrHandle); 9409 9410 /** 9411 * 基本イメージデータから分割グラフィックハンドルを作成する 9412 */ 9413 extern int CreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray); 9414 9415 /** 9416 * 基本イメージデータから分割グラフィックハンドルを作成する( float版 ) 9417 */ 9418 extern int CreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray); 9419 9420 /** 9421 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9422 */ 9423 extern int ReCreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray); 9424 9425 /** 9426 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する( float版 ) 9427 */ 9428 extern int ReCreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray); 9429 9430 /** 9431 * 画像ファイルからグラフィックハンドルへ画像データを転送する 9432 */ 9433 extern int ReloadGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int GrHandle, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9434 9435 /** 9436 * 画像ファイルからグラフィックハンドルへ画像データを転送する 9437 */ 9438 extern int ReloadGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int GrHandle, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 9439 9440 /** 9441 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する 9442 */ 9443 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); 9444 9445 /** 9446 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する 9447 */ 9448 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); 9449 9450 /** 9451 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する( float版 ) 9452 */ 9453 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); 9454 9455 /** 9456 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する( float版 ) 9457 */ 9458 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); 9459 9460 /** 9461 * ReloadGraph の画像反転処理追加版 9462 */ 9463 extern int ReloadReverseGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int GrHandle); 9464 9465 /** 9466 * ReloadGraph の画像反転処理追加版 9467 */ 9468 extern int ReloadReverseGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int GrHandle); 9469 9470 /** 9471 * ReloadDivGraph の画像反転処理追加版 9472 */ 9473 extern int ReloadReverseDivGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray); 9474 9475 /** 9476 * ReloadDivGraph の画像反転処理追加版 9477 */ 9478 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); 9479 9480 /** 9481 * ReloadDivGraph の画像反転処理追加版( float版 ) 9482 */ 9483 extern int ReloadReverseDivGraphF(const (dxlib_d.dxdatatype.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray); 9484 9485 /** 9486 * ReloadDivGraph の画像反転処理追加版( float版 ) 9487 */ 9488 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); 9489 9490 // グラフィックハンドル作成時設定係関数 9491 9492 /** 9493 * SetCreateGraphColorBitDepth の旧名称 9494 */ 9495 extern int SetGraphColorBitDepth(int ColorBitDepth); 9496 9497 /** 9498 * GetCreateGraphColorBitDepth の旧名称 9499 */ 9500 extern int GetGraphColorBitDepth(); 9501 9502 /** 9503 * 作成するグラフィックハンドルの色深度を設定する 9504 */ 9505 extern int SetCreateGraphColorBitDepth(int BitDepth); 9506 9507 /** 9508 * 作成するグラフィックハンドルの色深度を取得する 9509 */ 9510 extern int GetCreateGraphColorBitDepth(); 9511 9512 /** 9513 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を設定する 9514 */ 9515 extern int SetCreateGraphChannelBitDepth(int BitDepth); 9516 9517 /** 9518 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を取得する 9519 */ 9520 extern int GetCreateGraphChannelBitDepth(); 9521 9522 /** 9523 * SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定する 9524 * 9525 * Params: 9526 * Flag = TRUE:描画可能グラフィックハンドルを作成する FLASE:通常のグラフィックハンドルを作成する( デフォルト ) 9527 */ 9528 extern int SetDrawValidGraphCreateFlag(int Flag); 9529 9530 /** 9531 * SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定を取得する 9532 */ 9533 extern int GetDrawValidGraphCreateFlag(); 9534 9535 /** 9536 * SetDrawValidGraphCreateFlag の旧名称 9537 */ 9538 extern int SetDrawValidFlagOf3DGraph(int Flag); 9539 9540 /** 9541 * 画像ファイルからグラフィックハンドルを作成する際に画像左上の色を透過色として扱うかどうかを設定する 9542 * 9543 * Params: 9544 * Flag = TRUE:透過色として扱う FALSE:透過色として扱わない( デフォルト ) 9545 */ 9546 extern int SetLeftUpColorIsTransColorFlag(int Flag); 9547 9548 /** 9549 * 読み込む画像がパレット画像の場合、パレット画像として使用できる場合はパレット画像として使用するかどうかを設定する 9550 * 9551 * Params: 9552 * Flag = TRUE:パレット画像として使用できる場合はパレット画像として使用する( デフォルト ) FALSE:パレット画像として使用できる場合もパレット画像としては使用しない( 通常タイプの画像に変換して使用する ) 9553 */ 9554 extern int SetUsePaletteGraphFlag(int Flag); 9555 9556 /** 9557 * ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を行う 9558 * 9559 * Params: 9560 * Flag = TRUE:ブレンド画像として読み込む FALSE:通常画像として読み込む( デフォルト ) 9561 */ 9562 extern int SetUseBlendGraphCreateFlag(int Flag); 9563 9564 /** 9565 * ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を取得する 9566 */ 9567 extern int GetUseBlendGraphCreateFlag(); 9568 9569 /** 9570 * アルファテストを使用するグラフィックハンドルを作成するかどうかを設定する 9571 * 9572 * Params: 9573 * Flag = TRUE:アルファテストを使用する( デフォルト ) FALSE:アルファテストを使用しない 9574 */ 9575 extern int SetUseAlphaTestGraphCreateFlag(int Flag); 9576 9577 /** 9578 * アルファテストを使用するグラフィックハンドルを作成するかどうかを取得する 9579 */ 9580 extern int GetUseAlphaTestGraphCreateFlag(); 9581 9582 /** 9583 * SetUseAlphaTestGraphCreateFlag の旧名称 9584 */ 9585 extern int SetUseAlphaTestFlag(int Flag); 9586 9587 /** 9588 * GetUseAlphaTestGraphCreateFlag の旧名称 9589 */ 9590 extern int GetUseAlphaTestFlag(); 9591 9592 /** 9593 * キューブマップテクスチャを作成するかどうかのフラグを設定する 9594 */ 9595 extern int SetCubeMapTextureCreateFlag(int Flag); 9596 9597 /** 9598 * キューブマップテクスチャを作成するかどうかのフラグを取得する 9599 */ 9600 extern int GetCubeMapTextureCreateFlag(); 9601 9602 /** 9603 * SetDrawBlendMode 関数の第1引数に DX_BLENDMODE_NOBLEND を代入した際に、デフォルトでは第二引数は内部で255を指定したことになるが、その自動255化をしないかどうかを設定する。αチャンネル付き画像に対して描画を行う場合のみ意味がある関数 9604 * 9605 * Params: 9606 * Flag = TRUE:しない(第二引数の値が使用される) FALSE:する(第二引数の値は無視されて 255 が常に使用される)(デフォルト) 9607 */ 9608 extern int SetUseNoBlendModeParam(int Flag); 9609 9610 /** 9611 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません ) 9612 * 9613 * Params: 9614 * Flag = TRUE:αチャンネル付き FALSE:αチャンネルなし( デフォルト ) 9615 */ 9616 extern int SetDrawValidAlphaChannelGraphCreateFlag(int Flag); 9617 9618 /** 9619 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを取得する 9620 */ 9621 extern int GetDrawValidAlphaChannelGraphCreateFlag(); 9622 9623 /** 9624 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )、グラフィックスデバイスが浮動小数点型のピクセルフォーマットに対応していない場合はグラフィックハンドルの作成に失敗する 9625 * 9626 * Params: 9627 * Flag = TRUE:浮動小数点型 FALSE:整数型( デフォルト ) 9628 */ 9629 extern int SetDrawValidFloatTypeGraphCreateFlag(int Flag); 9630 9631 /** 9632 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを取得する 9633 */ 9634 extern int GetDrawValidFloatTypeGraphCreateFlag(); 9635 9636 /** 9637 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを設定する 9638 * 9639 * Params: 9640 * Flag = TRUE:専用のZバッファを作成する( デフォルト ) FALSE:専用のZバッファは作成しない 9641 */ 9642 extern int SetDrawValidGraphCreateZBufferFlag(int Flag); 9643 9644 /** 9645 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを取得する 9646 */ 9647 extern int GetDrawValidGraphCreateZBufferFlag(); 9648 9649 /** 9650 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するZバッファのビット深度を設定する( BitDepth:ビット深度( 指定可能な値は 16, 24, 32 の何れか( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません ) 9651 * 9652 * Params: 9653 * BitDepth = ? 9654 */ 9655 extern int SetCreateDrawValidGraphZBufferBitDepth(int BitDepth); 9656 9657 /** 9658 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するZバッファのビット深度を取得する 9659 */ 9660 extern int GetCreateDrawValidGraphZBufferBitDepth(); 9661 9662 /** 9663 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するMipMapのレベルを設定する 9664 */ 9665 extern int SetCreateDrawValidGraphMipLevels(int MipLevels); 9666 9667 /** 9668 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するMipMapのレベルを取得する 9669 */ 9670 extern int GetCreateDrawValidGraphMipLevels(); 9671 9672 /** 9673 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を設定する( ChannelNum:チャンネル数( 指定可能な値は 1, 2, 4 の何れか( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません ) 9674 * 9675 * Params: 9676 * ChannelNum = ? 9677 */ 9678 extern int SetCreateDrawValidGraphChannelNum(int ChannelNum); 9679 9680 /** 9681 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を取得する 9682 */ 9683 extern int GetCreateDrawValidGraphChannelNum(); 9684 9685 /** 9686 * SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するマルチサンプリング( アンチエイリアシング )設定を行う( Samples:マルチサンプル処理に使用するドット数( 多いほど重くなります ) Quality:マルチサンプル処理の品質 ) 9687 * 9688 * Params: 9689 * Samples = ? 9690 * Quality = ? 9691 */ 9692 extern int SetCreateDrawValidGraphMultiSample(int Samples, int Quality); 9693 9694 /** 9695 * SetCreateDrawValidGraphMultiSample の旧名称 9696 */ 9697 extern int SetDrawValidMultiSample(int Samples, int Quality); 9698 9699 /** 9700 * 指定のマルチサンプル数で使用できる最大クオリティ値を取得する( 戻り値がマイナスの場合は引数のサンプル数が使用できないことを示します ) 9701 */ 9702 extern int GetMultiSampleQuality(int Samples); 9703 9704 /** 9705 * 透過色機能を使用するかどうかを設定する 9706 * 9707 * Params: 9708 * Flag = TRUE:使用する( デフォルト ) FALSE:使用しない 9709 */ 9710 extern int SetUseTransColor(int Flag); 9711 9712 /** 9713 * 透過色機能を使用することを前提とした画像データの読み込み処理を行うかどうかを設定する( TRUE にすると SetDrawMode(DX_DRAWMODE_BILINEAR); をした状態で DrawGraphF 等の浮動小数点型座標を受け取る関数で小数点以下の値を指定した場合に発生する描画結果の不自然を緩和する効果があります ( デフォルトは FALSE ) ) 9714 */ 9715 extern int SetUseTransColorGraphCreateFlag(int Flag); 9716 9717 /** 9718 * SetUseAlphaChannelGraphCreateFlag の旧名称 9719 */ 9720 extern int SetUseGraphAlphaChannel(int Flag); 9721 9722 /** 9723 * GetUseAlphaChannelGraphCreateFlag の旧名称 9724 */ 9725 extern int GetUseGraphAlphaChannel(); 9726 9727 /** 9728 * αチャンネル付きグラフィックハンドルを作成するかどうかを設定する 9729 * 9730 * Params: 9731 * Flag = TRUE:αチャンネル付き FALSE:αチャンネル無し 9732 */ 9733 extern int SetUseAlphaChannelGraphCreateFlag(int Flag); 9734 9735 /** 9736 * αチャンネル付きグラフィックハンドルを作成するかどうかを取得する 9737 * 9738 * Returns: TRUE:αチャンネル付き FALSE:αチャンネル無し 9739 */ 9740 extern int GetUseAlphaChannelGraphCreateFlag(); 9741 9742 /** 9743 * Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを設定する、管理機能を使用するとグラフィックスデバイスのVRAM容量以上の画像を扱うことができる代わりにシステムメモリの使用量が増えます 9744 * 9745 * Params: 9746 * Flag = TRUE:管理機能を使用する( デフォルト ) FALSE:管理機能を使用しない 9747 */ 9748 extern int SetUseNotManageTextureFlag(int Flag); 9749 9750 /** 9751 * Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを取得する 9752 */ 9753 extern int GetUseNotManageTextureFlag(); 9754 9755 /** 9756 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを指定する( Direct3D9環境なら DX_TEXTUREFORMAT_DIRECT3D9_R8G8B8 など、0 を渡すと解除 ) 9757 */ 9758 extern int SetUsePlatformTextureFormat(int PlatformTextureFormat); 9759 9760 /** 9761 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを取得する 9762 */ 9763 extern int GetUsePlatformTextureFormat(); 9764 9765 /** 9766 * 作成するグラフィックハンドルに適用する透過色を設定する 9767 * 9768 * Params: 9769 * Red = 透過色を光の3原色で表したもの( 0〜255 ) 9770 * Green = 透過色を光の3原色で表したもの( 0〜255 ) 9771 * Blue = 透過色を光の3原色で表したもの( 0〜255 ) 9772 */ 9773 extern int SetTransColor(int Red, int Green, int Blue); 9774 9775 /** 9776 * 作成するグラフィックハンドルに適用する透過色を取得する 9777 */ 9778 extern int GetTransColor(int* Red, int* Green, int* Blue); 9779 9780 /** 9781 * 2のn乗ではないサイズの画像を複数のテクスチャを使用してVRAMの無駄を省くかどうかを設定する、複数のテクスチャを使用する場合はVRAM容量の節約ができる代わりに速度の低下やバイリニアフィルタリング描画時にテクスチャとテクスチャの境目が良く見るとわかる等の弊害があります 9782 * 9783 * Params: 9784 * Flag = TRUE:複数のテクスチャを使用する FALSE:なるべく1枚のテクスチャで済ます( デフォルト ) 9785 */ 9786 extern int SetUseDivGraphFlag(int Flag); 9787 9788 /** 9789 * LoadGraph などの際にファイル名の末尾に _a が付いたアルファチャンネル用の画像ファイルを追加で読み込む処理を行うかどうかを設定する 9790 * 9791 * Params: 9792 * Flag = TRUE:行う( デフォルト ) FALSE:行わない 9793 */ 9794 extern int SetUseAlphaImageLoadFlag(int Flag); 9795 9796 /** 9797 * 使用するテクスチャーの最大サイズを設定する( デフォルトではグラフィックスデバイスが対応している最大テクスチャーサイズ、引数に 0 を渡すとデフォルト設定になります ) 9798 */ 9799 extern int SetUseMaxTextureSize(int Size); 9800 9801 /** 9802 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを設定する、バックアップをしないとメモリの節約になりますが、復帰に掛かる時間が長くなり、メモリ上のファイルイメージからグラフィックハンドルを作成した場合は自動復帰ができないなどの弊害があります 9803 * 9804 * Params: 9805 * Flag = TRUE:バックアップをする( デフォルト ) FALSE:バックアップをしない 9806 */ 9807 extern int SetUseGraphBaseDataBackup(int Flag); 9808 9809 /** 9810 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを取得する 9811 */ 9812 extern int GetUseGraphBaseDataBackup(); 9813 9814 /** 9815 * ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを設定する 9816 * 9817 * Params: 9818 * Flag = TRUE:システムメモリ上に作成 FALSE:VRAM上に作成( デフォルト ) 9819 */ 9820 extern int SetUseSystemMemGraphCreateFlag(int Flag); 9821 9822 /** 9823 * ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを取得する 9824 */ 9825 extern int GetUseSystemMemGraphCreateFlag(); 9826 9827 // 画像情報関係関数 9828 9829 /** 9830 * 指定のグラフィックハンドルのARGB8イメージを取得する( 現在動画ファイルをグラフィックハンドルで読み込んだ場合のみ使用可能 ) 9831 */ 9832 extern const (uint)* GetFullColorImage(int GrHandle); 9833 9834 /** 9835 * グラフィックメモリ領域のロック 9836 */ 9837 extern int GraphLock(int GrHandle, int* PitchBuf, void** DataPointBuf, .COLORDATA** ColorDataPP = null, int WriteOnly = dxlib_d.dxdatatype.FALSE); 9838 9839 /** 9840 * グラフィックメモリ領域のロック解除 9841 */ 9842 extern int GraphUnLock(int GrHandle); 9843 9844 /** 9845 * グラフィックハンドル専用のZバッファを持つかどうかを設定する 9846 * 9847 * Params: 9848 * GrHandle = 対象となるグラフィックハンドル( 描画対象として使用可能なグラフィックハンドルのみ有効 ) 9849 * UseFlag = 専用のZバッファを持つかどうか( TRUE:持つ( デフォルト ) FALSE:持たない ) 9850 * BitDepth = ビット深度( 16 or 24 or 32 ) 9851 */ 9852 extern int SetUseGraphZBuffer(int GrHandle, int UseFlag, int BitDepth = -1); 9853 9854 /** 9855 * グラフィックハンドルのZバッファの状態を別のグラフィックハンドルのZバッファにコピーする( DestGrHandle も SrcGrHandle もZバッファを持っている描画対象にできるグラフィックハンドルで、サイズが同じであり、且つマルチサンプリング( アンチエイリアス )設定が無いことが条件 ) 9856 */ 9857 extern int CopyGraphZBufferImage(int DestGrHandle, int SrcGrHandle); 9858 9859 /** 9860 * グラフィックスデバイスのデバイスロスト発生時に指定のグラフィックハンドルを削除するかどうかを設定する 9861 * 9862 * Params: 9863 * GrHandle = ? 9864 * DeleteFlag = TRUE:デバイスロスト時に削除する FALSE:デバイスロストが発生しても削除しない 9865 */ 9866 extern int SetDeviceLostDeleteGraphFlag(int GrHandle, int DeleteFlag); 9867 9868 /** 9869 * グラフィックハンドルが持つ画像のサイズを得る 9870 */ 9871 extern int GetGraphSize(int GrHandle, int* SizeXBuf, int* SizeYBuf); 9872 9873 /** 9874 * グラフィックハンドルが持つ画像のサイズを得る( float型 ) 9875 */ 9876 extern int GetGraphSizeF(int GrHandle, float* SizeXBuf, float* SizeYBuf); 9877 9878 /** 9879 * グラフィックハンドルが持つ1つ目のテクスチャのサイズを得る 9880 */ 9881 extern int GetGraphTextureSize(int GrHandle, int* SizeXBuf, int* SizeYBuf); 9882 9883 /** 9884 * LoadDivGraph や DerivationGraph で元画像の一部分を使用している場合に、指定のグラフィックハンドルが使用している元画像の範囲を取得する 9885 */ 9886 extern int GetGraphUseBaseGraphArea(int GrHandle, int* UseX, int* UseY, int* UseSizeX, int* UseSizeY); 9887 9888 /** 9889 * グラフィックハンドルが持つテクスチャのミップマップレベル数を取得する 9890 */ 9891 extern int GetGraphMipmapCount(int GrHandle); 9892 9893 /** 9894 * グラフィックハンドルが画像ファイルから読み込まれていた場合、その画像のファイルパスを取得する 9895 */ 9896 extern int GetGraphFilePath(int GrHandle, dxlib_d.dxdatatype.TCHAR* FilePathBuffer); 9897 9898 /** 9899 * 指定のグラフィックハンドルが描画対象にできる( SetDrawScreen の引数に渡せる )グラフィックハンドルかどうかを取得する 9900 * 9901 * Returns: TRUE:描画対象にできるグラフィックハンドル FALSE:描画対象にできないグラフィックハンドル 9902 */ 9903 extern int CheckDrawValidGraph(int GrHandle); 9904 9905 /** 9906 * カラーデータを得る 9907 */ 9908 extern const (.COLORDATA)* GetTexColorData(int AlphaCh, int AlphaTest, int ColorBitDepth, int DrawValid = dxlib_d.dxdatatype.FALSE); 9909 9910 /** 9911 * フォーマットに基づいたカラーデータを得る 9912 */ 9913 extern const (.COLORDATA)* GetTexColorData(const (.IMAGEFORMATDESC)* Format); 9914 9915 /** 9916 * 指定のフォーマットインデックスのカラーデータを得る 9917 */ 9918 extern const (.COLORDATA)* GetTexColorData(int FormatIndex); 9919 9920 /** 9921 * グラフィックスデバイスが対応している最大テクスチャサイズを取得する 9922 */ 9923 extern int GetMaxGraphTextureSize(int* SizeX, int* SizeY); 9924 9925 /** 9926 * グラフィックハンドルの画像を復元する関数が登録されているかどうかを取得する 9927 * 9928 * Returns: TRUE:登録されている FALSE:登録されていない 9929 */ 9930 extern int GetValidRestoreShredPoint(); 9931 9932 /** 9933 * ( 現在効果なし )これから新たにグラフィックを作成する場合に使用するカラー情報を取得する 9934 */ 9935 extern int GetCreateGraphColorData(.COLORDATA* ColorData, .IMAGEFORMATDESC* Format); 9936 9937 // 画像パレット操作関係関数( ソフトウエア画像のみ使用可能 ) 9938 9939 /** 9940 * グラフィックハンドルのパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 ) 9941 */ 9942 extern int GetGraphPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue); 9943 9944 /** 9945 * グラフィックハンドルの SetGraphPalette で変更する前のパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 ) 9946 */ 9947 extern int GetGraphOriginalPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue); 9948 9949 /** 9950 * グラフィックハンドルのパレットを変更する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 ) 9951 */ 9952 extern int SetGraphPalette(int GrHandle, int ColorIndex, uint Color); 9953 9954 /** 9955 * SetGraphPalette で変更したパレットを全て元に戻す( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 ) 9956 */ 9957 extern int ResetGraphPalette(int GrHandle); 9958 9959 // 図形描画関数 9960 9961 /** 9962 * 線を描画する 9963 */ 9964 extern int DrawLine(int x1, int y1, int x2, int y2, uint Color, int Thickness = 1); 9965 9966 /** 9967 * 線を描画する( アンチエイリアス付き ) 9968 */ 9969 extern int DrawLineAA(float x1, float y1, float x2, float y2, uint Color, float Thickness = 1.0f); 9970 9971 /** 9972 * 四角形を描画する 9973 */ 9974 extern int DrawBox(int x1, int y1, int x2, int y2, uint Color, int FillFlag); 9975 9976 /** 9977 * 四角形を描画する( アンチエイリアス付き ) 9978 */ 9979 extern int DrawBoxAA(float x1, float y1, float x2, float y2, uint Color, int FillFlag, float LineThickness = 1.0f); 9980 9981 /** 9982 * 中身を塗りつぶす四角形を描画する 9983 */ 9984 extern int DrawFillBox(int x1, int y1, int x2, int y2, uint Color); 9985 9986 /** 9987 * 枠だけの四角形の描画 する 9988 */ 9989 extern int DrawLineBox(int x1, int y1, int x2, int y2, uint Color); 9990 9991 /** 9992 * 円を描画する 9993 */ 9994 extern int DrawCircle(int x, int y, int r, uint Color, int FillFlag = dxlib_d.dxdatatype.TRUE, int LineThickness = 1); 9995 9996 /** 9997 * 円を描画する( アンチエイリアス付き ) 9998 */ 9999 extern int DrawCircleAA(float x, float y, float r, int posnum, uint Color, int FillFlag = dxlib_d.dxdatatype.TRUE, float LineThickness = 1.0f); 10000 10001 /** 10002 * 楕円を描画する 10003 */ 10004 extern int DrawOval(int x, int y, int rx, int ry, uint Color, int FillFlag, int LineThickness = 1); 10005 10006 /** 10007 * 楕円を描画する( アンチエイリアス付き ) 10008 */ 10009 extern int DrawOvalAA(float x, float y, float rx, float ry, int posnum, uint Color, int FillFlag, float LineThickness = 1.0f); 10010 10011 /** 10012 * 指定の矩形に収まる円( 楕円 )を描画する 10013 */ 10014 extern int DrawOval_Rect(int x1, int y1, int x2, int y2, uint Color, int FillFlag); 10015 10016 /** 10017 * 三角形を描画する 10018 */ 10019 extern int DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint Color, int FillFlag); 10020 10021 /** 10022 * 三角形を描画する( アンチエイリアス付き ) 10023 */ 10024 extern int DrawTriangleAA(float x1, float y1, float x2, float y2, float x3, float y3, uint Color, int FillFlag, float LineThickness = 1.0f); 10025 10026 /** 10027 * 四角形を描画する 10028 */ 10029 extern int DrawQuadrangle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FillFlag); 10030 10031 /** 10032 * 四角形を描画する( アンチエイリアス付き ) 10033 */ 10034 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); 10035 10036 /** 10037 * 角の丸い四角形を描画する 10038 */ 10039 extern int DrawRoundRect(int x1, int y1, int x2, int y2, int rx, int ry, uint Color, int FillFlag); 10040 10041 /** 10042 * 角の丸い四角形を描画する( アンチエイリアス付き ) 10043 */ 10044 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); 10045 10046 /** 10047 * DrawTriangleAA などのアンチエイリアス付き図形描画の準備を行う 10048 */ 10049 extern int BeginAADraw(); 10050 10051 /** 10052 * DrawTriangleAA などのアンチエイリアス付き図形描画の後始末を行う 10053 */ 10054 extern int EndAADraw(); 10055 10056 /** 10057 * 点を描画する 10058 */ 10059 extern int DrawPixel(int x, int y, uint Color); 10060 10061 /** 10062 * 指定点から境界色があるところまで塗りつぶす(境界色を -1 にすると指定点の色の領域を塗りつぶす) 10063 */ 10064 extern int Paint(int x, int y, uint FillColor, dxlib_d.dxdatatype.ULONGLONG BoundaryColor = 0xFFFFFFFFFFFFFFFFUL); 10065 10066 /** 10067 * 点の集合を描画する 10068 */ 10069 extern int DrawPixelSet(const (.POINTDATA)* PointDataArray, int Num); 10070 10071 /** 10072 * 線の集合を描画する 10073 */ 10074 extern int DrawLineSet(const (.LINEDATA)* LineDataArray, int Num); 10075 10076 /** 10077 * 3Dの点を描画する 10078 */ 10079 extern int DrawPixel3D(.VECTOR Pos, uint Color); 10080 10081 /** 10082 * 3Dの点を描画する 10083 */ 10084 extern int DrawPixel3DD(.VECTOR_D Pos, uint Color); 10085 10086 /** 10087 * 3Dの線分を描画する 10088 */ 10089 extern int DrawLine3D(.VECTOR Pos1, .VECTOR Pos2, uint Color); 10090 10091 /** 10092 * 3Dの線分を描画する 10093 */ 10094 extern int DrawLine3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint Color); 10095 10096 /** 10097 * 3Dの三角形を描画する 10098 */ 10099 extern int DrawTriangle3D(.VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, uint Color, int FillFlag); 10100 10101 /** 10102 * 3Dの三角形を描画する 10103 */ 10104 extern int DrawTriangle3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, .VECTOR_D Pos3, uint Color, int FillFlag); 10105 10106 /** 10107 * 3Dの立方体を描画する 10108 */ 10109 extern int DrawCube3D(.VECTOR Pos1, .VECTOR Pos2, uint DifColor, uint SpcColor, int FillFlag); 10110 10111 /** 10112 * 3Dの立方体を描画する 10113 */ 10114 extern int DrawCube3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint DifColor, uint SpcColor, int FillFlag); 10115 10116 /** 10117 * 3Dの立方体の集合を描画する 10118 */ 10119 extern int DrawCubeSet3D(.CUBEDATA* CubeDataArray, int Num, int FillFlag); 10120 10121 /** 10122 * 3Dの球体を描画する 10123 */ 10124 extern int DrawSphere3D(.VECTOR CenterPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10125 10126 /** 10127 * 3Dの球体を描画する 10128 */ 10129 extern int DrawSphere3DD(.VECTOR_D CenterPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10130 10131 /** 10132 * 3Dのカプセルを描画する 10133 */ 10134 extern int DrawCapsule3D(.VECTOR Pos1, .VECTOR Pos2, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10135 10136 /** 10137 * 3Dのカプセルを描画する 10138 */ 10139 extern int DrawCapsule3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10140 10141 /** 10142 * 3Dの円錐を描画する 10143 */ 10144 extern int DrawCone3D(.VECTOR TopPos, .VECTOR BottomPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10145 10146 /** 10147 * 3Dの円錐を描画する 10148 */ 10149 extern int DrawCone3DD(.VECTOR_D TopPos, .VECTOR_D BottomPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10150 10151 // 画像描画関数 10152 10153 /** 10154 * 画像ファイルを読みこんで画面に描画する 10155 */ 10156 extern int LoadGraphScreen(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* GraphName, int TransFlag); 10157 10158 /** 10159 * 画像ファイルを読みこんで画面に描画する 10160 */ 10161 extern int LoadGraphScreenWithStrLen(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* GraphName, size_t GraphNameLength, int TransFlag); 10162 10163 /** 10164 * 画像の等倍描画 10165 */ 10166 extern int DrawGraph(int x, int y, int GrHandle, int TransFlag); 10167 10168 /** 10169 * 画像の拡大描画 10170 */ 10171 extern int DrawExtendGraph(int x1, int y1, int x2, int y2, int GrHandle, int TransFlag); 10172 10173 /** 10174 * 画像の回転描画 10175 */ 10176 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); 10177 10178 /** 10179 * 画像の回転描画2( 回転中心指定付き ) 10180 */ 10181 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); 10182 10183 /** 10184 * 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 ) 10185 */ 10186 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); 10187 10188 /** 10189 * 画像の回転描画( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10190 */ 10191 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); 10192 10193 /** 10194 * 画像の回転描画2( 回転中心指定付き )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10195 */ 10196 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); 10197 10198 /** 10199 * 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10200 */ 10201 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); 10202 10203 /** 10204 * 画像の自由変形描画 10205 */ 10206 extern int DrawModiGraph(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int TransFlag); 10207 10208 /** 10209 * 画像の左右反転描画 10210 */ 10211 extern int DrawTurnGraph(int x, int y, int GrHandle, int TransFlag); 10212 10213 /** 10214 * 画像の反転描画 10215 */ 10216 extern int DrawReverseGraph(int x, int y, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.dxdatatype.FALSE, int ReverseYFlag = dxlib_d.dxdatatype.FALSE); 10217 10218 /** 10219 * 画像の描画( 座標指定が float 版 ) 10220 */ 10221 extern int DrawGraphF(float xf, float yf, int GrHandle, int TransFlag); 10222 10223 /** 10224 * 画像の拡大描画( 座標指定が float 版 ) 10225 */ 10226 extern int DrawExtendGraphF(float x1f, float y1f, float x2f, float y2, int GrHandle, int TransFlag); 10227 10228 /** 10229 * 画像の回転描画( 座標指定が float 版 ) 10230 */ 10231 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); 10232 10233 /** 10234 * 画像の回転描画2( 回転中心指定付き )( 座標指定が float 版 ) 10235 */ 10236 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); 10237 10238 /** 10239 * 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 ) 10240 */ 10241 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); 10242 10243 /** 10244 * 画像の回転描画( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10245 */ 10246 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); 10247 10248 /** 10249 * 画像の回転描画2( 回転中心指定付き )( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10250 */ 10251 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); 10252 10253 /** 10254 * 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10255 */ 10256 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); 10257 10258 /** 10259 * 画像の自由変形描画( 座標指定が float 版 ) 10260 */ 10261 extern int DrawModiGraphF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag); 10262 10263 /** 10264 * 画像の左右反転描画( 座標指定が float 版 ) 10265 */ 10266 extern int DrawTurnGraphF(float xf, float yf, int GrHandle, int TransFlag); 10267 10268 /** 10269 * 画像の反転描画( 座標指定が float 版 ) 10270 */ 10271 extern int DrawReverseGraphF(float xf, float yf, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.dxdatatype.FALSE, int ReverseYFlag = dxlib_d.dxdatatype.FALSE); 10272 10273 /** 10274 * チップ画像を使った2Dマップ描画 10275 */ 10276 extern int DrawChipMap(int Sx, int Sy, int XNum, int YNum, const (int)* MapData, int ChipTypeNum, int MapDataPitch, const (int)* ChipGrHandle, int TransFlag); 10277 10278 /** 10279 * チップ画像を使った2Dマップ描画 10280 */ 10281 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); 10282 10283 /** 10284 * 画像を指定領域にタイル状に描画する 10285 */ 10286 extern int DrawTile(int x1, int y1, int x2, int y2, int Tx, int Ty, double ExtRate, double Angle, int GrHandle, int TransFlag); 10287 10288 /** 10289 * 画像の指定矩形部分のみを等倍描画 10290 */ 10291 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); 10292 10293 /** 10294 * 画像の指定矩形部分のみを拡大描画 10295 */ 10296 extern int DrawRectExtendGraph(int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag); 10297 10298 /** 10299 * 画像の指定矩形部分のみを回転描画 10300 */ 10301 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); 10302 10303 /** 10304 * 画像の指定矩形部分のみを回転描画2( 回転中心指定付き ) 10305 */ 10306 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); 10307 10308 /** 10309 * 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 ) 10310 */ 10311 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); 10312 10313 /** 10314 * 画像の指定矩形部分のみを回転描画( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10315 */ 10316 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); 10317 10318 /** 10319 * 画像の指定矩形部分のみを回転描画2( 回転中心指定付き )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10320 */ 10321 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); 10322 10323 /** 10324 * 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10325 */ 10326 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); 10327 10328 /** 10329 * 画像の指定矩形部分のみを自由変形描画 10330 */ 10331 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); 10332 10333 /** 10334 * 画像の指定矩形部分のみを等倍描画( 座標指定が float 版 ) 10335 */ 10336 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); 10337 10338 /** 10339 * 画像の指定矩形部分のみを拡大描画( 座標指定が float 版 ) 10340 */ 10341 extern int DrawRectExtendGraphF(float DestX1, float DestY1, float DestX2, float DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag); 10342 10343 /** 10344 * 画像の指定矩形部分のみを回転描画( 座標指定が float 版 ) 10345 */ 10346 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); 10347 10348 /** 10349 * 画像の指定矩形部分のみを回転描画2( 回転中心指定付き )( 座標指定が float 版 ) 10350 */ 10351 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); 10352 10353 /** 10354 * 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 ) 10355 */ 10356 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); 10357 10358 /** 10359 * 画像の指定矩形部分のみを回転描画( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10360 */ 10361 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); 10362 10363 /** 10364 * 画像の指定矩形部分のみを回転描画2( 回転中心指定付き )( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10365 */ 10366 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); 10367 10368 /** 10369 * 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10370 */ 10371 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); 10372 10373 /** 10374 * 画像の指定矩形部分のみを自由変形描画( 座標指定が float 版 ) 10375 */ 10376 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); 10377 10378 /** 10379 * ブレンド画像と合成して画像を等倍描画する 10380 */ 10381 extern int DrawBlendGraph(int x, int y, int GrHandle, int TransFlag, int BlendGraph, int BorderParam, int BorderRange); 10382 10383 /** 10384 * ブレンド画像と合成して画像を等倍描画する( ブレンド画像の起点座標を指定する引数付き ) 10385 */ 10386 extern int DrawBlendGraphPos(int x, int y, int GrHandle, int TransFlag, int bx, int by, int BlendGraph, int BorderParam, int BorderRange); 10387 10388 /** 10389 * 円グラフ的な描画を行う( GrHandle の画像の上下左右の端は透過色にしておく必要があります ) 10390 */ 10391 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); 10392 10393 /** 10394 * 円グラフ的な描画を行う( GrHandle の画像の上下左右の端は透過色にしておく必要があります )( 座標指定が float 版 ) 10395 */ 10396 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); 10397 10398 /** 10399 * Zバッファに対して画像の等倍描画 10400 */ 10401 extern int DrawGraphToZBuffer(int X, int Y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10402 10403 /** 10404 * Zバッファに対して画像の左右反転描画 10405 */ 10406 extern int DrawTurnGraphToZBuffer(int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10407 10408 /** 10409 * Zバッファに対して画像の反転描画 10410 */ 10411 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); 10412 10413 /** 10414 * Zバッファに対して画像の拡大描画 10415 */ 10416 extern int DrawExtendGraphToZBuffer(int x1, int y1, int x2, int y2, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10417 10418 /** 10419 * Zバッファに対して画像の回転描画 10420 */ 10421 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); 10422 10423 /** 10424 * Zバッファに対して画像の回転描画2( 回転中心指定付き ) 10425 */ 10426 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); 10427 10428 /** 10429 * Zバッファに対して画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 ) 10430 */ 10431 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); 10432 10433 /** 10434 * Zバッファに対して画像の回転描画( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10435 */ 10436 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); 10437 10438 /** 10439 * Zバッファに対して画像の回転描画2( 回転中心指定付き )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10440 */ 10441 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); 10442 10443 /** 10444 * Zバッファに対して画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です ) 10445 */ 10446 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); 10447 10448 /** 10449 * Zバッファに対して画像の自由変形描画 10450 */ 10451 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 等 */); 10452 10453 /** 10454 * Zバッファに対して矩形の描画 10455 */ 10456 extern int DrawBoxToZBuffer(int x1, int y1, int x2, int y2, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10457 10458 /** 10459 * Zバッファに対して円の描画 10460 */ 10461 extern int DrawCircleToZBuffer(int x, int y, int r, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10462 10463 /** 10464 * Zバッファに対して三角形を描画する 10465 */ 10466 extern int DrawTriangleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10467 10468 /** 10469 * Zバッファに対して四角形を描画する 10470 */ 10471 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 等 */); 10472 10473 /** 10474 * Zバッファに対して角の丸い四角形を描画する 10475 */ 10476 extern int DrawRoundRectToZBuffer(int x1, int y1, int x2, int y2, int rx, int ry, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */); 10477 10478 /** 10479 * 2Dポリゴンを描画する 10480 * 10481 * Params: 10482 * Vertex = 三角形を形成する頂点配列の先頭アドレス( 頂点の数はポリゴンの数×3 ) 10483 * PolygonNum = 描画するポリゴンの数 10484 * GrHandle = 使用するグラフィックハンドル 10485 * TransFlag = 透過色処理を行うかどうか( TRUE:行う FALSE:行わない ) 10486 * UVScaling = 基本FALSEでOK 10487 */ 10488 extern int DrawPolygon(const (.VERTEX)* VertexArray, int PolygonNum, int GrHandle, int TransFlag, int UVScaling = dxlib_d.dxdatatype.FALSE); 10489 10490 /** 10491 * 2Dポリゴンを描画する 10492 */ 10493 extern int DrawPolygon2D(const (.VERTEX2D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10494 10495 /** 10496 * 3Dポリゴンを描画する 10497 */ 10498 extern int DrawPolygon3D(const (.VERTEX3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10499 10500 /** 10501 * 2Dポリゴンを描画する( 頂点インデックスを使用 ) 10502 */ 10503 extern int DrawPolygonIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag); 10504 10505 /** 10506 * 3Dポリゴンを描画する( 頂点インデックスを使用 ) 10507 */ 10508 extern int DrawPolygonIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag); 10509 10510 /** 10511 * 3Dポリゴンを描画する( 頂点インデックスを使用 )( 旧バージョン用 ) 10512 */ 10513 extern int DrawPolygonIndexed3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10514 10515 /** 10516 * 3Dポリゴンを描画する( 旧バージョン用 ) 10517 */ 10518 extern int DrawPolygon3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10519 10520 /** 10521 * 3Dポリゴンを描画する( 旧バージョン用 ) 10522 */ 10523 extern int DrawPolygon3D(const (.VERTEX_3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10524 10525 /** 10526 * 2Dプリミティブを描画する 10527 */ 10528 extern int DrawPolygonBase(const (.VERTEX)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag, int UVScaling = dxlib_d.dxdatatype.FALSE); 10529 10530 /** 10531 * 2Dプリミティブを描画する 10532 */ 10533 extern int DrawPrimitive2D(const (.VERTEX2D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10534 10535 /** 10536 * 3Dプリミティブを描画する 10537 */ 10538 extern int DrawPrimitive3D(const (.VERTEX3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10539 10540 /** 10541 * 2Dプリミティブを描画する(頂点インデックス使用) 10542 */ 10543 extern int DrawPrimitiveIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10544 10545 /** 10546 * 3Dプリミティブを描画する(頂点インデックス使用) 10547 */ 10548 extern int DrawPrimitiveIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10549 10550 /** 10551 * 頂点バッファを使用して3Dポリゴンを描画する 10552 */ 10553 extern int DrawPolygon3D_UseVertexBuffer(int VertexBufHandle, int GrHandle, int TransFlag); 10554 10555 /** 10556 * 頂点バッファを使用して3Dプリミティブを描画する 10557 */ 10558 extern int DrawPrimitive3D_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10559 10560 /** 10561 * 頂点バッファを使用して3Dプリミティブを描画する 10562 */ 10563 extern int DrawPrimitive3D_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int StartVertex, int UseVertexNum, int GrHandle, int TransFlag); 10564 10565 /** 10566 * 頂点バッファとインデックスバッファを使用して3Dポリゴンを描画する 10567 */ 10568 extern int DrawPolygonIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int GrHandle, int TransFlag); 10569 10570 /** 10571 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する 10572 */ 10573 extern int DrawPrimitiveIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag); 10574 10575 /** 10576 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する 10577 */ 10578 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); 10579 10580 /** 10581 * 画像の3D描画 10582 */ 10583 extern int DrawGraph3D(float x, float y, float z, int GrHandle, int TransFlag); 10584 10585 /** 10586 * 画像の拡大3D描画 10587 */ 10588 extern int DrawExtendGraph3D(float x, float y, float z, double ExRateX, double ExRateY, int GrHandle, int TransFlag); 10589 10590 /** 10591 * 画像の回転3D描画 10592 */ 10593 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); 10594 10595 /** 10596 * 画像の回転3D描画(回転中心指定型) 10597 */ 10598 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); 10599 10600 /** 10601 * 画像の自由変形3D描画 10602 */ 10603 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); 10604 10605 /** 10606 * 3D空間上に画像を描画 10607 */ 10608 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); 10609 10610 // 描画設定関係関数 10611 10612 /** 10613 * 描画モードを設定する 10614 */ 10615 extern int SetDrawMode(int DrawMode); 10616 10617 /** 10618 * 描画モードを取得する 10619 */ 10620 extern int GetDrawMode(); 10621 10622 /** 10623 * 描画ブレンドモードを設定する 10624 */ 10625 extern int SetDrawBlendMode(int BlendMode, int BlendParam); 10626 10627 /** 10628 * 描画ブレンドモードを取得する 10629 */ 10630 extern int GetDrawBlendMode(int* BlendMode, int* BlendParam); 10631 10632 /** 10633 * 描画時のアルファテストの設定を行う( TestMode:テストモード( DX_CMP_GREATER等 -1でデフォルト動作に戻す ) TestParam:描画アルファ値との比較に使用する値( 0〜255 ) ) 10634 * 10635 * Params: 10636 * TestMode = ? 10637 * TestParam = ? 10638 */ 10639 extern int SetDrawAlphaTest(int TestMode, int TestParam); 10640 10641 /** 10642 * 描画時のアルファテストの設定を取得する( TestMode:テストモード( DX_CMP_GREATER等 -1でデフォルト動作に戻す ) TestParam:描画アルファ値との比較に使用する値( 0〜255 ) ) 10643 * 10644 * Params: 10645 * TestMode = ? 10646 * TestParam = ? 10647 */ 10648 extern int GetDrawAlphaTest(int* TestMode, int* TestParam); 10649 10650 /** 10651 * ( SetBlendGraphParam の BlendType = DX_BLENDGRAPHTYPE_WIPE の処理を行う旧関数 )描画処理時に描画する画像とブレンドするαチャンネル付き画像をセットする( BlendGraph を -1 でブレンド機能を無効 ) 10652 */ 10653 extern int SetBlendGraph(int BlendGraph, int BorderParam, int BorderRange); 10654 10655 /** 10656 * 描画処理時に描画する画像とブレンドする画像のブレンド設定を行う、BlendGraph を -1 にすれば設定を解除、その場合 BlendType とその後ろのパラメータは無視される 10657 */ 10658 extern int SetBlendGraphParam(int BlendGraph, int BlendType, ...); 10659 10660 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_NORMAL, int Ratio = ( 0( ブレンド率0% )〜255( ブレンド率100% ) )); 10661 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_WIPE, int BorderParam = 境界位置(0〜255), int BorderRange = 境界幅(指定できる値は1、64、128、255の4つ)); 10662 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_ALPHA); 10663 10664 /** 10665 * ブレンド画像の起点座標をセットする 10666 */ 10667 extern int SetBlendGraphPosition(int x, int y); 10668 10669 /** 10670 * ブレンド画像の適応座標モードを設定する 10671 */ 10672 extern int SetBlendGraphPositionMode(int BlendGraphPositionMode /* DX_BLENDGRAPH_POSMODE_DRAWGRAPH など */); 10673 10674 /** 10675 * 描画輝度を設定する 10676 */ 10677 extern int SetDrawBright(int RedBright, int GreenBright, int BlueBright); 10678 10679 /** 10680 * 描画輝度を取得する 10681 */ 10682 extern int GetDrawBright(int* Red, int* Green, int* Blue); 10683 10684 /** 10685 * 描画先のアルファチャンネルの内容を書き換えるかを設定する 10686 * 10687 * Params: 10688 * Flag = FALSE:書き換えない TRUE:書き換える( デフォルト ) 10689 */ 10690 extern int SetWriteAlphaChannelFlag(int Flag); 10691 10692 /** 10693 * 描画先のアルファチャンネルの内容を書き換えるかを取得する 10694 * 10695 * Returns: FALSE:書き換えない TRUE:書き換える( デフォルト ) 10696 */ 10697 extern int GetWriteAlphaChannelFlag(); 10698 10699 /** 10700 * 描画先のアルファチャンネルの内容を書き換えないことができるかどうかを取得する 10701 * 10702 * Returns: TRUE:書き換えないことができる FALSE:書き換えないことができない 10703 */ 10704 extern int CheckSeparateAlphaBlendEnable(); 10705 10706 /** 10707 * 描画する画像のRGB成分を無視するかどうかを指定する 10708 * 10709 * Params: 10710 * EnableFlag = この機能を使うかどうか( TRUE:使う FALSE:使わない( デフォルト ) ) 10711 */ 10712 extern int SetIgnoreDrawGraphColor(int EnableFlag); 10713 10714 /** 10715 * 最大異方性値を設定する 10716 */ 10717 extern int SetMaxAnisotropy(int MaxAnisotropy); 10718 10719 /** 10720 * 最大異方性値を取得する 10721 */ 10722 extern int GetMaxAnisotropy(); 10723 10724 /** 10725 * 3D処理で使用する座標値が 10000000.0f などの大きな値になっても描画の崩れを小さく抑える処理を使用するかどうかを設定する、DxLib_Init の呼び出し前でのみ使用可能 10726 * 10727 * Params: 10728 * UseFlag = TRUE:描画の崩れを抑える処理を使用する( CPU負荷が上がります ) FALSE:描画の崩れを抑える処理は使用しない( デフォルト ) 10729 */ 10730 extern int SetUseLarge3DPositionSupport(int UseFlag); 10731 10732 /** 10733 * Zバッファを使用するかどうかを設定する( 2Dと3D描画に影響 ) 10734 * 10735 * Params: 10736 * Flag = TRUE:Zバッファを使用する FALSE:Zバッファを使用しない( デフォルト ) 10737 */ 10738 extern int SetUseZBufferFlag(int Flag); 10739 10740 /** 10741 * Zバッファに書き込みを行うかどうかを設定する( 2Dと3D描画に影響 ) 10742 * 10743 * Params: 10744 * Flag = TRUE:書き込みを行う FALSE:書き込みを行わない( デフォルト ) 10745 */ 10746 extern int SetWriteZBufferFlag(int Flag); 10747 10748 /** 10749 * ZバッファのZ値と書き込むZ値との比較モードを設定する( 2Dと3D描画に影響 ) 10750 * 10751 * Params: 10752 * CmpType = DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) 10753 */ 10754 extern int SetZBufferCmpType(int CmpType /* DX_CMP_NEVER 等 */); 10755 10756 /** 10757 * 書き込むZ値のバイアスを設定する( 2Dと3D描画に影響 )( Bias:バイアス値( デフォルト:0 ) ) 10758 * 10759 * Params: 10760 * Bias = ? 10761 */ 10762 extern int SetZBias(int Bias); 10763 10764 /** 10765 * Zバッファを使用するかどうかを設定する( 3D描画のみに影響 ) 10766 * 10767 * Params: 10768 * Flag = TRUE:Zバッファを使用する FALSE:Zバッファを使用しない( デフォルト ) 10769 */ 10770 extern int SetUseZBuffer3D(int Flag); 10771 10772 /** 10773 * Zバッファに書き込みを行うかどうかを設定する( 3D描画のみに影響 ) 10774 * 10775 * Params: 10776 * Flag = TRUE:書き込みを行う FALSE:書き込みを行わない( デフォルト ) 10777 */ 10778 extern int SetWriteZBuffer3D(int Flag); 10779 10780 /** 10781 * ZバッファのZ値と書き込むZ値との比較モードを設定する( 3D描画のみに影響 ) 10782 * 10783 * Params: 10784 * CmpType = DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) 10785 */ 10786 extern int SetZBufferCmpType3D(int CmpType /* DX_CMP_NEVER 等 */); 10787 10788 /** 10789 * 書き込むZ値のバイアスを設定する( 3D描画のみに影響 )( Bias:バイアス値( デフォルト:0 ) ) 10790 * 10791 * Params: 10792 * Bias = ? 10793 */ 10794 extern int SetZBias3D(int Bias); 10795 10796 /** 10797 * 2D描画でZバッファに書き込むZ値を設定する( Z:書き込むZ値( デフォルト:0.2f ) ) 10798 * 10799 * Params: 10800 * Z = ? 10801 */ 10802 extern int SetDrawZ(float Z); 10803 10804 /** 10805 * 描画可能領域の設定する 10806 */ 10807 extern int SetDrawArea(int x1, int y1, int x2, int y2); 10808 10809 /** 10810 * 描画可能領域を取得する 10811 */ 10812 extern int GetDrawArea(dxlib_d.dxdatatype.RECT* Rect); 10813 10814 /** 10815 * 描画可能領域を描画対象画面全体にする 10816 */ 10817 extern int SetDrawAreaFull(); 10818 10819 /** 10820 * 3D描画の拡大率を設定する 10821 */ 10822 extern int SetDraw3DScale(float Scale); 10823 10824 /** 10825 * SetRestoreGraphCallback の旧名 10826 */ 10827 extern int SetRestoreShredPoint(void function() ShredPoint); 10828 10829 /** 10830 * グラフィックハンドル復元関数を登録する 10831 */ 10832 extern int SetRestoreGraphCallback(void function() Callback); 10833 10834 /** 10835 * グラフィック復元関数を実行する 10836 */ 10837 extern int RunRestoreShred(); 10838 10839 /** 10840 * グラフィックスデバイスがロストから復帰した際に呼ばれるコールバック関数を設定する 10841 */ 10842 extern int SetGraphicsDeviceRestoreCallbackFunction(void function(void* Data) Callback, void* CallbackData); 10843 10844 /** 10845 * グラフィックスデバイスがロストから復帰する前に呼ばれるコールバック関数を設定する 10846 */ 10847 extern int SetGraphicsDeviceLostCallbackFunction(void function(void* Data) Callback, void* CallbackData); 10848 10849 /** 10850 * 2D描画に使用される変換行列を設定する 10851 */ 10852 extern int SetTransformTo2D(const (.MATRIX)* Matrix); 10853 10854 /** 10855 * 2D描画に使用される変換行列を設定する 10856 */ 10857 extern int SetTransformTo2DD(const (.MATRIX_D)* Matrix); 10858 10859 /** 10860 * 2D描画用に使用する変換行列の設定を初期状態に戻す 10861 */ 10862 extern int ResetTransformTo2D(); 10863 10864 /** 10865 * ローカル座標からワールド座標に変換するための行列を設定する 10866 */ 10867 extern int SetTransformToWorld(const (.MATRIX)* Matrix); 10868 10869 /** 10870 * ローカル座標からワールド座標に変換するための行列を設定する 10871 */ 10872 extern int SetTransformToWorldD(const (.MATRIX_D)* Matrix); 10873 10874 /** 10875 * ローカル座標からワールド座標に変換するための行列を取得する 10876 */ 10877 extern int GetTransformToWorldMatrix(.MATRIX* MatBuf); 10878 10879 /** 10880 * ローカル座標からワールド座標に変換するための行列を取得する 10881 */ 10882 extern int GetTransformToWorldMatrixD(.MATRIX_D* MatBuf); 10883 10884 /** 10885 * ワールド座標からビュー座標に変換するための行列を設定する 10886 */ 10887 extern int SetTransformToView(const (.MATRIX)* Matrix); 10888 10889 /** 10890 * ワールド座標からビュー座標に変換するための行列を設定する 10891 */ 10892 extern int SetTransformToViewD(const (.MATRIX_D)* Matrix); 10893 10894 /** 10895 * ワールド座標からビュー座標に変換するための行列を取得する 10896 */ 10897 extern int GetTransformToViewMatrix(.MATRIX* MatBuf); 10898 10899 /** 10900 * ワールド座標からビュー座標に変換するための行列を取得する 10901 */ 10902 extern int GetTransformToViewMatrixD(.MATRIX_D* MatBuf); 10903 10904 /** 10905 * ビュー座標からプロジェクション座標に変換するための行列を設定する 10906 */ 10907 extern int SetTransformToProjection(const (.MATRIX)* Matrix); 10908 10909 /** 10910 * ビュー座標からプロジェクション座標に変換するための行列を設定する 10911 */ 10912 extern int SetTransformToProjectionD(const (.MATRIX_D)* Matrix); 10913 10914 /** 10915 * ビュー座標からプロジェクション座標に変換するための行列を取得する 10916 */ 10917 extern int GetTransformToProjectionMatrix(.MATRIX* MatBuf); 10918 10919 /** 10920 * ビュー座標からプロジェクション座標に変換するための行列を取得する 10921 */ 10922 extern int GetTransformToProjectionMatrixD(.MATRIX_D* MatBuf); 10923 10924 /** 10925 * ビューポート行列を設定する 10926 */ 10927 extern int SetTransformToViewport(const (.MATRIX)* Matrix); 10928 10929 /** 10930 * ビューポート行列を設定する 10931 */ 10932 extern int SetTransformToViewportD(const (.MATRIX_D)* Matrix); 10933 10934 /** 10935 * ビューポート行列を取得する 10936 */ 10937 extern int GetTransformToViewportMatrix(.MATRIX* MatBuf); 10938 10939 /** 10940 * ビューポート行列を取得する 10941 */ 10942 extern int GetTransformToViewportMatrixD(.MATRIX_D* MatBuf); 10943 10944 /** 10945 * Direct3Dで自動適用されるビューポート行列を取得する 10946 */ 10947 extern int GetTransformToAPIViewportMatrix(.MATRIX* MatBuf); 10948 10949 /** 10950 * Direct3Dで自動適用されるビューポート行列を取得する 10951 */ 10952 extern int GetTransformToAPIViewportMatrixD(.MATRIX_D* MatBuf); 10953 10954 /** 10955 * デフォルトの変換行列を設定する 10956 */ 10957 extern int SetDefTransformMatrix(); 10958 10959 /** 10960 * ローカル座標からスクリーン座標を取得する 10961 */ 10962 extern int GetTransformPosition(.VECTOR* LocalPos, float* x, float* y); 10963 10964 /** 10965 * ローカル座標からスクリーン座標を取得する 10966 */ 10967 extern int GetTransformPositionD(.VECTOR_D* LocalPos, double* x, double* y); 10968 10969 /** 10970 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する 10971 */ 10972 extern float GetBillboardPixelSize(.VECTOR WorldPos, float WorldSize); 10973 10974 /** 10975 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する 10976 */ 10977 extern double GetBillboardPixelSizeD(.VECTOR_D WorldPos, double WorldSize); 10978 10979 /** 10980 * ワールド座標をビュー座標に変換する 10981 */ 10982 extern .VECTOR ConvWorldPosToViewPos(.VECTOR WorldPos); 10983 10984 /** 10985 * ワールド座標をビュー座標に変換する 10986 */ 10987 extern .VECTOR_D ConvWorldPosToViewPosD(.VECTOR_D WorldPos); 10988 10989 /** 10990 * ワールド座標をスクリーン座標に変換する 10991 */ 10992 extern .VECTOR ConvWorldPosToScreenPos(.VECTOR WorldPos); 10993 10994 /** 10995 * ワールド座標をスクリーン座標に変換する 10996 */ 10997 extern .VECTOR_D ConvWorldPosToScreenPosD(.VECTOR_D WorldPos); 10998 10999 /** 11000 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る 11001 */ 11002 extern .FLOAT4 ConvWorldPosToScreenPosPlusW(.VECTOR WorldPos); 11003 11004 /** 11005 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る 11006 */ 11007 extern .DOUBLE4 ConvWorldPosToScreenPosPlusWD(.VECTOR_D WorldPos); 11008 11009 /** 11010 * スクリーン座標をワールド座標に変換する 11011 */ 11012 extern .VECTOR ConvScreenPosToWorldPos(.VECTOR ScreenPos); 11013 11014 /** 11015 * スクリーン座標をワールド座標に変換する 11016 */ 11017 extern .VECTOR_D ConvScreenPosToWorldPosD(.VECTOR_D ScreenPos); 11018 11019 /** 11020 * スクリーン座標をワールド座標に変換する( Z座標が線形 ) 11021 */ 11022 extern .VECTOR ConvScreenPosToWorldPos_ZLinear(.VECTOR ScreenPos); 11023 11024 /** 11025 * スクリーン座標をワールド座標に変換する( Z座標が線形 ) 11026 */ 11027 extern .VECTOR_D ConvScreenPosToWorldPos_ZLinearD(.VECTOR_D ScreenPos); 11028 11029 /** 11030 * SetUseBackCulling の旧名称 11031 */ 11032 extern int SetUseCullingFlag(int Flag); 11033 11034 /** 11035 * ポリゴンカリングモードを設定する 11036 */ 11037 extern int SetUseBackCulling(int Flag /* DX_CULLING_LEFT 等 */); 11038 11039 /** 11040 * ポリゴンカリングモードを取得する 11041 */ 11042 extern int GetUseBackCulling(); 11043 11044 /** 11045 * テクスチャアドレスモードを設定する 11046 */ 11047 extern int SetTextureAddressMode(int Mode /* DX_TEXADDRESS_WRAP 等 */, int Stage = -1); 11048 11049 /** 11050 * テクスチャアドレスモードを設定する( U と V を別々に設定する ) 11051 */ 11052 extern int SetTextureAddressModeUV(int ModeU, int ModeV, int Stage = -1); 11053 11054 /** 11055 * テクスチャ座標変換パラメータを設定する 11056 */ 11057 extern int SetTextureAddressTransform(float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate); 11058 11059 /** 11060 * テクスチャ座標変換行列を設定する 11061 */ 11062 extern int SetTextureAddressTransformMatrix(.MATRIX Matrix); 11063 11064 /** 11065 * テクスチャ座標変換設定をリセットする 11066 */ 11067 extern int ResetTextureAddressTransform(); 11068 11069 /** 11070 * フォグを有効にするかどうかを設定する 11071 * 11072 * Params: 11073 * Flag = TRUE:有効 FALSE:無効 11074 */ 11075 extern int SetFogEnable(int Flag); 11076 11077 /** 11078 * フォグが有効かどうかを取得する 11079 * 11080 * Returns: TRUE:有効 FALSE:無効 11081 */ 11082 extern int GetFogEnable(); 11083 11084 /** 11085 * フォグモードを設定する 11086 */ 11087 extern int SetFogMode(int Mode /* DX_FOGMODE_NONE 等 */); 11088 11089 /** 11090 * フォグモードを取得する 11091 */ 11092 extern int GetFogMode(); 11093 11094 /** 11095 * フォグカラーを設定する 11096 */ 11097 extern int SetFogColor(int r, int g, int b); 11098 11099 /** 11100 * フォグカラーを取得する 11101 */ 11102 extern int GetFogColor(int* r, int* g, int* b); 11103 11104 /** 11105 * フォグが始まる距離と終了する距離を設定する( 0.0f 〜 1.0f ) 11106 */ 11107 extern int SetFogStartEnd(float start, float end); 11108 11109 /** 11110 * フォグが始まる距離と終了する距離を取得する( 0.0f 〜 1.0f ) 11111 */ 11112 extern int GetFogStartEnd(float* start, float* end); 11113 11114 /** 11115 * フォグの密度を設定する( 0.0f 〜 1.0f ) 11116 */ 11117 extern int SetFogDensity(float density); 11118 11119 /** 11120 * フォグの密度を取得する( 0.0f 〜 1.0f ) 11121 */ 11122 extern float GetFogDensity(); 11123 11124 // 画面関係関数 11125 11126 /** 11127 * 指定座標の色を取得する 11128 */ 11129 extern uint GetPixel(int x, int y); 11130 11131 /** 11132 * 指定座標の色を取得する( float型 ) 11133 */ 11134 extern .COLOR_F GetPixelF(int x, int y); 11135 11136 /** 11137 * メインウインドウの背景色を設定する 11138 * 11139 * Params: 11140 * Red= 0〜255 11141 * Green = 0〜255 11142 * Blue = 0〜255 11143 * Alpha = 0〜255 11144 */ 11145 extern int SetBackgroundColor(int Red, int Green, int Blue, int Alpha = 0); 11146 11147 /** 11148 * メインウインドウの背景色を取得する 11149 * 11150 * Params: 11151 * Red= 0〜255 11152 * Green = 0〜255 11153 * Blue = 0〜255 11154 * Alpha = 0〜255 11155 */ 11156 extern int GetBackgroundColor(int* Red, int* Green, int* Blue, int* Alpha = null); 11157 11158 /** 11159 * 描画先の画面から指定領域の画像情報をグラフィックハンドルに転送する 11160 */ 11161 extern int GetDrawScreenGraph(int x1, int y1, int x2, int y2, int GrHandle, int UseClientFlag = dxlib_d.dxdatatype.TRUE); 11162 11163 /** 11164 * SetDrawScreen で描画対象にできるグラフィックハンドルから指定領域の画像情報を別のグラフィックハンドルに転送する 11165 */ 11166 extern int BltDrawValidGraph(int TargetDrawValidGrHandle, int x1, int y1, int x2, int y2, int DestX, int DestY, int DestGrHandle); 11167 11168 /** 11169 * 裏画面と表画面の内容を交換する 11170 */ 11171 extern int ScreenFlip(); 11172 11173 /** 11174 * 裏画面の内容を表画面に転送する 11175 */ 11176 extern int ScreenCopy(); 11177 11178 /** 11179 * 垂直同期信号を待つ 11180 */ 11181 extern int WaitVSync(int SyncNum); 11182 11183 /** 11184 * 画面をクリアする 11185 */ 11186 extern int ClearDrawScreen(const (dxlib_d.dxdatatype.RECT)* ClearRect = null); 11187 11188 /** 11189 * 画面のZバッファをクリアする 11190 */ 11191 extern int ClearDrawScreenZBuffer(const (dxlib_d.dxdatatype.RECT)* ClearRect = null); 11192 11193 /** 11194 * ClearDrawScreenの旧名称 11195 */ 11196 extern int ClsDrawScreen(); 11197 11198 /** 11199 * 描画先画面を設定する( MakeScreen で作成したグラフィックハンドルも渡すことができます ) 11200 */ 11201 extern int SetDrawScreen(int DrawScreen); 11202 11203 /** 11204 * 描画先画面を取得する 11205 */ 11206 extern int GetDrawScreen(); 11207 11208 /** 11209 * GetDrawScreen の旧名称 11210 */ 11211 extern int GetActiveGraph(); 11212 11213 /** 11214 * SetDrawScreen を実行した際にカメラや描画範囲の設定をリセットするかを設定する 11215 * 11216 * Params: 11217 * UseFlag = TRUE:リセットする( デフォルト ) FALSE:リセットしない 11218 */ 11219 extern int SetUseSetDrawScreenSettingReset(int UseFlag); 11220 11221 /** 11222 * SetDrawScreen を実行した際にカメラや描画範囲の設定をリセットするかを取得する 11223 */ 11224 extern int GetUseSetDrawScreenSettingReset(); 11225 11226 /** 11227 * 描画先Zバッファのセット( DrawScreen 付属のZバッファを描画先Zバッファにする、DrawScreen を -1 にするとデフォルトの描画先Zバッファに戻る ) 11228 */ 11229 extern int SetDrawZBuffer(int DrawScreen); 11230 11231 /** 11232 * 画面モードを設定する 11233 */ 11234 extern int SetGraphMode(int ScreenSizeX, int ScreenSizeY, int ColorBitDepth, int RefreshRate = 60); 11235 11236 /** 11237 * 画面のメモリイメージをセットする( DxLib_Init の前で呼ぶ必要がある( DxLib_Init の前に一度でも呼んでいれば、DxLib_Init 後は Image のアドレスのみの変更目的で呼ぶことは可能 )、PixelFormat に DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5 又は DX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8 の二つ以外を指定した場合はDXライブラリの描画関数は一切使用できなくなります ) 11238 */ 11239 extern int SetUserScreenImage(void* Image, int PixelFormat /* DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5 等 */); 11240 11241 /** 11242 * フルスクリーン解像度モードを設定する 11243 */ 11244 extern int SetFullScreenResolutionMode(int ResolutionMode /* DX_FSRESOLUTIONMODE_NATIVE 等 */); 11245 11246 /** 11247 * フルスクリーン解像度モードを取得する( UseResolutionMode は実際に使用されている解像度モード( 例えば DX_FSRESOLUTIONMODE_NATIVE を指定していてもモニタが指定の解像度に対応していない場合は UseResolutionMode が DX_FSRESOLUTIONMODE_DESKTOP や DX_FSRESOLUTIONMODE_MAXIMUM になります ) ) 11248 */ 11249 extern int GetFullScreenResolutionMode(int* ResolutionMode, int* UseResolutionMode); 11250 11251 /** 11252 * フルスクリーンモード時の画面拡大モードを設定する 11253 */ 11254 extern int SetFullScreenScalingMode(int ScalingMode /* DX_FSSCALINGMODE_NEAREST 等 */, int FitScaling = dxlib_d.dxdatatype.FALSE); 11255 11256 /** 11257 * 640x480の画面で320x240の画面解像度にするかどうかを設定する、640x480以外の解像度では無効 11258 * 11259 * Params: 11260 * Flag = TRUE:有効 FALSE:無効 11261 */ 11262 extern int SetEmulation320x240(int Flag); 11263 11264 /** 11265 * 画面用のZバッファのサイズを設定する 11266 */ 11267 extern int SetZBufferSize(int ZBufferSizeX, int ZBufferSizeY); 11268 11269 /** 11270 * 画面用のZバッファのビット深度を設定する( 16 or 24 or 32 ) 11271 */ 11272 extern int SetZBufferBitDepth(int BitDepth); 11273 11274 /** 11275 * ScreenFlip 実行時にVSYNC待ちをするかどうかを設定する 11276 */ 11277 extern int SetWaitVSyncFlag(int Flag); 11278 11279 /** 11280 * ScreenFlip 実行時にVSYNC待ちをするかどうかを取得する 11281 */ 11282 extern int GetWaitVSyncFlag(); 11283 11284 /** 11285 * 画面のフルスクリーンアンチエイリアスモードの設定を行う( DxLib_Init の前でのみ使用可能 ) 11286 */ 11287 extern int SetFullSceneAntiAliasingMode(int Samples, int Quality); 11288 11289 /** 11290 * ScreenFlip 時に表画面全体に転送する裏画面の領域を設定する( DxLib_Init の前でのみ使用可能 ) 11291 */ 11292 extern int SetGraphDisplayArea(int x1, int y1, int x2, int y2); 11293 11294 /** 11295 * 画面モード変更時( とウインドウモード変更時 )にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する 11296 * 11297 * Params: 11298 * Flag = TRUE:リセットする( デフォルト ) FALSE:リセットしない 11299 */ 11300 extern int SetChangeScreenModeGraphicsSystemResetFlag(int Flag); 11301 11302 /** 11303 * 現在の画面の解像度とカラービット数を得る 11304 */ 11305 extern int GetScreenState(int* SizeX, int* SizeY, int* ColorBitDepth); 11306 11307 /** 11308 * 描画先のサイズを取得する 11309 */ 11310 extern int GetDrawScreenSize(int* XBuf, int* YBuf); 11311 11312 /** 11313 * 画面のカラービット数を取得する 11314 */ 11315 extern int GetScreenBitDepth(); 11316 11317 /** 11318 * GetScreenBitDepth の旧名称 11319 */ 11320 extern int GetColorBitDepth(); 11321 11322 /** 11323 * 画面モードが変更されているかどうかを取得する 11324 */ 11325 extern int GetChangeDisplayFlag(); 11326 11327 /** 11328 * ( 現在正常に動作しません )ビデオメモリの容量を得る 11329 */ 11330 extern int GetVideoMemorySize(int* AllSize, int* FreeSize); 11331 11332 /** 11333 * 現在の画面のリフレッシュレートを取得する 11334 */ 11335 extern int GetRefreshRate(); 11336 11337 /** 11338 * ディスプレイの数を取得 11339 */ 11340 extern int GetDisplayNum(); 11341 11342 /** 11343 * ディスプレイのデスクトップ上での矩形位置を取得する 11344 */ 11345 extern int GetDisplayInfo(int DisplayIndex, int* DesktopRectX, int* DesktopRectY, int* DesktopSizeX, int* DesktopSizeY, int* IsPrimary); 11346 11347 /** 11348 * 変更可能なディスプレイモードの数を取得する 11349 */ 11350 extern int GetDisplayModeNum(int DisplayIndex = 0); 11351 11352 /** 11353 * 変更可能なディスプレイモードの情報を取得する( ModeIndex は 0 〜 GetDisplayModeNum の戻り値-1 ) 11354 */ 11355 extern .DISPLAYMODEDATA GetDisplayMode(int ModeIndex, int DisplayIndex = 0); 11356 11357 /** 11358 * ディスプレイの最大解像度を取得する 11359 */ 11360 extern int GetDisplayMaxResolution(int* SizeX, int* SizeY, int DisplayIndex = 0); 11361 11362 /** 11363 * ディスプレイのカラーデータアドレスを取得する 11364 */ 11365 extern const (.COLORDATA)* GetDispColorData(); 11366 11367 /** 11368 * 同時に描画を行うことができる画面の数を取得する 11369 */ 11370 extern int GetMultiDrawScreenNum(); 11371 11372 /** 11373 * DrawGraphF 等の浮動小数点値で座標を指定する関数における座標タイプを取得する 11374 * 11375 * Returns: DX_DRAWFLOATCOORDTYPE_DIRECT3D9 など 11376 */ 11377 extern int GetDrawFloatCoordType(); 11378 11379 // その他設定関係関数 11380 11381 /** 11382 * 通常描画にプログラマブルシェーダーを使用するかどうかを設定する 11383 * 11384 * Params: 11385 * Flag = TRUE:使用する( デフォルト ) FALSE:使用しない 11386 */ 11387 extern int SetUseNormalDrawShader(int Flag); 11388 11389 /** 11390 * ソフトウエアレンダリングモードを使用するかどうかを設定する( DxLib_Init の前に呼ぶ必要があります ) 11391 * 11392 * Params: 11393 * Flag = TRUE:使用する FALSE:使用しない( デフォルト ) 11394 */ 11395 extern int SetUseSoftwareRenderModeFlag(int Flag); 11396 11397 /** 11398 * ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )3D機能を使わないかどうかを設定する 11399 */ 11400 extern int SetNotUse3DFlag(int Flag); 11401 11402 /** 11403 * ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )3D機能を使うかどうかを設定する 11404 */ 11405 extern int SetUse3DFlag(int Flag); 11406 11407 /** 11408 * 描画に3D機能を使うかどうかを取得する 11409 */ 11410 extern int GetUse3DFlag(); 11411 11412 /** 11413 * ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )画面のピクセルデータをVRAMに置くかどうかを設定する 11414 */ 11415 extern int SetScreenMemToVramFlag(int Flag); 11416 11417 /** 11418 * 画面のピクセルデータがシステムメモリ上に存在するかを取得する 11419 */ 11420 extern int GetScreenMemToSystemMemFlag(); 11421 11422 /** 11423 * 通常使用しない 11424 */ 11425 extern int SetWindowDrawRect(const (dxlib_d.dxdatatype.RECT)* DrawRect); 11426 11427 /** 11428 * DXライブラリのグラフィックス処理関連の復帰処理を行う 11429 */ 11430 extern int RestoreGraphSystem(); 11431 11432 /** 11433 * ハードウエアの頂点演算処理機能を使用するかどうかを設定する( DxLib_Init の前に呼ぶ必要があります ) 11434 * 11435 * Params: 11436 * Flag = TRUE:使用する( デフォルト ) FALSE:使用しない 11437 */ 11438 extern int SetUseHardwareVertexProcessing(int Flag); 11439 11440 /** 11441 * ピクセル単位でライティングを行うかどうかを設定する、要 ShaderModel 3.0 11442 * 11443 * Params: 11444 * Flag = TRUE:ピクセル単位のライティングを行う FALSE:頂点単位のライティングを行う( デフォルト ) 11445 */ 11446 extern int SetUsePixelLighting(int Flag); 11447 11448 /** 11449 * 古いバージョンの DrawModiGraph 関数のコードを使用するかどうかを設定する 11450 */ 11451 extern int SetUseOldDrawModiGraphCodeFlag(int Flag); 11452 11453 /** 11454 * ( 現在効果なし )VRAMを使用するかのフラグをセットする 11455 */ 11456 extern int SetUseVramFlag(int Flag); 11457 11458 /** 11459 * ( 現在効果なし )2Dグラフィックサーフェス作成時にシステムメモリーを使用するかのフラグ取得 11460 */ 11461 extern int GetUseVramFlag(); 11462 11463 /** 11464 * ( 現在効果なし )簡略化ブレンド処理を行うか否かのフラグをセットする 11465 */ 11466 extern int SetBasicBlendFlag(int Flag); 11467 11468 /** 11469 * ( 現在効果なし )単純図形の描画に3Dデバイスの機能を使用するかどうかを設定する 11470 */ 11471 extern int SetUseBasicGraphDraw3DDeviceMethodFlag(int Flag); 11472 11473 /** 11474 * DXライブラリのウインドウを表示するディスプレイデバイスを設定する( -1 を指定するとマウスカーソルがあるディスプレイデバイスにDXライブラリのウインドウを表示する ) 11475 */ 11476 extern int SetUseDisplayIndex(int Index); 11477 11478 /** 11479 * 頂点バッファに溜まった頂点データを描画する( 特殊用途 ) 11480 */ 11481 extern int RenderVertex(); 11482 11483 // 描画パフォーマンス関係関数 11484 11485 /** 11486 * 前々回の ScreenFlip 呼び出しから、前回の ScreenFlip 呼び出しまでの間に行われた描画コールの回数を取得する 11487 */ 11488 extern int GetDrawCallCount(); 11489 11490 /** 11491 * フレームレート( 1秒間に呼ばれる ScreenFlip の回数 )を取得する 11492 */ 11493 extern float GetFPS(); 11494 11495 version (DX_NON_SAVEFUNCTION) { 11496 } else { 11497 // 描画先画面保存関数 11498 // Jpeg_Quality = 0:低画質〜100:高画質 11499 // Png_CompressionLevel = 0:無圧縮〜 9:最高圧縮 11500 11501 /** 11502 * 現在描画対象になっている画面をファイルで保存する 11503 */ 11504 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); 11505 11506 /** 11507 * 現在描画対象になっている画面をファイルで保存する 11508 */ 11509 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); 11510 11511 /** 11512 * 現在描画対象になっている画面をBMP形式で保存する 11513 */ 11514 extern int SaveDrawScreenToBMP(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName); 11515 11516 /** 11517 * 現在描画対象になっている画面をBMP形式で保存する 11518 */ 11519 extern int SaveDrawScreenToBMPWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11520 11521 /** 11522 * 現在描画対象になっている画面をDDS形式で保存する 11523 */ 11524 extern int SaveDrawScreenToDDS(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName); 11525 11526 /** 11527 * 現在描画対象になっている画面をDDS形式で保存する 11528 */ 11529 extern int SaveDrawScreenToDDSWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11530 11531 /** 11532 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 11533 */ 11534 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); 11535 11536 /** 11537 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 11538 */ 11539 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); 11540 11541 /** 11542 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 11543 */ 11544 extern int SaveDrawScreenToPNG(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, int CompressionLevel = -1); 11545 11546 /** 11547 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 11548 */ 11549 extern int SaveDrawScreenToPNGWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int CompressionLevel = -1); 11550 11551 // 描画対象にできるグラフィックハンドル保存関数 11552 // Jpeg_Quality = 0:低画質〜100:高画質 11553 // Png_CompressionLevel = 0:無圧縮〜 9:最高圧縮 11554 11555 /** 11556 * 描画対象にできるグラフィックハンドルをファイルで保存する 11557 */ 11558 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); 11559 11560 /** 11561 * 描画対象にできるグラフィックハンドルをファイルで保存する 11562 */ 11563 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); 11564 11565 /** 11566 * 描画対象にできるグラフィックハンドルをBMP形式で保存する 11567 */ 11568 extern int SaveDrawValidGraphToBMP(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName); 11569 11570 /** 11571 * 描画対象にできるグラフィックハンドルをBMP形式で保存する 11572 */ 11573 extern int SaveDrawValidGraphToBMPWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11574 11575 /** 11576 * 描画対象にできるグラフィックハンドルをDDS形式で保存する 11577 */ 11578 extern int SaveDrawValidGraphToDDS(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName); 11579 11580 /** 11581 * 描画対象にできるグラフィックハンドルをDDS形式で保存する 11582 */ 11583 extern int SaveDrawValidGraphToDDSWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11584 11585 /** 11586 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 11587 */ 11588 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); 11589 11590 /** 11591 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 11592 */ 11593 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); 11594 11595 /** 11596 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 11597 */ 11598 extern int SaveDrawValidGraphToPNG(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.dxdatatype.TCHAR)* FileName, int CompressionLevel = -1); 11599 11600 /** 11601 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 11602 */ 11603 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); 11604 } 11605 11606 // 頂点バッファ関係関数 11607 11608 /** 11609 * 頂点バッファを作成する 11610 * 11611 * Returns: -1:エラー 0以上:頂点バッファハンドル 11612 */ 11613 extern int CreateVertexBuffer(int VertexNum, int VertexType /* DX_VERTEX_TYPE_NORMAL_3D 等 */); 11614 11615 /** 11616 * 頂点バッファを削除する 11617 */ 11618 extern int DeleteVertexBuffer(int VertexBufHandle); 11619 11620 /** 11621 * すべての頂点バッファを削除する 11622 */ 11623 extern int InitVertexBuffer(); 11624 11625 /** 11626 * 頂点バッファに頂点データを転送する 11627 */ 11628 extern int SetVertexBufferData(int SetIndex, const (void)* VertexArray, int VertexNum, int VertexBufHandle); 11629 11630 /** 11631 * 頂点バッファハンドルの頂点バッファのアドレスを取得する 11632 */ 11633 extern void* GetBufferVertexBuffer(int VertexBufHandle); 11634 11635 /** 11636 * 頂点バッファハンドルの頂点バッファへの変更を適用する( GetBufferVertexBuffer で取得したバッファへの変更を反映する ) 11637 */ 11638 extern int UpdateVertexBuffer(int VertexBufHandle, int UpdateStartIndex, int UpdateVertexNum); 11639 11640 /** 11641 * インデックスバッファを作成する 11642 * 11643 * Returns: -1:エラー 0以上:インデックスバッファハンドル 11644 */ 11645 extern int CreateIndexBuffer(int IndexNum, int IndexType /* DX_INDEX_TYPE_16BIT 等 */); 11646 11647 /** 11648 * インデックスバッファを削除する 11649 */ 11650 extern int DeleteIndexBuffer(int IndexBufHandle); 11651 11652 /** 11653 * すべてのインデックスバッファを削除する 11654 */ 11655 extern int InitIndexBuffer(); 11656 11657 /** 11658 * インデックスバッファにインデックスデータを転送する 11659 */ 11660 extern int SetIndexBufferData(int SetIndex, const (void)* IndexArray, int IndexNum, int IndexBufHandle); 11661 11662 /** 11663 * インデックスバッファハンドルのインデックスバッファのアドレスを取得する 11664 */ 11665 extern void* GetBufferIndexBuffer(int IndexBufHandle); 11666 11667 /** 11668 * インデックスバッファハンドルのインデックスバッファへの変更を適用する( GetBufferIndexBuffer で取得したバッファへの変更を反映する ) 11669 */ 11670 extern int UpdateIndexBuffer(int IndexBufHandle, int UpdateStartIndex, int UpdateIndexNum); 11671 11672 /** 11673 * グラフィックスデバイスが対応している一度に描画できるプリミティブの最大数を取得する 11674 */ 11675 extern int GetMaxPrimitiveCount(); 11676 11677 /** 11678 * グラフィックスデバイスが対応している一度に使用することのできる最大頂点数を取得する 11679 */ 11680 extern int GetMaxVertexIndex(); 11681 11682 // シェーダー関係関数 11683 11684 /** 11685 * 使用できるシェーダーのバージョンを取得する( 0:使えない 200:シェーダーモデル2.0が使用可能 300:シェーダーモデル3.0が使用可能 ) 11686 */ 11687 extern int GetValidShaderVersion(); 11688 11689 /** 11690 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する 11691 * 11692 * Returns: -1:エラー -1以外:シェーダーハンドル 11693 */ 11694 extern int LoadVertexShader(const (dxlib_d.dxdatatype.TCHAR)* FileName); 11695 11696 /** 11697 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する 11698 * 11699 * Returns: -1:エラー -1以外:シェーダーハンドル 11700 */ 11701 extern int LoadVertexShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11702 11703 /** 11704 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する 11705 * 11706 * Returns: -1:エラー -1以外:シェーダーハンドル 11707 */ 11708 extern int LoadGeometryShader(const (dxlib_d.dxdatatype.TCHAR)* FileName); 11709 11710 /** 11711 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する 11712 * 11713 * Returns: -1:エラー -1以外:シェーダーハンドル 11714 */ 11715 extern int LoadGeometryShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11716 11717 /** 11718 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する 11719 * 11720 * Returns: -1:エラー -1以外:シェーダーハンドル 11721 */ 11722 extern int LoadPixelShader(const (dxlib_d.dxdatatype.TCHAR)* FileName); 11723 11724 /** 11725 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する 11726 * 11727 * Returns: -1:エラー -1以外:シェーダーハンドル 11728 */ 11729 extern int LoadPixelShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 11730 11731 /** 11732 * メモリに読み込まれた頂点シェーダーバイナリから頂点シェーダーハンドルを作成する 11733 * 11734 * Returns: -1:エラー -1以外:シェーダーハンドル 11735 */ 11736 extern int LoadVertexShaderFromMem(const (void)* ImageAddress, int ImageSize); 11737 11738 /** 11739 * メモリに読み込まれたジオメトリシェーダーバイナリからジオメトリシェーダーハンドルを作成する 11740 * 11741 * Returns: -1:エラー -1以外:シェーダーハンドル 11742 */ 11743 extern int LoadGeometryShaderFromMem(const (void)* ImageAddress, int ImageSize); 11744 11745 /** 11746 * メモリに読み込まれたピクセルシェーダーバイナリからピクセルシェーダーハンドルを作成する 11747 * 11748 * Returns: -1:エラー -1以外:シェーダーハンドル 11749 */ 11750 extern int LoadPixelShaderFromMem(const (void)* ImageAddress, int ImageSize); 11751 11752 /** 11753 * シェーダーハンドルの削除( 頂点シェーダー・ピクセルシェーダー共通 ) 11754 */ 11755 extern int DeleteShader(int ShaderHandle); 11756 11757 /** 11758 * シェーダーハンドルを全て削除する( 頂点シェーダーハンドル・ピクセルシェーダーハンドルどちらもすべて削除 ) 11759 */ 11760 extern int InitShader(); 11761 11762 /** 11763 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する 11764 */ 11765 extern int GetConstIndexToShader(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, int ShaderHandle); 11766 11767 /** 11768 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する 11769 */ 11770 extern int GetConstIndexToShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11771 11772 /** 11773 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する 11774 */ 11775 extern int GetConstCountToShader(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, int ShaderHandle); 11776 11777 /** 11778 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する 11779 */ 11780 extern int GetConstCountToShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11781 11782 /** 11783 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する 11784 */ 11785 extern const (.FLOAT4)* GetConstDefaultParamFToShader(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, int ShaderHandle); 11786 11787 /** 11788 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する 11789 */ 11790 extern const (.FLOAT4)* GetConstDefaultParamFToShaderWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11791 11792 /** 11793 * 頂点シェーダーの float 型定数を設定する 11794 */ 11795 extern int SetVSConstSF(int ConstantIndex, float Param); 11796 11797 /** 11798 * 頂点シェーダーの float 型定数を設定する 11799 */ 11800 extern int SetVSConstF(int ConstantIndex, .FLOAT4 Param); 11801 11802 /** 11803 * 頂点シェーダーの float 型定数に行列を設定する 11804 */ 11805 extern int SetVSConstFMtx(int ConstantIndex, .MATRIX Param); 11806 11807 /** 11808 * 頂点シェーダーの float 型定数に転置した行列を設定する 11809 */ 11810 extern int SetVSConstFMtxT(int ConstantIndex, .MATRIX Param); 11811 11812 /** 11813 * 頂点シェーダーの int 型定数を設定する 11814 */ 11815 extern int SetVSConstSI(int ConstantIndex, int Param); 11816 11817 /** 11818 * 頂点シェーダーの int 型定数を設定する 11819 */ 11820 extern int SetVSConstI(int ConstantIndex, .INT4 Param); 11821 11822 /** 11823 * 頂点シェーダーの BOOL 型定数を設定する 11824 */ 11825 extern int SetVSConstB(int ConstantIndex, dxlib_d.dxdatatype.BOOL Param); 11826 11827 /** 11828 * 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11829 */ 11830 extern int SetVSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum); 11831 11832 /** 11833 * 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11834 */ 11835 extern int SetVSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum); 11836 11837 /** 11838 * 頂点シェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 ) 11839 */ 11840 extern int SetVSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11841 11842 /** 11843 * 頂点シェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 ) 11844 */ 11845 extern int SetVSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11846 11847 /** 11848 * 頂点シェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11849 */ 11850 extern int SetVSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum); 11851 11852 /** 11853 * 頂点シェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11854 */ 11855 extern int SetVSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum); 11856 11857 /** 11858 * 頂点シェーダーの BOOL 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11859 */ 11860 extern int SetVSConstBArray(int ConstantIndex, const (dxlib_d.dxdatatype.BOOL)* ParamArray, int ParamNum); 11861 11862 /** 11863 * 頂点シェーダーの float 型定数の設定をリセットする 11864 */ 11865 extern int ResetVSConstF(int ConstantIndex, int ParamNum); 11866 11867 /** 11868 * 頂点シェーダーの int 型定数の設定をリセットする 11869 */ 11870 extern int ResetVSConstI(int ConstantIndex, int ParamNum); 11871 11872 /** 11873 * 頂点シェーダーの BOOL 型定数の設定をリセットする 11874 */ 11875 extern int ResetVSConstB(int ConstantIndex, int ParamNum); 11876 11877 /** 11878 * ピクセルシェーダーの float 型定数を設定する 11879 */ 11880 extern int SetPSConstSF(int ConstantIndex, float Param); 11881 11882 /** 11883 * ピクセルシェーダーの float 型定数を設定する 11884 */ 11885 extern int SetPSConstF(int ConstantIndex, .FLOAT4 Param); 11886 11887 /** 11888 * ピクセルシェーダーの float 型定数に行列を設定する 11889 */ 11890 extern int SetPSConstFMtx(int ConstantIndex, .MATRIX Param); 11891 11892 /** 11893 * ピクセルシェーダーの float 型定数に転置した行列を設定する 11894 */ 11895 extern int SetPSConstFMtxT(int ConstantIndex, .MATRIX Param); 11896 11897 /** 11898 * ピクセルシェーダーの int 型定数を設定する 11899 */ 11900 extern int SetPSConstSI(int ConstantIndex, int Param); 11901 11902 /** 11903 * ピクセルシェーダーの int 型定数を設定する 11904 */ 11905 extern int SetPSConstI(int ConstantIndex, .INT4 Param); 11906 11907 /** 11908 * ピクセルシェーダーの BOOL 型定数を設定する 11909 */ 11910 extern int SetPSConstB(int ConstantIndex, dxlib_d.dxdatatype.BOOL Param); 11911 11912 /** 11913 * ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11914 */ 11915 extern int SetPSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum); 11916 11917 /** 11918 * ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11919 */ 11920 extern int SetPSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum); 11921 11922 /** 11923 * ピクセルシェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 ) 11924 */ 11925 extern int SetPSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11926 11927 /** 11928 * ピクセルシェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 ) 11929 */ 11930 extern int SetPSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11931 11932 /** 11933 * ピクセルシェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11934 */ 11935 extern int SetPSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum); 11936 11937 /** 11938 * ピクセルシェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11939 */ 11940 extern int SetPSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum); 11941 11942 /** 11943 * ピクセルシェーダーの BOOL 型定数を設定する( 配列を使って連番インデックスに一度に設定 ) 11944 */ 11945 extern int SetPSConstBArray(int ConstantIndex, const (dxlib_d.dxdatatype.BOOL)* ParamArray, int ParamNum); 11946 11947 /** 11948 * ピクセルシェーダーの float 型定数の設定をリセットする 11949 */ 11950 extern int ResetPSConstF(int ConstantIndex, int ParamNum); 11951 11952 /** 11953 * ピクセルシェーダーの int 型定数の設定をリセットする 11954 */ 11955 extern int ResetPSConstI(int ConstantIndex, int ParamNum); 11956 11957 /** 11958 * ピクセルシェーダーの BOOL 型定数の設定をリセットする 11959 */ 11960 extern int ResetPSConstB(int ConstantIndex, int ParamNum); 11961 11962 /** 11963 * シェーダーを使用した描画での描画先を設定する( DrawScreen に -1 を渡すと無効化 ) 11964 */ 11965 extern int SetRenderTargetToShader(int TargetIndex, int DrawScreen, int SurfaceIndex = 0, int MipLevel = 0); 11966 11967 /** 11968 * シェーダーを使用した描画で使用するグラフィックハンドルを設定する 11969 */ 11970 extern int SetUseTextureToShader(int StageIndex, int GraphHandle); 11971 11972 /** 11973 * シェーダーを使用した描画に使用する頂点シェーダーを設定する( -1を渡すと解除 ) 11974 */ 11975 extern int SetUseVertexShader(int ShaderHandle); 11976 11977 /** 11978 * シェーダーを使用した描画に使用するジオメトリシェーダーを設定する( -1を渡すと解除 ) 11979 */ 11980 extern int SetUseGeometryShader(int ShaderHandle); 11981 11982 /** 11983 * シェーダーを使用した描画に使用するピクセルシェーダーを設定する( -1を渡すと解除 ) 11984 */ 11985 extern int SetUsePixelShader(int ShaderHandle); 11986 11987 /** 11988 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする 11989 */ 11990 extern int CalcPolygonBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int PolygonNum); 11991 11992 /** 11993 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする( 頂点インデックスを使用する ) 11994 */ 11995 extern int CalcPolygonIndexedBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 11996 11997 /** 11998 * シェーダーを使ってビルボードを描画する 11999 */ 12000 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); 12001 12002 /** 12003 * シェーダーを使って2Dポリゴンを描画する 12004 */ 12005 extern int DrawPolygon2DToShader(const (.VERTEX2DSHADER)* VertexArray, int PolygonNum); 12006 12007 /** 12008 * シェーダーを使って3Dポリゴンを描画する 12009 */ 12010 extern int DrawPolygon3DToShader(const (.VERTEX3DSHADER)* VertexArray, int PolygonNum); 12011 12012 /** 12013 * シェーダーを使って2Dポリゴンを描画する( 頂点インデックスを使用する ) 12014 */ 12015 extern int DrawPolygonIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 12016 12017 /** 12018 * シェーダーを使って3Dポリゴンを描画する( 頂点インデックスを使用する ) 12019 */ 12020 extern int DrawPolygonIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 12021 12022 /** 12023 * シェーダーを使って2Dプリミティブを描画する 12024 */ 12025 extern int DrawPrimitive2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12026 12027 /** 12028 * シェーダーを使って3Dプリミティブを描画する 12029 */ 12030 extern int DrawPrimitive3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12031 12032 /** 12033 * シェーダーを使って2Dプリミティブを描画する( 頂点インデックスを使用する ) 12034 */ 12035 extern int DrawPrimitiveIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12036 12037 /** 12038 * シェーダーを使って3Dプリミティブを描画する( 頂点インデックスを使用する ) 12039 */ 12040 extern int DrawPrimitiveIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12041 12042 /** 12043 * シェーダーを使って3Dポリゴンを描画する( 頂点バッファ使用版 ) 12044 */ 12045 extern int DrawPolygon3DToShader_UseVertexBuffer(int VertexBufHandle); 12046 12047 /** 12048 * シェーダーを使って3Dポリゴンを描画する( 頂点バッファとインデックスバッファ使用版 ) 12049 */ 12050 extern int DrawPolygonIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle); 12051 12052 /** 12053 * シェーダーを使って3Dプリミティブを描画する( 頂点バッファ使用版 ) 12054 */ 12055 extern int DrawPrimitive3DToShader_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12056 12057 /** 12058 * シェーダーを使って3Dプリミティブを描画する( 頂点バッファ使用版 ) 12059 */ 12060 extern int DrawPrimitive3DToShader_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int StartVertex, int UseVertexNum); 12061 12062 /** 12063 * シェーダーを使って3Dプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 ) 12064 */ 12065 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */); 12066 12067 /** 12068 * シェーダーを使って3Dプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 ) 12069 */ 12070 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer2(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum); 12071 12072 // シェーダー用定数バッファ関係関数 12073 12074 /** 12075 * 全てのシェーダー用定数バッファハンドルを削除する 12076 */ 12077 extern int InitShaderConstantBuffer(); 12078 12079 /** 12080 * シェーダー用定数バッファハンドルを初期化する 12081 */ 12082 extern int CreateShaderConstantBuffer(int BufferSize); 12083 12084 /** 12085 * シェーダー用定数バッファハンドルを削除する 12086 */ 12087 extern int DeleteShaderConstantBuffer(int SConstBufHandle); 12088 12089 /** 12090 * シェーダー用定数バッファハンドルの定数バッファのアドレスを取得する 12091 */ 12092 extern void* GetBufferShaderConstantBuffer(int SConstBufHandle); 12093 12094 /** 12095 * シェーダー用定数バッファハンドルの定数バッファへの変更を適用する 12096 */ 12097 extern int UpdateShaderConstantBuffer(int SConstBufHandle); 12098 12099 /** 12100 * シェーダー用定数バッファハンドルの定数バッファを指定のシェーダーの指定のスロットにセットする 12101 */ 12102 extern int SetShaderConstantBuffer(int SConstBufHandle, int TargetShader /* DX_SHADERTYPE_VERTEX など */, int Slot); 12103 12104 // フィルター関係関数 12105 version (DX_NON_FILTER) { 12106 } else { 12107 /** 12108 * GraphFilterBlt や GraphBlendBlt の結果を転送先に転送する際のブレンドモードを設定する( 現状で対応しているのは DX_BLENDMODE_NOBLEND と DX_BLENDMODE_ALPHA のみ ) 12109 */ 12110 extern int SetGraphFilterBltBlendMode(int BlendMode /* DX_BLENDMODE_ALPHA など */); 12111 12112 /** 12113 * 画像にフィルター処理を行う 12114 */ 12115 extern int GraphFilter(int GrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */, ...); 12116 12117 /** 12118 * 画像のフィルター付き転送を行う 12119 */ 12120 extern int GraphFilterBlt(int SrcGrHandle, int DestGrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */, ...); 12121 12122 /** 12123 * 画像のフィルター付き転送を行う( 矩形指定 ) 12124 */ 12125 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 等 */, ...); 12126 12127 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_MONO, int Cb = 青色差( -255 〜 255 ), int Cr = 赤色差( -255 〜 255 )); 12128 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GAUSS, int PixelWidth = 使用ピクセル幅( 8 , 16 , 32 の何れか ), int Param = ぼかしパラメータ( 100 で約1ピクセル分の幅 )); 12129 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_DOWN_SCALE, int DivNum = 元のサイズの何分の1か、という値( 2 , 4 , 8 の何れか )); 12130 // 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 = クリップしたピクセルを塗りつぶすかどうか( TRUE:塗りつぶす FALSE:塗りつぶさない ), uint ClipFillColor = クリップしたピクセルに塗る色値( GetColor で取得する )( ClipFillFlag が FALSE の場合は使用しない ), int ClipFillAlpha = クリップしたピクセルに塗るα値( 0 〜 255 )( ClipFillFlag が FALSE の場合は使用しない )); 12131 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_SCALE, int MinBright = 変換後に真っ暗になる明るさ( 0 〜 255 ), int MaxBright = 変換後に真っ白になる明るさ( 0 〜 255 )); 12132 // 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 )); 12133 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INVERT); 12134 // 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 )); 12135 // 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 )); 12136 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GRADIENT_MAP, int MapGrHandle = グラデーションマップのグラフィックハンドル( 元画像の輝度からグラデーションマップ画像の x 座標を算出しますので縦幅は1dotでもOK ), int Reverse = グラデーションマップ左右反転フラグ( TRUE:グラデーションマップを左右反転して使う FALSE:左右反転しない )); 12137 // 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 )); 12138 12139 /* 12140 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ 12141 */ 12142 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_PREMUL_ALPHA); 12143 12144 /* 12145 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ 12146 */ 12147 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INTERP_ALPHA); 12148 12149 /* 12150 * YUVカラーをRGBカラーに変換するフィルタ 12151 */ 12152 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB); 12153 12154 /* 12155 * YUVカラーをRGBカラーに変換するフィルタ( UV成分が Y成分の半分・又は4分の1( 横・縦片方若しくは両方 )の解像度しかない場合用 ) 12156 */ 12157 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分( 若しくは 4 分の 1 )のグラフィックハンドル( U=R, V=G )); 12158 12159 /* 12160 * YUVカラーをRGBカラーに変換するフィルタ( 且つ右側半分のRの値をアルファ値として扱う ) 12161 */ 12162 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB_RRA); 12163 12164 /* 12165 * YUVカラーをRGBカラーに変換するフィルタ( UV成分が Y成分の半分・又は4分の1( 横・縦片方若しくは両方 )の解像度しかない場合用 )( 且つ右側半分のRの値をアルファ値として扱う ) 12166 */ 12167 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分( 若しくは 4 分の 1 )のグラフィックハンドル( U=R, V=G )); 12168 12169 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BICUBIC_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数); 12170 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_LANCZOS3_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数); 12171 12172 /** 12173 * 二つの画像をブレンドする 12174 */ 12175 extern int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio /* ブレンド効果の影響度( 0:0% 255:100% ) */, int BlendType /* DX_GRAPH_BLEND_ADD 等 */, ...); 12176 12177 /** 12178 * 二つの画像をブレンドして結果を指定の画像に出力する 12179 */ 12180 extern int GraphBlendBlt(int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int BlendRatio /* ブレンド効果の影響度( 0:0% 255:100% ) */, int BlendType /* DX_GRAPH_BLEND_ADD 等 */, ...); 12181 12182 /** 12183 * 二つの画像をブレンドして結果を指定の画像に出力する( 矩形指定 ) 12184 */ 12185 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 等 */, ...); 12186 12187 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL); 12188 // 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 等 )); 12189 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE); 12190 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DIFFERENCE); 12191 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD); 12192 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SCREEN); 12193 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_OVERLAY); 12194 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DODGE); 12195 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BURN); 12196 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DARKEN); 12197 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_LIGHTEN); 12198 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SOFTLIGHT); 12199 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HARDLIGHT); 12200 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_EXCLUSION); 12201 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL_ALPHACH); 12202 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD_ALPHACH); 12203 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE_A_ONLY); 12204 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY); 12205 } 12206 12207 version (DX_NON_MOVIE) { 12208 } else { 12209 // ムービーグラフィック関係関数 12210 12211 /** 12212 * 動画ファイルの再生 12213 */ 12214 extern int PlayMovie(const (dxlib_d.dxdatatype.TCHAR)* FileName, int ExRate, int PlayType); 12215 12216 /** 12217 * 動画ファイルの再生 12218 */ 12219 extern int PlayMovieWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int ExRate, int PlayType); 12220 12221 /** 12222 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する 12223 */ 12224 extern int GetMovieImageSize_File(const (dxlib_d.dxdatatype.TCHAR)* FileName, int* SizeX, int* SizeY); 12225 12226 /** 12227 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する 12228 */ 12229 extern int GetMovieImageSize_File_WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY); 12230 12231 /** 12232 * メモリ上に展開された動画ファイルの横ピクセル数と縦ピクセル数を取得する 12233 */ 12234 extern int GetMovieImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY); 12235 12236 /** 12237 * 動画ファイルを開く 12238 */ 12239 extern int OpenMovieToGraph(const (dxlib_d.dxdatatype.TCHAR)* FileName, int FullColor = dxlib_d.dxdatatype.TRUE); 12240 12241 /** 12242 * 動画ファイルを開く 12243 */ 12244 extern int OpenMovieToGraphWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int FullColor = dxlib_d.dxdatatype.TRUE); 12245 12246 /** 12247 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を開始する 12248 */ 12249 extern int PlayMovieToGraph(int GraphHandle, int PlayType = DX_PLAYTYPE_BACK, int SysPlay = 0); 12250 12251 /** 12252 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を停止する 12253 */ 12254 extern int PauseMovieToGraph(int GraphHandle, int SysPause = 0); 12255 12256 /** 12257 * 動画ファイルの再生フレームを進める、戻すことは出来ない( 動画ファイルが停止状態で、且つ Ogg Theora のみ有効 ) 12258 */ 12259 extern int AddMovieFrameToGraph(int GraphHandle, uint FrameNum); 12260 12261 /** 12262 * 動画ファイルの再生位置を設定する(ミリ秒単位) 12263 */ 12264 extern int SeekMovieToGraph(int GraphHandle, int Time); 12265 12266 /** 12267 * 動画ファイルの再生速度を設定する( 1.0 = 等倍速 2.0 = 2倍速 )、一部のファイルフォーマットのみで有効な機能です 12268 */ 12269 extern int SetPlaySpeedRateMovieToGraph(int GraphHandle, double SpeedRate); 12270 12271 /** 12272 * 動画ファイルの再生状態を得る 12273 */ 12274 extern int GetMovieStateToGraph(int GraphHandle); 12275 12276 /** 12277 * 動画ファイルの音量を設定する(0〜10000) 12278 */ 12279 extern int SetMovieVolumeToGraph(int Volume, int GraphHandle); 12280 12281 /** 12282 * 動画ファイルの音量を設定する(0〜255) 12283 */ 12284 extern int ChangeMovieVolumeToGraph(int Volume, int GraphHandle); 12285 12286 /** 12287 * 動画ファイルの基本イメージデータを取得する( ImageUpdateFlag に int 型変数のアドレスを渡すと、イメージが更新された場合は 1 が、更新されていない場合は 0 が格納されます、 ImageUpdateFlagSetOnly を TRUE にすると戻り値の BASEIMAGE は有効な画像データではなくなりますが、BASEIMAGE の更新処理が行われませんので、ImageUpdateFlag を利用して画像が更新されたかどうかだけをチェックしたい場合は TRUE にしてください ) 12288 */ 12289 extern const (.BASEIMAGE)* GetMovieBaseImageToGraph(int GraphHandle, int* ImageUpdateFlag = null, int ImageUpdateFlagSetOnly = dxlib_d.dxdatatype.FALSE); 12290 12291 /** 12292 * 動画ファイルの総フレーム数を得る( Ogg Theora でのみ有効 ) 12293 */ 12294 extern int GetMovieTotalFrameToGraph(int GraphHandle); 12295 12296 /** 12297 * 動画ファイルの再生位置を取得する(ミリ秒単位) 12298 */ 12299 extern int TellMovieToGraph(int GraphHandle); 12300 12301 /** 12302 * 動画ファイルの再生位置を取得する(フレーム単位) 12303 */ 12304 extern int TellMovieToGraphToFrame(int GraphHandle); 12305 12306 /** 12307 * 動画ファイルの再生位置を設定する(フレーム単位) 12308 */ 12309 extern int SeekMovieToGraphToFrame(int GraphHandle, int Frame); 12310 12311 /** 12312 * 動画ファイルの1フレームあたりの時間を取得する 12313 * 12314 * Returns: 1フレームの時間(単位:マイクロ秒) 12315 */ 12316 extern dxlib_d.dxdatatype.LONGLONG GetOneFrameTimeMovieToGraph(int GraphHandle); 12317 12318 /** 12319 * 動画ファイルのイメージを最後に更新した時間を得る(ミリ秒単位) 12320 */ 12321 extern int GetLastUpdateTimeMovieToGraph(int GraphHandle); 12322 12323 /** 12324 * 読み込む動画ファイル映像の右半分の赤成分をα情報として扱うかどうかをセットする 12325 * 12326 * Params: 12327 * Flag = TRUE:α情報として扱う FALSE:α情報として扱わない( デフォルト ) 12328 */ 12329 extern int SetMovieRightImageAlphaFlag(int Flag); 12330 12331 /** 12332 * 読み込む動画ファイルが32bitカラーだった場合、A8R8G8B8 形式として扱うかどうかをセットする、32bitカラーではない動画ファイルに対しては無効 12333 * 12334 * Params: 12335 * Flag = TRUE:A8R8G8B8として扱う FALSE:X8R8G8B8として扱う( デフォルト ) 12336 */ 12337 extern int SetMovieColorA8R8G8B8Flag(int Flag); 12338 12339 /** 12340 * YUVフォーマットのサーフェスが使用できる場合はYUVフォーマットのサーフェスを使用するかどうかを設定する 12341 * 12342 * Params: 12343 * Flag = TRUE:使用する( デフォルト ) FALSE:RGBフォーマットのサーフェスを使用する 12344 */ 12345 extern int SetMovieUseYUVFormatSurfaceFlag(int Flag); 12346 } 12347 12348 // カメラ関係関数 12349 12350 /** 12351 * カメラの Nearクリップ面と Farクリップ面の距離を設定する 12352 */ 12353 extern int SetCameraNearFar(float Near, float Far); 12354 12355 /** 12356 * カメラの Nearクリップ面と Farクリップ面の距離を設定する 12357 */ 12358 extern int SetCameraNearFarD(double Near, double Far); 12359 12360 /** 12361 * カメラの視点、注視点、アップベクトルを設定する( アップベクトルはY軸方向から導き出す ) 12362 */ 12363 extern int SetCameraPositionAndTarget_UpVecY(.VECTOR Position, .VECTOR Target); 12364 12365 /** 12366 * カメラの視点、注視点、アップベクトルを設定する( アップベクトルはY軸方向から導き出す ) 12367 */ 12368 extern int SetCameraPositionAndTarget_UpVecYD(.VECTOR_D Position, .VECTOR_D Target); 12369 12370 /** 12371 * カメラの視点、注視点、アップベクトルを設定する 12372 */ 12373 extern int SetCameraPositionAndTargetAndUpVec(.VECTOR Position, .VECTOR TargetPosition, .VECTOR UpVector); 12374 12375 /** 12376 * カメラの視点、注視点、アップベクトルを設定する 12377 */ 12378 extern int SetCameraPositionAndTargetAndUpVecD(.VECTOR_D Position, .VECTOR_D TargetPosition, .VECTOR_D UpVector); 12379 12380 /** 12381 * カメラの視点、注視点、アップベクトルを設定する( 注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す ) 12382 */ 12383 extern int SetCameraPositionAndAngle(.VECTOR Position, float VRotate, float HRotate, float TRotate); 12384 12385 /** 12386 * カメラの視点、注視点、アップベクトルを設定する( 注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す ) 12387 */ 12388 extern int SetCameraPositionAndAngleD(.VECTOR_D Position, double VRotate, double HRotate, double TRotate); 12389 12390 /** 12391 * ビュー行列を直接設定する 12392 */ 12393 extern int SetCameraViewMatrix(.MATRIX ViewMatrix); 12394 12395 /** 12396 * ビュー行列を直接設定する 12397 */ 12398 extern int SetCameraViewMatrixD(.MATRIX_D ViewMatrix); 12399 12400 /** 12401 * 画面上におけるカメラが見ている映像の中心の座標を設定する 12402 */ 12403 extern int SetCameraScreenCenter(float x, float y); 12404 12405 /** 12406 * 画面上におけるカメラが見ている映像の中心の座標を設定する 12407 */ 12408 extern int SetCameraScreenCenterD(double x, double y); 12409 12410 /** 12411 * 遠近法カメラをセットアップする 12412 */ 12413 extern int SetupCamera_Perspective(float Fov); 12414 12415 /** 12416 * 遠近法カメラをセットアップする 12417 */ 12418 extern int SetupCamera_PerspectiveD(double Fov); 12419 12420 /** 12421 * 正射影カメラをセットアップする 12422 */ 12423 extern int SetupCamera_Ortho(float Size); 12424 12425 /** 12426 * 正射影カメラをセットアップする 12427 */ 12428 extern int SetupCamera_OrthoD(double Size); 12429 12430 /** 12431 * 射影行列を直接設定する 12432 */ 12433 extern int SetupCamera_ProjectionMatrix(.MATRIX ProjectionMatrix); 12434 12435 /** 12436 * 射影行列を直接設定する 12437 */ 12438 extern int SetupCamera_ProjectionMatrixD(.MATRIX_D ProjectionMatrix); 12439 12440 /** 12441 * カメラのドットアスペクト比を設定する 12442 */ 12443 extern int SetCameraDotAspect(float DotAspect); 12444 12445 /** 12446 * カメラのドットアスペクト比を設定する 12447 */ 12448 extern int SetCameraDotAspectD(double DotAspect); 12449 12450 /** 12451 * 指定の座標がカメラの視界に入っているかどうかを判定する 12452 * 12453 * Returns: TRUE:視界に入っていない FALSE:視界に入っている 12454 */ 12455 extern int CheckCameraViewClip(.VECTOR CheckPos); 12456 12457 /** 12458 * 指定の座標がカメラの視界に入っているかどうかを判定する 12459 * 12460 * Returns: TRUE:視界に入っていない FALSE:視界に入っている 12461 */ 12462 extern int CheckCameraViewClipD(.VECTOR_D CheckPos); 12463 12464 /** 12465 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる 12466 * 12467 * Returns: 0:視界に入っている 0以外:視界に入っていない( DX_CAMERACLIP_LEFT や DX_CAMERACLIP_RIGHT が or 演算で混合されたもの、and 演算で方向を確認できる ) 12468 */ 12469 extern int CheckCameraViewClip_Dir(.VECTOR CheckPos); 12470 12471 /** 12472 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる 12473 * 12474 * Returns: 0:視界に入っている 0以外:視界に入っていない( DX_CAMERACLIP_LEFT や DX_CAMERACLIP_RIGHT が or 演算で混合されたもの、and 演算で方向を確認できる ) 12475 */ 12476 extern int CheckCameraViewClip_DirD(.VECTOR_D CheckPos); 12477 12478 /** 12479 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する 12480 * 12481 * Returns: TRUE:視界に入っていない FALSE:視界に入っている 12482 */ 12483 extern int CheckCameraViewClip_Box(.VECTOR BoxPos1, .VECTOR BoxPos2); 12484 12485 /** 12486 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する 12487 * 12488 * Returns: TRUE:視界に入っていない FALSE:視界に入っている 12489 */ 12490 extern int CheckCameraViewClip_BoxD(.VECTOR_D BoxPos1, .VECTOR_D BoxPos2); 12491 12492 /** 12493 * カメラの Near クリップ面の距離を取得する 12494 */ 12495 extern float GetCameraNear(); 12496 12497 /** 12498 * カメラの Near クリップ面の距離を取得する 12499 */ 12500 extern double GetCameraNearD(); 12501 12502 /** 12503 * カメラの Far クリップ面の距離を取得する 12504 */ 12505 extern float GetCameraFar(); 12506 12507 /** 12508 * カメラの Far クリップ面の距離を取得する 12509 */ 12510 extern double GetCameraFarD(); 12511 12512 /** 12513 * カメラの位置を取得する 12514 */ 12515 extern .VECTOR GetCameraPosition(); 12516 12517 /** 12518 * カメラの位置を取得する 12519 */ 12520 extern .VECTOR_D GetCameraPositionD(); 12521 12522 /** 12523 * カメラの注視点を取得する 12524 */ 12525 extern .VECTOR GetCameraTarget(); 12526 12527 /** 12528 * カメラの注視点を取得する 12529 */ 12530 extern .VECTOR_D GetCameraTargetD(); 12531 12532 /** 12533 * カメラの正面方向に垂直な上方向のベクトルを取得する 12534 */ 12535 extern .VECTOR GetCameraUpVector(); 12536 12537 /** 12538 * カメラの正面方向に垂直な上方向のベクトルを取得する 12539 */ 12540 extern .VECTOR_D GetCameraUpVectorD(); 12541 12542 /** 12543 * カメラの正面方向に垂直な下方向のベクトルを取得する 12544 */ 12545 extern .VECTOR GetCameraDownVector(); 12546 12547 /** 12548 * カメラの正面方向に垂直な下方向のベクトルを取得する 12549 */ 12550 extern .VECTOR_D GetCameraDownVectorD(); 12551 12552 /** 12553 * カメラの正面方向に垂直な右方向のベクトルを取得する 12554 */ 12555 extern .VECTOR GetCameraRightVector(); 12556 12557 /** 12558 * カメラの正面方向に垂直な右方向のベクトルを取得する 12559 */ 12560 extern .VECTOR_D GetCameraRightVectorD(); 12561 12562 /** 12563 * カメラの正面方向に垂直な左方向のベクトルを取得する 12564 */ 12565 extern .VECTOR GetCameraLeftVector(); 12566 12567 /** 12568 * カメラの正面方向に垂直な左方向のベクトルを取得する 12569 */ 12570 extern .VECTOR_D GetCameraLeftVectorD(); 12571 12572 /** 12573 * カメラの正面方向のベクトルを取得する 12574 */ 12575 extern .VECTOR GetCameraFrontVector(); 12576 12577 /** 12578 * カメラの正面方向のベクトルを取得する 12579 */ 12580 extern .VECTOR_D GetCameraFrontVectorD(); 12581 12582 /** 12583 * カメラの後ろ方向のベクトルを取得する 12584 */ 12585 extern .VECTOR GetCameraBackVector(); 12586 12587 /** 12588 * カメラの後ろ方向のベクトルを取得する 12589 */ 12590 extern .VECTOR_D GetCameraBackVectorD(); 12591 12592 /** 12593 * カメラの水平方向の向きを取得する 12594 */ 12595 extern float GetCameraAngleHRotate(); 12596 12597 /** 12598 * カメラの水平方向の向きを取得する 12599 */ 12600 extern double GetCameraAngleHRotateD(); 12601 12602 /** 12603 * カメラの垂直方向の向きを取得する 12604 */ 12605 extern float GetCameraAngleVRotate(); 12606 12607 /** 12608 * カメラの垂直方向の向きを取得する 12609 */ 12610 extern double GetCameraAngleVRotateD(); 12611 12612 /** 12613 * カメラの向きの捻り角度を取得する 12614 */ 12615 extern float GetCameraAngleTRotate(); 12616 12617 /** 12618 * カメラの向きの捻り角度を取得する 12619 */ 12620 extern double GetCameraAngleTRotateD(); 12621 12622 /** 12623 * ビュー行列を取得する 12624 */ 12625 extern .MATRIX GetCameraViewMatrix(); 12626 12627 /** 12628 * ビュー行列を取得する 12629 */ 12630 extern .MATRIX_D GetCameraViewMatrixD(); 12631 12632 /** 12633 * ビルボード行列を取得する 12634 */ 12635 extern .MATRIX GetCameraBillboardMatrix(); 12636 12637 /** 12638 * ビルボード行列を取得する 12639 */ 12640 extern .MATRIX_D GetCameraBillboardMatrixD(); 12641 12642 /** 12643 * 画面上におけるカメラが見ている映像の中心の座標を取得する 12644 */ 12645 extern int GetCameraScreenCenter(float* x, float* y); 12646 12647 /** 12648 * 画面上におけるカメラが見ている映像の中心の座標を取得する 12649 */ 12650 extern int GetCameraScreenCenterD(double* x, double* y); 12651 12652 /** 12653 * カメラの視野角を取得する 12654 */ 12655 extern float GetCameraFov(); 12656 12657 /** 12658 * カメラの視野角を取得する 12659 */ 12660 extern double GetCameraFovD(); 12661 12662 /** 12663 * カメラの視野サイズを取得する 12664 */ 12665 extern float GetCameraSize(); 12666 12667 /** 12668 * カメラの視野サイズを取得する 12669 */ 12670 extern double GetCameraSizeD(); 12671 12672 /** 12673 * 射影行列を取得する 12674 */ 12675 extern .MATRIX GetCameraProjectionMatrix(); 12676 12677 /** 12678 * 射影行列を取得する 12679 */ 12680 extern .MATRIX_D GetCameraProjectionMatrixD(); 12681 12682 /** 12683 * カメラのドットアスペクト比を得る 12684 */ 12685 extern float GetCameraDotAspect(); 12686 12687 /** 12688 * カメラのドットアスペクト比を得る 12689 */ 12690 extern double GetCameraDotAspectD(); 12691 12692 /** 12693 * ビューポート行列を取得する 12694 */ 12695 extern .MATRIX GetCameraViewportMatrix(); 12696 12697 /** 12698 * ビューポート行列を取得する 12699 */ 12700 extern .MATRIX_D GetCameraViewportMatrixD(); 12701 12702 /** 12703 * Direct3Dで自動適用されるビューポート行列を取得する 12704 */ 12705 extern .MATRIX GetCameraAPIViewportMatrix(); 12706 12707 /** 12708 * Direct3Dで自動適用されるビューポート行列を取得する 12709 */ 12710 extern .MATRIX_D GetCameraAPIViewportMatrixD(); 12711 12712 // ライト関係関数 12713 12714 /** 12715 * ライティングを使用するかどうかを設定する 12716 */ 12717 extern int SetUseLighting(int Flag); 12718 12719 /** 12720 * 3D描画のライティング計算で頂点カラーのディフューズカラーを使用するかどうかを設定する 12721 */ 12722 extern int SetMaterialUseVertDifColor(int UseFlag); 12723 12724 /** 12725 * 3D描画のライティング計算で頂点カラーのスペキュラカラーを使用するかどうかを設定する 12726 */ 12727 extern int SetMaterialUseVertSpcColor(int UseFlag); 12728 12729 /** 12730 * 3D描画のライティング計算で使用するマテリアルパラメータを設定する 12731 */ 12732 extern int SetMaterialParam(MATERIALPARAM Material); 12733 12734 /** 12735 * 3D描画にスペキュラを使用するかどうかを設定する 12736 */ 12737 extern int SetUseSpecular(int UseFlag); 12738 12739 /** 12740 * グローバルアンビエントライトカラーを設定する 12741 */ 12742 extern int SetGlobalAmbientLight(.COLOR_F Color); 12743 12744 /** 12745 * デフォルトライトのタイプをディレクショナルライトにする 12746 */ 12747 extern int ChangeLightTypeDir(.VECTOR Direction); 12748 12749 /** 12750 * デフォルトライトのタイプをスポットライトにする 12751 */ 12752 extern int ChangeLightTypeSpot(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2); 12753 12754 /** 12755 * デフォルトライトのタイプをポイントライトにする 12756 */ 12757 extern int ChangeLightTypePoint(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2); 12758 12759 /** 12760 * デフォルトライトのタイプを取得する 12761 * 12762 * Returns: DX_LIGHTTYPE_DIRECTIONAL 等 12763 */ 12764 extern int GetLightType(); 12765 12766 /** 12767 * デフォルトライトを使用するかどうかを設定する 12768 */ 12769 extern int SetLightEnable(int EnableFlag); 12770 12771 /** 12772 * デフォルトライトを使用するかどうかを取得する 12773 * 12774 * Returns: TRUE:有効 FALSE:無効 12775 */ 12776 extern int GetLightEnable(); 12777 12778 /** 12779 * デフォルトライトのディフューズカラーを設定する 12780 */ 12781 extern int SetLightDifColor(.COLOR_F Color); 12782 12783 /** 12784 * デフォルトライトのディフューズカラーを取得する 12785 */ 12786 extern .COLOR_F GetLightDifColor(); 12787 12788 /** 12789 * デフォルトライトのスペキュラカラーを設定する 12790 */ 12791 extern int SetLightSpcColor(.COLOR_F Color); 12792 12793 /** 12794 * デフォルトライトのスペキュラカラーを取得する 12795 */ 12796 extern .COLOR_F GetLightSpcColor(); 12797 12798 /** 12799 * デフォルトライトのアンビエントカラーを設定する 12800 */ 12801 extern int SetLightAmbColor(.COLOR_F Color); 12802 12803 /** 12804 * デフォルトライトのアンビエントカラーを取得する 12805 */ 12806 extern .COLOR_F GetLightAmbColor(); 12807 12808 /** 12809 * デフォルトライトの方向を設定する 12810 */ 12811 extern int SetLightDirection(.VECTOR Direction); 12812 12813 /** 12814 * デフォルトライトの方向を取得する 12815 */ 12816 extern .VECTOR GetLightDirection(); 12817 12818 /** 12819 * デフォルトライトの位置を設定する 12820 */ 12821 extern int SetLightPosition(.VECTOR Position); 12822 12823 /** 12824 * デフォルトライトの位置を取得する 12825 */ 12826 extern .VECTOR GetLightPosition(); 12827 12828 /** 12829 * デフォルトライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数0、1、2 ) 12830 */ 12831 extern int SetLightRangeAtten(float Range, float Atten0, float Atten1, float Atten2); 12832 12833 /** 12834 * デフォルトライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数0、1、2 ) 12835 */ 12836 extern int GetLightRangeAtten(float* Range, float* Atten0, float* Atten1, float* Atten2); 12837 12838 /** 12839 * デフォルトライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 ) 12840 */ 12841 extern int SetLightAngle(float OutAngle, float InAngle); 12842 12843 /** 12844 * デフォルトライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 ) 12845 */ 12846 extern int GetLightAngle(float* OutAngle, float* InAngle); 12847 12848 /** 12849 * デフォルトライトに SetUseShadowMap で指定したシャドウマップを適用するかどうかを設定する 12850 * 12851 * Params: 12852 * SmSlotIndex = シャドウマップスロット( SetUseShadowMap の第1引数に設定する値 ) 12853 * UseFlag = 適用にするかどうかのフラグ( TRUE:適用する( デフォルト ) FALSE:適用しない ) 12854 */ 12855 extern int SetLightUseShadowMap(int SmSlotIndex, int UseFlag); 12856 12857 /** 12858 * ディレクショナルライトハンドルを作成する 12859 */ 12860 extern int CreateDirLightHandle(.VECTOR Direction); 12861 12862 /** 12863 * スポットライトハンドルを作成する 12864 */ 12865 extern int CreateSpotLightHandle(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2); 12866 12867 /** 12868 * ポイントライトハンドルを作成する 12869 */ 12870 extern int CreatePointLightHandle(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2); 12871 12872 /** 12873 * ライトハンドルを削除する 12874 */ 12875 extern int DeleteLightHandle(int LHandle); 12876 12877 /** 12878 * ライトハンドルを全て削除する 12879 */ 12880 extern int DeleteLightHandleAll(); 12881 12882 /** 12883 * ライトハンドルのライトのタイプを変更する( DX_LIGHTTYPE_DIRECTIONAL 等 ) 12884 */ 12885 extern int SetLightTypeHandle(int LHandle, int LightType); 12886 12887 /** 12888 * ライトハンドルのライト効果の有効、無効を設定する 12889 * 12890 * Params: 12891 * LHandle = ? 12892 * EnableFlag = TRUE:有効 FALSE:無効 12893 */ 12894 extern int SetLightEnableHandle(int LHandle, int EnableFlag); 12895 12896 /** 12897 * ライトハンドルのライトのディフューズカラーを設定する 12898 */ 12899 extern int SetLightDifColorHandle(int LHandle, .COLOR_F Color); 12900 12901 /** 12902 * ライトハンドルのライトのスペキュラカラーを設定する 12903 */ 12904 extern int SetLightSpcColorHandle(int LHandle, .COLOR_F Color); 12905 12906 /** 12907 * ライトハンドルのライトのアンビエントカラーを設定する 12908 */ 12909 extern int SetLightAmbColorHandle(int LHandle, .COLOR_F Color); 12910 12911 /** 12912 * ライトハンドルのライトの方向を設定する 12913 */ 12914 extern int SetLightDirectionHandle(int LHandle, .VECTOR Direction); 12915 12916 /** 12917 * ライトハンドルのライトの位置を設定する 12918 */ 12919 extern int SetLightPositionHandle(int LHandle, .VECTOR Position); 12920 12921 /** 12922 * ライトハンドルのライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数0、1、2 ) 12923 */ 12924 extern int SetLightRangeAttenHandle(int LHandle, float Range, float Atten0, float Atten1, float Atten2); 12925 12926 /** 12927 * ライトハンドルのライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 ) 12928 */ 12929 extern int SetLightAngleHandle(int LHandle, float OutAngle, float InAngle); 12930 12931 /** 12932 * ライトハンドルのライトに SetUseShadowMap で指定したシャドウマップを適用するかどうかを設定する 12933 * 12934 * Params: 12935 * LHandle = ? 12936 * SmSlotIndex = シャドウマップスロット( SetUseShadowMap の第1引数に設定する値 ) 12937 * UseFlag = 適用にするかどうかのフラグ( TRUE:適用する( デフォルト ) FALSE:適用しない ) 12938 */ 12939 extern int SetLightUseShadowMapHandle(int LHandle, int SmSlotIndex, int UseFlag); 12940 12941 /** 12942 * ライトハンドルのライトのタイプを取得する 12943 * 12944 * Returns: DX_LIGHTTYPE_DIRECTIONAL 等 12945 */ 12946 extern int GetLightTypeHandle(int LHandle); 12947 12948 /** 12949 * ライトハンドルのライト効果の有効、無効を取得する 12950 * 12951 * Returns: TRUE:有効 FALSE:無効 12952 */ 12953 extern int GetLightEnableHandle(int LHandle); 12954 12955 /** 12956 * ライトハンドルのライトのディフューズカラーを取得する 12957 */ 12958 extern .COLOR_F GetLightDifColorHandle(int LHandle); 12959 12960 /** 12961 * ライトハンドルのライトのスペキュラカラーを取得する 12962 */ 12963 extern .COLOR_F GetLightSpcColorHandle(int LHandle); 12964 12965 /** 12966 * ライトハンドルのライトのアンビエントカラーを取得する 12967 */ 12968 extern .COLOR_F GetLightAmbColorHandle(int LHandle); 12969 12970 /** 12971 * ライトハンドルのライトの方向を取得する 12972 */ 12973 extern .VECTOR GetLightDirectionHandle(int LHandle); 12974 12975 /** 12976 * ライトハンドルのライトの位置を取得する 12977 */ 12978 extern .VECTOR GetLightPositionHandle(int LHandle); 12979 12980 /** 12981 * ライトハンドルのライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数0、1、2 ) 12982 */ 12983 extern int GetLightRangeAttenHandle(int LHandle, float* Range, float* Atten0, float* Atten1, float* Atten2); 12984 12985 /** 12986 * ライトハンドルのライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 ) 12987 */ 12988 extern int GetLightAngleHandle(int LHandle, float* OutAngle, float* InAngle); 12989 12990 /** 12991 * 有効になっているライトハンドルの数を取得する 12992 */ 12993 extern int GetEnableLightHandleNum(); 12994 12995 /** 12996 * 有効になっているライトハンドルを取得する 12997 */ 12998 extern int GetEnableLightHandle(int Index); 12999 13000 // 色情報取得用関数 13001 13002 /** 13003 * テクスチャフォーマットのインデックスを得る 13004 */ 13005 extern int GetTexFormatIndex(const (.IMAGEFORMATDESC)* Format); 13006 13007 // DxMask.cpp 関数プロトタイプ宣言 13008 13009 version (DX_NON_MASK) { 13010 } else { 13011 // マスク関係 13012 13013 /** 13014 * マスクスクリーンを作成する 13015 */ 13016 extern int CreateMaskScreen(); 13017 13018 /** 13019 * マスクスクリーンを削除する 13020 */ 13021 extern int DeleteMaskScreen(); 13022 13023 /** 13024 * マスクスクリーンにメモリ上のビットマップデータを転送する( MaskData は 1byte で 1dot 表す1ラインあたり Width byte のデータ配列の先頭アドレス ) 13025 */ 13026 extern int DrawMaskToDirectData(int x, int y, int Width, int Height, const (void)* MaskData, int TransMode); 13027 13028 /** 13029 * マスクスクリーンにメモリ上のビットマップデータで指定矩形内を塗りつぶすように転送する 13030 */ 13031 extern int DrawFillMaskToDirectData(int x1, int y1, int x2, int y2, int Width, int Height, const (void)* MaskData); 13032 13033 /** 13034 * マスクスクリーンを使用するかどうかを設定する 13035 * 13036 * Params: 13037 * ValidFlag = 使用するかどうか( TRUE:使用する FALSE:使用しない( デフォルト ) 13038 */ 13039 extern int SetUseMaskScreenFlag(int ValidFlag); 13040 13041 /** 13042 * マスクスクリーンを使用するかどうかを取得する 13043 */ 13044 extern int GetUseMaskScreenFlag(); 13045 13046 /** 13047 * マスクスクリーンを指定の色で塗りつぶす 13048 */ 13049 extern int FillMaskScreen(int Flag); 13050 13051 /** 13052 * マスクスクリーンとして使用するグラフィックのハンドルを設定する、-1を渡すと解除( 引数で渡すグラフィックハンドルは MakeScreen で作成した「アルファチャンネル付きの描画対象にできるグラフィックハンドル」である必要があります( アルファチャンネルがマスクに使用されます ) ) 13053 */ 13054 extern int SetMaskScreenGraph(int GraphHandle); 13055 13056 /** 13057 * マスクスクリーンとして使用するグラフィックの、どのチャンネルをマスクとして使用するかを設定する( デフォルトは DX_MASKGRAPH_CH_A、 尚、DX_MASKGRAPH_CH_A以外を使用する場合はグラフィックスデバイスがシェーダーモデル2.0以降に対応している必要があります ) 13058 */ 13059 extern int SetMaskScreenGraphUseChannel(int UseChannel /* DX_MASKGRAPH_CH_A 等 */); 13060 13061 /** 13062 * マスクハンドルをすべて削除する 13063 */ 13064 extern int InitMask(); 13065 13066 /** 13067 * マスクハンドルを作成する 13068 */ 13069 extern int MakeMask(int Width, int Height); 13070 13071 /** 13072 * マスクハンドルが持つマスクイメージのサイズを取得する 13073 */ 13074 extern int GetMaskSize(int* WidthBuf, int* HeightBuf, int MaskHandle); 13075 13076 /** 13077 * マスクハンドルが持つマスクイメージのBASEIMAGEデータを取得する( フォーマットが変更されるような操作をすると正常に動作しなくなります、あと、ReleaseBaseImage は実行する必要はありません ) 13078 */ 13079 extern int GetMaskBaseImageInfo(.BASEIMAGE* BaseImage, int MaskHandle); 13080 13081 /** 13082 * マスクハンドルにビットマップイメージを転送する 13083 */ 13084 extern int SetDataToMask(int Width, int Height, const (void)* MaskData, int MaskHandle); 13085 13086 /** 13087 * マスクハンドルを削除する 13088 */ 13089 extern int DeleteMask(int MaskHandle); 13090 13091 /** 13092 * マスクハンドルにBASEIMAGEデータを転送する 13093 */ 13094 extern int GraphImageBltToMask(const (.BASEIMAGE)* BaseImage, int ImageX, int ImageY, int MaskHandle); 13095 13096 /** 13097 * 画像ファイルを読み込みマスクハンドルを作成する 13098 */ 13099 extern int LoadMask(const (dxlib_d.dxdatatype.TCHAR)* FileName); 13100 13101 /** 13102 * 画像ファイルを読み込みマスクハンドルを作成する 13103 */ 13104 extern int LoadMaskWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 13105 13106 /** 13107 * 画像ファイルを分割読み込みしてマスクハンドルを作成する 13108 */ 13109 extern int LoadDivMask(const (dxlib_d.dxdatatype.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13110 13111 /** 13112 * 画像ファイルを分割読み込みしてマスクハンドルを作成する 13113 */ 13114 extern int LoadDivMaskWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13115 13116 /** 13117 * メモリ上にある画像ファイルイメージを読み込みマスクハンドルを作成する 13118 */ 13119 extern int CreateMaskFromMem(const (void)* FileImage, int FileImageSize); 13120 13121 /** 13122 * メモリ上にある画像ファイルイメージを分割読み込みしてマスクハンドルを作成する 13123 */ 13124 extern int CreateDivMaskFromMem(const (void)* FileImage, int FileImageSize, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13125 13126 /** 13127 * マスクスクリーンにマスクハンドルの持つマスクイメージを書き込む 13128 */ 13129 extern int DrawMask(int x, int y, int MaskHandle, int TransMode); 13130 13131 version (DX_NON_FONT) { 13132 } else { 13133 /** 13134 * 書式指定ありの文字列をマスクスクリーンに描画する 13135 */ 13136 extern int DrawFormatStringMask(int x, int y, int Flag, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13137 13138 /** 13139 * 書式指定ありの文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag(FALSE); にして作成したフォントハンドルのみ使用可能 ) 13140 */ 13141 extern int DrawFormatStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13142 13143 /** 13144 * 文字列をマスクスクリーンに描画する 13145 */ 13146 extern int DrawStringMask(int x, int y, int Flag, const (dxlib_d.dxdatatype.TCHAR)* String); 13147 13148 /** 13149 * 文字列をマスクスクリーンに描画する 13150 */ 13151 extern int DrawNStringMask(int x, int y, int Flag, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength); 13152 13153 /** 13154 * 文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag(FALSE); にして作成したフォントハンドルのみ使用可能 ) 13155 */ 13156 extern int DrawStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* String); 13157 13158 /** 13159 * 文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag(FALSE); にして作成したフォントハンドルのみ使用可能 ) 13160 */ 13161 extern int DrawNStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength); 13162 } 13163 13164 /** 13165 * マスクハンドルが持つマスクイメージをマスクスクリーンいっぱいに描画する( タイル状に並べる ) 13166 */ 13167 extern int DrawFillMask(int x1, int y1, int x2, int y2, int MaskHandle); 13168 13169 /** 13170 * マスクイメージ内の数値に対する効果を逆転させる( 旧バージョンとの互換性の為の機能 ) 13171 */ 13172 extern int SetMaskReverseEffectFlag(int ReverseFlag); 13173 13174 /** 13175 * マスクスクリーンの指定矩形部分をマスクハンドルに転送する 13176 */ 13177 extern int GetMaskScreenData(int x1, int y1, int x2, int y2, int MaskHandle); 13178 13179 /** 13180 * マスクスクリーンを使用する設定になっているかどうかを取得する 13181 */ 13182 extern int GetMaskUseFlag(); 13183 } 13184 } 13185 13186 // DxFont.cpp 関数プロトタイプ宣言 13187 13188 version (DX_NON_FONT) { 13189 } else { 13190 // フォント、文字列描画関係関数 13191 13192 /** 13193 * 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます ) 13194 */ 13195 extern int EnumFontName(dxlib_d.dxdatatype.TCHAR* NameBuffer, int NameBufferNum, int JapanOnlyFlag = dxlib_d.dxdatatype.TRUE); 13196 13197 /** 13198 * 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます )( 文字セット指定版 ) 13199 */ 13200 extern int EnumFontNameEx(dxlib_d.dxdatatype.TCHAR* NameBuffer, int NameBufferNum, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */); 13201 13202 /** 13203 * 指定のフォント名のフォントを列挙する 13204 */ 13205 extern int EnumFontNameEx2(dxlib_d.dxdatatype.TCHAR* NameBuffer, int NameBufferNum, const (dxlib_d.dxdatatype.TCHAR)* EnumFontName, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */); 13206 13207 /** 13208 * 指定のフォント名のフォントを列挙する 13209 */ 13210 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 等 */); 13211 13212 /** 13213 * 指定のフォント名のフォントが存在するかどうかをチェックする 13214 * 13215 * Returns: TRUE:存在する FALSE:存在しない 13216 */ 13217 extern int CheckFontName(const (dxlib_d.dxdatatype.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */); 13218 13219 /** 13220 * 指定のフォント名のフォントが存在するかどうかをチェックする 13221 * 13222 * Returns: TRUE:存在する FALSE:存在しない 13223 */ 13224 extern int CheckFontNameWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */); 13225 13226 /** 13227 * 全てのフォントハンドルを削除する 13228 */ 13229 extern int InitFontToHandle(); 13230 13231 /** 13232 * フォントハンドルを作成する 13233 */ 13234 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); 13235 13236 /** 13237 * フォントハンドルを作成する 13238 */ 13239 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); 13240 13241 /** 13242 * フォントデータファイルからフォントハンドルを作成する 13243 */ 13244 extern int LoadFontDataToHandle(const (dxlib_d.dxdatatype.TCHAR)* FileName, int EdgeSize = 0); 13245 13246 /** 13247 * フォントデータファイルからフォントハンドルを作成する 13248 */ 13249 extern int LoadFontDataToHandleWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int EdgeSize = 0); 13250 13251 /** 13252 * メモリ上のフォントデータファイルイメージからフォントハンドルを作成する 13253 */ 13254 extern int LoadFontDataFromMemToHandle(const (void)* FontDataImage, int FontDataImageSize, int EdgeSize = 0); 13255 13256 /** 13257 * フォントハンドルの字間を変更する 13258 */ 13259 extern int SetFontSpaceToHandle(int Pixel, int FontHandle); 13260 13261 /** 13262 * フォントハンドルの行間を変更する 13263 */ 13264 extern int SetFontLineSpaceToHandle(int Pixel, int FontHandle); 13265 13266 /** 13267 * 指定のフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する( UNICODE版では無効 ) 13268 */ 13269 extern int SetFontCharCodeFormatToHandle(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS 等 */, int FontHandle); 13270 13271 /** 13272 * フォントハンドルを削除する 13273 */ 13274 extern int DeleteFontToHandle(int FontHandle); 13275 13276 /** 13277 * フォントハンドルを削除した際に TRUE を代入する変数のアドレスを設定する 13278 */ 13279 extern int SetFontLostFlag(int FontHandle, int* LostFlag); 13280 13281 /** 13282 * 指定の文字の代わりに描画するグラフィックハンドルを登録する 13283 */ 13284 extern int AddFontImageToHandle(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char, int GrHandle, int DrawX, int DrawY, int AddX); 13285 13286 /** 13287 * 指定の文字の代わりに描画するグラフィックハンドルを登録する 13288 */ 13289 extern int AddFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char, size_t CharLength, int GrHandle, int DrawX, int DrawY, int AddX); 13290 13291 /** 13292 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する 13293 */ 13294 extern int SubFontImageToHandle(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char); 13295 13296 /** 13297 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する 13298 */ 13299 extern int SubFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char, size_t CharLength); 13300 13301 /** 13302 * 代替フォントハンドル( FontHandle に無い文字を描画しようとしたときに代わりに使用されるフォントハンドル )を登録する 13303 */ 13304 extern int AddSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle, int DrawX, int DrawY); 13305 13306 /** 13307 * 代替フォントハンドルの登録を解除する 13308 */ 13309 extern int SubSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle); 13310 13311 /** 13312 * デフォルトフォントハンドルで使用するフォントを変更 13313 */ 13314 extern int ChangeFont(const (dxlib_d.dxdatatype.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_SHFTJIS 等 */); 13315 13316 /** 13317 * デフォルトフォントハンドルで使用するフォントを変更 13318 */ 13319 extern int ChangeFontWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_SHFTJIS 等 */); 13320 13321 /** 13322 * デフォルトフォントハンドルのフォントタイプの変更 13323 */ 13324 extern int ChangeFontType(int FontType); 13325 13326 /** 13327 * デフォルトフォントハンドルのフォント名を取得する 13328 */ 13329 extern const (dxlib_d.dxdatatype.TCHAR)* GetFontName(); 13330 13331 /** 13332 * デフォルトフォントハンドルのサイズを設定する 13333 */ 13334 extern int SetFontSize(int FontSize); 13335 13336 /** 13337 * デフォルトフォントハンドルのサイズを取得する 13338 */ 13339 extern int GetFontSize(); 13340 13341 /** 13342 * デフォルトフォントハンドルの縁サイズを取得する 13343 */ 13344 extern int GetFontEdgeSize(); 13345 13346 /** 13347 * デフォルトフォントハンドルの太さを設定する 13348 */ 13349 extern int SetFontThickness(int ThickPal); 13350 13351 /** 13352 * デフォルトフォントハンドルの字間を変更する 13353 */ 13354 extern int SetFontSpace(int Pixel); 13355 13356 /** 13357 * デフォルトフォントハンドルの字間を取得する 13358 */ 13359 extern int GetFontSpace(); 13360 13361 /** 13362 * デフォルトフォントハンドルの行間を変更する 13363 */ 13364 extern int SetFontLineSpace(int Pixel); 13365 13366 /** 13367 * デフォルトフォントハンドルの行間を取得する 13368 */ 13369 extern int GetFontLineSpace(); 13370 13371 /** 13372 * デフォルトフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する( UNICODE版では無効 ) 13373 */ 13374 extern int SetFontCharCodeFormat(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS 等 */); 13375 13376 /** 13377 * デフォルトフォントハンドルの設定を変更する 13378 */ 13379 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); 13380 13381 /** 13382 * デフォルトフォントハンドルの設定を変更する 13383 */ 13384 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); 13385 13386 /** 13387 * デフォルトフォントハンドルを取得する 13388 */ 13389 extern int GetDefaultFontHandle(); 13390 13391 /** 13392 * デフォルトフォントハンドルのキャッシュできる文字の数を取得する 13393 */ 13394 extern int GetFontMaxCacheCharNum(); 13395 13396 /** 13397 * デフォルトフォントハンドルの文字の最大幅を取得する 13398 */ 13399 extern int GetFontMaxWidth(); 13400 13401 /** 13402 * デフォルトフォントハンドルの描画位置からベースラインまでの高さを取得する 13403 */ 13404 extern int GetFontAscent(); 13405 13406 /** 13407 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する 13408 */ 13409 extern int GetDrawStringWidth(const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13410 13411 /** 13412 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する 13413 */ 13414 extern int GetDrawNStringWidth(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13415 13416 /** 13417 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する 13418 */ 13419 extern int GetDrawFormatStringWidth(const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13420 13421 /** 13422 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する( 拡大率付き ) 13423 */ 13424 extern int GetDrawExtendStringWidth(double ExRateX, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13425 13426 /** 13427 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する( 拡大率付き ) 13428 */ 13429 extern int GetDrawExtendNStringWidth(double ExRateX, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13430 13431 /** 13432 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する( 拡大率付き ) 13433 */ 13434 extern int GetDrawExtendFormatStringWidth(double ExRateX, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13435 13436 /** 13437 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13438 */ 13439 extern int GetDrawStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13440 13441 /** 13442 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13443 */ 13444 extern int GetDrawNStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13445 13446 /** 13447 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13448 */ 13449 extern int GetDrawFormatStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13450 13451 /** 13452 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する( 拡大率付き ) 13453 */ 13454 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); 13455 13456 /** 13457 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する( 拡大率付き ) 13458 */ 13459 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); 13460 13461 /** 13462 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する( 拡大率付き ) 13463 */ 13464 extern int GetDrawExtendFormatStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13465 13466 /** 13467 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13468 */ 13469 extern int GetDrawStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13470 13471 /** 13472 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13473 */ 13474 extern int GetDrawNStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13475 13476 /** 13477 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13478 */ 13479 extern int GetDrawFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13480 13481 /** 13482 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13483 */ 13484 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); 13485 13486 /** 13487 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13488 */ 13489 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); 13490 13491 /** 13492 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13493 */ 13494 extern int GetDrawExtendFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13495 13496 /** 13497 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13498 * 13499 * Params: 13500 * PairChar = カーニング情報を調べるペアとなる2文字の文字列( 2文字以上あっても先頭の2文字だけ使用されます ) 13501 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13502 */ 13503 extern int GetDrawStringKerningPairInfo(const (dxlib_d.dxdatatype.TCHAR)* PairChar, int* KernAmount); 13504 13505 /** 13506 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13507 * 13508 * Params: 13509 * PairChar = カーニング情報を調べるペアとなる2文字の文字列( 2文字以上あっても先頭の2文字だけ使用されます ) 13510 * PairCharLength = ? 13511 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13512 */ 13513 extern int GetDrawStringKerningPairInfoWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount); 13514 13515 /** 13516 * フォントハンドルのフォント名を取得する 13517 */ 13518 extern const (dxlib_d.dxdatatype.TCHAR)* GetFontNameToHandle(int FontHandle); 13519 13520 /** 13521 * フォントハンドルのキャッシュできる文字の数を取得する 13522 */ 13523 extern int GetFontMaxCacheCharNumToHandle(int FontHandle); 13524 13525 /** 13526 * フォントハンドルの文字の最大幅を取得する 13527 */ 13528 extern int GetFontMaxWidthToHandle(int FontHandle); 13529 13530 /** 13531 * フォントハンドルの描画位置からベースラインまでの高さを取得する 13532 */ 13533 extern int GetFontAscentToHandle(int FontHandle); 13534 13535 /** 13536 * フォントハンドルのサイズを取得する 13537 */ 13538 extern int GetFontSizeToHandle(int FontHandle); 13539 13540 /** 13541 * フォントハンドルの縁サイズを取得する 13542 */ 13543 extern int GetFontEdgeSizeToHandle(int FontHandle); 13544 13545 /** 13546 * フォントハンドルの字間を取得する 13547 */ 13548 extern int GetFontSpaceToHandle(int FontHandle); 13549 13550 /** 13551 * フォントハンドルの行間を取得する 13552 */ 13553 extern int GetFontLineSpaceToHandle(int FontHandle); 13554 13555 /** 13556 * フォントハンドルの指定の文字の描画情報を取得する 13557 */ 13558 extern int GetFontCharInfo(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY); 13559 13560 /** 13561 * フォントハンドルの指定の文字の描画情報を取得する 13562 */ 13563 extern int GetFontCharInfoWithStrLen(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* Char, size_t CharLength, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY); 13564 13565 /** 13566 * フォントハンドルを使用した文字列の描画幅を取得する 13567 */ 13568 extern int GetDrawStringWidthToHandle(const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13569 13570 /** 13571 * フォントハンドルを使用した文字列の描画幅を取得する 13572 */ 13573 extern int GetDrawNStringWidthToHandle(const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13574 13575 /** 13576 * フォントハンドルを使用した書式付き文字列の描画幅を取得する 13577 */ 13578 extern int GetDrawFormatStringWidthToHandle(int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13579 13580 /** 13581 * フォントハンドルを使用した文字列の描画幅を取得する 13582 */ 13583 extern int GetDrawExtendStringWidthToHandle(double ExRateX, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13584 13585 /** 13586 * フォントハンドルを使用した文字列の描画幅を取得する 13587 */ 13588 extern int GetDrawExtendNStringWidthToHandle(double ExRateX, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13589 13590 /** 13591 * フォントハンドルを使用した書式付き文字列の描画幅を取得する 13592 */ 13593 extern int GetDrawExtendFormatStringWidthToHandle(double ExRateX, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13594 13595 /** 13596 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13597 */ 13598 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); 13599 13600 /** 13601 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13602 */ 13603 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); 13604 13605 /** 13606 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13607 */ 13608 extern int GetDrawFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13609 13610 /** 13611 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13612 */ 13613 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); 13614 13615 /** 13616 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13617 */ 13618 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); 13619 13620 /** 13621 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13622 */ 13623 extern int GetDrawExtendFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13624 13625 /** 13626 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13627 */ 13628 extern int GetDrawStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.dxdatatype.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13629 13630 /** 13631 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13632 */ 13633 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); 13634 13635 /** 13636 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13637 */ 13638 extern int GetDrawFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13639 13640 /** 13641 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13642 */ 13643 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); 13644 13645 /** 13646 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13647 */ 13648 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); 13649 13650 /** 13651 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13652 */ 13653 extern int GetDrawExtendFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13654 13655 /** 13656 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13657 * 13658 * Params: 13659 * PairChar = カーニング情報を調べるペアとなる2文字の文字列( 2文字以上あっても先頭の2文字だけ使用されます ) 13660 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13661 * FontHandle = ? 13662 */ 13663 extern int GetDrawStringKerningPairInfoToHandle(const (dxlib_d.dxdatatype.TCHAR)* PairChar, int* KernAmount, int FontHandle); 13664 13665 /** 13666 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13667 * 13668 * Params: 13669 * PairChar = カーニング情報を調べるペアとなる2文字の文字列( 2文字以上あっても先頭の2文字だけ使用されます ) 13670 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13671 * FontHandle = ? 13672 */ 13673 extern int GetDrawStringKerningPairInfoToHandleWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount, int FontHandle); 13674 13675 /** 13676 * フォントハンドルの情報を取得する 13677 */ 13678 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); 13679 13680 /** 13681 * フォントハンドルがテクスチャキャッシュを使用しているかどうかを取得する 13682 */ 13683 extern int CheckFontCacheToTextureFlag(int FontHandle); 13684 13685 /** 13686 * CheckFontCacheToTextureFlag の誤字版 13687 */ 13688 extern int CheckFontChacheToTextureFlag(int FontHandle); 13689 13690 /** 13691 * フォントハンドルが有効かどうかを取得する 13692 */ 13693 extern int CheckFontHandleValid(int FontHandle); 13694 13695 /** 13696 * フォントハンドルのキャッシュ情報を初期化する 13697 */ 13698 extern int ClearFontCacheToHandle(int FontHandle); 13699 13700 /** 13701 * フォントのキャッシュにテクスチャを使用するかどうかを設定する 13702 * 13703 * Params: 13704 * Flag = TRUE:テクスチャを使用する( デフォルト ) FALSE:テクスチャは使用しない 13705 */ 13706 extern int SetFontCacheToTextureFlag(int Flag); 13707 13708 /** 13709 * フォントのキャッシュにテクスチャを使用するかどうかを設定する 13710 */ 13711 extern int GetFontCacheToTextureFlag(); 13712 13713 /** 13714 * SetFontCacheToTextureFlag の誤字版 13715 */ 13716 extern int SetFontChacheToTextureFlag(int Flag); 13717 13718 /** 13719 * GetFontCacheToTextureFlag の誤字版 13720 */ 13721 extern int GetFontChacheToTextureFlag(); 13722 13723 /** 13724 * フォントのキャッシュとして使用するテクスチャのカラービット深度を設定する( 16 又は 32 のみ指定可能 デフォルトは 32 ) 13725 */ 13726 extern int SetFontCacheTextureColorBitDepth(int ColorBitDepth); 13727 13728 /** 13729 * フォントのキャッシュとして使用するテクスチャのカラービット深度を取得する 13730 */ 13731 extern int GetFontCacheTextureColorBitDepth(); 13732 13733 /** 13734 * フォントキャッシュでキャッシュできる文字数を設定する 13735 */ 13736 extern int SetFontCacheCharNum(int CharNum); 13737 13738 /** 13739 * フォントキャッシュでキャッシュできる文字数を取得する 13740 * 13741 * Returns: 0:デフォルト 1以上:指定文字数 13742 */ 13743 extern int GetFontCacheCharNum(); 13744 13745 /** 13746 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを設定する 13747 * 13748 * Params: 13749 * Flag = TRUE:乗算済みαを使用する FLASE:乗算済みαを使用しない( デフォルト ) 13750 */ 13751 extern int SetFontCacheUsePremulAlphaFlag(int Flag); 13752 13753 /** 13754 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを取得する 13755 */ 13756 extern int GetFontCacheUsePremulAlphaFlag(); 13757 13758 /** 13759 * フォントのサイズを補正する処理を行うかどうかを設定する 13760 * 13761 * Params: 13762 * Flag = TRUE:行う( デフォルト ) FALSE:行わない 13763 */ 13764 extern int SetFontUseAdjustSizeFlag(int Flag); 13765 13766 /** 13767 * フォントのサイズを補正する処理を行うかどうかを取得する 13768 */ 13769 extern int GetFontUseAdjustSizeFlag(); 13770 13771 // FontCacheStringDraw の代わりに DrawString を使ってください 13772 13773 /** 13774 * ? 13775 */ 13776 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); 13777 13778 /** 13779 * ? 13780 */ 13781 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); 13782 13783 /** 13784 * 基本イメージに文字列を描画する( デフォルトフォントハンドルを使用する ) 13785 */ 13786 extern int FontBaseImageBlt(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* StrData, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 13787 13788 /** 13789 * 基本イメージに文字列を描画する( デフォルトフォントハンドルを使用する ) 13790 */ 13791 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); 13792 13793 /** 13794 * 基本イメージに文字列を描画する 13795 */ 13796 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); 13797 13798 /** 13799 * 基本イメージに文字列を描画する 13800 */ 13801 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); 13802 13803 /** 13804 * 2バイト文字か調べる( TRUE:2バイト文字 FALSE:1バイト文字 ) 13805 * 13806 * Returns: TRUE:2バイト文字 FALSE:1バイト文字 13807 */ 13808 extern int MultiByteCharCheck(const (char)* Buf, int CharSet /* DX_CHARSET_SHFTJIS */); 13809 13810 // 文字列描画関数 13811 13812 /** 13813 * デフォルトフォントハンドルを使用して文字列を描画する 13814 */ 13815 extern int DrawString(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13816 13817 /** 13818 * デフォルトフォントハンドルを使用して文字列を描画する 13819 */ 13820 extern int DrawNString(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13821 13822 /** 13823 * デフォルトフォントハンドルを使用して文字列を描画する( 縦書き ) 13824 */ 13825 extern int DrawVString(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13826 13827 /** 13828 * デフォルトフォントハンドルを使用して文字列を描画する( 縦書き ) 13829 */ 13830 extern int DrawNVString(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13831 13832 /** 13833 * デフォルトフォントハンドルを使用して書式指定文字列を描画する 13834 */ 13835 extern int DrawFormatString(int x, int y, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13836 13837 /** 13838 * デフォルトフォントハンドルを使用して書式指定文字列を描画する( 縦書き ) 13839 */ 13840 extern int DrawFormatVString(int x, int y, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13841 13842 /** 13843 * デフォルトフォントハンドルを使用して文字列の拡大描画 13844 */ 13845 extern int DrawExtendString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13846 13847 /** 13848 * デフォルトフォントハンドルを使用して文字列の拡大描画 13849 */ 13850 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); 13851 13852 /** 13853 * デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き ) 13854 */ 13855 extern int DrawExtendVString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13856 13857 /** 13858 * デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き ) 13859 */ 13860 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); 13861 13862 /** 13863 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する 13864 */ 13865 extern int DrawExtendFormatString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13866 13867 /** 13868 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き ) 13869 */ 13870 extern int DrawExtendFormatVString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13871 13872 /** 13873 * デフォルトフォントハンドルを使用して文字列を回転描画する 13874 */ 13875 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); 13876 13877 /** 13878 * デフォルトフォントハンドルを使用して文字列を回転描画する 13879 */ 13880 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); 13881 13882 /** 13883 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する 13884 */ 13885 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, ...); 13886 13887 /** 13888 * デフォルトフォントハンドルを使用して文字列を変形描画する 13889 */ 13890 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); 13891 13892 /** 13893 * デフォルトフォントハンドルを使用して文字列を変形描画する 13894 */ 13895 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); 13896 13897 /** 13898 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する 13899 */ 13900 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, ...); 13901 13902 /** 13903 * デフォルトフォントハンドルを使用して文字列を描画する( 座標指定が float 版 ) 13904 */ 13905 extern int DrawStringF(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13906 13907 /** 13908 * デフォルトフォントハンドルを使用して文字列を描画する( 座標指定が float 版 ) 13909 */ 13910 extern int DrawNStringF(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13911 13912 /** 13913 * デフォルトフォントハンドルを使用して文字列を描画する( 縦書き )( 座標指定が float 版 ) 13914 */ 13915 extern int DrawVStringF(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13916 13917 /** 13918 * デフォルトフォントハンドルを使用して文字列を描画する( 縦書き )( 座標指定が float 版 ) 13919 */ 13920 extern int DrawNVStringF(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13921 13922 /** 13923 * デフォルトフォントハンドルを使用して書式指定文字列を描画する( 座標指定が float 版 ) 13924 */ 13925 extern int DrawFormatStringF(float x, float y, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13926 13927 /** 13928 * デフォルトフォントハンドルを使用して書式指定文字列を描画する( 縦書き )( 座標指定が float 版 ) 13929 */ 13930 extern int DrawFormatVStringF(float x, float y, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13931 13932 /** 13933 * デフォルトフォントハンドルを使用して文字列の拡大描画( 座標指定が float 版 ) 13934 */ 13935 extern int DrawExtendStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13936 13937 /** 13938 * デフォルトフォントハンドルを使用して文字列の拡大描画( 座標指定が float 版 ) 13939 */ 13940 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); 13941 13942 /** 13943 * デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き )( 座標指定が float 版 ) 13944 */ 13945 extern int DrawExtendVStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, uint EdgeColor = 0); 13946 13947 /** 13948 * デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き )( 座標指定が float 版 ) 13949 */ 13950 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); 13951 13952 /** 13953 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する( 座標指定が float 版 ) 13954 */ 13955 extern int DrawExtendFormatStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13956 13957 /** 13958 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )( 座標指定が float 版 ) 13959 */ 13960 extern int DrawExtendFormatVStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 13961 13962 /** 13963 * デフォルトフォントハンドルを使用して文字列を回転描画する( 座標指定が float 版 ) 13964 */ 13965 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); 13966 13967 /** 13968 * デフォルトフォントハンドルを使用して文字列を回転描画する( 座標指定が float 版 ) 13969 */ 13970 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); 13971 13972 /** 13973 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する( 座標指定が float 版 ) 13974 */ 13975 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, ...); 13976 13977 /** 13978 * デフォルトフォントハンドルを使用して文字列を変形描画する( 座標指定が float 版 ) 13979 */ 13980 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); 13981 13982 /** 13983 * デフォルトフォントハンドルを使用して文字列を変形描画する( 座標指定が float 版 ) 13984 */ 13985 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); 13986 13987 /** 13988 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する( 座標指定が float 版 ) 13989 */ 13990 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, ...); 13991 13992 /** 13993 * デフォルトフォントハンドルを使用して整数型の数値を描画する 13994 */ 13995 extern int DrawNumberToI(int x, int y, int Num, int RisesNum, uint Color, uint EdgeColor = 0); 13996 13997 /** 13998 * デフォルトフォントハンドルを使用して浮動小数点型の数値を描画する 13999 */ 14000 extern int DrawNumberToF(int x, int y, double Num, int Length, uint Color, uint EdgeColor = 0); 14001 14002 /** 14003 * デフォルトフォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する 14004 */ 14005 extern int DrawNumberPlusToI(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* NoteString, int Num, int RisesNum, uint Color, uint EdgeColor = 0); 14006 14007 /** 14008 * デフォルトフォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する 14009 */ 14010 extern int DrawNumberPlusToF(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* NoteString, double Num, int Length, uint Color, uint EdgeColor = 0); 14011 14012 /** 14013 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する 14014 */ 14015 extern int DrawStringToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14016 14017 /** 14018 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する 14019 */ 14020 extern int DrawNStringToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14021 14022 /** 14023 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き ) 14024 */ 14025 extern int DrawVStringToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14026 14027 /** 14028 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き ) 14029 */ 14030 extern int DrawNVStringToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14031 14032 /** 14033 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する 14034 */ 14035 extern int DrawFormatStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14036 14037 /** 14038 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する( 縦書き ) 14039 */ 14040 extern int DrawFormatVStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14041 14042 /** 14043 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する 14044 */ 14045 extern int DrawExtendStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14046 14047 /** 14048 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する 14049 */ 14050 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 等 */); 14051 14052 /** 14053 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き ) 14054 */ 14055 extern int DrawExtendVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14056 14057 /** 14058 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き ) 14059 */ 14060 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 等 */); 14061 14062 /** 14063 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する 14064 */ 14065 extern int DrawExtendFormatStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14066 14067 /** 14068 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する( 縦書き ) 14069 */ 14070 extern int DrawExtendFormatVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14071 14072 /** 14073 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する 14074 */ 14075 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); 14076 14077 /** 14078 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する 14079 */ 14080 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); 14081 14082 /** 14083 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する 14084 */ 14085 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, ...); 14086 14087 /** 14088 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する 14089 */ 14090 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); 14091 14092 /** 14093 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する 14094 */ 14095 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); 14096 14097 /** 14098 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する 14099 */ 14100 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, ...); 14101 14102 /** 14103 * フォントハンドルを使用して文字列を描画する 14104 */ 14105 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); 14106 14107 /** 14108 * フォントハンドルを使用して文字列を描画する 14109 */ 14110 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); 14111 14112 /** 14113 * フォントハンドルを使用して文字列を描画する( 縦書き ) 14114 */ 14115 extern int DrawVStringToHandle(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14116 14117 /** 14118 * フォントハンドルを使用して文字列を描画する( 縦書き ) 14119 */ 14120 extern int DrawNVStringToHandle(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14121 14122 /** 14123 * フォントハンドルを使用して書式指定文字列を描画する 14124 */ 14125 extern int DrawFormatStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14126 14127 /** 14128 * フォントハンドルを使用して書式指定文字列を描画する( 縦書き ) 14129 */ 14130 extern int DrawFormatVStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14131 14132 /** 14133 * フォントハンドルを使用して文字列を拡大描画する 14134 */ 14135 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); 14136 14137 /** 14138 * フォントハンドルを使用して文字列を拡大描画する 14139 */ 14140 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); 14141 14142 /** 14143 * フォントハンドルを使用して文字列を拡大描画する( 縦書き ) 14144 */ 14145 extern int DrawExtendVStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14146 14147 /** 14148 * フォントハンドルを使用して文字列を拡大描画する( 縦書き ) 14149 */ 14150 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); 14151 14152 /** 14153 * フォントハンドルを使用して書式指定文字列を拡大描画する 14154 */ 14155 extern int DrawExtendFormatStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14156 14157 /** 14158 * フォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き ) 14159 */ 14160 extern int DrawExtendFormatVStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14161 14162 /** 14163 * フォントハンドルを使用して文字列を回転描画する 14164 */ 14165 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); 14166 14167 /** 14168 * フォントハンドルを使用して文字列を回転描画する 14169 */ 14170 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); 14171 14172 /** 14173 * フォントハンドルを使用して書式指定文字列を回転描画する 14174 */ 14175 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, ...); 14176 14177 /** 14178 * フォントハンドルを使用して文字列を変形描画する 14179 */ 14180 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); 14181 14182 /** 14183 * フォントハンドルを使用して文字列を変形描画する 14184 */ 14185 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); 14186 14187 /** 14188 * フォントハンドルを使用して書式指定文字列を変形描画する 14189 */ 14190 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, ...); 14191 14192 /** 14193 * フォントハンドルを使用して文字列を描画する( 座標指定が float 版 ) 14194 */ 14195 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); 14196 14197 /** 14198 * フォントハンドルを使用して文字列を描画する( 座標指定が float 版 ) 14199 */ 14200 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); 14201 14202 /** 14203 * フォントハンドルを使用して文字列を描画する( 縦書き )( 座標指定が float 版 ) 14204 */ 14205 extern int DrawVStringFToHandle(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14206 14207 /** 14208 * フォントハンドルを使用して文字列を描画する( 縦書き )( 座標指定が float 版 ) 14209 */ 14210 extern int DrawNVStringFToHandle(float x, float y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14211 14212 /** 14213 * フォントハンドルを使用して書式指定文字列を描画する( 座標指定が float 版 ) 14214 */ 14215 extern int DrawFormatStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14216 14217 /** 14218 * フォントハンドルを使用して書式指定文字列を描画する( 縦書き )( 座標指定が float 版 ) 14219 */ 14220 extern int DrawFormatVStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14221 14222 /** 14223 * フォントハンドルを使用して文字列を拡大描画する( 座標指定が float 版 ) 14224 */ 14225 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); 14226 14227 /** 14228 * フォントハンドルを使用して文字列を拡大描画する( 座標指定が float 版 ) 14229 */ 14230 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); 14231 14232 /** 14233 * フォントハンドルを使用して文字列を拡大描画する( 縦書き )( 座標指定が float 版 ) 14234 */ 14235 extern int DrawExtendVStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14236 14237 /** 14238 * フォントハンドルを使用して文字列を拡大描画する( 縦書き )( 座標指定が float 版 ) 14239 */ 14240 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); 14241 14242 /** 14243 * フォントハンドルを使用して書式指定文字列を拡大描画する( 座標指定が float 版 ) 14244 */ 14245 extern int DrawExtendFormatStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14246 14247 /** 14248 * フォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )( 座標指定が float 版 ) 14249 */ 14250 extern int DrawExtendFormatVStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14251 14252 /** 14253 * フォントハンドルを使用して文字列を回転描画する( 座標指定が float 版 ) 14254 */ 14255 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); 14256 14257 /** 14258 * フォントハンドルを使用して文字列を回転描画する( 座標指定が float 版 ) 14259 */ 14260 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); 14261 14262 /** 14263 * フォントハンドルを使用して書式指定文字列を回転描画する( 座標指定が float 版 ) 14264 */ 14265 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, ...); 14266 14267 /** 14268 * フォントハンドルを使用して文字列を変形描画する( 座標指定が float 版 ) 14269 */ 14270 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); 14271 14272 /** 14273 * フォントハンドルを使用して文字列を変形描画する( 座標指定が float 版 ) 14274 */ 14275 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); 14276 14277 /** 14278 * フォントハンドルを使用して書式指定文字列を変形描画する( 座標指定が float 版 ) 14279 */ 14280 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, ...); 14281 14282 /** 14283 * フォントハンドルを使用して整数型の数値を描画する 14284 */ 14285 extern int DrawNumberToIToHandle(int x, int y, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0); 14286 14287 /** 14288 * フォントハンドルを使用して浮動小数点型の数値を描画する 14289 */ 14290 extern int DrawNumberToFToHandle(int x, int y, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0); 14291 14292 /** 14293 * フォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する 14294 */ 14295 extern int DrawNumberPlusToIToHandle(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* NoteString, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0); 14296 14297 /** 14298 * フォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する 14299 */ 14300 extern int DrawNumberPlusToFToHandle(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* NoteString, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0); 14301 14302 /** 14303 * フォントハンドルを使用してZバッファに対して文字列を描画する 14304 */ 14305 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); 14306 14307 /** 14308 * フォントハンドルを使用してZバッファに対して文字列を描画する 14309 */ 14310 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); 14311 14312 /** 14313 * フォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き ) 14314 */ 14315 extern int DrawVStringToHandleToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14316 14317 /** 14318 * フォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き ) 14319 */ 14320 extern int DrawNVStringToHandleToZBuffer(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14321 14322 /** 14323 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する 14324 */ 14325 extern int DrawFormatStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14326 14327 /** 14328 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する( 縦書き ) 14329 */ 14330 extern int DrawFormatVStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14331 14332 /** 14333 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する 14334 */ 14335 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); 14336 14337 /** 14338 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する 14339 */ 14340 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); 14341 14342 /** 14343 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き ) 14344 */ 14345 extern int DrawExtendVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.dxdatatype.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */); 14346 14347 /** 14348 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き ) 14349 */ 14350 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 等 */); 14351 14352 /** 14353 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する 14354 */ 14355 extern int DrawExtendFormatStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14356 14357 /** 14358 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する( 縦書き ) 14359 */ 14360 extern int DrawExtendFormatVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const (dxlib_d.dxdatatype.TCHAR)* FormatString, ...); 14361 14362 /** 14363 * フォントハンドルを使用してZバッファに対して文字列を回転描画する 14364 */ 14365 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); 14366 14367 /** 14368 * フォントハンドルを使用してZバッファに対して文字列を回転描画する 14369 */ 14370 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); 14371 14372 /** 14373 * フォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する 14374 */ 14375 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, ...); 14376 14377 /** 14378 * フォントハンドルを使用してZバッファに対して文字列を変形描画する 14379 */ 14380 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); 14381 14382 /** 14383 * フォントハンドルを使用してZバッファに対して文字列を変形描画する 14384 */ 14385 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); 14386 14387 /** 14388 * フォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する 14389 */ 14390 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, ...); 14391 } 14392 14393 // DxMath.cpp 関数プロトタイプ宣言 14394 14395 // 演算ライブラリ 14396 14397 /** 14398 * float型要素の行列をdouble型要素の行列に変換する 14399 */ 14400 extern int ConvertMatrixFtoD(.MATRIX_D* Out, const (.MATRIX)* In); 14401 14402 /** 14403 * double型要素の行列をfloat型要素の行列に変換する 14404 */ 14405 extern int ConvertMatrixDtoF(.MATRIX* Out, const (.MATRIX_D)* In); 14406 14407 /** 14408 * 単位行列を作成する 14409 */ 14410 extern int CreateIdentityMatrix(.MATRIX* Out); 14411 14412 /** 14413 * 単位行列を作成する 14414 */ 14415 extern int CreateIdentityMatrixD(.MATRIX_D* Out); 14416 14417 /** 14418 * ビュー行列を作成する 14419 */ 14420 extern int CreateLookAtMatrix(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up); 14421 14422 /** 14423 * ビュー行列を作成する 14424 */ 14425 extern int CreateLookAtMatrixD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up); 14426 14427 /** 14428 * ビュー行列を作成する(方向を回転値で指定) 14429 */ 14430 extern int CreateLookAtMatrix2(.MATRIX* Out, const (.VECTOR)* Eye, double XZAngle, double Oira); 14431 14432 /** 14433 * ビュー行列を作成する(方向を回転値で指定) 14434 */ 14435 extern int CreateLookAtMatrix2D(.MATRIX_D* Out, const (.VECTOR_D)* Eye, double XZAngle, double Oira); 14436 14437 /** 14438 * ビュー行列を作成する(右手座標系用) 14439 */ 14440 extern int CreateLookAtMatrixRH(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up); 14441 14442 /** 14443 * ビュー行列を作成する(右手座標系用) 14444 */ 14445 extern int CreateLookAtMatrixRHD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up); 14446 14447 /** 14448 * 行列の積を求める 14449 */ 14450 extern int CreateMultiplyMatrix(.MATRIX* Out, const (.MATRIX)* In1, const (.MATRIX)* In2); 14451 14452 /** 14453 * 行列の積を求める 14454 */ 14455 extern int CreateMultiplyMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In1, const (.MATRIX_D)* In2); 14456 14457 /** 14458 * 射影行列を作成する 14459 */ 14460 extern int CreatePerspectiveFovMatrix(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f); 14461 14462 /** 14463 * 射影行列を作成する 14464 */ 14465 extern int CreatePerspectiveFovMatrixD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f); 14466 14467 /** 14468 * 射影行列を作成する(右手座標系用) 14469 */ 14470 extern int CreatePerspectiveFovMatrixRH(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f); 14471 14472 /** 14473 * 射影行列を作成する(右手座標系用) 14474 */ 14475 extern int CreatePerspectiveFovMatrixRHD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f); 14476 14477 /** 14478 * 正射影行列を作成する 14479 */ 14480 extern int CreateOrthoMatrix(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f); 14481 14482 /** 14483 * 正射影行列を作成する 14484 */ 14485 extern int CreateOrthoMatrixD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f); 14486 14487 /** 14488 * 正射影行列を作成する(右手座標系用) 14489 */ 14490 extern int CreateOrthoMatrixRH(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f); 14491 14492 /** 14493 * 正射影行列を作成する(右手座標系用) 14494 */ 14495 extern int CreateOrthoMatrixRHD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f); 14496 14497 /** 14498 * スケーリング行列を作成する 14499 */ 14500 extern int CreateScalingMatrix(.MATRIX* Out, float sx, float sy, float sz); 14501 14502 /** 14503 * スケーリング行列を作成する 14504 */ 14505 extern int CreateScalingMatrixD(.MATRIX_D* Out, double sx, double sy, double sz); 14506 14507 /** 14508 * X軸を中心とした回転行列を作成する 14509 */ 14510 extern int CreateRotationXMatrix(.MATRIX* Out, float Angle); 14511 14512 /** 14513 * X軸を中心とした回転行列を作成する 14514 */ 14515 extern int CreateRotationXMatrixD(.MATRIX_D* Out, double Angle); 14516 14517 /** 14518 * Y軸を中心とした回転行列を作成する 14519 */ 14520 extern int CreateRotationYMatrix(.MATRIX* Out, float Angle); 14521 14522 /** 14523 * Y軸を中心とした回転行列を作成する 14524 */ 14525 extern int CreateRotationYMatrixD(.MATRIX_D* Out, double Angle); 14526 14527 /** 14528 * Z軸を中心とした回転行列を作成する 14529 */ 14530 extern int CreateRotationZMatrix(.MATRIX* Out, float Angle); 14531 14532 /** 14533 * Z軸を中心とした回転行列を作成する 14534 */ 14535 extern int CreateRotationZMatrixD(.MATRIX_D* Out, double Angle); 14536 14537 /** 14538 * 平行移動行列を作成する 14539 */ 14540 extern int CreateTranslationMatrix(.MATRIX* Out, float x, float y, float z); 14541 14542 /** 14543 * 平行移動行列を作成する 14544 */ 14545 extern int CreateTranslationMatrixD(.MATRIX_D* Out, double x, double y, double z); 14546 14547 /** 14548 * 転置行列を作成する 14549 */ 14550 extern int CreateTransposeMatrix(.MATRIX* Out, const (.MATRIX)* In); 14551 14552 /** 14553 * 転置行列を作成する 14554 */ 14555 extern int CreateTransposeMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In); 14556 14557 /** 14558 * 逆行列を作成する 14559 */ 14560 extern int CreateInverseMatrix(.MATRIX* Out, const (.MATRIX)* In); 14561 14562 /** 14563 * 逆行列を作成する 14564 */ 14565 extern int CreateInverseMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In); 14566 14567 /** 14568 * ビューポート行列を作成する 14569 */ 14570 extern int CreateViewportMatrix(.MATRIX* Out, float CenterX, float CenterY, float Width, float Height); 14571 14572 /** 14573 * ビューポート行列を作成する 14574 */ 14575 extern int CreateViewportMatrixD(.MATRIX_D* Out, double CenterX, double CenterY, double Width, double Height); 14576 14577 /** 14578 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する 14579 */ 14580 extern int CreateRotationXYZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14581 14582 /** 14583 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する 14584 */ 14585 extern int CreateRotationXYZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14586 14587 /** 14588 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する 14589 */ 14590 extern int CreateRotationXZYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14591 14592 /** 14593 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する 14594 */ 14595 extern int CreateRotationXZYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14596 14597 /** 14598 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する 14599 */ 14600 extern int CreateRotationYXZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14601 14602 /** 14603 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する 14604 */ 14605 extern int CreateRotationYXZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14606 14607 /** 14608 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する 14609 */ 14610 extern int CreateRotationYZXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14611 14612 /** 14613 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する 14614 */ 14615 extern int CreateRotationYZXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14616 14617 /** 14618 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する 14619 */ 14620 extern int CreateRotationZXYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14621 14622 /** 14623 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する 14624 */ 14625 extern int CreateRotationZXYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14626 14627 /** 14628 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する 14629 */ 14630 extern int CreateRotationZYXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14631 14632 /** 14633 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する 14634 */ 14635 extern int CreateRotationZYXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14636 14637 /** 14638 * 行列からXYZ軸回転の値を取得する 14639 * 14640 * Returns: -1:ジンバルロック発生 0:成功 14641 */ 14642 extern int GetMatrixXYZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14643 14644 /** 14645 * 行列からXYZ軸回転の値を取得する 14646 * 14647 * Returns: -1:ジンバルロック発生 0:成功 14648 */ 14649 extern int GetMatrixXYZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14650 14651 /** 14652 * 行列からXZY軸回転の値を取得する 14653 * 14654 * Returns: -1:ジンバルロック発生 0:成功 14655 */ 14656 extern int GetMatrixXZYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14657 14658 /** 14659 * 行列からXZY軸回転の値を取得する 14660 * 14661 * Returns: -1:ジンバルロック発生 0:成功 14662 */ 14663 extern int GetMatrixXZYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14664 14665 /** 14666 * 行列からYXZ軸回転の値を取得する 14667 * 14668 * Returns: -1:ジンバルロック発生 0:成功 14669 */ 14670 extern int GetMatrixYXZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14671 14672 /** 14673 * 行列からYXZ軸回転の値を取得する 14674 * 14675 * Returns: -1:ジンバルロック発生 0:成功 14676 */ 14677 extern int GetMatrixYXZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14678 14679 /** 14680 * 行列からYZX軸回転の値を取得する 14681 * 14682 * Returns: -1:ジンバルロック発生 0:成功 14683 */ 14684 extern int GetMatrixYZXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14685 14686 /** 14687 * 行列からYZX軸回転の値を取得する 14688 * 14689 * Returns: -1:ジンバルロック発生 0:成功 14690 */ 14691 extern int GetMatrixYZXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14692 14693 /** 14694 * 行列からZXY軸回転の値を取得する 14695 * 14696 * Returns: -1:ジンバルロック発生 0:成功 14697 */ 14698 extern int GetMatrixZXYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14699 14700 /** 14701 * 行列からZXY軸回転の値を取得する 14702 * 14703 * Returns: -1:ジンバルロック発生 0:成功 14704 */ 14705 extern int GetMatrixZXYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14706 14707 /** 14708 * 行列からZYX軸回転の値を取得する 14709 * 14710 * Returns: -1:ジンバルロック発生 0:成功 14711 */ 14712 extern int GetMatrixZYXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14713 14714 /** 14715 * 行列からZYX軸回転の値を取得する 14716 * 14717 * Returns: -1:ジンバルロック発生 0:成功 14718 */ 14719 extern int GetMatrixZYXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14720 14721 /** 14722 * float型のベクトルをdouble型のベクトルに変換する 14723 */ 14724 extern int VectorConvertFtoD(.VECTOR_D* Out, const (.VECTOR)* In); 14725 14726 /** 14727 * double型のベクトルをfloat型のベクトルに変換する 14728 */ 14729 extern int VectorConvertDtoF(.VECTOR* Out, const (.VECTOR_D)* In); 14730 14731 /** 14732 * ベクトルを正規化する 14733 */ 14734 extern int VectorNormalize(.VECTOR* Out, const (.VECTOR)* In); 14735 14736 /** 14737 * ベクトルを正規化する 14738 */ 14739 extern int VectorNormalizeD(.VECTOR_D* Out, const (.VECTOR_D)* In); 14740 14741 /** 14742 * ベクトルをスカラー倍する 14743 */ 14744 extern int VectorScale(.VECTOR* Out, const (.VECTOR)* In, float Scale); 14745 14746 /** 14747 * ベクトルをスカラー倍する 14748 */ 14749 extern int VectorScaleD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Scale); 14750 14751 /** 14752 * ベクトルの掛け算をする 14753 */ 14754 extern int VectorMultiply(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14755 14756 /** 14757 * ベクトルの掛け算をする 14758 */ 14759 extern int VectorMultiplyD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14760 14761 /** 14762 * Out = In1 - In2 のベクトル計算をする 14763 */ 14764 extern int VectorSub(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14765 14766 /** 14767 * Out = In1 - In2 のベクトル計算をする 14768 */ 14769 extern int VectorSubD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14770 14771 /** 14772 * Out = In1 + In2 のベクトル計算をする 14773 */ 14774 extern int VectorAdd(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14775 14776 /** 14777 * Out = In1 + In2 のベクトル計算をする 14778 */ 14779 extern int VectorAddD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14780 14781 /** 14782 * In1とIn2の外積を計算する 14783 */ 14784 extern int VectorOuterProduct(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14785 14786 /** 14787 * In1とIn2の外積を計算する 14788 */ 14789 extern int VectorOuterProductD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14790 14791 /** 14792 * In1とIn2の内積を計算する 14793 */ 14794 extern float VectorInnerProduct(const (.VECTOR)* In1, const (.VECTOR)* In2); 14795 14796 /** 14797 * In1とIn2の内積を計算する 14798 */ 14799 extern double VectorInnerProductD(const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14800 14801 /** 14802 * ベクトルのX軸を軸にした回転を行う 14803 */ 14804 extern int VectorRotationX(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14805 14806 /** 14807 * ベクトルのX軸を軸にした回転を行う 14808 */ 14809 extern int VectorRotationXD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14810 14811 /** 14812 * ベクトルのY軸を軸にした回転を行う 14813 */ 14814 extern int VectorRotationY(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14815 14816 /** 14817 * ベクトルのY軸を軸にした回転を行う 14818 */ 14819 extern int VectorRotationYD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14820 14821 /** 14822 * ベクトルのZ軸を軸にした回転を行う 14823 */ 14824 extern int VectorRotationZ(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14825 14826 /** 14827 * ベクトルのZ軸を軸にした回転を行う 14828 */ 14829 extern int VectorRotationZD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14830 14831 /** 14832 * ベクトル行列と4x4正方行列を乗算する( w は 1 と仮定 ) 14833 */ 14834 extern int VectorTransform(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix); 14835 14836 /** 14837 * ベクトル行列と4x4正方行列を乗算する( w は 1 と仮定 ) 14838 */ 14839 extern int VectorTransformD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix); 14840 14841 /** 14842 * ベクトル行列と4x4正方行列の回転部分のみを乗算する 14843 */ 14844 extern int VectorTransformSR(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix); 14845 14846 /** 14847 * ベクトル行列と4x4正方行列の回転部分のみを乗算する 14848 */ 14849 extern int VectorTransformSRD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix); 14850 14851 /** 14852 * ベクトル行列と4x4正方行列を乗算する( w の要素を渡す ) 14853 */ 14854 extern int VectorTransform4(.VECTOR* Out, float* V4Out, const (.VECTOR)* InVec, const (float)* V4In, const (.MATRIX)* InMatrix); 14855 14856 /** 14857 * ベクトル行列と4x4正方行列を乗算する( w の要素を渡す ) 14858 */ 14859 extern int VectorTransform4D(.VECTOR_D* Out, double* V4Out, const (.VECTOR_D)* InVec, const (double)* V4In, const (.MATRIX_D)* InMatrix); 14860 14861 /** 14862 * 二つの線分の最接近点情報を解析する 14863 */ 14864 extern int Segment_Segment_Analyse(const (.VECTOR)* SegmentAPos1, const (.VECTOR)* SegmentAPos2, const (.VECTOR)* SegmentBPos1, const (.VECTOR)* SegmentBPos2, .SEGMENT_SEGMENT_RESULT* Result); 14865 14866 /** 14867 * 二つの線分の最接近点情報を解析する 14868 */ 14869 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); 14870 14871 /** 14872 * 線分と点の最接近点情報を解析する 14873 */ 14874 extern int Segment_Point_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* PointPos, .SEGMENT_POINT_RESULT* Result); 14875 14876 /** 14877 * 線分と点の最接近点情報を解析する 14878 */ 14879 extern int Segment_Point_AnalyseD(const (.VECTOR_D)* SegmentPos1, const (.VECTOR_D)* SegmentPos2, const (.VECTOR_D)* PointPos, .SEGMENT_POINT_RESULT_D* Result); 14880 14881 /** 14882 * 線分と三角形の最接近点情報を解析する 14883 */ 14884 extern int Segment_Triangle_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, .SEGMENT_TRIANGLE_RESULT* Result); 14885 14886 /** 14887 * 線分と三角形の最接近点情報を解析する 14888 */ 14889 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); 14890 14891 /** 14892 * 三角形と点の最接近点情報を解析する 14893 */ 14894 extern int Triangle_Point_Analyse(const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, const (.VECTOR)* PointPos, .TRIANGLE_POINT_RESULT* Result); 14895 14896 /** 14897 * 三角形と点の最接近点情報を解析する 14898 */ 14899 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); 14900 14901 /** 14902 * 平面と点の最近点情報を解析する 14903 */ 14904 extern int Plane_Point_Analyse(const (.VECTOR)* PlanePos, const (.VECTOR)* PlaneNormal, const (.VECTOR)* PointPos, .PLANE_POINT_RESULT* Result); 14905 14906 /** 14907 * 平面と点の最近点情報を解析する 14908 */ 14909 extern int Plane_Point_AnalyseD(const (.VECTOR_D)* PlanePos, const (.VECTOR_D)* PlaneNormal, const (.VECTOR_D)* PointPos, .PLANE_POINT_RESULT_D* Result); 14910 14911 /** 14912 * 指定の座標から三角形の重心を求める 14913 */ 14914 extern void TriangleBarycenter(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR Position, float* TrianglePos1Weight, float* TrianglePos2Weight, float* TrianglePos3Weight); 14915 14916 /** 14917 * 指定の座標から三角形の重心を求める 14918 */ 14919 extern void TriangleBarycenterD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D Position, double* TrianglePos1Weight, double* TrianglePos2Weight, double* TrianglePos3Weight); 14920 14921 /** 14922 * 二つの線分の最近点間の距離を得る 14923 */ 14924 extern float Segment_Segment_MinLength(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2); 14925 14926 /** 14927 * 二つの線分の最近点間の距離を得る 14928 */ 14929 extern double Segment_Segment_MinLengthD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2); 14930 14931 /** 14932 * 二つの線分の最近点間の距離の二乗を得る 14933 */ 14934 extern float Segment_Segment_MinLength_Square(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2); 14935 14936 /** 14937 * 二つの線分の最近点間の距離の二乗を得る 14938 */ 14939 extern double Segment_Segment_MinLength_SquareD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2); 14940 14941 /** 14942 * 線分と三角形の最近点間の距離を得る 14943 */ 14944 extern float Segment_Triangle_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 14945 14946 /** 14947 * 線分と三角形の最近点間の距離を得る 14948 */ 14949 extern double Segment_Triangle_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 14950 14951 /** 14952 * 線分と三角形の最近点間の距離の二乗を得る 14953 */ 14954 extern float Segment_Triangle_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 14955 14956 /** 14957 * 線分と三角形の最近点間の距離の二乗を得る 14958 */ 14959 extern double Segment_Triangle_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 14960 14961 /** 14962 * 線分と点の一番近い距離を得る 14963 */ 14964 extern float Segment_Point_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos); 14965 14966 /** 14967 * 線分と点の一番近い距離を得る 14968 */ 14969 extern double Segment_Point_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos); 14970 14971 /** 14972 * 線分と点の一番近い距離の二乗を得る 14973 */ 14974 extern float Segment_Point_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos); 14975 14976 /** 14977 * 線分と点の一番近い距離の二乗を得る 14978 */ 14979 extern double Segment_Point_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos); 14980 14981 /** 14982 * 三角形と点の一番近い距離を得る 14983 */ 14984 extern float Triangle_Point_MinLength(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos); 14985 14986 /** 14987 * 三角形と点の一番近い距離を得る 14988 */ 14989 extern double Triangle_Point_MinLengthD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos); 14990 14991 /** 14992 * 三角形と点の一番近い距離の二乗を得る 14993 */ 14994 extern float Triangle_Point_MinLength_Square(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos); 14995 14996 /** 14997 * 三角形と点の一番近い距離の二乗を得る 14998 */ 14999 extern double Triangle_Point_MinLength_SquareD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos); 15000 15001 /** 15002 * 二つの三角形の最近点間の距離を得る 15003 */ 15004 extern float Triangle_Triangle_MinLength(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15005 15006 /** 15007 * 二つの三角形の最近点間の距離を得る 15008 */ 15009 extern double Triangle_Triangle_MinLengthD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15010 15011 /** 15012 * 二つの三角形の最近点間の距離の二乗を得る 15013 */ 15014 extern float Triangle_Triangle_MinLength_Square(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15015 15016 /** 15017 * 二つの三角形の最近点間の距離の二乗を得る 15018 */ 15019 extern double Triangle_Triangle_MinLength_SquareD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15020 15021 /** 15022 * 点に一番近い平面上の座標を得る 15023 */ 15024 extern .VECTOR Plane_Point_MinLength_Position(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos); 15025 15026 /** 15027 * 点に一番近い平面上の座標を得る 15028 */ 15029 extern .VECTOR_D Plane_Point_MinLength_PositionD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos); 15030 15031 /** 15032 * 平面と点の一番近い距離を得る 15033 */ 15034 extern float Plane_Point_MinLength(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos); 15035 15036 /** 15037 * 平面と点の一番近い距離を得る 15038 */ 15039 extern double Plane_Point_MinLengthD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos); 15040 15041 /** 15042 * 三角形と線の当たり判定 15043 */ 15044 extern .HITRESULT_LINE HitCheck_Line_Triangle(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15045 15046 /** 15047 * 三角形と線の当たり判定 15048 */ 15049 extern .HITRESULT_LINE_D HitCheck_Line_TriangleD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15050 15051 /** 15052 * 三角形と三角形の当たり判定 15053 * 15054 * Returns: TRUE:当たっている FALSE:当たっていない 15055 */ 15056 extern int HitCheck_Triangle_Triangle(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15057 15058 /** 15059 * 三角形と三角形の当たり判定 15060 * 15061 * Returns: TRUE:当たっている FALSE:当たっていない 15062 */ 15063 extern int HitCheck_Triangle_TriangleD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15064 15065 /** 15066 * 三角形と三角形の当たり判定( 2D版 ) 15067 * 15068 * Returns: TRUE:当たっている FALSE:当たっていない 15069 */ 15070 extern int HitCheck_Triangle_Triangle_2D(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15071 15072 /** 15073 * 三角形と三角形の当たり判定( 2D版 ) 15074 * 15075 * Returns: TRUE:当たっている FALSE:当たっていない 15076 */ 15077 extern int HitCheck_Triangle_TriangleD_2D(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15078 15079 /** 15080 * 線と箱の当たり判定 15081 */ 15082 extern .HITRESULT_LINE HitCheck_Line_Cube(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR CubePos1, .VECTOR CubePos2); 15083 15084 /** 15085 * 線と箱の当たり判定 15086 */ 15087 extern .HITRESULT_LINE_D HitCheck_Line_CubeD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D CubePos1, .VECTOR_D CubePos2); 15088 15089 /** 15090 * 点と円錐の当たり判定 15091 * 15092 * Returns: TRUE:当たっている FALSE:当たっていない 15093 */ 15094 extern int HitCheck_Point_Cone(.VECTOR PointPos, .VECTOR ConeTopPos, .VECTOR ConeBottomPos, float ConeR); 15095 15096 /** 15097 * 点と円錐の当たり判定 15098 * 15099 * Returns: TRUE:当たっている FALSE:当たっていない 15100 */ 15101 extern int HitCheck_Point_ConeD(.VECTOR_D PointPos, .VECTOR_D ConeTopPos, .VECTOR_D ConeBottomPos, double ConeR); 15102 15103 /** 15104 * 線と球の当たり判定 15105 * 15106 * Returns: TRUE:当たっている FALSE:当たっていない 15107 */ 15108 extern int HitCheck_Line_Sphere(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR SphereCenterPos, float SphereR); 15109 15110 /** 15111 * 線と球の当たり判定 15112 * 15113 * Returns: TRUE:当たっている FALSE:当たっていない 15114 */ 15115 extern int HitCheck_Line_SphereD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D SphereCenterPos, double SphereR); 15116 15117 /** 15118 * 球と球の当たり判定 15119 * 15120 * Returns: TRUE:当たっている FALSE:当たっていない 15121 */ 15122 extern int HitCheck_Sphere_Sphere(.VECTOR Sphere1CenterPos, float Sphere1R, .VECTOR Sphere2CenterPos, float Sphere2R); 15123 15124 /** 15125 * 球と球の当たり判定 15126 * 15127 * Returns: TRUE:当たっている FALSE:当たっていない 15128 */ 15129 extern int HitCheck_Sphere_SphereD(.VECTOR_D Sphere1CenterPos, double Sphere1R, .VECTOR_D Sphere2CenterPos, double Sphere2R); 15130 15131 /** 15132 * 球とカプセルの当たり判定 15133 * 15134 * Returns: TRUE:当たっている FALSE:当たっていない 15135 */ 15136 extern int HitCheck_Sphere_Capsule(.VECTOR SphereCenterPos, float SphereR, .VECTOR CapPos1, .VECTOR CapPos2, float CapR); 15137 15138 /** 15139 * 球とカプセルの当たり判定 15140 * 15141 * Returns: TRUE:当たっている FALSE:当たっていない 15142 */ 15143 extern int HitCheck_Sphere_CapsuleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR); 15144 15145 /** 15146 * 球と三角形の当たり判定 15147 * 15148 * Returns: TRUE:当たっている FALSE:当たっていない 15149 */ 15150 extern int HitCheck_Sphere_Triangle(.VECTOR SphereCenterPos, float SphereR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15151 15152 /** 15153 * 球と三角形の当たり判定 15154 * 15155 * Returns: TRUE:当たっている FALSE:当たっていない 15156 */ 15157 extern int HitCheck_Sphere_TriangleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15158 15159 /** 15160 * カプセル同士の当たり判定 15161 * 15162 * Returns: TRUE:当たっている FALSE:当たっていない 15163 */ 15164 extern int HitCheck_Capsule_Capsule(.VECTOR Cap1Pos1, .VECTOR Cap1Pos2, float Cap1R, .VECTOR Cap2Pos1, .VECTOR Cap2Pos2, float Cap2R); 15165 15166 /** 15167 * カプセル同士の当たり判定 15168 * 15169 * Returns: TRUE:当たっている FALSE:当たっていない 15170 */ 15171 extern int HitCheck_Capsule_CapsuleD(.VECTOR_D Cap1Pos1, .VECTOR_D Cap1Pos2, double Cap1R, .VECTOR_D Cap2Pos1, .VECTOR_D Cap2Pos2, double Cap2R); 15172 15173 /** 15174 * カプセルと三角形の当たり判定 15175 * 15176 * Returns: TRUE:当たっている FALSE:当たっていない 15177 */ 15178 extern int HitCheck_Capsule_Triangle(.VECTOR CapPos1, .VECTOR CapPos2, float CapR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15179 15180 /** 15181 * カプセルと三角形の当たり判定 15182 * 15183 * Returns: TRUE:当たっている FALSE:当たっていない 15184 */ 15185 extern int HitCheck_Capsule_TriangleD(.VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15186 15187 // その他 15188 15189 /** 15190 * 矩形のクリッピング 15191 */ 15192 extern int RectClipping(dxlib_d.dxdatatype.RECT* Rect, const (dxlib_d.dxdatatype.RECT)* ClippuRect); 15193 15194 /** 15195 * 矩形の left が right より値が大きい場合などの誤りを補正する 15196 */ 15197 extern int RectAdjust(dxlib_d.dxdatatype.RECT* Rect); 15198 15199 /** 15200 * 矩形の幅と高さを求める 15201 */ 15202 extern int GetRectSize(const (dxlib_d.dxdatatype.RECT)* Rect, int* Width, int* Height); 15203 15204 // 表記簡略版 15205 15206 /** 15207 * 単位行列を取得する 15208 */ 15209 extern .MATRIX MGetIdent(); 15210 15211 /** 15212 * 単位行列を取得する 15213 */ 15214 extern .MATRIX_D MGetIdentD(); 15215 15216 /** 15217 * 行列の乗算を行う 15218 */ 15219 extern .MATRIX MMult(.MATRIX In1, .MATRIX In2); 15220 15221 /** 15222 * 行列の乗算を行う 15223 */ 15224 extern .MATRIX_D MMultD(.MATRIX_D In1, .MATRIX_D In2); 15225 15226 /** 15227 * 行列のスケーリングを行う 15228 */ 15229 extern .MATRIX MScale(.MATRIX InM, float Scale); 15230 15231 /** 15232 * 行列のスケーリングを行う 15233 */ 15234 extern .MATRIX_D MScaleD(.MATRIX_D InM, double Scale); 15235 15236 /** 15237 * 行列の足し算を行う 15238 */ 15239 extern .MATRIX MAdd(.MATRIX In1, .MATRIX In2); 15240 15241 /** 15242 * 行列の足し算を行う 15243 */ 15244 extern .MATRIX_D MAddD(.MATRIX_D In1, .MATRIX_D In2); 15245 15246 /** 15247 * 拡大行列を取得する 15248 */ 15249 extern .MATRIX MGetScale(.VECTOR Scale); 15250 15251 /** 15252 * 拡大行列を取得する 15253 */ 15254 extern .MATRIX_D MGetScaleD(.VECTOR_D Scale); 15255 15256 /** 15257 * X軸回転行列を取得する 15258 */ 15259 extern .MATRIX MGetRotX(float XAxisRotate); 15260 15261 /** 15262 * X軸回転行列を取得する 15263 */ 15264 extern .MATRIX_D MGetRotXD(double XAxisRotate); 15265 15266 /** 15267 * Y軸回転行列を取得する 15268 */ 15269 extern .MATRIX MGetRotY(float YAxisRotate); 15270 15271 /** 15272 * Y軸回転行列を取得する 15273 */ 15274 extern .MATRIX_D MGetRotYD(double YAxisRotate); 15275 15276 /** 15277 * Z軸回転行列を取得する 15278 */ 15279 extern .MATRIX MGetRotZ(float ZAxisRotate); 15280 15281 /** 15282 * Z軸回転行列を取得する 15283 */ 15284 extern .MATRIX_D MGetRotZD(double ZAxisRotate); 15285 15286 /** 15287 * 指定軸で指定角度回転する行列を取得する 15288 */ 15289 extern .MATRIX MGetRotAxis(.VECTOR RotateAxis, float Rotate); 15290 15291 /** 15292 * 指定軸で指定角度回転する行列を取得する 15293 */ 15294 extern .MATRIX_D MGetRotAxisD(.VECTOR_D RotateAxis, double Rotate); 15295 15296 /** 15297 * In1 の向きから In2 の向きへ変換する回転行列を取得する( In2 と In1 が真逆のベクトルの場合は回転軸は不定 ) 15298 */ 15299 extern .MATRIX MGetRotVec2(.VECTOR In1, .VECTOR In2); 15300 15301 /** 15302 * In1 の向きから In2 の向きへ変換する回転行列を取得する( In2 と In1 が真逆のベクトルの場合は回転軸は不定 ) 15303 */ 15304 extern .MATRIX_D MGetRotVec2D(.VECTOR_D In1, .VECTOR_D In2); 15305 15306 /** 15307 * 平行移動行列を取得する 15308 */ 15309 extern .MATRIX MGetTranslate(.VECTOR Trans); 15310 15311 /** 15312 * 平行移動行列を取得する 15313 */ 15314 extern .MATRIX_D MGetTranslateD(.VECTOR_D Trans); 15315 15316 /** 15317 * 指定の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 ) 15318 */ 15319 extern .MATRIX MGetAxis1(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos); 15320 15321 /** 15322 * 指定の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 ) 15323 */ 15324 extern .MATRIX_D MGetAxis1D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos); 15325 15326 /** 15327 * 基本軸上のベクトルを指定の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 )) ) 15328 */ 15329 extern .MATRIX MGetAxis2(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos); 15330 15331 /** 15332 * 基本軸上のベクトルを指定の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 )) ) 15333 */ 15334 extern .MATRIX_D MGetAxis2D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos); 15335 15336 /** 15337 * 転置行列を取得する 15338 */ 15339 extern .MATRIX MTranspose(.MATRIX InM); 15340 15341 /** 15342 * 転置行列を取得する 15343 */ 15344 extern .MATRIX_D MTransposeD(.MATRIX_D InM); 15345 15346 /** 15347 * 逆行列を取得する 15348 */ 15349 extern .MATRIX MInverse(.MATRIX InM); 15350 15351 /** 15352 * 逆行列を取得する 15353 */ 15354 extern .MATRIX_D MInverseD(.MATRIX_D InM); 15355 15356 /** 15357 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する 15358 */ 15359 extern .VECTOR MGetSize(.MATRIX InM); 15360 15361 /** 15362 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する 15363 */ 15364 extern .VECTOR_D MGetSizeD(.MATRIX_D InM); 15365 15366 /** 15367 * 行列の回転成分を取得する 15368 */ 15369 extern .MATRIX MGetRotElem(.MATRIX InM); 15370 15371 /** 15372 * 行列の回転成分を取得する 15373 */ 15374 extern .MATRIX_D MGetRotElemD(.MATRIX_D InM); 15375 15376 /** 15377 * 行列の平行移動成分を取得する 15378 */ 15379 pragma(inline, true) 15380 pure nothrow @safe @nogc @live 15381 .VECTOR MGetTranslateElem(ref .MATRIX InM) 15382 { 15383 .VECTOR Result = 15384 { 15385 x: InM.m[3][0], 15386 y: InM.m[3][1], 15387 z: InM.m[3][2], 15388 }; 15389 15390 return Result; 15391 } 15392 15393 /** 15394 * 行列の平行移動成分を取得する 15395 */ 15396 pragma(inline, true) 15397 pure nothrow @safe @nogc @live 15398 .VECTOR_D MGetTranslateElemD(ref .MATRIX_D InM) 15399 { 15400 .VECTOR_D Result = 15401 { 15402 x: InM.m[3][0], 15403 y: InM.m[3][1], 15404 z: InM.m[3][2], 15405 }; 15406 15407 return Result; 15408 } 15409 15410 /** 15411 * ベクトル値の変換 15412 */ 15413 pragma(inline, true) 15414 pure nothrow @safe @nogc @live 15415 .VECTOR_D VConvFtoD(const ref .VECTOR In) 15416 { 15417 .VECTOR_D Result = 15418 { 15419 x: In.x, 15420 y: In.y, 15421 z: In.z, 15422 }; 15423 15424 return Result; 15425 } 15426 15427 pragma(inline, true) 15428 pure nothrow @safe @nogc @live 15429 .VECTOR VConvDtoF(const ref .VECTOR_D In) 15430 { 15431 .VECTOR Result = 15432 { 15433 x: cast(float)(In.x), 15434 y: cast(float)(In.y), 15435 z: cast(float)(In.z), 15436 }; 15437 15438 return Result; 15439 } 15440 15441 /** 15442 * ベクトル値の生成 15443 */ 15444 pragma(inline, true) 15445 pure nothrow @safe @nogc @live 15446 .VECTOR VGet(float x, float y, float z) 15447 { 15448 .VECTOR Result = 15449 { 15450 x: x, 15451 y: y, 15452 z: z, 15453 }; 15454 15455 return Result; 15456 } 15457 15458 pragma(inline, true) 15459 pure nothrow @safe @nogc @live 15460 .VECTOR_D VGetD(double x, double y, double z) 15461 { 15462 .VECTOR_D Result = 15463 { 15464 x: x, 15465 y: y, 15466 z: z, 15467 }; 15468 15469 return Result; 15470 } 15471 15472 pragma(inline, true) 15473 pure nothrow @safe @nogc @live 15474 .FLOAT2 F2Get(float u, float v) 15475 { 15476 .FLOAT2 Result = 15477 { 15478 u: u, 15479 v: v, 15480 }; 15481 15482 return Result; 15483 } 15484 15485 /** 15486 * 4要素ベクトル値の生成 15487 */ 15488 pragma(inline, true) 15489 pure nothrow @safe @nogc @live 15490 .FLOAT4 F4Get(float x, float y, float z, float w) 15491 { 15492 .FLOAT4 Result = 15493 { 15494 x: x, 15495 y: y, 15496 z: z, 15497 w: w, 15498 }; 15499 15500 return Result; 15501 } 15502 15503 pragma(inline, true) 15504 pure nothrow @safe @nogc @live 15505 .DOUBLE4 D4Get(double x, double y, double z, double w) 15506 { 15507 .DOUBLE4 Result = 15508 { 15509 x: x, 15510 y: y, 15511 z: z, 15512 w: w, 15513 }; 15514 15515 return Result; 15516 } 15517 15518 /** 15519 * ベクトルの加算 15520 */ 15521 pragma(inline, true) 15522 pure nothrow @safe @nogc @live 15523 .VECTOR VAdd(const ref .VECTOR In1, const ref .VECTOR In2) 15524 { 15525 .VECTOR Result = 15526 { 15527 x: In1.x + In2.x, 15528 y: In1.y + In2.y, 15529 z: In1.z + In2.z, 15530 }; 15531 15532 return Result; 15533 } 15534 15535 pragma(inline, true) 15536 pure nothrow @safe @nogc @live 15537 .VECTOR_D VAddD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15538 { 15539 .VECTOR_D Result = 15540 { 15541 x: In1.x + In2.x, 15542 y: In1.y + In2.y, 15543 z: In1.z + In2.z, 15544 }; 15545 15546 return Result; 15547 } 15548 15549 /** 15550 * ベクトルの減算 15551 */ 15552 pragma(inline, true) 15553 pure nothrow @safe @nogc @live 15554 .VECTOR VSub(const ref .VECTOR In1, const ref .VECTOR In2) 15555 { 15556 .VECTOR Result = 15557 { 15558 x: In1.x - In2.x, 15559 y: In1.y - In2.y, 15560 z: In1.z - In2.z, 15561 }; 15562 15563 return Result; 15564 } 15565 15566 pragma(inline, true) 15567 pure nothrow @safe @nogc @live 15568 .VECTOR_D VSubD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15569 { 15570 .VECTOR_D Result = 15571 { 15572 x: In1.x - In2.x, 15573 y: In1.y - In2.y, 15574 z: In1.z - In2.z, 15575 }; 15576 15577 return Result; 15578 } 15579 15580 pragma(inline, true) 15581 pure nothrow @safe @nogc @live 15582 .FLOAT2 F2Add(const ref .FLOAT2 In1, const ref .FLOAT2 In2) 15583 { 15584 .FLOAT2 Result = 15585 { 15586 u: In1.u + In2.u, 15587 v: In1.v + In2.v, 15588 }; 15589 15590 return Result; 15591 } 15592 15593 /** 15594 * 4要素ベクトルの加算 15595 */ 15596 pragma(inline, true) 15597 pure nothrow @safe @nogc @live 15598 .FLOAT4 F4Add(const ref .FLOAT4 In1, const ref .FLOAT4 In2) 15599 { 15600 .FLOAT4 Result = 15601 { 15602 x: In1.x + In2.x, 15603 y: In1.y + In2.y, 15604 z: In1.z + In2.z, 15605 w: In1.w + In2.w, 15606 }; 15607 15608 return Result; 15609 } 15610 15611 pragma(inline, true) 15612 pure nothrow @safe @nogc @live 15613 .DOUBLE4 D4Add(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2) 15614 { 15615 .DOUBLE4 Result = 15616 { 15617 x: In1.x + In2.x, 15618 y: In1.y + In2.y, 15619 z: In1.z + In2.z, 15620 w: In1.w + In2.w, 15621 }; 15622 15623 return Result; 15624 } 15625 15626 pragma(inline, true) 15627 pure nothrow @safe @nogc @live 15628 .FLOAT2 F2Sub(const ref .FLOAT2 In1, const ref .FLOAT2 In2) 15629 { 15630 .FLOAT2 Result = 15631 { 15632 u: In1.u - In2.u, 15633 v: In1.v - In2.v, 15634 }; 15635 15636 return Result; 15637 } 15638 15639 /** 15640 * 4要素ベクトルの減算 15641 */ 15642 pragma(inline, true) 15643 pure nothrow @safe @nogc @live 15644 .FLOAT4 F4Sub(const ref .FLOAT4 In1, const ref .FLOAT4 In2) 15645 { 15646 .FLOAT4 Result = 15647 { 15648 x: In1.x - In2.x, 15649 y: In1.y - In2.y, 15650 z: In1.z - In2.z, 15651 w: In1.w - In2.w, 15652 }; 15653 15654 return Result; 15655 } 15656 15657 pragma(inline, true) 15658 pure nothrow @safe @nogc @live 15659 .DOUBLE4 D4Sub(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2) 15660 { 15661 .DOUBLE4 Result = 15662 { 15663 x: In1.x - In2.x, 15664 y: In1.y - In2.y, 15665 z: In1.z - In2.z, 15666 w: In1.w - In2.w, 15667 }; 15668 15669 return Result; 15670 } 15671 15672 /** 15673 * ベクトルの内積 15674 */ 15675 pragma(inline, true) 15676 pure nothrow @safe @nogc @live 15677 float VDot(const ref .VECTOR In1, const ref .VECTOR In2) 15678 { 15679 return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z); 15680 } 15681 15682 pragma(inline, true) 15683 pure nothrow @safe @nogc @live 15684 double VDotD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15685 { 15686 return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z); 15687 } 15688 15689 /** 15690 * ベクトルの外積 15691 */ 15692 pragma(inline, true) 15693 pure nothrow @safe @nogc @live 15694 .VECTOR VCross(const ref .VECTOR In1, const ref .VECTOR In2) 15695 { 15696 .VECTOR Result = 15697 { 15698 x: (In1.y * In2.z) - (In1.z * In2.y), 15699 y: (In1.z * In2.x) - (In1.x * In2.z), 15700 z: (In1.x * In2.y) - (In1.y * In2.x), 15701 }; 15702 15703 return Result; 15704 } 15705 15706 pragma(inline, true) 15707 pure nothrow @safe @nogc @live 15708 .VECTOR_D VCrossD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15709 { 15710 .VECTOR_D Result = 15711 { 15712 x: (In1.y * In2.z) - (In1.z * In2.y), 15713 y: (In1.z * In2.x) - (In1.x * In2.z), 15714 z: (In1.x * In2.y) - (In1.y * In2.x), 15715 }; 15716 15717 return Result; 15718 } 15719 15720 /** 15721 * ベクトルのスケーリング 15722 */ 15723 pragma(inline, true) 15724 pure nothrow @safe @nogc @live 15725 .VECTOR VScale(const ref .VECTOR In, float Scale) 15726 { 15727 .VECTOR Result = 15728 { 15729 x: In.x * Scale, 15730 y: In.y * Scale, 15731 z: In.z * Scale, 15732 }; 15733 15734 return Result; 15735 } 15736 15737 pragma(inline, true) 15738 pure nothrow @safe @nogc @live 15739 .VECTOR_D VScaleD(const ref .VECTOR_D In, double Scale) 15740 { 15741 .VECTOR_D Result = 15742 { 15743 x: In.x * Scale, 15744 y: In.y * Scale, 15745 z: In.z * Scale, 15746 }; 15747 15748 return Result; 15749 } 15750 15751 pragma(inline, true) 15752 pure nothrow @safe @nogc @live 15753 .FLOAT2 F2Scale(const ref .FLOAT2 In, float Scale) 15754 { 15755 .FLOAT2 Result = 15756 { 15757 u: In.u * Scale, 15758 v: In.v * Scale, 15759 }; 15760 15761 return Result; 15762 } 15763 15764 /** 15765 * 4要素ベクトルのスケーリング 15766 */ 15767 pragma(inline, true) 15768 pure nothrow @safe @nogc @live 15769 .FLOAT4 F4Scale(const ref .FLOAT4 In, float Scale) 15770 { 15771 .FLOAT4 Result = 15772 { 15773 x: In.x * Scale, 15774 y: In.y * Scale, 15775 z: In.z * Scale, 15776 w: In.w * Scale, 15777 }; 15778 15779 return Result; 15780 } 15781 15782 pragma(inline, true) 15783 pure nothrow @safe @nogc @live 15784 .DOUBLE4 D4Scale(const ref .DOUBLE4 In, double Scale) 15785 { 15786 .DOUBLE4 Result = 15787 { 15788 x: In.x * Scale, 15789 y: In.y * Scale, 15790 z: In.z * Scale, 15791 w: In.w * Scale, 15792 }; 15793 15794 return Result; 15795 } 15796 15797 /** 15798 * ベクトルの正規化 15799 */ 15800 extern .VECTOR VNorm(.VECTOR In); 15801 15802 /** 15803 * ベクトルの正規化 15804 */ 15805 extern .VECTOR_D VNormD(.VECTOR_D In); 15806 15807 /** 15808 * ベクトルのサイズ 15809 */ 15810 extern float VSize(.VECTOR In); 15811 15812 /** 15813 * ベクトルのサイズ 15814 */ 15815 extern double VSizeD(.VECTOR_D In); 15816 15817 /** 15818 * ベクトルのサイズの2乗 15819 */ 15820 pragma(inline, true) 15821 pure nothrow @safe @nogc @live 15822 float VSquareSize(const ref .VECTOR In) 15823 { 15824 return (In.x * In.x) + (In.y * In.y) + (In.z * In.z); 15825 } 15826 15827 pragma(inline, true) 15828 pure nothrow @safe @nogc @live 15829 double VSquareSizeD(const ref .VECTOR_D In) 15830 { 15831 return (In.x * In.x) + (In.y * In.y) + (In.z * In.z); 15832 } 15833 15834 /** 15835 * 行列を使った座標変換 15836 */ 15837 pragma(inline, true) 15838 pure nothrow @safe @nogc @live 15839 .VECTOR VTransform(const ref .VECTOR InV, const ref .MATRIX InM) 15840 { 15841 .VECTOR Result = 15842 { 15843 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0], 15844 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1], 15845 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2], 15846 }; 15847 15848 return Result; 15849 } 15850 15851 pragma(inline, true) 15852 pure nothrow @safe @nogc @live 15853 .VECTOR_D VTransformD(const ref .VECTOR_D InV, const ref .MATRIX_D InM) 15854 { 15855 .VECTOR_D Result = 15856 { 15857 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0], 15858 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1], 15859 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2], 15860 }; 15861 15862 return Result; 15863 } 15864 15865 /** 15866 * 行列を使った座標変換( スケーリング+回転成分のみ ) 15867 */ 15868 pragma(inline, true) 15869 pure nothrow @safe @nogc @live 15870 .VECTOR VTransformSR(const ref .VECTOR InV, const ref .MATRIX InM) 15871 { 15872 .VECTOR Result = 15873 { 15874 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]), 15875 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]), 15876 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]), 15877 }; 15878 15879 return Result; 15880 } 15881 15882 pragma(inline, true) 15883 pure nothrow @safe @nogc @live 15884 .VECTOR_D VTransformSRD(const ref .VECTOR_D InV, const ref .MATRIX_D InM) 15885 { 15886 .VECTOR_D Result = 15887 { 15888 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]), 15889 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]), 15890 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]), 15891 }; 15892 15893 return Result; 15894 } 15895 15896 /** 15897 * 二つのベクトルが成す角のコサイン値を得る 15898 */ 15899 extern float VCos(.VECTOR In1, .VECTOR In2); 15900 15901 /** 15902 * 二つのベクトルが成す角のコサイン値を得る 15903 */ 15904 extern double VCosD(.VECTOR_D In1, .VECTOR_D In2); 15905 15906 /** 15907 * 二つのベクトルが成す角の角度を得る( 単位:ラジアン ) 15908 */ 15909 extern float VRad(.VECTOR In1, .VECTOR In2); 15910 15911 /** 15912 * 二つのベクトルが成す角の角度を得る( 単位:ラジアン ) 15913 */ 15914 extern double VRadD(.VECTOR_D In1, .VECTOR_D In2); 15915 15916 /** 15917 * 2つのクォータニオンの乗算の結果を返す 15918 */ 15919 pragma(inline, true) 15920 pure nothrow @safe @nogc @live 15921 .FLOAT4 QTCross(const ref .FLOAT4 A, const ref .FLOAT4 B) 15922 { 15923 .FLOAT4 Result = 15924 { 15925 w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)), 15926 x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)), 15927 y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)), 15928 z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)), 15929 }; 15930 15931 return Result; 15932 } 15933 15934 pragma(inline, true) 15935 pure nothrow @safe @nogc @live 15936 .DOUBLE4 QTCrossD(const ref .DOUBLE4 A, const ref .DOUBLE4 B) 15937 { 15938 .DOUBLE4 Result = 15939 { 15940 w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)), 15941 x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)), 15942 y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)), 15943 z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)), 15944 }; 15945 15946 return Result; 15947 } 15948 15949 /** 15950 * 共役クォータニオンを返す 15951 */ 15952 pragma(inline, true) 15953 pure nothrow @safe @nogc @live 15954 .FLOAT4 QTConj(const ref .FLOAT4 A) 15955 { 15956 .FLOAT4 Result = 15957 { 15958 w: A.w, 15959 x: -A.x, 15960 y: -A.y, 15961 z: -A.z, 15962 }; 15963 15964 return Result; 15965 } 15966 15967 pragma(inline, true) 15968 pure nothrow @safe @nogc @live 15969 .DOUBLE4 QTConjD(const ref .DOUBLE4 A) 15970 { 15971 .DOUBLE4 Result = 15972 { 15973 w: A.w, 15974 x: -A.x, 15975 y: -A.y, 15976 z: -A.z, 15977 }; 15978 15979 return Result; 15980 } 15981 15982 /** 15983 * 回転を表すクォータニオンを返す 15984 */ 15985 extern .FLOAT4 QTRot(.VECTOR Axis, float Angle); 15986 15987 /** 15988 * 回転を表すクォータニオンを返す 15989 */ 15990 extern .DOUBLE4 QTRotD(.VECTOR_D Axis, double Angle); 15991 15992 /** 15993 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数 15994 */ 15995 extern .VECTOR VRotQ(.VECTOR P, .VECTOR Axis, float Angle); 15996 15997 /** 15998 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数 15999 */ 16000 extern .VECTOR_D VRotQD(.VECTOR_D P, .VECTOR_D Axis, double Angle); 16001 16002 // DxBaseImage.cpp 関数プロトタイプ宣言 16003 16004 // 基本イメージデータのロード+DIB関係 16005 16006 /** 16007 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する 16008 */ 16009 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); 16010 16011 /** 16012 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する 16013 */ 16014 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); 16015 16016 /** 16017 * 画像データから構築したストリーム読み込み用データを使用して基本イメージデータを構築する 16018 */ 16019 extern int CreateGraphImageType2(.STREAMDATA* Src, .BASEIMAGE* Dest); 16020 16021 /** 16022 * 24bitカラー形式のビットマップデータからBMPデータを構築する 16023 */ 16024 extern int CreateBmpInfo(dxlib_d.dxdatatype.BITMAPINFO* BmpInfo, int Width, int Height, int Pitch, const (void)* SrcGrData, void** DestGrData); 16025 16026 /** 16027 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する 16028 */ 16029 extern int GetImageSize_File(const (dxlib_d.dxdatatype.TCHAR)* FileName, int* SizeX, int* SizeY); 16030 16031 /** 16032 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する 16033 */ 16034 extern int GetImageSize_FileWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY); 16035 16036 /** 16037 * メモリ上に展開された画像ファイルの横ピクセル数と縦ピクセル数を取得する 16038 */ 16039 extern int GetImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY); 16040 16041 /** 16042 * 基本イメージデータの指定座標のフルカラーコードを取得する 16043 */ 16044 extern uint GetGraphImageFullColorCode(const (.BASEIMAGE)* GraphImage, int x, int y); 16045 16046 /** 16047 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する 16048 */ 16049 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); 16050 16051 /** 16052 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する 16053 */ 16054 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); 16055 16056 /** 16057 * 基本イメージデータを左右反転する 16058 */ 16059 extern int ReverseGraphImage(.BASEIMAGE* GraphImage); 16060 16061 /* 16062 * ユーザー定義の画像データ読み込み関数を登録する 16063 */ 16064 //extern int AddUserGraphLoadFunction(int function(FILE* fp, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16065 16066 /* 16067 * ユーザー定義の画像データ読み込み関数を登録する 16068 */ 16069 //extern int AddUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16070 16071 /* 16072 * ユーザー定義の画像データ読み込み関数Ver3を登録する 16073 */ 16074 //extern int AddUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16075 16076 /** 16077 * ユーザー定義の画像データ読み込み関数Ver4を登録する 16078 */ 16079 extern int AddUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc); 16080 16081 /* 16082 * ユーザー定義の画像データ読み込み関数を登録から抹消する 16083 */ 16084 //extern int SubUserGraphLoadFunction(int function(FILE* fp, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16085 16086 /* 16087 * ユーザー定義の画像データ読み込み関数を登録から抹消する 16088 */ 16089 //extern int SubUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16090 16091 /* 16092 * ユーザー定義の画像データ読み込み関数Ver3を登録から抹消する 16093 */ 16094 //extern int SubUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.dxdatatype.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16095 16096 /** 16097 * ユーザー定義の画像データ読み込み関数Ver4を登録から抹消する 16098 */ 16099 extern int SubUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc); 16100 16101 /** 16102 * 高速読み込みルーチンを使用するかどうかを設定する 16103 * 16104 * Params: 16105 * Flag = TRUE:使用する( デフォルト ) FALSE:使用しない 16106 */ 16107 extern int SetUseFastLoadFlag(int Flag); 16108 16109 /** 16110 * 画像減色時の画像劣化緩和処理モードを設定する( デフォルトでは緩和処理無しの DX_SHAVEDMODE_NONE ) 16111 */ 16112 extern int SetGraphDataShavedMode(int ShavedMode /* DX_SHAVEDMODE_NONE 等 */); 16113 16114 /** 16115 * 画像減色時の画像劣化緩和処理モードを取得する 16116 */ 16117 extern int GetGraphDataShavedMode(); 16118 16119 /** 16120 * 画像ファイル読み込み時に乗算済みアルファ画像に変換するかどうかを設定する 16121 * 16122 * Params: 16123 * UseFlag = TRUE:変換処理を行う FALSE:変換処理を行わない( デフォルト ) 16124 */ 16125 extern int SetUsePremulAlphaConvertLoad(int UseFlag); 16126 16127 // 基本イメージデータ構造体関係 16128 16129 /** 16130 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16131 */ 16132 extern int CreateBaseImage(const (dxlib_d.dxdatatype.TCHAR)* FileName, const (void)* FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/, .BASEIMAGE* BaseImage, int ReverseFlag); 16133 16134 /** 16135 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16136 */ 16137 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); 16138 16139 /** 16140 * CreateBaseImage の旧名称 16141 */ 16142 extern int CreateGraphImage(const (dxlib_d.dxdatatype.TCHAR)* FileName, const (void)* DataImage, int DataImageSize, int DataImageType, .BASEIMAGE* GraphImage, int ReverseFlag); 16143 16144 /** 16145 * 画像ファイルから基本イメージデータを構築する 16146 */ 16147 extern int CreateBaseImageToFile(const (dxlib_d.dxdatatype.TCHAR)* FileName, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 16148 16149 /** 16150 * 画像ファイルから基本イメージデータを構築する 16151 */ 16152 extern int CreateBaseImageToFileWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 16153 16154 /** 16155 * メモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16156 */ 16157 extern int CreateBaseImageToMem(const (void)* FileImage, int FileImageSize, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.dxdatatype.FALSE); 16158 16159 /** 16160 * ARGB各チャンネル 32bit 浮動小数点型 カラーの基本イメージデータを作成する 16161 */ 16162 extern int CreateARGBF32ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16163 16164 /** 16165 * ARGB各チャンネル 16bit 浮動小数点型 カラーの基本イメージデータを作成する 16166 */ 16167 extern int CreateARGBF16ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16168 16169 /** 16170 * ARGB8カラーの基本イメージデータを作成する 16171 */ 16172 extern int CreateARGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16173 16174 /** 16175 * XRGB8カラーの基本イメージデータを作成する 16176 */ 16177 extern int CreateXRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16178 16179 /** 16180 * RGB8カラーの基本イメージデータを作成する 16181 */ 16182 extern int CreateRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16183 16184 /** 16185 * ARGB4カラーの基本イメージデータを作成する 16186 */ 16187 extern int CreateARGB4ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16188 16189 /** 16190 * A1R5G5B5カラーの基本イメージデータを作成する 16191 */ 16192 extern int CreateA1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16193 16194 /** 16195 * X1R5G5B5カラーの基本イメージデータを作成する 16196 */ 16197 extern int CreateX1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16198 16199 /** 16200 * R5G5B5A1カラーの基本イメージデータを作成する 16201 */ 16202 extern int CreateR5G5B5A1ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16203 16204 /** 16205 * R5G6B5カラーの基本イメージデータを作成する 16206 */ 16207 extern int CreateR5G6B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16208 16209 /** 16210 * パレット8ビットカラーの基本イメージデータを作成する 16211 */ 16212 extern int CreatePAL8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage, int UseAlpha = dxlib_d.dxdatatype.FALSE); 16213 16214 /** 16215 * 指定のカラーフォーマットの基本イメージデータを作成する 16216 */ 16217 extern int CreateColorDataBaseImage(int SizeX, int SizeY, const (.COLORDATA)* ColorData, .BASEIMAGE* BaseImage); 16218 16219 /** 16220 * 基本イメージデータのイメージサイズを取得する 16221 * 16222 * Returns: イメージサイズ( 単位:byte ) 16223 */ 16224 extern int GetBaseImageGraphDataSize(const (.BASEIMAGE)* BaseImage); 16225 16226 /** 16227 * 基本イメージデータの指定の部分だけを使う基本イメージデータの情報を作成する( BaseImage にはフォーマットが DX_BASEIMAGE_FORMAT_NORMAL でミップマップを使用していない画像のみ使用可能 ) 16228 */ 16229 extern int DerivationBaseImage(const (.BASEIMAGE)* BaseImage, int x1, int y1, int x2, int y2, .BASEIMAGE* NewBaseImage); 16230 16231 /** 16232 * 基本イメージデータの後始末を行う 16233 */ 16234 extern int ReleaseBaseImage(.BASEIMAGE* BaseImage); 16235 16236 /** 16237 * ReleaseBaseImage の旧名称 16238 */ 16239 extern int ReleaseGraphImage(.BASEIMAGE* GraphImage); 16240 16241 /** 16242 * DX_BASEIMAGE_FORMAT_NORMAL 以外の形式のイメージを DX_BASEIMAGE_FORMAT_NORMAL 形式のイメージに変換する 16243 */ 16244 extern int ConvertNormalFormatBaseImage(.BASEIMAGE* BaseImage, int ReleaseOrigGraphData = dxlib_d.dxdatatype.TRUE); 16245 16246 /** 16247 * 通常のαチャンネル付き画像を乗算済みαチャンネル付き画像に変換する( ピクセルフォーマットが ARGB8 以外の場合は ARGB8 に変換されます ) 16248 */ 16249 extern int ConvertPremulAlphaBaseImage(.BASEIMAGE* BaseImage); 16250 16251 /** 16252 * 乗算済みαチャンネル付き画像を通常のαチャンネル付き画像に変換する( ピクセルフォーマットが ARGB8 以外の場合は ARGB8 に変換されます ) 16253 */ 16254 extern int ConvertInterpAlphaBaseImage(.BASEIMAGE* BaseImage); 16255 16256 /** 16257 * 描画対象の画面から指定領域を基本イメージデータに転送する 16258 */ 16259 extern int GetDrawScreenBaseImage(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage); 16260 16261 /** 16262 * 描画対象の画面から指定領域を基本イメージデータに転送する( 転送先座標指定版 ) 16263 */ 16264 extern int GetDrawScreenBaseImageDestPos(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage, int DestX, int DestY); 16265 16266 /** 16267 * 基本イメージデータを指定の色で塗りつぶす 16268 */ 16269 extern int FillBaseImage(.BASEIMAGE* BaseImage, int r, int g, int b, int a); 16270 16271 /** 16272 * 基本イメージデータの指定の領域を指定の色で塗りつぶす 16273 */ 16274 extern int FillRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h, int r, int g, int b, int a); 16275 16276 /** 16277 * 基本イメージデータの指定の領域を0クリアする 16278 */ 16279 extern int ClearRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h); 16280 16281 /** 16282 * 基本イメージデータのパレットを取得する 16283 */ 16284 extern int GetPaletteBaseImage(const (.BASEIMAGE)* BaseImage, int PaletteNo, int* r, int* g, int* b, int* a); 16285 16286 /** 16287 * 基本イメージデータのパレットをセットする 16288 */ 16289 extern int SetPaletteBaseImage(.BASEIMAGE* BaseImage, int PaletteNo, int r, int g, int b, int a); 16290 16291 /** 16292 * 基本イメージデータの指定の座標の色コードを変更する(パレット画像用) 16293 */ 16294 extern int SetPixelPalCodeBaseImage(.BASEIMAGE* BaseImage, int x, int y, int palNo); 16295 16296 /** 16297 * 基本イメージデータの指定の座標の色コードを取得する(パレット画像用) 16298 */ 16299 extern int GetPixelPalCodeBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y); 16300 16301 /** 16302 * 基本イメージデータの指定の座標の色を変更する(各色要素は0〜255) 16303 */ 16304 extern int SetPixelBaseImage(.BASEIMAGE* BaseImage, int x, int y, int r, int g, int b, int a); 16305 16306 /** 16307 * 基本イメージデータの指定の座標の色を変更する(各色要素は浮動小数点数) 16308 */ 16309 extern int SetPixelBaseImageF(.BASEIMAGE* BaseImage, int x, int y, float r, float g, float b, float a); 16310 16311 /** 16312 * 基本イメージデータの指定の座標の色を取得する(各色要素は0〜255) 16313 */ 16314 extern int GetPixelBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int* r, int* g, int* b, int* a); 16315 16316 /** 16317 * 基本イメージデータの指定の座標の色を取得する(各色要素は浮動小数点数) 16318 */ 16319 extern int GetPixelBaseImageF(const (.BASEIMAGE)* BaseImage, int x, int y, float* r, float* g, float* b, float* a); 16320 16321 /** 16322 * 基本イメージデータの指定の座標に線を描画する(各色要素は0〜255) 16323 */ 16324 extern int DrawLineBaseImage(.BASEIMAGE* BaseImage, int x1, int y1, int x2, int y2, int r, int g, int b, int a); 16325 16326 /** 16327 * 基本イメージデータの指定の座標に円を描画する(各色要素は0〜255) 16328 */ 16329 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); 16330 16331 /** 16332 * 基本イメージデータを別の基本イメージデータに転送する 16333 */ 16334 extern int BltBaseImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage); 16335 16336 /** 16337 * 基本イメージデータを別の基本イメージデータに転送する 16338 */ 16339 extern int BltBaseImage(int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage); 16340 16341 /** 16342 * 基本イメージデータを別の基本イメージデータに透過色処理付きで転送する 16343 */ 16344 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); 16345 16346 /** 16347 * 基本イメージデータを別の基本イメージデータにアルファ値のブレンドを考慮した上で転送する( 出力先が ARGB8 形式以外の場合はエラーになります ) 16348 * 16349 * Params: 16350 * SrcX = ? 16351 * SrcY = ? 16352 * SrcSizeX = ? 16353 * SrcSizeY = ? 16354 * DestX = ? 16355 * DestY = ? 16356 * SrcBaseImage = ? 16357 * DestBaseImage = ? 16358 * Opacity = 透明度:0( 完全透明 ) 〜 255( 完全不透明 ) 16359 */ 16360 extern int BltBaseImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage, int Opacity = 255); 16361 16362 /** 16363 * 基本イメージデータを左右反転する 16364 */ 16365 extern int ReverseBaseImageH(.BASEIMAGE* BaseImage); 16366 16367 /** 16368 * 基本イメージデータを上下反転する 16369 */ 16370 extern int ReverseBaseImageV(.BASEIMAGE* BaseImage); 16371 16372 /** 16373 * 基本イメージデータを上下左右反転する 16374 */ 16375 extern int ReverseBaseImage(.BASEIMAGE* BaseImage); 16376 16377 /** 16378 * 基本イメージデータに含まれるピクセルのアルファ値をチェックする 16379 * 16380 * Returns: -1:エラー 0:画像にアルファ成分が無い 1:画像にアルファ成分があり、すべて最大(255)値 2:画像にアルファ成分があり、存在するアルファ値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にアルファ成分があり、最小と最大以外の中間の値がある 16381 */ 16382 extern int CheckPixelAlphaBaseImage(const (.BASEIMAGE)* BaseImage); 16383 16384 /** 16385 * 基本イメージデータで使用されているパレット番号の最大値を取得する( パレット画像では無い場合は -1 が返る ) 16386 */ 16387 extern int GetBaseImageUseMaxPaletteNo(const (.BASEIMAGE)* BaseImage); 16388 16389 version (DX_NON_JPEGREAD) { 16390 } else { 16391 /** 16392 * JPEGファイルの Exif情報を取得する、ExifBuffer を null に渡すと、戻り値の情報のサイズのみ取得できます 16393 * 16394 * Returns: -1:エラー -1以外:Exif情報のサイズ 16395 */ 16396 extern int ReadJpegExif(const (dxlib_d.dxdatatype.TCHAR)* JpegFilePath, dxlib_d.dxdatatype.BYTE* ExifBuffer_Array, size_t ExifBufferSize); 16397 16398 /** 16399 * JPEGファイルの Exif情報を取得する、ExifBuffer を null に渡すと、戻り値の情報のサイズのみ取得できます 16400 * 16401 * Returns: 戻り値 -1:エラー -1以外:Exif情報のサイズ 16402 */ 16403 extern int ReadJpegExifWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* JpegFilePath, size_t JpegFilePathLength, dxlib_d.dxdatatype.BYTE* ExifBuffer_Array, size_t ExifBufferSize); 16404 } 16405 16406 version (DX_NON_SAVEFUNCTION) { 16407 } else { 16408 /** 16409 * 基本イメージデータをBMP画像として保存する 16410 */ 16411 extern int SaveBaseImageToBmp(const (dxlib_d.dxdatatype.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage); 16412 16413 /** 16414 * 基本イメージデータをBMP画像として保存する 16415 */ 16416 extern int SaveBaseImageToBmpWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage); 16417 16418 /** 16419 * 基本イメージデータをDDS画像として保存する 16420 */ 16421 extern int SaveBaseImageToDds(const (dxlib_d.dxdatatype.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage); 16422 16423 /** 16424 * 基本イメージデータをDDS画像として保存する 16425 */ 16426 extern int SaveBaseImageToDdsWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage); 16427 16428 version (DX_NON_PNGREAD) { 16429 } else { 16430 /** 16431 * 基本イメージデータをPNG画像として保存する 16432 */ 16433 extern int SaveBaseImageToPng(const (dxlib_d.dxdatatype.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int CompressionLevel); 16434 16435 /** 16436 * 基本イメージデータをPNG画像として保存する 16437 */ 16438 extern int SaveBaseImageToPngWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int CompressionLevel); 16439 } 16440 16441 version (DX_NON_JPEGREAD) { 16442 } else { 16443 /** 16444 * 基本イメージデータをJPEG画像として保存する 16445 */ 16446 extern int SaveBaseImageToJpeg(const (dxlib_d.dxdatatype.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int Quality, int Sample2x1); 16447 16448 /** 16449 * 基本イメージデータをJPEG画像として保存する 16450 */ 16451 extern int SaveBaseImageToJpegWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int Quality, int Sample2x1); 16452 } 16453 } 16454 16455 // 基本イメージ描画 16456 16457 /** 16458 * 基本イメージデータを描画する 16459 */ 16460 extern int DrawBaseImage(int x, int y, .BASEIMAGE* BaseImage); 16461 16462 /** 16463 * カラーマッチングしながらイメージデータ間転送を行う Ver2 16464 */ 16465 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); 16466 16467 // 色情報取得関係 16468 16469 /** 16470 * 浮動小数点型のカラー値を作成する 16471 */ 16472 extern .COLOR_F GetColorF(float Red, float Green, float Blue, float Alpha); 16473 16474 /** 16475 * 符号なし整数8ビットのカラー値を作成する 16476 */ 16477 extern .COLOR_U8 GetColorU8(int Red, int Green, int Blue, int Alpha); 16478 16479 /** 16480 * DrawPixel 等の描画関数で使用するカラー値を取得する 16481 */ 16482 extern uint GetColor(int Red, int Green, int Blue); 16483 16484 /** 16485 * カラー値から赤、緑、青の値を取得する 16486 */ 16487 extern int GetColor2(uint Color, int* Red, int* Green, int* Blue); 16488 16489 /** 16490 * 指定のピクセルフォーマットに対応したカラー値を得る 16491 */ 16492 extern uint GetColor3(const (.COLORDATA)* ColorData, int Red, int Green, int Blue, int Alpha = 255); 16493 16494 /** 16495 * 指定のカラーフォーマットのカラー値を別のカラーフォーマットのカラー値に変換する 16496 */ 16497 extern uint GetColor4(const (.COLORDATA)* DestColorData, const (.COLORDATA)* SrcColorData, uint SrcColor); 16498 16499 /** 16500 * 指定のカラーフォーマットのカラー値を赤、緑、青、アルファの値を取得する 16501 */ 16502 extern int GetColor5(const (.COLORDATA)* ColorData, uint Color, int* Red, int* Green, int* Blue, int* Alpha = null); 16503 16504 /** 16505 * パレットカラーのカラーフォーマットを構築する 16506 */ 16507 extern int CreatePaletteColorData(.COLORDATA* ColorDataBuf); 16508 16509 /** 16510 * ARGB各チャンネル 32bit 浮動小数点型カラーのカラーフォーマットを構築する 16511 */ 16512 extern int CreateARGBF32ColorData(.COLORDATA* ColorDataBuf); 16513 16514 /** 16515 * ARGB各チャンネル 16bit 浮動小数点型カラーのカラーフォーマットを構築する 16516 */ 16517 extern int CreateARGBF16ColorData(.COLORDATA* ColorDataBuf); 16518 16519 /** 16520 * XRGB8カラーのカラーフォーマットを構築する 16521 */ 16522 extern int CreateXRGB8ColorData(.COLORDATA* ColorDataBuf); 16523 16524 /** 16525 * ARGB8カラーのカラーフォーマットを構築する 16526 */ 16527 extern int CreateARGB8ColorData(.COLORDATA* ColorDataBuf); 16528 16529 /** 16530 * ARGB4カラーのカラーフォーマットを構築する 16531 */ 16532 extern int CreateARGB4ColorData(.COLORDATA* ColorDataBuf); 16533 16534 /** 16535 * A1R5G5B5カラーのカラーフォーマットを構築する 16536 */ 16537 extern int CreateA1R5G5B5ColorData(.COLORDATA* ColorDataBuf); 16538 16539 /** 16540 * X1R5G5B5カラーのカラーフォーマットを構築する 16541 */ 16542 extern int CreateX1R5G5B5ColorData(.COLORDATA* ColorDataBuf); 16543 16544 /** 16545 * R5G5B5A1カラーのカラーフォーマットを構築する 16546 */ 16547 extern int CreateR5G5B5A1ColorData(.COLORDATA* ColorDataBuf); 16548 16549 /** 16550 * R5G6B5カラーのカラーフォーマットを構築する 16551 */ 16552 extern int CreateR5G6B5ColorData(.COLORDATA* ColorDataBuf); 16553 16554 /** 16555 * 24ビットカラーのカラーフォーマットを構築する 16556 */ 16557 extern int CreateFullColorData(.COLORDATA* ColorDataBuf); 16558 16559 /** 16560 * グレースケールのカラーフォーマットを構築する 16561 */ 16562 extern int CreateGrayColorData(.COLORDATA* ColorDataBuf); 16563 16564 /** 16565 * パレット256色のカラーフォーマットを構築する 16566 */ 16567 extern int CreatePal8ColorData(.COLORDATA* ColorDataBuf, int UseAlpha = dxlib_d.dxdatatype.FALSE); 16568 16569 /** 16570 * カラーフォーマットを作成する 16571 */ 16572 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); 16573 16574 /** 16575 * NoneMask 以外の要素を埋めた COLORDATA 構造体の情報を元に NoneMask をセットする 16576 */ 16577 extern void SetColorDataNoneMask(.COLORDATA* ColorData); 16578 16579 /** 16580 * 二つのカラーフォーマットが等しいかどうか調べる 16581 * 16582 * Returns: TRUE:等しい FALSE:等しくない 16583 */ 16584 extern int CmpColorData(const (.COLORDATA)* ColorData1, const (.COLORDATA)* ColorData2); 16585 16586 // DxSoftImage.cpp関数プロトタイプ宣言 16587 version (DX_NON_SOFTIMAGE) { 16588 } else { 16589 /** 16590 * ソフトウエアイメージハンドルを全て削除する 16591 */ 16592 extern int InitSoftImage(); 16593 16594 /** 16595 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する 16596 * 16597 * Returns: -1:エラー -1以外:イメージハンドル 16598 */ 16599 extern int LoadSoftImage(const (dxlib_d.dxdatatype.TCHAR)* FileName); 16600 16601 /** 16602 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する 16603 * 16604 * Returns: -1:エラー -1以外:イメージハンドル 16605 */ 16606 extern int LoadSoftImageWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 16607 16608 /** 16609 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( 読み込んだ画像が RGBA8 以外のフォーマットだった場合は RGBA8 カラーに変換 ) 16610 * 16611 * Returns: -1:エラー -1以外:イメージハンドル 16612 */ 16613 extern int LoadARGB8ColorSoftImage(const (dxlib_d.dxdatatype.TCHAR)* FileName); 16614 16615 /** 16616 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( 読み込んだ画像が RGBA8 以外のフォーマットだった場合は RGBA8 カラーに変換 ) 16617 * 16618 * Returns: -1:エラー -1以外:イメージハンドル 16619 */ 16620 extern int LoadARGB8ColorSoftImageWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 16621 16622 /** 16623 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( 読み込んだ画像が XGBA8 以外のフォーマットだった場合は XGBA8 カラーに変換 ) 16624 * 16625 * Returns: -1:エラー -1以外:イメージハンドル 16626 */ 16627 extern int LoadXRGB8ColorSoftImage(const (dxlib_d.dxdatatype.TCHAR)* FileName); 16628 16629 /** 16630 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( 読み込んだ画像が XGBA8 以外のフォーマットだった場合は XGBA8 カラーに変換 ) 16631 * 16632 * Returns: -1:エラー -1以外:イメージハンドル 16633 */ 16634 extern int LoadXRGB8ColorSoftImageWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 16635 16636 /** 16637 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する 16638 * 16639 * Returns: -1:エラー -1以外:イメージハンドル 16640 */ 16641 extern int LoadSoftImageToMem(const (void)* FileImage, int FileImageSize); 16642 16643 /** 16644 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する( 読み込んだ画像が RGBA8 以外のフォーマットだった場合は RGBA8 カラーに変換 ) 16645 * 16646 * Returns: -1:エラー -1以外:イメージハンドル 16647 */ 16648 extern int LoadARGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize); 16649 16650 /** 16651 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する( 読み込んだ画像が XGBA8 以外のフォーマットだった場合は XGBA8 カラーに変換 ) 16652 * 16653 * Returns: -1:エラー -1以外:イメージハンドル 16654 */ 16655 extern int LoadXRGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize); 16656 16657 /** 16658 * ソフトウエアイメージハンドルの作成 16659 * 16660 * Returns: -1:エラー -1以外:イメージハンドル 16661 */ 16662 extern int MakeSoftImage(int SizeX, int SizeY); 16663 16664 /** 16665 * ソフトウエアイメージハンドルの作成( RGBA 各チャンネル 32bit 浮動小数点型 カラー ) 16666 */ 16667 extern int MakeARGBF32ColorSoftImage(int SizeX, int SizeY); 16668 16669 /** 16670 * ソフトウエアイメージハンドルの作成( RGBA 各チャンネル 16bit 浮動小数点型 カラー ) 16671 */ 16672 extern int MakeARGBF16ColorSoftImage(int SizeX, int SizeY); 16673 16674 /** 16675 * ソフトウエアイメージハンドルの作成( RGBA8 カラー ) 16676 */ 16677 extern int MakeARGB8ColorSoftImage(int SizeX, int SizeY); 16678 16679 /** 16680 * ソフトウエアイメージハンドルの作成( XRGB8 カラー ) 16681 */ 16682 extern int MakeXRGB8ColorSoftImage(int SizeX, int SizeY); 16683 16684 /** 16685 * ソフトウエアイメージハンドルの作成( ARGB4 カラー ) 16686 */ 16687 extern int MakeARGB4ColorSoftImage(int SizeX, int SizeY); 16688 16689 /** 16690 * ソフトウエアイメージハンドルの作成( A1R5G5B5 カラー ) 16691 */ 16692 extern int MakeA1R5G5B5ColorSoftImage(int SizeX, int SizeY); 16693 16694 /** 16695 * ソフトウエアイメージハンドルの作成( X1R5G5B5 カラー ) 16696 */ 16697 extern int MakeX1R5G5B5ColorSoftImage(int SizeX, int SizeY); 16698 16699 /** 16700 * ソフトウエアイメージハンドルの作成( R5G5B5A1 カラー ) 16701 */ 16702 extern int MakeR5G5B5A1ColorSoftImage(int SizeX, int SizeY); 16703 16704 /** 16705 * ソフトウエアイメージハンドルの作成( R5G6B5 カラー ) 16706 */ 16707 extern int MakeR5G6B5ColorSoftImage(int SizeX, int SizeY); 16708 16709 /** 16710 * ソフトウエアイメージハンドルの作成( RGB8 カラー ) 16711 */ 16712 extern int MakeRGB8ColorSoftImage(int SizeX, int SizeY); 16713 16714 /** 16715 * ソフトウエアイメージハンドルの作成( パレット256色 カラー ) 16716 */ 16717 extern int MakePAL8ColorSoftImage(int SizeX, int SizeY, int UseAlpha = dxlib_d.dxdatatype.FALSE); 16718 16719 /** 16720 * ソフトウエアイメージハンドルの削除する 16721 */ 16722 extern int DeleteSoftImage(int SIHandle); 16723 16724 /** 16725 * ソフトウエアイメージハンドルのサイズを取得する 16726 */ 16727 extern int GetSoftImageSize(int SIHandle, int* Width, int* Height); 16728 16729 /** 16730 * ソフトウエアイメージハンドルがパレット画像かどうかを取得する 16731 * 16732 * Returns: TRUE:パレット画像 FALSE:パレット画像じゃない 16733 */ 16734 extern int CheckPaletteSoftImage(int SIHandle); 16735 16736 /** 16737 * ソフトウエアイメージハンドルのフォーマットにα要素があるかどうかを取得する 16738 * 16739 * Returns: TRUE:ある FALSE:ない 16740 */ 16741 extern int CheckAlphaSoftImage(int SIHandle); 16742 16743 /** 16744 * ソフトウエアイメージハンドルに含まれるピクセルのα値をチェックする 16745 * 16746 * Returns: -1:エラー 0:画像にα成分が無い 1:画像にα成分があり、すべて最大(255)値 2:画像にα成分があり、存在するα値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にα成分があり、最小と最大以外の中間の値がある 16747 */ 16748 extern int CheckPixelAlphaSoftImage(int SIHandle); 16749 16750 /** 16751 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する 16752 */ 16753 extern int GetDrawScreenSoftImage(int x1, int y1, int x2, int y2, int SIHandle); 16754 16755 /** 16756 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する( 転送先座標指定版 ) 16757 */ 16758 extern int GetDrawScreenSoftImageDestPos(int x1, int y1, int x2, int y2, int SIHandle, int DestX, int DestY); 16759 16760 /** 16761 * ソフトウエアイメージハンドルを指定色で塗りつぶす(各色要素は0〜255) 16762 */ 16763 extern int FillSoftImage(int SIHandle, int r, int g, int b, int a); 16764 16765 /** 16766 * ソフトウエアイメージハンドルの指定の領域を0クリアする 16767 */ 16768 extern int ClearRectSoftImage(int SIHandle, int x, int y, int w, int h); 16769 16770 /** 16771 * ソフトウエアイメージハンドルのパレットを取得する(各色要素は0〜255) 16772 */ 16773 extern int GetPaletteSoftImage(int SIHandle, int PaletteNo, int* r, int* g, int* b, int* a); 16774 16775 /** 16776 * ソフトウエアイメージハンドルのパレットを設定する(各色要素は0〜255) 16777 */ 16778 extern int SetPaletteSoftImage(int SIHandle, int PaletteNo, int r, int g, int b, int a); 16779 16780 /** 16781 * ソフトウエアイメージハンドルの指定座標にドットを描画する(パレット画像用、有効値は0〜255) 16782 */ 16783 extern int DrawPixelPalCodeSoftImage(int SIHandle, int x, int y, int palNo); 16784 16785 /** 16786 * ソフトウエアイメージハンドルの指定座標の色コードを取得する(パレット画像用) 16787 * 16788 * Returns: 0~255 16789 */ 16790 extern int GetPixelPalCodeSoftImage(int SIHandle, int x, int y); 16791 16792 /** 16793 * ソフトウエアイメージハンドルの画像が格納されているメモリ領域の先頭アドレスを取得する 16794 */ 16795 extern void* GetImageAddressSoftImage(int SIHandle); 16796 16797 /** 16798 * ソフトウエアイメージハンドルのメモリに格納されている画像データの1ライン辺りのバイト数を取得する 16799 */ 16800 extern int GetPitchSoftImage(int SIHandle); 16801 16802 /** 16803 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0〜255) 16804 */ 16805 extern int DrawPixelSoftImage(int SIHandle, int x, int y, int r, int g, int b, int a); 16806 16807 /** 16808 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は浮動小数点数) 16809 */ 16810 extern int DrawPixelSoftImageF(int SIHandle, int x, int y, float r, float g, float b, float a); 16811 16812 /** 16813 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0〜255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16814 */ 16815 extern void DrawPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int r, int g, int b); 16816 16817 /** 16818 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0〜255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16819 */ 16820 extern void DrawPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int r, int g, int b, int a); 16821 16822 /** 16823 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0〜255) 16824 */ 16825 extern int GetPixelSoftImage(int SIHandle, int x, int y, int* r, int* g, int* b, int* a); 16826 16827 /** 16828 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は浮動小数点数) 16829 */ 16830 extern int GetPixelSoftImageF(int SIHandle, int x, int y, float* r, float* g, float* b, float* a); 16831 16832 /** 16833 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0〜255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16834 */ 16835 extern void GetPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int* r, int* g, int* b); 16836 16837 /** 16838 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0〜255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16839 */ 16840 extern void GetPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int* r, int* g, int* b, int* a); 16841 16842 /** 16843 * ソフトウエアイメージハンドルの指定座標に線を描画する(各色要素は0〜255) 16844 */ 16845 extern int DrawLineSoftImage(int SIHandle, int x1, int y1, int x2, int y2, int r, int g, int b, int a); 16846 16847 /** 16848 * ソフトウエアイメージハンドルの指定座標に円を描画する(各色要素は0〜255) 16849 */ 16850 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); 16851 16852 /** 16853 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに転送する 16854 */ 16855 extern int BltSoftImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle); 16856 16857 /** 16858 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに透過色処理付きで転送する 16859 */ 16860 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); 16861 16862 /** 16863 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルにアルファ値のブレンドを考慮した上で転送する( Opacity は透明度:0( 完全透明 ) 〜 255( 完全不透明 ) )( 出力先が ARGB8 形式以外の場合はエラーになります ) 16864 */ 16865 extern int BltSoftImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Opacity = 255); 16866 16867 /** 16868 * ソフトウエアイメージハンドルを左右反転する 16869 */ 16870 extern int ReverseSoftImageH(int SIHandle); 16871 16872 /** 16873 * ソフトウエアイメージハンドルを上下反転する 16874 */ 16875 extern int ReverseSoftImageV(int SIHandle); 16876 16877 /** 16878 * ソフトウエアイメージハンドルを上下左右反転する 16879 */ 16880 extern int ReverseSoftImage(int SIHandle); 16881 16882 version (DX_NON_FONT) { 16883 } else { 16884 /** 16885 * ソフトウエアイメージハンドルに文字列を描画する( デフォルトフォントハンドルを使用する ) 16886 */ 16887 extern int BltStringSoftImage(int x, int y, const (dxlib_d.dxdatatype.TCHAR)* StrData, int DestSIHandle, int DestEdgeSIHandle = -1, int VerticalFlag = dxlib_d.dxdatatype.FALSE); 16888 16889 /** 16890 * ソフトウエアイメージハンドルに文字列を描画する( デフォルトフォントハンドルを使用する ) 16891 */ 16892 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); 16893 16894 /** 16895 * ソフトウエアイメージハンドルに文字列を描画する( フォントハンドル使用版 ) 16896 */ 16897 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); 16898 16899 /** 16900 * ソフトウエアイメージハンドルに文字列を描画する( フォントハンドル使用版 ) 16901 */ 16902 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); 16903 } 16904 16905 /** 16906 * ソフトウエアイメージハンドルを画面に描画する 16907 */ 16908 extern int DrawSoftImage(int x, int y, int SIHandle); 16909 16910 version (DX_NON_SAVEFUNCTION) { 16911 } else { 16912 /** 16913 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する 16914 */ 16915 extern int SaveSoftImageToBmp(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int SIHandle); 16916 16917 /** 16918 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する 16919 */ 16920 extern int SaveSoftImageToBmpWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int SIHandle); 16921 16922 /** 16923 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する 16924 */ 16925 extern int SaveSoftImageToDds(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int SIHandle); 16926 16927 /** 16928 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する 16929 */ 16930 extern int SaveSoftImageToDdsWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int SIHandle); 16931 16932 version (DX_NON_PNGREAD) { 16933 } else { 16934 /** 16935 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する 16936 * 16937 * Params: 16938 * FilePath = ? 16939 * SIHandle = ? 16940 * CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 16941 */ 16942 extern int SaveSoftImageToPng(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int SIHandle, int CompressionLevel); 16943 16944 /** 16945 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する 16946 * 16947 * Params: 16948 * ? = ? 16949 * ? = ? 16950 * ? = ? 16951 * CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0〜9 16952 */ 16953 extern int SaveSoftImageToPngWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int CompressionLevel); 16954 } 16955 16956 version (DX_NON_JPEGREAD) { 16957 } else { 16958 /** 16959 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 16960 */ 16961 extern int SaveSoftImageToJpeg(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int SIHandle, int Quality, int Sample2x1); 16962 16963 /** 16964 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100 16965 */ 16966 extern int SaveSoftImageToJpegWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int Quality, int Sample2x1); 16967 } 16968 } 16969 } 16970 16971 version (DX_NON_SOUND) { 16972 } else { 16973 // DxSound.cpp関数プロトタイプ宣言 16974 16975 // サウンドデータ管理系関数 16976 16977 /** 16978 * 全てのサウンドハンドルを削除する 16979 */ 16980 extern int InitSoundMem(int LogOutFlag = dxlib_d.dxdatatype.FALSE); 16981 16982 /** 16983 * サウンドハンドルを作成する 16984 */ 16985 extern int AddSoundData(int Handle = -1); 16986 16987 /** 16988 * ストリーム再生タイプのサウンドハンドルにストリームデータを再生対象に追加する 16989 */ 16990 extern int AddStreamSoundMem(.STREAMDATA* Stream, int LoopNum, int SoundHandle, int StreamDataType, int* CanStreamCloseFlag, int UnionHandle = -1); 16991 16992 /** 16993 * ストリーム再生タイプのサウンドハンドルにメモリ上に展開したサウンドファイルイメージを再生対象に追加する 16994 */ 16995 extern int AddStreamSoundMemToMem(const (void)* FileImage, size_t FileImageSize, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 16996 16997 /** 16998 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する 16999 */ 17000 extern int AddStreamSoundMemToFile(const (dxlib_d.dxdatatype.TCHAR)* WaveFile, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 17001 17002 /** 17003 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する 17004 */ 17005 extern int AddStreamSoundMemToFileWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* WaveFile, size_t WaveFilePathLength, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 17006 17007 /** 17008 * ストリーム再生タイプのサウンドハンドルの再生準備をする 17009 */ 17010 extern int SetupStreamSoundMem(int SoundHandle); 17011 17012 /** 17013 * ストリーム再生タイプのサウンドハンドルの再生を開始する 17014 */ 17015 extern int PlayStreamSoundMem(int SoundHandle, int PlayType = DX_PLAYTYPE_LOOP, int TopPositionFlag = dxlib_d.dxdatatype.TRUE); 17016 17017 /** 17018 * ストリーム再生タイプのサウンドハンドルの再生状態を取得する 17019 */ 17020 extern int CheckStreamSoundMem(int SoundHandle); 17021 17022 /** 17023 * ストリーム再生タイプのサウンドハンドルの再生を停止する 17024 */ 17025 extern int StopStreamSoundMem(int SoundHandle); 17026 17027 /** 17028 * サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効) 17029 */ 17030 extern int SetStreamSoundCurrentPosition(dxlib_d.dxdatatype.LONGLONG Byte, int SoundHandle); 17031 17032 /** 17033 * サウンドハンドルの再生位置をバイト単位で取得する 17034 */ 17035 extern dxlib_d.dxdatatype.LONGLONG GetStreamSoundCurrentPosition(int SoundHandle); 17036 17037 /** 17038 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある) 17039 */ 17040 extern int SetStreamSoundCurrentTime(dxlib_d.dxdatatype.LONGLONG Time, int SoundHandle); 17041 17042 /** 17043 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある) 17044 */ 17045 extern dxlib_d.dxdatatype.LONGLONG GetStreamSoundCurrentTime(int SoundHandle); 17046 17047 /** 17048 * ストリーム再生タイプのサウンドハンドルの周期的な処理を行う関数( 内部で自動的に呼ばれます ) 17049 */ 17050 extern int ProcessStreamSoundMem(int SoundHandle); 17051 17052 /** 17053 * 有効なストリーム再生タイプのサウンドハンドルに対して ProcessStreamSoundMem を実行する( 内部で自動的に呼ばれます ) 17054 */ 17055 extern int ProcessStreamSoundMemAll(); 17056 17057 /** 17058 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する 17059 */ 17060 extern int LoadSoundMem2(const (dxlib_d.dxdatatype.TCHAR)* FileName1, const (dxlib_d.dxdatatype.TCHAR)* FileName2); 17061 17062 /** 17063 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する 17064 */ 17065 extern int LoadSoundMem2WithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName1, size_t FileName1Length, const (dxlib_d.dxdatatype.TCHAR)* FileName2, size_t FileName2Length); 17066 17067 /** 17068 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数 17069 */ 17070 extern int LoadBGM(const (dxlib_d.dxdatatype.TCHAR)* FileName); 17071 17072 /** 17073 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数 17074 */ 17075 extern int LoadBGMWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 17076 17077 /** 17078 * サウンドファイルからサウンドハンドルを作成する 17079 */ 17080 extern int LoadSoundMemBase(const (dxlib_d.dxdatatype.TCHAR)* FileName, int BufferNum, int UnionHandle = -1); 17081 17082 /** 17083 * サウンドファイルからサウンドハンドルを作成する 17084 */ 17085 extern int LoadSoundMemBaseWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int BufferNum, int UnionHandle = -1); 17086 17087 /** 17088 * LoadSoundMemBase の別名関数 17089 */ 17090 extern int LoadSoundMem(const (dxlib_d.dxdatatype.TCHAR)* FileName, int BufferNum = 3, int UnionHandle = -1); 17091 17092 /** 17093 * LoadSoundMemBase の別名関数 17094 */ 17095 extern int LoadSoundMemWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int BufferNum = 3, int UnionHandle = -1); 17096 17097 /** 17098 * LoadSoundMem を使用して下さい 17099 */ 17100 extern int LoadSoundMemToBufNumSitei(const (dxlib_d.dxdatatype.TCHAR)* FileName, int BufferNum); 17101 17102 /** 17103 * LoadSoundMem を使用して下さい 17104 */ 17105 extern int LoadSoundMemToBufNumSiteiWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int BufferNum); 17106 17107 /** 17108 * 同じサウンドデータを使用するサウンドハンドルを作成する( DX_SOUNDDATATYPE_MEMNOPRESS タイプのサウンドハンドルのみ可能 ) 17109 */ 17110 extern int DuplicateSoundMem(int SrcSoundHandle, int BufferNum = 3); 17111 17112 /** 17113 * メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する 17114 */ 17115 extern int LoadSoundMemByMemImageBase(const (void)* FileImage, size_t FileImageSize, int BufferNum, int UnionHandle = -1); 17116 17117 /** 17118 * LoadSoundMemByMemImageBase の別名関数 17119 */ 17120 extern int LoadSoundMemByMemImage(const (void)* FileImage, size_t FileImageSize, int BufferNum = 3, int UnionHandle = -1); 17121 17122 /** 17123 * メモリ上に展開されたPCMデータからサウンドハンドルを作成する 17124 */ 17125 extern int LoadSoundMemByMemImage2(const (void)* WaveImage, size_t WaveImageSize, const (.WAVEFORMATEX)* WaveFormat, size_t WaveHeaderSize); 17126 17127 /** 17128 * LoadSoundMemByMemImageBase を使用して下さい 17129 */ 17130 extern int LoadSoundMemByMemImageToBufNumSitei(const (void)* FileImage, size_t FileImageSize, int BufferNum); 17131 17132 /** 17133 * 前奏部とループ部に分かれた二つのメモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する 17134 */ 17135 extern int LoadSoundMem2ByMemImage(const (void)* FileImage1, size_t FileImageSize1, const (void)* FileImage2, size_t FileImageSize2); 17136 17137 /** 17138 * ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する 17139 */ 17140 extern int LoadSoundMemFromSoftSound(int SoftSoundHandle, int BufferNum = 3); 17141 17142 /** 17143 * サウンドハンドルを削除する 17144 */ 17145 extern int DeleteSoundMem(int SoundHandle, int LogOutFlag = dxlib_d.dxdatatype.FALSE); 17146 17147 /** 17148 * サウンドハンドルを再生する 17149 */ 17150 extern int PlaySoundMem(int SoundHandle, int PlayType, int TopPositionFlag = dxlib_d.dxdatatype.TRUE); 17151 17152 /** 17153 * サウンドハンドルの再生を停止する 17154 */ 17155 extern int StopSoundMem(int SoundHandle); 17156 17157 /** 17158 * サウンドハンドルが再生中かどうかを取得する 17159 */ 17160 extern int CheckSoundMem(int SoundHandle); 17161 17162 /** 17163 * サウンドハンドルのパンを設定する( 100分の1デシベル単位 0 〜 10000 ) 17164 */ 17165 extern int SetPanSoundMem(int PanPal, int SoundHandle); 17166 17167 /** 17168 * サウンドハンドルのパンを設定する( -255 〜 255 ) 17169 */ 17170 extern int ChangePanSoundMem(int PanPal, int SoundHandle); 17171 17172 /** 17173 * サウンドハンドルのパンを取得する 17174 */ 17175 extern int GetPanSoundMem(int SoundHandle); 17176 17177 /** 17178 * サウンドハンドルのボリュームを設定する( 100分の1デシベル単位 0 〜 10000 ) 17179 */ 17180 extern int SetVolumeSoundMem(int VolumePal, int SoundHandle); 17181 17182 /** 17183 * サウンドハンドルのボリュームを設定する( 0 〜 255 ) 17184 */ 17185 extern int ChangeVolumeSoundMem(int VolumePal, int SoundHandle); 17186 17187 /** 17188 * サウンドハンドルのボリュームを取得する( 100分の1デシベル単位 0 〜 10000 ) 17189 */ 17190 extern int GetVolumeSoundMem(int SoundHandle); 17191 17192 /** 17193 * サウンドハンドルのボリュームを取得する( 0 〜 255 ) 17194 */ 17195 extern int GetVolumeSoundMem2(int SoundHandle); 17196 17197 /** 17198 * サウンドハンドルの指定のチャンネルのボリュームを設定する( 100分の1デシベル単位 0 〜 10000 ) 17199 */ 17200 extern int SetChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17201 17202 /** 17203 * サウンドハンドルの指定のチャンネルのボリュームを設定する( 0 〜 255 ) 17204 */ 17205 extern int ChangeChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17206 17207 /** 17208 * サウンドハンドルの指定のチャンネルのボリュームを取得する( 100分の1デシベル単位 0 〜 10000 ) 17209 */ 17210 extern int GetChannelVolumeSoundMem(int Channel, int SoundHandle); 17211 17212 /** 17213 * サウンドハンドルの指定のチャンネルのボリュームを取得する( 0 〜 255 ) 17214 */ 17215 extern int GetChannelVolumeSoundMem2(int Channel, int SoundHandle); 17216 17217 /** 17218 * サウンドハンドルの再生周波数を設定する 17219 */ 17220 extern int SetFrequencySoundMem(int FrequencyPal, int SoundHandle); 17221 17222 /** 17223 * サウンドハンドルの再生周波数を取得する 17224 */ 17225 extern int GetFrequencySoundMem(int SoundHandle); 17226 17227 /** 17228 * サウンドハンドルの再生周波数を読み込み直後の状態に戻す 17229 */ 17230 extern int ResetFrequencySoundMem(int SoundHandle); 17231 17232 /** 17233 * サウンドハンドルの次の再生にのみ使用するパンを設定する( 100分の1デシベル単位 0 〜 10000 ) 17234 */ 17235 extern int SetNextPlayPanSoundMem(int PanPal, int SoundHandle); 17236 17237 /** 17238 * サウンドハンドルの次の再生にのみ使用するパンを設定する( -255 〜 255 ) 17239 */ 17240 extern int ChangeNextPlayPanSoundMem(int PanPal, int SoundHandle); 17241 17242 /** 17243 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する( 100分の1デシベル単位 0 〜 10000 ) 17244 */ 17245 extern int SetNextPlayVolumeSoundMem(int VolumePal, int SoundHandle); 17246 17247 /** 17248 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する( 0 〜 255 ) 17249 */ 17250 extern int ChangeNextPlayVolumeSoundMem(int VolumePal, int SoundHandle); 17251 17252 /** 17253 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する( 100分の1デシベル単位 0 〜 10000 ) 17254 */ 17255 extern int SetNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17256 17257 /** 17258 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する( 0 〜 255 ) 17259 */ 17260 extern int ChangeNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17261 17262 /** 17263 * サウンドハンドルの次の再生にのみ使用する再生周波数を設定する 17264 */ 17265 extern int SetNextPlayFrequencySoundMem(int FrequencyPal, int SoundHandle); 17266 17267 /** 17268 * サウンドハンドルの再生位置をサンプル単位で設定する(再生が止まっている時のみ有効) 17269 */ 17270 extern int SetCurrentPositionSoundMem(dxlib_d.dxdatatype.LONGLONG SamplePosition, int SoundHandle); 17271 17272 /** 17273 * サウンドハンドルの再生位置をサンプル単位で取得する 17274 */ 17275 extern dxlib_d.dxdatatype.LONGLONG GetCurrentPositionSoundMem(int SoundHandle); 17276 17277 /** 17278 * サウンドハンドルの再生位置をバイト単位で設定する(再生が止まっている時のみ有効) 17279 */ 17280 extern int SetSoundCurrentPosition(dxlib_d.dxdatatype.LONGLONG Byte, int SoundHandle); 17281 17282 /** 17283 * サウンドハンドルの再生位置をバイト単位で取得する 17284 */ 17285 extern dxlib_d.dxdatatype.LONGLONG GetSoundCurrentPosition(int SoundHandle); 17286 17287 /** 17288 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある) 17289 */ 17290 extern int SetSoundCurrentTime(dxlib_d.dxdatatype.LONGLONG Time, int SoundHandle); 17291 17292 /** 17293 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある) 17294 */ 17295 extern dxlib_d.dxdatatype.LONGLONG GetSoundCurrentTime(int SoundHandle); 17296 17297 /** 17298 * サウンドハンドルの音の総時間をサンプル単位で取得する 17299 */ 17300 extern dxlib_d.dxdatatype.LONGLONG GetSoundTotalSample(int SoundHandle); 17301 17302 /** 17303 * サウンドハンドルの音の総時間をミリ秒単位で取得する 17304 */ 17305 extern dxlib_d.dxdatatype.LONGLONG GetSoundTotalTime(int SoundHandle); 17306 17307 /** 17308 * SetLoopTimePosSoundMem の別名関数 17309 */ 17310 extern int SetLoopPosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopTime, int SoundHandle); 17311 17312 /** 17313 * サウンドハンドルにループ位置を設定する(ミリ秒単位) 17314 */ 17315 extern int SetLoopTimePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopTime, int SoundHandle); 17316 17317 /** 17318 * サウンドハンドルにループ位置を設定する(サンプル単位) 17319 */ 17320 extern int SetLoopSamplePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopSamplePosition, int SoundHandle); 17321 17322 /** 17323 * サウンドハンドルにループ開始位置を設定する(ミリ秒単位) 17324 */ 17325 extern int SetLoopStartTimePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopStartTime, int SoundHandle); 17326 17327 /** 17328 * サウンドハンドルにループ開始位置を設定する(サンプル単位) 17329 */ 17330 extern int SetLoopStartSamplePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopStartSamplePosition, int SoundHandle); 17331 17332 /** 17333 * サウンドハンドルにループ範囲を設定する(ミリ秒単位) 17334 */ 17335 extern int SetLoopAreaTimePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopStartTime, dxlib_d.dxdatatype.LONGLONG LoopEndTime, int SoundHandle); 17336 17337 /** 17338 * サウンドハンドルにループ範囲を取得する(ミリ秒単位) 17339 */ 17340 extern int GetLoopAreaTimePosSoundMem(dxlib_d.dxdatatype.LONGLONG* LoopStartTime, dxlib_d.dxdatatype.LONGLONG* LoopEndTime, int SoundHandle); 17341 17342 /** 17343 * サウンドハンドルにループ範囲を設定する(サンプル単位) 17344 */ 17345 extern int SetLoopAreaSamplePosSoundMem(dxlib_d.dxdatatype.LONGLONG LoopStartSamplePosition, dxlib_d.dxdatatype.LONGLONG LoopEndSamplePosition, int SoundHandle); 17346 17347 /** 17348 * サウンドハンドルにループ範囲を取得する(サンプル単位) 17349 */ 17350 extern int GetLoopAreaSamplePosSoundMem(dxlib_d.dxdatatype.LONGLONG* LoopStartSamplePosition, dxlib_d.dxdatatype.LONGLONG* LoopEndSamplePosition, int SoundHandle); 17351 17352 /** 17353 * サウンドハンドルの再生が終了したら自動的にハンドルを削除するかどうかを設定する 17354 */ 17355 extern int SetPlayFinishDeleteSoundMem(int DeleteFlag, int SoundHandle); 17356 17357 /** 17358 * サウンドハンドルの3Dサウンド用のリバーブパラメータを設定する 17359 */ 17360 extern int Set3DReverbParamSoundMem(const (.SOUND3D_REVERB_PARAM)* Param, int SoundHandle); 17361 17362 /** 17363 * サウンドハンドルの3Dサウンド用のリバーブパラメータをプリセットを使用して設定する 17364 */ 17365 extern int Set3DPresetReverbParamSoundMem(int PresetNo /* DX_REVERB_PRESET_DEFAULT 等 */, int SoundHandle); 17366 17367 /** 17368 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータを設定する 17369 * 17370 * Params: 17371 * Param = ? 17372 * PlaySoundOnly = TRUE:再生中のサウンドにのみ設定する FALSE:再生していないサウンドにも設定する 17373 */ 17374 extern int Set3DReverbParamSoundMemAll(const (.SOUND3D_REVERB_PARAM)* Param, int PlaySoundOnly = dxlib_d.dxdatatype.FALSE); 17375 17376 /** 17377 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータをプリセットを使用して設定する 17378 * 17379 * Params: 17380 * PresetNo = ? 17381 * PlaySoundOnly = TRUE:再生中のサウンドにのみ設定する FALSE:再生していないサウンドにも設定する 17382 */ 17383 extern int Set3DPresetReverbParamSoundMemAll(int PresetNo /* DX_REVERB_PRESET_DEFAULT 等 */, int PlaySoundOnly = dxlib_d.dxdatatype.FALSE); 17384 17385 /** 17386 * サウンドハンドルに設定されている3Dサウンド用のリバーブパラメータを取得する 17387 */ 17388 extern int Get3DReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int SoundHandle); 17389 17390 /** 17391 * プリセットの3Dサウンド用のリバーブパラメータを取得する 17392 */ 17393 extern int Get3DPresetReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int PresetNo /* DX_REVERB_PRESET_DEFAULT 等 */); 17394 17395 /** 17396 * サウンドハンドルの3Dサウンド用の再生位置を設定する 17397 */ 17398 extern int Set3DPositionSoundMem(.VECTOR Position, int SoundHandle); 17399 17400 /** 17401 * サウンドハンドルの3Dサウンド用の音が聞こえる距離を設定する 17402 */ 17403 extern int Set3DRadiusSoundMem(float Radius, int SoundHandle); 17404 17405 /** 17406 * サウンドハンドルの3Dサウンド用の移動速度を設定する 17407 */ 17408 extern int Set3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle); 17409 17410 /** 17411 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の再生位置を設定する 17412 */ 17413 extern int SetNextPlay3DPositionSoundMem(.VECTOR Position, int SoundHandle); 17414 17415 /** 17416 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の音が聞こえる距離を設定する 17417 */ 17418 extern int SetNextPlay3DRadiusSoundMem(float Radius, int SoundHandle); 17419 17420 /** 17421 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の移動速度を設定する 17422 */ 17423 extern int SetNextPlay3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle); 17424 17425 // 特殊関数 17426 17427 /** 17428 * MP3ファイルのタグ情報を取得する 17429 */ 17430 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); 17431 17432 /** 17433 * MP3ファイルのタグ情報を取得する 17434 */ 17435 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); 17436 17437 version (DX_NON_OGGVORBIS) { 17438 } else { 17439 /** 17440 * Oggファイルのコメント情報の数を取得する 17441 */ 17442 extern int GetOggCommentNum(const (dxlib_d.dxdatatype.TCHAR)* FileName); 17443 17444 /** 17445 * Oggファイルのコメント情報の数を取得する 17446 */ 17447 extern int GetOggCommentNumWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 17448 17449 extern int GetOggComment(const (dxlib_d.dxdatatype.TCHAR)* FileName, int CommentIndex, dxlib_d.dxdatatype.TCHAR* CommentNameBuffer, size_t CommentNameBufferBytes, dxlib_d.dxdatatype.TCHAR* CommentBuffer, 17450 /** 17451 * Oggファイルのコメント情報を取得する 17452 */ 17453 size_t CommentBufferBytes); 17454 17455 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, 17456 /** 17457 * Oggファイルのコメント情報を取得する 17458 */ 17459 size_t CommentBufferBytes); 17460 } 17461 17462 // 設定関係関数 17463 17464 /** 17465 * 作成するサウンドハンドルの再生タイプを設定する( DX_SOUNDDATATYPE_MEMNOPRESS 等 ) 17466 */ 17467 extern int SetCreateSoundDataType(int SoundDataType); 17468 17469 /** 17470 * 作成するサウンドハンドルの再生タイプを取得する( DX_SOUNDDATATYPE_MEMNOPRESS 等 ) 17471 */ 17472 extern int GetCreateSoundDataType(); 17473 17474 /** 17475 * 作成するサウンドハンドルのピッチ( 音の長さを変えずに音程を変更する )レートを設定する( 単位はセント( 100.0fで半音、1200.0fで1オクターヴ )、プラスの値で音程が高く、マイナスの値で音程が低くなります ) 17476 */ 17477 extern int SetCreateSoundPitchRate(float Cents); 17478 17479 /** 17480 * 作成するサウンドハンドルのピッチ( 音の長さを変えずに音程を変更する )レートを取得する( 単位はセント( 100.0fで半音、1200.0fで1オクターヴ )、プラスの値で音程が高く、マイナスの値で音程が低くなります ) 17481 */ 17482 extern float GetCreateSoundPitchRate(); 17483 17484 /** 17485 * 作成するサウンドハンドルのタイムストレッチ( 音程を変えずに音の長さを変更する )レートを設定する( 単位は倍率、2.0f で音の長さが2倍に、0.5f で音の長さが半分になります ) 17486 */ 17487 extern int SetCreateSoundTimeStretchRate(float Rate); 17488 17489 /** 17490 * 作成するサウンドハンドルのタイムストレッチ( 音程を変えずに音の長さを変更する )レートを取得する( 単位は倍率、2.0f で音の長さが2倍に、0.5f で音の長さが半分になります ) 17491 */ 17492 extern float GetCreateSoundTimeStretchRate(); 17493 17494 /** 17495 * 作成するサウンドハンドルのループ範囲を設定する( ミリ秒単位 ) 17496 */ 17497 extern int SetCreateSoundLoopAreaTimePos(dxlib_d.dxdatatype.LONGLONG LoopStartTime, dxlib_d.dxdatatype.LONGLONG LoopEndTime); 17498 17499 /** 17500 * 作成するサウンドハンドルのループ範囲を取得する( ミリ秒単位 ) 17501 */ 17502 extern int GetCreateSoundLoopAreaTimePos(dxlib_d.dxdatatype.LONGLONG* LoopStartTime, dxlib_d.dxdatatype.LONGLONG* LoopEndTime); 17503 17504 /** 17505 * 作成するサウンドハンドルのループ範囲を設定する( サンプル単位 ) 17506 */ 17507 extern int SetCreateSoundLoopAreaSamplePos(dxlib_d.dxdatatype.LONGLONG LoopStartSamplePosition, dxlib_d.dxdatatype.LONGLONG LoopEndSamplePosition); 17508 17509 /** 17510 * 作成するサウンドハンドルのループ範囲を取得する( サンプル単位 ) 17511 */ 17512 extern int GetCreateSoundLoopAreaSamplePos(dxlib_d.dxdatatype.LONGLONG* LoopStartSamplePosition, dxlib_d.dxdatatype.LONGLONG* LoopEndSamplePosition); 17513 17514 /** 17515 * LoadSoundMem などで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを設定する 17516 * 17517 * Params: 17518 * IgnoreFlag = TRUE:無視する FALSE:無視しない( デフォルト ) 17519 */ 17520 extern int SetCreateSoundIgnoreLoopAreaInfo(int IgnoreFlag); 17521 17522 /** 17523 * LoadSoundMem などで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを取得する 17524 * 17525 * Returns: TRUE:無視する FALSE:無視しない( デフォルト ) 17526 */ 17527 extern int GetCreateSoundIgnoreLoopAreaInfo(); 17528 17529 /** 17530 * 使用しないサウンドデータ読み込み処理のマスクを設定する( DX_READSOUNDFUNCTION_PCM 等 ) 17531 */ 17532 extern int SetDisableReadSoundFunctionMask(int Mask); 17533 17534 /** 17535 * 使用しないサウンドデータ読み込み処理のマスクを取得する( DX_READSOUNDFUNCTION_PCM 等 ) 17536 */ 17537 extern int GetDisableReadSoundFunctionMask(); 17538 17539 /** 17540 * サウンドキャプチャを前提とした動作をするかどうかを設定する 17541 */ 17542 extern int SetEnableSoundCaptureFlag(int Flag); 17543 17544 /** 17545 * ChangeVolumeSoundMem, ChangeNextPlayVolumeSoundMem, ChangeMovieVolumeToGraph の音量計算式を Ver3.10c以前のものを使用するかどうかを設定する 17546 * 17547 * Params: 17548 * Flag = TRUE:Ver3.10c以前の計算式を使用 FALSE:3.10d以降の計算式を使用( デフォルト ) 17549 */ 17550 extern int SetUseOldVolumeCalcFlag(int Flag); 17551 17552 /** 17553 * GetSoundCurrentTime などを使用した場合に取得できる再生時間のタイプを設定する 17554 */ 17555 extern int SetSoundCurrentTimeType(int Type /* DX_SOUNDCURRENTTIME_TYPE_LOW_LEVEL など */); 17556 17557 /** 17558 * GetSoundCurrentTime などを使用した場合に取得できる再生時間のタイプを取得する 17559 */ 17560 extern int GetSoundCurrentTimeType(); 17561 17562 /** 17563 * 次に作成するサウンドハンドルを3Dサウンド用にするかどうかを設定する 17564 * 17565 * Params: 17566 * Flag = TRUE:3Dサウンド用にする FALSE:3Dサウンド用にしない( デフォルト ) 17567 */ 17568 extern int SetCreate3DSoundFlag(int Flag); 17569 17570 /** 17571 * 3D空間の1メートルに相当する距離を設定する、DxLib_Init を呼び出す前でのみ呼び出し可能( デフォルト:1.0f ) 17572 * 17573 * Params: 17574 * Distance = ? 17575 */ 17576 extern int Set3DSoundOneMetre(float Distance); 17577 17578 /** 17579 * 3Dサウンドのリスナーの位置とリスナーの前方位置を設定する( リスナーの上方向はY軸固定 ) 17580 */ 17581 extern int Set3DSoundListenerPosAndFrontPos_UpVecY(.VECTOR Position, .VECTOR FrontPosition); 17582 17583 /** 17584 * 3Dサウンドのリスナーの位置とリスナーの前方位置とリスナーの上方向を設定する 17585 */ 17586 extern int Set3DSoundListenerPosAndFrontPosAndUpVec(.VECTOR Position, .VECTOR FrontPosition, .VECTOR UpVector); 17587 17588 /** 17589 * 3Dサウンドのリスナーの移動速度を設定する 17590 */ 17591 extern int Set3DSoundListenerVelocity(.VECTOR Velocity); 17592 17593 /** 17594 * 3Dサウンドのリスナーの可聴角度範囲を設定する 17595 */ 17596 extern int Set3DSoundListenerConeAngle(float InnerAngle, float OuterAngle); 17597 17598 /** 17599 * 3Dサウンドのリスナーの可聴角度範囲の音量倍率を設定する 17600 */ 17601 extern int Set3DSoundListenerConeVolume(float InnerAngleVolume, float OuterAngleVolume); 17602 17603 version (DX_NON_BEEP) { 17604 } else { 17605 // BEEP音再生用命令 17606 17607 /** 17608 * ビープ音周波数設定関数 17609 */ 17610 extern int SetBeepFrequency(int Freq); 17611 17612 /** 17613 * ビープ音を再生する 17614 */ 17615 extern int PlayBeep(); 17616 17617 /** 17618 * ビープ音を止める 17619 */ 17620 extern int StopBeep(); 17621 } 17622 17623 // ラッパー関数 17624 17625 /** 17626 * サウンドファイルを再生する 17627 */ 17628 extern int PlaySoundFile(const (dxlib_d.dxdatatype.TCHAR)* FileName, int PlayType); 17629 17630 /** 17631 * サウンドファイルを再生する 17632 */ 17633 extern int PlaySoundFileWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int PlayType); 17634 17635 /** 17636 * PlaySoundFile の旧名称 17637 */ 17638 extern int PlaySound(const (dxlib_d.dxdatatype.TCHAR)* FileName, int PlayType); 17639 17640 /** 17641 * PlaySoundFile の旧名称 17642 */ 17643 extern int PlaySoundWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int PlayType); 17644 17645 /** 17646 * サウンドファイルの再生中かどうかを取得する 17647 */ 17648 extern int CheckSoundFile(); 17649 17650 /** 17651 * CheckSoundFile の旧名称 17652 */ 17653 extern int CheckSound(); 17654 17655 /** 17656 * サウンドファイルの再生を停止する 17657 */ 17658 extern int StopSoundFile(); 17659 17660 /** 17661 * StopSoundFile の旧名称 17662 */ 17663 extern int StopSound(); 17664 17665 /** 17666 * サウンドファイルの音量を設定する 17667 */ 17668 extern int SetVolumeSoundFile(int VolumePal); 17669 17670 /** 17671 * SetVolumeSound の旧名称 17672 */ 17673 extern int SetVolumeSound(int VolumePal); 17674 17675 // ソフトウエア制御サウンド系関数 17676 17677 /** 17678 * ソフトウエアで扱う波形データハンドルをすべて削除する 17679 */ 17680 extern int InitSoftSound(); 17681 17682 /** 17683 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する 17684 */ 17685 extern int LoadSoftSound(const (dxlib_d.dxdatatype.TCHAR)* FileName); 17686 17687 /** 17688 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する 17689 */ 17690 extern int LoadSoftSoundWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 17691 17692 /** 17693 * ソフトウエアで扱う波形データハンドルをメモリ上に展開されたサウンドファイルイメージから作成する 17694 */ 17695 extern int LoadSoftSoundFromMemImage(const (void)* FileImage, size_t FileImageSize); 17696 17697 /** 17698 * ソフトウエアで扱う空の波形データハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする ) 17699 */ 17700 extern int MakeSoftSound(int UseFormat_SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG SampleNum); 17701 17702 /** 17703 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44.1KHz ) 17704 */ 17705 extern int MakeSoftSound2Ch16Bit44KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17706 17707 /** 17708 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz ) 17709 */ 17710 extern int MakeSoftSound2Ch16Bit22KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17711 17712 /** 17713 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:8bit サンプリング周波数:44.1KHz ) 17714 */ 17715 extern int MakeSoftSound2Ch8Bit44KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17716 17717 /** 17718 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:8bit サンプリング周波数:22KHz ) 17719 */ 17720 extern int MakeSoftSound2Ch8Bit22KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17721 17722 /** 17723 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44.1KHz ) 17724 */ 17725 extern int MakeSoftSound1Ch16Bit44KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17726 17727 /** 17728 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz ) 17729 */ 17730 extern int MakeSoftSound1Ch16Bit22KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17731 17732 /** 17733 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:8bit サンプリング周波数:44.1KHz ) 17734 */ 17735 extern int MakeSoftSound1Ch8Bit44KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17736 17737 /** 17738 * ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:8bit サンプリング周波数:22KHz ) 17739 */ 17740 extern int MakeSoftSound1Ch8Bit22KHz(dxlib_d.dxdatatype.LONGLONG SampleNum); 17741 17742 /** 17743 * ソフトウエアで扱う空の波形データハンドルを作成する 17744 */ 17745 extern int MakeSoftSoundCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec, dxlib_d.dxdatatype.LONGLONG SampleNum, int IsFloatType = 0); 17746 17747 /** 17748 * ソフトウエアで扱う波形データハンドルを削除する 17749 */ 17750 extern int DeleteSoftSound(int SoftSoundHandle); 17751 17752 version (DX_NON_SAVEFUNCTION) { 17753 } else { 17754 /** 17755 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する 17756 */ 17757 extern int SaveSoftSound(int SoftSoundHandle, const (dxlib_d.dxdatatype.TCHAR)* FileName); 17758 17759 /** 17760 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する 17761 */ 17762 extern int SaveSoftSoundWithStrLen(int SoftSoundHandle, const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 17763 } 17764 17765 /** 17766 * ソフトウエアで扱う波形データハンドルのサンプル数を取得する 17767 */ 17768 extern dxlib_d.dxdatatype.LONGLONG GetSoftSoundSampleNum(int SoftSoundHandle); 17769 17770 /** 17771 * ソフトウエアで扱う波形データハンドルのフォーマットを取得する 17772 */ 17773 extern int GetSoftSoundFormat(int SoftSoundHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec, int* IsFloatType = null); 17774 17775 /** 17776 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る 17777 */ 17778 extern int ReadSoftSoundData(int SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG SamplePosition, int* Channel1, int* Channel2); 17779 17780 /** 17781 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る( float型版 ) 17782 */ 17783 extern int ReadSoftSoundDataF(int SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG SamplePosition, float* Channel1, float* Channel2); 17784 17785 /** 17786 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む 17787 */ 17788 extern int WriteSoftSoundData(int SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG SamplePosition, int Channel1, int Channel2); 17789 17790 /** 17791 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む( float型版 ) 17792 */ 17793 extern int WriteSoftSoundDataF(int SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG SamplePosition, float Channel1, float Channel2); 17794 17795 /** 17796 * ソフトウエアで扱う波形データハンドルの波形データを音程を変えずにデータの長さを変更する 17797 */ 17798 extern int WriteTimeStretchSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle); 17799 17800 /** 17801 * ソフトウエアで扱う波形データハンドルの波形データの長さを変更する 17802 */ 17803 extern int WritePitchShiftSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle); 17804 17805 /** 17806 * ソフトウエアで扱う波形データハンドルの波形イメージが格納されているメモリアドレスを取得する 17807 */ 17808 extern void* GetSoftSoundDataImage(int SoftSoundHandle); 17809 17810 /** 17811 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する( SampleNum は 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 の何れかである必要があります、Channel を -1 にすると二つのチャンネルを合成した結果になります ) 17812 */ 17813 extern int GetFFTVibrationSoftSound(int SoftSoundHandle, int Channel, dxlib_d.dxdatatype.LONGLONG SamplePosition, int SampleNum, float* Buffer_Array, int BufferLength); 17814 17815 /** 17816 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する、結果の実数と虚数を別々に取得することができるバージョン( SampleNum は 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 の何れかである必要があります、Channel を -1 にすると二つのチャンネルを合成した結果になります ) 17817 */ 17818 extern int GetFFTVibrationSoftSoundBase(int SoftSoundHandle, int Channel, dxlib_d.dxdatatype.LONGLONG SamplePosition, int SampleNum, float* RealBuffer_Array, float* ImagBuffer_Array, int BufferLength); 17819 17820 /** 17821 * ソフトウエアで扱う波形データのプレイヤーハンドルをすべて解放する 17822 */ 17823 extern int InitSoftSoundPlayer(); 17824 17825 /** 17826 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする ) 17827 */ 17828 extern int MakeSoftSoundPlayer(int UseFormat_SoftSoundHandle); 17829 17830 /** 17831 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44.1KHz ) 17832 */ 17833 extern int MakeSoftSoundPlayer2Ch16Bit44KHz(); 17834 17835 /** 17836 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz ) 17837 */ 17838 extern int MakeSoftSoundPlayer2Ch16Bit22KHz(); 17839 17840 /** 17841 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:8bit サンプリング周波数:44.1KHz ) 17842 */ 17843 extern int MakeSoftSoundPlayer2Ch8Bit44KHz(); 17844 17845 /** 17846 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:8bit サンプリング周波数:22KHz ) 17847 */ 17848 extern int MakeSoftSoundPlayer2Ch8Bit22KHz(); 17849 17850 /** 17851 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44.1KHz ) 17852 */ 17853 extern int MakeSoftSoundPlayer1Ch16Bit44KHz(); 17854 17855 /** 17856 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz ) 17857 */ 17858 extern int MakeSoftSoundPlayer1Ch16Bit22KHz(); 17859 17860 /** 17861 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:8bit サンプリング周波数:44.1KHz ) 17862 */ 17863 extern int MakeSoftSoundPlayer1Ch8Bit44KHz(); 17864 17865 /** 17866 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:8bit サンプリング周波数:22KHz ) 17867 */ 17868 extern int MakeSoftSoundPlayer1Ch8Bit22KHz(); 17869 17870 /** 17871 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する 17872 */ 17873 extern int MakeSoftSoundPlayerCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec); 17874 17875 /** 17876 * ソフトウエアで扱う波形データのプレイヤーハンドルを削除する 17877 */ 17878 extern int DeleteSoftSoundPlayer(int SSoundPlayerHandle); 17879 17880 /** 17881 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを追加する( フォーマットが同じではない場合はエラー ) 17882 */ 17883 extern int AddDataSoftSoundPlayer(int SSoundPlayerHandle, int SoftSoundHandle, dxlib_d.dxdatatype.LONGLONG AddSamplePosition, int AddSampleNum); 17884 17885 /** 17886 * ソフトウエアで扱う波形データのプレイヤーハンドルにプレイヤーが対応したフォーマットの生波形データを追加する 17887 */ 17888 extern int AddDirectDataSoftSoundPlayer(int SSoundPlayerHandle, const (void)* SoundData, int AddSampleNum); 17889 17890 /** 17891 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを1つ追加する 17892 */ 17893 extern int AddOneDataSoftSoundPlayer(int SSoundPlayerHandle, int Channel1, int Channel2); 17894 17895 /** 17896 * ソフトウエアで扱う波形データのプレイヤーハンドルが扱うデータフォーマットを取得する 17897 */ 17898 extern int GetSoftSoundPlayerFormat(int SSoundPlayerHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec); 17899 17900 /** 17901 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を開始する 17902 */ 17903 extern int StartSoftSoundPlayer(int SSoundPlayerHandle); 17904 17905 /** 17906 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理が開始されているか取得する 17907 * 17908 * Returns: TRUE:開始している FALSE:停止している 17909 */ 17910 extern int CheckStartSoftSoundPlayer(int SSoundPlayerHandle); 17911 17912 /** 17913 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を停止する 17914 */ 17915 extern int StopSoftSoundPlayer(int SSoundPlayerHandle); 17916 17917 /** 17918 * ソフトウエアで扱う波形データのプレイヤーハンドルの状態を初期状態に戻す( 追加された波形データは削除され、再生状態だった場合は停止する ) 17919 */ 17920 extern int ResetSoftSoundPlayer(int SSoundPlayerHandle); 17921 17922 /** 17923 * ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する 17924 */ 17925 extern int GetStockDataLengthSoftSoundPlayer(int SSoundPlayerHandle); 17926 17927 /** 17928 * ソフトウエアで扱う波形データのプレイヤーハンドルに再生用サウンドバッファに転送していない波形データが無く、再生用サウンドバッファにも無音データ以外無いかどうかを取得する 17929 * 17930 * Returns: TRUE:無音データ以外無い FALSE:有効データがある 17931 */ 17932 extern int CheckSoftSoundPlayerNoneData(int SSoundPlayerHandle); 17933 17934 // MIDI制御関数 17935 17936 /** 17937 * MIDIハンドルを削除する 17938 */ 17939 extern int DeleteMusicMem(int MusicHandle); 17940 17941 /** 17942 * MIDIファイルを読み込みMIDIハンドルを作成する 17943 */ 17944 extern int LoadMusicMem(const (dxlib_d.dxdatatype.TCHAR)* FileName); 17945 17946 /** 17947 * MIDIファイルを読み込みMIDIハンドルを作成する 17948 */ 17949 extern int LoadMusicMemWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 17950 17951 /** 17952 * メモリ上に展開されたMIDIファイルイメージからMIDIハンドルを作成する 17953 */ 17954 extern int LoadMusicMemByMemImage(const (void)* FileImage, size_t FileImageSize); 17955 17956 /** 17957 * MIDIハンドルの演奏を開始する 17958 */ 17959 extern int PlayMusicMem(int MusicHandle, int PlayType); 17960 17961 /** 17962 * MIDIハンドルの演奏を停止する 17963 */ 17964 extern int StopMusicMem(int MusicHandle); 17965 17966 /** 17967 * MIDIハンドルが演奏中かどうかを取得する 17968 * 17969 * Returns: TRUE:演奏中 FALSE:停止中 17970 */ 17971 extern int CheckMusicMem(int MusicHandle); 17972 17973 /** 17974 * MIDIハンドルの再生音量をセットする 17975 */ 17976 extern int SetVolumeMusicMem(int Volume, int MusicHandle); 17977 17978 /** 17979 * MIDIハンドルの現在の再生位置を取得する 17980 */ 17981 extern int GetMusicMemPosition(int MusicHandle); 17982 17983 /** 17984 * MIDIハンドルをすべて削除する 17985 */ 17986 extern int InitMusicMem(); 17987 17988 /** 17989 * MIDIハンドルの周期的処理( 内部で呼ばれます ) 17990 */ 17991 extern int ProcessMusicMem(); 17992 17993 /** 17994 * MIDIファイルを演奏する 17995 */ 17996 extern int PlayMusic(const (dxlib_d.dxdatatype.TCHAR)* FileName, int PlayType); 17997 17998 /** 17999 * MIDIファイルを演奏する 18000 */ 18001 extern int PlayMusicWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength, int PlayType); 18002 18003 /** 18004 * メモリ上に展開されているMIDIファイルを演奏する 18005 */ 18006 extern int PlayMusicByMemImage(const (void)* FileImage, size_t FileImageSize, int PlayType); 18007 18008 /** 18009 * MIDIの再生音量をセットする 18010 */ 18011 extern int SetVolumeMusic(int Volume); 18012 18013 /** 18014 * MIDIファイルの演奏停止 18015 */ 18016 extern int StopMusic(); 18017 18018 /** 18019 * MIDIファイルが演奏中か否か情報を取得する 18020 */ 18021 extern int CheckMusic(); 18022 18023 /** 18024 * MIDIの現在の再生位置を取得する 18025 */ 18026 extern int GetMusicPosition(); 18027 18028 /** 18029 * MIDIの再生形式を設定する 18030 */ 18031 extern int SelectMidiMode(int Mode); 18032 } 18033 18034 // DxArchive_.cpp 関数 プロトタイプ宣言 18035 18036 /** 18037 * DXアーカイブファイルの読み込み機能を使うかどうかを設定する 18038 * 18039 * Returns: FALSE:使用しない TRUE:使用する 18040 */ 18041 extern int SetUseDXArchiveFlag(int Flag); 18042 18043 /** 18044 * 同名のDXアーカイブファイルとフォルダが存在した場合、どちらを優先させるかを設定する 18045 * 18046 * Params: 18047 * Priority = 1:フォルダを優先 0:DXアーカイブファイルを優先( デフォルト ) 18048 */ 18049 extern int SetDXArchivePriority(int Priority = 0); 18050 18051 /** 18052 * 検索するDXアーカイブファイルの拡張子を設定する 18053 * 18054 * Params: 18055 * Extension = 拡張子名文字列 18056 */ 18057 extern int SetDXArchiveExtension(const (dxlib_d.dxdatatype.TCHAR)* Extension = null); 18058 18059 /** 18060 * 検索するDXアーカイブファイルの拡張子を設定する 18061 * 18062 * Params: 18063 * Extension = 拡張子名文字列 18064 * ExtensionLength = ? 18065 */ 18066 extern int SetDXArchiveExtensionWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* Extension = null, size_t ExtensionLength = 0); 18067 18068 /** 18069 * DXアーカイブファイルの鍵文字列を設定する 18070 * 18071 * Params: 18072 * KeyString = 鍵文字列 18073 */ 18074 extern int SetDXArchiveKeyString(const (dxlib_d.dxdatatype.TCHAR)* KeyString = null); 18075 18076 /** 18077 * DXアーカイブファイルの鍵文字列を設定する 18078 * 18079 * Params: 18080 * KeyString = 鍵文字列 18081 * KeyStringLength = ? 18082 */ 18083 extern int SetDXArchiveKeyStringWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* KeyString = null, size_t KeyStringLength = 0); 18084 18085 /** 18086 * 指定のDXAファイルを丸ごとメモリに読み込む 18087 * 18088 * Returns: -1:エラー 0:成功 18089 */ 18090 extern int DXArchivePreLoad(const (dxlib_d.dxdatatype.TCHAR)* FilePath, int ASync = dxlib_d.dxdatatype.FALSE); 18091 18092 /** 18093 * 指定のDXAファイルを丸ごとメモリに読み込む 18094 * 18095 * Returns: -1:エラー 0:成功 18096 */ 18097 extern int DXArchivePreLoadWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.dxdatatype.FALSE); 18098 18099 /** 18100 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する 18101 * 18102 * Returns: TRUE:完了した FALSE:まだ 18103 */ 18104 extern int DXArchiveCheckIdle(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 18105 18106 /** 18107 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する 18108 * 18109 * Returns: TRUE:完了した FALSE:まだ 18110 */ 18111 extern int DXArchiveCheckIdleWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 18112 18113 /** 18114 * 指定のDXAファイルをメモリから解放する 18115 */ 18116 extern int DXArchiveRelease(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 18117 18118 /** 18119 * 指定のDXAファイルをメモリから解放する 18120 */ 18121 extern int DXArchiveReleaseWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 18122 18123 /** 18124 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePath はDXAファイルをカレントフォルダとした場合のパス 18125 * 18126 * Returns: -1:エラー 0:無い 1:ある 18127 */ 18128 extern int DXArchiveCheckFile(const (dxlib_d.dxdatatype.TCHAR)* FilePath, const (dxlib_d.dxdatatype.TCHAR)* TargetFilePath); 18129 18130 /** 18131 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePath はDXAファイルをカレントフォルダとした場合のパス 18132 * 18133 * Returns: -1:エラー 0:無い 1:ある 18134 */ 18135 extern int DXArchiveCheckFileWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength, const (dxlib_d.dxdatatype.TCHAR)* TargetFilePath, size_t TargetFilePathLength); 18136 18137 /** 18138 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする( EmulateFilePath は見立てる dxa ファイルのパス、例えばDXAファイルイメージを Image.dxa というファイル名で c:\Temp にあることにしたい場合は EmulateFilePath に "c:\\Temp\\Image.dxa" を渡す、SetDXArchiveExtension で拡張子を変更している場合は EmulateFilePath に渡すファイルパスの拡張子もそれに合わせる必要あり ) 18139 */ 18140 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); 18141 18142 /** 18143 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする( EmulateFilePath は見立てる dxa ファイルのパス、例えばDXAファイルイメージを Image.dxa というファイル名で c:\Temp にあることにしたい場合は EmulateFilePath に "c:\\Temp\\Image.dxa" を渡す、SetDXArchiveExtension で拡張子を変更している場合は EmulateFilePath に渡すファイルパスの拡張子もそれに合わせる必要あり ) 18144 */ 18145 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); 18146 18147 /** 18148 * DXArchiveSetMemImage の設定を解除する 18149 */ 18150 extern int DXArchiveReleaseMemImage(void* ArchiveImage); 18151 18152 /** 18153 * バイナリデータを元に CRC32 のハッシュ値を計算する 18154 */ 18155 extern dxlib_d.dxdatatype.DWORD HashCRC32(const (void)* SrcData, size_t SrcDataSize); 18156 18157 // DxModel.cpp 関数 プロトタイプ宣言 18158 18159 version (DX_NON_MODEL) { 18160 } else { 18161 // モデルの読み込み・複製関係 18162 18163 /** 18164 * モデルの読み込み 18165 * 18166 * Returns: -1:エラー 0以上:モデルハンドル 18167 */ 18168 extern int MV1LoadModel(const (dxlib_d.dxdatatype.TCHAR)* FileName); 18169 18170 /** 18171 * モデルの読み込み 18172 * 18173 * Returns: -1:エラー 0以上:モデルハンドル 18174 */ 18175 extern int MV1LoadModelWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 18176 18177 /** 18178 * メモリ上のモデルファイルイメージと独自の読み込みルーチンを使用してモデルを読み込む 18179 */ 18180 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); 18181 18182 /** 18183 * 指定のモデルと同じモデル基本データを使用してモデルを作成する 18184 * 18185 * Returns: -1:エラー 0以上:モデルハンドル 18186 */ 18187 extern int MV1DuplicateModel(int SrcMHandle); 18188 18189 /** 18190 * 指定のモデルをモデル基本データも含め複製する( MV1DuplicateModel はモデル基本データは共有しますが、こちらは複製元のモデルとは一切共有データの無いモデルハンドルを作成します ) 18191 * 18192 * Returns: -1:エラー 0以上:モデルハンドル 18193 */ 18194 extern int MV1CreateCloneModel(int SrcMHandle); 18195 18196 /** 18197 * モデルを削除する 18198 */ 18199 extern int MV1DeleteModel(int MHandle); 18200 18201 /** 18202 * すべてのモデルを削除する 18203 */ 18204 extern int MV1InitModel(); 18205 18206 /** 18207 * モデルを読み込む際に法線の再計算を行うかどうかを設定する 18208 * 18209 * Params: 18210 * Flag = TRUE:行う FALSE:行わない( デフォルト ) 18211 */ 18212 extern int MV1SetLoadModelReMakeNormal(int Flag); 18213 18214 /** 18215 * モデルを読み込む際に行う法泉の再計算で使用するスムージング角度を設定する( 単位はラジアン ) 18216 */ 18217 extern int MV1SetLoadModelReMakeNormalSmoothingAngle(float SmoothingAngle = 1.562069f); 18218 18219 /** 18220 * モデルを読み込む際にスケーリングデータを無視するかどうかを設定する 18221 * 18222 * Params: 18223 * Flag = TRUE:無視する FALSE:無視しない( デフォルト ) 18224 */ 18225 extern int MV1SetLoadModelIgnoreScaling(int Flag); 18226 18227 /** 18228 * モデルを読み込む際に座標データの最適化を行うかどうかを設定する 18229 * 18230 * Params: 18231 * Flag = TRUE:行う FALSE:行わない( デフォルト ) 18232 */ 18233 extern int MV1SetLoadModelPositionOptimize(int Flag); 18234 18235 /** 18236 * モデルを読み込む際にポリゴンの辺が接していて、且つ法線の方向が異なる辺に面積0のポリゴンを埋め込むかどうかを設定する、( MV1ファイルの読み込みではこの関数の設定は無視され、ポリゴンの埋め込みは実行されません ) 18237 * 18238 * Params: 18239 * Flag = TRUE:埋め込む FALSE:埋め込まない( デフォルト ) 18240 */ 18241 extern int MV1SetLoadModelNotEqNormalSide_AddZeroAreaPolygon(int Flag); 18242 18243 /** 18244 * 読み込むモデルの物理演算モードを設定する 18245 */ 18246 extern int MV1SetLoadModelUsePhysicsMode(int PhysicsMode /* DX_LOADMODEL_PHYSICS_LOADCALC 等 */); 18247 18248 /** 18249 * 読み込むモデルの物理演算に適用する重力パラメータを設定する 18250 */ 18251 extern int MV1SetLoadModelPhysicsWorldGravity(float Gravity); 18252 18253 /** 18254 * 読み込むモデルの物理演算に適用する重力パラメータを取得する 18255 */ 18256 extern float MV1GetLoadModelPhysicsWorldGravity(); 18257 18258 /** 18259 * 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される重力の設定をする 18260 */ 18261 extern int MV1SetLoadCalcPhysicsWorldGravity(int GravityNo, .VECTOR Gravity); 18262 18263 /** 18264 * 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される重力を取得する 18265 */ 18266 extern .VECTOR MV1GetLoadCalcPhysicsWorldGravity(int GravityNo); 18267 18268 /** 18269 * 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される物理演算の時間進行の精度を設定する( 0:60FPS 1:120FPS 2:240FPS 3:480FPS 4:960FPS 5:1920FPS ) 18270 * 18271 * Params: 18272 * Precision = ? 18273 */ 18274 extern int MV1SetLoadModelPhysicsCalcPrecision(int Precision); 18275 18276 /** 18277 * PMD, PMX ファイルを読み込んだ際のアニメーションの FPS モードを設定する 18278 */ 18279 extern int MV1SetLoadModel_PMD_PMX_AnimationFPSMode(int FPSMode /* DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30 等 */); 18280 18281 /** 18282 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は 63 文字、追加できるワードの数は最大 256 個 18283 */ 18284 extern int MV1AddLoadModelDisablePhysicsNameWord(const (dxlib_d.dxdatatype.TCHAR)* NameWord); 18285 18286 /** 18287 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は 63 文字、追加できるワードの数は最大 256 個 18288 */ 18289 extern int MV1AddLoadModelDisablePhysicsNameWordWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* NameWord, size_t NameWordLength); 18290 18291 /** 18292 * MV1AddLoadModelDisablePhysicsNameWord で追加した剛体の無効ワードをリセットして無効ワード無しの初期状態に戻す 18293 */ 18294 extern int MV1ResetLoadModelDisablePhysicsNameWord(); 18295 18296 /** 18297 * MV1AddLoadModelDisablePhysicsNameWord で追加した剛体の無効ワードの適用ルールを変更する 18298 */ 18299 extern int MV1SetLoadModelDisablePhysicsNameWordMode(int DisableNameWordMode /* DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS 等 */); 18300 18301 /** 18302 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット( 現在は PMD,PMX のみに効果あり ) 18303 */ 18304 extern int MV1SetLoadModelAnimFilePath(const (dxlib_d.dxdatatype.TCHAR)* FileName); 18305 18306 /** 18307 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット( 現在は PMD,PMX のみに効果あり ) 18308 */ 18309 extern int MV1SetLoadModelAnimFilePathWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FileName, size_t FileNameLength); 18310 18311 /** 18312 * 読み込むモデルを同時複数描画に対応させるかどうかを設定する、( 「対応させる」にすると描画が高速になる可能性がある代わりに消費VRAMが増えます ) 18313 * 18314 * Params: 18315 * Flag = TRUE:対応させる FALSE:対応させない( デフォルト ) 18316 */ 18317 extern int MV1SetLoadModelUsePackDraw(int Flag); 18318 18319 /** 18320 * 読み込むモデルのひとつのトライアングルリストで使用できる最大ボーン数を設定する( UseMaxBoneNum で指定できる値の範囲は 8 〜 54、 0 を指定するとデフォルト動作に戻る ) 18321 */ 18322 extern int MV1SetLoadModelTriangleListUseMaxBoneNum(int UseMaxBoneNum); 18323 18324 // モデル保存関係 18325 18326 /** 18327 * 指定のパスにモデルを保存する 18328 * 18329 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18330 */ 18331 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); 18332 18333 /** 18334 * 指定のパスにモデルを保存する 18335 * 18336 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18337 */ 18338 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); 18339 18340 version (DX_NON_SAVEFUNCTION) { 18341 } else { 18342 /** 18343 * 指定のパスにモデルをXファイル形式で保存する 18344 * 18345 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18346 */ 18347 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); 18348 18349 /** 18350 * 指定のパスにモデルをXファイル形式で保存する 18351 * 18352 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18353 */ 18354 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); 18355 } 18356 18357 // モデル描画関係 18358 18359 /** 18360 * モデルを描画する 18361 */ 18362 extern int MV1DrawModel(int MHandle); 18363 18364 /** 18365 * モデルの指定のフレームを描画する 18366 */ 18367 extern int MV1DrawFrame(int MHandle, int FrameIndex); 18368 18369 /** 18370 * モデルの指定のメッシュを描画する 18371 */ 18372 extern int MV1DrawMesh(int MHandle, int MeshIndex); 18373 18374 /** 18375 * モデルの指定のトライアングルリストを描画する 18376 */ 18377 extern int MV1DrawTriangleList(int MHandle, int TriangleListIndex); 18378 18379 /** 18380 * モデルのデバッグ描画 18381 */ 18382 extern int MV1DrawModelDebug(int MHandle, uint Color, int IsNormalLine, float NormalLineLength, int IsPolyLine, int IsCollisionBox); 18383 18384 // 描画設定関係 18385 18386 /** 18387 * モデルの描画に SetUseVertexShader, SetUsePixelShader で指定したシェーダーを使用するかどうかを設定する 18388 * 18389 * Params: 18390 * UseFlag = TRUE:使用する FALSE:使用しない( デフォルト ) 18391 */ 18392 extern int MV1SetUseOrigShader(int UseFlag); 18393 18394 /** 18395 * モデルの半透明要素がある部分についての描画モードを設定する 18396 */ 18397 extern int MV1SetSemiTransDrawMode(int DrawMode /* DX_SEMITRANSDRAWMODE_ALWAYS 等 */); 18398 18399 // モデル基本制御関係 18400 18401 /** 18402 * モデルのローカル座標からワールド座標に変換する行列を得る 18403 */ 18404 extern .MATRIX MV1GetLocalWorldMatrix(int MHandle); 18405 18406 /** 18407 * モデルのローカル座標からワールド座標に変換する行列を得る 18408 */ 18409 extern .MATRIX_D MV1GetLocalWorldMatrixD(int MHandle); 18410 18411 /** 18412 * モデルの座標をセット 18413 */ 18414 extern int MV1SetPosition(int MHandle, .VECTOR Position); 18415 18416 /** 18417 * モデルの座標をセット 18418 */ 18419 extern int MV1SetPositionD(int MHandle, .VECTOR_D Position); 18420 18421 /** 18422 * モデルの座標を取得 18423 */ 18424 extern .VECTOR MV1GetPosition(int MHandle); 18425 18426 /** 18427 * モデルの座標を取得 18428 */ 18429 extern .VECTOR_D MV1GetPositionD(int MHandle); 18430 18431 /** 18432 * モデルの拡大値をセット 18433 */ 18434 extern int MV1SetScale(int MHandle, .VECTOR Scale); 18435 18436 /** 18437 * モデルの拡大値を取得 18438 */ 18439 extern .VECTOR MV1GetScale(int MHandle); 18440 18441 /** 18442 * モデルの回転値をセット( X軸回転→Y軸回転→Z軸回転方式 ) 18443 */ 18444 extern int MV1SetRotationXYZ(int MHandle, .VECTOR Rotate); 18445 18446 /** 18447 * モデルの回転値を取得( X軸回転→Y軸回転→Z軸回転方式 ) 18448 */ 18449 extern .VECTOR MV1GetRotationXYZ(int MHandle); 18450 18451 /** 18452 * モデルのZ軸とY軸の向きをセットする 18453 */ 18454 extern int MV1SetRotationZYAxis(int MHandle, .VECTOR ZAxisDirection, .VECTOR YAxisDirection, float ZAxisTwistRotate); 18455 18456 /** 18457 * モデルのY軸の回転値を指定のベクトルの向きを元に設定する、モデルはZ軸のマイナス方向を向いていることを想定するので、そうではない場合は OffsetYAngle で補正する、X軸回転、Z軸回転は0で固定 18458 */ 18459 extern int MV1SetRotationYUseDir(int MHandle, .VECTOR Direction, float OffsetYAngle); 18460 18461 /** 18462 * モデルの回転用行列をセットする 18463 */ 18464 extern int MV1SetRotationMatrix(int MHandle, .MATRIX Matrix); 18465 18466 /** 18467 * モデルの回転用行列を取得する 18468 */ 18469 extern .MATRIX MV1GetRotationMatrix(int MHandle); 18470 18471 /** 18472 * モデルの変形用行列をセットする 18473 */ 18474 extern int MV1SetMatrix(int MHandle, .MATRIX Matrix); 18475 18476 /** 18477 * モデルの変形用行列をセットする 18478 */ 18479 extern int MV1SetMatrixD(int MHandle, .MATRIX_D Matrix); 18480 18481 /** 18482 * モデルの変形用行列を取得する 18483 */ 18484 extern .MATRIX MV1GetMatrix(int MHandle); 18485 18486 /** 18487 * モデルの変形用行列を取得する 18488 */ 18489 extern .MATRIX_D MV1GetMatrixD(int MHandle); 18490 18491 /** 18492 * モデルの表示、非表示状態を変更する 18493 * 18494 * Params: 18495 * MHandle = ? 18496 * VisibleFlag = TRUE:表示 FALSE:非表示 18497 */ 18498 extern int MV1SetVisible(int MHandle, int VisibleFlag); 18499 18500 /** 18501 * モデルの表示、非表示状態を取得する 18502 * 18503 * Returns: TRUE:表示 FALSE:非表示 18504 */ 18505 extern int MV1GetVisible(int MHandle); 18506 18507 /** 18508 * モデルのメッシュの種類( DX_MV1_MESHCATEGORY_NORMAL など )毎の表示、非表示を設定する 18509 * 18510 * Params: 18511 * MHandle = ? 18512 * MeshCategory = ? 18513 * VisibleFlag = TRUE:表示 FALSE:非表示 18514 */ 18515 extern int MV1SetMeshCategoryVisible(int MHandle, int MeshCategory, int VisibleFlag); 18516 18517 /** 18518 * モデルのメッシュの種類( DX_MV1_MESHCATEGORY_NORMAL など )毎の表示、非表示を取得する 18519 * 18520 * Returns: TRUE:表示 FALSE:非表示 18521 */ 18522 extern int MV1GetMeshCategoryVisible(int MHandle, int MeshCategory); 18523 18524 /** 18525 * モデルのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f ) 18526 */ 18527 extern int MV1SetDifColorScale(int MHandle, .COLOR_F Scale); 18528 18529 /** 18530 * モデルのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f ) 18531 */ 18532 extern .COLOR_F MV1GetDifColorScale(int MHandle); 18533 18534 /** 18535 * モデルのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f ) 18536 */ 18537 extern int MV1SetSpcColorScale(int MHandle, .COLOR_F Scale); 18538 18539 /** 18540 * モデルのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f ) 18541 */ 18542 extern .COLOR_F MV1GetSpcColorScale(int MHandle); 18543 18544 /** 18545 * モデルのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f ) 18546 */ 18547 extern int MV1SetEmiColorScale(int MHandle, .COLOR_F Scale); 18548 18549 /** 18550 * モデルのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f ) 18551 */ 18552 extern .COLOR_F MV1GetEmiColorScale(int MHandle); 18553 18554 /** 18555 * モデルのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f ) 18556 */ 18557 extern int MV1SetAmbColorScale(int MHandle, .COLOR_F Scale); 18558 18559 /** 18560 * モデルのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f ) 18561 */ 18562 extern .COLOR_F MV1GetAmbColorScale(int MHandle); 18563 18564 /** 18565 * モデルに半透明要素があるかどうかを取得する 18566 * 18567 * Returns: TRUE:ある FALSE:ない 18568 */ 18569 extern int MV1GetSemiTransState(int MHandle); 18570 18571 /** 18572 * モデルの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f ) 18573 */ 18574 extern int MV1SetOpacityRate(int MHandle, float Rate); 18575 18576 /** 18577 * モデルの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f ) 18578 */ 18579 extern float MV1GetOpacityRate(int MHandle); 18580 18581 /** 18582 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを設定する( 描画結果が乗算済みアルファ画像になります ) 18583 * 18584 * Params: 18585 * MHandle = ? 18586 * Flag = TRUE:RGB値に対してA値を乗算する FALSE:乗算しない(デフォルト) 18587 */ 18588 extern int MV1SetUseDrawMulAlphaColor(int MHandle, int Flag); 18589 18590 /** 18591 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを取得する( 描画結果が乗算済みアルファ画像になります ) 18592 * 18593 * Returns: TRUE:RGB値に対してA値を乗算する FALSE:乗算しない(デフォルト) 18594 */ 18595 extern int MV1GetUseDrawMulAlphaColor(int MHandle); 18596 18597 /** 18598 * モデルを描画する際にZバッファを使用するかどうかを設定する 18599 */ 18600 extern int MV1SetUseZBuffer(int MHandle, int Flag); 18601 18602 /** 18603 * モデルを描画する際にZバッファに書き込みを行うかどうかを設定する 18604 */ 18605 extern int MV1SetWriteZBuffer(int MHandle, int Flag); 18606 18607 /** 18608 * モデルの描画時のZ値の比較モードを設定する 18609 */ 18610 extern int MV1SetZBufferCmpType(int MHandle, int CmpType /* DX_CMP_NEVER 等 */); 18611 18612 /** 18613 * モデルの描画時の書き込むZ値のバイアスを設定する 18614 */ 18615 extern int MV1SetZBias(int MHandle, int Bias); 18616 18617 /** 18618 * モデルの含まれるメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する 18619 * 18620 * Params: 18621 * MHandle = ? 18622 * UseFlag = TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 18623 */ 18624 extern int MV1SetUseVertDifColor(int MHandle, int UseFlag); 18625 18626 /** 18627 * モデルに含まれるメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する 18628 * 18629 * Params: 18630 * MHandle = ? 18631 * UseFlag = TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 18632 */ 18633 extern int MV1SetUseVertSpcColor(int MHandle, int UseFlag); 18634 18635 /** 18636 * モデルのテクスチャのサンプルフィルターモードを変更する( FilterMode は DX_DRAWMODE_NEAREST 等 ) 18637 * 18638 * Params: 18639 * MHandle = ? 18640 * FilterMode = ? 18641 */ 18642 extern int MV1SetSampleFilterMode(int MHandle, int FilterMode); 18643 18644 /** 18645 * モデルの異方性フィルタリングの最大次数を設定する 18646 */ 18647 extern int MV1SetMaxAnisotropy(int MHandle, int MaxAnisotropy); 18648 18649 /** 18650 * モデルをワイヤーフレームで描画するかどうかを設定する 18651 */ 18652 extern int MV1SetWireFrameDrawFlag(int MHandle, int Flag); 18653 18654 /** 18655 * モデルの頂点カラーを現在設定されているマテリアルのカラーにする 18656 */ 18657 extern int MV1RefreshVertColorFromMaterial(int MHandle); 18658 18659 /** 18660 * モデルの物理演算の重力を設定する 18661 */ 18662 extern int MV1SetPhysicsWorldGravity(int MHandle, .VECTOR Gravity); 18663 18664 /** 18665 * モデルの物理演算を指定時間分経過したと仮定して計算する( MillisecondTime で指定する時間の単位はミリ秒 ) 18666 */ 18667 extern int MV1PhysicsCalculation(int MHandle, float MillisecondTime); 18668 18669 /** 18670 * モデルの物理演算の状態をリセットする( 位置がワープしたとき用 ) 18671 */ 18672 extern int MV1PhysicsResetState(int MHandle); 18673 18674 /** 18675 * モデルのシェイプ機能を使用するかどうかを設定する 18676 * 18677 * Params: 18678 * MHandle = ? 18679 * UseFlag = TRUE:使用する( デフォルト ) FALSE:使用しない 18680 */ 18681 extern int MV1SetUseShapeFlag(int MHandle, int UseFlag); 18682 18683 /** 18684 * モデルのマテリアル番号順にメッシュを描画するかどうかのフラグを取得する 18685 * 18686 * Returns: TRUE:マテリアル番号順に描画 FALSE:不透明メッシュの後半透明メッシュ 18687 */ 18688 extern int MV1GetMaterialNumberOrderFlag(int MHandle); 18689 18690 // アニメーション関係 18691 18692 /** 18693 * アニメーションをアタッチする 18694 * 18695 * Returns: -1:エラー 0以上:アタッチインデックス 18696 */ 18697 extern int MV1AttachAnim(int MHandle, int AnimIndex, int AnimSrcMHandle = -1, int NameCheck = dxlib_d.dxdatatype.TRUE); 18698 18699 /** 18700 * アニメーションをデタッチする 18701 */ 18702 extern int MV1DetachAnim(int MHandle, int AttachIndex); 18703 18704 /** 18705 * アタッチしているアニメーションの再生時間を設定する 18706 */ 18707 extern int MV1SetAttachAnimTime(int MHandle, int AttachIndex, float Time); 18708 18709 /** 18710 * アタッチしているアニメーションの再生時間を取得する 18711 */ 18712 extern float MV1GetAttachAnimTime(int MHandle, int AttachIndex); 18713 18714 /** 18715 * アタッチしているアニメーションの総時間を得る 18716 */ 18717 extern float MV1GetAttachAnimTotalTime(int MHandle, int AttachIndex); 18718 18719 /** 18720 * アタッチしているアニメーションのブレンド率を設定する 18721 */ 18722 extern int MV1SetAttachAnimBlendRate(int MHandle, int AttachIndex, float Rate = 1.0f); 18723 18724 /** 18725 * アタッチしているアニメーションのブレンド率を取得する 18726 */ 18727 extern float MV1GetAttachAnimBlendRate(int MHandle, int AttachIndex); 18728 18729 /** 18730 * アタッチしているアニメーションのブレンド率を設定する( フレーム単位 ) 18731 */ 18732 extern int MV1SetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex, float Rate, int SetChild = dxlib_d.dxdatatype.TRUE); 18733 18734 /** 18735 * アタッチしているアニメーションのブレンド率を設定する( フレーム単位 ) 18736 */ 18737 extern float MV1GetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex); 18738 18739 /** 18740 * アタッチしているアニメーションのアニメーションインデックスを取得する 18741 */ 18742 extern int MV1GetAttachAnim(int MHandle, int AttachIndex); 18743 18744 /** 18745 * アタッチしているアニメーションのシェイプを使用するかどうかを設定する 18746 * 18747 * Params: 18748 * MHandle = ? 18749 * AttachIndex = ? 18750 * UseFlag = TRUE:使用する( デフォルト ) FALSE:使用しない 18751 */ 18752 extern int MV1SetAttachAnimUseShapeFlag(int MHandle, int AttachIndex, int UseFlag); 18753 18754 /** 18755 * アタッチしているアニメーションのシェイプを使用するかどうかを取得する 18756 */ 18757 extern int MV1GetAttachAnimUseShapeFlag(int MHandle, int AttachIndex); 18758 18759 /** 18760 * アタッチしているアニメーションの指定のフレームの現在のローカル座標を取得する 18761 */ 18762 extern .VECTOR MV1GetAttachAnimFrameLocalPosition(int MHandle, int AttachIndex, int FrameIndex); 18763 18764 /** 18765 * アタッチしているアニメーションの指定のフレームの現在のローカル変換行列を取得する 18766 */ 18767 extern .MATRIX MV1GetAttachAnimFrameLocalMatrix(int MHandle, int AttachIndex, int FrameIndex); 18768 18769 /** 18770 * アニメーションの数を取得する 18771 */ 18772 extern int MV1GetAnimNum(int MHandle); 18773 18774 /** 18775 * 指定番号のアニメーション名を取得する 18776 * 18777 * Returns: null:エラー 18778 */ 18779 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetAnimName(int MHandle, int AnimIndex); 18780 18781 /** 18782 * 指定番号のアニメーション名を変更する 18783 */ 18784 extern int MV1SetAnimName(int MHandle, int AnimIndex, const (dxlib_d.dxdatatype.TCHAR)* AnimName); 18785 18786 /** 18787 * 指定番号のアニメーション名を変更する 18788 */ 18789 extern int MV1SetAnimNameWithStrLen(int MHandle, int AnimIndex, const (dxlib_d.dxdatatype.TCHAR)* AnimName, size_t AnimNameLength); 18790 18791 /** 18792 * 指定名のアニメーション番号を取得する 18793 * 18794 * Returns: -1:エラー 18795 */ 18796 extern int MV1GetAnimIndex(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* AnimName); 18797 18798 /** 18799 * 指定名のアニメーション番号を取得する 18800 * 18801 * Returns: -1:エラー 18802 */ 18803 extern int MV1GetAnimIndexWithStrLen(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* AnimName, size_t AnimNameLength); 18804 18805 /** 18806 * 指定番号のアニメーションの総時間を得る 18807 */ 18808 extern float MV1GetAnimTotalTime(int MHandle, int AnimIndex); 18809 18810 /** 18811 * 指定のアニメーションがターゲットとするフレームの数を取得する 18812 */ 18813 extern int MV1GetAnimTargetFrameNum(int MHandle, int AnimIndex); 18814 18815 /** 18816 * 指定のアニメーションがターゲットとするフレームの名前を取得する 18817 */ 18818 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetAnimTargetFrameName(int MHandle, int AnimIndex, int AnimFrameIndex); 18819 18820 /** 18821 * 指定のアニメーションがターゲットとするフレームの番号を取得する 18822 */ 18823 extern int MV1GetAnimTargetFrame(int MHandle, int AnimIndex, int AnimFrameIndex); 18824 18825 /** 18826 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットの数を取得する 18827 */ 18828 extern int MV1GetAnimTargetFrameKeySetNum(int MHandle, int AnimIndex, int AnimFrameIndex); 18829 18830 /** 18831 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットキーセットインデックスを取得する 18832 */ 18833 extern int MV1GetAnimTargetFrameKeySet(int MHandle, int AnimIndex, int AnimFrameIndex, int Index); 18834 18835 /** 18836 * モデルに含まれるアニメーションキーセットの総数を得る 18837 */ 18838 extern int MV1GetAnimKeySetNum(int MHandle); 18839 18840 /** 18841 * 指定のアニメーションキーセットのタイプを取得する( MV1_ANIMKEY_TYPE_QUATERNION 等 ) 18842 */ 18843 extern int MV1GetAnimKeySetType(int MHandle, int AnimKeySetIndex); 18844 18845 /** 18846 * 指定のアニメーションキーセットのデータタイプを取得する( MV1_ANIMKEY_DATATYPE_ROTATE 等 ) 18847 */ 18848 extern int MV1GetAnimKeySetDataType(int MHandle, int AnimKeySetIndex); 18849 18850 /** 18851 * 指定のアニメーションキーセットのキーの時間データタイプを取得する( MV1_ANIMKEY_TIME_TYPE_ONE 等 ) 18852 */ 18853 extern int MV1GetAnimKeySetTimeType(int MHandle, int AnimKeySetIndex); 18854 18855 /** 18856 * 指定のアニメーションキーセットのキーの数を取得する 18857 */ 18858 extern int MV1GetAnimKeySetDataNum(int MHandle, int AnimKeySetIndex); 18859 18860 /** 18861 * 指定のアニメーションキーセットのキーの時間を取得する 18862 */ 18863 extern float MV1GetAnimKeyDataTime(int MHandle, int AnimKeySetIndex, int Index); 18864 18865 /** 18866 * 指定のアニメーションキーセットの指定の時間でのキーの番号を取得する 18867 */ 18868 extern int MV1GetAnimKeyDataIndexFromTime(int MHandle, int AnimKeySetIndex, float Time); 18869 18870 /** 18871 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する 18872 */ 18873 extern .FLOAT4 MV1GetAnimKeyDataToQuaternion(int MHandle, int AnimKeySetIndex, int Index); 18874 18875 /** 18876 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する( 時間指定版 ) 18877 */ 18878 extern .FLOAT4 MV1GetAnimKeyDataToQuaternionFromTime(int MHandle, int AnimKeySetIndex, float Time); 18879 18880 /** 18881 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する 18882 */ 18883 extern .VECTOR MV1GetAnimKeyDataToVector(int MHandle, int AnimKeySetIndex, int Index); 18884 18885 /** 18886 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する( 時間指定版 ) 18887 */ 18888 extern .VECTOR MV1GetAnimKeyDataToVectorFromTime(int MHandle, int AnimKeySetIndex, float Time); 18889 18890 /** 18891 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する 18892 */ 18893 extern .MATRIX MV1GetAnimKeyDataToMatrix(int MHandle, int AnimKeySetIndex, int Index); 18894 18895 /** 18896 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する( 時間指定版 ) 18897 */ 18898 extern .MATRIX MV1GetAnimKeyDataToMatrixFromTime(int MHandle, int AnimKeySetIndex, float Time); 18899 18900 /** 18901 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する 18902 */ 18903 extern float MV1GetAnimKeyDataToFlat(int MHandle, int AnimKeySetIndex, int Index); 18904 18905 /** 18906 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する( 時間指定版 ) 18907 */ 18908 extern float MV1GetAnimKeyDataToFlatFromTime(int MHandle, int AnimKeySetIndex, float Time); 18909 18910 /** 18911 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する 18912 */ 18913 extern float MV1GetAnimKeyDataToLinear(int MHandle, int AnimKeySetIndex, int Index); 18914 18915 /** 18916 * 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する( 時間指定版 ) 18917 */ 18918 extern float MV1GetAnimKeyDataToLinearFromTime(int MHandle, int AnimKeySetIndex, float Time); 18919 18920 // マテリアル関係 18921 18922 /** 18923 * モデルで使用しているマテリアルの数を取得する 18924 */ 18925 extern int MV1GetMaterialNum(int MHandle); 18926 18927 /** 18928 * 指定のマテリアルの名前を取得する 18929 */ 18930 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetMaterialName(int MHandle, int MaterialIndex); 18931 18932 /** 18933 * 全てのマテリアルのタイプを変更する 18934 * 18935 * Params: 18936 * MHandle = ? 18937 * Type = DX_MATERIAL_TYPE_NORMAL など 18938 */ 18939 extern int MV1SetMaterialTypeAll(int MHandle, int Type); 18940 18941 /** 18942 * 指定のマテリアルのタイプを変更する 18943 * 18944 * Params: 18945 * MHandle = ? 18946 * MaterialIndex = ? 18947 * Type = DX_MATERIAL_TYPE_NORMAL 18948 */ 18949 extern int MV1SetMaterialType(int MHandle, int MaterialIndex, int Type); 18950 18951 /** 18952 * 指定のマテリアルのタイプを取得する 18953 * 18954 * Returns: DX_MATERIAL_TYPE_NORMAL など 18955 */ 18956 extern int MV1GetMaterialType(int MHandle, int MaterialIndex); 18957 18958 /** 18959 * 全てのマテリアルのタイプ別パラメータを変更する( マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLOR などで使用 ) 18960 */ 18961 extern int MV1SetMaterialTypeParamAll(int MHandle, ...); 18962 18963 /** 18964 * 指定のマテリアルのタイプ別パラメータを変更する( マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLOR などで使用 ) 18965 */ 18966 extern int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, ...); 18967 18968 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORM の場合 */ float MinParam = 正規化の下限値( この値以下が 0.0f になる ), float MaxParam = 正規化の上限値( この値以上が 1.0f になる )); 18969 // 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 になる )); 18970 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUAL の場合 */ float CmpParam = 比較値( この値以上の場合は 1.0f が、未満の場合は 0.0f が書き込まれる )); 18971 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORM の場合 */ float MinParam = 正規化の下限値( この値以下が 0.0f になる ), float MaxParam = 正規化の上限値( この値以上が 1.0f になる )); 18972 // 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 になる )); 18973 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUAL の場合 */ float CmpParam = 比較値( この値以上の場合は 1.0f が、未満の場合は 0.0f が書き込まれる )); 18974 18975 /** 18976 * 指定のマテリアルのディフューズカラーを設定する 18977 */ 18978 extern int MV1SetMaterialDifColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18979 18980 /** 18981 * 指定のマテリアルのディフューズカラーを取得する 18982 */ 18983 extern .COLOR_F MV1GetMaterialDifColor(int MHandle, int MaterialIndex); 18984 18985 /** 18986 * 指定のマテリアルのスペキュラカラーを設定する 18987 */ 18988 extern int MV1SetMaterialSpcColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18989 18990 /** 18991 * 指定のマテリアルのスペキュラカラーを取得する 18992 */ 18993 extern .COLOR_F MV1GetMaterialSpcColor(int MHandle, int MaterialIndex); 18994 18995 /** 18996 * 指定のマテリアルのエミッシブカラーを設定する 18997 */ 18998 extern int MV1SetMaterialEmiColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18999 19000 /** 19001 * 指定のマテリアルのエミッシブカラーを取得する 19002 */ 19003 extern .COLOR_F MV1GetMaterialEmiColor(int MHandle, int MaterialIndex); 19004 19005 /** 19006 * 指定のマテリアルのアンビエントカラーを設定する 19007 */ 19008 extern int MV1SetMaterialAmbColor(int MHandle, int MaterialIndex, .COLOR_F Color); 19009 19010 /** 19011 * 指定のマテリアルのアンビエントカラーを取得する 19012 */ 19013 extern .COLOR_F MV1GetMaterialAmbColor(int MHandle, int MaterialIndex); 19014 19015 /** 19016 * 指定のマテリアルのスペキュラの強さを設定する 19017 */ 19018 extern int MV1SetMaterialSpcPower(int MHandle, int MaterialIndex, float Power); 19019 19020 /** 19021 * 指定のマテリアルのスペキュラの強さを取得する 19022 */ 19023 extern float MV1GetMaterialSpcPower(int MHandle, int MaterialIndex); 19024 19025 /** 19026 * 指定のマテリアルでディフューズマップとして使用するテクスチャを指定する 19027 */ 19028 extern int MV1SetMaterialDifMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19029 19030 /** 19031 * 指定のマテリアルでディフューズマップとして使用されているテクスチャのインデックスを取得する 19032 */ 19033 extern int MV1GetMaterialDifMapTexture(int MHandle, int MaterialIndex); 19034 19035 /** 19036 * 指定のマテリアルでサブディフューズマップとして使用するテクスチャを指定する 19037 */ 19038 extern int MV1SetMaterialSubDifMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19039 19040 /** 19041 * 指定のマテリアルでサブディフューズマップとして使用されているテクスチャのインデックスを取得する 19042 */ 19043 extern int MV1GetMaterialSubDifMapTexture(int MHandle, int MaterialIndex); 19044 19045 /** 19046 * 指定のマテリアルでスペキュラマップとして使用するテクスチャを指定する 19047 */ 19048 extern int MV1SetMaterialSpcMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19049 19050 /** 19051 * 指定のマテリアルでスペキュラマップとして使用されているテクスチャのインデックスを取得する 19052 */ 19053 extern int MV1GetMaterialSpcMapTexture(int MHandle, int MaterialIndex); 19054 19055 /** 19056 * 指定のマテリアルで法線マップとして使用されているテクスチャのインデックスを取得する 19057 */ 19058 extern int MV1GetMaterialNormalMapTexture(int MHandle, int MaterialIndex); 19059 19060 /** 19061 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを設定する 19062 */ 19063 extern int MV1SetMaterialDifGradTexture(int MHandle, int MaterialIndex, int TexIndex); 19064 19065 /** 19066 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを取得する 19067 */ 19068 extern int MV1GetMaterialDifGradTexture(int MHandle, int MaterialIndex); 19069 19070 /** 19071 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを設定する 19072 */ 19073 extern int MV1SetMaterialSpcGradTexture(int MHandle, int MaterialIndex, int TexIndex); 19074 19075 /** 19076 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを取得する 19077 */ 19078 extern int MV1GetMaterialSpcGradTexture(int MHandle, int MaterialIndex); 19079 19080 /** 19081 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを設定する 19082 */ 19083 extern int MV1SetMaterialSphereMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19084 19085 /** 19086 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを取得する 19087 */ 19088 extern int MV1GetMaterialSphereMapTexture(int MHandle, int MaterialIndex); 19089 19090 /** 19091 * 全てのマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19092 */ 19093 extern int MV1SetMaterialDifGradBlendTypeAll(int MHandle, int BlendType); 19094 19095 /** 19096 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19097 */ 19098 extern int MV1SetMaterialDifGradBlendType(int MHandle, int MaterialIndex, int BlendType); 19099 19100 /** 19101 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19102 */ 19103 extern int MV1GetMaterialDifGradBlendType(int MHandle, int MaterialIndex); 19104 19105 /** 19106 * 全てのマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19107 */ 19108 extern int MV1SetMaterialSpcGradBlendTypeAll(int MHandle, int BlendType); 19109 19110 /** 19111 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19112 */ 19113 extern int MV1SetMaterialSpcGradBlendType(int MHandle, int MaterialIndex, int BlendType); 19114 19115 /** 19116 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19117 */ 19118 extern int MV1GetMaterialSpcGradBlendType(int MHandle, int MaterialIndex); 19119 19120 /** 19121 * 全てのマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19122 */ 19123 extern int MV1SetMaterialSphereMapBlendTypeAll(int MHandle, int BlendType); 19124 19125 /** 19126 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19127 */ 19128 extern int MV1SetMaterialSphereMapBlendType(int MHandle, int MaterialIndex, int BlendType); 19129 19130 /** 19131 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など ) 19132 */ 19133 extern int MV1GetMaterialSphereMapBlendType(int MHandle, int MaterialIndex); 19134 19135 /** 19136 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する 19137 */ 19138 extern int MV1SetMaterialOutLineWidthAll(int MHandle, float Width); 19139 19140 /** 19141 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する 19142 */ 19143 extern int MV1SetMaterialOutLineWidth(int MHandle, int MaterialIndex, float Width); 19144 19145 /** 19146 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを取得する 19147 */ 19148 extern float MV1GetMaterialOutLineWidth(int MHandle, int MaterialIndex); 19149 19150 /** 19151 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する 19152 */ 19153 extern int MV1SetMaterialOutLineDotWidthAll(int MHandle, float Width); 19154 19155 /** 19156 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する 19157 */ 19158 extern int MV1SetMaterialOutLineDotWidth(int MHandle, int MaterialIndex, float Width); 19159 19160 /** 19161 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを取得する 19162 */ 19163 extern float MV1GetMaterialOutLineDotWidth(int MHandle, int MaterialIndex); 19164 19165 /** 19166 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する 19167 */ 19168 extern int MV1SetMaterialOutLineColorAll(int MHandle, .COLOR_F Color); 19169 19170 /** 19171 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する 19172 */ 19173 extern int MV1SetMaterialOutLineColor(int MHandle, int MaterialIndex, .COLOR_F Color); 19174 19175 /** 19176 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を取得する 19177 */ 19178 extern .COLOR_F MV1GetMaterialOutLineColor(int MHandle, int MaterialIndex); 19179 19180 /** 19181 * 全てのマテリアルの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 ) 19182 */ 19183 extern int MV1SetMaterialDrawBlendModeAll(int MHandle, int BlendMode); 19184 19185 /** 19186 * 指定のマテリアルの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 ) 19187 */ 19188 extern int MV1SetMaterialDrawBlendMode(int MHandle, int MaterialIndex, int BlendMode); 19189 19190 /** 19191 * 指定のマテリアルの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 ) 19192 */ 19193 extern int MV1GetMaterialDrawBlendMode(int MHandle, int MaterialIndex); 19194 19195 /** 19196 * 全てのマテリアルの描画ブレンドパラメータを設定する 19197 */ 19198 extern int MV1SetMaterialDrawBlendParamAll(int MHandle, int BlendParam); 19199 19200 /** 19201 * 指定のマテリアルの描画ブレンドパラメータを設定する 19202 */ 19203 extern int MV1SetMaterialDrawBlendParam(int MHandle, int MaterialIndex, int BlendParam); 19204 19205 /** 19206 * 指定のマテリアルの描画ブレンドパラメータを設定する 19207 */ 19208 extern int MV1GetMaterialDrawBlendParam(int MHandle, int MaterialIndex); 19209 19210 /** 19211 * 全てのマテリアルの描画時のアルファテストの設定を行う 19212 * 19213 * Params: 19214 * MHandle = ? 19215 * Enable = αテストを行うかどうか( TRUE:行う FALSE:行わない( デフォルト ) ) 19216 * Mode = テストモード( DX_CMP_GREATER等 ) 19217 * Param = 描画アルファ値との比較に使用する値( 0〜255 ) 19218 */ 19219 extern int MV1SetMaterialDrawAlphaTestAll(int MHandle, int Enable, int Mode, int Param); 19220 19221 /** 19222 * 指定のマテリアルの描画時のアルファテストの設定を行う 19223 * 19224 * Params: 19225 * MHandle = ? 19226 * MaterialIndex = ? 19227 * Enable = αテストを行うかどうか( TRUE:行う FALSE:行わない( デフォルト ) ) 19228 * Mode = テストモード( DX_CMP_GREATER等 ) 19229 * Param = 描画アルファ値との比較に使用する値( 0〜255 ) 19230 */ 19231 extern int MV1SetMaterialDrawAlphaTest(int MHandle, int MaterialIndex, int Enable, int Mode, int Param); 19232 19233 /** 19234 * 指定のマテリアルの描画時のアルファテストを行うかどうかを取得する 19235 * 19236 * Returns: TRUE:アルファテストを行う FALSE:アルファテストを行わない 19237 */ 19238 extern int MV1GetMaterialDrawAlphaTestEnable(int MHandle, int MaterialIndex); 19239 19240 /** 19241 * 指定のマテリアルの描画時のアルファテストのテストモードを取得する 19242 * 19243 * Returns: テストモード( DX_CMP_GREATER等 ) 19244 */ 19245 extern int MV1GetMaterialDrawAlphaTestMode(int MHandle, int MaterialIndex); 19246 19247 /** 19248 * 指定のマテリアルの描画時のアルファテストの描画アルファ地との比較に使用する値( 0〜255 )を取得する 19249 */ 19250 extern int MV1GetMaterialDrawAlphaTestParam(int MHandle, int MaterialIndex); 19251 19252 // テクスチャ関係 19253 19254 /** 19255 * テクスチャの数を取得 19256 */ 19257 extern int MV1GetTextureNum(int MHandle); 19258 19259 /** 19260 * テクスチャの名前を取得 19261 */ 19262 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetTextureName(int MHandle, int TexIndex); 19263 19264 /** 19265 * カラーテクスチャのファイルパスを変更する 19266 */ 19267 extern int MV1SetTextureColorFilePath(int MHandle, int TexIndex, const (dxlib_d.dxdatatype.TCHAR)* FilePath); 19268 19269 /** 19270 * カラーテクスチャのファイルパスを変更する 19271 */ 19272 extern int MV1SetTextureColorFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 19273 19274 /** 19275 * カラーテクスチャのファイルパスを取得 19276 */ 19277 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetTextureColorFilePath(int MHandle, int TexIndex); 19278 19279 /** 19280 * アルファテクスチャのファイルパスを変更する 19281 */ 19282 extern int MV1SetTextureAlphaFilePath(int MHandle, int TexIndex, const (dxlib_d.dxdatatype.TCHAR)* FilePath); 19283 19284 /** 19285 * アルファテクスチャのファイルパスを変更する 19286 */ 19287 extern int MV1SetTextureAlphaFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 19288 19289 /** 19290 * アルファテクスチャのファイルパスを取得 19291 */ 19292 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetTextureAlphaFilePath(int MHandle, int TexIndex); 19293 19294 /** 19295 * テクスチャで使用するグラフィックハンドルを変更する( GrHandle を -1 にすると解除 ) 19296 */ 19297 extern int MV1SetTextureGraphHandle(int MHandle, int TexIndex, int GrHandle, int SemiTransFlag); 19298 19299 /** 19300 * テクスチャのグラフィックハンドルを取得する 19301 */ 19302 extern int MV1GetTextureGraphHandle(int MHandle, int TexIndex); 19303 19304 /** 19305 * テクスチャのアドレスモードを設定する( AddUMode の値は DX_TEXADDRESS_WRAP 等 ) 19306 */ 19307 extern int MV1SetTextureAddressMode(int MHandle, int TexIndex, int AddrUMode, int AddrVMode); 19308 19309 /** 19310 * テクスチャのU値のアドレスモードを取得する 19311 * 19312 * Returns: DX_TEXADDRESS_WRAP 等 19313 */ 19314 extern int MV1GetTextureAddressModeU(int MHandle, int TexIndex); 19315 19316 /** 19317 * テクスチャのV値のアドレスモードを取得する 19318 * 19319 * Returns: DX_TEXADDRESS_WRAP 等 19320 */ 19321 extern int MV1GetTextureAddressModeV(int MHandle, int TexIndex); 19322 19323 /** 19324 * テクスチャの幅を取得する 19325 */ 19326 extern int MV1GetTextureWidth(int MHandle, int TexIndex); 19327 19328 /** 19329 * テクスチャの高さを取得する 19330 */ 19331 extern int MV1GetTextureHeight(int MHandle, int TexIndex); 19332 19333 /** 19334 * テクスチャに半透明要素があるかどうかを取得する 19335 * 19336 * Returns: TRUE:ある FALSE:ない 19337 */ 19338 extern int MV1GetTextureSemiTransState(int MHandle, int TexIndex); 19339 19340 /** 19341 * テクスチャで使用している画像がバンプマップかどうかを設定する 19342 */ 19343 extern int MV1SetTextureBumpImageFlag(int MHandle, int TexIndex, int Flag); 19344 19345 /** 19346 * テクスチャがバンプマップかどうかを取得する 19347 * 19348 * Returns: TRUE:バンプマップ FALSE:違う 19349 */ 19350 extern int MV1GetTextureBumpImageFlag(int MHandle, int TexIndex); 19351 19352 /** 19353 * バンプマップ画像の場合の隣のピクセルとの距離を設定する 19354 */ 19355 extern int MV1SetTextureBumpImageNextPixelLength(int MHandle, int TexIndex, float Length); 19356 19357 /** 19358 * バンプマップ画像の場合の隣のピクセルとの距離を取得する 19359 */ 19360 extern float MV1GetTextureBumpImageNextPixelLength(int MHandle, int TexIndex); 19361 19362 /** 19363 * テクスチャのフィルタリングモードを設定する 19364 */ 19365 extern int MV1SetTextureSampleFilterMode(int MHandle, int TexIndex, int FilterMode); 19366 19367 /** 19368 * テクスチャのフィルタリングモードを取得する 19369 * 19370 * Returns: DX_DRAWMODE_BILINEAR等 19371 */ 19372 extern int MV1GetTextureSampleFilterMode(int MHandle, int TexIndex); 19373 19374 /** 19375 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む 19376 * 19377 * Returns: -1:エラー 0以上:グラフィックハンドル 19378 */ 19379 extern int MV1LoadTexture(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 19380 19381 /** 19382 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む 19383 * 19384 * Returns: -1:エラー 0以上:グラフィックハンドル 19385 */ 19386 extern int MV1LoadTextureWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 19387 19388 // フレーム関係 19389 19390 /** 19391 * フレームの数を取得する 19392 */ 19393 extern int MV1GetFrameNum(int MHandle); 19394 19395 /** 19396 * フレームの名前からモデル中のフレームのフレームインデックスを取得する 19397 * 19398 * Returns: 無かった場合は-1 19399 */ 19400 extern int MV1SearchFrame(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* FrameName); 19401 19402 /** 19403 * フレームの名前からモデル中のフレームのフレームインデックスを取得する 19404 * 19405 * Returns: 無かった場合は-1 19406 */ 19407 extern int MV1SearchFrameWithStrLen(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* FrameName, size_t FrameNameLength); 19408 19409 /** 19410 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する( 名前指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する ) 19411 * 19412 * Returns: 無かった場合は-1 19413 */ 19414 extern int MV1SearchFrameChild(int MHandle, int FrameIndex = -1, const (dxlib_d.dxdatatype.TCHAR)* ChildName = null); 19415 19416 /** 19417 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する( 名前指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する ) 19418 * 19419 * Returns: 無かった場合は-1 19420 */ 19421 extern int MV1SearchFrameChildWithStrLen(int MHandle, int FrameIndex = -1, const (dxlib_d.dxdatatype.TCHAR)* ChildName = null, size_t ChildNameLength = 0); 19422 19423 /** 19424 * 指定のフレームの名前を取得する 19425 * 19426 * Returns: エラーの場合はNULL 19427 */ 19428 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetFrameName(int MHandle, int FrameIndex); 19429 19430 /** 19431 * 指定のフレームの名前を取得する 19432 * 19433 * Returns: -1:エラー -1以外:文字列のサイズ 19434 */ 19435 extern int MV1GetFrameName2(int MHandle, int FrameIndex, dxlib_d.dxdatatype.TCHAR* StrBuffer); 19436 19437 /** 19438 * 指定のフレームの親フレームのインデックスを得る 19439 * 19440 * Returns: 親がいない場合は -2 19441 */ 19442 extern int MV1GetFrameParent(int MHandle, int FrameIndex); 19443 19444 /** 19445 * 指定のフレームの子フレームの数を取得する( FrameIndex を -1 にすると親を持たないフレームの数が返ってくる ) 19446 */ 19447 extern int MV1GetFrameChildNum(int MHandle, int FrameIndex = -1); 19448 19449 /** 19450 * 指定のフレームの子フレームのフレームインデックスを取得する( 番号指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する ) 19451 * 19452 * Returns: エラーの場合は-1 19453 */ 19454 extern int MV1GetFrameChild(int MHandle, int FrameIndex = -1, int ChildIndex = 0); 19455 19456 /** 19457 * 指定のフレームの座標を取得する 19458 */ 19459 extern .VECTOR MV1GetFramePosition(int MHandle, int FrameIndex); 19460 19461 /** 19462 * 指定のフレームの座標を取得する 19463 */ 19464 extern .VECTOR_D MV1GetFramePositionD(int MHandle, int FrameIndex); 19465 19466 /** 19467 * 指定のフレームの初期状態での座標変換行列を取得する 19468 */ 19469 extern .MATRIX MV1GetFrameBaseLocalMatrix(int MHandle, int FrameIndex); 19470 19471 /** 19472 * 指定のフレームの初期状態での座標変換行列を取得する 19473 */ 19474 extern .MATRIX_D MV1GetFrameBaseLocalMatrixD(int MHandle, int FrameIndex); 19475 19476 /** 19477 * 指定のフレームの座標変換行列を取得する 19478 */ 19479 extern .MATRIX MV1GetFrameLocalMatrix(int MHandle, int FrameIndex); 19480 19481 /** 19482 * 指定のフレームの座標変換行列を取得する 19483 */ 19484 extern .MATRIX_D MV1GetFrameLocalMatrixD(int MHandle, int FrameIndex); 19485 19486 /** 19487 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る 19488 */ 19489 extern .MATRIX MV1GetFrameLocalWorldMatrix(int MHandle, int FrameIndex); 19490 19491 /** 19492 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る 19493 */ 19494 extern .MATRIX_D MV1GetFrameLocalWorldMatrixD(int MHandle, int FrameIndex); 19495 19496 /** 19497 * 指定のフレームの座標変換行列( ローカル行列 )を設定する 19498 */ 19499 extern int MV1SetFrameUserLocalMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19500 19501 /** 19502 * 指定のフレームの座標変換行列( ローカル行列 )を設定する 19503 */ 19504 extern int MV1SetFrameUserLocalMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix); 19505 19506 /** 19507 * 指定のフレームの座標変換行列( ローカル行列 )をデフォルトに戻す 19508 */ 19509 extern int MV1ResetFrameUserLocalMatrix(int MHandle, int FrameIndex); 19510 19511 /** 19512 * 指定のフレームの座標変換行列( ローカル座標からワールド座標に変換する行列 )を設定する 19513 */ 19514 extern int MV1SetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19515 19516 /** 19517 * 指定のフレームの座標変換行列( ローカル座標からワールド座標に変換する行列 )を設定する 19518 */ 19519 extern int MV1SetFrameUserLocalWorldMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix); 19520 19521 /** 19522 * 指定のフレームの座標変換行列( ローカル座標からワールド座標に変換する行列 )をデフォルトに戻す 19523 */ 19524 extern int MV1ResetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex); 19525 19526 /** 19527 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る 19528 */ 19529 extern .VECTOR MV1GetFrameMaxVertexLocalPosition(int MHandle, int FrameIndex); 19530 19531 /** 19532 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る 19533 */ 19534 extern .VECTOR_D MV1GetFrameMaxVertexLocalPositionD(int MHandle, int FrameIndex); 19535 19536 /** 19537 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る 19538 */ 19539 extern .VECTOR MV1GetFrameMinVertexLocalPosition(int MHandle, int FrameIndex); 19540 19541 /** 19542 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る 19543 */ 19544 extern .VECTOR_D MV1GetFrameMinVertexLocalPositionD(int MHandle, int FrameIndex); 19545 19546 /** 19547 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る 19548 */ 19549 extern .VECTOR MV1GetFrameAvgVertexLocalPosition(int MHandle, int FrameIndex); 19550 19551 /** 19552 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る 19553 */ 19554 extern .VECTOR_D MV1GetFrameAvgVertexLocalPositionD(int MHandle, int FrameIndex); 19555 19556 /** 19557 * 指定のフレームに含まれる頂点の数を取得する 19558 */ 19559 extern int MV1GetFrameVertexNum(int MHandle, int FrameIndex); 19560 19561 /** 19562 * 指定のフレームに含まれるポリゴンの数を取得する 19563 */ 19564 extern int MV1GetFrameTriangleNum(int MHandle, int FrameIndex); 19565 19566 /** 19567 * 指定のフレームが持つメッシュの数を取得する 19568 */ 19569 extern int MV1GetFrameMeshNum(int MHandle, int FrameIndex); 19570 19571 /** 19572 * 指定のフレームが持つメッシュのメッシュインデックスを取得する 19573 */ 19574 extern int MV1GetFrameMesh(int MHandle, int FrameIndex, int Index); 19575 19576 /** 19577 * 指定のフレームの表示、非表示状態を変更する 19578 * 19579 * Params: 19580 * MHandle = ? 19581 * FrameIndex = ? 19582 * VisibleFlag = TRUE:表示 FALSE:非表示 19583 */ 19584 extern int MV1SetFrameVisible(int MHandle, int FrameIndex, int VisibleFlag); 19585 19586 /** 19587 * 指定のフレームの表示、非表示状態を取得する 19588 * 19589 * Returns: TRUE:表示 FALSE:非表示 19590 */ 19591 extern int MV1GetFrameVisible(int MHandle, int FrameIndex); 19592 19593 /** 19594 * 指定のフレームのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f ) 19595 */ 19596 extern int MV1SetFrameDifColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19597 19598 /** 19599 * 指定のフレームのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f ) 19600 */ 19601 extern int MV1SetFrameSpcColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19602 19603 /** 19604 * 指定のフレームのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f ) 19605 */ 19606 extern int MV1SetFrameEmiColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19607 19608 /** 19609 * 指定のフレームのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f ) 19610 */ 19611 extern int MV1SetFrameAmbColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19612 19613 /** 19614 * 指定のフレームのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f ) 19615 */ 19616 extern .COLOR_F MV1GetFrameDifColorScale(int MHandle, int FrameIndex); 19617 19618 /** 19619 * 指定のフレームのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f ) 19620 */ 19621 extern .COLOR_F MV1GetFrameSpcColorScale(int MHandle, int FrameIndex); 19622 19623 /** 19624 * 指定のフレームのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f ) 19625 */ 19626 extern .COLOR_F MV1GetFrameEmiColorScale(int MHandle, int FrameIndex); 19627 19628 /** 19629 * 指定のフレームのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f ) 19630 */ 19631 extern .COLOR_F MV1GetFrameAmbColorScale(int MHandle, int FrameIndex); 19632 19633 /** 19634 * 指定のフレームに半透明要素があるかどうかを取得する 19635 * 19636 * Returns: TRUE:ある FALSE:ない 19637 */ 19638 extern int MV1GetFrameSemiTransState(int MHandle, int FrameIndex); 19639 19640 /** 19641 * 指定のフレームの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f ) 19642 */ 19643 extern int MV1SetFrameOpacityRate(int MHandle, int FrameIndex, float Rate); 19644 19645 /** 19646 * 指定のフレームの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f ) 19647 */ 19648 extern float MV1GetFrameOpacityRate(int MHandle, int FrameIndex); 19649 19650 /** 19651 * 指定のフレームの初期表示状態を設定する 19652 * 19653 * Params: 19654 * MHandle = ? 19655 * FrameIndex = ? 19656 * VisibleFlag = TRUE:表示 FALSE:非表示 19657 */ 19658 extern int MV1SetFrameBaseVisible(int MHandle, int FrameIndex, int VisibleFlag); 19659 19660 /** 19661 * 指定のフレームの初期表示状態を取得する 19662 * 19663 * Returns: TRUE:表示 FALSE:非表示 19664 */ 19665 extern int MV1GetFrameBaseVisible(int MHandle, int FrameIndex); 19666 19667 /** 19668 * 指定のフレームのテクスチャ座標変換パラメータを設定する 19669 */ 19670 extern int MV1SetFrameTextureAddressTransform(int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate); 19671 19672 /** 19673 * 指定のフレームのテクスチャ座標変換行列をセットする 19674 */ 19675 extern int MV1SetFrameTextureAddressTransformMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19676 19677 /** 19678 * 指定のフレームのテクスチャ座標変換パラメータをリセットする 19679 */ 19680 extern int MV1ResetFrameTextureAddressTransform(int MHandle, int FrameIndex); 19681 19682 // メッシュ関係 19683 19684 /** 19685 * モデルに含まれるメッシュの数を取得する 19686 */ 19687 extern int MV1GetMeshNum(int MHandle); 19688 19689 /** 19690 * 指定メッシュが使用しているマテリアルのインデックスを取得する 19691 */ 19692 extern int MV1GetMeshMaterial(int MHandle, int MeshIndex); 19693 19694 /** 19695 * 指定メッシュに含まれる頂点の数を取得する 19696 */ 19697 extern int MV1GetMeshVertexNum(int MHandle, int MeshIndex); 19698 19699 /** 19700 * 指定メッシュに含まれる三角形ポリゴンの数を取得する 19701 */ 19702 extern int MV1GetMeshTriangleNum(int MHandle, int MeshIndex); 19703 19704 /** 19705 * 指定メッシュの表示、非表示状態を変更する 19706 * 19707 * Params: 19708 * MHandle = ? 19709 * MeshIndex = ? 19710 * VisibleFlag = TRUE:表示 FALSE:非表示 19711 */ 19712 extern int MV1SetMeshVisible(int MHandle, int MeshIndex, int VisibleFlag); 19713 19714 /** 19715 * 指定メッシュの表示、非表示状態を取得する 19716 * 19717 * Returns: TRUE:表示 FALSE:非表示 19718 */ 19719 extern int MV1GetMeshVisible(int MHandle, int MeshIndex); 19720 19721 /** 19722 * 指定のメッシュのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f ) 19723 */ 19724 extern int MV1SetMeshDifColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19725 19726 /** 19727 * 指定のメッシュのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f ) 19728 */ 19729 extern int MV1SetMeshSpcColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19730 19731 /** 19732 * 指定のメッシュのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f ) 19733 */ 19734 extern int MV1SetMeshEmiColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19735 19736 /** 19737 * 指定のメッシュのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f ) 19738 */ 19739 extern int MV1SetMeshAmbColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19740 19741 /** 19742 * 指定のメッシュのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f ) 19743 */ 19744 extern .COLOR_F MV1GetMeshDifColorScale(int MHandle, int MeshIndex); 19745 19746 /** 19747 * 指定のメッシュのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f ) 19748 */ 19749 extern .COLOR_F MV1GetMeshSpcColorScale(int MHandle, int MeshIndex); 19750 19751 /** 19752 * 指定のメッシュのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f ) 19753 */ 19754 extern .COLOR_F MV1GetMeshEmiColorScale(int MHandle, int MeshIndex); 19755 19756 /** 19757 * 指定のメッシュのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f ) 19758 */ 19759 extern .COLOR_F MV1GetMeshAmbColorScale(int MHandle, int MeshIndex); 19760 19761 /** 19762 * 指定のメッシュの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f ) 19763 */ 19764 extern int MV1SetMeshOpacityRate(int MHandle, int MeshIndex, float Rate); 19765 19766 /** 19767 * 指定のメッシュの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f ) 19768 */ 19769 extern float MV1GetMeshOpacityRate(int MHandle, int MeshIndex); 19770 19771 /** 19772 * 指定のメッシュの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 ) 19773 */ 19774 extern int MV1SetMeshDrawBlendMode(int MHandle, int MeshIndex, int BlendMode); 19775 19776 /** 19777 * 指定のメッシュの描画ブレンドパラメータを設定する 19778 */ 19779 extern int MV1SetMeshDrawBlendParam(int MHandle, int MeshIndex, int BlendParam); 19780 19781 /** 19782 * 指定のメッシュの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 ) 19783 */ 19784 extern int MV1GetMeshDrawBlendMode(int MHandle, int MeshIndex); 19785 19786 /** 19787 * 指定のメッシュの描画ブレンドパラメータを設定する 19788 */ 19789 extern int MV1GetMeshDrawBlendParam(int MHandle, int MeshIndex); 19790 19791 /** 19792 * 指定のメッシュの初期表示状態を設定する 19793 * 19794 * Params: 19795 * MHandle = ? 19796 * MeshIndex = ? 19797 * VisibleFlag = TRUE:表示 FALSE:非表示 19798 */ 19799 extern int MV1SetMeshBaseVisible(int MHandle, int MeshIndex, int VisibleFlag); 19800 19801 /** 19802 * 指定のメッシュの初期表示状態を取得する 19803 * 19804 * Returns: TRUE:表示 FALSE:非表示 19805 */ 19806 extern int MV1GetMeshBaseVisible(int MHandle, int MeshIndex); 19807 19808 /** 19809 * 指定のメッシュのバックカリングを行うかどうかを設定する( DX_CULLING_LEFT 等 ) 19810 */ 19811 extern int MV1SetMeshBackCulling(int MHandle, int MeshIndex, int CullingFlag); 19812 19813 /** 19814 * 指定のメッシュのバックカリングを行うかどうかを取得する( DX_CULLING_LEFT 等 ) 19815 */ 19816 extern int MV1GetMeshBackCulling(int MHandle, int MeshIndex); 19817 19818 /** 19819 * 指定のメッシュに含まれるポリゴンの最大ローカル座標を取得する 19820 */ 19821 extern .VECTOR MV1GetMeshMaxPosition(int MHandle, int MeshIndex); 19822 19823 /** 19824 * 指定のメッシュに含まれるポリゴンの最小ローカル座標を取得する 19825 */ 19826 extern .VECTOR MV1GetMeshMinPosition(int MHandle, int MeshIndex); 19827 19828 /** 19829 * 指定のメッシュに含まれるトライアングルリストの数を取得する 19830 */ 19831 extern int MV1GetMeshTListNum(int MHandle, int MeshIndex); 19832 19833 /** 19834 * 指定のメッシュに含まれるトライアングルリストのインデックスを取得する 19835 */ 19836 extern int MV1GetMeshTList(int MHandle, int MeshIndex, int Index); 19837 19838 /** 19839 * 指定のメッシュに半透明要素があるかどうかを取得する 19840 * 19841 * Returns: TRUE:ある FALSE:ない 19842 */ 19843 extern int MV1GetMeshSemiTransState(int MHandle, int MeshIndex); 19844 19845 /** 19846 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する 19847 * 19848 * Params: 19849 * MHandle = ? 19850 * MeshIndex = ? 19851 * UseFlag = TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 19852 */ 19853 extern int MV1SetMeshUseVertDifColor(int MHandle, int MeshIndex, int UseFlag); 19854 19855 /** 19856 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する 19857 * 19858 * Params: 19859 * MHandle = ? 19860 * MeshIndex = ? 19861 * UseFlag = TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 19862 */ 19863 extern int MV1SetMeshUseVertSpcColor(int MHandle, int MeshIndex, int UseFlag); 19864 19865 /** 19866 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかの設定を取得する 19867 * 19868 * Returns: TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 19869 */ 19870 extern int MV1GetMeshUseVertDifColor(int MHandle, int MeshIndex); 19871 19872 /** 19873 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかの設定を取得する 19874 * 19875 * Returns: TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する 19876 */ 19877 extern int MV1GetMeshUseVertSpcColor(int MHandle, int MeshIndex); 19878 19879 /** 19880 * 指定のメッシュがシェイプメッシュかどうかを取得する 19881 * 19882 * Returns: TRUE:シェイプメッシュ FALSE:通常メッシュ 19883 */ 19884 extern int MV1GetMeshShapeFlag(int MHandle, int MeshIndex); 19885 19886 // シェイプ関係 19887 19888 /** 19889 * モデルに含まれるシェイプの数を取得する 19890 */ 19891 extern int MV1GetShapeNum(int MHandle); 19892 19893 /** 19894 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する 19895 * 19896 * Returns: 無かった場合は-1 19897 */ 19898 extern int MV1SearchShape(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* ShapeName); 19899 19900 /** 19901 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する 19902 * 19903 * Returns: 無かった場合は-1 19904 */ 19905 extern int MV1SearchShapeWithStrLen(int MHandle, const (dxlib_d.dxdatatype.TCHAR)* ShapeName, size_t ShapeNameLength); 19906 19907 /** 19908 * 指定シェイプの名前を取得する 19909 */ 19910 extern const (dxlib_d.dxdatatype.TCHAR)* MV1GetShapeName(int MHandle, int ShapeIndex); 19911 19912 /** 19913 * 指定シェイプが対象としているメッシュの数を取得する 19914 */ 19915 extern int MV1GetShapeTargetMeshNum(int MHandle, int ShapeIndex); 19916 19917 /** 19918 * 指定シェイプが対象としているメッシュのメッシュインデックスを取得する 19919 */ 19920 extern int MV1GetShapeTargetMesh(int MHandle, int ShapeIndex, int Index); 19921 19922 /** 19923 * 指定シェイプの有効率を設定する 19924 * 19925 * Params: 19926 * MHandle = ? 19927 * ShapeIndex = ? 19928 * Rate = 0.0f:0% 〜 1.0f:100% 19929 * Type = ? 19930 */ 19931 extern int MV1SetShapeRate(int MHandle, int ShapeIndex, float Rate, int Type = DX_MV1_SHAPERATE_ADD); 19932 19933 /** 19934 * 指定シェイプの有効率を取得する 19935 * 19936 * Returns: 0.0f:0% 〜 1.0f:100% 19937 */ 19938 extern float MV1GetShapeRate(int MHandle, int ShapeIndex); 19939 19940 /** 19941 * 指定シェイプの有効率を取得する( MV1SetShapeRate で指定した値がそのまま戻り値となる MV1GetShapeRate と異なりアニメーションのシェイプ情報なども加味した値が戻り値となります ) 19942 * 19943 * Returns: 0.0f:0% 〜 1.0f:100% 19944 */ 19945 extern float MV1GetShapeApplyRate(int MHandle, int ShapeIndex); 19946 19947 // トライアングルリスト関係 19948 19949 /** 19950 * モデルに含まれるトライアングルリストの数を取得する 19951 */ 19952 extern int MV1GetTriangleListNum(int MHandle); 19953 19954 /** 19955 * 指定のトライアングルリストの頂点データタイプを取得する( DX_MV1_VERTEX_TYPE_1FRAME 等 ) 19956 */ 19957 extern int MV1GetTriangleListVertexType(int MHandle, int TListIndex); 19958 19959 /** 19960 * 指定のトライアングルリストに含まれるポリゴンの数を取得する 19961 */ 19962 extern int MV1GetTriangleListPolygonNum(int MHandle, int TListIndex); 19963 19964 /** 19965 * 指定のトライアングルリストに含まれる頂点データの数を取得する 19966 */ 19967 extern int MV1GetTriangleListVertexNum(int MHandle, int TListIndex); 19968 19969 /** 19970 * 指定のトライアングルリストが使用する座標変換行列の数を取得する 19971 */ 19972 extern int MV1GetTriangleListLocalWorldMatrixNum(int MHandle, int TListIndex); 19973 19974 /** 19975 * 指定のトライアングルリストが使用する座標変換行列( ローカル→ワールド )を取得する 19976 */ 19977 extern .MATRIX MV1GetTriangleListLocalWorldMatrix(int MHandle, int TListIndex, int LWMatrixIndex); 19978 19979 /** 19980 * 指定のトライアングルリストの指定のポリゴンが使用している頂点の座標を取得する 19981 * 19982 * Returns: エラー:-1 0以上:ポリゴンが使用している頂点の数 19983 */ 19984 extern int MV1GetTriangleListPolygonVertexPosition(int MHandle, int TListIndex, int PolygonIndex, .VECTOR* VertexPositionArray = null, float* MatrixWeightArray = null); 19985 19986 /** 19987 * 指定のトライアングルリストが使用しているマテリアルのインデックスを取得する 19988 */ 19989 extern int MV1GetTriangleListUseMaterial(int MHandle, int TListIndex); 19990 19991 // コリジョン関係 19992 19993 /** 19994 * コリジョン情報を構築する 19995 */ 19996 extern int MV1SetupCollInfo(int MHandle, int FrameIndex = -1, int XDivNum = 32, int YDivNum = 8, int ZDivNum = 32, int MeshIndex = -1); 19997 19998 /** 19999 * コリジョン情報の後始末 20000 */ 20001 extern int MV1TerminateCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1); 20002 20003 /** 20004 * コリジョン情報を更新する 20005 */ 20006 extern int MV1RefreshCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1); 20007 20008 /** 20009 * 線とモデルの当たり判定 20010 */ 20011 extern .MV1_COLL_RESULT_POLY MV1CollCheck_Line(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1); 20012 20013 /** 20014 * 線とモデルの当たり判定( 戻り値が MV1_COLL_RESULT_POLY_DIM ) 20015 */ 20016 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_LineDim(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1); 20017 20018 /** 20019 * 球とモデルの当たり判定 20020 */ 20021 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Sphere(int MHandle, int FrameIndex, .VECTOR CenterPos, float r, int MeshIndex = -1); 20022 20023 /** 20024 * カプセルとモデルの当たり判定 20025 */ 20026 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Capsule(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, float r, int MeshIndex = -1); 20027 20028 /** 20029 * 三角形とモデルの当たり判定 20030 */ 20031 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Triangle(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, int MeshIndex = -1); 20032 20033 /** 20034 * コリジョン結果ポリゴン配列から指定番号のポリゴン情報を取得する 20035 */ 20036 extern .MV1_COLL_RESULT_POLY MV1CollCheck_GetResultPoly(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim, int PolyNo); 20037 20038 /** 20039 * コリジョン結果ポリゴン配列の後始末をする 20040 */ 20041 extern int MV1CollResultPolyDimTerminate(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim); 20042 20043 // 参照用メッシュ関係 20044 20045 /** 20046 * 参照用メッシュのセットアップ 20047 */ 20048 extern int MV1SetupReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.dxdatatype.FALSE, int MeshIndex = -1); 20049 20050 /** 20051 * 参照用メッシュの後始末 20052 */ 20053 extern int MV1TerminateReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.dxdatatype.FALSE, int MeshIndex = -1); 20054 20055 /** 20056 * 参照用メッシュの更新 20057 */ 20058 extern int MV1RefreshReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.dxdatatype.FALSE, int MeshIndex = -1); 20059 20060 /** 20061 * 参照用メッシュを取得する 20062 */ 20063 extern .MV1_REF_POLYGONLIST MV1GetReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.dxdatatype.FALSE, int MeshIndex = -1); 20064 } 20065 20066 // DxLive2DCubism4.cpp 関数 プロトタイプ宣言 20067 20068 version (DX_NON_LIVE2D_CUBISM4) { 20069 } else { 20070 /** 20071 * Live2DCubismCore.dll のファイルパスを設定する 20072 */ 20073 extern int Live2D_SetCubism4CoreDLLPath(const (dxlib_d.dxdatatype.TCHAR)* CoreDLLFilePath); 20074 20075 /** 20076 * Live2DCubismCore.dll のファイルパスを設定する 20077 */ 20078 extern int Live2D_SetCubism4CoreDLLPathWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength); 20079 20080 /** 20081 * Live2DCubismCore.dll のファイルパスを設定する 20082 */ 20083 extern int Live2D_SetCubism3CoreDLLPath(const (dxlib_d.dxdatatype.TCHAR)* CoreDLLFilePath); 20084 20085 /** 20086 * Live2DCubismCore.dll のファイルパスを設定する 20087 */ 20088 extern int Live2D_SetCubism3CoreDLLPathWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength); 20089 20090 /** 20091 * Live2D の描画処理を開始する 20092 */ 20093 extern int Live2D_RenderBegin(); 20094 20095 /** 20096 * Live2D の描画処理を終了する 20097 */ 20098 extern int Live2D_RenderEnd(); 20099 20100 /** 20101 * Live2D のモデルファイルを読み込む 20102 * 20103 * Returns: 0以上:Live2Dモデルハンドル マイナス値:エラー発生 20104 */ 20105 extern int Live2D_LoadModel(const (dxlib_d.dxdatatype.TCHAR)* FilePath); 20106 20107 /** 20108 * Live2D のモデルファイルを読み込む 20109 * 20110 * Returns: 0以上:Live2Dモデルハンドル マイナス値:エラー発生 20111 */ 20112 extern int Live2D_LoadModelWithStrLen(const (dxlib_d.dxdatatype.TCHAR)* FilePath, size_t FilePathLength); 20113 20114 /** 20115 * Live2D のモデルを削除する 20116 */ 20117 extern int Live2D_DeleteModel(int Live2DModelHandle); 20118 20119 /** 20120 * すべての Live2D のモデルを削除する 20121 */ 20122 extern int Live2D_InitModel(); 20123 20124 /** 20125 * Live2D のモデルの状態を更新する 20126 */ 20127 extern int Live2D_Model_Update(int Live2DModelHandle, float DeltaTimeSeconds); 20128 20129 /** 20130 * Live2D のモデルの位置を設定する 20131 */ 20132 extern int Live2D_Model_SetTranslate(int Live2DModelHandle, float x, float y); 20133 20134 /** 20135 * Live2D のモデルの拡大率を設定する 20136 */ 20137 extern int Live2D_Model_SetExtendRate(int Live2DModelHandle, float ExRateX, float ExRateY); 20138 20139 /** 20140 * Live2D のモデルの回転を設定する 20141 */ 20142 extern int Live2D_Model_SetRotate(int Live2DModelHandle, float RotAngle); 20143 20144 /** 20145 * Live2D のモデルを描画する 20146 */ 20147 extern int Live2D_Model_Draw(int Live2DModelHandle); 20148 20149 /** 20150 * Live2D のモデルの指定のモーションを再生する 20151 */ 20152 extern int Live2D_Model_StartMotion(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* group, int no); 20153 20154 /** 20155 * Live2D のモデルの指定のモーションを再生する 20156 */ 20157 extern int Live2D_Model_StartMotionWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* group, size_t groupLength, int no); 20158 20159 /** 20160 * Live2D のモデルのモーション再生が終了しているかを取得する 20161 * 20162 * Returns: TRUE:再生が終了している FALSE:再生中 20163 */ 20164 extern int Live2D_Model_IsMotionFinished(int Live2DModelHandle); 20165 20166 /** 20167 * Live2D のモデルの指定の表情モーションを設定する 20168 */ 20169 extern int Live2D_Model_SetExpression(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* expressionID); 20170 20171 /** 20172 * Live2D のモデルの指定の表情モーションを設定する 20173 */ 20174 extern int Live2D_Model_SetExpressionWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* expressionID, size_t expressionIDLength); 20175 20176 /** 20177 * 指定の座標が Live2D のモデルの指定の当たり判定の矩形範囲内か判定する 20178 * 20179 * Returns: TRUE:矩形範囲内 FALSE:矩形範囲外 20180 */ 20181 extern int Live2D_Model_HitTest(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* hitAreaName, float x, float y); 20182 20183 /** 20184 * 指定の座標が Live2D のモデルの指定の当たり判定の矩形範囲内か判定する 20185 * 20186 * Returns: TRUE:矩形範囲内 FALSE:矩形範囲外 20187 */ 20188 extern int Live2D_Model_HitTestWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* hitAreaName, size_t hitAreaNameLength, float x, float y); 20189 20190 /** 20191 * Live2D のモデルに設定されているパラメータの数を取得する 20192 */ 20193 extern int Live2D_Model_GetParameterCount(int Live2DModelHandle); 20194 20195 /** 20196 * Live2D のモデルに設定されているパラメータのIDを取得する 20197 */ 20198 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetParameterId(int Live2DModelHandle, int index); 20199 20200 /** 20201 * Live2D のモデルに設定されているパラメータを取得する 20202 */ 20203 extern float Live2D_Model_GetParameterValue(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* parameterId); 20204 20205 /** 20206 * Live2D のモデルに設定されているパラメータを取得する 20207 */ 20208 extern float Live2D_Model_GetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* parameterId, size_t parameterIdLength); 20209 20210 /** 20211 * Live2D のモデルに設定されているパラメータを設定する 20212 */ 20213 extern int Live2D_Model_SetParameterValue(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* parameterId, float value); 20214 20215 /** 20216 * Live2D のモデルに設定されているパラメータを設定する 20217 */ 20218 extern int Live2D_Model_SetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* parameterId, size_t parameterIdLength, float value); 20219 20220 /** 20221 * Live2D のモデルに設定された当たり判定の数を取得する 20222 */ 20223 extern int Live2D_Model_GetHitAreasCount(int Live2DModelHandle); 20224 20225 /** 20226 * Live2D のモデルの当たり判定に設定された名前を取得する 20227 */ 20228 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetHitAreaName(int Live2DModelHandle, int index); 20229 20230 /** 20231 * Live2D のモデルの物理演算設定ファイルの名前を取得する 20232 */ 20233 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetPhysicsFileName(int Live2DModelHandle); 20234 20235 /** 20236 * Live2D のモデルのパーツ切り替え設定ファイルの名前を取得する 20237 */ 20238 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetPoseFileName(int Live2DModelHandle); 20239 20240 /** 20241 * Live2D のモデルの表情設定ファイルの数を取得する 20242 */ 20243 extern int Live2D_Model_GetExpressionCount(int Live2DModelHandle); 20244 20245 /** 20246 * Live2D のモデルの表情設定ファイルを識別するIDを取得する 20247 */ 20248 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetExpressionName(int Live2DModelHandle, int index); 20249 20250 /** 20251 * Live2D のモデルの表情設定ファイルの名前を取得する 20252 */ 20253 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetExpressionFileName(int Live2DModelHandle, int index); 20254 20255 /** 20256 * Live2D のモデルのモーショングループの数を取得する 20257 */ 20258 extern int Live2D_Model_GetMotionGroupCount(int Live2DModelHandle); 20259 20260 /** 20261 * Live2D のモデルのモーショングループの名前を取得する 20262 */ 20263 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetMotionGroupName(int Live2DModelHandle, int index); 20264 20265 /** 20266 * Live2D のモデルのモーショングループに含まれるモーションの数を取得する 20267 */ 20268 extern int Live2D_Model_GetMotionCount(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName); 20269 20270 /** 20271 * Live2D のモデルのモーショングループに含まれるモーションの数を取得する 20272 */ 20273 extern int Live2D_Model_GetMotionCountWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, size_t groupNameLength); 20274 20275 /** 20276 * Live2D のモデルのグループ名とインデックス値からモーションファイルの名前を取得する 20277 */ 20278 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetMotionFileName(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, int index); 20279 20280 /** 20281 * Live2D のモデルのグループ名とインデックス値からモーションファイルの名前を取得する 20282 */ 20283 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetMotionFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, size_t groupNameLength, int index); 20284 20285 /** 20286 * Live2D のモデルのモーションに対応するサウンドファイルの名前を取得する 20287 */ 20288 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetMotionSoundFileName(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, int index); 20289 20290 /** 20291 * Live2D のモデルのモーションに対応するサウンドファイルの名前を取得する 20292 */ 20293 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetMotionSoundFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, size_t groupNameLength, int index); 20294 20295 /** 20296 * Live2D のモデルのモーション開始時のフェードイン処理時間を取得する 20297 */ 20298 extern float Live2D_Model_GetMotionFadeInTimeValue(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, int index); 20299 20300 /** 20301 * Live2D のモデルのモーション開始時のフェードイン処理時間を取得する 20302 */ 20303 extern float Live2D_Model_GetMotionFadeInTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, size_t groupNameLength, int index); 20304 20305 /** 20306 * Live2D のモデルのモーション終了時のフェードアウト処理時間を取得する 20307 */ 20308 extern float Live2D_Model_GetMotionFadeOutTimeValue(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, int index); 20309 20310 /** 20311 * Live2D のモデルのモーション終了時のフェードアウト処理時間を取得する 20312 */ 20313 extern float Live2D_Model_GetMotionFadeOutTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.dxdatatype.TCHAR)* groupName, size_t groupNameLength, int index); 20314 20315 /** 20316 * Live2D のモデルのユーザデータのファイル名を取得する 20317 */ 20318 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetUserDataFile(int Live2DModelHandle); 20319 20320 /** 20321 * Live2D のモデルの目パチに関連付けられたパラメータの数を取得する 20322 */ 20323 extern int Live2D_Model_GetEyeBlinkParameterCount(int Live2DModelHandle); 20324 20325 /** 20326 * Live2D のモデルの目パチに関連付けられたパラメータのIDを取得する 20327 */ 20328 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetEyeBlinkParameterId(int Live2DModelHandle, int index); 20329 20330 /** 20331 * Live2D のモデルのリップシンクに関連付けられたパラメータの数を取得する 20332 */ 20333 extern int Live2D_Model_GetLipSyncParameterCount(int Live2DModelHandle); 20334 20335 /** 20336 * Live2D のモデルのリップシンクに関連付けられたパラメータのIDを取得する 20337 */ 20338 extern const (dxlib_d.dxdatatype.TCHAR)* Live2D_Model_GetLipSyncParameterId(int Live2DModelHandle, int index); 20339 } 20340 } 20341 20342 // ネームスペース DxLib を使用する ------------------------------------------------------ 20343 version (DX_NON_NAMESPACE) { 20344 } else { 20345 version (DX_NON_USING_NAMESPACE_DXLIB) { 20346 } else { 20347 /+ 20348 using namespace DxLib; 20349 +/ 20350 } 20351 } 20352 20353 // DXライブラリ内部でのみ使用するヘッダファイルのインクルード ------------------------- 20354 20355 version (DX_MAKE) { 20356 // #include "DxStatic.h" 20357 }