1 // ------------------------------------------------------------------------------- 2 // 3 // DXライブラリ ヘッダファイル 4 // 5 // Ver 3.22c 6 // 7 // ------------------------------------------------------------------------------- 8 module dxlib_d.DxLib; 9 10 11 private static import core.stdc.config; 12 private static import core.stdc.stdarg; 13 private static import core.stdc.stddef; 14 public import dxlib_d.DxCompileConfig; 15 public import dxlib_d.DxDataType; 16 17 nothrow @nogc: 18 19 // DXライブラリのバージョン 20 21 /** 22 * DXライブラリのバージョン 23 */ 24 enum DXLIB_VERSION = 0x322C; 25 26 version (Unicode) { 27 enum DXLIB_VERSION_STR_T = "3.22c"w; 28 } else { 29 enum DXLIB_VERSION_STR_T = "3.22c"; 30 } 31 32 enum DXLIB_VERSION_STR_W = "3.22c"w; 33 34 // 設定 ----------------------------------------------------------------------- 35 36 version (DX_MAKE) { 37 } else { 38 // 描画関連の関数を一切使用されない場合は以下のコメントを外して下さい 39 //version = DX_NOTUSE_DRAWFUNCTION; 40 } 41 42 // 定義--------------------------------------------------------------------------- 43 44 /** 45 * π 46 */ 47 enum 48 { 49 /** 50 * π 51 */ 52 DX_PI = 3.1415926535897932384626433832795, 53 54 /** 55 * π 56 */ 57 DX_PI_F = 3.1415926535897932384626433832795f, 58 59 /** 60 * π 61 */ 62 DX_TWO_PI = 3.1415926535897932384626433832795 * 2.0, 63 64 /** 65 * π 66 */ 67 DX_TWO_PI_F = 3.1415926535897932384626433832795f * 2.0f, 68 } 69 70 /** 71 * ? 72 */ 73 alias DX_CHAR = char; 74 75 alias wchar_t = core.stdc.stddef.wchar_t; 76 77 /** 78 * 最大数 79 */ 80 enum 81 { 82 /** 83 * 同時に持てるグラフィックハンドルの最大数(ハンドルエラーチェックのマスクに使用しているので0x040000以下の2のべき乗にして下さい) 84 */ 85 MAX_IMAGE_NUM = 0x040000, 86 87 /** 88 * 画像分割の最大数 89 */ 90 MAX_IMAGE_DIVNUM = 64, 91 92 /** 93 * シャドウマップデータの最大数 94 */ 95 MAX_SHADOWMAP_NUM = 8192, 96 97 /** 98 * 同時に持てるソフトイメージハンドルの最大数(ハンドルエラーチェックのマスクに使用しているので0x040000以下の2のべき乗にして下さい) 99 */ 100 MAX_SOFTIMAGE_NUM = 8192, 101 102 /** 103 * 同時に持てるサウンドハンドルの最大数 104 */ 105 MAX_SOUND_NUM = 32768, 106 107 /** 108 * 同時に持てるソフトウエアサウンドハンドルの最大数 109 */ 110 MAX_SOFTSOUND_NUM = 8192, 111 112 /** 113 * 同時に持てるミュージックハンドルの最大数 114 */ 115 MAX_MUSIC_NUM = 256, 116 117 /** 118 * 同時に持てるムービーハンドルの最大数 119 */ 120 MAX_MOVIE_NUM = 100, 121 122 /** 123 * 同時に持てるマスクハンドルの最大数 124 */ 125 MAX_MASK_NUM = 32768, 126 127 /** 128 * 同時に持てるフォントハンドルの最大数 129 */ 130 MAX_FONT_NUM = 40, 131 132 /** 133 * 同時に持てる文字列入力ハンドルの最大数 134 */ 135 MAX_INPUT_NUM = 256, 136 137 /** 138 * 同時に持てる通信ハンドルの最大数 139 */ 140 MAX_SOCKET_NUM = 8192, 141 142 /** 143 * 同時に持てるライトハンドルの最大数 144 */ 145 MAX_LIGHT_NUM = 4096, 146 147 /** 148 * 同時に持てるシェーダーハンドルの最大数 149 */ 150 MAX_SHADER_NUM = 4096, 151 152 /** 153 * 同時に持てる定数バッファハンドルの最大数 154 */ 155 MAX_CONSTANT_BUFFER_NUM = 32768, 156 157 /** 158 * 同時に持てる3Dモデル基本データハンドルの最大数 159 */ 160 MAX_MODEL_BASE_NUM = 32768, 161 162 /** 163 * 同時に持てる3Dモデルデータハンドルの最大数 164 */ 165 MAX_MODEL_NUM = 32768, 166 167 /** 168 * 同時に持てる頂点バッファハンドルの最大数 169 */ 170 MAX_VERTEX_BUFFER_NUM = 16384, 171 172 /** 173 * 同時に持てるインデックスバッファの最大数 174 */ 175 MAX_INDEX_BUFFER_NUM = 16384, 176 177 /** 178 * 同時に持てるファイルハンドルの最大数 179 */ 180 MAX_FILE_NUM = 32768, 181 182 /** 183 * 同時に持てるLive2D Cubism 4 Modelハンドルの最大数 184 */ 185 MAX_LIVE2D_CUBISM4_MODEL_NUM = 32768, 186 187 /** 188 * ジョイパッドの最大数 189 */ 190 MAX_JOYPAD_NUM = 16, 191 192 /** 193 * ユーザーが登録できるグラフィックロード関数の最大数 194 */ 195 MAX_USERIMAGEREAD_FUNCNUM = 10, 196 } 197 198 /** 199 * デフォルト値 200 */ 201 enum 202 { 203 /** 204 * デフォルトの画面の幅 205 */ 206 DEFAULT_SCREEN_SIZE_X = 640, 207 208 /** 209 * デフォルトの画面の高さ 210 */ 211 DEFAULT_SCREEN_SIZE_Y = 480, 212 213 /** 214 * デフォルトの色ビット深度 215 */ 216 DEFAULT_COLOR_BITDEPTH = 16, 217 218 /** 219 * デフォルトのZバッファビット深度 220 */ 221 DEFAULT_ZBUFFER_BITDEPTH = 16, 222 223 /** 224 * デフォルトの視野角 225 */ 226 DEFAULT_FOV = 60.0F * 3.1415926535897932384626433832795F / 180.0F, 227 228 /** 229 * tan(FOV * 0.5) 230 */ 231 DEFAULT_TAN_FOV_HALF = 0.57735026918962576450914878050196F, 232 233 /** 234 * NEARクリップ面 235 */ 236 DEFAULT_NEAR = 0.0F, 237 238 /** 239 * FARクリップ面 240 */ 241 DEFAULT_FAR = 20000.0F, 242 243 /** 244 * デフォルトフォントを示す値 245 */ 246 DX_DEFAULT_FONT_HANDLE = -2, 247 248 /** 249 * フォントのデフォルトのサイズ 250 */ 251 DEFAULT_FONT_SIZE = 16, 252 253 /** 254 * フォントのデフォルトの太さ 255 */ 256 DEFAULT_FONT_THINCK = 6, 257 258 /** 259 * フォントのデフォルトの形態 260 */ 261 DEFAULT_FONT_TYPE = DX_FONTTYPE_NORMAL, 262 263 /** 264 * フォントのデフォルトの太さ 265 */ 266 DEFAULT_FONT_EDGESIZE = 1, 267 } 268 269 /** 270 * WINDOWSのバージョンマクロ 271 */ 272 enum 273 { 274 /** 275 * WINDOWSのバージョンマクロ 276 */ 277 DX_WINDOWSVERSION_31 = 0x0000, 278 279 /** 280 * WINDOWSのバージョンマクロ 281 */ 282 DX_WINDOWSVERSION_95 = 0x0001, 283 284 /** 285 * WINDOWSのバージョンマクロ 286 */ 287 DX_WINDOWSVERSION_98 = 0x0002, 288 289 /** 290 * WINDOWSのバージョンマクロ 291 */ 292 DX_WINDOWSVERSION_ME = 0x0003, 293 294 /** 295 * WINDOWSのバージョンマクロ 296 */ 297 DX_WINDOWSVERSION_NT31 = 0x0104, 298 299 /** 300 * WINDOWSのバージョンマクロ 301 */ 302 DX_WINDOWSVERSION_NT40 = 0x0105, 303 304 /** 305 * WINDOWSのバージョンマクロ 306 */ 307 DX_WINDOWSVERSION_2000 = 0x0106, 308 309 /** 310 * WINDOWSのバージョンマクロ 311 */ 312 DX_WINDOWSVERSION_XP = 0x0107, 313 314 /** 315 * WINDOWSのバージョンマクロ 316 */ 317 DX_WINDOWSVERSION_VISTA = 0x0108, 318 319 /** 320 * WINDOWSのバージョンマクロ 321 */ 322 DX_WINDOWSVERSION_7 = 0x0109, 323 324 /** 325 * WINDOWSのバージョンマクロ 326 */ 327 DX_WINDOWSVERSION_8 = 0x010A, 328 329 /** 330 * WINDOWSのバージョンマクロ 331 */ 332 DX_WINDOWSVERSION_8_1 = 0x010B, 333 334 /** 335 * WINDOWSのバージョンマクロ 336 */ 337 DX_WINDOWSVERSION_10 = 0x010C, 338 339 /** 340 * WINDOWSのバージョンマクロ 341 */ 342 DX_WINDOWSVERSION_NT_TYPE = 0x0100, 343 } 344 345 /** 346 * DirectXのバージョン 347 */ 348 enum 349 { 350 /** 351 * DirectXのバージョン 352 */ 353 DX_DIRECTXVERSION_NON = 0, 354 355 /** 356 * DirectXのバージョン 357 */ 358 DX_DIRECTXVERSION_1 = 0x010000, 359 360 /** 361 * DirectXのバージョン 362 */ 363 DX_DIRECTXVERSION_2 = 0x020000, 364 365 /** 366 * DirectXのバージョン 367 */ 368 DX_DIRECTXVERSION_3 = 0x030000, 369 370 /** 371 * DirectXのバージョン 372 */ 373 DX_DIRECTXVERSION_4 = 0x040000, 374 375 /** 376 * DirectXのバージョン 377 */ 378 DX_DIRECTXVERSION_5 = 0x050000, 379 380 /** 381 * DirectXのバージョン 382 */ 383 DX_DIRECTXVERSION_6 = 0x060000, 384 385 /** 386 * DirectXのバージョン 387 */ 388 DX_DIRECTXVERSION_6_1 = 0x060100, 389 390 /** 391 * DirectXのバージョン 392 */ 393 DX_DIRECTXVERSION_7 = 0x070000, 394 395 /** 396 * DirectXのバージョン 397 */ 398 DX_DIRECTXVERSION_8 = 0x080000, 399 400 /** 401 * DirectXのバージョン 402 */ 403 DX_DIRECTXVERSION_8_1 = 0x080100, 404 } 405 406 /** 407 * Direct3Dのバージョン 408 */ 409 enum 410 { 411 /** 412 * Direct3Dのバージョン 413 */ 414 DX_DIRECT3D_NONE = 0, 415 416 /** 417 * Direct3Dのバージョン 418 */ 419 DX_DIRECT3D_9 = 1, 420 421 /** 422 * Direct3Dのバージョン 423 */ 424 DX_DIRECT3D_9EX = 2, 425 426 /** 427 * Direct3Dのバージョン 428 */ 429 DX_DIRECT3D_11 = 3, 430 } 431 432 /** 433 * Direct3D11のFeature Level 434 */ 435 enum 436 { 437 /** 438 * Direct3D11のFeature Level 439 */ 440 DX_DIRECT3D_11_FEATURE_LEVEL_9_1 = 0x9100, 441 442 /** 443 * Direct3D11のFeature Level 444 */ 445 DX_DIRECT3D_11_FEATURE_LEVEL_9_2 = 0x9200, 446 447 /** 448 * Direct3D11のFeature Level 449 */ 450 DX_DIRECT3D_11_FEATURE_LEVEL_9_3 = 0x9300, 451 452 /** 453 * Direct3D11のFeature Level 454 */ 455 DX_DIRECT3D_11_FEATURE_LEVEL_10_0 = 0xA000, 456 457 /** 458 * Direct3D11のFeature Level 459 */ 460 DX_DIRECT3D_11_FEATURE_LEVEL_10_1 = 0xA100, 461 462 /** 463 * Direct3D11のFeature Level 464 */ 465 DX_DIRECT3D_11_FEATURE_LEVEL_11_0 = 0xB000, 466 467 /** 468 * Direct3D11のFeature Level 469 */ 470 DX_DIRECT3D_11_FEATURE_LEVEL_11_1 = 0xB100, 471 } 472 473 /** 474 * 文字セット 475 */ 476 enum 477 { 478 /** 479 * デフォルト文字セット 480 */ 481 DX_CHARSET_DEFAULT = 0, 482 483 /** 484 * シフトJIS 485 */ 486 DX_CHARSET_SHFTJIS = 1, 487 488 /** 489 * ハングル文字セット 490 */ 491 DX_CHARSET_HANGEUL = 2, 492 493 /** 494 * 繁体文字セット 495 */ 496 DX_CHARSET_BIG5 = 3, 497 498 /** 499 * 簡体文字セット 500 */ 501 DX_CHARSET_GB2312 = 4, 502 503 /** 504 * 欧文(ラテン文字の文字コード) 505 */ 506 DX_CHARSET_WINDOWS_1252 = 5, 507 508 /** 509 * 欧文(ラテン文字の文字コード) 510 */ 511 DX_CHARSET_ISO_IEC_8859_15 = 6, 512 513 /** 514 * UTF-8 515 */ 516 DX_CHARSET_UTF8 = 7, 517 518 /** 519 * 文字セットの数 520 */ 521 DX_CHARSET_NUM = 8, 522 } 523 524 /** 525 * 文字コード形式 526 */ 527 enum 528 { 529 /** 530 * シフトJISコード 531 */ 532 DX_CHARCODEFORMAT_SHIFTJIS = 932, 533 534 /** 535 * 簡体字文字コード 536 */ 537 DX_CHARCODEFORMAT_GB2312 = 936, 538 539 /** 540 * ハングル文字コード 541 */ 542 DX_CHARCODEFORMAT_UHC = 949, 543 544 /** 545 * 繁体文字コード 546 */ 547 DX_CHARCODEFORMAT_BIG5 = 950, 548 549 /** 550 * UTF-16 リトルエンディアン 551 */ 552 DX_CHARCODEFORMAT_UTF16LE = 1200, 553 554 /** 555 * UTF-16 ビッグエンディアン 556 */ 557 DX_CHARCODEFORMAT_UTF16BE = 1201, 558 559 /** 560 * 欧文(ラテン文字の文字コード) 561 */ 562 DX_CHARCODEFORMAT_WINDOWS_1252 = 1252, 563 564 /** 565 * 欧文(ラテン文字の文字コード) 566 */ 567 DX_CHARCODEFORMAT_ISO_IEC_8859_15 = 32764, 568 569 /** 570 * UTF-8 571 */ 572 DX_CHARCODEFORMAT_UTF8 = 65001, 573 574 /** 575 * アスキー文字コード 576 */ 577 DX_CHARCODEFORMAT_ASCII = 32765, 578 579 /** 580 * UTF-32 リトルエンディアン 581 */ 582 DX_CHARCODEFORMAT_UTF32LE = 32766, 583 584 /** 585 * UTF-32 ビッグエンディアン 586 */ 587 DX_CHARCODEFORMAT_UTF32BE = 32767, 588 } 589 590 /** 591 * MIDIの演奏モード定義 592 */ 593 enum 594 { 595 /** 596 * MCIによる演奏 597 */ 598 DX_MIDIMODE_MCI = 0, 599 600 /** 601 * DirectMusicによる演奏 602 */ 603 DX_MIDIMODE_DM = 1, 604 605 /** 606 * DirectMusic(リバーブあり)による演奏 607 */ 608 DX_MIDIMODE_DIRECT_MUSIC_REVERB = 1, 609 610 /** 611 * DirectMusic(リバーブなし)による演奏 612 */ 613 DX_MIDIMODE_DIRECT_MUSIC_NORMAL = 2, 614 615 /** 616 * MIDIの演奏モードの数 617 */ 618 DX_MIDIMODE_NUM = 3, 619 } 620 621 /** 622 * 描画モード定義 623 */ 624 enum 625 { 626 /** 627 * ネアレストネイバー法で描画 628 */ 629 DX_DRAWMODE_NEAREST = 0, 630 631 /** 632 * バイリニア法で描画する 633 */ 634 DX_DRAWMODE_BILINEAR = 1, 635 636 /** 637 * 異方性フィルタリング法で描画する 638 */ 639 DX_DRAWMODE_ANISOTROPIC = 2, 640 641 /** 642 * それ以外 643 */ 644 DX_DRAWMODE_OTHER = 3, 645 646 /** 647 * 描画モードの数 648 */ 649 DX_DRAWMODE_NUM = 4, 650 } 651 652 /** 653 * フォントのタイプ 654 */ 655 enum 656 { 657 /** 658 * ノーマルフォント 659 */ 660 DX_FONTTYPE_NORMAL = 0x00, 661 662 /** 663 * エッジつきフォント 664 */ 665 DX_FONTTYPE_EDGE = 0x01, 666 667 /** 668 * アンチエイリアスフォント(標準機能アンチエイリアス) 669 */ 670 DX_FONTTYPE_ANTIALIASING = 0x02, 671 672 /** 673 * アンチエイリアスフォント(4x4サンプリング) 674 */ 675 DX_FONTTYPE_ANTIALIASING_4X4 = 0x12, 676 677 /** 678 * アンチエイリアスフォント(8x8サンプリング) 679 */ 680 DX_FONTTYPE_ANTIALIASING_8X8 = 0x22, 681 682 /** 683 * アンチエイリアス&エッジ付きフォント(標準機能アンチエイリアス) 684 */ 685 DX_FONTTYPE_ANTIALIASING_EDGE = 0x03, 686 687 /** 688 * アンチエイリアス&エッジ付きフォント(4x4サンプリング) 689 */ 690 DX_FONTTYPE_ANTIALIASING_EDGE_4X4 = 0x13, 691 692 /** 693 * アンチエイリアス&エッジ付きフォント(8x8サンプリング) 694 */ 695 DX_FONTTYPE_ANTIALIASING_EDGE_8X8 = 0x23, 696 } 697 698 /** 699 * フォント画像の階調ビット数 700 */ 701 enum 702 { 703 /** 704 * フォント画像の階調ビット数 705 */ 706 DX_FONTIMAGE_BIT_1 = 0, 707 708 /** 709 * フォント画像の階調ビット数 710 */ 711 DX_FONTIMAGE_BIT_4 = 1, 712 713 /** 714 * フォント画像の階調ビット数 715 */ 716 DX_FONTIMAGE_BIT_8 = 2, 717 } 718 719 /** 720 * 描画ブレンドモード定義 721 */ 722 enum 723 { 724 /** 725 * ノーブレンド 726 */ 727 DX_BLENDMODE_NOBLEND = 0, 728 729 /** 730 * αブレンド 731 */ 732 DX_BLENDMODE_ALPHA = 1, 733 734 /** 735 * 加算ブレンド 736 */ 737 DX_BLENDMODE_ADD = 2, 738 739 /** 740 * 減算ブレンド 741 */ 742 DX_BLENDMODE_SUB = 3, 743 744 /** 745 * 乗算ブレンド 746 */ 747 DX_BLENDMODE_MUL = 4, 748 749 // (内部処理用) 750 751 /** 752 * 内部処理用減算ブレンド2 753 */ 754 DX_BLENDMODE_SUB2 = 5, 755 756 // 境界線ぼかし 757 //DX_BLENDMODE_BLINEALPHA = 7, 758 759 /** 760 * XORブレンド(ソフトウエアレンダリングモードでのみ有効) 761 */ 762 DX_BLENDMODE_XOR = 6, 763 764 /** 765 * カラーは更新されない 766 */ 767 DX_BLENDMODE_DESTCOLOR = 8, 768 769 /** 770 * 描画先の色の反転値を掛ける 771 */ 772 DX_BLENDMODE_INVDESTCOLOR = 9, 773 774 /** 775 * 描画元の色を反転する 776 */ 777 DX_BLENDMODE_INVSRC = 10, 778 779 /** 780 * アルファチャンネル考慮付き乗算ブレンド 781 */ 782 DX_BLENDMODE_MULA = 11, 783 784 /** 785 * αブレンドの描画元の輝度を最大4倍にできるモード 786 */ 787 DX_BLENDMODE_ALPHA_X4 = 12, 788 789 /** 790 * 加算ブレンドの描画元の輝度を最大4倍にできるモード 791 */ 792 DX_BLENDMODE_ADD_X4 = 13, 793 794 /** 795 * 描画元のカラーでそのまま描画される 796 */ 797 DX_BLENDMODE_SRCCOLOR = 14, 798 799 /** 800 * 半加算ブレンド 801 */ 802 DX_BLENDMODE_HALF_ADD = 15, 803 804 /** 805 * 内部処理用減算ブレンド1 806 */ 807 DX_BLENDMODE_SUB1 = 16, 808 809 /** 810 * 乗算済みαブレンドモードのαブレンド 811 */ 812 DX_BLENDMODE_PMA_ALPHA = 17, 813 814 /** 815 * 乗算済みαブレンドモードの加算ブレンド 816 */ 817 DX_BLENDMODE_PMA_ADD = 18, 818 819 /** 820 * 乗算済みαブレンドモードの減算ブレンド 821 */ 822 DX_BLENDMODE_PMA_SUB = 19, 823 824 /** 825 * 乗算済みαブレンドモードの描画元の色を反転する 826 */ 827 DX_BLENDMODE_PMA_INVSRC = 20, 828 829 /** 830 * 乗算済みαブレンドモードのαブレンドの描画元の輝度を最大4倍にできるモード 831 */ 832 DX_BLENDMODE_PMA_ALPHA_X4 = 21, 833 834 /** 835 * 乗算済みαブレンドモードの加算ブレンドの描画元の輝度を最大4倍にできるモード 836 */ 837 DX_BLENDMODE_PMA_ADD_X4 = 22, 838 839 /** 840 * Live2Dのブレンドモード Zero用 841 */ 842 DX_BLENDMODE_LIVE2D_ZERO = 23, 843 844 /** 845 * Live2Dのブレンドモード Normal用 846 */ 847 DX_BLENDMODE_LIVE2D_NORMAL = 24, 848 849 /** 850 * Live2Dのブレンドモード Add用 851 */ 852 DX_BLENDMODE_LIVE2D_ADD = 25, 853 854 /** 855 * Live2Dのブレンドモード Mult用 856 */ 857 DX_BLENDMODE_LIVE2D_MULT = 26, 858 859 /** 860 * Live2Dのブレンドモード Mask用 861 */ 862 DX_BLENDMODE_LIVE2D_MASK = 27, 863 864 /** 865 * ブレンドモードの数 866 */ 867 DX_BLENDMODE_NUM = 28, 868 } 869 870 /** 871 * DrawGraphF等の浮動小数点値で座標を指定する関数における座標タイプ 872 */ 873 enum 874 { 875 /** 876 * Direct3D9タイプ(-0.5fの補正を行わないとテクスチャのピクセルが綺麗にマップされないタイプ) 877 */ 878 DX_DRAWFLOATCOORDTYPE_DIRECT3D9 = 0, 879 880 /** 881 * Direct3D10タイプ(-0.5fの補正を行わななくてもテクスチャのピクセルが綺麗にマップされるタイプ) 882 */ 883 DX_DRAWFLOATCOORDTYPE_DIRECT3D10 = 1, 884 } 885 886 /** 887 * 画像合成タイプ 888 */ 889 enum 890 { 891 /** 892 * 通常合成 893 */ 894 DX_BLENDGRAPHTYPE_NORMAL = 0, 895 896 /** 897 * ワイプ処理 898 */ 899 DX_BLENDGRAPHTYPE_WIPE = 1, 900 901 /** 902 * ブレンド画像のα値と元画像のα値を掛け合わせる 903 */ 904 DX_BLENDGRAPHTYPE_ALPHA = 2, 905 906 /** 907 * ? 908 */ 909 DX_BLENDGRAPHTYPE_NUM = 3, 910 } 911 912 /** 913 * 画像合成座標タイプ 914 */ 915 enum 916 { 917 /** 918 * 描画する画像基準で合成画像の座標を決定 919 */ 920 DX_BLENDGRAPH_POSMODE_DRAWGRAPH = 0, 921 922 /** 923 * スクリーン座標基準で合成画像の座標を決定 924 */ 925 DX_BLENDGRAPH_POSMODE_SCREEN = 1, 926 927 /** 928 * ? 929 */ 930 DX_BLENDGRAPH_POSMODE_NUM = 2, 931 } 932 933 /** 934 * グラフィックフィルタータイプ 935 */ 936 enum 937 { 938 /** 939 * モノトーンフィルタ 940 */ 941 DX_GRAPH_FILTER_MONO = 0, 942 943 /** 944 * ガウスフィルタ 945 */ 946 DX_GRAPH_FILTER_GAUSS = 1, 947 948 /** 949 * 縮小フィルタ 950 */ 951 DX_GRAPH_FILTER_DOWN_SCALE = 2, 952 953 /** 954 * 明るさクリップフィルタ 955 */ 956 DX_GRAPH_FILTER_BRIGHT_CLIP = 3, 957 958 /** 959 * 指定の明るさ領域を拡大するフィルタ 960 */ 961 DX_GRAPH_FILTER_BRIGHT_SCALE = 4, 962 963 /** 964 * 色相・彩度・明度フィルタ 965 */ 966 DX_GRAPH_FILTER_HSB = 5, 967 968 /** 969 * 階調の反転フィルタ 970 */ 971 DX_GRAPH_FILTER_INVERT = 6, 972 973 /** 974 * レベル補正フィルタ 975 */ 976 DX_GRAPH_FILTER_LEVEL = 7, 977 978 /** 979 * 2階調化フィルタ 980 */ 981 DX_GRAPH_FILTER_TWO_COLOR = 8, 982 983 /** 984 * グラデーションマップフィルタ 985 */ 986 DX_GRAPH_FILTER_GRADIENT_MAP = 9, 987 988 /** 989 * 色の置換 990 */ 991 DX_GRAPH_FILTER_REPLACEMENT = 10, 992 993 /** 994 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ 995 */ 996 DX_GRAPH_FILTER_PREMUL_ALPHA = 11, 997 998 /** 999 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ 1000 */ 1001 DX_GRAPH_FILTER_INTERP_ALPHA = 12, 1002 1003 /** 1004 * YUVカラーをRGBカラーに変換するフィルタ 1005 */ 1006 DX_GRAPH_FILTER_YUV_TO_RGB = 13, 1007 1008 /** 1009 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用) 1010 */ 1011 DX_GRAPH_FILTER_Y2UV1_TO_RGB = 14, 1012 1013 /** 1014 * YUVカラーをRGBカラーに変換するフィルタ(且つ右側半分のRの値をアルファ値として扱う) 1015 */ 1016 DX_GRAPH_FILTER_YUV_TO_RGB_RRA = 15, 1017 1018 /** 1019 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)(且つ右側半分のRの値をアルファ値として扱う) 1020 */ 1021 DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA = 16, 1022 1023 /** 1024 * バイキュービックを使用した拡大・縮小フィルタ 1025 */ 1026 DX_GRAPH_FILTER_BICUBIC_SCALE = 17, 1027 1028 /** 1029 * Lanczos-3を使用した拡大・縮小フィルタ 1030 */ 1031 DX_GRAPH_FILTER_LANCZOS3_SCALE = 18, 1032 1033 /** 1034 * 明るさクリップフィルタ(乗算済みアルファ画像用) 1035 */ 1036 DX_GRAPH_FILTER_PMA_BRIGHT_CLIP = 19, 1037 1038 /** 1039 * 指定の明るさ領域を拡大するフィルタ(乗算済みアルファ画像用) 1040 */ 1041 DX_GRAPH_FILTER_PMA_BRIGHT_SCALE = 20, 1042 1043 /** 1044 * 色相・彩度・明度フィルタ(乗算済みアルファ画像用) 1045 */ 1046 DX_GRAPH_FILTER_PMA_HSB = 21, 1047 1048 /** 1049 * 階調の反転フィルタ(乗算済みアルファ画像用) 1050 */ 1051 DX_GRAPH_FILTER_PMA_INVERT = 22, 1052 1053 /** 1054 * レベル補正フィルタ(乗算済みアルファ画像用) 1055 */ 1056 DX_GRAPH_FILTER_PMA_LEVEL = 23, 1057 1058 /** 1059 * 2階調化フィルタ(乗算済みアルファ画像用) 1060 */ 1061 DX_GRAPH_FILTER_PMA_TWO_COLOR = 24, 1062 1063 /** 1064 * グラデーションマップフィルタ(乗算済みアルファ画像用) 1065 */ 1066 DX_GRAPH_FILTER_PMA_GRADIENT_MAP = 25, 1067 1068 /** 1069 * 色の置換(乗算済みアルファ画像用) 1070 */ 1071 DX_GRAPH_FILTER_PMA_REPLACEMENT = 26, 1072 1073 /** 1074 * グラフィックフィルタータイプの数 1075 */ 1076 DX_GRAPH_FILTER_NUM = 27, 1077 } 1078 1079 /** 1080 * グラフィックブレンドタイプ 1081 */ 1082 enum 1083 { 1084 /** 1085 * 通常 1086 */ 1087 DX_GRAPH_BLEND_NORMAL = 0, 1088 1089 /** 1090 * RGBAの要素を選択して合成 1091 */ 1092 DX_GRAPH_BLEND_RGBA_SELECT_MIX = 1, 1093 1094 /** 1095 * 乗算 1096 */ 1097 DX_GRAPH_BLEND_MULTIPLE = 2, 1098 1099 /** 1100 * 減算 1101 */ 1102 DX_GRAPH_BLEND_DIFFERENCE = 3, 1103 1104 /** 1105 * 加算 1106 */ 1107 DX_GRAPH_BLEND_ADD = 4, 1108 1109 /** 1110 * スクリーン 1111 */ 1112 DX_GRAPH_BLEND_SCREEN = 5, 1113 1114 /** 1115 * オーバーレイ 1116 */ 1117 DX_GRAPH_BLEND_OVERLAY = 6, 1118 1119 /** 1120 * 覆い焼き 1121 */ 1122 DX_GRAPH_BLEND_DODGE = 7, 1123 1124 /** 1125 * 焼き込み 1126 */ 1127 DX_GRAPH_BLEND_BURN = 8, 1128 1129 /** 1130 * 比較(暗) 1131 */ 1132 DX_GRAPH_BLEND_DARKEN = 9, 1133 1134 /** 1135 * 比較(明) 1136 */ 1137 DX_GRAPH_BLEND_LIGHTEN = 10, 1138 1139 /** 1140 * ソフトライト 1141 */ 1142 DX_GRAPH_BLEND_SOFTLIGHT = 11, 1143 1144 /** 1145 * ハードライト 1146 */ 1147 DX_GRAPH_BLEND_HARDLIGHT = 12, 1148 1149 /** 1150 * 除外 1151 */ 1152 DX_GRAPH_BLEND_EXCLUSION = 13, 1153 1154 /** 1155 * αチャンネル付き画像の通常合成 1156 */ 1157 DX_GRAPH_BLEND_NORMAL_ALPHACH = 14, 1158 1159 /** 1160 * αチャンネル付き画像の加算合成 1161 */ 1162 DX_GRAPH_BLEND_ADD_ALPHACH = 15, 1163 1164 /** 1165 * アルファチャンネルのみの乗算 1166 */ 1167 DX_GRAPH_BLEND_MULTIPLE_A_ONLY = 16, 1168 1169 /** 1170 * 通常(乗算済みα画像用) 1171 */ 1172 DX_GRAPH_BLEND_PMA_NORMAL = 17, 1173 1174 /** 1175 * RGBAの要素を選択して合成(乗算済みα画像用) 1176 */ 1177 DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIX = 18, 1178 1179 /** 1180 * 乗算(乗算済みα画像用) 1181 */ 1182 DX_GRAPH_BLEND_PMA_MULTIPLE = 19, 1183 1184 /** 1185 * 減算(乗算済みα画像用) 1186 */ 1187 DX_GRAPH_BLEND_PMA_DIFFERENCE = 20, 1188 1189 /** 1190 * 加算(乗算済みα画像用) 1191 */ 1192 DX_GRAPH_BLEND_PMA_ADD = 21, 1193 1194 /** 1195 * スクリーン(乗算済みα画像用) 1196 */ 1197 DX_GRAPH_BLEND_PMA_SCREEN = 22, 1198 1199 /** 1200 * オーバーレイ(乗算済みα画像用) 1201 */ 1202 DX_GRAPH_BLEND_PMA_OVERLAY = 23, 1203 1204 /** 1205 * 覆い焼き(乗算済みα画像用) 1206 */ 1207 DX_GRAPH_BLEND_PMA_DODGE = 24, 1208 1209 /** 1210 * 焼き込み(乗算済みα画像用) 1211 */ 1212 DX_GRAPH_BLEND_PMA_BURN = 25, 1213 1214 /** 1215 * 比較(暗)(乗算済みα画像用) 1216 */ 1217 DX_GRAPH_BLEND_PMA_DARKEN = 26, 1218 1219 /** 1220 * 比較(明)(乗算済みα画像用) 1221 */ 1222 DX_GRAPH_BLEND_PMA_LIGHTEN = 27, 1223 1224 /** 1225 * ソフトライト(乗算済みα画像用) 1226 */ 1227 DX_GRAPH_BLEND_PMA_SOFTLIGHT = 28, 1228 1229 /** 1230 * ハードライト(乗算済みα画像用) 1231 */ 1232 DX_GRAPH_BLEND_PMA_HARDLIGHT = 29, 1233 1234 /** 1235 * 除外(乗算済みα画像用) 1236 */ 1237 DX_GRAPH_BLEND_PMA_EXCLUSION = 30, 1238 1239 /** 1240 * αチャンネル付き画像の通常合成(乗算済みα画像用) 1241 */ 1242 DX_GRAPH_BLEND_PMA_NORMAL_ALPHACH = 31, 1243 1244 /** 1245 * αチャンネル付き画像の加算合成(乗算済みα画像用) 1246 */ 1247 DX_GRAPH_BLEND_PMA_ADD_ALPHACH = 32, 1248 1249 /** 1250 * アルファチャンネルのみの乗算(乗算済みα画像用) 1251 */ 1252 DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY = 33, 1253 1254 /** 1255 * ? 1256 */ 1257 DX_GRAPH_BLEND_NUM = 34, 1258 } 1259 1260 /** 1261 * DX_GRAPH_BLEND_RGBA_SELECT_MIX用の色選択用定義 1262 */ 1263 enum 1264 { 1265 /** 1266 * 元画像の赤成分 1267 */ 1268 DX_RGBA_SELECT_SRC_R = 0, 1269 1270 /** 1271 * 元画像の緑成分 1272 */ 1273 DX_RGBA_SELECT_SRC_G = 1, 1274 1275 /** 1276 * 元画像の青成分 1277 */ 1278 DX_RGBA_SELECT_SRC_B = 2, 1279 1280 /** 1281 * 元画像のα成分 1282 */ 1283 DX_RGBA_SELECT_SRC_A = 3, 1284 1285 /** 1286 * ブレンド画像の赤成分 1287 */ 1288 DX_RGBA_SELECT_BLEND_R = 4, 1289 1290 /** 1291 * ブレンド画像の緑成分 1292 */ 1293 DX_RGBA_SELECT_BLEND_G = 5, 1294 1295 /** 1296 * ブレンド画像の青成分 1297 */ 1298 DX_RGBA_SELECT_BLEND_B = 6, 1299 1300 /** 1301 * ブレンド画像のα成分 1302 */ 1303 DX_RGBA_SELECT_BLEND_A = 7, 1304 1305 /** 1306 * 元画像の赤成分を反転したもの 1307 */ 1308 DX_RGBA_SELECT_SRC_INV_R = 8, 1309 1310 /** 1311 * 元画像の緑成分を反転したもの 1312 */ 1313 DX_RGBA_SELECT_SRC_INV_G = 9, 1314 1315 /** 1316 * 元画像の青成分を反転したもの 1317 */ 1318 DX_RGBA_SELECT_SRC_INV_B = 10, 1319 1320 /** 1321 * 元画像のα成分を反転したもの 1322 */ 1323 DX_RGBA_SELECT_SRC_INV_A = 11, 1324 1325 /** 1326 * ブレンド画像の赤成分を反転したもの 1327 */ 1328 DX_RGBA_SELECT_BLEND_INV_R = 12, 1329 1330 /** 1331 * ブレンド画像の緑成分を反転したもの 1332 */ 1333 DX_RGBA_SELECT_BLEND_INV_G = 13, 1334 1335 /** 1336 * ブレンド画像の青成分を反転したもの 1337 */ 1338 DX_RGBA_SELECT_BLEND_INV_B = 14, 1339 1340 /** 1341 * ブレンド画像のα成分を反転したもの 1342 */ 1343 DX_RGBA_SELECT_BLEND_INV_A = 15, 1344 } 1345 1346 /** 1347 * フィルモード 1348 */ 1349 enum 1350 { 1351 /** 1352 * ワイヤーフレーム 1353 */ 1354 DX_FILL_WIREFRAME = 2, 1355 1356 /** 1357 * ポリゴン 1358 */ 1359 DX_FILL_SOLID = 3, 1360 } 1361 1362 /** 1363 * ポリゴンカリングモード 1364 */ 1365 enum 1366 { 1367 /** 1368 * カリングなし 1369 */ 1370 DX_CULLING_NONE = 0, 1371 1372 /** 1373 * 背面を左回りでカリング 1374 */ 1375 DX_CULLING_LEFT = 1, 1376 1377 /** 1378 * 背面を右回りでカリング 1379 */ 1380 DX_CULLING_RIGHT = 2, 1381 1382 /** 1383 * カリングモードの数 1384 */ 1385 DX_CULLING_NUM = 3, 1386 } 1387 1388 /** 1389 * クリッピング方向 1390 */ 1391 enum 1392 { 1393 /** 1394 * 画面左方向にクリップ 1395 */ 1396 DX_CAMERACLIP_LEFT = 0x01, 1397 1398 /** 1399 * 画面右方向にクリップ 1400 */ 1401 DX_CAMERACLIP_RIGHT = 0x02, 1402 1403 /** 1404 * 画面下方向にクリップ 1405 */ 1406 DX_CAMERACLIP_BOTTOM = 0x04, 1407 1408 /** 1409 * 画面上方向にクリップ 1410 */ 1411 DX_CAMERACLIP_TOP = 0x08, 1412 1413 /** 1414 * 画面後方向にクリップ 1415 */ 1416 DX_CAMERACLIP_BACK = 0x10, 1417 1418 /** 1419 * 画面前方向にクリップ 1420 */ 1421 DX_CAMERACLIP_FRONT = 0x20, 1422 } 1423 1424 /** 1425 * MV1モデルの頂点タイプ 1426 */ 1427 enum 1428 { 1429 /** 1430 * 1フレームの影響を受ける頂点 1431 */ 1432 DX_MV1_VERTEX_TYPE_1FRAME = 0, 1433 1434 /** 1435 * 1~4フレームの影響を受ける頂点 1436 */ 1437 DX_MV1_VERTEX_TYPE_4FRAME = 1, 1438 1439 /** 1440 * 5~8フレームの影響を受ける頂点 1441 */ 1442 DX_MV1_VERTEX_TYPE_8FRAME = 2, 1443 1444 /** 1445 * 9フレーム以上の影響を受ける頂点 1446 */ 1447 DX_MV1_VERTEX_TYPE_FREE_FRAME = 3, 1448 1449 /** 1450 * 法線マップ用の情報が含まれる1フレームの影響を受ける頂点 1451 */ 1452 DX_MV1_VERTEX_TYPE_NMAP_1FRAME = 4, 1453 1454 /** 1455 * 法線マップ用の情報が含まれる1~4フレームの影響を受ける頂点 1456 */ 1457 DX_MV1_VERTEX_TYPE_NMAP_4FRAME = 5, 1458 1459 /** 1460 * 法線マップ用の情報が含まれる5~8フレームの影響を受ける頂点 1461 */ 1462 DX_MV1_VERTEX_TYPE_NMAP_8FRAME = 6, 1463 1464 /** 1465 * 法線マップ用の情報が含まれる9フレーム以上の影響を受ける頂点 1466 */ 1467 DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME = 7, 1468 1469 /** 1470 * 頂点タイプの数 1471 */ 1472 DX_MV1_VERTEX_TYPE_NUM = 8, 1473 } 1474 1475 /** 1476 * メッシュの種類 1477 */ 1478 enum 1479 { 1480 /** 1481 * 普通のメッシュ 1482 */ 1483 DX_MV1_MESHCATEGORY_NORMAL = 0, 1484 1485 /** 1486 * 輪郭線描画用メッシュ 1487 */ 1488 DX_MV1_MESHCATEGORY_OUTLINE = 1, 1489 1490 /** 1491 * 輪郭線描画用メッシュ(オリジナルシェーダーでの描画用) 1492 */ 1493 DX_MV1_MESHCATEGORY_OUTLINE_ORIG_SHADER = 2, 1494 1495 /** 1496 * メッシュの種類の数 1497 */ 1498 DX_MV1_MESHCATEGORY_NUM = 3, 1499 } 1500 1501 /** 1502 * シェイプ率の適用タイプ 1503 */ 1504 enum 1505 { 1506 /** 1507 * 元の値に加算 1508 */ 1509 DX_MV1_SHAPERATE_ADD = 0, 1510 1511 /** 1512 * 元の値に上書き 1513 */ 1514 DX_MV1_SHAPERATE_OVERWRITE = 1, 1515 } 1516 1517 /** 1518 * MV1ファイルの保存タイプ 1519 */ 1520 enum 1521 { 1522 /** 1523 * メッシュ情報のみ保存 1524 */ 1525 MV1_SAVETYPE_MESH = 0x0001, 1526 1527 /** 1528 * アニメーション情報のみ保存 1529 */ 1530 MV1_SAVETYPE_ANIM = 0x0002, 1531 1532 /** 1533 * 通常保存 1534 */ 1535 MV1_SAVETYPE_NORMAL = MV1_SAVETYPE_MESH | MV1_SAVETYPE_ANIM, 1536 } 1537 1538 /** 1539 * アニメーションキーデータタイプ 1540 */ 1541 enum 1542 { 1543 /** 1544 * 回転 1545 */ 1546 MV1_ANIMKEY_DATATYPE_ROTATE = 0, 1547 1548 /** 1549 * 回転X 1550 */ 1551 MV1_ANIMKEY_DATATYPE_ROTATE_X = 1, 1552 1553 /** 1554 * 回転Y 1555 */ 1556 MV1_ANIMKEY_DATATYPE_ROTATE_Y = 2, 1557 1558 /** 1559 * 回転Z 1560 */ 1561 MV1_ANIMKEY_DATATYPE_ROTATE_Z = 3, 1562 1563 /** 1564 * 拡大 1565 */ 1566 MV1_ANIMKEY_DATATYPE_SCALE = 5, 1567 1568 /** 1569 * スケールX 1570 */ 1571 MV1_ANIMKEY_DATATYPE_SCALE_X = 6, 1572 1573 /** 1574 * スケールY 1575 */ 1576 MV1_ANIMKEY_DATATYPE_SCALE_Y = 7, 1577 1578 /** 1579 * スケールZ 1580 */ 1581 MV1_ANIMKEY_DATATYPE_SCALE_Z = 8, 1582 1583 /** 1584 * 平行移動 1585 */ 1586 MV1_ANIMKEY_DATATYPE_TRANSLATE = 10, 1587 1588 /** 1589 * 平行移動X 1590 */ 1591 MV1_ANIMKEY_DATATYPE_TRANSLATE_X = 11, 1592 1593 /** 1594 * 平行移動Y 1595 */ 1596 MV1_ANIMKEY_DATATYPE_TRANSLATE_Y = 12, 1597 1598 /** 1599 * 平行移動Z 1600 */ 1601 MV1_ANIMKEY_DATATYPE_TRANSLATE_Z = 13, 1602 1603 /** 1604 * 4×4行列の4列目(0,0,0,1)固定版 1605 */ 1606 MV1_ANIMKEY_DATATYPE_MATRIX4X4C = 15, 1607 1608 /** 1609 * 3×3行列 1610 */ 1611 MV1_ANIMKEY_DATATYPE_MATRIX3X3 = 17, 1612 1613 /** 1614 * シェイプ 1615 */ 1616 MV1_ANIMKEY_DATATYPE_SHAPE = 18, 1617 1618 /** 1619 * その他 1620 */ 1621 MV1_ANIMKEY_DATATYPE_OTHRE = 20, 1622 } 1623 1624 /** 1625 * タイムタイプ 1626 */ 1627 enum 1628 { 1629 /** 1630 * 時間情報は全体で1つ 1631 */ 1632 MV1_ANIMKEY_TIME_TYPE_ONE = 0, 1633 1634 /** 1635 * 時間情報は各キーに1つ 1636 */ 1637 MV1_ANIMKEY_TIME_TYPE_KEY = 1, 1638 } 1639 1640 /** 1641 * アニメーションキータイプ 1642 */ 1643 enum 1644 { 1645 /** 1646 * クォータニオン(Xファイルタイプ) 1647 */ 1648 MV1_ANIMKEY_TYPE_QUATERNION_X = 0, 1649 1650 /** 1651 * ベクター 1652 */ 1653 MV1_ANIMKEY_TYPE_VECTOR = 1, 1654 1655 /** 1656 * 4×4行列の4列目(0,0,0,1)固定版 1657 */ 1658 MV1_ANIMKEY_TYPE_MATRIX4X4C = 2, 1659 1660 /** 1661 * 3×3行列 1662 */ 1663 MV1_ANIMKEY_TYPE_MATRIX3X3 = 3, 1664 1665 /** 1666 * フラット 1667 */ 1668 MV1_ANIMKEY_TYPE_FLAT = 4, 1669 1670 /** 1671 * 線形補間 1672 */ 1673 MV1_ANIMKEY_TYPE_LINEAR = 5, 1674 1675 /** 1676 * 混合 1677 */ 1678 MV1_ANIMKEY_TYPE_BLEND = 6, 1679 1680 /** 1681 * クォータニオン(VMDタイプ) 1682 */ 1683 MV1_ANIMKEY_TYPE_QUATERNION_VMD = 7, 1684 } 1685 1686 /** 1687 * 描画先画面指定用定義 1688 */ 1689 enum 1690 { 1691 /** 1692 * ? 1693 */ 1694 DX_SCREEN_FRONT = 0xFFFFFFFC, 1695 1696 /** 1697 * ? 1698 */ 1699 DX_SCREEN_BACK = 0xFFFFFFFE, 1700 1701 /** 1702 * ? 1703 */ 1704 DX_SCREEN_WORK = 0xFFFFFFFD, 1705 1706 /** 1707 * ? 1708 */ 1709 DX_SCREEN_TEMPFRONT = 0xFFFFFFF0, 1710 1711 /** 1712 * ? 1713 */ 1714 DX_SCREEN_OTHER = 0xFFFFFFFA, 1715 } 1716 1717 /** 1718 * グラフィックなしハンドル 1719 */ 1720 enum DX_NONE_GRAPH = 0xFFFFFFFB; 1721 1722 /** 1723 * グラフィック減色時の画像劣化緩和処理モード 1724 */ 1725 enum 1726 { 1727 /** 1728 * 画像劣化緩和処理を行わない 1729 */ 1730 DX_SHAVEDMODE_NONE = 0, 1731 1732 /** 1733 * ディザリング 1734 */ 1735 DX_SHAVEDMODE_DITHER = 1, 1736 1737 /** 1738 * 誤差拡散 1739 */ 1740 DX_SHAVEDMODE_DIFFUS = 2, 1741 } 1742 1743 /** 1744 * 画像の保存タイプ 1745 */ 1746 enum 1747 { 1748 /** 1749 * bitmap 1750 */ 1751 DX_IMAGESAVETYPE_BMP = 0, 1752 1753 /** 1754 * jpeg 1755 */ 1756 DX_IMAGESAVETYPE_JPEG = 1, 1757 1758 /** 1759 * Png 1760 */ 1761 DX_IMAGESAVETYPE_PNG = 2, 1762 1763 /** 1764 * Direct Draw Surface 1765 */ 1766 DX_IMAGESAVETYPE_DDS = 3, 1767 } 1768 1769 /** 1770 * サウンド再生形態指定用定義 1771 */ 1772 enum 1773 { 1774 /** 1775 * ループ再生ビット 1776 */ 1777 DX_PLAYTYPE_LOOPBIT = 0x0002, 1778 1779 /** 1780 * バックグラウンド再生ビット 1781 */ 1782 DX_PLAYTYPE_BACKBIT = 0x0001, 1783 1784 /** 1785 * ノーマル再生 1786 */ 1787 DX_PLAYTYPE_NORMAL = 0, 1788 1789 /** 1790 * バックグラウンド再生 1791 */ 1792 DX_PLAYTYPE_BACK = DX_PLAYTYPE_BACKBIT, 1793 1794 /** 1795 * ループ再生 1796 */ 1797 DX_PLAYTYPE_LOOP = DX_PLAYTYPE_LOOPBIT | DX_PLAYTYPE_BACKBIT, 1798 } 1799 1800 /** 1801 * 動画再生タイプ定義 1802 */ 1803 enum 1804 { 1805 /** 1806 * ボタンキャンセルあり 1807 */ 1808 DX_MOVIEPLAYTYPE_BCANCEL = 0, 1809 1810 /** 1811 * ボタンキャンセルなし 1812 */ 1813 DX_MOVIEPLAYTYPE_NORMAL = 1, 1814 } 1815 1816 /** 1817 * サウンドのタイプ 1818 */ 1819 enum 1820 { 1821 /** 1822 * ノーマルサウンド形式 1823 */ 1824 DX_SOUNDTYPE_NORMAL = 0, 1825 1826 /** 1827 * ストリーム風サウンド形式 1828 */ 1829 DX_SOUNDTYPE_STREAMSTYLE = 1, 1830 } 1831 1832 /** 1833 * サウンドデータタイプのマクロ 1834 */ 1835 enum 1836 { 1837 /** 1838 * 圧縮された全データは再生が始まる前にサウンドメモリにすべて解凍され、格納される 1839 */ 1840 DX_SOUNDDATATYPE_MEMNOPRESS = 0, 1841 1842 /** 1843 * 圧縮された全データはシステムメモリに格納され、再生しながら逐次解凍され、最終的にすべてサウンドメモリに格納される(その後システムメモリに存在する圧縮データは破棄される) 1844 */ 1845 DX_SOUNDDATATYPE_MEMNOPRESS_PLUS = 1, 1846 1847 /** 1848 * 圧縮された全データはシステムメモリに格納され、再生する部分だけ逐次解凍しながらサウンドメモリに格納する(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる) 1849 */ 1850 DX_SOUNDDATATYPE_MEMPRESS = 2, 1851 1852 /** 1853 * 圧縮されたデータの再生する部分だけファイルから逐次読み込み解凍され、サウンドメモリに格納される(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる) 1854 */ 1855 DX_SOUNDDATATYPE_FILE = 3, 1856 } 1857 1858 /** 1859 * サウンドの取得する再生時間タイプ 1860 */ 1861 enum 1862 { 1863 /** 1864 * 低レベルAPIを使用してより正確な再生時間を取得する 1865 */ 1866 DX_SOUNDCURRENTTIME_TYPE_LOW_LEVEL = 0, 1867 1868 /** 1869 * APIは使用せず、ソフトウェア処理レベルでの再生時間を取得する 1870 */ 1871 DX_SOUNDCURRENTTIME_TYPE_SOFT = 1, 1872 } 1873 1874 /** 1875 * 読み込み処理のタイプ 1876 */ 1877 enum 1878 { 1879 /** 1880 * PCMの読み込み処理 1881 */ 1882 DX_READSOUNDFUNCTION_PCM = 1 << 0, 1883 1884 /** 1885 * Ogg Vorbisの読み込み処理 1886 */ 1887 DX_READSOUNDFUNCTION_OGG = 1 << 1, 1888 1889 /** 1890 * Opusの読み込み処理 1891 */ 1892 DX_READSOUNDFUNCTION_OPUS = 1 << 2, 1893 1894 /** 1895 * 環境非依存の読み込み処理タイプの数 1896 */ 1897 DX_READSOUNDFUNCTION_DEFAULT_NUM = 3, 1898 } 1899 1900 /** 1901 * 3Dサウンドリバーブエフェクトのプリセット 1902 */ 1903 enum 1904 { 1905 /** 1906 * デフォルト 1907 */ 1908 DX_REVERB_PRESET_DEFAULT = 0, 1909 1910 /** 1911 * 一般的な空間 1912 */ 1913 DX_REVERB_PRESET_GENERIC = 1, 1914 1915 /** 1916 * 精神病患者室(?) 1917 */ 1918 DX_REVERB_PRESET_PADDEDCELL = 2, 1919 1920 /** 1921 * 部屋 1922 */ 1923 DX_REVERB_PRESET_ROOM = 3, 1924 1925 /** 1926 * バスルーム 1927 */ 1928 DX_REVERB_PRESET_BATHROOM = 4, 1929 1930 /** 1931 * リビングルーム 1932 */ 1933 DX_REVERB_PRESET_LIVINGROOM = 5, 1934 1935 /** 1936 * 石の部屋 1937 */ 1938 DX_REVERB_PRESET_STONEROOM = 6, 1939 1940 /** 1941 * 講堂 1942 */ 1943 DX_REVERB_PRESET_AUDITORIUM = 7, 1944 1945 /** 1946 * コンサートホール 1947 */ 1948 DX_REVERB_PRESET_CONCERTHALL = 8, 1949 1950 /** 1951 * 洞穴 1952 */ 1953 DX_REVERB_PRESET_CAVE = 9, 1954 1955 /** 1956 * 舞台 1957 */ 1958 DX_REVERB_PRESET_ARENA = 10, 1959 1960 /** 1961 * 格納庫 1962 */ 1963 DX_REVERB_PRESET_HANGAR = 11, 1964 1965 /** 1966 * カーペットが敷かれた玄関 1967 */ 1968 DX_REVERB_PRESET_CARPETEDHALLWAY = 12, 1969 1970 /** 1971 * 玄関 1972 */ 1973 DX_REVERB_PRESET_HALLWAY = 13, 1974 1975 /** 1976 * 石の廊下 1977 */ 1978 DX_REVERB_PRESET_STONECORRIDOR = 14, 1979 1980 /** 1981 * 裏通り 1982 */ 1983 DX_REVERB_PRESET_ALLEY = 15, 1984 1985 /** 1986 * 森 1987 */ 1988 DX_REVERB_PRESET_FOREST = 16, 1989 1990 /** 1991 * 都市 1992 */ 1993 DX_REVERB_PRESET_CITY = 17, 1994 1995 /** 1996 * 山 1997 */ 1998 DX_REVERB_PRESET_MOUNTAINS = 18, 1999 2000 /** 2001 * 採石場 2002 */ 2003 DX_REVERB_PRESET_QUARRY = 19, 2004 2005 /** 2006 * 平原 2007 */ 2008 DX_REVERB_PRESET_PLAIN = 20, 2009 2010 /** 2011 * 駐車場 2012 */ 2013 DX_REVERB_PRESET_PARKINGLOT = 21, 2014 2015 /** 2016 * 下水管 2017 */ 2018 DX_REVERB_PRESET_SEWERPIPE = 22, 2019 2020 /** 2021 * 水面下 2022 */ 2023 DX_REVERB_PRESET_UNDERWATER = 23, 2024 2025 /** 2026 * 小部屋 2027 */ 2028 DX_REVERB_PRESET_SMALLROOM = 24, 2029 2030 /** 2031 * 中部屋 2032 */ 2033 DX_REVERB_PRESET_MEDIUMROOM = 25, 2034 2035 /** 2036 * 大部屋 2037 */ 2038 DX_REVERB_PRESET_LARGEROOM = 26, 2039 2040 /** 2041 * 中ホール 2042 */ 2043 DX_REVERB_PRESET_MEDIUMHALL = 27, 2044 2045 /** 2046 * 大ホール 2047 */ 2048 DX_REVERB_PRESET_LARGEHALL = 28, 2049 2050 /** 2051 * 板 2052 */ 2053 DX_REVERB_PRESET_PLATE = 29, 2054 2055 /** 2056 * プリセットの数 2057 */ 2058 DX_REVERB_PRESET_NUM = 30, 2059 } 2060 2061 /** 2062 * マスク透過色モード 2063 */ 2064 enum 2065 { 2066 /** 2067 * マスク画像の白い部分を透過色とする 2068 */ 2069 DX_MASKTRANS_WHITE = 0, 2070 2071 /** 2072 * マスク画像の黒い部分を透過色とする 2073 */ 2074 DX_MASKTRANS_BLACK = 1, 2075 2076 /** 2077 * 透過色なし 2078 */ 2079 DX_MASKTRANS_NONE = 2, 2080 } 2081 2082 /** 2083 * マスク画像チャンネル 2084 */ 2085 enum 2086 { 2087 /** 2088 * アルファ 2089 */ 2090 DX_MASKGRAPH_CH_A = 0, 2091 2092 /** 2093 * 赤 2094 */ 2095 DX_MASKGRAPH_CH_R = 1, 2096 2097 /** 2098 * 緑 2099 */ 2100 DX_MASKGRAPH_CH_G = 2, 2101 2102 /** 2103 * 青 2104 */ 2105 DX_MASKGRAPH_CH_B = 3, 2106 } 2107 2108 /** 2109 * Zバッファ書き込みモード 2110 */ 2111 enum 2112 { 2113 /** 2114 * 書き込めないようにマスクする 2115 */ 2116 DX_ZWRITE_MASK = 0, 2117 2118 /** 2119 * 書き込めるようにマスクをクリアする 2120 */ 2121 DX_ZWRITE_CLEAR = 1, 2122 } 2123 2124 /** 2125 * 比較モード 2126 */ 2127 enum 2128 { 2129 /** 2130 * FALSE 2131 */ 2132 DX_CMP_NEVER = 1, 2133 2134 /** 2135 * Src < Dest DrawAlpha < TestParam 2136 */ 2137 DX_CMP_LESS = 2, 2138 2139 /** 2140 * Src == Dest DrawAlpha == TestParam 2141 */ 2142 DX_CMP_EQUAL = 3, 2143 2144 /** 2145 * Src <= Dest DrawAlpha <= TestParam 2146 */ 2147 DX_CMP_LESSEQUAL = 4, 2148 2149 /** 2150 * Src > Dest DrawAlpha > TestParam 2151 */ 2152 DX_CMP_GREATER = 5, 2153 2154 /** 2155 * Src != Dest DrawAlpha != TestParam 2156 */ 2157 DX_CMP_NOTEQUAL = 6, 2158 2159 /** 2160 * Src >= Dest DrawAlpha >= TestParam 2161 */ 2162 DX_CMP_GREATEREQUAL = 7, 2163 2164 /** 2165 * TRUE 2166 */ 2167 DX_CMP_ALWAYS = 8, 2168 2169 /** 2170 * ? 2171 */ 2172 DX_ZCMP_DEFAULT = DX_CMP_LESSEQUAL, 2173 2174 /** 2175 * ? 2176 */ 2177 DX_ZCMP_REVERSE = DX_CMP_GREATEREQUAL, 2178 } 2179 2180 /** 2181 * シェーディングモード 2182 */ 2183 enum 2184 { 2185 /** 2186 * D_D3DSHADE_FLAT 2187 */ 2188 DX_SHADEMODE_FLAT = 1, 2189 2190 /** 2191 * D_D3DSHADE_GOURAUD 2192 */ 2193 DX_SHADEMODE_GOURAUD = 2, 2194 } 2195 2196 /** 2197 * フォグモード 2198 */ 2199 enum 2200 { 2201 /** 2202 * D_D3DFOG_NONE 2203 */ 2204 DX_FOGMODE_NONE = 0, 2205 2206 /** 2207 * D_D3DFOG_EXP 2208 */ 2209 DX_FOGMODE_EXP = 1, 2210 2211 /** 2212 * D_D3DFOG_EXP2 2213 */ 2214 DX_FOGMODE_EXP2 = 2, 2215 2216 /** 2217 * D_D3DFOG_LINEAR 2218 */ 2219 DX_FOGMODE_LINEAR = 3, 2220 } 2221 2222 /** 2223 * マテリアルタイプ 2224 */ 2225 enum 2226 { 2227 /** 2228 * 標準マテリアル 2229 */ 2230 DX_MATERIAL_TYPE_NORMAL = 0, 2231 2232 /** 2233 * トゥーンレンダリング用マテリアル 2234 */ 2235 DX_MATERIAL_TYPE_TOON = 1, 2236 2237 /** 2238 * トゥーンレンダリング用マテリアル_タイプ2(MMD互換) 2239 */ 2240 DX_MATERIAL_TYPE_TOON_2 = 2, 2241 2242 /** 2243 * マテリアルのスペキュラ色の輝度の指定の範囲の値を0.0f~1.0fの値に正規化して書き込むマテリアル 2244 */ 2245 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORM = 3, 2246 2247 /** 2248 * DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORMに『指定の値未満の場合は書き込む値を0.0fにする』という処理を加えたマテリアル 2249 */ 2250 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CLIP_UNORM = 4, 2251 2252 /** 2253 * マテリアルのスペキュラ色の輝度が指定の閾値以上の場合は1.0fを、未満の場合は0.0fを書き込むマテリアル 2254 */ 2255 DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUAL = 5, 2256 2257 /** 2258 * マテリアルのスペキュラハイライトの鮮明度の指定の範囲の値を0.0f~1.0fの値に正規化して書き込むマテリアル 2259 */ 2260 DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORM = 6, 2261 2262 /** 2263 * DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORMに『指定の値未満の場合は書き込む値を0.0fにする』という処理を加えたマテリアル 2264 */ 2265 DX_MATERIAL_TYPE_MAT_SPEC_POWER_CLIP_UNORM = 7, 2266 2267 /** 2268 * マテリアルのスペキュラハイライトの鮮明度が指定の閾値以上の場合は1.0fを、未満の場合は0.0fを書き込むマテリアル 2269 */ 2270 DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUAL = 8, 2271 2272 /** 2273 * ? 2274 */ 2275 DX_MATERIAL_TYPE_NUM = 9, 2276 } 2277 2278 /** 2279 * マテリアルブレンドタイプ 2280 */ 2281 enum 2282 { 2283 /** 2284 * アルファ合成 2285 */ 2286 DX_MATERIAL_BLENDTYPE_TRANSLUCENT = 0, 2287 2288 /** 2289 * 加算 2290 */ 2291 DX_MATERIAL_BLENDTYPE_ADDITIVE = 1, 2292 2293 /** 2294 * 乗算 2295 */ 2296 DX_MATERIAL_BLENDTYPE_MODULATE = 2, 2297 2298 /** 2299 * 無効 2300 */ 2301 DX_MATERIAL_BLENDTYPE_NONE = 3, 2302 } 2303 2304 /** 2305 * テクスチャアドレスタイプ 2306 */ 2307 enum 2308 { 2309 /** 2310 * D_D3DTADDRESS_WRAP 2311 */ 2312 DX_TEXADDRESS_WRAP = 1, 2313 2314 /** 2315 * D_D3DTADDRESS_MIRROR 2316 */ 2317 DX_TEXADDRESS_MIRROR = 2, 2318 2319 /** 2320 * D_D3DTADDRESS_CLAMP 2321 */ 2322 DX_TEXADDRESS_CLAMP = 3, 2323 2324 /** 2325 * D_D3DTADDRESS_BORDER 2326 */ 2327 DX_TEXADDRESS_BORDER = 4, 2328 2329 /** 2330 * テクスチャアドレスタイプの数 2331 */ 2332 DX_TEXADDRESS_NUM = 5, 2333 } 2334 2335 /** 2336 * シェーダータイプ 2337 */ 2338 enum 2339 { 2340 /** 2341 * 頂点シェーダー 2342 */ 2343 DX_SHADERTYPE_VERTEX = 0, 2344 2345 /** 2346 * ピクセルシェーダー 2347 */ 2348 DX_SHADERTYPE_PIXEL = 1, 2349 2350 /** 2351 * ジオメトリシェーダー 2352 */ 2353 DX_SHADERTYPE_GEOMETRY = 2, 2354 2355 /** 2356 * コンピュートシェーダー 2357 */ 2358 DX_SHADERTYPE_COMPUTE = 3, 2359 2360 /** 2361 * ドメインシェーダー 2362 */ 2363 DX_SHADERTYPE_DOMAIN = 4, 2364 2365 /** 2366 * ハルシェーダー 2367 */ 2368 DX_SHADERTYPE_HULL = 5, 2369 } 2370 2371 /** 2372 * 頂点データタイプ 2373 */ 2374 enum 2375 { 2376 /** 2377 * VERTEX3D構造体形式 2378 */ 2379 DX_VERTEX_TYPE_NORMAL_3D = 0, 2380 2381 /** 2382 * VERTEX3DSHADER構造体形式 2383 */ 2384 DX_VERTEX_TYPE_SHADER_3D = 1, 2385 2386 /** 2387 * ? 2388 */ 2389 DX_VERTEX_TYPE_NUM = 2, 2390 } 2391 2392 /** 2393 * インデックスデータタイプ 2394 */ 2395 enum 2396 { 2397 /** 2398 * 16bitインデックス 2399 */ 2400 DX_INDEX_TYPE_16BIT = 0, 2401 2402 /** 2403 * 32bitインデックス 2404 */ 2405 DX_INDEX_TYPE_32BIT = 1, 2406 } 2407 2408 /** 2409 * モデルファイル読み込み時の物理演算モード 2410 */ 2411 enum 2412 { 2413 /** 2414 * 物理演算を使用しない 2415 */ 2416 DX_LOADMODEL_PHYSICS_DISABLE = 1, 2417 2418 /** 2419 * 読み込み時に計算 2420 */ 2421 DX_LOADMODEL_PHYSICS_LOADCALC = 0, 2422 2423 /** 2424 * 実行時計算 2425 */ 2426 DX_LOADMODEL_PHYSICS_REALTIME = 2, 2427 } 2428 2429 /** 2430 * モデルファイル読み込み時の物理演算無効名前ワードのモード 2431 */ 2432 enum 2433 { 2434 /** 2435 * 全てのファイルに対して無効名ワードを適用する 2436 */ 2437 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS = 0, 2438 2439 /** 2440 * vmdファイル名にNPを含めた「物理演算無効」のファイルに対してのみ無効名ワードを適用する(この場合、無効名ワードが適用されない剛体については物理演算が行われる) 2441 */ 2442 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_DISABLEPHYSICSFILEONLY = 1, 2443 2444 /** 2445 * ? 2446 */ 2447 DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_NUM = 2, 2448 } 2449 2450 /** 2451 * PMD, PMXファイル読み込み時のアニメーションのFPSモード(主にIK分の精度に影響します) 2452 */ 2453 enum 2454 { 2455 /** 2456 * アニメーションを30FPSで読み込む(IK部分の精度:低 データサイズ:小)(デフォルト) 2457 */ 2458 DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30 = 0, 2459 2460 /** 2461 * アニメーションを60FPSで読み込む(IK部分の精度:高 データサイズ:大) 2462 */ 2463 DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_60 = 1, 2464 } 2465 2466 /** 2467 * モデルの半透明要素がある箇所に関する描画モード 2468 */ 2469 enum 2470 { 2471 /** 2472 * 半透明かどうか関係なく描画する 2473 */ 2474 DX_SEMITRANSDRAWMODE_ALWAYS = 0, 2475 2476 /** 2477 * 半透明のもののみ描画する 2478 */ 2479 DX_SEMITRANSDRAWMODE_SEMITRANS_ONLY = 1, 2480 2481 /** 2482 * 半透明ではないもののみ描画する 2483 */ 2484 DX_SEMITRANSDRAWMODE_NOT_SEMITRANS_ONLY = 2, 2485 } 2486 2487 /** 2488 * キューブマップの面番号 2489 */ 2490 enum 2491 { 2492 /** 2493 * ? 2494 */ 2495 DX_CUBEMAP_FACE_POSITIVE_X = 0, 2496 2497 /** 2498 * ? 2499 */ 2500 DX_CUBEMAP_FACE_NEGATIVE_X = 1, 2501 2502 /** 2503 * ? 2504 */ 2505 DX_CUBEMAP_FACE_POSITIVE_Y = 2, 2506 2507 /** 2508 * ? 2509 */ 2510 DX_CUBEMAP_FACE_NEGATIVE_Y = 3, 2511 2512 /** 2513 * ? 2514 */ 2515 DX_CUBEMAP_FACE_POSITIVE_Z = 4, 2516 2517 /** 2518 * ? 2519 */ 2520 DX_CUBEMAP_FACE_NEGATIVE_Z = 5, 2521 } 2522 2523 /** 2524 * ポリゴン描画タイプ 2525 */ 2526 enum 2527 { 2528 /** 2529 * D_D3DPT_POINTLIST 2530 */ 2531 DX_PRIMTYPE_POINTLIST = 1, 2532 2533 /** 2534 * D_D3DPT_LINELIST 2535 */ 2536 DX_PRIMTYPE_LINELIST = 2, 2537 2538 /** 2539 * D_D3DPT_LINESTRIP 2540 */ 2541 DX_PRIMTYPE_LINESTRIP = 3, 2542 2543 /** 2544 * D_D3DPT_TRIANGLELIST 2545 */ 2546 DX_PRIMTYPE_TRIANGLELIST = 4, 2547 2548 /** 2549 * D_D3DPT_TRIANGLESTRIP 2550 */ 2551 DX_PRIMTYPE_TRIANGLESTRIP = 5, 2552 2553 /** 2554 * D_D3DPT_TRIANGLEFAN 2555 */ 2556 DX_PRIMTYPE_TRIANGLEFAN = 6, 2557 2558 /** 2559 * ? 2560 */ 2561 DX_PRIMTYPE_MIN = 1, 2562 2563 /** 2564 * ? 2565 */ 2566 DX_PRIMTYPE_MAX = 6, 2567 } 2568 2569 /** 2570 * ライトタイプ 2571 */ 2572 enum 2573 { 2574 /** 2575 * D_D3DLIGHT_POINT 2576 */ 2577 DX_LIGHTTYPE_D3DLIGHT_POINT = 1, 2578 2579 /** 2580 * D_D3DLIGHT_SPOT 2581 */ 2582 DX_LIGHTTYPE_D3DLIGHT_SPOT = 2, 2583 2584 /** 2585 * D_D3DLIGHT_DIRECTIONAL 2586 */ 2587 DX_LIGHTTYPE_D3DLIGHT_DIRECTIONAL = 3, 2588 2589 /** 2590 * D_D3DLIGHT_POINT 2591 */ 2592 DX_LIGHTTYPE_POINT = 1, 2593 2594 /** 2595 * D_D3DLIGHT_SPOT 2596 */ 2597 DX_LIGHTTYPE_SPOT = 2, 2598 2599 /** 2600 * D_D3DLIGHT_DIRECTIONAL 2601 */ 2602 DX_LIGHTTYPE_DIRECTIONAL = 3, 2603 } 2604 2605 /** 2606 * グラフィックイメージフォーマットの定義 2607 */ 2608 enum 2609 { 2610 /** 2611 * 16色パレットカラー標準 2612 */ 2613 DX_GRAPHICSIMAGE_FORMAT_3D_PAL4 = 0, 2614 2615 /** 2616 * 256色パレットカラー標準 2617 */ 2618 DX_GRAPHICSIMAGE_FORMAT_3D_PAL8 = 1, 2619 2620 /** 2621 * αチャンネルつき16色パレットカラー標準 2622 */ 2623 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL4 = 2, 2624 2625 /** 2626 * αチャンネルつき256色パレットカラー標準 2627 */ 2628 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_PAL8 = 3, 2629 2630 /** 2631 * αテストつき16色パレットカラー標準 2632 */ 2633 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL4 = 4, 2634 2635 /** 2636 * αテストつき256色パレットカラー標準 2637 */ 2638 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_PAL8 = 5, 2639 2640 /** 2641 * 16ビットカラー標準 2642 */ 2643 DX_GRAPHICSIMAGE_FORMAT_3D_RGB16 = 6, 2644 2645 /** 2646 * 32ビットカラー標準 2647 */ 2648 DX_GRAPHICSIMAGE_FORMAT_3D_RGB32 = 7, 2649 2650 /** 2651 * αチャンネル付き16ビットカラー 2652 */ 2653 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB16 = 8, 2654 2655 /** 2656 * αチャンネル付き32ビットカラー 2657 */ 2658 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB32 = 9, 2659 2660 /** 2661 * αテスト付き16ビットカラー 2662 */ 2663 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB16 = 10, 2664 2665 /** 2666 * αテスト付き32ビットカラー 2667 */ 2668 DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB32 = 11, 2669 2670 /** 2671 * DXT1 2672 */ 2673 DX_GRAPHICSIMAGE_FORMAT_3D_DXT1 = 12, 2674 2675 /** 2676 * DXT2 2677 */ 2678 DX_GRAPHICSIMAGE_FORMAT_3D_DXT2 = 13, 2679 2680 /** 2681 * DXT3 2682 */ 2683 DX_GRAPHICSIMAGE_FORMAT_3D_DXT3 = 14, 2684 2685 /** 2686 * DXT4 2687 */ 2688 DX_GRAPHICSIMAGE_FORMAT_3D_DXT4 = 15, 2689 2690 /** 2691 * DXT5 2692 */ 2693 DX_GRAPHICSIMAGE_FORMAT_3D_DXT5 = 16, 2694 2695 /** 2696 * BC7 UNORM 2697 */ 2698 DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM = 17, 2699 2700 /** 2701 * BC7 UNORM SRGB 2702 */ 2703 DX_GRAPHICSIMAGE_FORMAT_3D_BC7_UNORM_SRGB = 18, 2704 2705 /** 2706 * プラットフォーム依存フォーマット0 2707 */ 2708 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM0 = 19, 2709 2710 /** 2711 * プラットフォーム依存フォーマット1 2712 */ 2713 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM1 = 20, 2714 2715 /** 2716 * プラットフォーム依存フォーマット2 2717 */ 2718 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM2 = 21, 2719 2720 /** 2721 * プラットフォーム依存フォーマット3 2722 */ 2723 DX_GRAPHICSIMAGE_FORMAT_3D_PLATFORM3 = 22, 2724 2725 /** 2726 * YUVフォーマット 2727 */ 2728 DX_GRAPHICSIMAGE_FORMAT_3D_YUV = 23, 2729 2730 /** 2731 * ARGB整数16ビット型カラー 2732 */ 2733 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_I16 = 24, 2734 2735 /** 2736 * ARGB浮動小数点16ビット型カラー 2737 */ 2738 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F16 = 25, 2739 2740 /** 2741 * ARGB浮動小数点32ビット型カラー 2742 */ 2743 DX_GRAPHICSIMAGE_FORMAT_3D_ABGR_F32 = 26, 2744 2745 /** 2746 * 1チャンネル整数8ビット型カラー 2747 */ 2748 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I8 = 27, 2749 2750 /** 2751 * 1チャンネル整数16ビット型カラー 2752 */ 2753 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_I16 = 28, 2754 2755 /** 2756 * 1チャンネル浮動少数16ビット型カラー 2757 */ 2758 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F16 = 29, 2759 2760 /** 2761 * 1チャンネル浮動少数32ビット型カラー 2762 */ 2763 DX_GRAPHICSIMAGE_FORMAT_3D_ONE_F32 = 30, 2764 2765 /** 2766 * 2チャンネル整数8ビット型カラー 2767 */ 2768 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I8 = 31, 2769 2770 /** 2771 * 2チャンネル整数16ビット型カラー 2772 */ 2773 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_I16 = 32, 2774 2775 /** 2776 * 2チャンネル浮動少数16ビット型カラー 2777 */ 2778 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F16 = 33, 2779 2780 /** 2781 * 2チャンネル浮動少数32ビット型カラー 2782 */ 2783 DX_GRAPHICSIMAGE_FORMAT_3D_TWO_F32 = 34, 2784 2785 /** 2786 * 描画可能16ビットカラー 2787 */ 2788 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB16 = 35, 2789 2790 /** 2791 * 描画可能32ビットカラー 2792 */ 2793 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB32 = 36, 2794 2795 /** 2796 * 描画可能α付き32ビットカラー 2797 */ 2798 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ALPHA_RGB32 = 37, 2799 2800 /** 2801 * 描画可能ARGB整数16ビット型カラー 2802 */ 2803 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_I16 = 38, 2804 2805 /** 2806 * 描画可能ARGB浮動小数点16ビット型カラー 2807 */ 2808 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F16 = 39, 2809 2810 /** 2811 * 描画可能ARGB浮動小数点32ビット型カラー 2812 */ 2813 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F32 = 40, 2814 2815 /** 2816 * 描画可能1チャンネル整数8ビット型カラー 2817 */ 2818 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I8 = 41, 2819 2820 /** 2821 * 描画可能1チャンネル整数16ビット型カラー 2822 */ 2823 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I16 = 42, 2824 2825 /** 2826 * 描画可能1チャンネル浮動少数16ビット型カラー 2827 */ 2828 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F16 = 43, 2829 2830 /** 2831 * 描画可能1チャンネル浮動少数32ビット型カラー 2832 */ 2833 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F32 = 44, 2834 2835 /** 2836 * 描画可能2チャンネル整数8ビット型カラー 2837 */ 2838 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I8 = 45, 2839 2840 /** 2841 * 描画可能2チャンネル整数16ビット型カラー 2842 */ 2843 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I16 = 46, 2844 2845 /** 2846 * 描画可能2チャンネル浮動少数16ビット型カラー 2847 */ 2848 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F16 = 47, 2849 2850 /** 2851 * 描画可能2チャンネル浮動少数32ビット型カラー 2852 */ 2853 DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F32 = 48, 2854 2855 /** 2856 * ? 2857 */ 2858 DX_GRAPHICSIMAGE_FORMAT_3D_NUM = 49, 2859 2860 /** 2861 * 標準(DirectDrawSurfaceの場合はこれのみ) 2862 */ 2863 DX_GRAPHICSIMAGE_FORMAT_2D = 50, 2864 2865 /** 2866 * R5G6B5(MEMIMG用) 2867 */ 2868 DX_GRAPHICSIMAGE_FORMAT_R5G6B5 = 51, 2869 2870 /** 2871 * X8A8R5G6B5(MEMIMG用) 2872 */ 2873 DX_GRAPHICSIMAGE_FORMAT_X8A8R5G6B5 = 52, 2874 2875 /** 2876 * X8R8G8B8(MEMIMG用) 2877 */ 2878 DX_GRAPHICSIMAGE_FORMAT_X8R8G8B8 = 53, 2879 2880 /** 2881 * A8R8G8B8(MEMIMG用) 2882 */ 2883 DX_GRAPHICSIMAGE_FORMAT_A8R8G8B8 = 54, 2884 2885 /** 2886 * グラフィックフォーマットの種類の数 2887 */ 2888 DX_GRAPHICSIMAGE_FORMAT_NUM = 55, 2889 } 2890 2891 /** 2892 * 基本イメージのピクセルフォーマット 2893 */ 2894 enum 2895 { 2896 /** 2897 * 普通の画像 2898 */ 2899 DX_BASEIMAGE_FORMAT_NORMAL = 0, 2900 2901 /** 2902 * DXT1 2903 */ 2904 DX_BASEIMAGE_FORMAT_DXT1 = 1, 2905 2906 /** 2907 * DXT2 2908 */ 2909 DX_BASEIMAGE_FORMAT_DXT2 = 2, 2910 2911 /** 2912 * DXT3 2913 */ 2914 DX_BASEIMAGE_FORMAT_DXT3 = 3, 2915 2916 /** 2917 * DXT4 2918 */ 2919 DX_BASEIMAGE_FORMAT_DXT4 = 4, 2920 2921 /** 2922 * DXT5 2923 */ 2924 DX_BASEIMAGE_FORMAT_DXT5 = 5, 2925 2926 /** 2927 * BC7 UNORM 2928 */ 2929 DX_BASEIMAGE_FORMAT_BC7_UNORM = 6, 2930 2931 /** 2932 * BC7 UNORM SRGB 2933 */ 2934 DX_BASEIMAGE_FORMAT_BC7_UNORM_SRGB = 7, 2935 2936 /** 2937 * プラットフォーム依存フォーマット0 2938 */ 2939 DX_BASEIMAGE_FORMAT_PLATFORM0 = 8, 2940 2941 /** 2942 * プラットフォーム依存フォーマット1 2943 */ 2944 DX_BASEIMAGE_FORMAT_PLATFORM1 = 9, 2945 2946 /** 2947 * プラットフォーム依存フォーマット2 2948 */ 2949 DX_BASEIMAGE_FORMAT_PLATFORM2 = 10, 2950 2951 /** 2952 * プラットフォーム依存フォーマット3 2953 */ 2954 DX_BASEIMAGE_FORMAT_PLATFORM3 = 11, 2955 2956 /** 2957 * YUV 2958 */ 2959 DX_BASEIMAGE_FORMAT_YUV = 12, 2960 } 2961 2962 /** 2963 * ムービーのサーフェスモード 2964 */ 2965 enum 2966 { 2967 /** 2968 * ? 2969 */ 2970 DX_MOVIESURFACE_NORMAL = 0, 2971 2972 /** 2973 * ? 2974 */ 2975 DX_MOVIESURFACE_OVERLAY = 1, 2976 2977 /** 2978 * ? 2979 */ 2980 DX_MOVIESURFACE_FULLCOLOR = 2, 2981 } 2982 2983 /** 2984 * SetUserScreenImageで渡す画面のピクセルフォーマット 2985 */ 2986 enum 2987 { 2988 /** 2989 * R5G6B5(DXライブラリの描画関数も使用できます(ソフトウェアレンダリングモード相当)) 2990 */ 2991 DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5 = 0, 2992 2993 /** 2994 * R5G5B5X1(DXライブラリの描画関数は使用できなくなります) 2995 */ 2996 DX_USER_SCREEN_PIXEL_FORMAT_R5G5B5X1 = 1, 2997 2998 /** 2999 * X1R5G5B5(DXライブラリの描画関数は使用できなくなります) 3000 */ 3001 DX_USER_SCREEN_PIXEL_FORMAT_X1R5G5B5 = 2, 3002 3003 /** 3004 * X8B8G8R8(DXライブラリの描画関数は使用できなくなります) 3005 */ 3006 DX_USER_SCREEN_PIXEL_FORMAT_X8B8G8R8 = 3, 3007 3008 /** 3009 * X8R8G8B8(DXライブラリの描画関数も使用できます(ソフトウェアレンダリングモード相当)) 3010 */ 3011 DX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8 = 4, 3012 3013 /** 3014 * ? 3015 */ 3016 DX_USER_SCREEN_PIXEL_FORMAT_NUM = 5, 3017 } 3018 3019 /** 3020 * ウインドウの奥行き位置設定タイプ 3021 */ 3022 enum 3023 { 3024 /** 3025 * 通常設定 3026 */ 3027 DX_WIN_ZTYPE_NORMAL = 0, 3028 3029 /** 3030 * 全てのウインドウの一番奥に配置する 3031 */ 3032 DX_WIN_ZTYPE_BOTTOM = 1, 3033 3034 /** 3035 * 全てのウインドウの一番手前に配置する 3036 */ 3037 DX_WIN_ZTYPE_TOP = 2, 3038 3039 /** 3040 * 全てのウインドウの一番手前に配置する(ウインドウがアクティブではないときも最前面に表示される) 3041 */ 3042 DX_WIN_ZTYPE_TOPMOST = 3, 3043 } 3044 3045 /** 3046 * ツールバーのボタンの状態 3047 */ 3048 enum 3049 { 3050 /** 3051 * 入力可能な状態 3052 */ 3053 TOOLBUTTON_STATE_ENABLE = 0, 3054 3055 /** 3056 * 押されている状態 3057 */ 3058 TOOLBUTTON_STATE_PRESSED = 1, 3059 3060 /** 3061 * 入力不可能な状態 3062 */ 3063 TOOLBUTTON_STATE_DISABLE = 2, 3064 3065 /** 3066 * 押されている状態で、入力不可能な状態 3067 */ 3068 TOOLBUTTON_STATE_PRESSED_DISABLE = 3, 3069 3070 /** 3071 * ツールバーのボタンの状態の数 3072 */ 3073 TOOLBUTTON_STATE_NUM = 4, 3074 } 3075 3076 /** 3077 * ツールバーのボタンのタイプ 3078 */ 3079 enum 3080 { 3081 /** 3082 * 普通のボタン 3083 */ 3084 TOOLBUTTON_TYPE_NORMAL = 0, 3085 3086 /** 3087 * 押すごとにON/OFFが切り替わるボタン 3088 */ 3089 TOOLBUTTON_TYPE_CHECK = 1, 3090 3091 /** 3092 * 別のTOOLBUTTON_TYPE_GROUP タイプのボタンが押されるとOFFになるタイプのボタン(グループの区切りは隙間で) 3093 */ 3094 TOOLBUTTON_TYPE_GROUP = 2, 3095 3096 /** 3097 * 隙間(ボタンではありません) 3098 */ 3099 TOOLBUTTON_TYPE_SEP = 3, 3100 3101 /** 3102 * ツールバーのボタンのタイプの数 3103 */ 3104 TOOLBUTTON_TYPE_NUM = 4, 3105 } 3106 3107 /** 3108 * 親メニューのID 3109 */ 3110 enum MENUITEM_IDTOP = 0xABABABAB; 3111 3112 /** 3113 * メニューに追加する際のタイプ 3114 */ 3115 enum 3116 { 3117 /** 3118 * 指定の項目の子として追加する 3119 */ 3120 MENUITEM_ADD_CHILD = 0, 3121 3122 /** 3123 * 指定の項目と指定の項目より1つ上の項目の間に追加する 3124 */ 3125 MENUITEM_ADD_INSERT = 1, 3126 } 3127 3128 /** 3129 * メニューの横に付くマークタイプ 3130 */ 3131 enum 3132 { 3133 /** 3134 * 何も付け無い 3135 */ 3136 MENUITEM_MARK_NONE = 0, 3137 3138 /** 3139 * チェックマーク 3140 */ 3141 MENUITEM_MARK_CHECK = 1, 3142 3143 /** 3144 * ラジオボタン 3145 */ 3146 MENUITEM_MARK_RADIO = 2, 3147 } 3148 3149 /** 3150 * 文字変換タイプ定義 3151 */ 3152 enum 3153 { 3154 /** 3155 * 10進数 3156 */ 3157 DX_NUMMODE_10 = 0, 3158 3159 /** 3160 * 16進数 3161 */ 3162 DX_NUMMODE_16 = 1, 3163 3164 /** 3165 * 空きを0で埋めない 3166 */ 3167 DX_STRMODE_NOT0 = 2, 3168 3169 /** 3170 * 空きを0で埋める 3171 */ 3172 DX_STRMODE_USE0 = 3, 3173 } 3174 3175 /** 3176 * CheckHitKeyAllで調べる入力タイプ 3177 */ 3178 enum 3179 { 3180 /** 3181 * キー入力を調べる 3182 */ 3183 DX_CHECKINPUT_KEY = 0x0001, 3184 3185 /** 3186 * パッド入力を調べる 3187 */ 3188 DX_CHECKINPUT_PAD = 0x0002, 3189 3190 /** 3191 * マウスボタン入力を調べる 3192 */ 3193 DX_CHECKINPUT_MOUSE = 0x0004, 3194 3195 /** 3196 * すべての入力を調べる 3197 */ 3198 DX_CHECKINPUT_ALL = DX_CHECKINPUT_KEY | DX_CHECKINPUT_PAD | DX_CHECKINPUT_MOUSE, 3199 } 3200 3201 /** 3202 * パッド入力取得パラメータ 3203 */ 3204 enum 3205 { 3206 /** 3207 * キー入力とパッド1入力 3208 */ 3209 DX_INPUT_KEY_PAD1 = 0x1001, 3210 3211 /** 3212 * パッド1入力 3213 */ 3214 DX_INPUT_PAD1 = 0x0001, 3215 3216 /** 3217 * パッド2入力 3218 */ 3219 DX_INPUT_PAD2 = 0x0002, 3220 3221 /** 3222 * パッド3入力 3223 */ 3224 DX_INPUT_PAD3 = 0x0003, 3225 3226 /** 3227 * パッド4入力 3228 */ 3229 DX_INPUT_PAD4 = 0x0004, 3230 3231 /** 3232 * パッド5入力 3233 */ 3234 DX_INPUT_PAD5 = 0x0005, 3235 3236 /** 3237 * パッド6入力 3238 */ 3239 DX_INPUT_PAD6 = 0x0006, 3240 3241 /** 3242 * パッド7入力 3243 */ 3244 DX_INPUT_PAD7 = 0x0007, 3245 3246 /** 3247 * パッド8入力 3248 */ 3249 DX_INPUT_PAD8 = 0x0008, 3250 3251 /** 3252 * パッド9入力 3253 */ 3254 DX_INPUT_PAD9 = 0x0009, 3255 3256 /** 3257 * パッド10入力 3258 */ 3259 DX_INPUT_PAD10 = 0x000A, 3260 3261 /** 3262 * パッド11入力 3263 */ 3264 DX_INPUT_PAD11 = 0x000B, 3265 3266 /** 3267 * パッド12入力 3268 */ 3269 DX_INPUT_PAD12 = 0x000C, 3270 3271 /** 3272 * パッド13入力 3273 */ 3274 DX_INPUT_PAD13 = 0x000D, 3275 3276 /** 3277 * パッド14入力 3278 */ 3279 DX_INPUT_PAD14 = 0x000E, 3280 3281 /** 3282 * パッド15入力 3283 */ 3284 DX_INPUT_PAD15 = 0x000F, 3285 3286 /** 3287 * パッド16入力 3288 */ 3289 DX_INPUT_PAD16 = 0x0010, 3290 3291 /** 3292 * キー入力 3293 */ 3294 DX_INPUT_KEY = 0x1000, 3295 3296 /** 3297 * タッチの同時接触検出対応最大数 3298 */ 3299 TOUCHINPUTPOINT_MAX = 16, 3300 } 3301 3302 /** 3303 * パッド入力定義 3304 */ 3305 enum 3306 { 3307 /** 3308 * ↓チェックマスク 3309 */ 3310 PAD_INPUT_DOWN = 0x00000001, 3311 3312 /** 3313 * ←チェックマスク 3314 */ 3315 PAD_INPUT_LEFT = 0x00000002, 3316 3317 /** 3318 * →チェックマスク 3319 */ 3320 PAD_INPUT_RIGHT = 0x00000004, 3321 3322 /** 3323 * ↑チェックマスク 3324 */ 3325 PAD_INPUT_UP = 0x00000008, 3326 3327 /** 3328 * Aボタンチェックマスク 3329 */ 3330 PAD_INPUT_A = 0x00000010, 3331 3332 /** 3333 * Bボタンチェックマスク 3334 */ 3335 PAD_INPUT_B = 0x00000020, 3336 3337 /** 3338 * Cボタンチェックマスク 3339 */ 3340 PAD_INPUT_C = 0x00000040, 3341 3342 /** 3343 * Xボタンチェックマスク 3344 */ 3345 PAD_INPUT_X = 0x00000080, 3346 3347 /** 3348 * Yボタンチェックマスク 3349 */ 3350 PAD_INPUT_Y = 0x00000100, 3351 3352 /** 3353 * Zボタンチェックマスク 3354 */ 3355 PAD_INPUT_Z = 0x00000200, 3356 3357 /** 3358 * Lボタンチェックマスク 3359 */ 3360 PAD_INPUT_L = 0x00000400, 3361 3362 /** 3363 * Rボタンチェックマスク 3364 */ 3365 PAD_INPUT_R = 0x00000800, 3366 3367 /** 3368 * STARTボタンチェックマスク 3369 */ 3370 PAD_INPUT_START = 0x00001000, 3371 3372 /** 3373 * Mボタンチェックマスク 3374 */ 3375 PAD_INPUT_M = 0x00002000, 3376 3377 /** 3378 * ? 3379 */ 3380 PAD_INPUT_D = 0x00004000, 3381 3382 /** 3383 * ? 3384 */ 3385 PAD_INPUT_F = 0x00008000, 3386 3387 /** 3388 * ? 3389 */ 3390 PAD_INPUT_G = 0x00010000, 3391 3392 /** 3393 * ? 3394 */ 3395 PAD_INPUT_H = 0x00020000, 3396 3397 /** 3398 * ? 3399 */ 3400 PAD_INPUT_I = 0x00040000, 3401 3402 /** 3403 * ? 3404 */ 3405 PAD_INPUT_J = 0x00080000, 3406 3407 /** 3408 * ? 3409 */ 3410 PAD_INPUT_K = 0x00100000, 3411 3412 /** 3413 * ? 3414 */ 3415 PAD_INPUT_LL = 0x00200000, 3416 3417 /** 3418 * ? 3419 */ 3420 PAD_INPUT_N = 0x00400000, 3421 3422 /** 3423 * ? 3424 */ 3425 PAD_INPUT_O = 0x00800000, 3426 3427 /** 3428 * ? 3429 */ 3430 PAD_INPUT_P = 0x01000000, 3431 3432 /** 3433 * ? 3434 */ 3435 PAD_INPUT_RR = 0x02000000, 3436 3437 /** 3438 * ? 3439 */ 3440 PAD_INPUT_S = 0x04000000, 3441 3442 /** 3443 * ? 3444 */ 3445 PAD_INPUT_T = 0x08000000, 3446 3447 /** 3448 * ? 3449 */ 3450 PAD_INPUT_U = 0x10000000, 3451 3452 /** 3453 * ? 3454 */ 3455 PAD_INPUT_V = 0x20000000, 3456 3457 /** 3458 * ? 3459 */ 3460 PAD_INPUT_W = 0x40000000, 3461 3462 /** 3463 * ? 3464 */ 3465 PAD_INPUT_XX = 0x80000000, 3466 3467 /** 3468 * ? 3469 */ 3470 PAD_INPUT_1 = 0x00000010, 3471 3472 /** 3473 * ? 3474 */ 3475 PAD_INPUT_2 = 0x00000020, 3476 3477 /** 3478 * ? 3479 */ 3480 PAD_INPUT_3 = 0x00000040, 3481 3482 /** 3483 * ? 3484 */ 3485 PAD_INPUT_4 = 0x00000080, 3486 3487 /** 3488 * ? 3489 */ 3490 PAD_INPUT_5 = 0x00000100, 3491 3492 /** 3493 * ? 3494 */ 3495 PAD_INPUT_6 = 0x00000200, 3496 3497 /** 3498 * ? 3499 */ 3500 PAD_INPUT_7 = 0x00000400, 3501 3502 /** 3503 * ? 3504 */ 3505 PAD_INPUT_8 = 0x00000800, 3506 3507 /** 3508 * ? 3509 */ 3510 PAD_INPUT_9 = 0x00001000, 3511 3512 /** 3513 * ? 3514 */ 3515 PAD_INPUT_10 = 0x00002000, 3516 3517 /** 3518 * ? 3519 */ 3520 PAD_INPUT_11 = 0x00004000, 3521 3522 /** 3523 * ? 3524 */ 3525 PAD_INPUT_12 = 0x00008000, 3526 3527 /** 3528 * ? 3529 */ 3530 PAD_INPUT_13 = 0x00010000, 3531 3532 /** 3533 * ? 3534 */ 3535 PAD_INPUT_14 = 0x00020000, 3536 3537 /** 3538 * ? 3539 */ 3540 PAD_INPUT_15 = 0x00040000, 3541 3542 /** 3543 * ? 3544 */ 3545 PAD_INPUT_16 = 0x00080000, 3546 3547 /** 3548 * ? 3549 */ 3550 PAD_INPUT_17 = 0x00100000, 3551 3552 /** 3553 * ? 3554 */ 3555 PAD_INPUT_18 = 0x00200000, 3556 3557 /** 3558 * ? 3559 */ 3560 PAD_INPUT_19 = 0x00400000, 3561 3562 /** 3563 * ? 3564 */ 3565 PAD_INPUT_20 = 0x00800000, 3566 3567 /** 3568 * ? 3569 */ 3570 PAD_INPUT_21 = 0x01000000, 3571 3572 /** 3573 * ? 3574 */ 3575 PAD_INPUT_22 = 0x02000000, 3576 3577 /** 3578 * ? 3579 */ 3580 PAD_INPUT_23 = 0x04000000, 3581 3582 /** 3583 * ? 3584 */ 3585 PAD_INPUT_24 = 0x08000000, 3586 3587 /** 3588 * ? 3589 */ 3590 PAD_INPUT_25 = 0x10000000, 3591 3592 /** 3593 * ? 3594 */ 3595 PAD_INPUT_26 = 0x20000000, 3596 3597 /** 3598 * ? 3599 */ 3600 PAD_INPUT_27 = 0x40000000, 3601 3602 /** 3603 * ? 3604 */ 3605 PAD_INPUT_28 = 0x80000000, 3606 } 3607 3608 /** 3609 * XInputボタン入力定義 3610 */ 3611 enum 3612 { 3613 /** 3614 * デジタル方向ボタン上 3615 */ 3616 XINPUT_BUTTON_DPAD_UP = 0, 3617 3618 /** 3619 * デジタル方向ボタン下 3620 */ 3621 XINPUT_BUTTON_DPAD_DOWN = 1, 3622 3623 /** 3624 * デジタル方向ボタン左 3625 */ 3626 XINPUT_BUTTON_DPAD_LEFT = 2, 3627 3628 /** 3629 * デジタル方向ボタン右 3630 */ 3631 XINPUT_BUTTON_DPAD_RIGHT = 3, 3632 3633 /** 3634 * STARTボタン 3635 */ 3636 XINPUT_BUTTON_START = 4, 3637 3638 /** 3639 * BACKボタン 3640 */ 3641 XINPUT_BUTTON_BACK = 5, 3642 3643 /** 3644 * 左スティック押し込み 3645 */ 3646 XINPUT_BUTTON_LEFT_THUMB = 6, 3647 3648 /** 3649 * 右スティック押し込み 3650 */ 3651 XINPUT_BUTTON_RIGHT_THUMB = 7, 3652 3653 /** 3654 * LBボタン 3655 */ 3656 XINPUT_BUTTON_LEFT_SHOULDER = 8, 3657 3658 /** 3659 * RBボタン 3660 */ 3661 XINPUT_BUTTON_RIGHT_SHOULDER = 9, 3662 3663 /** 3664 * Aボタン 3665 */ 3666 XINPUT_BUTTON_A = 12, 3667 3668 /** 3669 * Bボタン 3670 */ 3671 XINPUT_BUTTON_B = 13, 3672 3673 /** 3674 * Xボタン 3675 */ 3676 XINPUT_BUTTON_X = 14, 3677 3678 /** 3679 * Yボタン 3680 */ 3681 XINPUT_BUTTON_Y = 15, 3682 } 3683 3684 /** 3685 * マウス入力定義 3686 */ 3687 enum 3688 { 3689 /** 3690 * マウス左ボタン 3691 */ 3692 MOUSE_INPUT_LEFT = 0x0001, 3693 3694 /** 3695 * マウス右ボタン 3696 */ 3697 MOUSE_INPUT_RIGHT = 0x0002, 3698 3699 /** 3700 * マウス中央ボタン 3701 */ 3702 MOUSE_INPUT_MIDDLE = 0x0004, 3703 3704 /** 3705 * マウス1ボタン 3706 */ 3707 MOUSE_INPUT_1 = 0x0001, 3708 3709 /** 3710 * マウス2ボタン 3711 */ 3712 MOUSE_INPUT_2 = 0x0002, 3713 3714 /** 3715 * マウス3ボタン 3716 */ 3717 MOUSE_INPUT_3 = 0x0004, 3718 3719 /** 3720 * マウス4ボタン 3721 */ 3722 MOUSE_INPUT_4 = 0x0008, 3723 3724 /** 3725 * マウス5ボタン 3726 */ 3727 MOUSE_INPUT_5 = 0x0010, 3728 3729 /** 3730 * マウス6ボタン 3731 */ 3732 MOUSE_INPUT_6 = 0x0020, 3733 3734 /** 3735 * マウス7ボタン 3736 */ 3737 MOUSE_INPUT_7 = 0x0040, 3738 3739 /** 3740 * マウス8ボタン 3741 */ 3742 MOUSE_INPUT_8 = 0x0080, 3743 } 3744 3745 /** 3746 * マウスのログ情報タイプ 3747 */ 3748 enum 3749 { 3750 /** 3751 * ボタンを押した 3752 */ 3753 MOUSE_INPUT_LOG_DOWN = 0, 3754 3755 /** 3756 * ボタンを離した 3757 */ 3758 MOUSE_INPUT_LOG_UP = 1, 3759 } 3760 3761 /** 3762 * キー定義 3763 */ 3764 enum 3765 { 3766 /** 3767 * BackSpaceキー D_DIK_BACK 3768 */ 3769 KEY_INPUT_BACK = 0x0E, 3770 3771 /** 3772 * Tabキー D_DIK_TAB 3773 */ 3774 KEY_INPUT_TAB = 0x0F, 3775 3776 /** 3777 * Enterキー D_DIK_RETURN 3778 */ 3779 KEY_INPUT_RETURN = 0x1C, 3780 3781 /** 3782 * 左Shiftキー D_DIK_LSHIFT 3783 */ 3784 KEY_INPUT_LSHIFT = 0x2A, 3785 3786 /** 3787 * 右Shiftキー D_DIK_RSHIFT 3788 */ 3789 KEY_INPUT_RSHIFT = 0x36, 3790 3791 /** 3792 * 左Ctrlキー D_DIK_LCONTROL 3793 */ 3794 KEY_INPUT_LCONTROL = 0x1D, 3795 3796 /** 3797 * 右Ctrlキー D_DIK_RCONTROL 3798 */ 3799 KEY_INPUT_RCONTROL = 0x9D, 3800 3801 /** 3802 * Escキー D_DIK_ESCAPE 3803 */ 3804 KEY_INPUT_ESCAPE = 0x01, 3805 3806 /** 3807 * スペースキー D_DIK_SPACE 3808 */ 3809 KEY_INPUT_SPACE = 0x39, 3810 3811 /** 3812 * PageUpキー D_DIK_PGUP 3813 */ 3814 KEY_INPUT_PGUP = 0xC9, 3815 3816 /** 3817 * PageDownキー D_DIK_PGDN 3818 */ 3819 KEY_INPUT_PGDN = 0xD1, 3820 3821 /** 3822 * Endキー D_DIK_END 3823 */ 3824 KEY_INPUT_END = 0xCF, 3825 3826 /** 3827 * Homeキー D_DIK_HOME 3828 */ 3829 KEY_INPUT_HOME = 0xC7, 3830 3831 /** 3832 * 左キー D_DIK_LEFT 3833 */ 3834 KEY_INPUT_LEFT = 0xCB, 3835 3836 /** 3837 * 上キー D_DIK_UP 3838 */ 3839 KEY_INPUT_UP = 0xC8, 3840 3841 /** 3842 * 右キー D_DIK_RIGHT 3843 */ 3844 KEY_INPUT_RIGHT = 0xCD, 3845 3846 /** 3847 * 下キー D_DIK_DOWN 3848 */ 3849 KEY_INPUT_DOWN = 0xD0, 3850 3851 /** 3852 * Insertキー D_DIK_INSERT 3853 */ 3854 KEY_INPUT_INSERT = 0xD2, 3855 3856 /** 3857 * Deleteキー D_DIK_DELETE 3858 */ 3859 KEY_INPUT_DELETE = 0xD3, 3860 3861 /** 3862 * -キー D_DIK_MINUS 3863 */ 3864 KEY_INPUT_MINUS = 0x0C, 3865 3866 /** 3867 * ¥キー D_DIK_YEN 3868 */ 3869 KEY_INPUT_YEN = 0x7D, 3870 3871 /** 3872 * ^キー D_DIK_PREVTRACK 3873 */ 3874 KEY_INPUT_PREVTRACK = 0x90, 3875 3876 /** 3877 * .キー D_DIK_PERIOD 3878 */ 3879 KEY_INPUT_PERIOD = 0x34, 3880 3881 /** 3882 * /キー D_DIK_SLASH 3883 */ 3884 KEY_INPUT_SLASH = 0x35, 3885 3886 /** 3887 * 左Altキー D_DIK_LALT 3888 */ 3889 KEY_INPUT_LALT = 0x38, 3890 3891 /** 3892 * 右Altキー D_DIK_RALT 3893 */ 3894 KEY_INPUT_RALT = 0xB8, 3895 3896 /** 3897 * ScrollLockキー D_DIK_SCROLL 3898 */ 3899 KEY_INPUT_SCROLL = 0x46, 3900 3901 /** 3902 * ;キー D_DIK_SEMICOLON 3903 */ 3904 KEY_INPUT_SEMICOLON = 0x27, 3905 3906 /** 3907 * :キー D_DIK_COLON 3908 */ 3909 KEY_INPUT_COLON = 0x92, 3910 3911 /** 3912 * [キー D_DIK_LBRACKET 3913 */ 3914 KEY_INPUT_LBRACKET = 0x1A, 3915 3916 /** 3917 * ]キー D_DIK_RBRACKET 3918 */ 3919 KEY_INPUT_RBRACKET = 0x1B, 3920 3921 /** 3922 * @キー D_DIK_AT 3923 */ 3924 KEY_INPUT_AT = 0x91, 3925 3926 /** 3927 * \キー D_DIK_BACKSLASH 3928 */ 3929 KEY_INPUT_BACKSLASH = 0x2B, 3930 3931 /** 3932 * ,キー D_DIK_COMMA 3933 */ 3934 KEY_INPUT_COMMA = 0x33, 3935 3936 /** 3937 * 漢字キー D_DIK_KANJI 3938 */ 3939 KEY_INPUT_KANJI = 0x94, 3940 3941 /** 3942 * 変換キー D_DIK_CONVERT 3943 */ 3944 KEY_INPUT_CONVERT = 0x79, 3945 3946 /** 3947 * 無変換キー D_DIK_NOCONVERT 3948 */ 3949 KEY_INPUT_NOCONVERT = 0x7B, 3950 3951 /** 3952 * カナキー D_DIK_KANA 3953 */ 3954 KEY_INPUT_KANA = 0x70, 3955 3956 /** 3957 * アプリケーションメニューキー D_DIK_APPS 3958 */ 3959 KEY_INPUT_APPS = 0xDD, 3960 3961 /** 3962 * CaspLockキー D_DIK_CAPSLOCK 3963 */ 3964 KEY_INPUT_CAPSLOCK = 0x3A, 3965 3966 /** 3967 * PrintScreenキー D_DIK_SYSRQ 3968 */ 3969 KEY_INPUT_SYSRQ = 0xB7, 3970 3971 /** 3972 * PauseBreakキー D_DIK_PAUSE 3973 */ 3974 KEY_INPUT_PAUSE = 0xC5, 3975 3976 /** 3977 * 左Winキー D_DIK_LWIN 3978 */ 3979 KEY_INPUT_LWIN = 0xDB, 3980 3981 /** 3982 * 右Winキー D_DIK_RWIN 3983 */ 3984 KEY_INPUT_RWIN = 0xDC, 3985 3986 /** 3987 * テンキーNumLockキー D_DIK_NUMLOCK 3988 */ 3989 KEY_INPUT_NUMLOCK = 0x45, 3990 3991 /** 3992 * テンキー0 D_DIK_NUMPAD0 3993 */ 3994 KEY_INPUT_NUMPAD0 = 0x52, 3995 3996 /** 3997 * テンキー1 D_DIK_NUMPAD1 3998 */ 3999 KEY_INPUT_NUMPAD1 = 0x4F, 4000 4001 /** 4002 * テンキー2 D_DIK_NUMPAD2 4003 */ 4004 KEY_INPUT_NUMPAD2 = 0x50, 4005 4006 /** 4007 * テンキー3 D_DIK_NUMPAD3 4008 */ 4009 KEY_INPUT_NUMPAD3 = 0x51, 4010 4011 /** 4012 * テンキー4 D_DIK_NUMPAD4 4013 */ 4014 KEY_INPUT_NUMPAD4 = 0x4B, 4015 4016 /** 4017 * テンキー5 D_DIK_NUMPAD5 4018 */ 4019 KEY_INPUT_NUMPAD5 = 0x4C, 4020 4021 /** 4022 * テンキー6 D_DIK_NUMPAD6 4023 */ 4024 KEY_INPUT_NUMPAD6 = 0x4D, 4025 4026 /** 4027 * テンキー7 D_DIK_NUMPAD7 4028 */ 4029 KEY_INPUT_NUMPAD7 = 0x47, 4030 4031 /** 4032 * テンキー8 D_DIK_NUMPAD8 4033 */ 4034 KEY_INPUT_NUMPAD8 = 0x48, 4035 4036 /** 4037 * テンキー9 D_DIK_NUMPAD9 4038 */ 4039 KEY_INPUT_NUMPAD9 = 0x49, 4040 4041 /** 4042 * テンキー*キー D_DIK_MULTIPLY 4043 */ 4044 KEY_INPUT_MULTIPLY = 0x37, 4045 4046 /** 4047 * テンキー+キー D_DIK_ADD 4048 */ 4049 KEY_INPUT_ADD = 0x4E, 4050 4051 /** 4052 * テンキー-キー D_DIK_SUBTRACT 4053 */ 4054 KEY_INPUT_SUBTRACT = 0x4A, 4055 4056 /** 4057 * テンキー.キー D_DIK_DECIMAL 4058 */ 4059 KEY_INPUT_DECIMAL = 0x53, 4060 4061 /** 4062 * テンキー/キー D_DIK_DIVIDE 4063 */ 4064 KEY_INPUT_DIVIDE = 0xB5, 4065 4066 /** 4067 * テンキーのエンターキー D_DIK_NUMPADENTER 4068 */ 4069 KEY_INPUT_NUMPADENTER = 0x9C, 4070 4071 /** 4072 * F1キー D_DIK_F1 4073 */ 4074 KEY_INPUT_F1 = 0x3B, 4075 4076 /** 4077 * F2キー D_DIK_F2 4078 */ 4079 KEY_INPUT_F2 = 0x3C, 4080 4081 /** 4082 * F3キー D_DIK_F3 4083 */ 4084 KEY_INPUT_F3 = 0x3D, 4085 4086 /** 4087 * F4キー D_DIK_F4 4088 */ 4089 KEY_INPUT_F4 = 0x3E, 4090 4091 /** 4092 * F5キー D_DIK_F5 4093 */ 4094 KEY_INPUT_F5 = 0x3F, 4095 4096 /** 4097 * F6キー D_DIK_F6 4098 */ 4099 KEY_INPUT_F6 = 0x40, 4100 4101 /** 4102 * F7キー D_DIK_F7 4103 */ 4104 KEY_INPUT_F7 = 0x41, 4105 4106 /** 4107 * F8キー D_DIK_F8 4108 */ 4109 KEY_INPUT_F8 = 0x42, 4110 4111 /** 4112 * F9キー D_DIK_F9 4113 */ 4114 KEY_INPUT_F9 = 0x43, 4115 4116 /** 4117 * F10キー D_DIK_F10 4118 */ 4119 KEY_INPUT_F10 = 0x44, 4120 4121 /** 4122 * F11キー D_DIK_F11 4123 */ 4124 KEY_INPUT_F11 = 0x57, 4125 4126 /** 4127 * F12キー D_DIK_F12 4128 */ 4129 KEY_INPUT_F12 = 0x58, 4130 4131 /** 4132 * Aキー D_DIK_A 4133 */ 4134 KEY_INPUT_A = 0x1E, 4135 4136 /** 4137 * Bキー D_DIK_B 4138 */ 4139 KEY_INPUT_B = 0x30, 4140 4141 /** 4142 * Cキー D_DIK_C 4143 */ 4144 KEY_INPUT_C = 0x2E, 4145 4146 /** 4147 * Dキー D_DIK_D 4148 */ 4149 KEY_INPUT_D = 0x20, 4150 4151 /** 4152 * Eキー D_DIK_E 4153 */ 4154 KEY_INPUT_E = 0x12, 4155 4156 /** 4157 * Fキー D_DIK_F 4158 */ 4159 KEY_INPUT_F = 0x21, 4160 4161 /** 4162 * Gキー D_DIK_G 4163 */ 4164 KEY_INPUT_G = 0x22, 4165 4166 /** 4167 * Hキー D_DIK_H 4168 */ 4169 KEY_INPUT_H = 0x23, 4170 4171 /** 4172 * Iキー D_DIK_I 4173 */ 4174 KEY_INPUT_I = 0x17, 4175 4176 /** 4177 * Jキー D_DIK_J 4178 */ 4179 KEY_INPUT_J = 0x24, 4180 4181 /** 4182 * Kキー D_DIK_K 4183 */ 4184 KEY_INPUT_K = 0x25, 4185 4186 /** 4187 * Lキー D_DIK_L 4188 */ 4189 KEY_INPUT_L = 0x26, 4190 4191 /** 4192 * Mキー D_DIK_M 4193 */ 4194 KEY_INPUT_M = 0x32, 4195 4196 /** 4197 * Nキー D_DIK_N 4198 */ 4199 KEY_INPUT_N = 0x31, 4200 4201 /** 4202 * Oキー D_DIK_O 4203 */ 4204 KEY_INPUT_O = 0x18, 4205 4206 /** 4207 * Pキー D_DIK_P 4208 */ 4209 KEY_INPUT_P = 0x19, 4210 4211 /** 4212 * Qキー D_DIK_Q 4213 */ 4214 KEY_INPUT_Q = 0x10, 4215 4216 /** 4217 * Rキー D_DIK_R 4218 */ 4219 KEY_INPUT_R = 0x13, 4220 4221 /** 4222 * Sキー D_DIK_S 4223 */ 4224 KEY_INPUT_S = 0x1F, 4225 4226 /** 4227 * Tキー D_DIK_T 4228 */ 4229 KEY_INPUT_T = 0x14, 4230 4231 /** 4232 * Uキー D_DIK_U 4233 */ 4234 KEY_INPUT_U = 0x16, 4235 4236 /** 4237 * Vキー D_DIK_V 4238 */ 4239 KEY_INPUT_V = 0x2F, 4240 4241 /** 4242 * Wキー D_DIK_W 4243 */ 4244 KEY_INPUT_W = 0x11, 4245 4246 /** 4247 * Xキー D_DIK_X 4248 */ 4249 KEY_INPUT_X = 0x2D, 4250 4251 /** 4252 * Yキー D_DIK_Y 4253 */ 4254 KEY_INPUT_Y = 0x15, 4255 4256 /** 4257 * Zキー D_DIK_Z 4258 */ 4259 KEY_INPUT_Z = 0x2C, 4260 4261 /** 4262 * 0キー D_DIK_0 4263 */ 4264 KEY_INPUT_0 = 0x0B, 4265 4266 /** 4267 * 1キー D_DIK_1 4268 */ 4269 KEY_INPUT_1 = 0x02, 4270 4271 /** 4272 * 2キー D_DIK_2 4273 */ 4274 KEY_INPUT_2 = 0x03, 4275 4276 /** 4277 * 3キー D_DIK_3 4278 */ 4279 KEY_INPUT_3 = 0x04, 4280 4281 /** 4282 * 4キー D_DIK_4 4283 */ 4284 KEY_INPUT_4 = 0x05, 4285 4286 /** 4287 * 5キー D_DIK_5 4288 */ 4289 KEY_INPUT_5 = 0x06, 4290 4291 /** 4292 * 6キー D_DIK_6 4293 */ 4294 KEY_INPUT_6 = 0x07, 4295 4296 /** 4297 * 7キー D_DIK_7 4298 */ 4299 KEY_INPUT_7 = 0x08, 4300 4301 /** 4302 * 8キー D_DIK_8 4303 */ 4304 KEY_INPUT_8 = 0x09, 4305 4306 /** 4307 * 9キー D_DIK_9 4308 */ 4309 KEY_INPUT_9 = 0x0A, 4310 } 4311 4312 /** 4313 * アスキーコントロールキーコード 4314 */ 4315 enum 4316 { 4317 /** 4318 * バックスペース 4319 */ 4320 CTRL_CODE_BS = 0x08, 4321 4322 /** 4323 * タブ 4324 */ 4325 CTRL_CODE_TAB = 0x09, 4326 4327 /** 4328 * 改行 4329 */ 4330 CTRL_CODE_CR = 0x0D, 4331 4332 /** 4333 * DELキー 4334 */ 4335 CTRL_CODE_DEL = 0x10, 4336 4337 /** 4338 * コピー 4339 */ 4340 CTRL_CODE_COPY = 0x03, 4341 4342 /** 4343 * ペースト 4344 */ 4345 CTRL_CODE_PASTE = 0x16, 4346 4347 /** 4348 * カット 4349 */ 4350 CTRL_CODE_CUT = 0x18, 4351 4352 /** 4353 * 全て選択 4354 */ 4355 CTRL_CODE_ALL = 0x01, 4356 4357 /** 4358 * ←キー 4359 */ 4360 CTRL_CODE_LEFT = 0x1D, 4361 4362 /** 4363 * →キー 4364 */ 4365 CTRL_CODE_RIGHT = 0x1C, 4366 4367 /** 4368 * ↑キー 4369 */ 4370 CTRL_CODE_UP = 0x1E, 4371 4372 /** 4373 * ↓キー 4374 */ 4375 CTRL_CODE_DOWN = 0x1F, 4376 4377 /** 4378 * HOMEボタン 4379 */ 4380 CTRL_CODE_HOME = 0x1A, 4381 4382 /** 4383 * ENDボタン 4384 */ 4385 CTRL_CODE_END = 0x19, 4386 4387 /** 4388 * PAGE UP 4389 */ 4390 CTRL_CODE_PAGE_UP = 0x17, 4391 4392 /** 4393 * PAGE DOWN 4394 */ 4395 CTRL_CODE_PAGE_DOWN = 0x15, 4396 4397 /** 4398 * ESCキー 4399 */ 4400 CTRL_CODE_ESC = 0x1B, 4401 4402 /** 4403 * 制御コード敷居値 4404 */ 4405 CTRL_CODE_CMP = 0x20, 4406 } 4407 4408 /** 4409 * SetKeyInputStringColor2に渡す色変更対象を指定するための識別子 4410 */ 4411 enum 4412 { 4413 /** 4414 * 入力文字列の色 4415 */ 4416 DX_KEYINPSTRCOLOR_NORMAL_STR = 0, 4417 4418 /** 4419 * 入力文字列の縁の色 4420 */ 4421 DX_KEYINPSTRCOLOR_NORMAL_STR_EDGE = 1, 4422 4423 /** 4424 * IME非使用時のカーソルの色 4425 */ 4426 DX_KEYINPSTRCOLOR_NORMAL_CURSOR = 2, 4427 4428 /** 4429 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の色 4430 */ 4431 DX_KEYINPSTRCOLOR_SELECT_STR = 3, 4432 4433 /** 4434 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の縁の色 4435 */ 4436 DX_KEYINPSTRCOLOR_SELECT_STR_EDGE = 4, 4437 4438 /** 4439 * 入力文字列の選択部分(SHIFTキーを押しながら左右キーで選択)の周りの色 4440 */ 4441 DX_KEYINPSTRCOLOR_SELECT_STR_BACK = 5, 4442 4443 /** 4444 * IME使用時の入力文字列の色 4445 */ 4446 DX_KEYINPSTRCOLOR_IME_STR = 6, 4447 4448 /** 4449 * IME使用時の入力文字列の縁の色 4450 */ 4451 DX_KEYINPSTRCOLOR_IME_STR_EDGE = 7, 4452 4453 /** 4454 * IME使用時の入力文字列の周りの色 4455 */ 4456 DX_KEYINPSTRCOLOR_IME_STR_BACK = 8, 4457 4458 /** 4459 * IME使用時のカーソルの色 4460 */ 4461 DX_KEYINPSTRCOLOR_IME_CURSOR = 9, 4462 4463 /** 4464 * IME使用時の変換文字列の下線の色 4465 */ 4466 DX_KEYINPSTRCOLOR_IME_LINE = 10, 4467 4468 /** 4469 * IME使用時の選択対象の変換候補文字列の色 4470 */ 4471 DX_KEYINPSTRCOLOR_IME_SELECT_STR = 11, 4472 4473 /** 4474 * IME使用時の選択対象の変換候補文字列の縁の色 4475 */ 4476 DX_KEYINPSTRCOLOR_IME_SELECT_STR_EDGE = 12, 4477 4478 /** 4479 * IME使用時の選択対象の変換候補文字列の周りの色 4480 */ 4481 DX_KEYINPSTRCOLOR_IME_SELECT_STR_BACK = 13, 4482 4483 /** 4484 * IME使用時の変換候補ウインドウ内の文字列の色 4485 */ 4486 DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR = 14, 4487 4488 /** 4489 * IME使用時の変換候補ウインドウ内の文字列の縁の色 4490 */ 4491 DX_KEYINPSTRCOLOR_IME_CONV_WIN_STR_EDGE = 15, 4492 4493 /** 4494 * IME使用時の変換候補ウインドウ内で選択している文字列の色 4495 */ 4496 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR = 16, 4497 4498 /** 4499 * IME使用時の変換候補ウインドウ内で選択している文字列の縁の色 4500 */ 4501 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_EDGE = 17, 4502 4503 /** 4504 * IME使用時の変換候補ウインドウ内で選択している文字列の周りの色 4505 */ 4506 DX_KEYINPSTRCOLOR_IME_CONV_WIN_SELECT_STR_BACK = 18, 4507 4508 /** 4509 * IME使用時の変換候補ウインドウの縁の色 4510 */ 4511 DX_KEYINPSTRCOLOR_IME_CONV_WIN_EDGE = 19, 4512 4513 /** 4514 * IME使用時の変換候補ウインドウの下地の色 4515 */ 4516 DX_KEYINPSTRCOLOR_IME_CONV_WIN_BACK = 20, 4517 4518 /** 4519 * IME使用時の入力モード文字列の色(『全角ひらがな』等) 4520 */ 4521 DX_KEYINPSTRCOLOR_IME_MODE_STR = 21, 4522 4523 /** 4524 * IME使用時の入力モード文字列の縁の色 4525 */ 4526 DX_KEYINPSTRCOLOR_IME_MODE_STR_EDGE = 22, 4527 4528 /** 4529 * ? 4530 */ 4531 DX_KEYINPSTRCOLOR_NUM = 23, 4532 } 4533 4534 /** 4535 * 文字列入力処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モード 4536 */ 4537 enum 4538 { 4539 /** 4540 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、最後の文字を上書き(デフォルト) 4541 */ 4542 DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE = 0, 4543 4544 /** 4545 * 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、何も変化しない 4546 */ 4547 DX_KEYINPSTR_ENDCHARAMODE_NOTCHANGE = 1, 4548 } 4549 4550 /** 4551 * フルスクリーン解像度モード定義 4552 */ 4553 enum 4554 { 4555 /** 4556 * モニターの画面モードをデスクトップ画面と同じにしてDXライブラリ画面を拡大して表示するモード 4557 */ 4558 DX_FSRESOLUTIONMODE_DESKTOP = 0, 4559 4560 /** 4561 * モニターの解像度をDXライブラリ画面の解像度に合わせるモード 4562 */ 4563 DX_FSRESOLUTIONMODE_NATIVE = 1, 4564 4565 /** 4566 * モニターの解像度を最大にしてDXライブラリ画面を拡大して表示するモード 4567 */ 4568 DX_FSRESOLUTIONMODE_MAXIMUM = 2, 4569 } 4570 4571 /** 4572 * フルスクリーン拡大モード定義 4573 */ 4574 enum 4575 { 4576 /** 4577 * バイリニアモード(ピクセルが滲んでピクセルとピクセルの区切りがはっきりしない) 4578 */ 4579 DX_FSSCALINGMODE_BILINEAR = 0, 4580 4581 /** 4582 * 最近点モード(ピクセルが四角くくっきり表示される) 4583 */ 4584 DX_FSSCALINGMODE_NEAREST = 1, 4585 } 4586 4587 /** 4588 * SetGraphMode 戻り値定義 4589 */ 4590 enum 4591 { 4592 /** 4593 * 画面変更は成功した 4594 */ 4595 DX_CHANGESCREEN_OK = 0, 4596 4597 /** 4598 * 画面の変更は失敗し、元の画面モードに戻された 4599 */ 4600 DX_CHANGESCREEN_RETURN = -1, 4601 4602 /** 4603 * 画面の変更は失敗しデフォルトの画面モードに変更された 4604 */ 4605 DX_CHANGESCREEN_DEFAULT = -2, 4606 4607 /** 4608 * 画面の変更は成功したが、リフレッシュレートの変更は失敗した 4609 */ 4610 DX_CHANGESCREEN_REFRESHNORMAL = -3, 4611 } 4612 4613 // ストリームデータ読み込み処理コード簡略化関連 4614 /+ 4615 #define STTELL(st) ((st)->ReadShred.Tell((st)->DataPoint)) 4616 #define STSEEK(st, pos, type) ((st)->ReadShred.Seek((st)->DataPoint, (pos), (type))) 4617 #define STREAD(buf, length, num, st) ((st)->ReadShred.Read((buf), (length), (num), (st)->DataPoint)) 4618 #define STWRITE(buf, length, num, st) ((st)->ReadShred.Write((buf), (length), (num), (st)->DataPoint)) 4619 #define STEOF(st) ((st)->ReadShred.Eof((st)->DataPoint)) 4620 #define STCLOSE(st) ((st)->ReadShred.Close((st)->DataPoint)) 4621 +/ 4622 4623 /** 4624 * ストリームデータ制御のシークタイプ定義 4625 */ 4626 enum 4627 { 4628 /** 4629 * ? 4630 */ 4631 STREAM_SEEKTYPE_SET = SEEK_SET, 4632 4633 /** 4634 * ? 4635 */ 4636 STREAM_SEEKTYPE_END = SEEK_END, 4637 4638 /** 4639 * ? 4640 */ 4641 STREAM_SEEKTYPE_CUR = SEEK_CUR, 4642 } 4643 4644 /** 4645 * グラフィックロード時のイメージタイプ 4646 */ 4647 enum 4648 { 4649 /** 4650 * イメージはファイルである 4651 */ 4652 LOADIMAGE_TYPE_FILE = 0, 4653 4654 /** 4655 * イメージはメモリである 4656 */ 4657 LOADIMAGE_TYPE_MEM = 1, 4658 4659 /** 4660 * イメージは無い 4661 */ 4662 LOADIMAGE_TYPE_NONE = -1, 4663 } 4664 4665 version (DX_NON_NETWORK) { 4666 } else { 4667 /** 4668 * HTTP エラー 4669 */ 4670 enum 4671 { 4672 /** 4673 * サーバーエラー 4674 */ 4675 HTTP_ERR_SERVER = 0, 4676 4677 /** 4678 * ファイルが見つからなかった 4679 */ 4680 HTTP_ERR_NOTFOUND = 1, 4681 4682 /** 4683 * メモリ確保の失敗 4684 */ 4685 HTTP_ERR_MEMORY = 2, 4686 4687 /** 4688 * 途中で切断された 4689 */ 4690 HTTP_ERR_LOST = 3, 4691 4692 /** 4693 * エラーは報告されていない 4694 */ 4695 HTTP_ERR_NONE = -1, 4696 } 4697 4698 /** 4699 * HTTP 処理の結果 4700 */ 4701 enum 4702 { 4703 /** 4704 * 処理完了 4705 */ 4706 HTTP_RES_COMPLETE = 0, 4707 4708 /** 4709 * 処理中止 4710 */ 4711 HTTP_RES_STOP = 1, 4712 4713 /** 4714 * エラー終了 4715 */ 4716 HTTP_RES_ERROR = 2, 4717 4718 /** 4719 * 現在進行中 4720 */ 4721 HTTP_RES_NOW = -1, 4722 } 4723 } 4724 4725 // データ型定義------------------------------------------------------------------- 4726 4727 // WAVEFORMATEXの定義 4728 version (_WAVEFORMATEX_) { 4729 } else { 4730 package struct tWAVEFORMATEX 4731 { 4732 /** 4733 * フォーマット(WAVE_FORMAT_PCM(値は1)等) 4734 */ 4735 dxlib_d.DxDataType.WORD wFormatTag; 4736 4737 /** 4738 * チャンネル数 4739 */ 4740 dxlib_d.DxDataType.WORD nChannels; 4741 4742 /** 4743 * 1秒辺りのサンプル数 4744 */ 4745 dxlib_d.DxDataType.DWORD nSamplesPerSec; 4746 4747 /** 4748 * 1秒辺りのバイト数(PCMの場合 nSamplesPerSec * nBlockAlign) 4749 */ 4750 dxlib_d.DxDataType.DWORD nAvgBytesPerSec; 4751 4752 /** 4753 * 全チャンネルの1サンプルを合わせたバイト数(wBitsPerSample / 8 * nChannels) 4754 */ 4755 dxlib_d.DxDataType.WORD nBlockAlign; 4756 4757 /** 4758 * 1サンプル辺りのビット数 4759 */ 4760 dxlib_d.DxDataType.WORD wBitsPerSample; 4761 4762 /** 4763 * 拡張情報のバイト数(拡張情報が無い場合は0) 4764 */ 4765 dxlib_d.DxDataType.WORD cbSize; 4766 } 4767 4768 public alias WAVEFORMATEX = .tWAVEFORMATEX; 4769 public alias PWAVEFORMATEX = .tWAVEFORMATEX*; 4770 public alias NPWAVEFORMATEX = /* NEAR */ .tWAVEFORMATEX*; 4771 public alias LPWAVEFORMATEX = /* FAR */ .tWAVEFORMATEX*; 4772 } 4773 4774 // WAVEFORMATの定義 4775 version (WAVE_FORMAT_PCM) { 4776 } else { 4777 package struct waveformat_tag 4778 { 4779 /** 4780 * フォーマット(WAVE_FORMAT_PCM(値は1)等) 4781 */ 4782 dxlib_d.DxDataType.WORD wFormatTag; 4783 4784 /** 4785 * チャンネル数 4786 */ 4787 dxlib_d.DxDataType.WORD nChannels; 4788 4789 /** 4790 * 1秒辺りのサンプル数 4791 */ 4792 dxlib_d.DxDataType.DWORD nSamplesPerSec; 4793 4794 /** 4795 * 1秒辺りのバイト数(PCMの場合 nSamplesPerSec * nBlockAlign) 4796 */ 4797 dxlib_d.DxDataType.DWORD nAvgBytesPerSec; 4798 4799 /** 4800 * 全チャンネルの1サンプルを合わせたバイト数(wBitsPerSample / 8 * nChannels) 4801 */ 4802 dxlib_d.DxDataType.WORD nBlockAlign; 4803 } 4804 4805 public alias WAVEFORMAT = .waveformat_tag; 4806 public alias PWAVEFORMAT = .waveformat_tag*; 4807 public alias NPWAVEFORMAT = /* NEAR */ .waveformat_tag*; 4808 public alias LPWAVEFORMAT = /* FAR */ .waveformat_tag*; 4809 4810 enum WAVE_FORMAT_PCM = 1; 4811 } 4812 4813 extern (C++, DxLib) { 4814 /** 4815 * IME入力文字列の描画に必要な情報の内の文節情報 4816 */ 4817 package struct tagIMEINPUTCLAUSEDATA 4818 { 4819 /** 4820 * 何文字目から 4821 */ 4822 int Position; 4823 4824 /** 4825 * 何文字か 4826 */ 4827 int Length; 4828 } 4829 4830 public alias IMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA; 4831 public alias LPIMEINPUTCLAUSEDATA = .tagIMEINPUTCLAUSEDATA*; 4832 4833 /** 4834 * IME入力文字列の描画に必要な情報 4835 */ 4836 package struct tagIMEINPUTDATA 4837 { 4838 /** 4839 * 入力中の文字列 4840 */ 4841 const (dxlib_d.DxDataType.TCHAR)* InputString; 4842 4843 /** 4844 * カーソルの入力文字列中の位置(バイト単位) 4845 */ 4846 int CursorPosition; 4847 4848 /** 4849 * 文節情報 4850 */ 4851 const (.IMEINPUTCLAUSEDATA)* ClauseData; 4852 4853 /** 4854 * 文節情報の数 4855 */ 4856 int ClauseNum; 4857 4858 /** 4859 * 選択中の分節(-1の場合はどの文節にも属していない(末尾にカーソルがある)) 4860 */ 4861 int SelectClause; 4862 4863 /** 4864 * 変換候補の数(0の場合は変換中ではない) 4865 */ 4866 int CandidateNum; 4867 4868 /** 4869 * 変換候補文字列リスト(例:n番目の候補を描画する場合 DrawString(0, 0, data.CandidateList[n], GetColor(255,255,255));) 4870 */ 4871 const (dxlib_d.DxDataType.TCHAR)** CandidateList; 4872 4873 /** 4874 * 選択中の変換候補 4875 */ 4876 int SelectCandidate; 4877 4878 /** 4879 * 文字変換中かどうか(dxlib_d.DxDataType.TRUE:変換中 dxlib_d.DxDataType.FALSE:変換中ではない(文字単位でカーソルが移動できる状態)) 4880 */ 4881 int ConvertFlag; 4882 } 4883 4884 public alias IMEINPUTDATA = .tagIMEINPUTDATA; 4885 public alias LPIMEINPUTDATA = .tagIMEINPUTDATA*; 4886 4887 /** 4888 * 描画文字列1文字の情報 4889 */ 4890 package struct tagDRAWCHARINFO 4891 { 4892 /** 4893 * 文字 4894 */ 4895 dxlib_d.DxDataType.TCHAR[14] Char = '\0'; 4896 4897 /** 4898 * 文字のバイト数 4899 */ 4900 dxlib_d.DxDataType.WORD Bytes; 4901 4902 /** 4903 * 描画位置 X 4904 */ 4905 float DrawX = 0; 4906 4907 /** 4908 * 描画位置 Y 4909 */ 4910 float DrawY = 0; 4911 4912 /** 4913 * 描画サイズ Y 4914 */ 4915 float SizeX = 0; 4916 4917 /** 4918 * 描画サイズ Y 4919 */ 4920 float SizeY = 0; 4921 } 4922 4923 public alias DRAWCHARINFO = .tagDRAWCHARINFO; 4924 public alias LPDRAWCHARINFO = .tagDRAWCHARINFO*; 4925 4926 /** 4927 * 画面モード情報データ型 4928 */ 4929 package struct tagDISPLAYMODEDATA 4930 { 4931 /** 4932 * 水平解像度 4933 */ 4934 int Width; 4935 4936 /** 4937 * 垂直解像度 4938 */ 4939 int Height; 4940 4941 /** 4942 * 色ビット深度 4943 */ 4944 int ColorBitDepth; 4945 4946 /** 4947 * リフレッシュレート(-1の場合は規定値) 4948 */ 4949 int RefreshRate; 4950 } 4951 4952 public alias DISPLAYMODEDATA = .tagDISPLAYMODEDATA; 4953 public alias LPDISPLAYMODEDATA = .tagDISPLAYMODEDATA*; 4954 4955 /** 4956 * タイムデータ型 4957 */ 4958 package struct tagDATEDATA 4959 { 4960 /** 4961 * 年 4962 */ 4963 int Year; 4964 4965 /** 4966 * 月 4967 */ 4968 int Mon; 4969 4970 /** 4971 * 日 4972 */ 4973 int Day; 4974 4975 /** 4976 * 時間 4977 */ 4978 int Hour; 4979 4980 /** 4981 * 分 4982 */ 4983 int Min; 4984 4985 /** 4986 * 秒 4987 */ 4988 int Sec; 4989 } 4990 4991 public alias DATEDATA = .tagDATEDATA; 4992 public alias LPDATEDATA = .tagDATEDATA*; 4993 4994 /** 4995 * ファイル情報構造体 4996 */ 4997 package struct tagFILEINFO 4998 { 4999 /** 5000 * オブジェクト名 5001 */ 5002 dxlib_d.DxDataType.TCHAR[260] Name = '\0'; 5003 5004 /** 5005 * ディレクトリかどうか(dxlib_d.DxDataType.TRUE:ディレクトリ dxlib_d.DxDataType.FALSE:ファイル) 5006 */ 5007 int DirFlag; 5008 5009 /** 5010 * サイズ 5011 */ 5012 dxlib_d.DxDataType.LONGLONG Size; 5013 5014 /** 5015 * 作成日時 5016 */ 5017 .DATEDATA CreationTime; 5018 5019 /** 5020 * 最終更新日時 5021 */ 5022 .DATEDATA LastWriteTime; 5023 } 5024 5025 public alias FILEINFO = .tagFILEINFO; 5026 public alias LPFILEINFO = .tagFILEINFO*; 5027 5028 /** 5029 * ファイル情報構造体(wchar_t版) 5030 */ 5031 package struct tagFILEINFOW 5032 { 5033 /** 5034 * オブジェクト名 5035 */ 5036 .wchar_t[260] Name = '\0'; 5037 5038 /** 5039 * ディレクトリかどうか(dxlib_d.DxDataType.TRUE:ディレクトリ dxlib_d.DxDataType.FALSE:ファイル) 5040 */ 5041 int DirFlag; 5042 5043 /** 5044 * サイズ 5045 */ 5046 dxlib_d.DxDataType.LONGLONG Size; 5047 5048 /** 5049 * 作成日時 5050 */ 5051 .DATEDATA CreationTime; 5052 5053 /** 5054 * 最終更新日時 5055 */ 5056 .DATEDATA LastWriteTime; 5057 } 5058 5059 public alias FILEINFOW = .tagFILEINFOW; 5060 public alias LPFILEINFOW = .tagFILEINFOW*; 5061 5062 /** 5063 * 行列構造体 5064 */ 5065 package struct tagMATRIX 5066 { 5067 float[4][4] m = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]; 5068 } 5069 5070 public alias MATRIX = .tagMATRIX; 5071 public alias LPMATRIX = .tagMATRIX*; 5072 5073 package struct tagMATRIX_D 5074 { 5075 double[4][4] m = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]; 5076 } 5077 5078 public alias MATRIX_D = .tagMATRIX_D; 5079 public alias LPMATRIX_D = .tagMATRIX_D*; 5080 5081 /** 5082 * ベクトルデータ型 5083 */ 5084 package struct tagVECTOR 5085 { 5086 float x = 0; 5087 float y = 0; 5088 float z = 0; 5089 } 5090 5091 public alias VECTOR = .tagVECTOR; 5092 public alias LPVECTOR = .tagVECTOR*; 5093 public alias FLOAT3 = .tagVECTOR; 5094 public alias LPFLOAT3 = .tagVECTOR*; 5095 5096 package struct tagVECTOR_D 5097 { 5098 double x = 0; 5099 double y = 0; 5100 double z = 0; 5101 } 5102 5103 public alias VECTOR_D = .tagVECTOR_D; 5104 public alias LPVECTOR_D = .tagVECTOR_D*; 5105 public alias DOUBLE3 = .tagVECTOR_D; 5106 public alias LPDOUBLE3 = .tagVECTOR_D*; 5107 5108 /** 5109 * FLOAT2個データ型 5110 */ 5111 package struct tagFLOAT2 5112 { 5113 float u = 0; 5114 float v = 0; 5115 } 5116 5117 public alias FLOAT2 = .tagFLOAT2; 5118 5119 /** 5120 * float型のカラー値 5121 */ 5122 package struct tagCOLOR_F 5123 { 5124 float r = 0; 5125 float g = 0; 5126 float b = 0; 5127 float a = 0; 5128 } 5129 5130 public alias COLOR_F = .tagCOLOR_F; 5131 public alias LPCOLOR_F = .tagCOLOR_F*; 5132 5133 /** 5134 * ubyte型のカラー値 5135 */ 5136 package struct tagCOLOR_U8 5137 { 5138 dxlib_d.DxDataType.BYTE b; 5139 dxlib_d.DxDataType.BYTE g; 5140 dxlib_d.DxDataType.BYTE r; 5141 dxlib_d.DxDataType.BYTE a; 5142 } 5143 5144 public alias COLOR_U8 = .tagCOLOR_U8; 5145 5146 /** 5147 * FLOAT4個データ型 5148 */ 5149 package struct tagFLOAT4 5150 { 5151 float x = 0; 5152 float y = 0; 5153 float z = 0; 5154 float w = 0; 5155 } 5156 5157 public alias FLOAT4 = .tagFLOAT4; 5158 public alias LPFLOAT4 = .tagFLOAT4*; 5159 5160 /** 5161 * DOUBLE4個データ型 5162 */ 5163 package struct tagDOUBLE4 5164 { 5165 double x = 0; 5166 double y = 0; 5167 double z = 0; 5168 double w = 0; 5169 } 5170 5171 public alias DOUBLE4 = .tagDOUBLE4; 5172 public alias LPDOUBLE4 = .tagDOUBLE4*; 5173 5174 /** 5175 * INT4個データ型 5176 */ 5177 package struct tagINT4 5178 { 5179 int x; 5180 int y; 5181 int z; 5182 int w; 5183 } 5184 5185 public alias INT4 = .tagINT4; 5186 5187 version (DX_NOTUSE_DRAWFUNCTION) { 5188 } else { 5189 /** 5190 * 2D描画に使用する頂点データ型(DrawPrimitive2D用) 5191 */ 5192 package struct tagVERTEX2D 5193 { 5194 .VECTOR pos; 5195 float rhw = 0; 5196 .COLOR_U8 dif; 5197 float u = 0; 5198 float v = 0; 5199 } 5200 5201 public alias VERTEX2D = .tagVERTEX2D; 5202 public alias LPVERTEX2D = .tagVERTEX2D*; 5203 5204 /** 5205 * 2D描画に使用する頂点データ型(DrawPrimitive2DToShader用) 5206 */ 5207 package struct tagVERTEX2DSHADER 5208 { 5209 .VECTOR pos; 5210 float rhw = 0; 5211 .COLOR_U8 dif; 5212 .COLOR_U8 spc; 5213 float u = 0; 5214 float v = 0; 5215 float su = 0; 5216 float sv = 0; 5217 } 5218 5219 public alias VERTEX2DSHADER = .tagVERTEX2DSHADER; 5220 public alias LPVERTEX2DSHADER = .tagVERTEX2DSHADER*; 5221 5222 /** 5223 * 2D描画に使用する頂点データ型(公開用) 5224 */ 5225 package struct tagVERTEX 5226 { 5227 float x = 0; 5228 float y = 0; 5229 float u = 0; 5230 float v = 0; 5231 ubyte b; 5232 ubyte g; 5233 ubyte r; 5234 ubyte a; 5235 } 5236 5237 public alias VERTEX = .tagVERTEX; 5238 5239 /** 5240 * 3D描画に使用する頂点データ型(旧バージョンのもの) 5241 */ 5242 package struct tagVERTEX_3D 5243 { 5244 .VECTOR pos; 5245 ubyte b; 5246 ubyte g; 5247 ubyte r; 5248 ubyte a; 5249 float u = 0; 5250 float v = 0; 5251 } 5252 5253 public alias VERTEX_3D = .tagVERTEX_3D; 5254 public alias LPVERTEX_3D = .tagVERTEX_3D*; 5255 5256 /** 5257 * 3D描画に使用する頂点データ型 5258 */ 5259 package struct tagVERTEX3D 5260 { 5261 /** 5262 * 座標 5263 */ 5264 .VECTOR pos; 5265 5266 /** 5267 * 法線 5268 */ 5269 .VECTOR norm; 5270 5271 /** 5272 * ディフューズカラー 5273 */ 5274 .COLOR_U8 dif; 5275 5276 /** 5277 * スペキュラカラー 5278 */ 5279 .COLOR_U8 spc; 5280 5281 /** 5282 * テクスチャ座標 5283 */ 5284 float u = 0; 5285 5286 /** 5287 * テクスチャ座標 5288 */ 5289 float v = 0; 5290 5291 /** 5292 * 補助テクスチャ座標 5293 */ 5294 float su = 0; 5295 5296 /** 5297 * 補助テクスチャ座標 5298 */ 5299 float sv = 0; 5300 } 5301 5302 public alias VERTEX3D = .tagVERTEX3D; 5303 public alias LPVERTEX3D = .tagVERTEX3D*; 5304 5305 /** 5306 * 3D描画に使用する頂点データ型(DrawPrimitive3DToShader用) 5307 * 注意…メンバ変数に追加があるかもしれませんので、宣言時の初期化(VERTEX3DSHADER Vertex = { 0.0f, 0.0f, ...というようなもの)はしない方が良いです 5308 */ 5309 package struct tagVERTEX3DSHADER 5310 { 5311 /** 5312 * 座標 5313 */ 5314 .VECTOR pos; 5315 5316 /** 5317 * 補助座標 5318 */ 5319 .FLOAT4 spos; 5320 5321 /** 5322 * 法線 5323 */ 5324 .VECTOR norm; 5325 5326 /** 5327 * 接線 5328 */ 5329 .VECTOR tan; 5330 5331 /** 5332 * 従法線 5333 */ 5334 .VECTOR binorm; 5335 5336 /** 5337 * ディフューズカラー 5338 */ 5339 .COLOR_U8 dif; 5340 5341 /** 5342 * スペキュラカラー 5343 */ 5344 .COLOR_U8 spc; 5345 5346 /** 5347 * テクスチャ座標 5348 */ 5349 float u = 0; 5350 5351 /** 5352 * テクスチャ座標 5353 */ 5354 float v = 0; 5355 5356 /** 5357 * 補助テクスチャ座標 5358 */ 5359 float su = 0; 5360 5361 /** 5362 * 補助テクスチャ座標 5363 */ 5364 float sv = 0; 5365 } 5366 5367 public alias VERTEX3DSHADER = .tagVERTEX3DSHADER; 5368 public alias LPVERTEX3DSHADER = .tagVERTEX3DSHADER*; 5369 5370 /** 5371 * ライトパラメータ 5372 */ 5373 package struct tagLIGHTPARAM 5374 { 5375 /** 5376 * ライトのタイプ(DX_LIGHTTYPE_D3DLIGHT_POINT等) 5377 */ 5378 int LightType; 5379 5380 /** 5381 * ディフューズカラー 5382 */ 5383 .COLOR_F Diffuse; 5384 5385 /** 5386 * スペキュラカラー 5387 */ 5388 .COLOR_F Specular; 5389 5390 /** 5391 * アンビエント色 5392 */ 5393 .COLOR_F Ambient; 5394 5395 /** 5396 * 位置 5397 */ 5398 .VECTOR Position; 5399 5400 /** 5401 * 方向 5402 */ 5403 .VECTOR Direction; 5404 5405 /** 5406 * 有効距離 5407 */ 5408 float Range = 0; 5409 5410 /** 5411 * フォールオフ 1.0fにしておくのが好ましい 5412 */ 5413 float Falloff = 0; 5414 5415 /** 5416 * 距離による減衰係数0 5417 */ 5418 float Attenuation0 = 0; 5419 5420 /** 5421 * 距離による減衰係数1 5422 */ 5423 float Attenuation1 = 0; 5424 5425 /** 5426 * 距離による減衰係数2 5427 */ 5428 float Attenuation2 = 0; 5429 5430 /** 5431 * スポットライトの内部コーンの照明角度(ラジアン) 5432 */ 5433 float Theta = 0; 5434 5435 /** 5436 * スポットライトの外部コーンの照明角度 5437 */ 5438 float Phi = 0; 5439 } 5440 5441 alias LIGHTPARAM = .tagLIGHTPARAM; 5442 5443 /** 5444 * マテリアルパラメータ 5445 */ 5446 package struct tagMATERIALPARAM 5447 { 5448 /** 5449 * ディフューズカラー 5450 */ 5451 .COLOR_F Diffuse; 5452 5453 /** 5454 * アンビエントカラー 5455 */ 5456 .COLOR_F Ambient; 5457 5458 /** 5459 * スペキュラカラー 5460 */ 5461 .COLOR_F Specular; 5462 5463 /** 5464 * エミッシブカラー 5465 */ 5466 .COLOR_F Emissive; 5467 5468 /** 5469 * スペキュラハイライトの鮮明度 5470 */ 5471 float Power = 0; 5472 } 5473 5474 alias MATERIALPARAM = .tagMATERIALPARAM; 5475 } 5476 5477 /** 5478 * ラインヒットチェック結果格納用構造体 5479 */ 5480 package struct tagHITRESULT_LINE 5481 { 5482 /** 5483 * 当たったかどうか(1:当たった 0:当たらなかった) 5484 */ 5485 int HitFlag; 5486 5487 /** 5488 * 当たった座標 5489 */ 5490 .VECTOR Position; 5491 } 5492 5493 public alias HITRESULT_LINE = .tagHITRESULT_LINE; 5494 5495 /** 5496 * ラインヒットチェック結果格納用構造体 5497 */ 5498 package struct tagHITRESULT_LINE_D 5499 { 5500 /** 5501 * 当たったかどうか(1:当たった 0:当たらなかった) 5502 */ 5503 int HitFlag; 5504 5505 /** 5506 * 当たった座標 5507 */ 5508 .VECTOR_D Position; 5509 } 5510 5511 public alias HITRESULT_LINE_D = .tagHITRESULT_LINE_D; 5512 5513 /** 5514 * 関数Segment_Segment_Analyseの結果を受け取る為の構造体 5515 */ 5516 package struct tagSEGMENT_SEGMENT_RESULT 5517 { 5518 /** 5519 * 線分Aと線分Bが最も接近する座標間の距離の二乗 5520 */ 5521 float SegA_SegB_MinDist_Square = 0; 5522 5523 /** 5524 * 線分Aと線分Bに最も接近する座標の線分Aのt(0.0f~1.0f、最近点座標 = ((SegAPos2 - SegAPos1) * t) + SegAPos1) 5525 */ 5526 float SegA_MinDist_Pos1_Pos2_t = 0; 5527 5528 /** 5529 * 線分Bが線分Aに最も接近する座標の線分Bのt(0.0f~1.0f、最近点座標 = ((SegBPos2 - SegBPos1) * t) + SegBPos1) 5530 */ 5531 float SegB_MinDist_Pos1_Pos2_t = 0; 5532 5533 /** 5534 * 線分Aが線分Bに最も接近する線分A上の座標 5535 */ 5536 .VECTOR SegA_MinDist_Pos; 5537 5538 /** 5539 * 線分Bが線分Aに最も接近する線分B上の座標 5540 */ 5541 .VECTOR SegB_MinDist_Pos; 5542 } 5543 5544 public alias SEGMENT_SEGMENT_RESULT = .tagSEGMENT_SEGMENT_RESULT; 5545 5546 /** 5547 * 関数Segment_Segment_Analyseの結果を受け取る為の構造体 5548 */ 5549 package struct tagSEGMENT_SEGMENT_RESULT_D 5550 { 5551 /** 5552 * 線分Aと線分Bが最も接近する座標間の距離の二乗 5553 */ 5554 double SegA_SegB_MinDist_Square = 0; 5555 5556 /** 5557 * 線分Aと線分Bに最も接近する座標の線分Aのt(0.0~1.0、最近点座標 = ((SegAPos2 - SegAPos1) * t) + SegAPos1) 5558 */ 5559 double SegA_MinDist_Pos1_Pos2_t = 0; 5560 5561 /** 5562 * 線分Bが線分Aに最も接近する座標の線分Bのt(0.0~1.0、最近点座標 = ((SegBPos2 - SegBPos1) * t) + SegBPos1) 5563 */ 5564 double SegB_MinDist_Pos1_Pos2_t = 0; 5565 5566 /** 5567 * 線分Aが線分Bに最も接近する線分A上の座標 5568 */ 5569 .VECTOR_D SegA_MinDist_Pos; 5570 5571 /** 5572 * 線分Bが線分Aに最も接近する線分B上の座標 5573 */ 5574 .VECTOR_D SegB_MinDist_Pos; 5575 } 5576 5577 public alias SEGMENT_SEGMENT_RESULT_D = .tagSEGMENT_SEGMENT_RESULT_D; 5578 5579 /** 5580 * 関数Segment_Point_Analyseの結果を受け取る為の構造体 5581 */ 5582 package struct tagSEGMENT_POINT_RESULT 5583 { 5584 /** 5585 * 線分と点が最も接近する座標間の距離の二乗 5586 */ 5587 float Seg_Point_MinDist_Square = 0; 5588 5589 /** 5590 * 線分が点に最も接近する座標の線分のt(0.0f~1.0f、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1) 5591 */ 5592 float Seg_MinDist_Pos1_Pos2_t = 0; 5593 5594 /** 5595 * 線分が点に最も接近する線分上の座標 5596 */ 5597 .VECTOR Seg_MinDist_Pos; 5598 } 5599 5600 public alias SEGMENT_POINT_RESULT = .tagSEGMENT_POINT_RESULT; 5601 5602 /** 5603 * 関数Segment_Point_Analyseの結果を受け取る為の構造体 5604 */ 5605 package struct tagSEGMENT_POINT_RESULT_D 5606 { 5607 /** 5608 * 線分と点が最も接近する座標間の距離の二乗 5609 */ 5610 double Seg_Point_MinDist_Square = 0; 5611 5612 /** 5613 * 線分が点に最も接近する座標の線分のt(0.0~1.0、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1) 5614 */ 5615 double Seg_MinDist_Pos1_Pos2_t = 0; 5616 5617 /** 5618 * 線分が点に最も接近する線分上の座標 5619 */ 5620 .VECTOR_D Seg_MinDist_Pos; 5621 } 5622 5623 public alias SEGMENT_POINT_RESULT_D = .tagSEGMENT_POINT_RESULT_D; 5624 5625 /** 5626 * 関数Segment_Triangle_Analyseの結果を受け取る為の構造体 5627 */ 5628 package struct tagSEGMENT_TRIANGLE_RESULT 5629 { 5630 /** 5631 * 線分と三角形が最も接近する座標間の距離の二乗 5632 */ 5633 float Seg_Tri_MinDist_Square = 0; 5634 5635 /** 5636 * 線分が三角形に最も接近する座標の線分のt(0.0f~1.0f、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1) 5637 */ 5638 float Seg_MinDist_Pos1_Pos2_t = 0; 5639 5640 /** 5641 * 線分が三角形に最も接近する線分上の座標 5642 */ 5643 .VECTOR Seg_MinDist_Pos; 5644 5645 /** 5646 * 三角形が線分に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w)) 5647 */ 5648 float Tri_MinDist_Pos1_w = 0; 5649 5650 /** 5651 * 三角形が線分に最も接近する座標の三角形座標2の重み 5652 */ 5653 float Tri_MinDist_Pos2_w = 0; 5654 5655 /** 5656 * 三角形が線分に最も接近する座標の三角形座標3の重み 5657 */ 5658 float Tri_MinDist_Pos3_w = 0; 5659 5660 /** 5661 * 三角形が線分に最も接近する三角形上の座標 5662 */ 5663 .VECTOR Tri_MinDist_Pos; 5664 } 5665 5666 public alias SEGMENT_TRIANGLE_RESULT = .tagSEGMENT_TRIANGLE_RESULT; 5667 5668 /** 5669 * 関数Segment_Triangle_Analyseの結果を受け取る為の構造体 5670 */ 5671 package struct tagSEGMENT_TRIANGLE_RESULT_D 5672 { 5673 /** 5674 * 線分と三角形が最も接近する座標間の距離の二乗 5675 */ 5676 double Seg_Tri_MinDist_Square = 0; 5677 5678 /** 5679 * 線分が三角形に最も接近する座標の線分のt(0.0~1.0、最近点座標 = ((SegPos2 - SegPos1) * t) + SegPos1) 5680 */ 5681 double Seg_MinDist_Pos1_Pos2_t = 0; 5682 5683 /** 5684 * 線分が三角形に最も接近する線分上の座標 5685 */ 5686 .VECTOR_D Seg_MinDist_Pos; 5687 5688 /** 5689 * 三角形が線分に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w)) 5690 */ 5691 double Tri_MinDist_Pos1_w = 0; 5692 5693 /** 5694 * 三角形が線分に最も接近する座標の三角形座標2の重み 5695 */ 5696 double Tri_MinDist_Pos2_w = 0; 5697 5698 /** 5699 * 三角形が線分に最も接近する座標の三角形座標3の重み 5700 */ 5701 double Tri_MinDist_Pos3_w = 0; 5702 5703 /** 5704 * 三角形が線分に最も接近する三角形上の座標 5705 */ 5706 .VECTOR_D Tri_MinDist_Pos; 5707 } 5708 5709 public alias SEGMENT_TRIANGLE_RESULT_D = .tagSEGMENT_TRIANGLE_RESULT_D; 5710 5711 /** 5712 * 関数Triangle_Point_Analyseの結果を受け取る為の構造体 5713 */ 5714 package struct tagTRIANGLE_POINT_RESULT 5715 { 5716 /** 5717 * 三角形と点が最も接近する座標間の距離の二乗 5718 */ 5719 float Tri_Pnt_MinDist_Square = 0; 5720 5721 /** 5722 * 三角形が点に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w)) 5723 */ 5724 float Tri_MinDist_Pos1_w = 0; 5725 5726 /** 5727 * 三角形が点に最も接近する座標の三角形座標2の重み 5728 */ 5729 float Tri_MinDist_Pos2_w = 0; 5730 5731 /** 5732 * 三角形が点に最も接近する座標の三角形座標3の重み 5733 */ 5734 float Tri_MinDist_Pos3_w = 0; 5735 5736 /** 5737 * 三角形が点に最も接近する三角形上の座標 5738 */ 5739 .VECTOR Tri_MinDist_Pos; 5740 } 5741 5742 public alias TRIANGLE_POINT_RESULT = .tagTRIANGLE_POINT_RESULT; 5743 5744 /** 5745 * 関数Triangle_Point_Analyseの結果を受け取る為の構造体 5746 */ 5747 package struct tagTRIANGLE_POINT_RESULT_D 5748 { 5749 /** 5750 * 三角形と点が最も接近する座標間の距離の二乗 5751 */ 5752 double Tri_Pnt_MinDist_Square = 0; 5753 5754 /** 5755 * 三角形が点に最も接近する座標の三角形座標1の重み(最近点座標 = (TriPos1 * TriPos1_w) + (TriPos2 * TriPos2_w) + (TriPos3 * TriPos3_w)) 5756 */ 5757 double Tri_MinDist_Pos1_w = 0; 5758 5759 /** 5760 * 三角形が点に最も接近する座標の三角形座標2の重み 5761 */ 5762 double Tri_MinDist_Pos2_w = 0; 5763 5764 /** 5765 * 三角形が点に最も接近する座標の三角形座標3の重み 5766 */ 5767 double Tri_MinDist_Pos3_w = 0; 5768 5769 /** 5770 * 三角形が点に最も接近する三角形上の座標 5771 */ 5772 .VECTOR_D Tri_MinDist_Pos; 5773 } 5774 5775 public alias TRIANGLE_POINT_RESULT_D = .tagTRIANGLE_POINT_RESULT_D; 5776 5777 /** 5778 * 関数Plane_Point_Analyseの結果を受け取る為の構造体 5779 */ 5780 package struct tagPLANE_POINT_RESULT 5781 { 5782 /** 5783 * 点が平面の法線の側にあるかどうか(1:法線の側にある 0:法線と反対側にある) 5784 */ 5785 int Pnt_Plane_Normal_Side; 5786 5787 /** 5788 * 平面と点の距離 5789 */ 5790 float Plane_Pnt_MinDist_Square = 0; 5791 5792 /** 5793 * 平面上の点との最近点座標 5794 */ 5795 .VECTOR Plane_MinDist_Pos; 5796 } 5797 5798 public alias PLANE_POINT_RESULT = .tagPLANE_POINT_RESULT; 5799 5800 /** 5801 * 関数Plane_Point_Analyseの結果を受け取る為の構造体 5802 */ 5803 package struct tagPLANE_POINT_RESULT_D 5804 { 5805 /** 5806 * 点が平面の法線の側にあるかどうか(1:法線の側にある 0:法線と反対側にある) 5807 */ 5808 int Pnt_Plane_Normal_Side; 5809 5810 /** 5811 * 平面と点の距離 5812 */ 5813 double Plane_Pnt_MinDist_Square = 0; 5814 5815 /** 5816 * 平面上の点との最近点座標 5817 */ 5818 .VECTOR_D Plane_MinDist_Pos; 5819 } 5820 5821 public alias PLANE_POINT_RESULT_D = .tagPLANE_POINT_RESULT_D; 5822 5823 version (DX_NOTUSE_DRAWFUNCTION) { 5824 } else { 5825 /** 5826 * コリジョン結果代入用ポリゴン 5827 */ 5828 package struct tagMV1_COLL_RESULT_POLY 5829 { 5830 /** 5831 * (MV1CollCheck_Lineでのみ有効)ヒットフラグ(1:ヒットした 0:ヒットしなかった) 5832 */ 5833 int HitFlag; 5834 5835 /** 5836 * (MV1CollCheck_Lineでのみ有効)ヒット座標 5837 */ 5838 .VECTOR HitPosition; 5839 5840 /** 5841 * 当たったポリゴンが含まれるフレームの番号 5842 */ 5843 int FrameIndex; 5844 5845 /** 5846 * 当たったポリゴンが含まれるメッシュの番号(メッシュ単位で判定した場合のみ有効) 5847 */ 5848 int MeshIndex; 5849 5850 /** 5851 * 当たったポリゴンの番号 5852 */ 5853 int PolygonIndex; 5854 5855 /** 5856 * 当たったポリゴンが使用しているマテリアルの番号 5857 */ 5858 int MaterialIndex; 5859 5860 /** 5861 * 当たったポリゴンを形成する三点の座標 5862 */ 5863 .VECTOR[3] Position; 5864 5865 /** 5866 * 当たったポリゴンの法線 5867 */ 5868 .VECTOR Normal; 5869 5870 /** 5871 * 当たった座標は、当たったポリゴンの三点それぞれどの割合で影響しているか、の値(当たった座標 = (Position[0] * PositionWeight[0]) + (Position[1] * PositionWeight[1]) + (Position[2] * PositionWeight[2])) 5872 */ 5873 float[3] PositionWeight = 0; 5874 5875 /** 5876 * 当たったポリゴンの座標がそれぞれ最も影響を受けているフレームの番号 5877 */ 5878 int[3] PosMaxWeightFrameIndex; 5879 } 5880 5881 public alias MV1_COLL_RESULT_POLY = .tagMV1_COLL_RESULT_POLY; 5882 5883 /** 5884 * コリジョン結果代入用ポリゴン配列 5885 */ 5886 package struct tagMV1_COLL_RESULT_POLY_DIM 5887 { 5888 /** 5889 * ヒットしたポリゴンの数 5890 */ 5891 int HitNum; 5892 5893 /** 5894 * ヒットしたポリゴンの配列(HitNum個分存在する) 5895 */ 5896 .MV1_COLL_RESULT_POLY* Dim; 5897 } 5898 5899 public alias MV1_COLL_RESULT_POLY_DIM = .tagMV1_COLL_RESULT_POLY_DIM; 5900 5901 /** 5902 * 参照用頂点構造体 5903 */ 5904 package struct tagMV1_REF_VERTEX 5905 { 5906 /** 5907 * 位置 5908 */ 5909 .VECTOR Position; 5910 5911 /** 5912 * 法線 5913 */ 5914 .VECTOR Normal; 5915 5916 /** 5917 * テクスチャ座標 5918 */ 5919 .FLOAT2[2] TexCoord; 5920 5921 /** 5922 * ディフューズカラー 5923 */ 5924 .COLOR_U8 DiffuseColor; 5925 5926 /** 5927 * スペキュラカラー 5928 */ 5929 .COLOR_U8 SpecularColor; 5930 5931 /** 5932 * 最も大きな影響を与えているフレーム(スキニングメッシュ用) 5933 */ 5934 int MaxWeightFrameIndex; 5935 } 5936 5937 public alias MV1_REF_VERTEX = .tagMV1_REF_VERTEX; 5938 5939 /** 5940 * 参照用ポリゴン構造体 5941 */ 5942 package struct tagMV1_REF_POLYGON 5943 { 5944 /** 5945 * このポリゴンが属しているフレーム 5946 */ 5947 ushort FrameIndex; 5948 5949 /** 5950 * このポリゴンが属しているメッシュ 5951 */ 5952 ushort MeshIndex; 5953 5954 /** 5955 * 使用しているマテリアル 5956 */ 5957 ushort MaterialIndex; 5958 5959 /** 5960 * VIndexが指すインデックスの参照先(1:フレーム 0:モデル全体) 5961 */ 5962 ushort VIndexTarget; 5963 5964 /** 5965 * 3角形ポリゴンを成す参照頂点のインデックス 5966 */ 5967 int[3] VIndex; 5968 5969 /** 5970 * ポリゴンを成す頂点座標の最小値 5971 */ 5972 .VECTOR MinPosition; 5973 5974 /** 5975 * ポリゴンを成す頂点座標の最大値 5976 */ 5977 .VECTOR MaxPosition; 5978 } 5979 5980 public alias MV1_REF_POLYGON = .tagMV1_REF_POLYGON; 5981 5982 /** 5983 * 参照用ポリゴンデータ構造体 5984 */ 5985 package struct tagMV1_REF_POLYGONLIST 5986 { 5987 /** 5988 * 参照用ポリゴンの数 5989 */ 5990 int PolygonNum; 5991 5992 /** 5993 * 頂点の数 5994 */ 5995 int VertexNum; 5996 5997 /** 5998 * 頂点座標の最小値 5999 */ 6000 .VECTOR MinPosition; 6001 6002 /** 6003 * 頂点座標の最大値 6004 */ 6005 .VECTOR MaxPosition; 6006 6007 /** 6008 * 参照用ポリゴン配列 6009 */ 6010 .MV1_REF_POLYGON* Polygons; 6011 6012 /** 6013 * 参照用頂点配列 6014 */ 6015 .MV1_REF_VERTEX* Vertexs; 6016 } 6017 6018 public alias MV1_REF_POLYGONLIST = .tagMV1_REF_POLYGONLIST; 6019 } 6020 6021 /** 6022 * 3Dサウンドリバーブエフェクトパラメータ構造体(注釈はMSDNのXAUDIO2FX_REVERB_PARAMETERS構造体の解説をほぼ引用しています) 6023 */ 6024 package struct tagSOUND3D_REVERB_PARAM 6025 { 6026 /** 6027 * リバーブとなる出力の割合(指定可能範囲0.0f~100.0f) 6028 */ 6029 float WetDryMix = 0; 6030 6031 /** 6032 * ダイレクト パスに対する初期反射の遅延時間、単位はミリ秒(指定可能範囲0~300) 6033 */ 6034 uint ReflectionsDelay; 6035 6036 /** 6037 * 初期反射に対するリバーブの遅延時間、単位はミリ秒(指定可能範囲0~85) 6038 */ 6039 dxlib_d.DxDataType.BYTE ReverbDelay; 6040 6041 /** 6042 * 左後方出力および右後方出力の遅延時間、単位はミリ秒(指定可能範囲0~5) 6043 */ 6044 dxlib_d.DxDataType.BYTE RearDelay; 6045 6046 /** 6047 * シミュレーション空間における視聴者に対する左入力の位置(指定可能範囲0~30) 6048 * PositionLeftを最小値に設定した場合、左入力は視聴者の近くに配置されます。 6049 * この位置では、サウンド フィールドにおいて初期反射が優勢になり、残響減衰は弱まって、振幅が小さくなります。 6050 * PositionLeftを最大値に設定した場合、左入力はシミュレーション室内で視聴者から最大限遠い位置に配置されます。 6051 * PositionLeftは残響減衰時間(部屋の残響効果)に影響せず、視聴者に対する音源の見かけの位置のみに影響します。 6052 */ 6053 dxlib_d.DxDataType.BYTE PositionLeft; 6054 6055 /** 6056 * PositionLeftと同効果の右入力値(指定可能範囲0~30)、右入力にのみ影響を与える 6057 */ 6058 dxlib_d.DxDataType.BYTE PositionRight; 6059 6060 /** 6061 * 音源から視聴者までの距離によるインプレッションを増減させる値(指定可能範囲0~30) 6062 */ 6063 dxlib_d.DxDataType.BYTE PositionMatrixLeft; 6064 6065 /** 6066 * 音源から視聴者までの距離によるインプレッションを増減させま値(指定可能範囲0~30) 6067 */ 6068 dxlib_d.DxDataType.BYTE PositionMatrixRight; 6069 6070 /** 6071 * 個々の壁の反射特性値(指定可能範囲0~15)、(堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。) 6072 */ 6073 dxlib_d.DxDataType.BYTE EarlyDiffusion; 6074 6075 /** 6076 * 個々の壁のリバーブ特性値(指定可能範囲0~15)、(堅く平らな表面をシミュレートするには小さな値を設定し、散乱性の表面をシミュレートするには大きな値を設定します。) 6077 */ 6078 dxlib_d.DxDataType.BYTE LateDiffusion; 6079 6080 /** 6081 * 1kHzにおける減衰時間を基準にして低周波数の減衰時間調整値(指定可能範囲0~12) 6082 * 6083 * 値とゲイン(dB)の関係 6084 * 値 0 1 2 3 4 5 6 7 8 9 10 11 12 6085 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 6086 * LowEQGainの値が8の場合、低周波数の減衰時間と1kHzにおける減衰時間が等しくなることに注意してください 6087 */ 6088 dxlib_d.DxDataType.BYTE LowEQGain; 6089 6090 /** 6091 * LowEQGainパラメーターにより制御されるローパス フィルターの折点周波数の設定値(指定可能範囲0~9) 6092 * 6093 * 値と周波数(Hz)の関係 6094 * 値 0 1 2 3 4 5 6 7 8 9 6095 * 周波数(Hz) 50 100 150 200 250 300 350 400 450 500 6096 */ 6097 dxlib_d.DxDataType.BYTE LowEQCutoff; 6098 6099 /** 6100 * 1kHzにおける減衰時間を基準にして高周波数の減衰時間調整値(指定可能範囲0~8) 6101 * 6102 * 値とゲイン(dB)の関係 6103 * 値 0 1 2 3 4 5 6 7 8 6104 * ゲイン(dB) -8 -7 -6 -5 -4 -3 -2 -1 0 6105 * 0に設定すると、高周波数の音が1kHzの場合と同じ割合で減衰します。最大値に設定すると、高周波数の音が1kHzの場合よりもはるかに高い割合で減衰します。 6106 */ 6107 dxlib_d.DxDataType.BYTE HighEQGain; 6108 6109 /** 6110 * HighEQGainパラメーターにより制御されるハイパス フィルターの折点周波数設定値(指定可能範囲0~14) 6111 * 6112 * 値と周波数(kHz)の関係 6113 * 値 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6114 * 周波数(kHz) 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 6115 */ 6116 dxlib_d.DxDataType.BYTE HighEQCutoff; 6117 6118 /** 6119 * 室内エフェクトのローパス フィルターの折点周波数、単位はHz(指定可能範囲20.0f~20000.0f) 6120 */ 6121 float RoomFilterFreq = 0; 6122 6123 /** 6124 * 初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位はdB(指定可能範囲-100.0f~0.0f) 6125 */ 6126 float RoomFilterMain = 0; 6127 6128 /** 6129 * 折点周波数(RoomFilterFreq)での初期反射と後期フィールド残響の両方に適用されるローパス フィルターのパス バンド強度レベル、単位はdB(指定可能範囲-100.0f~0.0f) 6130 */ 6131 float RoomFilterHF = 0; 6132 6133 /** 6134 * 初期反射の強度/レベルを調整値、単位はdB(指定可能範囲-100.0f~20.0f) 6135 */ 6136 float ReflectionsGain = 0; 6137 6138 /** 6139 * リバーブの強度/レベルを調整値、単位はdB(指定可能範囲-100.0f~20.0f) 6140 */ 6141 float ReverbGain = 0; 6142 6143 /** 6144 * 1kHzにおける残響減衰時間、単位は秒(指定可能範囲0.1f~上限値特になし)、これは、フル スケールの入力信号が60dB減衰するまでの時間です。 6145 */ 6146 float DecayTime = 0; 6147 6148 /** 6149 * 後期フィールド残響のモード密度を制御値、単位はパーセント(指定可能範囲0.0f~100.0f) 6150 * 無色(colorless)の空間では、Densityを最大値(100.0f)に設定する必要があります。 6151 * Densityを小さくすると、サウンドはくぐもった音(くし形フィルターが適用された音)になります。 6152 * これはサイロをシミュレーションするときに有効なエフェクトです。 6153 */ 6154 float Density = 0; 6155 6156 /** 6157 * 音響空間の見かけ上のサイズ、単位はフィート(指定可能範囲1.0f(30.48cm)~100.0f(30.48m)) 6158 */ 6159 float RoomSize = 0; 6160 } 6161 6162 public alias SOUND3D_REVERB_PARAM = .tagSOUND3D_REVERB_PARAM; 6163 6164 /** 6165 * ストリームデータ制御用関数ポインタ構造体タイプ2 6166 */ 6167 package struct tagSTREAMDATASHREDTYPE2 6168 { 6169 dxlib_d.DxDataType.DWORD_PTR function(const (dxlib_d.DxDataType.TCHAR)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open; 6170 int function(dxlib_d.DxDataType.DWORD_PTR Handle) Close; 6171 dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR Handle) Tell; 6172 int function(dxlib_d.DxDataType.DWORD_PTR Handle, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek; 6173 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR Handle) Read; 6174 int function(dxlib_d.DxDataType.DWORD_PTR Handle) Eof; 6175 int function(dxlib_d.DxDataType.DWORD_PTR Handle) IdleCheck; 6176 int function(const (dxlib_d.DxDataType.TCHAR)* Path) ChDir; 6177 int function(dxlib_d.DxDataType.TCHAR* Buffer) GetDir; 6178 int function(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize) GetDirS; 6179 6180 /** 6181 * Returns: -1:エラー -1以外:FindHandle 6182 */ 6183 dxlib_d.DxDataType.DWORD_PTR function(const (dxlib_d.DxDataType.TCHAR)* FilePath, .FILEINFO* Buffer) FindFirst; 6184 6185 /** 6186 * Returns: -1:エラー 0:成功 6187 */ 6188 int function(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFO* Buffer) FindNext; 6189 6190 /** 6191 * Returns: -1:エラー 0:成功 6192 */ 6193 int function(dxlib_d.DxDataType.DWORD_PTR FindHandle) FindClose; 6194 } 6195 6196 public alias STREAMDATASHREDTYPE2 = .tagSTREAMDATASHREDTYPE2; 6197 6198 /** 6199 * ストリームデータ制御用関数ポインタ構造体タイプ2のwchar_t使用版 6200 */ 6201 package struct tagSTREAMDATASHREDTYPE2W 6202 { 6203 dxlib_d.DxDataType.DWORD_PTR function(const (.wchar_t)* Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag) Open; 6204 int function(dxlib_d.DxDataType.DWORD_PTR Handle) Close; 6205 dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR Handle) Tell; 6206 int function(dxlib_d.DxDataType.DWORD_PTR Handle, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek; 6207 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR Handle) Read; 6208 int function(dxlib_d.DxDataType.DWORD_PTR Handle) Eof; 6209 int function(dxlib_d.DxDataType.DWORD_PTR Handle) IdleCheck; 6210 6211 /** 6212 * Returns: -1:エラー 0:DXアーカイブファイル内のファイルではない 1:DXアーカイブファイル内のファイル 6213 */ 6214 int function(dxlib_d.DxDataType.DWORD_PTR Handle) IsDXA; 6215 6216 int function(const (.wchar_t)* Path) ChDir; 6217 int function(.wchar_t* Buffer) GetDir; 6218 int function(.wchar_t* Buffer, size_t BufferSize) GetDirS; 6219 6220 /** 6221 * Returns: -1:エラー -1以外:FindHandle 6222 */ 6223 dxlib_d.DxDataType.DWORD_PTR function(const (.wchar_t)* FilePath, .FILEINFOW* Buffer) FindFirst; 6224 6225 /** 6226 * Returns: -1:エラー 0:成功 6227 */ 6228 int function(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFOW* Buffer) FindNext; 6229 6230 /** 6231 * Returns: -1:エラー 0:成功 6232 */ 6233 int function(dxlib_d.DxDataType.DWORD_PTR FindHandle) FindClose; 6234 } 6235 6236 public alias STREAMDATASHREDTYPE2W = .tagSTREAMDATASHREDTYPE2W; 6237 6238 /** 6239 * ストリームデータ制御用関数ポインタ構造体 6240 */ 6241 package struct tagSTREAMDATASHRED 6242 { 6243 dxlib_d.DxDataType.LONGLONG function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Tell; 6244 int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint, dxlib_d.DxDataType.LONGLONG SeekPoint, int SeekType) Seek; 6245 size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Read; 6246 // size_t function(void* Buffer, size_t BlockSize, size_t DataNum, dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Write; 6247 int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Eof; 6248 int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) IdleCheck; 6249 int function(dxlib_d.DxDataType.DWORD_PTR StreamDataPoint) Close; 6250 } 6251 6252 public alias STREAMDATASHRED = .tagSTREAMDATASHRED; 6253 public alias LPSTREAMDATASHRED = .tagSTREAMDATASHRED*; 6254 6255 /** 6256 * ストリームデータ制御用データ構造体 6257 */ 6258 package struct tagSTREAMDATA 6259 { 6260 .STREAMDATASHRED ReadShred; 6261 dxlib_d.DxDataType.DWORD_PTR DataPoint; 6262 } 6263 6264 public alias STREAMDATA = .tagSTREAMDATA; 6265 6266 /** 6267 * パレット情報構造体 6268 */ 6269 package struct tagCOLORPALETTEDATA 6270 { 6271 ubyte Blue; 6272 ubyte Green; 6273 ubyte Red; 6274 ubyte Alpha; 6275 } 6276 6277 public alias COLORPALETTEDATA = .tagCOLORPALETTEDATA; 6278 6279 /** 6280 * カラー構造情報構造体 6281 */ 6282 package struct tagCOLORDATA 6283 { 6284 /** 6285 * フォーマット(DX_BASEIMAGE_FORMAT_NORMAL等) 6286 */ 6287 ubyte Format; 6288 6289 /** 6290 * チャンネル数 6291 */ 6292 ubyte ChannelNum; 6293 6294 /** 6295 * 1チャンネル辺りのビット深度 6296 */ 6297 ubyte ChannelBitDepth; 6298 6299 /** 6300 * 浮動小数点型かどうか(dxlib_d.DxDataType.TRUE:浮動小数点型 dxlib_d.DxDataType.FALSE:整数型) 6301 */ 6302 ubyte FloatTypeFlag; 6303 6304 /** 6305 * 1ピクセルあたりのバイト数 6306 */ 6307 ubyte PixelByte; 6308 6309 // 以下はChannelNum又はChannelBitDepthが0の時のみ有効 6310 6311 /** 6312 * ビット深度 6313 */ 6314 ubyte ColorBitDepth; 6315 6316 /** 6317 * 使われていないビットのアドレスと幅 6318 */ 6319 ubyte NoneLoc; 6320 6321 /** 6322 * 使われていないビットのアドレスと幅 6323 */ 6324 ubyte NoneWidth; 6325 6326 /** 6327 * ビット幅 6328 */ 6329 ubyte RedWidth; 6330 6331 /** 6332 * ビット幅 6333 */ 6334 ubyte GreenWidth; 6335 6336 /** 6337 * ビット幅 6338 */ 6339 ubyte BlueWidth; 6340 6341 /** 6342 * ビット幅 6343 */ 6344 ubyte AlphaWidth; 6345 6346 /** 6347 * 配置されているビットアドレス 6348 */ 6349 ubyte RedLoc; 6350 6351 /** 6352 * 配置されているビットアドレス 6353 */ 6354 ubyte GreenLoc; 6355 6356 /** 6357 * 配置されているビットアドレス 6358 */ 6359 ubyte BlueLoc; 6360 6361 /** 6362 * 配置されているビットアドレス 6363 */ 6364 ubyte AlphaLoc; 6365 6366 /** 6367 * ビットマスク 6368 */ 6369 uint RedMask; 6370 6371 /** 6372 * ビットマスク 6373 */ 6374 uint GreenMask; 6375 6376 /** 6377 * ビットマスク 6378 */ 6379 uint BlueMask; 6380 6381 /** 6382 * ビットマスク 6383 */ 6384 uint AlphaMask; 6385 6386 /** 6387 * 使われていないビットのマスク 6388 */ 6389 uint NoneMask; 6390 6391 /** 6392 * 使用しているパレット番号の最大値(0の場合は255とみなす) 6393 */ 6394 int MaxPaletteNo; 6395 6396 // memo: ここより上にメンバー変数を追加したらDxBaseImage.cppのNS_GraphColorMatchBltVer2のアセンブラでのパレットデータ参照のリテラル値を修正する必要あり 6397 6398 /** 6399 * パレット(ColorBitDepthが8以下の場合のみ有効) 6400 */ 6401 .COLORPALETTEDATA[256] Palette; 6402 } 6403 6404 public alias COLORDATA = .tagCOLORDATA; 6405 public alias LPCOLORDATA = .tagCOLORDATA*; 6406 6407 /** 6408 * 基本イメージデータ構造体 6409 */ 6410 package struct tagBASEIMAGE 6411 { 6412 /** 6413 * 色情報 6414 */ 6415 .COLORDATA ColorData; 6416 6417 /** 6418 * 幅 6419 */ 6420 int Width; 6421 6422 /** 6423 * 高さ 6424 */ 6425 int Height; 6426 6427 /** 6428 * ピッチ 6429 */ 6430 int Pitch; 6431 6432 /** 6433 * グラフィックイメージ 6434 */ 6435 void* GraphData; 6436 6437 /** 6438 * ミップマップの数 6439 */ 6440 int MipMapCount; 6441 6442 /** 6443 * グラフィックイメージの数 6444 */ 6445 int GraphDataCount; 6446 } 6447 6448 public alias BASEIMAGE = .tagBASEIMAGE; 6449 public alias GRAPHIMAGE = .tagBASEIMAGE; 6450 public alias LPGRAPHIMAGE = .tagBASEIMAGE*; 6451 6452 /** 6453 * ラインデータ型 6454 */ 6455 package struct tagLINEDATA 6456 { 6457 /** 6458 * 座標 6459 */ 6460 int x1; 6461 6462 /** 6463 * 座標 6464 */ 6465 int y1; 6466 6467 /** 6468 * 座標 6469 */ 6470 int x2; 6471 6472 /** 6473 * 座標 6474 */ 6475 int y2; 6476 6477 /** 6478 * 色 6479 */ 6480 uint color; 6481 6482 /** 6483 * パラメータ 6484 */ 6485 int pal; 6486 } 6487 6488 public alias LINEDATA = .tagLINEDATA; 6489 public alias LPLINEDATA = .tagLINEDATA*; 6490 6491 /** 6492 * 座標データ型 6493 */ 6494 package struct tagPOINTDATA 6495 { 6496 /** 6497 * 座標 6498 */ 6499 int x; 6500 6501 /** 6502 * 座標 6503 */ 6504 int y; 6505 6506 /** 6507 * 色 6508 */ 6509 uint color; 6510 6511 /** 6512 * パラメータ 6513 */ 6514 int pal; 6515 } 6516 6517 public alias POINTDATA = .tagPOINTDATA; 6518 public alias LPPOINTDATA = .tagPOINTDATA*; 6519 6520 /** 6521 * 立方体データ型 6522 */ 6523 package struct tagCUBEDATA 6524 { 6525 /** 6526 * 座標1 6527 */ 6528 .VECTOR Pos1; 6529 6530 /** 6531 * 座標2 6532 */ 6533 .VECTOR Pos2; 6534 6535 /** 6536 * ディフューズカラー 6537 */ 6538 .COLOR_U8 DifColor; 6539 6540 /** 6541 * スペキュラカラー 6542 */ 6543 .COLOR_U8 SpcColor; 6544 } 6545 6546 public alias CUBEDATA = .tagCUBEDATA; 6547 public alias LPCUBEDATA = .tagCUBEDATA*; 6548 6549 version (DX_NOTUSE_DRAWFUNCTION) { 6550 } else { 6551 /** 6552 * イメージフォーマットデータ 6553 */ 6554 package struct tagIMAGEFORMATDESC 6555 { 6556 /** 6557 * テクスチャか、フラグ(dxlib_d.DxDataType.TRUE:テクスチャ dxlib_d.DxDataType.FALSE:標準サーフェス) 6558 */ 6559 ubyte TextureFlag; 6560 6561 /** 6562 * キューブマップテクスチャか、フラグ(dxlib_d.DxDataType.TRUE:キューブマップテクスチャ dxlib_d.DxDataType.FALSE:それ以外) 6563 */ 6564 ubyte CubeMapTextureFlag; 6565 6566 /** 6567 * αチャンネルはあるか、フラグ(dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない) 6568 */ 6569 ubyte AlphaChFlag; 6570 6571 /** 6572 * 描画可能か、フラグ(dxlib_d.DxDataType.TRUE:可能 dxlib_d.DxDataType.FALSE:不可能) 6573 */ 6574 ubyte DrawValidFlag; 6575 6576 /** 6577 * システムメモリ上に存在しているか、フラグ(dxlib_d.DxDataType.TRUE:システムメモリ上 dxlib_d.DxDataType.FALSE:VRAM上)(標準サーフェスの時のみ有効) 6578 */ 6579 ubyte SystemMemFlag; 6580 6581 /** 6582 * マネージドテクスチャを使用するか、フラグ 6583 */ 6584 ubyte UseManagedTextureFlag; 6585 6586 /** 6587 * テクスチャのメモリデータ配置にリニアが選択できる場合はデータ配置方式をリニアにするかどうか(dxlib_d.DxDataType.TRUE:リニアが可能な場合はリニアにする dxlib_d.DxDataType.FALSE:リニアが可能な場合も特にリニアを指定しない) 6588 */ 6589 ubyte UseLinearMapTextureFlag; 6590 6591 /** 6592 * 環境依存のテクスチャフォーマットを直接指定するために使用するための変数(DX_TEXTUREFORMAT_DIRECT3D9_R8G8B8など) 6593 */ 6594 ubyte PlatformTextureFormat; 6595 6596 /** 6597 * 基本フォーマット(DX_BASEIMAGE_FORMAT_NORMAL等) 6598 */ 6599 ubyte BaseFormat; 6600 6601 /** 6602 * ミップマップの数 6603 */ 6604 ubyte MipMapCount; 6605 6606 /** 6607 * αテストチャンネルはあるか、フラグ(dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない)(テクスチャの場合のみ有効) 6608 */ 6609 ubyte AlphaTestFlag; 6610 6611 /** 6612 * 浮動小数点型かどうか 6613 */ 6614 ubyte FloatTypeFlag; 6615 6616 /** 6617 * 色深度(テクスチャの場合のみ有効) 6618 */ 6619 ubyte ColorBitDepth; 6620 6621 /** 6622 * チャンネルの数 6623 */ 6624 ubyte ChannelNum; 6625 6626 /** 6627 * 1チャンネル辺りのビット深度(テクスチャの場合のみ有効、0の場合はColorBitDepthが使用される) 6628 */ 6629 ubyte ChannelBitDepth; 6630 6631 /** 6632 * ブレンド用画像か、フラグ 6633 */ 6634 ubyte BlendGraphFlag; 6635 6636 /** 6637 * パレットを使用しているか、フラグ(SystemMemFlagがdxlib_d.DxDataType.TRUEの場合のみ有効) 6638 */ 6639 ubyte UsePaletteFlag; 6640 6641 /** 6642 * マルチサンプリング数(描画対象の場合使用) 6643 */ 6644 ubyte MSSamples; 6645 6646 /** 6647 * マルチサンプリングクオリティ(描画対象の場合使用) 6648 */ 6649 ubyte MSQuality; 6650 } 6651 6652 public alias IMAGEFORMATDESC = .tagIMAGEFORMATDESC; 6653 } 6654 6655 /** 6656 * DirectInputのジョイパッド入力情報 6657 */ 6658 package struct tagDINPUT_JOYSTATE 6659 { 6660 /** 6661 * スティックのX軸パラメータ(-1000~1000) 6662 */ 6663 int X; 6664 6665 /** 6666 * スティックのY軸パラメータ(-1000~1000) 6667 */ 6668 int Y; 6669 6670 /** 6671 * スティックのZ軸パラメータ(-1000~1000) 6672 */ 6673 int Z; 6674 6675 /** 6676 * スティックのX軸回転パラメータ(-1000~1000) 6677 */ 6678 int Rx; 6679 6680 /** 6681 * スティックのY軸回転パラメータ(-1000~1000) 6682 */ 6683 int Ry; 6684 6685 /** 6686 * スティックのZ軸回転パラメータ(-1000~1000) 6687 */ 6688 int Rz; 6689 6690 /** 6691 * スライダー二つ(0~65535) 6692 */ 6693 int[2] Slider; 6694 6695 /** 6696 * ハットスイッチ4つ(0xFFFFFFFF:入力なし 0:上 4500:右上 9000:右 13500:右下 18000:下 22500:左下 27000:左 31500:左上) 6697 */ 6698 uint[4] POV; 6699 6700 /** 6701 * ボタン32個(押されたボタンは128になる) 6702 */ 6703 ubyte[32] Buttons; 6704 } 6705 6706 public alias DINPUT_JOYSTATE = .tagDINPUT_JOYSTATE; 6707 6708 /** 6709 * XInputのジョイパッド入力情報 6710 */ 6711 package struct tagXINPUT_STATE 6712 { 6713 /** 6714 * ボタン16個(添字にはXINPUT_BUTTON_DPAD_UP等を使用する、0:押されていない 1:押されている) 6715 */ 6716 ubyte[16] Buttons; 6717 6718 /** 6719 * 左トリガー(0~255) 6720 */ 6721 ubyte LeftTrigger; 6722 6723 /** 6724 * 右トリガー(0~255) 6725 */ 6726 ubyte RightTrigger; 6727 6728 /** 6729 * 左スティックの横軸値(-32768~32767) 6730 */ 6731 short ThumbLX; 6732 6733 /** 6734 * 左スティックの縦軸値(-32768~32767) 6735 */ 6736 short ThumbLY; 6737 6738 /** 6739 * 右スティックの横軸値(-32768~32767) 6740 */ 6741 short ThumbRX; 6742 6743 /** 6744 * 右スティックの縦軸値(-32768~32767) 6745 */ 6746 short ThumbRY; 6747 } 6748 6749 public alias XINPUT_STATE = .tagXINPUT_STATE; 6750 6751 /** 6752 * タッチパネルの1箇所分のタッチの情報 6753 */ 6754 package struct tagTOUCHINPUTPOINT 6755 { 6756 /** 6757 * タッチされたデバイス 6758 */ 6759 dxlib_d.DxDataType.DWORD Device; 6760 6761 /** 6762 * タッチを判別するためのID 6763 */ 6764 dxlib_d.DxDataType.DWORD ID; 6765 6766 /** 6767 * タッチされた座標X 6768 */ 6769 int PositionX; 6770 6771 /** 6772 * タッチされた座標Y 6773 */ 6774 int PositionY; 6775 } 6776 6777 public alias TOUCHINPUTPOINT = .tagTOUCHINPUTPOINT; 6778 6779 /** 6780 * タッチパネルのタッチの情報 6781 */ 6782 package struct tagTOUCHINPUTDATA 6783 { 6784 /** 6785 * 情報の時間 6786 */ 6787 dxlib_d.DxDataType.LONGLONG Time; 6788 6789 /** 6790 * 有効なタッチ情報の数 6791 */ 6792 int PointNum; 6793 6794 /** 6795 * タッチ情報 6796 */ 6797 .TOUCHINPUTPOINT[TOUCHINPUTPOINT_MAX] Point; 6798 } 6799 6800 public alias TOUCHINPUTDATA = .tagTOUCHINPUTDATA; 6801 6802 /** 6803 * WinSockets使用時のアドレス指定用構造体 6804 */ 6805 package struct tagIPDATA 6806 { 6807 /** 6808 * アドレス値 6809 */ 6810 ubyte d1; 6811 6812 /** 6813 * アドレス値 6814 */ 6815 ubyte d2; 6816 6817 /** 6818 * アドレス値 6819 */ 6820 ubyte d3; 6821 6822 /** 6823 * アドレス値 6824 */ 6825 ubyte d4; 6826 } 6827 6828 public alias IPDATA = .tagIPDATA; 6829 public alias LPIPDATA = .tagIPDATA*; 6830 6831 package struct tagIPDATA_IPv6 6832 { 6833 union 6834 { 6835 ubyte[16] Byte; 6836 ushort[8] Word; 6837 } 6838 6839 core.stdc.config.c_ulong ScopeID; 6840 } 6841 6842 public alias IPDATA_IPv6 = .tagIPDATA_IPv6; 6843 6844 // DxSystem.cpp関数プロトタイプ宣言 6845 6846 // 初期化終了系関数 6847 6848 /** 6849 * ライブラリ初期化を行う 6850 */ 6851 extern int DxLib_Init(); 6852 6853 /** 6854 * ライブラリ使用の後始末を行う 6855 */ 6856 extern int DxLib_End(); 6857 6858 /** 6859 * ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Initの前に行った設定を無効化する(DxLib_Initの前でのみ有効) 6860 */ 6861 extern int DxLib_GlobalStructInitialize(); 6862 6863 /** 6864 * ライブラリが初期化されているかどうかを取得する 6865 * 6866 * Returns: dxlib_d.DxDataType.TRUE:初期化されている dxlib_d.DxDataType.FALSE:されていない 6867 */ 6868 extern int DxLib_IsInit(); 6869 6870 // エラー関係関数 6871 6872 /** 6873 * 最後に発生したエラーのエラーコードを取得する 6874 * 6875 * Returns: 0:エラーが発生していない、又はエラーコード出力に対応したエラーが発生していない 0以外:エラーコード、DX_ERRORCODE_WIN_DESKTOP_24BIT_COLORなど 6876 */ 6877 extern int GetLastErrorCode(); 6878 6879 /** 6880 * 最後に発生したエラーのエラーメッセージを指定の文字列バッファに取得する 6881 */ 6882 extern int GetLastErrorMessage(dxlib_d.DxDataType.TCHAR* StringBuffer, int StringBufferBytes); 6883 6884 // メッセージ処理関数 6885 6886 /** 6887 * ウインドウズのメッセージループに代わる処理を行う 6888 */ 6889 extern int ProcessMessage(); 6890 6891 // 設定系関数 6892 6893 /** 6894 * アプリが非アクティブ状態でも処理を実行するかどうかを設定する 6895 * 6896 * Params: 6897 * Flag = dxlib_d.DxDataType.TRUE:実行する dxlib_d.DxDataType.FALSE:停止する(デフォルト) 6898 */ 6899 extern int SetAlwaysRunFlag(int Flag); 6900 6901 // ウエイト系関数 6902 6903 /** 6904 * 指定の時間だけ処理をとめる 6905 */ 6906 extern int WaitTimer(int WaitTime); 6907 6908 version (DX_NON_INPUT) { 6909 } else { 6910 /** 6911 * キーの入力待ちを行う 6912 */ 6913 extern int WaitKey(); 6914 } 6915 6916 // カウンタ及び時刻取得系関数 6917 6918 /** 6919 * ミリ秒単位の精度を持つカウンタの現在の値を得る 6920 */ 6921 extern int GetNowCount(int UseRDTSCFlag = dxlib_d.DxDataType.FALSE); 6922 6923 /** 6924 * GetNowCountの高精度バージョン(μ秒単位の精度を持つカウンタの現在の値を得る) 6925 */ 6926 extern dxlib_d.DxDataType.LONGLONG GetNowHiPerformanceCount(int UseRDTSCFlag = dxlib_d.DxDataType.FALSE); 6927 6928 /** 6929 * OSが提供する高精度カウンタの現在の値を得る 6930 */ 6931 extern dxlib_d.DxDataType.ULONGLONG GetNowSysPerformanceCount(); 6932 6933 /** 6934 * OSが提供する高精度カウンタの周波数(1秒辺りのカウント数)を得る 6935 */ 6936 extern dxlib_d.DxDataType.ULONGLONG GetSysPerformanceFrequency(); 6937 6938 /** 6939 * OSが提供する高精度カウンタの値を秒の値に変換する 6940 */ 6941 extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToSeconds(dxlib_d.DxDataType.ULONGLONG Count); 6942 6943 /** 6944 * OSが提供する高精度カウンタの値をミリ秒の値に変換する 6945 */ 6946 extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToMilliSeconds(dxlib_d.DxDataType.ULONGLONG Count); 6947 6948 /** 6949 * OSが提供する高精度カウンタの値をマイクロ秒の値に変換する 6950 */ 6951 extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToMicroSeconds(dxlib_d.DxDataType.ULONGLONG Count); 6952 6953 /** 6954 * OSが提供する高精度カウンタの値をナノ秒の値に変換する 6955 */ 6956 extern dxlib_d.DxDataType.ULONGLONG ConvSysPerformanceCountToNanoSeconds(dxlib_d.DxDataType.ULONGLONG Count); 6957 6958 /** 6959 * 秒の値をOSが提供する高精度カウンタの値に変換する 6960 */ 6961 extern dxlib_d.DxDataType.ULONGLONG ConvSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG Seconds); 6962 6963 /** 6964 * ミリ秒の値をOSが提供する高精度カウンタの値に変換する 6965 */ 6966 extern dxlib_d.DxDataType.ULONGLONG ConvMilliSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG MilliSeconds); 6967 6968 /** 6969 * マイクロ秒の値をOSが提供する高精度カウンタの値に変換する 6970 */ 6971 extern dxlib_d.DxDataType.ULONGLONG ConvMicroSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG MicroSeconds); 6972 6973 /** 6974 * ナノ秒の値をOSが提供する高精度カウンタの値に変換する 6975 */ 6976 extern dxlib_d.DxDataType.ULONGLONG ConvNanoSecondsToSysPerformanceCount(dxlib_d.DxDataType.ULONGLONG NanoSeconds); 6977 6978 /** 6979 * 現在時刻を取得する 6980 */ 6981 extern int GetDateTime(.DATEDATA* DateBuf); 6982 6983 // 乱数取得 6984 6985 /** 6986 * 乱数を取得する 6987 * 6988 * Params: 6989 * RandMax = 返って来る値の最大値 6990 */ 6991 extern int GetRand(int RandMax); 6992 6993 /** 6994 * 乱数の初期値を設定する 6995 */ 6996 extern int SRand(int Seed); 6997 6998 // バッテリー関連 6999 7000 /** 7001 * 電池の残量を%で取得する 7002 * 7003 * Returns: 100:フル充電状態 0:充電残量無し 7004 */ 7005 extern int GetBatteryLifePercent(); 7006 7007 // クリップボード関係 7008 7009 /** 7010 * クリップボードに格納されているテキストデータを読み出す 7011 * 7012 * Params: 7013 * DestBuffer = 文字列を格納するバッファの先頭アドレス 7014 * 7015 * Returns: -1:クリップボードにテキストデータが無い -1以外:クリップボードに格納されている文字列データのサイズ(単位:byte) 7016 */ 7017 extern int GetClipboardText(dxlib_d.DxDataType.TCHAR* DestBuffer); 7018 7019 /** 7020 * クリップボードにテキストデータを格納する 7021 */ 7022 extern int SetClipboardText(const (dxlib_d.DxDataType.TCHAR)* Text); 7023 7024 /** 7025 * クリップボードにテキストデータを格納する 7026 */ 7027 extern int SetClipboardTextWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Text, size_t TextLength); 7028 7029 // iniファイル関係 7030 7031 /** 7032 * GetPrivateProfileStringのDXライブラリ版 7033 */ 7034 extern int GetPrivateProfileStringDx(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, const (dxlib_d.DxDataType.TCHAR)* Default, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7035 7036 /** 7037 * GetPrivateProfileStringのDXライブラリ版 7038 */ 7039 extern int GetPrivateProfileStringDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, const (dxlib_d.DxDataType.TCHAR)* Default, size_t DefaultLength, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, size_t IniFilePathLength, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7040 7041 /** 7042 * GetPrivateProfileIntのDXライブラリ版 7043 */ 7044 extern int GetPrivateProfileIntDx(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, int Default, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7045 7046 /** 7047 * GetPrivateProfileIntのDXライブラリ版 7048 */ 7049 extern int GetPrivateProfileIntDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, int Default, const (dxlib_d.DxDataType.TCHAR)* IniFilePath, size_t IniFilePathLength, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7050 7051 /** 7052 * GetPrivateProfileStringDxのメモリから読み込む版 7053 */ 7054 extern int GetPrivateProfileStringDxForMem(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, const (dxlib_d.DxDataType.TCHAR)* Default, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7055 7056 /** 7057 * GetPrivateProfileStringDxのメモリから読み込む版 7058 */ 7059 extern int GetPrivateProfileStringDxForMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, const (dxlib_d.DxDataType.TCHAR)* Default, size_t DefaultLength, dxlib_d.DxDataType.TCHAR* ReturnedStringBuffer, size_t ReturnedStringBufferBytes, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7060 7061 /** 7062 * GetPrivateProfileIntDxのメモリから読み込む版 7063 */ 7064 extern int GetPrivateProfileIntDxForMem(const (dxlib_d.DxDataType.TCHAR)* AppName, const (dxlib_d.DxDataType.TCHAR)* KeyName, int Default, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7065 7066 /** 7067 * GetPrivateProfileIntDxのメモリから読み込む版 7068 */ 7069 extern int GetPrivateProfileIntDxForMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* AppName, size_t AppNameLength, const (dxlib_d.DxDataType.TCHAR)* KeyName, size_t KeyNameLength, int Default, const (void)* IniFileImage, size_t IniFileImageBytes, int IniFileCharCodeFormat = -1 /* DX_CHARCODEFORMAT_SHIFTJIS等、-1でデフォルト */); 7070 7071 version (iOS) { 7072 version = ENABLE_MAIL; 7073 } else version (Android) { 7074 version = ENABLE_MAIL; 7075 } 7076 7077 version (ENABLE_MAIL) { 7078 /** 7079 * メールアプリを送信メール編集状態で起動する 7080 * 7081 * Params: 7082 * MailAddr = 宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7083 * MailCCAddr = CCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7084 * MailBCCAddr = BCCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7085 * Subject = タイトル(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7086 * Text = 本文(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7087 */ 7088 extern int MailApp_Send(const (dxlib_d.DxDataType.TCHAR)* MailAddr = null, const (dxlib_d.DxDataType.TCHAR)* MailCCAddr = null, const (dxlib_d.DxDataType.TCHAR)* MailBCCAddr = null, const (dxlib_d.DxDataType.TCHAR)* Subject = null, const (dxlib_d.DxDataType.TCHAR)* Text = null); 7089 7090 /** 7091 * メールアプリを送信メール編集状態で起動する 7092 * 7093 * Params: 7094 * MailAddr = 宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7095 * MailAddrLength = ? 7096 * MailCCAddr = CCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7097 * MailCCAddrLength = ? 7098 * MailBCCAddr = BCCの宛先(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7099 * MailBCCAddrLength = ? 7100 * Subject = タイトル(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7101 * Text = 本文(nullで無効)、メールアドレスが複数ある場合はカンマ『,』で区切ってください 7102 */ 7103 extern int MailApp_SendWithStrLen(const (dxlib_d.DxDataType.TCHAR)* MailAddr = null, size_t MailAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* MailCCAddr = null, size_t MailCCAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* MailBCCAddr = null, size_t MailBCCAddrLength = 0, const (dxlib_d.DxDataType.TCHAR)* Subject = null, size_t SubjectLength = 0, const (dxlib_d.DxDataType.TCHAR)* Text = null, size_t TextLength = 0); 7104 } 7105 7106 // DxLog.cpp関数プロトタイプ宣言 7107 7108 version (DX_NON_LOG) { 7109 } else { 7110 // ログファイル関数 7111 7112 /** 7113 * ログファイル(Log.txt)に文字列を出力する 7114 */ 7115 extern int LogFileAdd(const (dxlib_d.DxDataType.TCHAR)* String); 7116 7117 /** 7118 * ログファイル(Log.txt)に文字列を出力する 7119 */ 7120 extern int LogFileAddWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 7121 7122 /** 7123 * 書式付きでログファイル(Log.txt)に文字列を出力する(書式はprintfと同じ) 7124 */ 7125 extern int LogFileFmtAdd(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7126 7127 /** 7128 * ログファイル(Log.txt)に出力する文字列の前に付けるタブの数を1つ増やす 7129 */ 7130 extern int LogFileTabAdd(); 7131 7132 /** 7133 * ログファイル(Log.txt)に出力する文字列の前に付けるタブの数を1つ減らす 7134 */ 7135 extern int LogFileTabSub(); 7136 7137 /** 7138 * LogFileAddの旧名称関数 7139 */ 7140 extern int ErrorLogAdd(const (dxlib_d.DxDataType.TCHAR)* String); 7141 7142 /** 7143 * LogFileFmtAddの旧名称関数 7144 */ 7145 extern int ErrorLogFmtAdd(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7146 7147 /** 7148 * LogFileTabAddの旧名称関数 7149 */ 7150 extern int ErrorLogTabAdd(); 7151 7152 /** 7153 * LogFileTabSubの旧名称関数 7154 */ 7155 extern int ErrorLogTabSub(); 7156 7157 /** 7158 * ログファイル(Log.txt)に出力する文字列の前に起動してからの時間を付けるかどうかを設定する 7159 * 7160 * Params: 7161 * UseFlag = dxlib_d.DxDataType.TRUE:付ける(デフォルト) dxlib_d.DxDataType.FALSE:付けない 7162 */ 7163 extern int SetUseTimeStampFlag(int UseFlag); 7164 7165 /** 7166 * LogFileFmtAddと同じ機能の関数 7167 */ 7168 extern int AppLogAdd(const (dxlib_d.DxDataType.TCHAR)* String, ...); 7169 7170 // ログ出力設定関数 7171 7172 /** 7173 * ログファイル(Log.txt)を作成するかどうかを設定する、DxLib_Initの前でのみ使用可能 7174 * 7175 * Params: 7176 * Flag = dxlib_d.DxDataType.TRUE:作成する(デフォルト) dxlib_d.DxDataType.FALSE:作成しない 7177 */ 7178 extern int SetOutApplicationLogValidFlag(int Flag); 7179 7180 /** 7181 * ログファイルの名前を設定する(Log.txt以外にしたい場合に使用) 7182 */ 7183 extern int SetApplicationLogFileName(const (dxlib_d.DxDataType.TCHAR)* FileName); 7184 7185 /** 7186 * ログファイルの名前を設定する(Log.txt以外にしたい場合に使用) 7187 */ 7188 extern int SetApplicationLogFileNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 7189 7190 /** 7191 * ログファイル(Log.txt)を保存するディレクトリパスを設定する 7192 */ 7193 extern int SetApplicationLogSaveDirectory(const (dxlib_d.DxDataType.TCHAR)* DirectoryPath); 7194 7195 /** 7196 * ログファイル(Log.txt)を保存するディレクトリパスを設定する 7197 */ 7198 extern int SetApplicationLogSaveDirectoryWithStrLen(const (dxlib_d.DxDataType.TCHAR)* DirectoryPath, size_t DirectoryPathLength); 7199 7200 /** 7201 * ログファイル名に日付をつけるかどうかをセットする 7202 * 7203 * Params: 7204 * Flag = dxlib_d.DxDataType.TRUE:付ける dxlib_d.DxDataType.FALSE:付けない(デフォルト) 7205 */ 7206 extern int SetUseDateNameLogFile(int Flag); 7207 7208 version (DX_NON_PRINTF_DX) { 7209 } else { 7210 // ログ出力機能関数 7211 7212 /** 7213 * printfDxの結果を画面に出力するかどうかを設定する、dxlib_d.DxDataType.TRUE:出力を行う dxlib_d.DxDataType.FALSE:出力を行わない(printfDxを実行すると内部でSetLogDrawOutFlag(dxlib_d.DxDataType.TRUE);が呼ばれます) 7214 */ 7215 extern int SetLogDrawOutFlag(int DrawFlag); 7216 7217 /** 7218 * printfDxの結果を画面に出力するかどうかの設定を取得する 7219 * 7220 * Returns: dxlib_d.DxDataType.TRUE:出力を行う dxlib_d.DxDataType.FALSE:出力を行わない 7221 */ 7222 extern int GetLogDrawFlag(); 7223 7224 /** 7225 * printfDxの結果を画面に出力する際に使用するフォントのサイズを設定する 7226 */ 7227 extern int SetLogFontSize(int Size); 7228 7229 /** 7230 * printfDxの結果を画面に出力する際に使用するフォントのハンドルを変更する 7231 */ 7232 extern int SetLogFontHandle(int FontHandle); 7233 7234 /** 7235 * printfDxの結果を画面に出力する際の描画する領域を設定する 7236 */ 7237 extern int SetLogDrawArea(int x1, int y1, int x2, int y2); 7238 7239 // 簡易画面出力関数 7240 7241 /** 7242 * printfと同じ引数で画面に文字列を表示するための関数 7243 */ 7244 extern int printfDx(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7245 7246 /** 7247 * putsと同じ引数で画面に文字列を表示するための関数 7248 */ 7249 extern int putsDx(const (dxlib_d.DxDataType.TCHAR)* String, int NewLine = dxlib_d.DxDataType.TRUE); 7250 7251 /** 7252 * putsと同じ引数で画面に文字列を表示するための関数 7253 */ 7254 extern int putsDxWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int NewLine = dxlib_d.DxDataType.TRUE); 7255 7256 /** 7257 * printfDxの結果をリセットするための関数 7258 */ 7259 extern int clsDx(); 7260 } 7261 } 7262 7263 version (DX_NON_ASYNCLOAD) { 7264 } else { 7265 // DxASyncLoad.cpp関数プロトタイプ宣言 7266 7267 // 非同期読み込み関係 7268 7269 /** 7270 * 読み込み処理系の関数で非同期読み込みを行うかどうかを設定する(非同期読み込みに対応している関数のみ有効) 7271 * 7272 * Params: 7273 * Flag = dxlib_d.DxDataType.TRUE:非同期読み込みを行う dxlib_d.DxDataType.FALSE:非同期読み込みを行わない(デフォルト) 7274 */ 7275 extern int SetUseASyncLoadFlag(int Flag); 7276 7277 /** 7278 * 読み込み処理系の関数で非同期読み込みを行うかどうかを取得する(非同期読み込みに対応している関数のみ有効) 7279 * 7280 * Returns: dxlib_d.DxDataType.TRUE:非同期読み込みを行う dxlib_d.DxDataType.FALSE:非同期読み込みを行わない(デフォルト) 7281 */ 7282 extern int GetUseASyncLoadFlag(); 7283 7284 /** 7285 * ハンドルの非同期読み込みが完了しているかどうかを取得する 7286 * 7287 * Returns: dxlib_d.DxDataType.TRUE:まだ完了していない dxlib_d.DxDataType.FALSE:完了している -1:エラー 7288 */ 7289 extern int CheckHandleASyncLoad(int Handle); 7290 7291 /** 7292 * ハンドルの非同期読み込み処理の戻り値を取得する(非同期読み込み中の場合は1つ前の非同期読み込み処理の戻り値が返ってきます) 7293 */ 7294 extern int GetHandleASyncLoadResult(int Handle); 7295 7296 /** 7297 * ハンドルの非同期読み込み処理が完了したらハンドルを削除するフラグを立てる 7298 */ 7299 extern int SetASyncLoadFinishDeleteFlag(int Handle); 7300 7301 /** 7302 * 非同期読み込み中の処理の数を取得する 7303 */ 7304 extern int GetASyncLoadNum(); 7305 7306 /** 7307 * 非同期読み込み処理を行うスレッドの数を設定する(ThreadNumに指定できる数は1~32) 7308 */ 7309 extern int SetASyncLoadThreadNum(int ThreadNum); 7310 } 7311 7312 // DxHandle.cpp関数プロトタイプ宣言 7313 7314 /** 7315 * ハンドルが削除されたときに-1が設定される変数を登録する 7316 */ 7317 extern int SetDeleteHandleFlag(int Handle, int* DeleteFlag); 7318 7319 // マウス関係関数 7320 7321 /** 7322 * マウスポインタの表示状態を設定する(DispFlag:マウスポインタを表示するかどうか 7323 * 7324 * Params: 7325 * DispFlag = dxlib_d.DxDataType.TRUE:表示する dxlib_d.DxDataType.FALSE:表示しない 7326 */ 7327 extern int SetMouseDispFlag(int DispFlag); 7328 7329 version (DX_NON_INPUT) { 7330 } else { 7331 /** 7332 * マウスポインタの位置を取得する 7333 */ 7334 extern int GetMousePoint(int* XBuf, int* YBuf); 7335 7336 /** 7337 * マウスポインタの位置を設定する 7338 */ 7339 extern int SetMousePoint(int PointX, int PointY); 7340 7341 /** 7342 * マウスのボタンの押下状態を取得する 7343 */ 7344 extern int GetMouseInput(); 7345 7346 /** 7347 * 垂直マウスホイールの回転量を取得する 7348 */ 7349 extern int GetMouseWheelRotVol(int CounterReset = dxlib_d.DxDataType.TRUE); 7350 7351 /** 7352 * 水平マウスホイールの回転量を取得する 7353 */ 7354 extern int GetMouseHWheelRotVol(int CounterReset = dxlib_d.DxDataType.TRUE); 7355 7356 /** 7357 * 垂直マウスホイールの回転量を取得する(戻り値がfloat型) 7358 */ 7359 extern float GetMouseWheelRotVolF(int CounterReset = dxlib_d.DxDataType.TRUE); 7360 7361 /** 7362 * 水平マウスホイールの回転量を取得する(戻り値がfloat型) 7363 */ 7364 extern float GetMouseHWheelRotVolF(int CounterReset = dxlib_d.DxDataType.TRUE); 7365 7366 /** 7367 * マウスのボタンを押した情報を1つ取得する 7368 * 7369 * Params: 7370 * Button = 押されたボタン(MOUSE_INPUT_LEFT等)を格納する変数のアドレス 7371 * ClickX = 押された時のX座標を格納する変数のアドレス 7372 * ClickY = 押された時のY座標を格納する変数のアドレス 7373 * LogDelete = 取得した押下情報1つ分をログから削除するかどうか(dxlib_d.DxDataType.TRUE:削除する dxlib_d.DxDataType.FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる) 7374 * 7375 * Returns: 0:押された情報取得できた -1:押された情報が無かった、つまり前回の呼び出し(または起動時から最初の呼び出し)の間に一度もマウスのボタンが押されなかった 7376 */ 7377 extern int GetMouseInputLog(int* Button, int* ClickX, int* ClickY, int LogDelete = dxlib_d.DxDataType.TRUE); 7378 7379 /** 7380 * マウスのボタンを押したり離したりした情報を1つ取得する 7381 * 7382 * Params: 7383 * Button = 押されたり離されたりしたボタン(MOUSE_INPUT_LEFT等)を格納する変数のアドレス 7384 * ClickX = 押されたり離されたりした時のX座標を格納する変数のアドレス 7385 * ClickY = 押されたり離されたりした時のY座標を格納する変数のアドレス 7386 * LogType = 押されたのか(MOUSE_INPUT_LOG_DOWN)離されたのか(MOUSE_INPUT_LOG_UP)、等の情報を格納する変数のアドレス 7387 * LogDelete = 取得した押されたり離されたりした情報1つ分をログから削除するかどうか(dxlib_d.DxDataType.TRUE:削除する dxlib_d.DxDataType.FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる) 7388 * 7389 * Returns: 0:押されたり離されたりした情報取得できた -1:押されたり離されたりした情報が無かった、つまり前回の呼び出し(または起動時から最初の呼び出し)の間に一度もマウスのボタンが押されたり離されたりしなかった 7390 */ 7391 extern int GetMouseInputLog2(int* Button, int* ClickX, int* ClickY, int* LogType, int LogDelete = dxlib_d.DxDataType.TRUE); 7392 } 7393 7394 // タッチパネル入力関係関数 7395 version (DX_NON_INPUT) { 7396 } else { 7397 /** 7398 * タッチされている数を取得する 7399 */ 7400 extern int GetTouchInputNum(); 7401 7402 /** 7403 * タッチの情報を取得する 7404 */ 7405 extern int GetTouchInput(int InputNo, int* PositionX, int* PositionY, int* ID = null, int* Device = null); 7406 7407 /** 7408 * ストックされているタッチ情報の数を取得する 7409 */ 7410 extern int GetTouchInputLogNum(); 7411 7412 /** 7413 * ストックされているタッチ情報をクリアする 7414 */ 7415 extern int ClearTouchInputLog(); 7416 7417 /** 7418 * ストックされているタッチ情報から一番古い情報をひとつ取得する 7419 */ 7420 extern .TOUCHINPUTDATA GetTouchInputLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE); 7421 7422 /** 7423 * ストックされているタッチ情報から古い順に指定数バッファに取得する 7424 * 7425 * Returns: -1:エラー 0以上:取得した情報の数 7426 */ 7427 extern int GetTouchInputLog(.TOUCHINPUTDATA* TouchData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE); 7428 7429 /** 7430 * ストックされているタッチされ始めた情報の数を取得する 7431 */ 7432 extern int GetTouchInputDownLogNum(); 7433 7434 /** 7435 * ストックされているタッチされ始めた情報をクリアする 7436 */ 7437 extern int ClearTouchInputDownLog(); 7438 7439 /** 7440 * ストックされているタッチされ始めた情報から一番古い情報をひとつ取得する 7441 */ 7442 extern .TOUCHINPUTPOINT GetTouchInputDownLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE); 7443 7444 /** 7445 * ストックされているタッチされ始めた情報から古い順に指定数バッファに取得する 7446 * 7447 * Returns: -1:エラー 0以上:取得した情報の数 7448 */ 7449 extern int GetTouchInputDownLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE); 7450 7451 /** 7452 * ストックされているタッチが離された情報の数を取得する 7453 */ 7454 extern int GetTouchInputUpLogNum(); 7455 7456 /** 7457 * ストックされているタッチが離された情報をクリアする 7458 */ 7459 extern int ClearTouchInputUpLog(); 7460 7461 /** 7462 * ストックされているタッチが離された情報から一番古い情報をひとつ取得する 7463 */ 7464 extern .TOUCHINPUTPOINT GetTouchInputUpLogOne(int PeekFlag = dxlib_d.DxDataType.FALSE); 7465 7466 /** 7467 * ストックされているタッチが離された情報から古い順に指定数バッファに取得する 7468 * 7469 * Returns: -1:エラー 0以上:取得した情報の数 7470 */ 7471 extern int GetTouchInputUpLog(.TOUCHINPUTPOINT* PointData, int GetNum, int PeekFlag = dxlib_d.DxDataType.FALSE); 7472 } 7473 7474 // DxMemory.cpp関数プロトタイプ宣言 7475 7476 // メモリ確保系関数 7477 7478 /** 7479 * 指定のサイズのメモリを確保する 7480 * 7481 * Params: 7482 * AllocSize = 確保するメモリのサイズ(単位:byte) 7483 * File = DxAllocを呼んだソースファイル名(デバッグ用) 7484 * Line = DxAllocを呼んだソースファイル中の行番号(デバッグ用) 7485 * 7486 * Returns: null:メモリの確保失敗 NULL以外:確保したメモリ領域の先頭アドレス 7487 */ 7488 extern void* DxAlloc(size_t AllocSize, const (char)* File = null, int Line = -1); 7489 7490 /** 7491 * 指定のサイズのメモリを確保する(アライン指定版) 7492 * 7493 * Params: 7494 * AllocSize = 確保するメモリのサイズ(単位:byte) 7495 * Alignment = 確保するメモリ領域のアドレス値の倍数 7496 * File = DxAllocを呼んだソースファイル名(デバッグ用) 7497 * Line = DxAllocを呼んだソースファイル中の行番号(デバッグ用) 7498 * 7499 * Returns: null:メモリの確保失敗 NULL以外:確保したメモリ領域の先頭アドレス 7500 */ 7501 extern void* DxAllocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7502 7503 /** 7504 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外はDxAllocと動作は同じ 7505 */ 7506 extern void* DxCalloc(size_t AllocSize, const (char)* File = null, int Line = -1); 7507 7508 /** 7509 * 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外はDxAllocAlignedと動作は同じ 7510 */ 7511 extern void* DxCallocAligned(size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7512 7513 /** 7514 * メモリの再確保を行う(FileとLineの説明はDxAllocの注釈の通り) 7515 * 7516 * Params: 7517 * Memory = 再確保を行うメモリ領域の先頭アドレス(DxAllocの戻り値) 7518 * AllocSize = 新しい確保サイズ 7519 * File = ? 7520 * Line = ? 7521 * 7522 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス 7523 */ 7524 extern void* DxRealloc(void* Memory, size_t AllocSize, const (char)* File = null, int Line = -1); 7525 7526 /** 7527 * メモリの再確保を行う(アライン指定版)(FileとLineの説明はDxAllocの注釈の通り) 7528 * 7529 * Params: 7530 * Memory = 再確保を行うメモリ領域の先頭アドレス(DxAllocの戻り値) 7531 * AllocSize = 新しい確保サイズ 7532 * Alignment = 新しく確保するメモリ領域のアドレス値の倍数 7533 * File = ? 7534 * Line = ? 7535 * 7536 * Returns: null:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス 7537 */ 7538 extern void* DxReallocAligned(void* Memory, size_t AllocSize, size_t Alignment, const (char)* File = null, int Line = -1); 7539 7540 /** 7541 * メモリを解放する 7542 * 7543 * Params: 7544 * Memory = 解放するメモリ領域の先頭アドレス(DxAllocの戻り値) 7545 */ 7546 extern void DxFree(void* Memory); 7547 7548 /** 7549 * 列挙対象にするメモリの確保容量をセットする 7550 */ 7551 extern size_t DxSetAllocSizeTrap(size_t Size); 7552 7553 /** 7554 * DXライブラリ内でメモリ確保が行われる時に情報を出力するかどうかをセットする 7555 */ 7556 extern int DxSetAllocPrintFlag(int Flag); 7557 7558 /** 7559 * DxAllocやDxCallocで確保しているメモリサイズを取得する 7560 */ 7561 extern size_t DxGetAllocSize(); 7562 7563 /** 7564 * DxAllocやDxCallocで確保しているメモリの数を取得する 7565 */ 7566 extern int DxGetAllocNum(); 7567 7568 /** 7569 * DxAllocやDxCallocで確保しているメモリを列挙する 7570 */ 7571 extern void DxDumpAlloc(); 7572 7573 /** 7574 * DxAllocやDxCallocで確保しているメモリの状況を描画する 7575 */ 7576 extern void DxDrawAlloc(int x, int y, int Width, int Height); 7577 7578 /** 7579 * 確保したメモリ情報が破壊されていないか調べる 7580 * 7581 * Returns: -1:破壊あり 0:なし 7582 */ 7583 extern int DxErrorCheckAlloc(); 7584 7585 /** 7586 * メモリが確保、解放が行われる度に確保しているメモリの容量を出力するかどうかのフラグをセットする 7587 */ 7588 extern int DxSetAllocSizeOutFlag(int Flag); 7589 7590 /** 7591 * メモリの確保、解放が行われる度に確保しているメモリ確保情報が破損していないか調べるかどうかのフラグをセットする 7592 */ 7593 extern int DxSetAllocMemoryErrorCheckFlag(int Flag); 7594 7595 // DxBaseFunc.cpp 関数プロトタイプ宣言 7596 7597 // 文字コード関係 7598 7599 /** 7600 * 文字列の先頭の文字のバイト数を取得する 7601 * 7602 * Params: 7603 * CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等 7604 * String = ? 7605 */ 7606 extern int GetCharBytes(int CharCodeFormat, const (void)* String); 7607 7608 /** 7609 * 文字列の文字コード形式を別の文字コード形式に変換する 7610 * 7611 * Params: 7612 * SrcCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等 7613 * SrcString = ? 7614 * DestCharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等 7615 * DestStringBuffer = ? 7616 */ 7617 extern int ConvertStringCharCodeFormat(int SrcCharCodeFormat, const (void)* SrcString, int DestCharCodeFormat, void* DestStringBuffer); 7618 7619 /** 7620 * 文字列の引数の文字コード形式を設定する(文字列描画系関数とその他一部関数を除く)(UNICODE版では無効) 7621 * 7622 * Params: 7623 * CharCodeFormat = DX_CHARCODEFORMAT_SHIFTJIS等 7624 */ 7625 extern int SetUseCharCodeFormat(int CharCodeFormat); 7626 7627 /** 7628 * 文字列の引数の文字コード形式を取得する(UNICODE版では無効) 7629 * 7630 * Returns: 文字コード形式(DX_CHARCODEFORMAT_SHIFTJIS等) 7631 */ 7632 extern int GetUseCharCodeFormat(); 7633 7634 /** 7635 * wchar_t型の文字コード形式を取得する 7636 * 7637 * Returns: DX_CHARCODEFORMAT_UTF16LEなど 7638 */ 7639 extern int Get_wchar_t_CharCodeFormat(); 7640 7641 // 文字列関係 7642 7643 /** 7644 * strcpyと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7645 */ 7646 extern void strcpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src); 7647 7648 /** 7649 * strcpy_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7650 */ 7651 extern void strcpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src); 7652 7653 /** 7654 * 位置指定付きstrcpy、Posはコピー開始位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7655 */ 7656 extern void strpcpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos); 7657 7658 /** 7659 * 位置指定付きstrcpy_s、Posはコピー開始位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7660 */ 7661 extern void strpcpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos); 7662 7663 /** 7664 * 位置指定付きstrcpy、Posはコピー開始位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7665 */ 7666 extern void strpcpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos); 7667 7668 /** 7669 * 位置指定付きstrcpy_s、Posはコピー開始位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7670 */ 7671 extern void strpcpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos); 7672 7673 /** 7674 * strncpyと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7675 */ 7676 extern void strncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7677 7678 /** 7679 * strncpy_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7680 */ 7681 extern void strncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7682 7683 /** 7684 * strncpyのNumが文字数(全角文字も1扱い)になったもの、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7685 */ 7686 extern void strncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7687 7688 /** 7689 * strncpy_sのNumが文字数(全角文字も1扱い)になったもの、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7690 */ 7691 extern void strncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7692 7693 /** 7694 * strncpyの文字列の終端からの文字数指定版(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7695 */ 7696 extern void strrncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7697 7698 /** 7699 * strncpy_sの文字列の終端からの文字数指定版(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7700 */ 7701 extern void strrncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7702 7703 /** 7704 * strncpyの文字列の終端からの文字数(全角文字も1扱い)指定版、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7705 */ 7706 extern void strrncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7707 7708 /** 7709 * strncpy_sの文字列の終端からの文字数(全角文字も1扱い)指定版、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7710 */ 7711 extern void strrncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Num); 7712 7713 /** 7714 * strncpyのコピー開始位置指定版、Posはコピー開始位置、Numは文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7715 */ 7716 extern void strpncpyDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num); 7717 7718 /** 7719 * strncpy_sのコピー開始位置指定版、Posはコピー開始位置、Numは文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7720 */ 7721 extern void strpncpy_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num); 7722 7723 /** 7724 * strncpyのコピー開始位置指定版、Posはコピー開始位置(全角文字も1扱い)、Numは文字数(全角文字も1扱い)、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7725 */ 7726 extern void strpncpy2Dx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num); 7727 7728 /** 7729 * strncpy_sのコピー開始位置指定版、Posはコピー開始位置(全角文字も1扱い)、Numは文字数(全角文字も1扱い)、終端に必ずヌル文字が代入される(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7730 */ 7731 extern void strpncpy2_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src, int Pos, int Num); 7732 7733 /** 7734 * strcatと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7735 */ 7736 extern void strcatDx(dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* Src); 7737 7738 /** 7739 * strcat_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7740 */ 7741 extern void strcat_sDx(dxlib_d.DxDataType.TCHAR* Dest, size_t DestBytes, const (dxlib_d.DxDataType.TCHAR)* Src); 7742 7743 /** 7744 * strlenと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7745 */ 7746 extern size_t strlenDx(const (dxlib_d.DxDataType.TCHAR)* Str); 7747 7748 /** 7749 * strlenの戻り値が文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7750 */ 7751 extern size_t strlen2Dx(const (dxlib_d.DxDataType.TCHAR)* Str); 7752 7753 /** 7754 * strcmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7755 */ 7756 extern int strcmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7757 7758 /** 7759 * stricmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7760 */ 7761 extern int stricmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7762 7763 /** 7764 * strncmpと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7765 */ 7766 extern int strncmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Num); 7767 7768 /** 7769 * strncmpのNumが文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7770 */ 7771 extern int strncmp2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Num); 7772 7773 /** 7774 * strncmpの比較開始位置指定版、PosがStr1の比較開始位置、Numが文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7775 */ 7776 extern int strpncmpDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Pos, int Num); 7777 7778 /** 7779 * strncmpの比較開始位置指定版、PosがStr1の比較開始位置(全角文字も1扱い)、Numが文字数(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7780 */ 7781 extern int strpncmp2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2, int Pos, int Num); 7782 7783 /** 7784 * 文字列の指定の位置の文字コードを取得する、Posは取得する位置、CharNumsは文字数を代入する変数のアドレス 7785 * 7786 * Returns: 文字コード(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7787 */ 7788 extern dxlib_d.DxDataType.DWORD strgetchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos, int* CharNums = null); 7789 7790 /** 7791 * 文字列の指定の位置の文字コードを取得する、Posは取得する位置(全角文字も1扱い)、CharNumsは文字数を代入する変数のアドレス、 7792 * 7793 * Returns: 文字コード(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7794 */ 7795 extern dxlib_d.DxDataType.DWORD strgetchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos, int* CharNums = null); 7796 7797 /** 7798 * 文字列の指定の位置に文字コードを書き込む、Posは書き込む位置、CharCodeは文字コード 7799 * 7800 * Returns: 書き込んだ文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7801 */ 7802 extern int strputchrDx(dxlib_d.DxDataType.TCHAR* Str, int Pos, dxlib_d.DxDataType.DWORD CharCode); 7803 7804 /** 7805 * 文字列の指定の位置に文字コードを書き込む、Posは書き込む位置(全角文字も1扱い)、CharCodeは文字コード 7806 * 7807 * Returns: 書き込んだ文字数(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7808 */ 7809 extern int strputchr2Dx(dxlib_d.DxDataType.TCHAR* Str, int Pos, dxlib_d.DxDataType.DWORD CharCode); 7810 7811 /** 7812 * 文字列の指定の位置のアドレスを取得する、Posは取得する位置(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7813 */ 7814 extern const (dxlib_d.DxDataType.TCHAR)* strposDx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos); 7815 7816 /** 7817 * 文字列の指定の位置のアドレスを取得する、Posは取得する位置(全角文字も1扱い)(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7818 */ 7819 extern const (dxlib_d.DxDataType.TCHAR)* strpos2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, int Pos); 7820 7821 /** 7822 * strstrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7823 */ 7824 extern const (dxlib_d.DxDataType.TCHAR)* strstrDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7825 7826 /** 7827 * strstrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7828 */ 7829 extern int strstr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7830 7831 /** 7832 * strrstrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7833 */ 7834 extern const (dxlib_d.DxDataType.TCHAR)* strrstrDx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7835 7836 /** 7837 * strrstrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7838 */ 7839 extern int strrstr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str1, const (dxlib_d.DxDataType.TCHAR)* Str2); 7840 7841 /** 7842 * strchrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7843 */ 7844 extern const (dxlib_d.DxDataType.TCHAR)* strchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode); 7845 7846 /** 7847 * strchrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7848 */ 7849 extern int strchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode); 7850 7851 /** 7852 * strrchrと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7853 */ 7854 extern const (dxlib_d.DxDataType.TCHAR)* strrchrDx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode); 7855 7856 /** 7857 * strrchrの戻り値が文字列先頭からの文字数(全角文字も1扱い)になったもの(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7858 */ 7859 extern int strrchr2Dx(const (dxlib_d.DxDataType.TCHAR)* Str, dxlib_d.DxDataType.DWORD CharCode); 7860 7861 /** 7862 * struprと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7863 */ 7864 extern dxlib_d.DxDataType.TCHAR* struprDx(dxlib_d.DxDataType.TCHAR* Str); 7865 7866 /** 7867 * vsprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7868 */ 7869 extern int vsprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7870 7871 /** 7872 * vsnprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7873 */ 7874 extern int vsnprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7875 7876 /** 7877 * sprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7878 */ 7879 extern int sprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7880 7881 /** 7882 * snprintfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7883 */ 7884 extern int snprintfDx(dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7885 7886 /** 7887 * itoaと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7888 */ 7889 extern dxlib_d.DxDataType.TCHAR* itoaDx(int Value, dxlib_d.DxDataType.TCHAR* Buffer, int Radix); 7890 7891 /** 7892 * itoa_sと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7893 */ 7894 extern dxlib_d.DxDataType.TCHAR* itoa_sDx(int Value, dxlib_d.DxDataType.TCHAR* Buffer, size_t BufferBytes, int Radix); 7895 7896 /** 7897 * atoiと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7898 */ 7899 extern int atoiDx(const (dxlib_d.DxDataType.TCHAR)* Str); 7900 7901 /** 7902 * atofと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7903 */ 7904 extern double atofDx(const (dxlib_d.DxDataType.TCHAR)* Str); 7905 7906 /** 7907 * vsscanfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7908 */ 7909 extern int vsscanfDx(const (dxlib_d.DxDataType.TCHAR)* String, const (dxlib_d.DxDataType.TCHAR)* FormatString, core.stdc.stdarg.va_list Arg); 7910 7911 /** 7912 * sscanfと同等の機能(マルチバイト文字列版では文字コード形式として SetUseCharCodeFormatで設定した形式が使用されます) 7913 */ 7914 extern int sscanfDx(const (dxlib_d.DxDataType.TCHAR)* String, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 7915 7916 // DxNetwork.cpp関数プロトタイプ宣言 7917 7918 version (DX_NON_NETWORK) { 7919 } else { 7920 // 通信関係 7921 7922 /** 7923 * 通信メッセージの処理をする関数 7924 */ 7925 extern int ProcessNetMessage(int RunReleaseProcess = dxlib_d.DxDataType.FALSE); 7926 7927 /** 7928 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv4版) 7929 */ 7930 extern int GetHostIPbyName(const (dxlib_d.DxDataType.TCHAR)* HostName, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7931 7932 /** 7933 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv4版) 7934 */ 7935 extern int GetHostIPbyNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* HostName, size_t HostNameLength, .IPDATA* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7936 7937 /** 7938 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv6版) 7939 */ 7940 extern int GetHostIPbyName_IPv6(const (dxlib_d.DxDataType.TCHAR)* HostName, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7941 7942 /** 7943 * DNSサーバーを使ってホスト名からIPアドレスを取得する(IPv6版) 7944 */ 7945 extern int GetHostIPbyName_IPv6WithStrLen(const (dxlib_d.DxDataType.TCHAR)* HostName, size_t HostNameLength, .IPDATA_IPv6* IPDataBuf, int IPDataBufLength = 1, int* IPDataGetNum = null); 7946 7947 /** 7948 * 他マシンに接続する(IPv4版) 7949 */ 7950 extern int ConnectNetWork(.IPDATA IPData, int Port = -1); 7951 7952 /** 7953 * 他マシンに接続する(IPv6版) 7954 */ 7955 extern int ConnectNetWork_IPv6(.IPDATA_IPv6 IPData, int Port = -1); 7956 7957 /** 7958 * 他マシンに接続する(IPv4版)、非同期版 7959 */ 7960 extern int ConnectNetWork_ASync(.IPDATA IPData, int Port = -1); 7961 7962 /** 7963 * 他マシンに接続する(IPv6版)、非同期版 7964 */ 7965 extern int ConnectNetWork_IPv6_ASync(.IPDATA_IPv6 IPData, int Port = -1); 7966 7967 /** 7968 * 接続を受けられる状態にする(IPv4版) 7969 */ 7970 extern int PreparationListenNetWork(int Port = -1); 7971 7972 /** 7973 * 接続を受けられる状態にする(IPv6版) 7974 */ 7975 extern int PreparationListenNetWork_IPv6(int Port = -1); 7976 7977 /** 7978 * 接続を受けつけ状態の解除 7979 */ 7980 extern int StopListenNetWork(); 7981 7982 /** 7983 * 接続を終了する 7984 */ 7985 extern int CloseNetWork(int NetHandle); 7986 7987 /** 7988 * 接続状態を取得する 7989 */ 7990 extern int GetNetWorkAcceptState(int NetHandle); 7991 7992 /** 7993 * 受信データの量を得る 7994 */ 7995 extern int GetNetWorkDataLength(int NetHandle); 7996 7997 /** 7998 * 未送信のデータの量を得る 7999 */ 8000 extern int GetNetWorkSendDataLength(int NetHandle); 8001 8002 /** 8003 * 新たに接続した通信回線を得る 8004 */ 8005 extern int GetNewAcceptNetWork(); 8006 8007 /** 8008 * 接続を切断された通信回線を得る 8009 */ 8010 extern int GetLostNetWork(); 8011 8012 /** 8013 * 接続先のIPを得る(IPv4版) 8014 */ 8015 extern int GetNetWorkIP(int NetHandle, .IPDATA* IpBuf); 8016 8017 /** 8018 * 接続先のIPを得る(IPv6版) 8019 */ 8020 extern int GetNetWorkIP_IPv6(int NetHandle, .IPDATA_IPv6* IpBuf); 8021 8022 /** 8023 * 自分のIPv4を得る 8024 */ 8025 extern int GetMyIPAddress(.IPDATA* IpBuf, int IpBufLength = 1, int* IpNum = null); 8026 8027 /** 8028 * 自分のIPv6を得る 8029 */ 8030 extern int GetMyIPAddress_IPv6(.IPDATA_IPv6* IpBuf, int IpBufLength = 1, int* IpNum = null); 8031 8032 /** 8033 * 接続のタイムアウトまでの時間を設定する 8034 */ 8035 extern int SetConnectTimeOutWait(int Time); 8036 8037 /** 8038 * DXライブラリの通信形態を使うかどうかをセットする 8039 */ 8040 extern int SetUseDXNetWorkProtocol(int Flag); 8041 8042 /** 8043 * DXライブラリの通信形態を使うかどうかを取得する 8044 */ 8045 extern int GetUseDXNetWorkProtocol(); 8046 8047 /** 8048 * SetUseDXNetWorkProtocolの別名 8049 */ 8050 extern int SetUseDXProtocol(int Flag); 8051 8052 /** 8053 * GetUseDXNetWorkProtocolの別名 8054 */ 8055 extern int GetUseDXProtocol(); 8056 8057 /** 8058 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグをセットする 8059 */ 8060 extern int SetNetWorkCloseAfterLostFlag(int Flag); 8061 8062 /** 8063 * 接続が切断された直後に接続ハンドルを解放するかどうかのフラグを取得する 8064 */ 8065 extern int GetNetWorkCloseAfterLostFlag(); 8066 8067 /** 8068 * HTTP通信で使用するプロキシ設定を行う 8069 */ 8070 version (none) 8071 extern int SetProxySetting(int UseFlag, const (char)* Address, int Port); 8072 8073 /** 8074 * HTTP通信で使用するプロキシ設定を取得する 8075 */ 8076 version (none) 8077 extern int GetProxySetting(int* UseFlagBuffer, char* AddressBuffer, int* PortBuffer); 8078 8079 /** 8080 * IEのプロキシ設定を適応する 8081 */ 8082 version (none) 8083 extern int SetIEProxySetting(); 8084 8085 /** 8086 * 受信したデータを読み込む 8087 */ 8088 extern int NetWorkRecv(int NetHandle, void* Buffer, int Length); 8089 8090 /** 8091 * 受信したデータを読み込む、読み込んだデータはバッファから削除されない 8092 */ 8093 extern int NetWorkRecvToPeek(int NetHandle, void* Buffer, int Length); 8094 8095 /** 8096 * 受信したデータをクリアする 8097 */ 8098 extern int NetWorkRecvBufferClear(int NetHandle); 8099 8100 /** 8101 * データを送信する 8102 */ 8103 extern int NetWorkSend(int NetHandle, const (void)* Buffer, int Length); 8104 8105 /** 8106 * UDPを使用した通信を行うソケットハンドルを作成する(RecvPortを-1にすると送信専用のソケットハンドルになります) 8107 */ 8108 extern int MakeUDPSocket(int RecvPort = -1); 8109 8110 /** 8111 * UDPを使用した通信を行うソケットハンドルを作成する(RecvPortを-1にすると送信専用のソケットハンドルになります)(IPv6版) 8112 */ 8113 extern int MakeUDPSocket_IPv6(int RecvPort = -1); 8114 8115 /** 8116 * UDPを使用した通信を行うソケットハンドルを削除する 8117 */ 8118 extern int DeleteUDPSocket(int NetUDPHandle); 8119 8120 /** 8121 * UDPを使用した通信で指定のIPにデータを送信する、Lengthは最大65507、SendPortを-1にするとMakeUDPSocketにRecvPortで渡したポートが使用されます 8122 * 8123 * Returns: 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない 8124 */ 8125 extern int NetWorkSendUDP(int NetUDPHandle, .IPDATA SendIP, int SendPort, const (void)* Buffer, int Length); 8126 8127 /** 8128 * UDPを使用した通信で指定のIPにデータを送信する、Lengthは最大65507、SendPortを-1にするとMakeUDPSocketにRecvPortで渡したポートが使用されます(IPv6版) 8129 * 8130 * Returns: 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない 8131 */ 8132 extern int NetWorkSendUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6 SendIP, int SendPort, const (void)* Buffer, int Length); 8133 8134 /** 8135 * UDPを使用した通信でデータを受信する、Peekにdxlib_d.DxDataType.TRUEを渡すと受信に成功してもデータを受信キューから削除しません 8136 * 8137 * Returns: 0以上:受信したデータのサイズ -1:エラー -2:バッファのサイズが足りない -3:受信データがない 8138 */ 8139 extern int NetWorkRecvUDP(int NetUDPHandle, .IPDATA* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek); 8140 8141 /** 8142 * UDPを使用した通信でデータを受信する、Peekにdxlib_d.DxDataType.TRUEを渡すと受信に成功してもデータを受信キューから削除しません(IPv6版) 8143 * 8144 * Returns: 0以上:受信したデータのサイズ -1:エラー -2:バッファのサイズが足りない -3:受信データがない 8145 */ 8146 extern int NetWorkRecvUDP_IPv6(int NetUDPHandle, .IPDATA_IPv6* RecvIP, int* RecvPort, void* Buffer, int Length, int Peek); 8147 8148 /** 8149 * UDPを使用した通信でデータが送信できる状態かどうかを調べる 8150 * 8151 * Returns: -1:エラー dxlib_d.DxDataType.TRUE:送信可能 dxlib_d.DxDataType.FALSE:送信不可能 8152 */ 8153 version (none) 8154 extern int CheckNetWorkSendUDP(int NetUDPHandle); 8155 8156 /** 8157 * UDPを使用した通信で新たな受信データが存在するかどうかを調べる 8158 * 8159 * Returns: -1:エラー dxlib_d.DxDataType.TRUE:受信データあり dxlib_d.DxDataType.FALSE:受信データなし 8160 */ 8161 extern int CheckNetWorkRecvUDP(int NetUDPHandle); 8162 8163 //使用不可 8164 8165 /** 8166 * HTTPを使用してネットワーク上のファイルをダウンロードする 8167 */ 8168 version (none) 8169 extern int HTTP_FileDownload(const (char)* FileURL, const (char)* SavePath = null, void** SaveBufferP = null, int* FileSize = null, char** ParamList = null); 8170 8171 /** 8172 * HTTPを使用してネットワーク上のファイルのサイズを得る 8173 */ 8174 version (none) 8175 extern int HTTP_GetFileSize(const (char)* FileURL); 8176 8177 /** 8178 * HTTPを使用したネットワーク上のファイルをダウンロードする処理を開始する 8179 */ 8180 version (none) 8181 extern int HTTP_StartFileDownload(const (char)* FileURL, const (char)* SavePath, void** SaveBufferP = null, char** ParamList = null); 8182 8183 /** 8184 * HTTPを使用したネットワーク上のファイルのサイズを得る処理を開始する 8185 */ 8186 version (none) 8187 extern int HTTP_StartGetFileSize(const (char)* FileURL); 8188 8189 /** 8190 * HTTPの処理を終了し、ハンドルを解放する 8191 */ 8192 version (none) 8193 extern int HTTP_Close(int HttpHandle); 8194 8195 /** 8196 * 全てのハンドルに対して HTTP_Closeを行う 8197 */ 8198 version (none) 8199 extern int HTTP_CloseAll(); 8200 8201 /** 8202 * HTTP 処理の現在の状態を得る(NET_RES_COMPLETE等) 8203 */ 8204 version (none) 8205 extern int HTTP_GetState(int HttpHandle); 8206 8207 /** 8208 * HTTP 処理でエラーが発生した場合、エラーの内容を得る(HTTP_ERR_NONE等) 8209 */ 8210 version (none) 8211 extern int HTTP_GetError(int HttpHandle); 8212 8213 /** 8214 * HTTP 処理で対象となっているファイルのサイズを得る 8215 * 8216 * Returns: -1:エラー・若しくはまだファイルのサイズを取得していない 0以上:ファイルのサイズ 8217 */ 8218 version (none) 8219 extern int HTTP_GetDownloadFileSize(int HttpHandle); 8220 8221 /** 8222 * HTTP 処理で既にダウンロードしたファイルのサイズを取得する 8223 */ 8224 version (none) 8225 extern int HTTP_GetDownloadedFileSize(int HttpHandle); 8226 8227 /** 8228 * fgetsのネットワークハンドル版(-1:取得できず 0:取得できた) 8229 */ 8230 version (none) 8231 extern int fgetsForNetHandle(int NetHandle, char* strbuffer); 8232 8233 /** 8234 * URLを解析する 8235 */ 8236 version (none) 8237 extern int URLAnalys(const (char)* URL, char* HostBuf = null, char* PathBuf = null, char* FileNameBuf = null, int* PortBuf = null); 8238 8239 /** 8240 * HTTPに渡せない記号が使われた文字列を渡せるような文字列に変換する 8241 * 8242 * Returns: -1:エラー 0以上:変換後の文字列のサイズ 8243 */ 8244 version (none) 8245 extern int URLConvert(char* URL, int ParamConvert = dxlib_d.DxDataType.TRUE, int NonConvert = dxlib_d.DxDataType.FALSE); 8246 8247 /** 8248 * HTTP用パラメータリストから1つのパラメータ文字列を作成する 8249 * 8250 * Returns: -1:エラー 0以上:パラメータの文字列の長さ 8251 */ 8252 version (none) 8253 extern int URLParamAnalysis(char** ParamList, char** ParamStringP); 8254 } 8255 8256 // DxInputString.cpp関数プロトタイプ宣言 8257 8258 version (DX_NON_INPUTSTRING) { 8259 } else { 8260 // 文字コードバッファ操作関係 8261 8262 /** 8263 * 文字コードバッファに文字コードをストックする 8264 */ 8265 extern int StockInputChar(dxlib_d.DxDataType.TCHAR CharCode); 8266 8267 /** 8268 * 文字コードバッファをクリアする 8269 */ 8270 extern int ClearInputCharBuf(); 8271 8272 /** 8273 * 文字コードバッファに溜まったデータから文字コードを1つ取得する 8274 */ 8275 extern dxlib_d.DxDataType.TCHAR GetInputChar(int DeleteFlag); 8276 8277 /** 8278 * 文字コードバッファに溜まったデータから文字コードを1つ取得する、バッファになにも文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ 8279 */ 8280 extern dxlib_d.DxDataType.TCHAR GetInputCharWait(int DeleteFlag); 8281 8282 /** 8283 * 文字コードバッファに溜まったデータから1文字分取得する 8284 */ 8285 extern int GetOneChar(dxlib_d.DxDataType.TCHAR* CharBuffer, int DeleteFlag); 8286 8287 /** 8288 * 文字コードバッファに溜まったデータから1文字分取得する、バッファに何も文字コードがない場合は文字コードがバッファに1文字分溜まるまで待つ 8289 */ 8290 extern int GetOneCharWait(dxlib_d.DxDataType.TCHAR* CharBuffer, int DeleteFlag); 8291 8292 /** 8293 * 指定の文字コードがアスキーコントロールコードか調べる 8294 */ 8295 extern int GetCtrlCodeCmp(dxlib_d.DxDataType.TCHAR Char); 8296 } 8297 8298 version (DX_NON_KEYEX) { 8299 } else { 8300 /** 8301 * 画面上に入力中の文字列を描画する 8302 */ 8303 extern int DrawIMEInputString(int x, int y, int SelectStringNum, int DrawCandidateList = dxlib_d.DxDataType.TRUE); 8304 8305 /** 8306 * IMEを使用するかどうかを設定する 8307 */ 8308 extern int SetUseIMEFlag(int UseFlag); 8309 8310 /** 8311 * IMEを使用するかどうかの設定を取得する 8312 */ 8313 extern int GetUseIMEFlag(); 8314 8315 /** 8316 * IMEで入力できる最大文字数をMakeKeyInputの設定に合わせるかどうかをセットする 8317 * 8318 * Params: 8319 * Flag = dxlib_d.DxDataType.TRUE:あわせる dxlib_d.DxDataType.FALSE:あわせない(デフォルト) 8320 */ 8321 extern int SetInputStringMaxLengthIMESync(int Flag); 8322 8323 /** 8324 * IMEで一度に入力できる最大文字数を設定する(0:制限なし 1以上:指定の文字数で制限) 8325 * 8326 * Params: 8327 * Length = ? 8328 */ 8329 extern int SetIMEInputStringMaxLength(int Length); 8330 } 8331 8332 /** 8333 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る 8334 */ 8335 extern int GetStringPoint(const (dxlib_d.DxDataType.TCHAR)* String, int Point); 8336 8337 /** 8338 * 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る 8339 */ 8340 extern int GetStringPointWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int Point); 8341 8342 /** 8343 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る 8344 */ 8345 extern int GetStringPoint2(const (dxlib_d.DxDataType.TCHAR)* String, int Point); 8346 8347 /** 8348 * 全角文字、半角文字入り乱れる中から指定の半角文字数での文字数を得る 8349 */ 8350 extern int GetStringPoint2WithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int Point); 8351 8352 /** 8353 * 全角文字、半角文字入り乱れる中から文字数を取得する 8354 */ 8355 extern int GetStringLength(const (dxlib_d.DxDataType.TCHAR)* String); 8356 8357 version (DX_NON_FONT) { 8358 } else { 8359 /** 8360 * 描画可能領域に収まるように改行しながら文字列を描画 8361 */ 8362 extern int DrawObtainsString(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1); 8363 8364 /** 8365 * 描画可能領域に収まるように改行しながら文字列を描画 8366 */ 8367 extern int DrawObtainsNString(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1); 8368 8369 /** 8370 * 描画可能領域に収まるように改行しながら文字列を描画(クリップが文字単位) 8371 */ 8372 extern int DrawObtainsString_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1); 8373 8374 /** 8375 * 描画可能領域に収まるように改行しながら文字列を描画(クリップが文字単位) 8376 */ 8377 extern int DrawObtainsNString_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint StrColor, uint StrEdgeColor = 0, int FontHandle = -1, uint SelectBackColor = 0xFFFFFFFF, uint SelectStrColor = 0, uint SelectStrEdgeColor = 0xFFFFFFFF, int SelectStart = -1, int SelectEnd = -1); 8378 8379 /** 8380 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する 8381 */ 8382 extern int GetObtainsStringCharPosition(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int* PosX, int* PosY, int FontHandle = -1); 8383 8384 /** 8385 * 描画可能領域に収まるように改行しながら文字列を描画した場合の文字列の末端の座標を取得する(クリップが文字単位) 8386 */ 8387 extern int GetObtainsStringCharPosition_CharClip(int x, int y, int AddY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int* PosX, int* PosY, int FontHandle = -1); 8388 } 8389 8390 /** 8391 * 描画可能領域に収まるように補正を加えながら矩形を描画 8392 */ 8393 extern int DrawObtainsBox(int x1, int y1, int x2, int y2, int AddY, uint Color, int FillFlag); 8394 8395 version (DX_NON_KEYEX) { 8396 } else { 8397 /** 8398 * 文字列の入力取得 8399 */ 8400 extern int InputStringToCustom(int x, int y, size_t BufLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = dxlib_d.DxDataType.FALSE, int EnableNewLineFlag = dxlib_d.DxDataType.FALSE, int DisplayCandidateList = dxlib_d.DxDataType.TRUE); 8401 8402 /** 8403 * 文字列の入力取得 8404 */ 8405 extern int KeyInputString(int x, int y, size_t CharMaxLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag); 8406 8407 /** 8408 * 半角文字列のみの入力取得 8409 */ 8410 extern int KeyInputSingleCharString(int x, int y, size_t CharMaxLength, dxlib_d.DxDataType.TCHAR* StrBuffer, int CancelValidFlag); 8411 8412 /** 8413 * 数値の入力取得 8414 */ 8415 extern int KeyInputNumber(int x, int y, int MaxNum, int MinNum, int CancelValidFlag); 8416 8417 /** 8418 * IMEの入力モード文字列を取得する 8419 */ 8420 extern int GetIMEInputModeStr(dxlib_d.DxDataType.TCHAR* GetBuffer); 8421 8422 /** 8423 * IMEで入力中の文字列の情報を取得する 8424 */ 8425 extern const (.IMEINPUTDATA)* GetIMEInputData(); 8426 8427 /** 8428 * (SetKeyInputStringColor2の旧関数)InputString関数使用時の文字の各色を変更する 8429 */ 8430 extern int SetKeyInputStringColor(dxlib_d.DxDataType.ULONGLONG NmlStr, dxlib_d.DxDataType.ULONGLONG NmlCur, dxlib_d.DxDataType.ULONGLONG IMEStrBack, dxlib_d.DxDataType.ULONGLONG IMECur, dxlib_d.DxDataType.ULONGLONG IMELine, dxlib_d.DxDataType.ULONGLONG IMESelectStr, dxlib_d.DxDataType.ULONGLONG IMEModeStr, dxlib_d.DxDataType.ULONGLONG NmlStrE = 0, dxlib_d.DxDataType.ULONGLONG IMESelectStrE = 0, dxlib_d.DxDataType.ULONGLONG IMEModeStrE = 0, dxlib_d.DxDataType.ULONGLONG IMESelectWinE = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMESelectWinF = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrBackColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG SelectStrEdgeColor = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMEStr = 0xFFFFFFFFFFFFFFFFUL, dxlib_d.DxDataType.ULONGLONG IMEStrE = 0xFFFFFFFFFFFFFFFFUL); 8431 8432 /** 8433 * InputString関数使用時の文字の各色を変更する 8434 */ 8435 extern int SetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR等 */, uint Color); 8436 8437 /** 8438 * SetKeyInputStringColor2で設定した色をデフォルトに戻す 8439 */ 8440 extern int ResetKeyInputStringColor2(int TargetColor /* DX_KEYINPSTRCOLOR_NORMAL_STR等 */); 8441 8442 /** 8443 * キー入力文字列描画関連で使用するフォントのハンドルを変更する(-1でデフォルトのフォントハンドル) 8444 */ 8445 extern int SetKeyInputStringFont(int FontHandle); 8446 8447 /** 8448 * キー入力文字列処理の入力文字数が限界に達している状態で、文字列の末端部分で入力が行われた場合の処理モードを変更する 8449 */ 8450 extern int SetKeyInputStringEndCharaMode(int EndCharaMode /* DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE等 */); 8451 8452 /** 8453 * 入力モード文字列を描画する 8454 */ 8455 extern int DrawKeyInputModeString(int x, int y); 8456 8457 /** 8458 * キー入力データ初期化 8459 */ 8460 extern int InitKeyInput(); 8461 8462 /** 8463 * 新しいキー入力ハンドルの作成 8464 */ 8465 extern int MakeKeyInput(size_t MaxStrLength, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = dxlib_d.DxDataType.FALSE, int EnableNewLineFlag = dxlib_d.DxDataType.FALSE); 8466 8467 /** 8468 * キー入力ハンドルの削除 8469 */ 8470 extern int DeleteKeyInput(int InputHandle); 8471 8472 /** 8473 * 指定のキー入力ハンドルをアクティブにする(-1を指定するとアクティブなキー入力ハンドルが無い状態になります) 8474 */ 8475 extern int SetActiveKeyInput(int InputHandle); 8476 8477 /** 8478 * 現在アクティブになっているキー入力ハンドルを取得する 8479 */ 8480 extern int GetActiveKeyInput(); 8481 8482 /** 8483 * キー入力ハンドルの入力が終了しているか取得する 8484 */ 8485 extern int CheckKeyInput(int InputHandle); 8486 8487 /** 8488 * 入力が完了したキー入力ハンドルを再度編集状態に戻す 8489 */ 8490 extern int ReStartKeyInput(int InputHandle); 8491 8492 /** 8493 * キー入力ハンドル処理関数 8494 */ 8495 extern int ProcessActKeyInput(); 8496 8497 /** 8498 * キー入力ハンドルの入力中情報の描画 8499 */ 8500 extern int DrawKeyInputString(int x, int y, int InputHandle, int DrawCandidateList = dxlib_d.DxDataType.TRUE); 8501 8502 /** 8503 * キー入力ハンドルの入力中文字列を描画する際の描画範囲を設定する 8504 */ 8505 extern int SetKeyInputDrawArea(int x1, int y1, int x2, int y2, int InputHandle); 8506 8507 /** 8508 * キー入力ハンドルの指定の領域を選択状態にする(SelectStartとSelectEndに-1を指定すると選択状態が解除されます) 8509 */ 8510 extern int SetKeyInputSelectArea(int SelectStart, int SelectEnd, int InputHandle); 8511 8512 /** 8513 * キー入力ハンドルの選択領域を取得する 8514 */ 8515 extern int GetKeyInputSelectArea(int* SelectStart, int* SelectEnd, int InputHandle); 8516 8517 /** 8518 * キー入力ハンドルの描画開始文字位置を設定する 8519 */ 8520 extern int SetKeyInputDrawStartPos(int DrawStartPos, int InputHandle); 8521 8522 /** 8523 * キー入力ハンドルの描画開始文字位置を取得する 8524 */ 8525 extern int GetKeyInputDrawStartPos(int InputHandle); 8526 8527 /** 8528 * キー入力ハンドルのキー入力時のカーソルの点滅する早さをセットする 8529 */ 8530 extern int SetKeyInputCursorBrinkTime(int Time); 8531 8532 /** 8533 * キー入力ハンドルのキー入力時のカーソルを点滅させるかどうかをセットする 8534 */ 8535 extern int SetKeyInputCursorBrinkFlag(int Flag); 8536 8537 /** 8538 * キー入力ハンドルに指定の文字列をセットする 8539 */ 8540 extern int SetKeyInputString(const (dxlib_d.DxDataType.TCHAR)* String, int InputHandle); 8541 8542 /** 8543 * キー入力ハンドルに指定の文字列をセットする 8544 */ 8545 extern int SetKeyInputStringWithStrLen(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int InputHandle); 8546 8547 /** 8548 * キー入力ハンドルに指定の数値を文字に置き換えてセットする 8549 */ 8550 extern int SetKeyInputNumber(int Number, int InputHandle); 8551 8552 /** 8553 * キー入力ハンドルに指定の浮動小数点値を文字に置き換えてセットする 8554 */ 8555 extern int SetKeyInputNumberToFloat(float Number, int InputHandle); 8556 8557 /** 8558 * キー入力ハンドルの入力中の文字列を取得する 8559 */ 8560 extern int GetKeyInputString(dxlib_d.DxDataType.TCHAR* StrBuffer, int InputHandle); 8561 8562 /** 8563 * キー入力ハンドルの入力中の文字列を整数値として取得する 8564 */ 8565 extern int GetKeyInputNumber(int InputHandle); 8566 8567 /** 8568 * キー入力ハンドルの入力中の文字列を浮動小数点値として取得する 8569 */ 8570 extern float GetKeyInputNumberToFloat(int InputHandle); 8571 8572 /** 8573 * キー入力ハンドルの現在のカーソル位置を設定する 8574 */ 8575 extern int SetKeyInputCursorPosition(int Position, int InputHandle); 8576 8577 /** 8578 * キー入力ハンドルの現在のカーソル位置を取得する 8579 */ 8580 extern int GetKeyInputCursorPosition(int InputHandle); 8581 } 8582 8583 // DxFile.cpp関数プロトタイプ宣言 8584 8585 // ファイルアクセス関数 8586 8587 /** 8588 * ファイルを開く 8589 */ 8590 extern int FileRead_open(const (dxlib_d.DxDataType.TCHAR)* FilePath, int ASync = dxlib_d.DxDataType.FALSE); 8591 8592 /** 8593 * ファイルを開く 8594 */ 8595 extern int FileRead_open_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.DxDataType.FALSE); 8596 8597 /** 8598 * メモリに展開されたファイルを開く 8599 */ 8600 extern int FileRead_open_mem(const (void)* FileImage, size_t FileImageSize); 8601 8602 /** 8603 * ファイルのサイズを取得する 8604 */ 8605 extern dxlib_d.DxDataType.LONGLONG FileRead_size(const (dxlib_d.DxDataType.TCHAR)* FilePath); 8606 8607 /** 8608 * ファイルのサイズを取得する 8609 */ 8610 extern dxlib_d.DxDataType.LONGLONG FileRead_size_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 8611 8612 /** 8613 * ファイルを閉じる 8614 */ 8615 extern int FileRead_close(int FileHandle); 8616 8617 /** 8618 * ファイルポインタの読み込み位置を取得する 8619 */ 8620 extern dxlib_d.DxDataType.LONGLONG FileRead_tell(int FileHandle); 8621 8622 /** 8623 * ファイルポインタの読み込み位置を変更する 8624 */ 8625 extern int FileRead_seek(int FileHandle, dxlib_d.DxDataType.LONGLONG Offset, int Origin); 8626 8627 /** 8628 * ファイルからデータを読み込む 8629 */ 8630 extern int FileRead_read(void* Buffer, int ReadSize, int FileHandle); 8631 8632 /** 8633 * ファイル読み込みが完了しているかどうかを取得する 8634 */ 8635 extern int FileRead_idle_chk(int FileHandle); 8636 8637 /** 8638 * ファイルの読み込み位置が終端に達しているかどうかを取得する 8639 */ 8640 extern int FileRead_eof(int FileHandle); 8641 8642 /** 8643 * ファイルの文字コード形式を設定する(テキストファイル用) 8644 */ 8645 extern int FileRead_set_format(int FileHandle, int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */); 8646 8647 /** 8648 * ファイルから文字列を読み出す 8649 */ 8650 extern int FileRead_gets(dxlib_d.DxDataType.TCHAR* Buffer, int BufferSize, int FileHandle); 8651 8652 /** 8653 * ファイルから1文字読み出す 8654 */ 8655 extern dxlib_d.DxDataType.TCHAR FileRead_getc(int FileHandle); 8656 8657 /** 8658 * ファイルから書式化されたデータを読み出す 8659 */ 8660 extern int FileRead_scanf(int FileHandle, const (dxlib_d.DxDataType.TCHAR)* Format, ...); 8661 8662 /** 8663 * ファイル情報ハンドルを作成する 8664 * 8665 * Returns: -1:エラー -1以外:ファイル情報ハンドル 8666 */ 8667 extern dxlib_d.DxDataType.DWORD_PTR FileRead_createInfo(const (dxlib_d.DxDataType.TCHAR)* ObjectPath); 8668 8669 /** 8670 * ファイル情報ハンドルを作成する 8671 * 8672 * Returns: -1:エラー -1以外:ファイル情報ハンドル 8673 */ 8674 extern dxlib_d.DxDataType.DWORD_PTR FileRead_createInfo_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* ObjectPath, size_t ObjectPathLength); 8675 8676 /** 8677 * ファイル情報ハンドル中のファイルの数を取得する 8678 */ 8679 extern int FileRead_getInfoNum(dxlib_d.DxDataType.DWORD_PTR FileInfoHandle); 8680 8681 /** 8682 * ファイル情報ハンドル中のファイルの情報を取得する 8683 */ 8684 extern int FileRead_getInfo(int Index, .FILEINFO* Buffer, dxlib_d.DxDataType.DWORD_PTR FileInfoHandle); 8685 8686 /** 8687 * ファイル情報ハンドルを削除する 8688 */ 8689 extern int FileRead_deleteInfo(dxlib_d.DxDataType.DWORD_PTR FileInfoHandle); 8690 8691 /** 8692 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する 8693 * 8694 * Returns: -1:エラー -1以外:ファイル検索ハンドル 8695 */ 8696 extern dxlib_d.DxDataType.DWORD_PTR FileRead_findFirst(const (dxlib_d.DxDataType.TCHAR)* FilePath, .FILEINFO* Buffer); 8697 8698 /** 8699 * 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する 8700 * 8701 * Returns: -1:エラー -1以外:ファイル検索ハンドル 8702 */ 8703 extern dxlib_d.DxDataType.DWORD_PTR FileRead_findFirst_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .FILEINFO* Buffer); 8704 8705 /** 8706 * 条件の合致する次のファイルの情報を取得する 8707 * 8708 * Returns: -1:エラー 0:成功 8709 */ 8710 extern int FileRead_findNext(dxlib_d.DxDataType.DWORD_PTR FindHandle, .FILEINFO* Buffer); 8711 8712 /** 8713 * ファイル検索ハンドルを閉じる 8714 * 8715 * Returns: -1:エラー 0:成功 8716 */ 8717 extern int FileRead_findClose(dxlib_d.DxDataType.DWORD_PTR FindHandle); 8718 8719 /** 8720 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルはFileRead_fullyLoad_deleteで削除する必要があります 8721 * 8722 * Returns: -1:エラー -1以外:ハンドル 8723 */ 8724 extern int FileRead_fullyLoad(const (dxlib_d.DxDataType.TCHAR)* FilePath); 8725 8726 /** 8727 * 指定のファイルの内容を全てメモリに読み込み、その情報のアクセスに必要なハンドルを返す、使い終わったらハンドルはFileRead_fullyLoad_deleteで削除する必要があります 8728 * 8729 * Returns: -1:エラー -1以外:ハンドル 8730 */ 8731 extern int FileRead_fullyLoad_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 8732 8733 /** 8734 * FileRead_fullyLoadで読み込んだファイルのハンドルを削除する 8735 */ 8736 extern int FileRead_fullyLoad_delete(int FLoadHandle); 8737 8738 /** 8739 * FileRead_fullyLoadで読み込んだファイルの内容を格納したメモリアドレスを取得する 8740 */ 8741 extern const (void)* FileRead_fullyLoad_getImage(int FLoadHandle); 8742 8743 /** 8744 * FileRead_fullyLoadで読み込んだファイルのサイズを取得する 8745 */ 8746 extern dxlib_d.DxDataType.LONGLONG FileRead_fullyLoad_getSize(int FLoadHandle); 8747 8748 // 設定関係関数 8749 8750 /** 8751 * DXライブラリでストリームデータアクセスに使用する関数がデフォルトのものか調べる 8752 * 8753 * Returns: dxlib_d.DxDataType.TRUE:デフォルトのもの dxlib_d.DxDataType.FALSE:デフォルトではない 8754 */ 8755 extern int GetStreamFunctionDefault(); 8756 8757 /** 8758 * DXライブラリでストリームデータアクセスに使用する関数を変更する 8759 */ 8760 extern int ChangeStreamFunction(const (.STREAMDATASHREDTYPE2)* StreamThread); 8761 8762 /** 8763 * DXライブラリでストリームデータアクセスに使用する関数を変更する(wchar_t使用版) 8764 */ 8765 extern int ChangeStreamFunctionW(const (.STREAMDATASHREDTYPE2W)* StreamThreadW); 8766 8767 // 補助関係関数 8768 8769 /** 8770 * フルパスではないパス文字列をフルパスに変換する(CurrentDirはフルパスである必要がある(語尾に『\』があっても無くても良い))(CurrentDirがnullの場合は現在のカレントディレクトリを使用する) 8771 */ 8772 extern int ConvertFullPath(const (dxlib_d.DxDataType.TCHAR)* Src, dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* CurrentDir = null); 8773 8774 /** 8775 * フルパスではないパス文字列をフルパスに変換する(CurrentDirはフルパスである必要がある(語尾に『\』があっても無くても良い))(CurrentDirがnullの場合は現在のカレントディレクトリを使用する) 8776 */ 8777 extern int ConvertFullPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Src, size_t SrcLength, dxlib_d.DxDataType.TCHAR* Dest, const (dxlib_d.DxDataType.TCHAR)* CurrentDir = null, size_t CurrentDirLength = 0); 8778 8779 // DxInput.cpp関数プロトタイプ宣言 8780 8781 version (DX_NON_INPUT) { 8782 } else { 8783 // 入力状態取得関数 8784 8785 /** 8786 * キーボードの押下状態を取得する 8787 */ 8788 extern int CheckHitKey(int KeyCode); 8789 8790 /** 8791 * どれか1つでもキーが押されているかどうかを取得 8792 * 8793 * Returns: 押されていたら0以外 8794 */ 8795 extern int CheckHitKeyAll(int CheckType = DX_CHECKINPUT_ALL); 8796 8797 /** 8798 * すべてのキーの押下状態を取得する 8799 * 8800 * Params: 8801 * KeyStateBuf = char型256個分の配列の先頭アドレス 8802 */ 8803 extern int GetHitKeyStateAll(DX_CHAR* KeyStateArray); 8804 8805 /** 8806 * ジョイパッドが接続されている数を取得する 8807 */ 8808 extern int GetJoypadNum(); 8809 8810 /** 8811 * ジョイパッドのボタンの数を取得する 8812 */ 8813 extern int GetJoypadButtonNum(int InputType); 8814 8815 /** 8816 * ジョイパッドの入力状態を取得する 8817 */ 8818 extern int GetJoypadInputState(int InputType); 8819 8820 /** 8821 * ジョイパッドのアナログ的なスティック入力情報を得る 8822 */ 8823 extern int GetJoypadAnalogInput(int* XBuf, int* YBuf, int InputType); 8824 8825 /** 8826 * (使用非推奨)ジョイパッドのアナログ的なスティック入力情報を得る(右スティック用) 8827 */ 8828 extern int GetJoypadAnalogInputRight(int* XBuf, int* YBuf, int InputType); 8829 8830 /** 8831 * DirectInput から得られるジョイパッドの生のデータを取得する(DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す) 8832 */ 8833 extern int GetJoypadDirectInputState(int InputType, .DINPUT_JOYSTATE* DInputState); 8834 8835 /** 8836 * 指定の入力デバイスがXInputに対応しているかどうかを取得する(DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す) 8837 * 8838 * Returns: dxlib_d.DxDataType.TRUE:XInput対応の入力デバイス dxlib_d.DxDataType.FALSE:XInput非対応の入力デバイス -1:エラー 8839 */ 8840 extern int CheckJoypadXInput(int InputType); 8841 8842 /** 8843 * XInput から得られる入力デバイス(Xbox360コントローラ等)の生のデータを取得する(XInput非対応のパッドの場合はエラーとなり -1を返す、DX_INPUT_KEYやDX_INPUT_KEY_PAD1など、キーボードが絡むタイプをInputTypeに渡すとエラーとなり -1を返す) 8844 */ 8845 extern int GetJoypadXInputState(int InputType, .XINPUT_STATE* XInputState); 8846 8847 /** 8848 * ジョイパッドの入力に対応したキーボードの入力を設定する 8849 * 8850 * Params: 8851 * InputType = 設定を変更するパッドの識別子(DX_INPUT_PAD1等) 8852 * PadInput = 設定を変更するパッドボタンの識別子(PAD_INPUT_1等) 8853 * KeyInput1 = PadInputを押下したことにするキーコード(KEY_INPUT_Aなど)その1 8854 * KeyInput2 = その2、-1で設定なし 8855 * KeyInput3 = その3、-1で設定なし 8856 * KeyInput4 = その4、-1で設定なし 8857 */ 8858 extern int SetJoypadInputToKeyInput(int InputType, int PadInput, int KeyInput1, int KeyInput2 = -1, int KeyInput3 = -1, int KeyInput4 = -1); 8859 8860 /** 8861 * ジョイパッドの無効ゾーンの設定を行う(InputType:設定を変更するパッドの識別子(DX_INPUT_PAD1等) Zone:新しい無効ゾーン(0.0~1.0)、デフォルト値は0.35) 8862 * 8863 * Params: 8864 * InputType = ? 8865 * Zone = ? 8866 */ 8867 extern int SetJoypadDeadZone(int InputType, double Zone); 8868 8869 /** 8870 * ジョイパッドの無効ゾーンの設定を取得する 8871 * 8872 * Params: 8873 * InputType = 設定を変更するパッドの識別子(DX_INPUT_PAD1等) 8874 * 8875 * Returns: 無効ゾーン(0.0~1.0) 8876 */ 8877 extern double GetJoypadDeadZone(int InputType); 8878 8879 /** 8880 * ジョイパッドの振動を開始する 8881 */ 8882 extern int StartJoypadVibration(int InputType, int Power, int Time, int EffectIndex = -1); 8883 8884 /** 8885 * ジョイパッドの振動を停止する 8886 */ 8887 extern int StopJoypadVibration(int InputType, int EffectIndex = -1); 8888 8889 /** 8890 * ジョイパッドのPOV入力の状態を得る 8891 * 8892 * Returns: 指定のPOVデータの角度、単位は角度の100倍(90度なら9000) 中心位置にある場合は-1が返る 8893 */ 8894 extern int GetJoypadPOVState(int InputType, int POVNumber); 8895 8896 /** 8897 * ジョイパッドの再セットアップを行う(新たに接続されたジョイパッドがあったら検出される) 8898 */ 8899 extern int ReSetupJoypad(); 8900 8901 /** 8902 * ジョイパッドの振動機能を使用するかどうかを設定する 8903 * 8904 * Params: 8905 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない 8906 */ 8907 extern int SetUseJoypadVibrationFlag(int Flag); 8908 } 8909 8910 version (DX_NOTUSE_DRAWFUNCTION) { 8911 } else { 8912 // 画像処理系関数プロトタイプ宣言 8913 8914 // グラフィックハンドル作成関係関数 8915 8916 /** 8917 * 指定サイズのグラフィックハンドルを作成する 8918 */ 8919 extern int MakeGraph(int SizeX, int SizeY, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 8920 8921 /** 8922 * SetDrawScreenで描画対象にできるグラフィックハンドルを作成する 8923 */ 8924 extern int MakeScreen(int SizeX, int SizeY, int UseAlphaChannel = dxlib_d.DxDataType.FALSE); 8925 8926 /** 8927 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する 8928 */ 8929 extern int DerivationGraph(int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle); 8930 8931 /** 8932 * 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する(float版) 8933 */ 8934 extern int DerivationGraphF(float SrcX, float SrcY, float Width, float Height, int SrcGraphHandle); 8935 8936 /** 8937 * グラフィックハンドルを削除する 8938 */ 8939 extern int DeleteGraph(int GrHandle, int LogOutFlag = dxlib_d.DxDataType.FALSE); 8940 8941 /** 8942 * 指定のグラフィックハンドルと、同じグラフィックハンドルから派生しているグラフィックハンドル(DerivationGraphで派生したハンドル、LoadDivGraph 読み込んで作成された複数のハンドル)を一度に削除する 8943 */ 8944 extern int DeleteSharingGraph(int GrHandle); 8945 8946 /** 8947 * 有効なグラフィックハンドルの数を取得する 8948 */ 8949 extern int GetGraphNum(); 8950 8951 /** 8952 * グラフィックハンドルを指定の色で塗りつぶす 8953 */ 8954 extern int FillGraph(int GrHandle, int Red, int Green, int Blue, int Alpha = 255); 8955 8956 /** 8957 * グラフィックハンドルの指定の範囲を指定の色で塗りつぶす 8958 */ 8959 extern int FillRectGraph(int GrHandle, int x, int y, int Width, int Height, int Red, int Green, int Blue, int Alpha = 255); 8960 8961 /** 8962 * 指定のグラフィックハンドルが削除された際に1にする変数のアドレスを設定する 8963 */ 8964 extern int SetGraphLostFlag(int GrHandle, int* LostFlag); 8965 8966 /** 8967 * すべてのグラフィックハンドルを削除する 8968 */ 8969 extern int InitGraph(int LogOutFlag = dxlib_d.DxDataType.FALSE); 8970 8971 /** 8972 * ファイルから画像を読み込んだ全てのグラフィックハンドルについて、再度ファイルから画像を読み込む 8973 */ 8974 extern int ReloadFileGraphAll(); 8975 8976 // シャドウマップハンドル関係関数 8977 8978 /** 8979 * シャドウマップハンドルを作成する 8980 */ 8981 extern int MakeShadowMap(int SizeX, int SizeY); 8982 8983 /** 8984 * シャドウマップハンドルを削除する 8985 */ 8986 extern int DeleteShadowMap(int SmHandle); 8987 8988 /** 8989 * シャドウマップが想定するライトの方向を設定する 8990 */ 8991 extern int SetShadowMapLightDirection(int SmHandle, .VECTOR Direction); 8992 8993 /** 8994 * シャドウマップへの描画の準備を行う 8995 */ 8996 extern int ShadowMap_DrawSetup(int SmHandle); 8997 8998 /** 8999 * シャドウマップへの描画を終了する 9000 */ 9001 extern int ShadowMap_DrawEnd(); 9002 9003 /** 9004 * 描画で使用するシャドウマップを指定する、有効なスロットは0~2、SmHandleに-1を渡すと指定のスロットのシャドウマップを解除 9005 */ 9006 extern int SetUseShadowMap(int SmSlotIndex, int SmHandle); 9007 9008 /** 9009 * シャドウマップに描画する際の範囲を設定する(この関数で描画範囲を設定しない場合は視錐台を拡大した範囲が描画範囲となる) 9010 */ 9011 extern int SetShadowMapDrawArea(int SmHandle, .VECTOR MinPosition, .VECTOR MaxPosition); 9012 9013 /** 9014 * SetShadowMapDrawAreaの設定を解除する 9015 */ 9016 extern int ResetShadowMapDrawArea(int SmHandle); 9017 9018 /** 9019 * シャドウマップを使用した描画時の補正深度を設定する 9020 */ 9021 extern int SetShadowMapAdjustDepth(int SmHandle, float Depth); 9022 9023 /** 9024 * シャドウマップ作成時や適用時に使用するビュー行列と射影行列を乗算した行列を取得する 9025 */ 9026 extern int GetShadowMapViewProjectionMatrix(int SmHandle, .MATRIX* MatrixBuffer); 9027 9028 /** 9029 * シャドウマップを画面にテスト描画する 9030 */ 9031 extern int TestDrawShadowMap(int SmHandle, int x1, int y1, int x2, int y2); 9032 9033 // グラフィックハンドルへの画像転送関数 9034 9035 /** 9036 * BMPの内容をグラフィックハンドルに転送 9037 */ 9038 extern int BltBmpToGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int CopyPointX, int CopyPointY, int GrHandle); 9039 9040 /** 9041 * BMPの内容を分割作成したグラフィックハンドルたちに転送 9042 */ 9043 extern int BltBmpToDivGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int AllNum, int XNum, int YNum, int Width, int Height, const (int)* GrHandle, int ReverseFlag); 9044 9045 /** 9046 * BMP か BASEIMAGEをグラフィックハンドルに転送 9047 */ 9048 extern int BltBmpOrGraphImageToGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int CopyPointX, int CopyPointY, int GrHandle); 9049 9050 /** 9051 * BMP か BASEIMAGEの指定の領域をグラフィックハンドルに転送 9052 */ 9053 extern int BltBmpOrGraphImageToGraph2(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, const (dxlib_d.DxDataType.RECT)* SrcRect, int DestX, int DestY, int GrHandle); 9054 9055 /** 9056 * BMP か BASEIMAGEを分割作成したグラフィックハンドルたちに転送 9057 */ 9058 extern int BltBmpOrGraphImageToDivGraph(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int Width, int Height, const (int)* GrHandle, int ReverseFlag); 9059 9060 /** 9061 * BMP か BASEIMAGEを分割作成したグラフィックハンドルたちに転送(float型) 9062 */ 9063 extern int BltBmpOrGraphImageToDivGraphF(const (.COLORDATA)* BmpColorData, dxlib_d.DxDataType.HBITMAP RgbBmp, dxlib_d.DxDataType.HBITMAP AlphaBmp, int BmpFlag, const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float Width, float Height, const (int)* GrHandle, int ReverseFlag); 9064 9065 // 画像からグラフィックハンドルを作成する関数 9066 9067 /** 9068 * 画像ファイルからグラフィックハンドルを作成する 9069 */ 9070 extern int LoadBmpToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL); 9071 9072 /** 9073 * 画像ファイルからグラフィックハンドルを作成する 9074 */ 9075 extern int LoadBmpToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL); 9076 9077 /** 9078 * 画像ファイルからグラフィックハンドルを作成する 9079 */ 9080 extern int LoadGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9081 9082 /** 9083 * 画像ファイルからグラフィックハンドルを作成する 9084 */ 9085 extern int LoadGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9086 9087 /** 9088 * 画像ファイルを反転したものでグラフィックハンドルを作成する 9089 */ 9090 extern int LoadReverseGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9091 9092 /** 9093 * 画像ファイルを反転したものでグラフィックハンドルを作成する 9094 */ 9095 extern int LoadReverseGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9096 9097 /** 9098 * 画像ファイルを分割してグラフィックハンドルを作成する 9099 */ 9100 extern int LoadDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9101 9102 /** 9103 * 画像ファイルを分割してグラフィックハンドルを作成する 9104 */ 9105 extern int LoadDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9106 9107 /** 9108 * 画像ファイルを分割してグラフィックハンドルを作成する 9109 */ 9110 extern int LoadDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9111 9112 /** 9113 * 画像ファイルを分割してグラフィックハンドルを作成する 9114 */ 9115 extern int LoadDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9116 9117 /** 9118 * 画像ファイルを分割してグラフィックハンドルを作成する 9119 */ 9120 extern int LoadDivBmpToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag, int ReverseFlag); 9121 9122 /** 9123 * 画像ファイルを分割してグラフィックハンドルを作成する 9124 */ 9125 extern int LoadDivBmpToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag, int ReverseFlag); 9126 9127 /** 9128 * 画像ファイルを分割してグラフィックハンドルを作成する 9129 */ 9130 extern int LoadDivBmpToGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag, int ReverseFlag); 9131 9132 /** 9133 * 画像ファイルを分割してグラフィックハンドルを作成する 9134 */ 9135 extern int LoadDivBmpToGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag, int ReverseFlag); 9136 9137 /** 9138 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9139 */ 9140 extern int LoadReverseDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9141 9142 /** 9143 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9144 */ 9145 extern int LoadReverseDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9146 9147 /** 9148 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9149 */ 9150 extern int LoadReverseDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9151 9152 /** 9153 * 画像ファイルを反転したものを分割してグラフィックハンドルを作成する 9154 */ 9155 extern int LoadReverseDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray, int NotUse3DFlag = dxlib_d.DxDataType.FALSE); 9156 9157 /** 9158 * 画像ファイルからブレンド用グラフィックハンドルを作成する 9159 */ 9160 extern int LoadBlendGraph(const (dxlib_d.DxDataType.TCHAR)* FileName); 9161 9162 /** 9163 * 画像ファイルからブレンド用グラフィックハンドルを作成する 9164 */ 9165 extern int LoadBlendGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 9166 9167 /** 9168 * メモリ上の画像イメージからグラフィックハンドルを作成する 9169 */ 9170 extern int CreateGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9171 9172 /** 9173 * メモリ上の画像イメージから既存のグラフィックハンドルにデータを転送する 9174 */ 9175 extern int ReCreateGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int GrHandle, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9176 9177 /** 9178 * メモリ上の画像イメージから分割グラフィックハンドルを作成する 9179 */ 9180 extern int CreateDivGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0); 9181 9182 /** 9183 * メモリ上の画像イメージから分割グラフィックハンドルを作成する(float版) 9184 */ 9185 extern int CreateDivGraphFFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0); 9186 9187 /** 9188 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する 9189 */ 9190 extern int ReCreateDivGraphFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0); 9191 9192 /** 9193 * メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する(float版) 9194 */ 9195 extern int ReCreateDivGraphFFromMem(const (void)* RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (void)* AlphaFileImage = null, int AlphaFileImageSize = 0); 9196 9197 /** 9198 * ビットマップデータからグラフィックハンドルを作成する 9199 */ 9200 extern int CreateGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9201 9202 /** 9203 * ビットマップデータから既存のグラフィックハンドルにデータを転送する 9204 */ 9205 extern int ReCreateGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int GrHandle, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9206 9207 /** 9208 * ビットマップデータから分割グラフィックハンドルを作成する 9209 */ 9210 extern int CreateDivGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null); 9211 9212 /** 9213 * ビットマップデータから分割グラフィックハンドルを作成する(float版) 9214 */ 9215 extern int CreateDivGraphFFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null); 9216 9217 /** 9218 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する 9219 */ 9220 extern int ReCreateDivGraphFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null); 9221 9222 /** 9223 * ビットマップデータから既存の分割グラフィックハンドルにデータを転送する(float版) 9224 */ 9225 extern int ReCreateDivGraphFFromBmp(const (dxlib_d.DxDataType.BITMAPINFO)* RGBBmpInfo, const (void)* RGBBmpImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.BITMAPINFO)* AlphaBmpInfo = null, const (void)* AlphaBmpImage = null); 9226 9227 /** 9228 * 基本イメージデータからサイズを割り出し、それに合ったグラフィックハンドルを作成する 9229 */ 9230 extern int CreateDXGraph(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag); 9231 9232 /** 9233 * 基本イメージデータからグラフィックハンドルを作成する 9234 */ 9235 extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9236 9237 /** 9238 * 基本イメージデータからグラフィックハンドルを作成する 9239 */ 9240 extern int CreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9241 9242 /** 9243 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する 9244 */ 9245 extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, int GrHandle, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9246 9247 /** 9248 * 基本イメージデータから既存のグラフィックハンドルにデータを転送する 9249 */ 9250 extern int ReCreateGraphFromGraphImage(const (.BASEIMAGE)* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int GrHandle, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9251 9252 /** 9253 * 基本イメージデータから分割グラフィックハンドルを作成する 9254 */ 9255 extern int CreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9256 9257 /** 9258 * 基本イメージデータから分割グラフィックハンドルを作成する(float版) 9259 */ 9260 extern int CreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9261 9262 /** 9263 * 基本イメージデータから分割グラフィックハンドルを作成する 9264 */ 9265 extern int CreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9266 9267 /** 9268 * 基本イメージデータから分割グラフィックハンドルを作成する(float版) 9269 */ 9270 extern int CreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9271 9272 /** 9273 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9274 */ 9275 extern int ReCreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9276 9277 /** 9278 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版) 9279 */ 9280 extern int ReCreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9281 9282 /** 9283 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9284 */ 9285 extern int ReCreateDivGraphFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9286 9287 /** 9288 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版) 9289 */ 9290 extern int ReCreateDivGraphFFromGraphImage(.BASEIMAGE* RgbBaseImage, const (.BASEIMAGE)* AlphaBaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray, int TextureFlag = dxlib_d.DxDataType.TRUE, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9291 9292 /** 9293 * メモリ上のビットマップイメージからグラフィックハンドルを作成する 9294 */ 9295 extern int CreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, const (void)* AlphaImage = null, int GrHandle = -1); 9296 9297 /** 9298 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する 9299 */ 9300 extern int CreateDivGraph(int Width, int Height, int Pitch, const (void)* RGBImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray, const (void)* AlphaImage = null); 9301 9302 /** 9303 * メモリ上のビットマップイメージから分割グラフィックハンドルを作成する(float版) 9304 */ 9305 extern int CreateDivGraphF(int Width, int Height, int Pitch, const (void)* RGBImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray, const (void)* AlphaImage = null); 9306 9307 /** 9308 * メモリ上のビットマップイメージからグラフィックハンドルを再作成する 9309 */ 9310 extern int ReCreateGraph(int Width, int Height, int Pitch, const (void)* RGBImage, int GrHandle, const (void)* AlphaImage = null); 9311 9312 version (DX_NON_SOFTIMAGE) { 9313 } else { 9314 /** 9315 * ソフトウエアで扱うイメージからブレンド用画像グラフィックハンドルを作成する 9316 * 9317 * Returns: -1:エラー -1以外:ブレンド用グラフィックハンドル 9318 */ 9319 extern int CreateBlendGraphFromSoftImage(int SIHandle); 9320 9321 /** 9322 * ソフトウエアで扱うイメージからグラフィックハンドルを作成する 9323 * 9324 * Returns: -1:エラー -1以外:グラフィックハンドル 9325 */ 9326 extern int CreateGraphFromSoftImage(int SIHandle); 9327 9328 /** 9329 * ソフトウエアで扱うイメージの指定の領域を使ってグラフィックハンドルを作成する 9330 * 9331 * Returns: -1:エラー -1以外:グラフィックハンドル 9332 */ 9333 extern int CreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY); 9334 9335 /** 9336 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する 9337 */ 9338 extern int ReCreateGraphFromSoftImage(int SIHandle, int GrHandle); 9339 9340 /** 9341 * ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する 9342 */ 9343 extern int ReCreateGraphFromRectSoftImage(int SIHandle, int x, int y, int SizeX, int SizeY, int GrHandle); 9344 9345 /** 9346 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する 9347 */ 9348 extern int CreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray); 9349 9350 /** 9351 * ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する(float版) 9352 */ 9353 extern int CreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray); 9354 9355 /** 9356 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する 9357 */ 9358 extern int ReCreateDivGraphFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray); 9359 9360 /** 9361 * ソフトウエアで扱うイメージから既存の分割グラフィックハンドルにデータを転送する(float版) 9362 */ 9363 extern int ReCreateDivGraphFFromSoftImage(int SIHandle, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray); 9364 } 9365 9366 /** 9367 * 基本イメージデータからグラフィックハンドルを作成する 9368 */ 9369 extern int CreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage); 9370 9371 /** 9372 * 基本イメージデータの指定の領域を使ってグラフィックハンドルを作成する 9373 */ 9374 extern int CreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY); 9375 9376 /** 9377 * 基本イメージデータから既存のグラフィックハンドルに画像データを転送する 9378 */ 9379 extern int ReCreateGraphFromBaseImage(const (.BASEIMAGE)* BaseImage, int GrHandle); 9380 9381 /** 9382 * 基本イメージデータの指定の領域を使って既存のグラフィックハンドルに画像データを転送する 9383 */ 9384 extern int ReCreateGraphFromRectBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int SizeX, int SizeY, int GrHandle); 9385 9386 /** 9387 * 基本イメージデータから分割グラフィックハンドルを作成する 9388 */ 9389 extern int CreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int* HandleArray); 9390 9391 /** 9392 * 基本イメージデータから分割グラフィックハンドルを作成する(float版) 9393 */ 9394 extern int CreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, int* HandleArray); 9395 9396 /** 9397 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する 9398 */ 9399 extern int ReCreateDivGraphFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, const (int)* HandleArray); 9400 9401 /** 9402 * 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する(float版) 9403 */ 9404 extern int ReCreateDivGraphFFromBaseImage(.BASEIMAGE* BaseImage, int AllNum, int XNum, int YNum, float SizeX, float SizeY, const (int)* HandleArray); 9405 9406 /** 9407 * 画像ファイルからグラフィックハンドルへ画像データを転送する 9408 */ 9409 extern int ReloadGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int GrHandle, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9410 9411 /** 9412 * 画像ファイルからグラフィックハンドルへ画像データを転送する 9413 */ 9414 extern int ReloadGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int GrHandle, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9415 9416 /** 9417 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する 9418 */ 9419 extern int ReloadDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9420 9421 /** 9422 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する 9423 */ 9424 extern int ReloadDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9425 9426 /** 9427 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する(float版) 9428 */ 9429 extern int ReloadDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9430 9431 /** 9432 * 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する(float版) 9433 */ 9434 extern int ReloadDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray, int ReverseFlag = dxlib_d.DxDataType.FALSE); 9435 9436 /** 9437 * ReloadGraphの画像反転処理追加版 9438 */ 9439 extern int ReloadReverseGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int GrHandle); 9440 9441 /** 9442 * ReloadGraphの画像反転処理追加版 9443 */ 9444 extern int ReloadReverseGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int GrHandle); 9445 9446 /** 9447 * ReloadDivGraphの画像反転処理追加版 9448 */ 9449 extern int ReloadReverseDivGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray); 9450 9451 /** 9452 * ReloadDivGraphの画像反転処理追加版 9453 */ 9454 extern int ReloadReverseDivGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, const (int)* HandleArray); 9455 9456 /** 9457 * ReloadDivGraphの画像反転処理追加版(float版) 9458 */ 9459 extern int ReloadReverseDivGraphF(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray); 9460 9461 /** 9462 * ReloadDivGraphの画像反転処理追加版(float版) 9463 */ 9464 extern int ReloadReverseDivGraphFWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, float XSize, float YSize, const (int)* HandleArray); 9465 9466 // グラフィックハンドル作成時設定係関数 9467 9468 /** 9469 * SetCreateGraphColorBitDepthの旧名称 9470 */ 9471 extern int SetGraphColorBitDepth(int ColorBitDepth); 9472 9473 /** 9474 * GetCreateGraphColorBitDepthの旧名称 9475 */ 9476 extern int GetGraphColorBitDepth(); 9477 9478 /** 9479 * 作成するグラフィックハンドルの色深度を設定する 9480 */ 9481 extern int SetCreateGraphColorBitDepth(int BitDepth); 9482 9483 /** 9484 * 作成するグラフィックハンドルの色深度を取得する 9485 */ 9486 extern int GetCreateGraphColorBitDepth(); 9487 9488 /** 9489 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を設定する 9490 */ 9491 extern int SetCreateGraphChannelBitDepth(int BitDepth); 9492 9493 /** 9494 * 作成するグラフィックハンドルの1チャンネル辺りのビット深度を取得する 9495 */ 9496 extern int GetCreateGraphChannelBitDepth(); 9497 9498 /** 9499 * SetDrawScreenに引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成するかどうかを設定する 9500 * 9501 * Params: 9502 * Flag = dxlib_d.DxDataType.TRUE:描画可能グラフィックハンドルを作成する FLASE:通常のグラフィックハンドルを作成する(デフォルト) 9503 */ 9504 extern int SetDrawValidGraphCreateFlag(int Flag); 9505 9506 /** 9507 * SetDrawScreenに引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成するかどうかを設定を取得する 9508 */ 9509 extern int GetDrawValidGraphCreateFlag(); 9510 9511 /** 9512 * SetDrawValidGraphCreateFlagの旧名称 9513 */ 9514 extern int SetDrawValidFlagOf3DGraph(int Flag); 9515 9516 /** 9517 * 画像ファイルからグラフィックハンドルを作成する際に画像左上の色を透過色として扱うかどうかを設定する 9518 * 9519 * Params: 9520 * Flag = dxlib_d.DxDataType.TRUE:透過色として扱う dxlib_d.DxDataType.FALSE:透過色として扱わない(デフォルト) 9521 */ 9522 extern int SetLeftUpColorIsTransColorFlag(int Flag); 9523 9524 /** 9525 * 読み込む画像がパレット画像の場合、パレット画像として使用できる場合はパレット画像として使用するかどうかを設定する 9526 * 9527 * Params: 9528 * Flag = dxlib_d.DxDataType.TRUE:パレット画像として使用できる場合はパレット画像として使用する(デフォルト) dxlib_d.DxDataType.FALSE:パレット画像として使用できる場合もパレット画像としては使用しない(通常タイプの画像に変換して使用する) 9529 */ 9530 extern int SetUsePaletteGraphFlag(int Flag); 9531 9532 /** 9533 * ブレンド処理用画像を作成するかどうか(要は画像の赤成分をα成分として扱うかどうか)の設定を行う 9534 * 9535 * Params: 9536 * Flag = dxlib_d.DxDataType.TRUE:ブレンド画像として読み込む dxlib_d.DxDataType.FALSE:通常画像として読み込む(デフォルト) 9537 */ 9538 extern int SetUseBlendGraphCreateFlag(int Flag); 9539 9540 /** 9541 * ブレンド処理用画像を作成するかどうか(要は画像の赤成分をα成分として扱うかどうか)の設定を取得する 9542 */ 9543 extern int GetUseBlendGraphCreateFlag(); 9544 9545 /** 9546 * アルファテストを使用するグラフィックハンドルを作成するかどうかを設定する 9547 * 9548 * Params: 9549 * Flag = dxlib_d.DxDataType.TRUE:アルファテストを使用する(デフォルト) dxlib_d.DxDataType.FALSE:アルファテストを使用しない 9550 */ 9551 extern int SetUseAlphaTestGraphCreateFlag(int Flag); 9552 9553 /** 9554 * アルファテストを使用するグラフィックハンドルを作成するかどうかを取得する 9555 */ 9556 extern int GetUseAlphaTestGraphCreateFlag(); 9557 9558 /** 9559 * SetUseAlphaTestGraphCreateFlagの旧名称 9560 */ 9561 extern int SetUseAlphaTestFlag(int Flag); 9562 9563 /** 9564 * GetUseAlphaTestGraphCreateFlagの旧名称 9565 */ 9566 extern int GetUseAlphaTestFlag(); 9567 9568 /** 9569 * キューブマップテクスチャを作成するかどうかのフラグを設定する 9570 */ 9571 extern int SetCubeMapTextureCreateFlag(int Flag); 9572 9573 /** 9574 * キューブマップテクスチャを作成するかどうかのフラグを取得する 9575 */ 9576 extern int GetCubeMapTextureCreateFlag(); 9577 9578 /** 9579 * SetDrawBlendMode関数の第1引数にDX_BLENDMODE_NOBLENDを代入した際に、デフォルトでは第二引数は内部で255を指定したことになるが、その自動255化をしないかどうかを設定する。αチャンネル付き画像に対して描画を行う場合のみ意味がある関数 9580 * 9581 * Params: 9582 * Flag = dxlib_d.DxDataType.TRUE:しない(第二引数の値が使用される) dxlib_d.DxDataType.FALSE:する(第二引数の値は無視されて 255が常に使用される)(デフォルト) 9583 */ 9584 extern int SetUseNoBlendModeParam(int Flag); 9585 9586 /** 9587 * SetDrawScreenの引数として渡せる(描画対象として使用できる)αチャンネル付きグラフィックハンドルを作成するかどうかを設定する(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません) 9588 * 9589 * Params: 9590 * Flag = dxlib_d.DxDataType.TRUE:αチャンネル付き dxlib_d.DxDataType.FALSE:αチャンネルなし(デフォルト) 9591 */ 9592 extern int SetDrawValidAlphaChannelGraphCreateFlag(int Flag); 9593 9594 /** 9595 * SetDrawScreenの引数として渡せる(描画対象として使用できる)αチャンネル付きグラフィックハンドルを作成するかどうかを取得する 9596 */ 9597 extern int GetDrawValidAlphaChannelGraphCreateFlag(); 9598 9599 /** 9600 * SetDrawScreenの引数として渡せる(描画対象として使用できる)ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを設定する(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません)、グラフィックスデバイスが浮動小数点型のピクセルフォーマットに対応していない場合はグラフィックハンドルの作成に失敗する 9601 * 9602 * Params: 9603 * Flag = dxlib_d.DxDataType.TRUE:浮動小数点型 dxlib_d.DxDataType.FALSE:整数型(デフォルト) 9604 */ 9605 extern int SetDrawValidFloatTypeGraphCreateFlag(int Flag); 9606 9607 /** 9608 * SetDrawScreenの引数として渡せる(描画対象として使用できる)ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを取得する 9609 */ 9610 extern int GetDrawValidFloatTypeGraphCreateFlag(); 9611 9612 /** 9613 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを設定する 9614 * 9615 * Params: 9616 * Flag = dxlib_d.DxDataType.TRUE:専用のZバッファを作成する(デフォルト) dxlib_d.DxDataType.FALSE:専用のZバッファは作成しない 9617 */ 9618 extern int SetDrawValidGraphCreateZBufferFlag(int Flag); 9619 9620 /** 9621 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを取得する 9622 */ 9623 extern int GetDrawValidGraphCreateZBufferFlag(); 9624 9625 /** 9626 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するZバッファのビット深度を設定する(BitDepth:ビット深度(指定可能な値は16, 24, 32の何れか(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません) 9627 * 9628 * Params: 9629 * BitDepth = ? 9630 */ 9631 extern int SetCreateDrawValidGraphZBufferBitDepth(int BitDepth); 9632 9633 /** 9634 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するZバッファのビット深度を取得する 9635 */ 9636 extern int GetCreateDrawValidGraphZBufferBitDepth(); 9637 9638 /** 9639 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するMipMapのレベルを設定する 9640 */ 9641 extern int SetCreateDrawValidGraphMipLevels(int MipLevels); 9642 9643 /** 9644 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するMipMapのレベルを取得する 9645 */ 9646 extern int GetCreateDrawValidGraphMipLevels(); 9647 9648 /** 9649 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用する色のチャンネル数を設定する(ChannelNum:チャンネル数(指定可能な値は1, 2, 4の何れか(SetDrawValidGraphCreateFlag関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません) 9650 * 9651 * Params: 9652 * ChannelNum = ? 9653 */ 9654 extern int SetCreateDrawValidGraphChannelNum(int ChannelNum); 9655 9656 /** 9657 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用する色のチャンネル数を取得する 9658 */ 9659 extern int GetCreateDrawValidGraphChannelNum(); 9660 9661 /** 9662 * SetDrawScreenの引数として渡せる(描画対象として使用できる)グラフィックハンドルに適用するマルチサンプリング(アンチエイリアシング)設定を行う(Samples:マルチサンプル処理に使用するドット数(多いほど重くなります) Quality:マルチサンプル処理の品質) 9663 * 9664 * Params: 9665 * Samples = ? 9666 * Quality = ? 9667 */ 9668 extern int SetCreateDrawValidGraphMultiSample(int Samples, int Quality); 9669 9670 /** 9671 * SetCreateDrawValidGraphMultiSampleの旧名称 9672 */ 9673 extern int SetDrawValidMultiSample(int Samples, int Quality); 9674 9675 /** 9676 * 指定のマルチサンプル数で使用できる最大クオリティ値を取得する(戻り値がマイナスの場合は引数のサンプル数が使用できないことを示します) 9677 */ 9678 extern int GetMultiSampleQuality(int Samples); 9679 9680 /** 9681 * 透過色機能を使用するかどうかを設定する 9682 * 9683 * Params: 9684 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 9685 */ 9686 extern int SetUseTransColor(int Flag); 9687 9688 /** 9689 * 透過色機能を使用することを前提とした画像データの読み込み処理を行うかどうかを設定する(dxlib_d.DxDataType.TRUEにするとSetDrawMode(DX_DRAWMODE_BILINEAR);をした状態でDrawGraphF等の浮動小数点型座標を受け取る関数で小数点以下の値を指定した場合に発生する描画結果の不自然を緩和する効果があります (デフォルトはdxlib_d.DxDataType.FALSE)) 9690 */ 9691 extern int SetUseTransColorGraphCreateFlag(int Flag); 9692 9693 /** 9694 * SetUseAlphaChannelGraphCreateFlagの旧名称 9695 */ 9696 extern int SetUseGraphAlphaChannel(int Flag); 9697 9698 /** 9699 * GetUseAlphaChannelGraphCreateFlagの旧名称 9700 */ 9701 extern int GetUseGraphAlphaChannel(); 9702 9703 /** 9704 * αチャンネル付きグラフィックハンドルを作成するかどうかを設定する 9705 * 9706 * Params: 9707 * Flag = dxlib_d.DxDataType.TRUE:αチャンネル付き dxlib_d.DxDataType.FALSE:αチャンネル無し 9708 */ 9709 extern int SetUseAlphaChannelGraphCreateFlag(int Flag); 9710 9711 /** 9712 * αチャンネル付きグラフィックハンドルを作成するかどうかを取得する 9713 * 9714 * Returns: dxlib_d.DxDataType.TRUE:αチャンネル付き dxlib_d.DxDataType.FALSE:αチャンネル無し 9715 */ 9716 extern int GetUseAlphaChannelGraphCreateFlag(); 9717 9718 /** 9719 * Direct3Dの管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを設定する、管理機能を使用するとグラフィックスデバイスのVRAM容量以上の画像を扱うことができる代わりにシステムメモリの使用量が増えます 9720 * 9721 * Params: 9722 * Flag = dxlib_d.DxDataType.TRUE:管理機能を使用する(デフォルト) dxlib_d.DxDataType.FALSE:管理機能を使用しない 9723 */ 9724 extern int SetUseNotManageTextureFlag(int Flag); 9725 9726 /** 9727 * Direct3Dの管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを取得する 9728 */ 9729 extern int GetUseNotManageTextureFlag(); 9730 9731 /** 9732 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを指定する(Direct3D9環境ならDX_TEXTUREFORMAT_DIRECT3D9_R8G8B8など、0を渡すと解除) 9733 */ 9734 extern int SetUsePlatformTextureFormat(int PlatformTextureFormat); 9735 9736 /** 9737 * 作成するグラフィックハンドルで使用する環境依存のテクスチャフォーマットを取得する 9738 */ 9739 extern int GetUsePlatformTextureFormat(); 9740 9741 /** 9742 * 作成するグラフィックハンドルに適用する透過色を設定する 9743 * 9744 * Params: 9745 * Red = 透過色を光の3原色で表したもの(0~255) 9746 * Green = 透過色を光の3原色で表したもの(0~255) 9747 * Blue = 透過色を光の3原色で表したもの(0~255) 9748 */ 9749 extern int SetTransColor(int Red, int Green, int Blue); 9750 9751 /** 9752 * 作成するグラフィックハンドルに適用する透過色を取得する 9753 */ 9754 extern int GetTransColor(int* Red, int* Green, int* Blue); 9755 9756 /** 9757 * 2のn乗ではないサイズの画像を複数のテクスチャを使用してVRAMの無駄を省くかどうかを設定する、複数のテクスチャを使用する場合はVRAM容量の節約ができる代わりに速度の低下やバイリニアフィルタリング描画時にテクスチャとテクスチャの境目が良く見るとわかる等の弊害があります 9758 * 9759 * Params: 9760 * Flag = dxlib_d.DxDataType.TRUE:複数のテクスチャを使用する dxlib_d.DxDataType.FALSE:なるべく1枚のテクスチャで済ます(デフォルト) 9761 */ 9762 extern int SetUseDivGraphFlag(int Flag); 9763 9764 /** 9765 * LoadGraphなどの際にファイル名の末尾に_aが付いたアルファチャンネル用の画像ファイルを追加で読み込む処理を行うかどうかを設定する 9766 * 9767 * Params: 9768 * Flag = dxlib_d.DxDataType.TRUE:行う(デフォルト) dxlib_d.DxDataType.FALSE:行わない 9769 */ 9770 extern int SetUseAlphaImageLoadFlag(int Flag); 9771 9772 /** 9773 * 使用するテクスチャーの最大サイズを設定する(デフォルトではグラフィックスデバイスが対応している最大テクスチャーサイズ、引数に0を渡すとデフォルト設定になります) 9774 */ 9775 extern int SetUseMaxTextureSize(int Size); 9776 9777 /** 9778 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDeviceのデバイスロスト時に使用するかどうかを設定する、バックアップをしないとメモリの節約になりますが、復帰に掛かる時間が長くなり、メモリ上のファイルイメージからグラフィックハンドルを作成した場合は自動復帰ができないなどの弊害があります 9779 * 9780 * Params: 9781 * Flag = dxlib_d.DxDataType.TRUE:バックアップをする(デフォルト) dxlib_d.DxDataType.FALSE:バックアップをしない 9782 */ 9783 extern int SetUseGraphBaseDataBackup(int Flag); 9784 9785 /** 9786 * グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDeviceのデバイスロスト時に使用するかどうかを取得する 9787 */ 9788 extern int GetUseGraphBaseDataBackup(); 9789 9790 /** 9791 * (現在効果なし)グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを設定する 9792 * 9793 * Params: 9794 * Flag = dxlib_d.DxDataType.TRUE:システムメモリ上に作成 dxlib_d.DxDataType.FALSE:VRAM上に作成(デフォルト) 9795 */ 9796 extern int SetUseSystemMemGraphCreateFlag(int Flag); 9797 9798 /** 9799 * (現在効果なし)グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを取得する 9800 */ 9801 extern int GetUseSystemMemGraphCreateFlag(); 9802 9803 // 画像情報関係関数 9804 9805 /** 9806 * 指定のグラフィックハンドルのARGB8イメージを取得する(現在動画ファイルをグラフィックハンドルで読み込んだ場合のみ使用可能) 9807 */ 9808 extern const (uint)* GetFullColorImage(int GrHandle); 9809 9810 /** 9811 * グラフィックメモリ領域のロック 9812 */ 9813 extern int GraphLock(int GrHandle, int* PitchBuf, void** DataPointBuf, .COLORDATA** ColorDataPP = null, int WriteOnly = dxlib_d.DxDataType.FALSE); 9814 9815 /** 9816 * グラフィックメモリ領域のロック解除 9817 */ 9818 extern int GraphUnLock(int GrHandle); 9819 9820 /** 9821 * グラフィックハンドル専用のZバッファを持つかどうかを設定する 9822 * 9823 * Params: 9824 * GrHandle = 対象となるグラフィックハンドル(描画対象として使用可能なグラフィックハンドルのみ有効) 9825 * UseFlag = 専用のZバッファを持つかどうか(dxlib_d.DxDataType.TRUE:持つ(デフォルト) dxlib_d.DxDataType.FALSE:持たない) 9826 * BitDepth = ビット深度(16 or 24 or 32) 9827 */ 9828 extern int SetUseGraphZBuffer(int GrHandle, int UseFlag, int BitDepth = -1); 9829 9830 /** 9831 * グラフィックハンドルのZバッファの状態を別のグラフィックハンドルのZバッファにコピーする(DestGrHandle も SrcGrHandle もZバッファを持っている描画対象にできるグラフィックハンドルで、サイズが同じであり、且つマルチサンプリング(アンチエイリアス)設定が無いことが条件) 9832 */ 9833 extern int CopyGraphZBufferImage(int DestGrHandle, int SrcGrHandle); 9834 9835 /** 9836 * グラフィックスデバイスのデバイスロスト発生時に指定のグラフィックハンドルを削除するかどうかを設定する 9837 * 9838 * Params: 9839 * GrHandle = ? 9840 * DeleteFlag = dxlib_d.DxDataType.TRUE:デバイスロスト時に削除する dxlib_d.DxDataType.FALSE:デバイスロストが発生しても削除しない 9841 */ 9842 extern int SetDeviceLostDeleteGraphFlag(int GrHandle, int DeleteFlag); 9843 9844 /** 9845 * グラフィックハンドルが持つ画像のサイズを得る 9846 */ 9847 extern int GetGraphSize(int GrHandle, int* SizeXBuf, int* SizeYBuf); 9848 9849 /** 9850 * グラフィックハンドルが持つ画像のサイズを得る(float型) 9851 */ 9852 extern int GetGraphSizeF(int GrHandle, float* SizeXBuf, float* SizeYBuf); 9853 9854 /** 9855 * グラフィックハンドルが持つ1つ目のテクスチャのサイズを得る 9856 */ 9857 extern int GetGraphTextureSize(int GrHandle, int* SizeXBuf, int* SizeYBuf); 9858 9859 /** 9860 * LoadDivGraphやDerivationGraphで元画像の一部分を使用している場合に、指定のグラフィックハンドルが使用している元画像の範囲を取得する 9861 */ 9862 extern int GetGraphUseBaseGraphArea(int GrHandle, int* UseX, int* UseY, int* UseSizeX, int* UseSizeY); 9863 9864 /** 9865 * グラフィックハンドルが持つテクスチャのミップマップレベル数を取得する 9866 */ 9867 extern int GetGraphMipmapCount(int GrHandle); 9868 9869 /** 9870 * グラフィックハンドルが画像ファイルから読み込まれていた場合、その画像のファイルパスを取得する 9871 */ 9872 extern int GetGraphFilePath(int GrHandle, dxlib_d.DxDataType.TCHAR* FilePathBuffer); 9873 9874 /** 9875 * 指定のグラフィックハンドルが描画対象にできる(SetDrawScreenの引数に渡せる)グラフィックハンドルかどうかを取得する 9876 * 9877 * Returns: dxlib_d.DxDataType.TRUE:描画対象にできるグラフィックハンドル dxlib_d.DxDataType.FALSE:描画対象にできないグラフィックハンドル 9878 */ 9879 extern int CheckDrawValidGraph(int GrHandle); 9880 9881 /** 9882 * カラーデータを得る 9883 */ 9884 extern const (.COLORDATA)* GetTexColorData(int AlphaCh, int AlphaTest, int ColorBitDepth, int DrawValid = dxlib_d.DxDataType.FALSE); 9885 9886 /** 9887 * フォーマットに基づいたカラーデータを得る 9888 */ 9889 extern const (.COLORDATA)* GetTexColorData(const (.IMAGEFORMATDESC)* Format); 9890 9891 /** 9892 * 指定のフォーマットインデックスのカラーデータを得る 9893 */ 9894 extern const (.COLORDATA)* GetTexColorData(int FormatIndex); 9895 9896 /** 9897 * グラフィックスデバイスが対応している最大テクスチャサイズを取得する 9898 */ 9899 extern int GetMaxGraphTextureSize(int* SizeX, int* SizeY); 9900 9901 /** 9902 * グラフィックハンドルの画像を復元する関数が登録されているかどうかを取得する 9903 * 9904 * Returns: dxlib_d.DxDataType.TRUE:登録されている dxlib_d.DxDataType.FALSE:登録されていない 9905 */ 9906 extern int GetValidRestoreShredPoint(); 9907 9908 /** 9909 * (現在効果なし)これから新たにグラフィックを作成する場合に使用するカラー情報を取得する 9910 */ 9911 extern int GetCreateGraphColorData(.COLORDATA* ColorData, .IMAGEFORMATDESC* Format); 9912 9913 // 画像パレット操作関係関数(ソフトウエア画像のみ使用可能) 9914 9915 /** 9916 * グラフィックハンドルのパレットを取得する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能) 9917 */ 9918 extern int GetGraphPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue); 9919 9920 /** 9921 * グラフィックハンドルのSetGraphPaletteで変更する前のパレットを取得する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能) 9922 */ 9923 extern int GetGraphOriginalPalette(int GrHandle, int ColorIndex, int* Red, int* Green, int* Blue); 9924 9925 /** 9926 * グラフィックハンドルのパレットを変更する(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能) 9927 */ 9928 extern int SetGraphPalette(int GrHandle, int ColorIndex, uint Color); 9929 9930 /** 9931 * SetGraphPaletteで変更したパレットを全て元に戻す(ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能) 9932 */ 9933 extern int ResetGraphPalette(int GrHandle); 9934 9935 // 図形描画関数 9936 9937 /** 9938 * 線を描画する 9939 */ 9940 extern int DrawLine(int x1, int y1, int x2, int y2, uint Color, int Thickness = 1); 9941 9942 /** 9943 * 線を描画する(アンチエイリアス付き) 9944 */ 9945 extern int DrawLineAA(float x1, float y1, float x2, float y2, uint Color, float Thickness = 1.0f); 9946 9947 /** 9948 * 四角形を描画する 9949 */ 9950 extern int DrawBox(int x1, int y1, int x2, int y2, uint Color, int FillFlag); 9951 9952 /** 9953 * 四角形を描画する(アンチエイリアス付き) 9954 */ 9955 extern int DrawBoxAA(float x1, float y1, float x2, float y2, uint Color, int FillFlag, float LineThickness = 1.0f); 9956 9957 /** 9958 * 中身を塗りつぶす四角形を描画する 9959 */ 9960 extern int DrawFillBox(int x1, int y1, int x2, int y2, uint Color); 9961 9962 /** 9963 * 枠だけの四角形の描画 する 9964 */ 9965 extern int DrawLineBox(int x1, int y1, int x2, int y2, uint Color); 9966 9967 /** 9968 * 円を描画する 9969 */ 9970 extern int DrawCircle(int x, int y, int r, uint Color, int FillFlag = dxlib_d.DxDataType.TRUE, int LineThickness = 1); 9971 9972 /** 9973 * 円を描画する(アンチエイリアス付き) 9974 */ 9975 extern int DrawCircleAA(float x, float y, float r, int posnum, uint Color, int FillFlag = dxlib_d.DxDataType.TRUE, float LineThickness = 1.0f); 9976 9977 /** 9978 * 楕円を描画する 9979 */ 9980 extern int DrawOval(int x, int y, int rx, int ry, uint Color, int FillFlag, int LineThickness = 1); 9981 9982 /** 9983 * 楕円を描画する(アンチエイリアス付き) 9984 */ 9985 extern int DrawOvalAA(float x, float y, float rx, float ry, int posnum, uint Color, int FillFlag, float LineThickness = 1.0f); 9986 9987 /** 9988 * 指定の矩形に収まる円(楕円)を描画する 9989 */ 9990 extern int DrawOval_Rect(int x1, int y1, int x2, int y2, uint Color, int FillFlag); 9991 9992 /** 9993 * 三角形を描画する 9994 */ 9995 extern int DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, uint Color, int FillFlag); 9996 9997 /** 9998 * 三角形を描画する(アンチエイリアス付き) 9999 */ 10000 extern int DrawTriangleAA(float x1, float y1, float x2, float y2, float x3, float y3, uint Color, int FillFlag, float LineThickness = 1.0f); 10001 10002 /** 10003 * 四角形を描画する 10004 */ 10005 extern int DrawQuadrangle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FillFlag); 10006 10007 /** 10008 * 四角形を描画する(アンチエイリアス付き) 10009 */ 10010 extern int DrawQuadrangleAA(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FillFlag, float LineThickness = 1.0f); 10011 10012 /** 10013 * 角の丸い四角形を描画する 10014 */ 10015 extern int DrawRoundRect(int x1, int y1, int x2, int y2, int rx, int ry, uint Color, int FillFlag); 10016 10017 /** 10018 * 角の丸い四角形を描画する(アンチエイリアス付き) 10019 */ 10020 extern int DrawRoundRectAA(float x1, float y1, float x2, float y2, float rx, float ry, int posnum, uint Color, int FillFlag, float LineThickness = 1.0f); 10021 10022 /** 10023 * DrawTriangleAAなどのアンチエイリアス付き図形描画の準備を行う 10024 */ 10025 extern int BeginAADraw(); 10026 10027 /** 10028 * DrawTriangleAAなどのアンチエイリアス付き図形描画の後始末を行う 10029 */ 10030 extern int EndAADraw(); 10031 10032 /** 10033 * 点を描画する 10034 */ 10035 extern int DrawPixel(int x, int y, uint Color); 10036 10037 /** 10038 * 指定点から境界色があるところまで塗りつぶす(境界色を-1にすると指定点の色の領域を塗りつぶす) 10039 */ 10040 extern int Paint(int x, int y, uint FillColor, dxlib_d.DxDataType.ULONGLONG BoundaryColor = 0xFFFFFFFFFFFFFFFFUL); 10041 10042 /** 10043 * 点の集合を描画する 10044 */ 10045 extern int DrawPixelSet(const (.POINTDATA)* PointDataArray, int Num); 10046 10047 /** 10048 * 線の集合を描画する 10049 */ 10050 extern int DrawLineSet(const (.LINEDATA)* LineDataArray, int Num); 10051 10052 /** 10053 * 3Dの点を描画する 10054 */ 10055 extern int DrawPixel3D(.VECTOR Pos, uint Color); 10056 10057 /** 10058 * 3Dの点を描画する 10059 */ 10060 extern int DrawPixel3DD(.VECTOR_D Pos, uint Color); 10061 10062 /** 10063 * 3Dの線分を描画する 10064 */ 10065 extern int DrawLine3D(.VECTOR Pos1, .VECTOR Pos2, uint Color); 10066 10067 /** 10068 * 3Dの線分を描画する 10069 */ 10070 extern int DrawLine3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint Color); 10071 10072 /** 10073 * 3Dの三角形を描画する 10074 */ 10075 extern int DrawTriangle3D(.VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, uint Color, int FillFlag); 10076 10077 /** 10078 * 3Dの三角形を描画する 10079 */ 10080 extern int DrawTriangle3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, .VECTOR_D Pos3, uint Color, int FillFlag); 10081 10082 /** 10083 * 3Dの立方体を描画する 10084 */ 10085 extern int DrawCube3D(.VECTOR Pos1, .VECTOR Pos2, uint DifColor, uint SpcColor, int FillFlag); 10086 10087 /** 10088 * 3Dの立方体を描画する 10089 */ 10090 extern int DrawCube3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, uint DifColor, uint SpcColor, int FillFlag); 10091 10092 /** 10093 * 3Dの立方体の集合を描画する 10094 */ 10095 extern int DrawCubeSet3D(.CUBEDATA* CubeDataArray, int Num, int FillFlag); 10096 10097 /** 10098 * 3Dの球体を描画する 10099 */ 10100 extern int DrawSphere3D(.VECTOR CenterPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10101 10102 /** 10103 * 3Dの球体を描画する 10104 */ 10105 extern int DrawSphere3DD(.VECTOR_D CenterPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10106 10107 /** 10108 * 3Dのカプセルを描画する 10109 */ 10110 extern int DrawCapsule3D(.VECTOR Pos1, .VECTOR Pos2, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10111 10112 /** 10113 * 3Dのカプセルを描画する 10114 */ 10115 extern int DrawCapsule3DD(.VECTOR_D Pos1, .VECTOR_D Pos2, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10116 10117 /** 10118 * 3Dの円錐を描画する 10119 */ 10120 extern int DrawCone3D(.VECTOR TopPos, .VECTOR BottomPos, float r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10121 10122 /** 10123 * 3Dの円錐を描画する 10124 */ 10125 extern int DrawCone3DD(.VECTOR_D TopPos, .VECTOR_D BottomPos, double r, int DivNum, uint DifColor, uint SpcColor, int FillFlag); 10126 10127 // 画像描画関数 10128 10129 /** 10130 * 画像ファイルを読みこんで画面に描画する 10131 */ 10132 extern int LoadGraphScreen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* GraphName, int TransFlag); 10133 10134 /** 10135 * 画像ファイルを読みこんで画面に描画する 10136 */ 10137 extern int LoadGraphScreenWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* GraphName, size_t GraphNameLength, int TransFlag); 10138 10139 /** 10140 * 画像の等倍描画 10141 */ 10142 extern int DrawGraph(int x, int y, int GrHandle, int TransFlag); 10143 10144 /** 10145 * 画像の拡大描画 10146 */ 10147 extern int DrawExtendGraph(int x1, int y1, int x2, int y2, int GrHandle, int TransFlag); 10148 10149 /** 10150 * 画像の回転描画 10151 */ 10152 extern int DrawRotaGraph(int x, int y, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10153 10154 /** 10155 * 画像の回転描画2(回転中心指定付き) 10156 */ 10157 extern int DrawRotaGraph2(int x, int y, int cx, int cy, double ExtRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10158 10159 /** 10160 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版) 10161 */ 10162 extern int DrawRotaGraph3(int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10163 10164 /** 10165 * 画像の回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10166 */ 10167 extern int DrawRotaGraphFast(int x, int y, float ExRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10168 10169 /** 10170 * 画像の回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10171 */ 10172 extern int DrawRotaGraphFast2(int x, int y, int cx, int cy, float ExtRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10173 10174 /** 10175 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10176 */ 10177 extern int DrawRotaGraphFast3(int x, int y, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10178 10179 /** 10180 * 画像の自由変形描画 10181 */ 10182 extern int DrawModiGraph(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int TransFlag); 10183 10184 /** 10185 * 画像の左右反転描画 10186 */ 10187 extern int DrawTurnGraph(int x, int y, int GrHandle, int TransFlag); 10188 10189 /** 10190 * 画像の反転描画 10191 */ 10192 extern int DrawReverseGraph(int x, int y, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10193 10194 /** 10195 * 画像の描画(座標指定がfloat版) 10196 */ 10197 extern int DrawGraphF(float xf, float yf, int GrHandle, int TransFlag); 10198 10199 /** 10200 * 画像の拡大描画(座標指定がfloat版) 10201 */ 10202 extern int DrawExtendGraphF(float x1f, float y1f, float x2f, float y2, int GrHandle, int TransFlag); 10203 10204 /** 10205 * 画像の回転描画(座標指定がfloat版) 10206 */ 10207 extern int DrawRotaGraphF(float xf, float yf, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10208 10209 /** 10210 * 画像の回転描画2(回転中心指定付き)(座標指定がfloat版) 10211 */ 10212 extern int DrawRotaGraph2F(float xf, float yf, float cxf, float cyf, double ExtRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10213 10214 /** 10215 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版) 10216 */ 10217 extern int DrawRotaGraph3F(float xf, float yf, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10218 10219 /** 10220 * 画像の回転描画(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10221 */ 10222 extern int DrawRotaGraphFastF(float xf, float yf, float ExRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10223 10224 /** 10225 * 画像の回転描画2(回転中心指定付き)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10226 */ 10227 extern int DrawRotaGraphFast2F(float xf, float yf, float cxf, float cyf, float ExtRate, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10228 10229 /** 10230 * 画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10231 */ 10232 extern int DrawRotaGraphFast3F(float xf, float yf, float cxf, float cyf, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10233 10234 /** 10235 * 画像の自由変形描画(座標指定がfloat版) 10236 */ 10237 extern int DrawModiGraphF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag); 10238 10239 /** 10240 * 画像の左右反転描画(座標指定がfloat版) 10241 */ 10242 extern int DrawTurnGraphF(float xf, float yf, int GrHandle, int TransFlag); 10243 10244 /** 10245 * 画像の反転描画(座標指定がfloat版) 10246 */ 10247 extern int DrawReverseGraphF(float xf, float yf, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10248 10249 /** 10250 * チップ画像を使った2Dマップ描画 10251 */ 10252 extern int DrawChipMap(int Sx, int Sy, int XNum, int YNum, const (int)* MapData, int ChipTypeNum, int MapDataPitch, const (int)* ChipGrHandle, int TransFlag); 10253 10254 /** 10255 * チップ画像を使った2Dマップ描画 10256 */ 10257 extern int DrawChipMap(int MapWidth, int MapHeight, const (int)* MapData, int ChipTypeNum, const (int)* ChipGrHandle, int TransFlag, int MapDrawPointX, int MapDrawPointY, int MapDrawWidth, int MapDrawHeight, int ScreenX, int ScreenY); 10258 10259 /** 10260 * 画像を指定領域にタイル状に描画する 10261 */ 10262 extern int DrawTile(int x1, int y1, int x2, int y2, int Tx, int Ty, double ExtRate, double Angle, int GrHandle, int TransFlag); 10263 10264 /** 10265 * 画像の指定矩形部分のみを等倍描画 10266 */ 10267 extern int DrawRectGraph(int DestX, int DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10268 10269 /** 10270 * 画像の指定矩形部分のみを拡大描画 10271 */ 10272 extern int DrawRectExtendGraph(int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag); 10273 10274 /** 10275 * 画像の指定矩形部分のみを回転描画 10276 */ 10277 extern int DrawRectRotaGraph(int x, int y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10278 10279 /** 10280 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き) 10281 */ 10282 extern int DrawRectRotaGraph2(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10283 10284 /** 10285 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版) 10286 */ 10287 extern int DrawRectRotaGraph3(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10288 10289 /** 10290 * 画像の指定矩形部分のみを回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10291 */ 10292 extern int DrawRectRotaGraphFast(int x, int y, int SrcX, int SrcY, int Width, int Height, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10293 10294 /** 10295 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10296 */ 10297 extern int DrawRectRotaGraphFast2(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10298 10299 /** 10300 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10301 */ 10302 extern int DrawRectRotaGraphFast3(int x, int y, int SrcX, int SrcY, int Width, int Height, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10303 10304 /** 10305 * 画像の指定矩形部分のみを自由変形描画 10306 */ 10307 extern int DrawRectModiGraph(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag); 10308 10309 /** 10310 * 画像の指定矩形部分のみを等倍描画(座標指定がfloat版) 10311 */ 10312 extern int DrawRectGraphF(float DestX, float DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10313 10314 /** 10315 * 画像の指定矩形部分のみを拡大描画(座標指定がfloat版) 10316 */ 10317 extern int DrawRectExtendGraphF(float DestX1, float DestY1, float DestX2, float DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag); 10318 10319 /** 10320 * 画像の指定矩形部分のみを回転描画(座標指定がfloat版) 10321 */ 10322 extern int DrawRectRotaGraphF(float x, float y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10323 10324 /** 10325 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(座標指定がfloat版) 10326 */ 10327 extern int DrawRectRotaGraph2F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, double ExtRate, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10328 10329 /** 10330 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版) 10331 */ 10332 extern int DrawRectRotaGraph3F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10333 10334 /** 10335 * 画像の指定矩形部分のみを回転描画(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10336 */ 10337 extern int DrawRectRotaGraphFastF(float x, float y, int SrcX, int SrcY, int Width, int Height, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10338 10339 /** 10340 * 画像の指定矩形部分のみを回転描画2(回転中心指定付き)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10341 */ 10342 extern int DrawRectRotaGraphFast2F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, float ExtRate, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10343 10344 /** 10345 * 画像の指定矩形部分のみを回転描画3(回転中心指定付き+縦横拡大率別指定版)(座標指定がfloat版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10346 */ 10347 extern int DrawRectRotaGraphFast3F(float x, float y, int SrcX, int SrcY, int Width, int Height, float cxf, float cyf, float ExtRateX, float ExtRateY, float Angle, int GraphHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10348 10349 /** 10350 * 画像の指定矩形部分のみを自由変形描画(座標指定がfloat版) 10351 */ 10352 extern int DrawRectModiGraphF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag); 10353 10354 /** 10355 * ブレンド画像と合成して画像を等倍描画する 10356 */ 10357 extern int DrawBlendGraph(int x, int y, int GrHandle, int TransFlag, int BlendGraph, int BorderParam, int BorderRange); 10358 10359 /** 10360 * ブレンド画像と合成して画像を等倍描画する(ブレンド画像の起点座標を指定する引数付き) 10361 */ 10362 extern int DrawBlendGraphPos(int x, int y, int GrHandle, int TransFlag, int bx, int by, int BlendGraph, int BorderParam, int BorderRange); 10363 10364 /** 10365 * 円グラフ的な描画を行う(GrHandleの画像の上下左右の端は透過色にしておく必要があります) 10366 */ 10367 extern int DrawCircleGauge(int CenterX, int CenterY, double Percent, int GrHandle, double StartPercent = 0.0, double Scale = 1.0, int ReverseX = dxlib_d.DxDataType.FALSE, int ReverseY = dxlib_d.DxDataType.FALSE); 10368 10369 /** 10370 * 円グラフ的な描画を行う(GrHandleの画像の上下左右の端は透過色にしておく必要があります)(座標指定がfloat版) 10371 */ 10372 extern int DrawCircleGaugeF(float CenterX, float CenterY, double Percent, int GrHandle, double StartPercent = 0.0, double Scale = 1.0, int ReverseX = dxlib_d.DxDataType.FALSE, int ReverseY = dxlib_d.DxDataType.FALSE); 10373 10374 /** 10375 * Zバッファに対して画像の等倍描画 10376 */ 10377 extern int DrawGraphToZBuffer(int X, int Y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 10378 10379 /** 10380 * Zバッファに対して画像の左右反転描画 10381 */ 10382 extern int DrawTurnGraphToZBuffer(int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 10383 10384 /** 10385 * Zバッファに対して画像の反転描画 10386 */ 10387 extern int DrawReverseGraphToZBuffer(int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10388 10389 /** 10390 * Zバッファに対して画像の拡大描画 10391 */ 10392 extern int DrawExtendGraphToZBuffer(int x1, int y1, int x2, int y2, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 10393 10394 /** 10395 * Zバッファに対して画像の回転描画 10396 */ 10397 extern int DrawRotaGraphToZBuffer(int x, int y, double ExRate, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10398 10399 /** 10400 * Zバッファに対して画像の回転描画2(回転中心指定付き) 10401 */ 10402 extern int DrawRotaGraph2ToZBuffer(int x, int y, int cx, int cy, double ExtRate, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10403 10404 /** 10405 * Zバッファに対して画像の回転描画3(回転中心指定付き+縦横拡大率別指定版) 10406 */ 10407 extern int DrawRotaGraph3ToZBuffer(int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10408 10409 /** 10410 * Zバッファに対して画像の回転描画(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10411 */ 10412 extern int DrawRotaGraphFastToZBuffer(int x, int y, float ExRate, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10413 10414 /** 10415 * Zバッファに対して画像の回転描画2(回転中心指定付き)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10416 */ 10417 extern int DrawRotaGraphFast2ToZBuffer(int x, int y, int cx, int cy, float ExtRate, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10418 10419 /** 10420 * Zバッファに対して画像の回転描画3(回転中心指定付き+縦横拡大率別指定版)(高速版、座標計算のアルゴリズムが簡略化されています、描画結果に不都合が無ければこちらの方が高速です) 10421 */ 10422 extern int DrawRotaGraphFast3ToZBuffer(int x, int y, int cx, int cy, float ExtRateX, float ExtRateY, float Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10423 10424 /** 10425 * Zバッファに対して画像の自由変形描画 10426 */ 10427 extern int DrawModiGraphToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 10428 10429 /** 10430 * Zバッファに対して矩形の描画 10431 */ 10432 extern int DrawBoxToZBuffer(int x1, int y1, int x2, int y2, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */); 10433 10434 /** 10435 * Zバッファに対して円の描画 10436 */ 10437 extern int DrawCircleToZBuffer(int x, int y, int r, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */); 10438 10439 /** 10440 * Zバッファに対して三角形を描画する 10441 */ 10442 extern int DrawTriangleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */); 10443 10444 /** 10445 * Zバッファに対して四角形を描画する 10446 */ 10447 extern int DrawQuadrangleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */); 10448 10449 /** 10450 * Zバッファに対して角の丸い四角形を描画する 10451 */ 10452 extern int DrawRoundRectToZBuffer(int x1, int y1, int x2, int y2, int rx, int ry, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK等 */); 10453 10454 /** 10455 * 2Dポリゴンを描画する 10456 * 10457 * Params: 10458 * Vertex = 三角形を形成する頂点配列の先頭アドレス(頂点の数はポリゴンの数×3) 10459 * PolygonNum = 描画するポリゴンの数 10460 * GrHandle = 使用するグラフィックハンドル 10461 * TransFlag = 透過色処理を行うかどうか(dxlib_d.DxDataType.TRUE:行う dxlib_d.DxDataType.FALSE:行わない) 10462 * UVScaling = 基本dxlib_d.DxDataType.FALSEでOK 10463 */ 10464 extern int DrawPolygon(const (.VERTEX)* VertexArray, int PolygonNum, int GrHandle, int TransFlag, int UVScaling = dxlib_d.DxDataType.FALSE); 10465 10466 /** 10467 * 2Dポリゴンを描画する 10468 */ 10469 extern int DrawPolygon2D(const (.VERTEX2D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10470 10471 /** 10472 * 3Dポリゴンを描画する 10473 */ 10474 extern int DrawPolygon3D(const (.VERTEX3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10475 10476 /** 10477 * 2Dポリゴンを描画する(頂点インデックスを使用) 10478 */ 10479 extern int DrawPolygonIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag); 10480 10481 /** 10482 * 3Dポリゴンを描画する(頂点インデックスを使用) 10483 */ 10484 extern int DrawPolygonIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum, int GrHandle, int TransFlag); 10485 10486 /** 10487 * 3Dポリゴンを描画する(頂点インデックスを使用)(旧バージョン用) 10488 */ 10489 extern int DrawPolygonIndexed3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10490 10491 /** 10492 * 3Dポリゴンを描画する(旧バージョン用) 10493 */ 10494 extern int DrawPolygon3DBase(const (.VERTEX_3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10495 10496 /** 10497 * 3Dポリゴンを描画する(旧バージョン用) 10498 */ 10499 extern int DrawPolygon3D(const (.VERTEX_3D)* VertexArray, int PolygonNum, int GrHandle, int TransFlag); 10500 10501 /** 10502 * 2Dプリミティブを描画する 10503 */ 10504 extern int DrawPolygonBase(const (.VERTEX)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag, int UVScaling = dxlib_d.DxDataType.FALSE); 10505 10506 /** 10507 * 2Dプリミティブを描画する 10508 */ 10509 extern int DrawPrimitive2D(const (.VERTEX2D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10510 10511 /** 10512 * 3Dプリミティブを描画する 10513 */ 10514 extern int DrawPrimitive3D(const (.VERTEX3D)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10515 10516 /** 10517 * 2Dプリミティブを描画する(頂点インデックス使用) 10518 */ 10519 extern int DrawPrimitiveIndexed2D(const (.VERTEX2D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10520 10521 /** 10522 * 3Dプリミティブを描画する(頂点インデックス使用) 10523 */ 10524 extern int DrawPrimitiveIndexed3D(const (.VERTEX3D)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10525 10526 /** 10527 * 頂点バッファを使用して3Dポリゴンを描画する 10528 */ 10529 extern int DrawPolygon3D_UseVertexBuffer(int VertexBufHandle, int GrHandle, int TransFlag); 10530 10531 /** 10532 * 頂点バッファを使用して3Dプリミティブを描画する 10533 */ 10534 extern int DrawPrimitive3D_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10535 10536 /** 10537 * 頂点バッファを使用して3Dプリミティブを描画する 10538 */ 10539 extern int DrawPrimitive3D_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int StartVertex, int UseVertexNum, int GrHandle, int TransFlag); 10540 10541 /** 10542 * 頂点バッファとインデックスバッファを使用して3Dポリゴンを描画する 10543 */ 10544 extern int DrawPolygonIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int GrHandle, int TransFlag); 10545 10546 /** 10547 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する 10548 */ 10549 extern int DrawPrimitiveIndexed3D_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int GrHandle, int TransFlag); 10550 10551 /** 10552 * 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する 10553 */ 10554 extern int DrawPrimitiveIndexed3D_UseVertexBuffer2(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum, int GrHandle, int TransFlag); 10555 10556 /** 10557 * 画像の3D描画 10558 */ 10559 extern int DrawGraph3D(float x, float y, float z, int GrHandle, int TransFlag); 10560 10561 /** 10562 * 画像の拡大3D描画 10563 */ 10564 extern int DrawExtendGraph3D(float x, float y, float z, double ExRateX, double ExRateY, int GrHandle, int TransFlag); 10565 10566 /** 10567 * 画像の回転3D描画 10568 */ 10569 extern int DrawRotaGraph3D(float x, float y, float z, double ExRate, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10570 10571 /** 10572 * 画像の回転3D描画(回転中心指定型) 10573 */ 10574 extern int DrawRota2Graph3D(float x, float y, float z, float cx, float cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10575 10576 /** 10577 * 画像の自由変形3D描画 10578 */ 10579 extern int DrawModiBillboard3D(.VECTOR Pos, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag); 10580 10581 /** 10582 * 3D空間上に画像を描画 10583 */ 10584 extern int DrawBillboard3D(.VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 10585 10586 // 描画設定関係関数 10587 10588 /** 10589 * 描画モードを設定する 10590 */ 10591 extern int SetDrawMode(int DrawMode); 10592 10593 /** 10594 * 描画モードを取得する 10595 */ 10596 extern int GetDrawMode(); 10597 10598 /** 10599 * 描画ブレンドモードを設定する 10600 */ 10601 extern int SetDrawBlendMode(int BlendMode, int BlendParam); 10602 10603 /** 10604 * 描画ブレンドモードを取得する 10605 */ 10606 extern int GetDrawBlendMode(int* BlendMode, int* BlendParam); 10607 10608 /** 10609 * 描画時のアルファテストの設定を行う(TestMode:テストモード(DX_CMP_GREATER等 -1でデフォルト動作に戻す) TestParam:描画アルファ値との比較に使用する値(0~255)) 10610 * 10611 * Params: 10612 * TestMode = ? 10613 * TestParam = ? 10614 */ 10615 extern int SetDrawAlphaTest(int TestMode, int TestParam); 10616 10617 /** 10618 * 描画時のアルファテストの設定を取得する(TestMode:テストモード(DX_CMP_GREATER等 -1でデフォルト動作に戻す) TestParam:描画アルファ値との比較に使用する値(0~255)) 10619 * 10620 * Params: 10621 * TestMode = ? 10622 * TestParam = ? 10623 */ 10624 extern int GetDrawAlphaTest(int* TestMode, int* TestParam); 10625 10626 /** 10627 * (SetBlendGraphParamのBlendType = DX_BLENDGRAPHTYPE_WIPEの処理を行う旧関数)描画処理時に描画する画像とブレンドするαチャンネル付き画像をセットする(BlendGraphを-1でブレンド機能を無効) 10628 */ 10629 extern int SetBlendGraph(int BlendGraph, int BorderParam, int BorderRange); 10630 10631 /** 10632 * 描画処理時に描画する画像とブレンドする画像のブレンド設定を行う、BlendGraphを-1にすれば設定を解除、その場合BlendTypeとその後ろのパラメータは無視される 10633 */ 10634 extern int SetBlendGraphParam(int BlendGraph, int BlendType, ...); 10635 10636 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_NORMAL, int Ratio = (0(ブレンド率0%)~255(ブレンド率100%))); 10637 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_WIPE, int BorderParam = 境界位置(0~255), int BorderRange = 境界幅(指定できる値は1、64、128、255の4つ)); 10638 // int SetBlendGraphParam(int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_ALPHA); 10639 10640 /** 10641 * ブレンド画像の起点座標をセットする 10642 */ 10643 extern int SetBlendGraphPosition(int x, int y); 10644 10645 /** 10646 * ブレンド画像の適応座標モードを設定する 10647 */ 10648 extern int SetBlendGraphPositionMode(int BlendGraphPositionMode /* DX_BLENDGRAPH_POSMODE_DRAWGRAPHなど */); 10649 10650 /** 10651 * 描画輝度を設定する 10652 */ 10653 extern int SetDrawBright(int RedBright, int GreenBright, int BlueBright); 10654 10655 /** 10656 * 描画輝度を取得する 10657 */ 10658 extern int GetDrawBright(int* Red, int* Green, int* Blue); 10659 10660 /** 10661 * 描画先のアルファチャンネルの内容を書き換えるかを設定する 10662 * 10663 * Params: 10664 * Flag = dxlib_d.DxDataType.FALSE:書き換えない dxlib_d.DxDataType.TRUE:書き換える(デフォルト) 10665 */ 10666 extern int SetWriteAlphaChannelFlag(int Flag); 10667 10668 /** 10669 * 描画先のアルファチャンネルの内容を書き換えるかを取得する 10670 * 10671 * Returns: dxlib_d.DxDataType.FALSE:書き換えない dxlib_d.DxDataType.TRUE:書き換える(デフォルト) 10672 */ 10673 extern int GetWriteAlphaChannelFlag(); 10674 10675 /** 10676 * 描画先のアルファチャンネルの内容を書き換えないことができるかどうかを取得する 10677 * 10678 * Returns: dxlib_d.DxDataType.TRUE:書き換えないことができる dxlib_d.DxDataType.FALSE:書き換えないことができない 10679 */ 10680 extern int CheckSeparateAlphaBlendEnable(); 10681 10682 /** 10683 * 描画する画像のRGB成分を無視するかどうかを指定する 10684 * 10685 * Params: 10686 * EnableFlag = この機能を使うかどうか(dxlib_d.DxDataType.TRUE:使う dxlib_d.DxDataType.FALSE:使わない(デフォルト)) 10687 */ 10688 extern int SetIgnoreDrawGraphColor(int EnableFlag); 10689 10690 /** 10691 * 最大異方性値を設定する 10692 */ 10693 extern int SetMaxAnisotropy(int MaxAnisotropy); 10694 10695 /** 10696 * 最大異方性値を取得する 10697 */ 10698 extern int GetMaxAnisotropy(); 10699 10700 /** 10701 * 3D処理で使用する座標値が10000000.0fなどの大きな値になっても描画の崩れを小さく抑える処理を使用するかどうかを設定する、DxLib_Initの呼び出し前でのみ使用可能 10702 * 10703 * Params: 10704 * UseFlag = dxlib_d.DxDataType.TRUE:描画の崩れを抑える処理を使用する(CPU負荷が上がります) dxlib_d.DxDataType.FALSE:描画の崩れを抑える処理は使用しない(デフォルト) 10705 */ 10706 extern int SetUseLarge3DPositionSupport(int UseFlag); 10707 10708 /** 10709 * Zバッファを使用するかどうかを設定する(2Dと3D描画に影響) 10710 * 10711 * Params: 10712 * Flag = dxlib_d.DxDataType.TRUE:Zバッファを使用する dxlib_d.DxDataType.FALSE:Zバッファを使用しない(デフォルト) 10713 */ 10714 extern int SetUseZBufferFlag(int Flag); 10715 10716 /** 10717 * Zバッファに書き込みを行うかどうかを設定する(2Dと3D描画に影響) 10718 * 10719 * Params: 10720 * Flag = dxlib_d.DxDataType.TRUE:書き込みを行う dxlib_d.DxDataType.FALSE:書き込みを行わない(デフォルト) 10721 */ 10722 extern int SetWriteZBufferFlag(int Flag); 10723 10724 /** 10725 * ZバッファのZ値と書き込むZ値との比較モードを設定する(2Dと3D描画に影響) 10726 * 10727 * Params: 10728 * CmpType = DX_CMP_NEVER等(デフォルト:DX_CMP_LESSEQUAL) 10729 */ 10730 extern int SetZBufferCmpType(int CmpType /* DX_CMP_NEVER等 */); 10731 10732 /** 10733 * 書き込むZ値のバイアスを設定する(2Dと3D描画に影響)(Bias:バイアス値(デフォルト:0)) 10734 * 10735 * Params: 10736 * Bias = ? 10737 */ 10738 extern int SetZBias(int Bias); 10739 10740 /** 10741 * Zバッファを使用するかどうかを設定する(3D描画のみに影響) 10742 * 10743 * Params: 10744 * Flag = dxlib_d.DxDataType.TRUE:Zバッファを使用する dxlib_d.DxDataType.FALSE:Zバッファを使用しない(デフォルト) 10745 */ 10746 extern int SetUseZBuffer3D(int Flag); 10747 10748 /** 10749 * Zバッファに書き込みを行うかどうかを設定する(3D描画のみに影響) 10750 * 10751 * Params: 10752 * Flag = dxlib_d.DxDataType.TRUE:書き込みを行う dxlib_d.DxDataType.FALSE:書き込みを行わない(デフォルト) 10753 */ 10754 extern int SetWriteZBuffer3D(int Flag); 10755 10756 /** 10757 * ZバッファのZ値と書き込むZ値との比較モードを設定する(3D描画のみに影響) 10758 * 10759 * Params: 10760 * CmpType = DX_CMP_NEVER等(デフォルト:DX_CMP_LESSEQUAL) 10761 */ 10762 extern int SetZBufferCmpType3D(int CmpType /* DX_CMP_NEVER等 */); 10763 10764 /** 10765 * 書き込むZ値のバイアスを設定する(3D描画のみに影響)(Bias:バイアス値(デフォルト:0)) 10766 * 10767 * Params: 10768 * Bias = ? 10769 */ 10770 extern int SetZBias3D(int Bias); 10771 10772 /** 10773 * 2D描画でZバッファに書き込むZ値を設定する(Z:書き込むZ値(デフォルト:0.2f)) 10774 * 10775 * Params: 10776 * Z = ? 10777 */ 10778 extern int SetDrawZ(float Z); 10779 10780 /** 10781 * 描画可能領域の設定する 10782 */ 10783 extern int SetDrawArea(int x1, int y1, int x2, int y2); 10784 10785 /** 10786 * 描画可能領域を取得する 10787 */ 10788 extern int GetDrawArea(dxlib_d.DxDataType.RECT* Rect); 10789 10790 /** 10791 * 描画可能領域を描画対象画面全体にする 10792 */ 10793 extern int SetDrawAreaFull(); 10794 10795 /** 10796 * 3D描画の拡大率を設定する 10797 */ 10798 extern int SetDraw3DScale(float Scale); 10799 10800 /** 10801 * SetRestoreGraphCallbackの旧名 10802 */ 10803 extern int SetRestoreShredPoint(void function() ShredPoint); 10804 10805 /** 10806 * グラフィックハンドル復元関数を登録する 10807 */ 10808 extern int SetRestoreGraphCallback(void function() Callback); 10809 10810 /** 10811 * グラフィック復元関数を実行する 10812 */ 10813 extern int RunRestoreShred(); 10814 10815 /** 10816 * グラフィックスデバイスがロストから復帰した際に呼ばれるコールバック関数を設定する 10817 */ 10818 extern int SetGraphicsDeviceRestoreCallbackFunction(void function(void* Data) Callback, void* CallbackData); 10819 10820 /** 10821 * グラフィックスデバイスがロストから復帰する前に呼ばれるコールバック関数を設定する 10822 */ 10823 extern int SetGraphicsDeviceLostCallbackFunction(void function(void* Data) Callback, void* CallbackData); 10824 10825 /** 10826 * 2D描画に使用される変換行列を設定する 10827 */ 10828 extern int SetTransformTo2D(const (.MATRIX)* Matrix); 10829 10830 /** 10831 * 2D描画に使用される変換行列を設定する 10832 */ 10833 extern int SetTransformTo2DD(const (.MATRIX_D)* Matrix); 10834 10835 /** 10836 * 2D描画用に使用する変換行列の設定を初期状態に戻す 10837 */ 10838 extern int ResetTransformTo2D(); 10839 10840 /** 10841 * ローカル座標からワールド座標に変換するための行列を設定する 10842 */ 10843 extern int SetTransformToWorld(const (.MATRIX)* Matrix); 10844 10845 /** 10846 * ローカル座標からワールド座標に変換するための行列を設定する 10847 */ 10848 extern int SetTransformToWorldD(const (.MATRIX_D)* Matrix); 10849 10850 /** 10851 * ローカル座標からワールド座標に変換するための行列を取得する 10852 */ 10853 extern int GetTransformToWorldMatrix(.MATRIX* MatBuf); 10854 10855 /** 10856 * ローカル座標からワールド座標に変換するための行列を取得する 10857 */ 10858 extern int GetTransformToWorldMatrixD(.MATRIX_D* MatBuf); 10859 10860 /** 10861 * ワールド座標からビュー座標に変換するための行列を設定する 10862 */ 10863 extern int SetTransformToView(const (.MATRIX)* Matrix); 10864 10865 /** 10866 * ワールド座標からビュー座標に変換するための行列を設定する 10867 */ 10868 extern int SetTransformToViewD(const (.MATRIX_D)* Matrix); 10869 10870 /** 10871 * ワールド座標からビュー座標に変換するための行列を取得する 10872 */ 10873 extern int GetTransformToViewMatrix(.MATRIX* MatBuf); 10874 10875 /** 10876 * ワールド座標からビュー座標に変換するための行列を取得する 10877 */ 10878 extern int GetTransformToViewMatrixD(.MATRIX_D* MatBuf); 10879 10880 /** 10881 * ビュー座標からプロジェクション座標に変換するための行列を設定する 10882 */ 10883 extern int SetTransformToProjection(const (.MATRIX)* Matrix); 10884 10885 /** 10886 * ビュー座標からプロジェクション座標に変換するための行列を設定する 10887 */ 10888 extern int SetTransformToProjectionD(const (.MATRIX_D)* Matrix); 10889 10890 /** 10891 * ビュー座標からプロジェクション座標に変換するための行列を取得する 10892 */ 10893 extern int GetTransformToProjectionMatrix(.MATRIX* MatBuf); 10894 10895 /** 10896 * ビュー座標からプロジェクション座標に変換するための行列を取得する 10897 */ 10898 extern int GetTransformToProjectionMatrixD(.MATRIX_D* MatBuf); 10899 10900 /** 10901 * ビューポート行列を設定する 10902 */ 10903 extern int SetTransformToViewport(const (.MATRIX)* Matrix); 10904 10905 /** 10906 * ビューポート行列を設定する 10907 */ 10908 extern int SetTransformToViewportD(const (.MATRIX_D)* Matrix); 10909 10910 /** 10911 * ビューポート行列を取得する 10912 */ 10913 extern int GetTransformToViewportMatrix(.MATRIX* MatBuf); 10914 10915 /** 10916 * ビューポート行列を取得する 10917 */ 10918 extern int GetTransformToViewportMatrixD(.MATRIX_D* MatBuf); 10919 10920 /** 10921 * Direct3Dで自動適用されるビューポート行列を取得する 10922 */ 10923 extern int GetTransformToAPIViewportMatrix(.MATRIX* MatBuf); 10924 10925 /** 10926 * Direct3Dで自動適用されるビューポート行列を取得する 10927 */ 10928 extern int GetTransformToAPIViewportMatrixD(.MATRIX_D* MatBuf); 10929 10930 /** 10931 * デフォルトの変換行列を設定する 10932 */ 10933 extern int SetDefTransformMatrix(); 10934 10935 /** 10936 * ローカル座標からスクリーン座標を取得する 10937 */ 10938 extern int GetTransformPosition(.VECTOR* LocalPos, float* x, float* y); 10939 10940 /** 10941 * ローカル座標からスクリーン座標を取得する 10942 */ 10943 extern int GetTransformPositionD(.VECTOR_D* LocalPos, double* x, double* y); 10944 10945 /** 10946 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する 10947 */ 10948 extern float GetBillboardPixelSize(.VECTOR WorldPos, float WorldSize); 10949 10950 /** 10951 * ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する 10952 */ 10953 extern double GetBillboardPixelSizeD(.VECTOR_D WorldPos, double WorldSize); 10954 10955 /** 10956 * ワールド座標をビュー座標に変換する 10957 */ 10958 extern .VECTOR ConvWorldPosToViewPos(.VECTOR WorldPos); 10959 10960 /** 10961 * ワールド座標をビュー座標に変換する 10962 */ 10963 extern .VECTOR_D ConvWorldPosToViewPosD(.VECTOR_D WorldPos); 10964 10965 /** 10966 * ワールド座標をスクリーン座標に変換する 10967 */ 10968 extern .VECTOR ConvWorldPosToScreenPos(.VECTOR WorldPos); 10969 10970 /** 10971 * ワールド座標をスクリーン座標に変換する 10972 */ 10973 extern .VECTOR_D ConvWorldPosToScreenPosD(.VECTOR_D WorldPos); 10974 10975 /** 10976 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る 10977 */ 10978 extern .FLOAT4 ConvWorldPosToScreenPosPlusW(.VECTOR WorldPos); 10979 10980 /** 10981 * ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る 10982 */ 10983 extern .DOUBLE4 ConvWorldPosToScreenPosPlusWD(.VECTOR_D WorldPos); 10984 10985 /** 10986 * スクリーン座標をワールド座標に変換する 10987 */ 10988 extern .VECTOR ConvScreenPosToWorldPos(.VECTOR ScreenPos); 10989 10990 /** 10991 * スクリーン座標をワールド座標に変換する 10992 */ 10993 extern .VECTOR_D ConvScreenPosToWorldPosD(.VECTOR_D ScreenPos); 10994 10995 /** 10996 * スクリーン座標をワールド座標に変換する(Z座標が線形) 10997 */ 10998 extern .VECTOR ConvScreenPosToWorldPos_ZLinear(.VECTOR ScreenPos); 10999 11000 /** 11001 * スクリーン座標をワールド座標に変換する(Z座標が線形) 11002 */ 11003 extern .VECTOR_D ConvScreenPosToWorldPos_ZLinearD(.VECTOR_D ScreenPos); 11004 11005 /** 11006 * SetUseBackCullingの旧名称 11007 */ 11008 extern int SetUseCullingFlag(int Flag); 11009 11010 /** 11011 * ポリゴンカリングモードを設定する 11012 */ 11013 extern int SetUseBackCulling(int Flag /* DX_CULLING_LEFT等 */); 11014 11015 /** 11016 * ポリゴンカリングモードを取得する 11017 */ 11018 extern int GetUseBackCulling(); 11019 11020 /** 11021 * テクスチャアドレスモードを設定する 11022 */ 11023 extern int SetTextureAddressMode(int Mode /* DX_TEXADDRESS_WRAP等 */, int Stage = -1); 11024 11025 /** 11026 * テクスチャアドレスモードを設定する(UとVを別々に設定する) 11027 */ 11028 extern int SetTextureAddressModeUV(int ModeU, int ModeV, int Stage = -1); 11029 11030 /** 11031 * テクスチャ座標変換パラメータを設定する 11032 */ 11033 extern int SetTextureAddressTransform(float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate); 11034 11035 /** 11036 * テクスチャ座標変換行列を設定する 11037 */ 11038 extern int SetTextureAddressTransformMatrix(.MATRIX Matrix); 11039 11040 /** 11041 * テクスチャ座標変換設定をリセットする 11042 */ 11043 extern int ResetTextureAddressTransform(); 11044 11045 /** 11046 * フォグを有効にするかどうかを設定する 11047 * 11048 * Params: 11049 * Flag = dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 11050 */ 11051 extern int SetFogEnable(int Flag); 11052 11053 /** 11054 * フォグが有効かどうかを取得する 11055 * 11056 * Returns: dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 11057 */ 11058 extern int GetFogEnable(); 11059 11060 /** 11061 * フォグモードを設定する 11062 */ 11063 extern int SetFogMode(int Mode /* DX_FOGMODE_NONE等 */); 11064 11065 /** 11066 * フォグモードを取得する 11067 */ 11068 extern int GetFogMode(); 11069 11070 /** 11071 * フォグカラーを設定する 11072 */ 11073 extern int SetFogColor(int r, int g, int b); 11074 11075 /** 11076 * フォグカラーを取得する 11077 */ 11078 extern int GetFogColor(int* r, int* g, int* b); 11079 11080 /** 11081 * フォグが始まる距離と終了する距離を設定する(0.0f~1.0f) 11082 */ 11083 extern int SetFogStartEnd(float start, float end); 11084 11085 /** 11086 * フォグが始まる距離と終了する距離を取得する(0.0f~1.0f) 11087 */ 11088 extern int GetFogStartEnd(float* start, float* end); 11089 11090 /** 11091 * フォグの密度を設定する(0.0f~1.0f) 11092 */ 11093 extern int SetFogDensity(float density); 11094 11095 /** 11096 * フォグの密度を取得する(0.0f~1.0f) 11097 */ 11098 extern float GetFogDensity(); 11099 11100 // 画面関係関数 11101 11102 /** 11103 * 指定座標の色を取得する 11104 */ 11105 extern uint GetPixel(int x, int y); 11106 11107 /** 11108 * 指定座標の色を取得する(float型) 11109 */ 11110 extern .COLOR_F GetPixelF(int x, int y); 11111 11112 /** 11113 * メインウインドウの背景色を設定する 11114 * 11115 * Params: 11116 * Red= 0~255 11117 * Green = 0~255 11118 * Blue = 0~255 11119 * Alpha = 0~255 11120 */ 11121 extern int SetBackgroundColor(int Red, int Green, int Blue, int Alpha = 0); 11122 11123 /** 11124 * メインウインドウの背景色を取得する 11125 * 11126 * Params: 11127 * Red= 0~255 11128 * Green = 0~255 11129 * Blue = 0~255 11130 * Alpha = 0~255 11131 */ 11132 extern int GetBackgroundColor(int* Red, int* Green, int* Blue, int* Alpha = null); 11133 11134 /** 11135 * 描画先の画面から指定領域の画像情報をグラフィックハンドルに転送する 11136 */ 11137 extern int GetDrawScreenGraph(int x1, int y1, int x2, int y2, int GrHandle, int UseClientFlag = dxlib_d.DxDataType.TRUE); 11138 11139 /** 11140 * SetDrawScreenで描画対象にできるグラフィックハンドルから指定領域の画像情報を別のグラフィックハンドルに転送する 11141 */ 11142 extern int BltDrawValidGraph(int TargetDrawValidGrHandle, int x1, int y1, int x2, int y2, int DestX, int DestY, int DestGrHandle); 11143 11144 /** 11145 * 裏画面と表画面の内容を交換する 11146 */ 11147 extern int ScreenFlip(); 11148 11149 /** 11150 * 裏画面の内容を表画面に転送する 11151 */ 11152 extern int ScreenCopy(); 11153 11154 /** 11155 * 垂直同期信号を待つ 11156 */ 11157 extern int WaitVSync(int SyncNum); 11158 11159 /** 11160 * 画面をクリアする 11161 */ 11162 extern int ClearDrawScreen(const (dxlib_d.DxDataType.RECT)* ClearRect = null); 11163 11164 /** 11165 * 画面のZバッファをクリアする 11166 */ 11167 extern int ClearDrawScreenZBuffer(const (dxlib_d.DxDataType.RECT)* ClearRect = null); 11168 11169 /** 11170 * ClearDrawScreenの旧名称 11171 */ 11172 extern int ClsDrawScreen(); 11173 11174 /** 11175 * 描画先画面を設定する(MakeScreenで作成したグラフィックハンドルも渡すことができます) 11176 */ 11177 extern int SetDrawScreen(int DrawScreen); 11178 11179 /** 11180 * 描画先画面を取得する 11181 */ 11182 extern int GetDrawScreen(); 11183 11184 /** 11185 * GetDrawScreenの旧名称 11186 */ 11187 extern int GetActiveGraph(); 11188 11189 /** 11190 * SetDrawScreenを実行した際にカメラや描画範囲の設定をリセットするかを設定する 11191 * 11192 * Params: 11193 * UseFlag = dxlib_d.DxDataType.TRUE:リセットする(デフォルト) dxlib_d.DxDataType.FALSE:リセットしない 11194 */ 11195 extern int SetUseSetDrawScreenSettingReset(int UseFlag); 11196 11197 /** 11198 * SetDrawScreenを実行した際にカメラや描画範囲の設定をリセットするかを取得する 11199 */ 11200 extern int GetUseSetDrawScreenSettingReset(); 11201 11202 /** 11203 * 描画先Zバッファのセット(DrawScreen 付属のZバッファを描画先Zバッファにする、DrawScreenを-1にするとデフォルトの描画先Zバッファに戻る) 11204 */ 11205 extern int SetDrawZBuffer(int DrawScreen); 11206 11207 /** 11208 * 画面モードを設定する 11209 */ 11210 extern int SetGraphMode(int ScreenSizeX, int ScreenSizeY, int ColorBitDepth, int RefreshRate = 60); 11211 11212 /** 11213 * 画面のメモリイメージをセットする(DxLib_Initの前で呼ぶ必要がある(DxLib_Initの前に一度でも呼んでいれば、DxLib_Init後はImageのアドレスのみの変更目的で呼ぶことは可能)、PixelFormatにDX_USER_SCREEN_PIXEL_FORMAT_R5G6B5又はDX_USER_SCREEN_PIXEL_FORMAT_X8R8G8B8の二つ以外を指定した場合はDXライブラリの描画関数は一切使用できなくなります) 11214 */ 11215 extern int SetUserScreenImage(void* Image, int PixelFormat /* DX_USER_SCREEN_PIXEL_FORMAT_R5G6B5等 */); 11216 11217 /** 11218 * フルスクリーン解像度モードを設定する 11219 */ 11220 extern int SetFullScreenResolutionMode(int ResolutionMode /* DX_FSRESOLUTIONMODE_NATIVE等 */); 11221 11222 /** 11223 * フルスクリーン解像度モードを取得する(UseResolutionModeは実際に使用されている解像度モード(例えば DX_FSRESOLUTIONMODE_NATIVEを指定していてもモニタが指定の解像度に対応していない場合はUseResolutionModeがDX_FSRESOLUTIONMODE_DESKTOPやDX_FSRESOLUTIONMODE_MAXIMUMになります)) 11224 */ 11225 extern int GetFullScreenResolutionMode(int* ResolutionMode, int* UseResolutionMode); 11226 11227 /** 11228 * フルスクリーンモード時の画面拡大モードを設定する 11229 */ 11230 extern int SetFullScreenScalingMode(int ScalingMode /* DX_FSSCALINGMODE_NEAREST等 */, int FitScaling = dxlib_d.DxDataType.FALSE); 11231 11232 /** 11233 * 640x480の画面で320x240の画面解像度にするかどうかを設定する、640x480以外の解像度では無効 11234 * 11235 * Params: 11236 * Flag = dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 11237 */ 11238 extern int SetEmulation320x240(int Flag); 11239 11240 /** 11241 * 画面用のZバッファのサイズを設定する 11242 */ 11243 extern int SetZBufferSize(int ZBufferSizeX, int ZBufferSizeY); 11244 11245 /** 11246 * 画面用のZバッファのビット深度を設定する(16 or 24 or 32) 11247 */ 11248 extern int SetZBufferBitDepth(int BitDepth); 11249 11250 /** 11251 * ScreenFlip 実行時にVSYNC待ちをするかどうかを設定する 11252 */ 11253 extern int SetWaitVSyncFlag(int Flag); 11254 11255 /** 11256 * ScreenFlip 実行時にVSYNC待ちをするかどうかを取得する 11257 */ 11258 extern int GetWaitVSyncFlag(); 11259 11260 /** 11261 * 画面のフルスクリーンアンチエイリアスモードの設定を行う(DxLib_Initの前でのみ使用可能) 11262 */ 11263 extern int SetFullSceneAntiAliasingMode(int Samples, int Quality); 11264 11265 /** 11266 * ScreenFlip 時に表画面全体に転送する裏画面の領域を設定する(DxLib_Initの前でのみ使用可能) 11267 */ 11268 extern int SetGraphDisplayArea(int x1, int y1, int x2, int y2); 11269 11270 /** 11271 * 画面モード変更時(とウインドウモード変更時)にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する 11272 * 11273 * Params: 11274 * Flag = dxlib_d.DxDataType.TRUE:リセットする(デフォルト) dxlib_d.DxDataType.FALSE:リセットしない 11275 */ 11276 extern int SetChangeScreenModeGraphicsSystemResetFlag(int Flag); 11277 11278 /** 11279 * 現在の画面の解像度とカラービット数を得る 11280 */ 11281 extern int GetScreenState(int* SizeX, int* SizeY, int* ColorBitDepth); 11282 11283 /** 11284 * 描画先のサイズを取得する 11285 */ 11286 extern int GetDrawScreenSize(int* XBuf, int* YBuf); 11287 11288 /** 11289 * 画面のカラービット数を取得する 11290 */ 11291 extern int GetScreenBitDepth(); 11292 11293 /** 11294 * GetScreenBitDepthの旧名称 11295 */ 11296 extern int GetColorBitDepth(); 11297 11298 /** 11299 * 画面モードが変更されているかどうかを取得する 11300 */ 11301 extern int GetChangeDisplayFlag(); 11302 11303 /** 11304 * (現在正常に動作しません)ビデオメモリの容量を得る 11305 */ 11306 extern int GetVideoMemorySize(int* AllSize, int* FreeSize); 11307 11308 /** 11309 * 現在の画面のリフレッシュレートを取得する 11310 */ 11311 extern int GetRefreshRate(); 11312 11313 /** 11314 * ディスプレイの数を取得 11315 */ 11316 extern int GetDisplayNum(); 11317 11318 /** 11319 * ディスプレイのデスクトップ上での矩形位置を取得する 11320 */ 11321 extern int GetDisplayInfo(int DisplayIndex, int* DesktopRectX, int* DesktopRectY, int* DesktopSizeX, int* DesktopSizeY, int* IsPrimary); 11322 11323 /** 11324 * 変更可能なディスプレイモードの数を取得する 11325 */ 11326 extern int GetDisplayModeNum(int DisplayIndex = 0); 11327 11328 /** 11329 * 変更可能なディスプレイモードの情報を取得する(ModeIndexは0~GetDisplayModeNumの戻り値-1) 11330 */ 11331 extern .DISPLAYMODEDATA GetDisplayMode(int ModeIndex, int DisplayIndex = 0); 11332 11333 /** 11334 * ディスプレイの最大解像度を取得する 11335 */ 11336 extern int GetDisplayMaxResolution(int* SizeX, int* SizeY, int DisplayIndex = 0); 11337 11338 /** 11339 * ディスプレイのカラーデータアドレスを取得する 11340 */ 11341 extern const (.COLORDATA)* GetDispColorData(); 11342 11343 /** 11344 * 同時に描画を行うことができる画面の数を取得する 11345 */ 11346 extern int GetMultiDrawScreenNum(); 11347 11348 /** 11349 * DrawGraphF等の浮動小数点値で座標を指定する関数における座標タイプを取得する 11350 * 11351 * Returns: DX_DRAWFLOATCOORDTYPE_DIRECT3D9など 11352 */ 11353 extern int GetDrawFloatCoordType(); 11354 11355 // その他設定関係関数 11356 11357 /** 11358 * 通常描画にプログラマブルシェーダーを使用するかどうかを設定する 11359 * 11360 * Params: 11361 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 11362 */ 11363 extern int SetUseNormalDrawShader(int Flag); 11364 11365 /** 11366 * ソフトウエアレンダリングモードを使用するかどうかを設定する(DxLib_Initの前に呼ぶ必要があります) 11367 * 11368 * Params: 11369 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 11370 */ 11371 extern int SetUseSoftwareRenderModeFlag(int Flag); 11372 11373 /** 11374 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)3D機能を使わないかどうかを設定する 11375 */ 11376 extern int SetNotUse3DFlag(int Flag); 11377 11378 /** 11379 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)3D機能を使うかどうかを設定する 11380 */ 11381 extern int SetUse3DFlag(int Flag); 11382 11383 /** 11384 * 描画に3D機能を使うかどうかを取得する 11385 */ 11386 extern int GetUse3DFlag(); 11387 11388 /** 11389 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)画面のピクセルデータをVRAMに置くかどうかを設定する 11390 */ 11391 extern int SetScreenMemToVramFlag(int Flag); 11392 11393 /** 11394 * 画面のピクセルデータがシステムメモリ上に存在するかを取得する 11395 */ 11396 extern int GetScreenMemToSystemMemFlag(); 11397 11398 /** 11399 * 通常使用しない 11400 */ 11401 extern int SetWindowDrawRect(const (dxlib_d.DxDataType.RECT)* DrawRect); 11402 11403 /** 11404 * DXライブラリのグラフィックス処理関連の復帰処理を行う 11405 */ 11406 extern int RestoreGraphSystem(); 11407 11408 /** 11409 * ハードウエアの頂点演算処理機能を使用するかどうかを設定する(DxLib_Initの前に呼ぶ必要があります) 11410 * 11411 * Params: 11412 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 11413 */ 11414 extern int SetUseHardwareVertexProcessing(int Flag); 11415 11416 /** 11417 * ピクセル単位でライティングを行うかどうかを設定する、要 ShaderModel 3.0 11418 * 11419 * Params: 11420 * Flag = dxlib_d.DxDataType.TRUE:ピクセル単位のライティングを行う dxlib_d.DxDataType.FALSE:頂点単位のライティングを行う(デフォルト) 11421 */ 11422 extern int SetUsePixelLighting(int Flag); 11423 11424 /** 11425 * 古いバージョンのDrawModiGraph関数のコードを使用するかどうかを設定する 11426 */ 11427 extern int SetUseOldDrawModiGraphCodeFlag(int Flag); 11428 11429 /** 11430 * (現在効果なし)VRAMを使用するかのフラグをセットする 11431 */ 11432 extern int SetUseVramFlag(int Flag); 11433 11434 /** 11435 * (現在効果なし)2Dグラフィックサーフェス作成時にシステムメモリーを使用するかのフラグ取得 11436 */ 11437 extern int GetUseVramFlag(); 11438 11439 /** 11440 * (現在効果なし)簡略化ブレンド処理を行うか否かのフラグをセットする 11441 */ 11442 extern int SetBasicBlendFlag(int Flag); 11443 11444 /** 11445 * (現在効果なし)単純図形の描画に3Dデバイスの機能を使用するかどうかを設定する 11446 */ 11447 extern int SetUseBasicGraphDraw3DDeviceMethodFlag(int Flag); 11448 11449 /** 11450 * DXライブラリのウインドウを表示するディスプレイデバイスを設定する(-1を指定するとマウスカーソルがあるディスプレイデバイスにDXライブラリのウインドウを表示する) 11451 */ 11452 extern int SetUseDisplayIndex(int Index); 11453 11454 /** 11455 * 頂点バッファに溜まった頂点データを描画する(特殊用途) 11456 */ 11457 extern int RenderVertex(); 11458 11459 // 描画パフォーマンス関係関数 11460 11461 /** 11462 * 前々回のScreenFlip 呼び出しから、前回のScreenFlip 呼び出しまでの間に行われた描画コールの回数を取得する 11463 */ 11464 extern int GetDrawCallCount(); 11465 11466 /** 11467 * フレームレート(1秒間に呼ばれるScreenFlipの回数)を取得する 11468 */ 11469 extern float GetFPS(); 11470 11471 version (DX_NON_SAVEFUNCTION) { 11472 } else { 11473 // 描画先画面保存関数 11474 // Jpeg_Quality = 0:低画質~100:高画質 11475 // Png_CompressionLevel = 0:無圧縮~9:最高圧縮 11476 11477 /** 11478 * 現在描画対象になっている画面をファイルで保存する 11479 */ 11480 extern int SaveDrawScreen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1); 11481 11482 /** 11483 * 現在描画対象になっている画面をファイルで保存する 11484 */ 11485 extern int SaveDrawScreenWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1); 11486 11487 /** 11488 * 現在描画対象になっている画面をBMP形式で保存する 11489 */ 11490 extern int SaveDrawScreenToBMP(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName); 11491 11492 /** 11493 * 現在描画対象になっている画面をBMP形式で保存する 11494 */ 11495 extern int SaveDrawScreenToBMPWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11496 11497 /** 11498 * 現在描画対象になっている画面をDDS形式で保存する 11499 */ 11500 extern int SaveDrawScreenToDDS(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName); 11501 11502 /** 11503 * 現在描画対象になっている画面をDDS形式で保存する 11504 */ 11505 extern int SaveDrawScreenToDDSWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11506 11507 /** 11508 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 11509 */ 11510 extern int SaveDrawScreenToJPEG(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE); 11511 11512 /** 11513 * 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 11514 */ 11515 extern int SaveDrawScreenToJPEGWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE); 11516 11517 /** 11518 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 11519 */ 11520 extern int SaveDrawScreenToPNG(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int CompressionLevel = -1); 11521 11522 /** 11523 * 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 11524 */ 11525 extern int SaveDrawScreenToPNGWithStrLen(int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CompressionLevel = -1); 11526 11527 // 描画対象にできるグラフィックハンドル保存関数 11528 // Jpeg_Quality = 0:低画質~100:高画質 11529 // Png_CompressionLevel = 0:無圧縮~9:最高圧縮 11530 11531 /** 11532 * 描画対象にできるグラフィックハンドルをファイルで保存する 11533 */ 11534 extern int SaveDrawValidGraph(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1); 11535 11536 /** 11537 * 描画対象にできるグラフィックハンドルをファイルで保存する 11538 */ 11539 extern int SaveDrawValidGraphWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = DX_IMAGESAVETYPE_BMP, int Jpeg_Quality = 80, int Jpeg_Sample2x1 = dxlib_d.DxDataType.TRUE, int Png_CompressionLevel = -1); 11540 11541 /** 11542 * 描画対象にできるグラフィックハンドルをBMP形式で保存する 11543 */ 11544 extern int SaveDrawValidGraphToBMP(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName); 11545 11546 /** 11547 * 描画対象にできるグラフィックハンドルをBMP形式で保存する 11548 */ 11549 extern int SaveDrawValidGraphToBMPWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11550 11551 /** 11552 * 描画対象にできるグラフィックハンドルをDDS形式で保存する 11553 */ 11554 extern int SaveDrawValidGraphToDDS(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName); 11555 11556 /** 11557 * 描画対象にできるグラフィックハンドルをDDS形式で保存する 11558 */ 11559 extern int SaveDrawValidGraphToDDSWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11560 11561 /** 11562 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 11563 */ 11564 extern int SaveDrawValidGraphToJPEG(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE); 11565 11566 /** 11567 * 描画対象にできるグラフィックハンドルをJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 11568 */ 11569 extern int SaveDrawValidGraphToJPEGWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int Quality = 80, int Sample2x1 = dxlib_d.DxDataType.TRUE); 11570 11571 /** 11572 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 11573 */ 11574 extern int SaveDrawValidGraphToPNG(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, int CompressionLevel = -1); 11575 11576 /** 11577 * 描画対象にできるグラフィックハンドルをPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 11578 */ 11579 extern int SaveDrawValidGraphToPNGWithStrLen(int GrHandle, int x1, int y1, int x2, int y2, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CompressionLevel = -1); 11580 } 11581 11582 // 頂点バッファ関係関数 11583 11584 /** 11585 * 頂点バッファを作成する 11586 * 11587 * Returns: -1:エラー 0以上:頂点バッファハンドル 11588 */ 11589 extern int CreateVertexBuffer(int VertexNum, int VertexType /* DX_VERTEX_TYPE_NORMAL_3D等 */); 11590 11591 /** 11592 * 頂点バッファを削除する 11593 */ 11594 extern int DeleteVertexBuffer(int VertexBufHandle); 11595 11596 /** 11597 * すべての頂点バッファを削除する 11598 */ 11599 extern int InitVertexBuffer(); 11600 11601 /** 11602 * 頂点バッファに頂点データを転送する 11603 */ 11604 extern int SetVertexBufferData(int SetIndex, const (void)* VertexArray, int VertexNum, int VertexBufHandle); 11605 11606 /** 11607 * 頂点バッファハンドルの頂点バッファのアドレスを取得する 11608 */ 11609 extern void* GetBufferVertexBuffer(int VertexBufHandle); 11610 11611 /** 11612 * 頂点バッファハンドルの頂点バッファへの変更を適用する(GetBufferVertexBufferで取得したバッファへの変更を反映する) 11613 */ 11614 extern int UpdateVertexBuffer(int VertexBufHandle, int UpdateStartIndex, int UpdateVertexNum); 11615 11616 /** 11617 * インデックスバッファを作成する 11618 * 11619 * Returns: -1:エラー 0以上:インデックスバッファハンドル 11620 */ 11621 extern int CreateIndexBuffer(int IndexNum, int IndexType /* DX_INDEX_TYPE_16BIT等 */); 11622 11623 /** 11624 * インデックスバッファを削除する 11625 */ 11626 extern int DeleteIndexBuffer(int IndexBufHandle); 11627 11628 /** 11629 * すべてのインデックスバッファを削除する 11630 */ 11631 extern int InitIndexBuffer(); 11632 11633 /** 11634 * インデックスバッファにインデックスデータを転送する 11635 */ 11636 extern int SetIndexBufferData(int SetIndex, const (void)* IndexArray, int IndexNum, int IndexBufHandle); 11637 11638 /** 11639 * インデックスバッファハンドルのインデックスバッファのアドレスを取得する 11640 */ 11641 extern void* GetBufferIndexBuffer(int IndexBufHandle); 11642 11643 /** 11644 * インデックスバッファハンドルのインデックスバッファへの変更を適用する(GetBufferIndexBufferで取得したバッファへの変更を反映する) 11645 */ 11646 extern int UpdateIndexBuffer(int IndexBufHandle, int UpdateStartIndex, int UpdateIndexNum); 11647 11648 /** 11649 * グラフィックスデバイスが対応している一度に描画できるプリミティブの最大数を取得する 11650 */ 11651 extern int GetMaxPrimitiveCount(); 11652 11653 /** 11654 * グラフィックスデバイスが対応している一度に使用することのできる最大頂点数を取得する 11655 */ 11656 extern int GetMaxVertexIndex(); 11657 11658 // シェーダー関係関数 11659 11660 /** 11661 * 使用できるシェーダーのバージョンを取得する(0:使えない 200:シェーダーモデル2.0が使用可能 300:シェーダーモデル3.0が使用可能) 11662 */ 11663 extern int GetValidShaderVersion(); 11664 11665 /** 11666 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する 11667 * 11668 * Returns: -1:エラー -1以外:シェーダーハンドル 11669 */ 11670 extern int LoadVertexShader(const (dxlib_d.DxDataType.TCHAR)* FileName); 11671 11672 /** 11673 * 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する 11674 * 11675 * Returns: -1:エラー -1以外:シェーダーハンドル 11676 */ 11677 extern int LoadVertexShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11678 11679 /** 11680 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する 11681 * 11682 * Returns: -1:エラー -1以外:シェーダーハンドル 11683 */ 11684 extern int LoadGeometryShader(const (dxlib_d.DxDataType.TCHAR)* FileName); 11685 11686 /** 11687 * ジオメトリシェーダーバイナリをファイルから読み込みジオメトリシェーダーハンドルを作成する 11688 * 11689 * Returns: -1:エラー -1以外:シェーダーハンドル 11690 */ 11691 extern int LoadGeometryShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11692 11693 /** 11694 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する 11695 * 11696 * Returns: -1:エラー -1以外:シェーダーハンドル 11697 */ 11698 extern int LoadPixelShader(const (dxlib_d.DxDataType.TCHAR)* FileName); 11699 11700 /** 11701 * ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する 11702 * 11703 * Returns: -1:エラー -1以外:シェーダーハンドル 11704 */ 11705 extern int LoadPixelShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 11706 11707 /** 11708 * メモリに読み込まれた頂点シェーダーバイナリから頂点シェーダーハンドルを作成する 11709 * 11710 * Returns: -1:エラー -1以外:シェーダーハンドル 11711 */ 11712 extern int LoadVertexShaderFromMem(const (void)* ImageAddress, int ImageSize); 11713 11714 /** 11715 * メモリに読み込まれたジオメトリシェーダーバイナリからジオメトリシェーダーハンドルを作成する 11716 * 11717 * Returns: -1:エラー -1以外:シェーダーハンドル 11718 */ 11719 extern int LoadGeometryShaderFromMem(const (void)* ImageAddress, int ImageSize); 11720 11721 /** 11722 * メモリに読み込まれたピクセルシェーダーバイナリからピクセルシェーダーハンドルを作成する 11723 * 11724 * Returns: -1:エラー -1以外:シェーダーハンドル 11725 */ 11726 extern int LoadPixelShaderFromMem(const (void)* ImageAddress, int ImageSize); 11727 11728 /** 11729 * シェーダーハンドルの削除(頂点シェーダー・ピクセルシェーダー共通) 11730 */ 11731 extern int DeleteShader(int ShaderHandle); 11732 11733 /** 11734 * シェーダーハンドルを全て削除する(頂点シェーダーハンドル・ピクセルシェーダーハンドルどちらもすべて削除) 11735 */ 11736 extern int InitShader(); 11737 11738 /** 11739 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する 11740 */ 11741 extern int GetConstIndexToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle); 11742 11743 /** 11744 * 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する 11745 */ 11746 extern int GetConstIndexToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11747 11748 /** 11749 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する 11750 */ 11751 extern int GetConstCountToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle); 11752 11753 /** 11754 * 指定の名前を持つ定数が使用するシェーダー定数の数を取得する 11755 */ 11756 extern int GetConstCountToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11757 11758 /** 11759 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する 11760 */ 11761 extern const (.FLOAT4)* GetConstDefaultParamFToShader(const (dxlib_d.DxDataType.TCHAR)* ConstantName, int ShaderHandle); 11762 11763 /** 11764 * 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する 11765 */ 11766 extern const (.FLOAT4)* GetConstDefaultParamFToShaderWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ConstantName, size_t ConstantNameLength, int ShaderHandle); 11767 11768 /** 11769 * 頂点シェーダーのfloat型定数を設定する 11770 */ 11771 extern int SetVSConstSF(int ConstantIndex, float Param); 11772 11773 /** 11774 * 頂点シェーダーのfloat型定数を設定する 11775 */ 11776 extern int SetVSConstF(int ConstantIndex, .FLOAT4 Param); 11777 11778 /** 11779 * 頂点シェーダーのfloat型定数に行列を設定する 11780 */ 11781 extern int SetVSConstFMtx(int ConstantIndex, .MATRIX Param); 11782 11783 /** 11784 * 頂点シェーダーのfloat型定数に転置した行列を設定する 11785 */ 11786 extern int SetVSConstFMtxT(int ConstantIndex, .MATRIX Param); 11787 11788 /** 11789 * 頂点シェーダーのint型定数を設定する 11790 */ 11791 extern int SetVSConstSI(int ConstantIndex, int Param); 11792 11793 /** 11794 * 頂点シェーダーのint型定数を設定する 11795 */ 11796 extern int SetVSConstI(int ConstantIndex, .INT4 Param); 11797 11798 /** 11799 * 頂点シェーダーのBOOL型定数を設定する 11800 */ 11801 extern int SetVSConstB(int ConstantIndex, dxlib_d.DxDataType.BOOL Param); 11802 11803 /** 11804 * 頂点シェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定) 11805 */ 11806 extern int SetVSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum); 11807 11808 /** 11809 * 頂点シェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定) 11810 */ 11811 extern int SetVSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum); 11812 11813 /** 11814 * 頂点シェーダーのfloat型定数に行列を設定する(配列を使って連番インデックスに一度に設定) 11815 */ 11816 extern int SetVSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11817 11818 /** 11819 * 頂点シェーダーのfloat型定数に転置した行列を設定する(配列を使って連番インデックスに一度に設定) 11820 */ 11821 extern int SetVSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11822 11823 /** 11824 * 頂点シェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定) 11825 */ 11826 extern int SetVSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum); 11827 11828 /** 11829 * 頂点シェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定) 11830 */ 11831 extern int SetVSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum); 11832 11833 /** 11834 * 頂点シェーダーのBOOL型定数を設定する(配列を使って連番インデックスに一度に設定) 11835 */ 11836 extern int SetVSConstBArray(int ConstantIndex, const (dxlib_d.DxDataType.BOOL)* ParamArray, int ParamNum); 11837 11838 /** 11839 * 頂点シェーダーのfloat型定数の設定をリセットする 11840 */ 11841 extern int ResetVSConstF(int ConstantIndex, int ParamNum); 11842 11843 /** 11844 * 頂点シェーダーのint型定数の設定をリセットする 11845 */ 11846 extern int ResetVSConstI(int ConstantIndex, int ParamNum); 11847 11848 /** 11849 * 頂点シェーダーのBOOL型定数の設定をリセットする 11850 */ 11851 extern int ResetVSConstB(int ConstantIndex, int ParamNum); 11852 11853 /** 11854 * ピクセルシェーダーのfloat型定数を設定する 11855 */ 11856 extern int SetPSConstSF(int ConstantIndex, float Param); 11857 11858 /** 11859 * ピクセルシェーダーのfloat型定数を設定する 11860 */ 11861 extern int SetPSConstF(int ConstantIndex, .FLOAT4 Param); 11862 11863 /** 11864 * ピクセルシェーダーのfloat型定数に行列を設定する 11865 */ 11866 extern int SetPSConstFMtx(int ConstantIndex, .MATRIX Param); 11867 11868 /** 11869 * ピクセルシェーダーのfloat型定数に転置した行列を設定する 11870 */ 11871 extern int SetPSConstFMtxT(int ConstantIndex, .MATRIX Param); 11872 11873 /** 11874 * ピクセルシェーダーのint型定数を設定する 11875 */ 11876 extern int SetPSConstSI(int ConstantIndex, int Param); 11877 11878 /** 11879 * ピクセルシェーダーのint型定数を設定する 11880 */ 11881 extern int SetPSConstI(int ConstantIndex, .INT4 Param); 11882 11883 /** 11884 * ピクセルシェーダーのBOOL型定数を設定する 11885 */ 11886 extern int SetPSConstB(int ConstantIndex, dxlib_d.DxDataType.BOOL Param); 11887 11888 /** 11889 * ピクセルシェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定) 11890 */ 11891 extern int SetPSConstSFArray(int ConstantIndex, const (float)* ParamArray, int ParamNum); 11892 11893 /** 11894 * ピクセルシェーダーのfloat型定数を設定する(配列を使って連番インデックスに一度に設定) 11895 */ 11896 extern int SetPSConstFArray(int ConstantIndex, const (.FLOAT4)* ParamArray, int ParamNum); 11897 11898 /** 11899 * ピクセルシェーダーのfloat型定数に行列を設定する(配列を使って連番インデックスに一度に設定) 11900 */ 11901 extern int SetPSConstFMtxArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11902 11903 /** 11904 * ピクセルシェーダーのfloat型定数に転置した行列を設定する(配列を使って連番インデックスに一度に設定) 11905 */ 11906 extern int SetPSConstFMtxTArray(int ConstantIndex, const (.MATRIX)* ParamArray, int ParamNum); 11907 11908 /** 11909 * ピクセルシェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定) 11910 */ 11911 extern int SetPSConstSIArray(int ConstantIndex, const (int)* ParamArray, int ParamNum); 11912 11913 /** 11914 * ピクセルシェーダーのint型定数を設定する(配列を使って連番インデックスに一度に設定) 11915 */ 11916 extern int SetPSConstIArray(int ConstantIndex, const (.INT4)* ParamArray, int ParamNum); 11917 11918 /** 11919 * ピクセルシェーダーのBOOL型定数を設定する(配列を使って連番インデックスに一度に設定) 11920 */ 11921 extern int SetPSConstBArray(int ConstantIndex, const (dxlib_d.DxDataType.BOOL)* ParamArray, int ParamNum); 11922 11923 /** 11924 * ピクセルシェーダーのfloat型定数の設定をリセットする 11925 */ 11926 extern int ResetPSConstF(int ConstantIndex, int ParamNum); 11927 11928 /** 11929 * ピクセルシェーダーのint型定数の設定をリセットする 11930 */ 11931 extern int ResetPSConstI(int ConstantIndex, int ParamNum); 11932 11933 /** 11934 * ピクセルシェーダーのBOOL型定数の設定をリセットする 11935 */ 11936 extern int ResetPSConstB(int ConstantIndex, int ParamNum); 11937 11938 /** 11939 * シェーダーを使用した描画での描画先を設定する(DrawScreenに-1を渡すと無効化) 11940 */ 11941 extern int SetRenderTargetToShader(int TargetIndex, int DrawScreen, int SurfaceIndex = 0, int MipLevel = 0); 11942 11943 /** 11944 * シェーダーを使用した描画で使用するグラフィックハンドルを設定する 11945 */ 11946 extern int SetUseTextureToShader(int StageIndex, int GraphHandle); 11947 11948 /** 11949 * シェーダーを使用した描画に使用する頂点シェーダーを設定する(-1を渡すと解除) 11950 */ 11951 extern int SetUseVertexShader(int ShaderHandle); 11952 11953 /** 11954 * シェーダーを使用した描画に使用するジオメトリシェーダーを設定する(-1を渡すと解除) 11955 */ 11956 extern int SetUseGeometryShader(int ShaderHandle); 11957 11958 /** 11959 * シェーダーを使用した描画に使用するピクセルシェーダーを設定する(-1を渡すと解除) 11960 */ 11961 extern int SetUsePixelShader(int ShaderHandle); 11962 11963 /** 11964 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする 11965 */ 11966 extern int CalcPolygonBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int PolygonNum); 11967 11968 /** 11969 * ポリゴンの頂点の接線と従法線をUV座標から計算してセットする(頂点インデックスを使用する) 11970 */ 11971 extern int CalcPolygonIndexedBinormalAndTangentsToShader(.VERTEX3DSHADER* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 11972 11973 /** 11974 * シェーダーを使ってビルボードを描画する 11975 */ 11976 extern int DrawBillboard3DToShader(.VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag, int ReverseXFlag = dxlib_d.DxDataType.FALSE, int ReverseYFlag = dxlib_d.DxDataType.FALSE); 11977 11978 /** 11979 * シェーダーを使って2Dポリゴンを描画する 11980 */ 11981 extern int DrawPolygon2DToShader(const (.VERTEX2DSHADER)* VertexArray, int PolygonNum); 11982 11983 /** 11984 * シェーダーを使って3Dポリゴンを描画する 11985 */ 11986 extern int DrawPolygon3DToShader(const (.VERTEX3DSHADER)* VertexArray, int PolygonNum); 11987 11988 /** 11989 * シェーダーを使って2Dポリゴンを描画する(頂点インデックスを使用する) 11990 */ 11991 extern int DrawPolygonIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 11992 11993 /** 11994 * シェーダーを使って3Dポリゴンを描画する(頂点インデックスを使用する) 11995 */ 11996 extern int DrawPolygonIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int PolygonNum); 11997 11998 /** 11999 * シェーダーを使って2Dプリミティブを描画する 12000 */ 12001 extern int DrawPrimitive2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12002 12003 /** 12004 * シェーダーを使って3Dプリミティブを描画する 12005 */ 12006 extern int DrawPrimitive3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12007 12008 /** 12009 * シェーダーを使って2Dプリミティブを描画する(頂点インデックスを使用する) 12010 */ 12011 extern int DrawPrimitiveIndexed2DToShader(const (.VERTEX2DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12012 12013 /** 12014 * シェーダーを使って3Dプリミティブを描画する(頂点インデックスを使用する) 12015 */ 12016 extern int DrawPrimitiveIndexed3DToShader(const (.VERTEX3DSHADER)* VertexArray, int VertexNum, const (ushort)* IndexArray, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12017 12018 /** 12019 * シェーダーを使って3Dポリゴンを描画する(頂点バッファ使用版) 12020 */ 12021 extern int DrawPolygon3DToShader_UseVertexBuffer(int VertexBufHandle); 12022 12023 /** 12024 * シェーダーを使って3Dポリゴンを描画する(頂点バッファとインデックスバッファ使用版) 12025 */ 12026 extern int DrawPolygonIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle); 12027 12028 /** 12029 * シェーダーを使って3Dプリミティブを描画する(頂点バッファ使用版) 12030 */ 12031 extern int DrawPrimitive3DToShader_UseVertexBuffer(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12032 12033 /** 12034 * シェーダーを使って3Dプリミティブを描画する(頂点バッファ使用版) 12035 */ 12036 extern int DrawPrimitive3DToShader_UseVertexBuffer2(int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int StartVertex, int UseVertexNum); 12037 12038 /** 12039 * シェーダーを使って3Dプリミティブを描画する(頂点バッファとインデックスバッファ使用版) 12040 */ 12041 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */); 12042 12043 /** 12044 * シェーダーを使って3Dプリミティブを描画する(頂点バッファとインデックスバッファ使用版) 12045 */ 12046 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer2(int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum); 12047 12048 // シェーダー用定数バッファ関係関数 12049 12050 /** 12051 * 全てのシェーダー用定数バッファハンドルを削除する 12052 */ 12053 extern int InitShaderConstantBuffer(); 12054 12055 /** 12056 * シェーダー用定数バッファハンドルを初期化する 12057 */ 12058 extern int CreateShaderConstantBuffer(int BufferSize); 12059 12060 /** 12061 * シェーダー用定数バッファハンドルを削除する 12062 */ 12063 extern int DeleteShaderConstantBuffer(int SConstBufHandle); 12064 12065 /** 12066 * シェーダー用定数バッファハンドルの定数バッファのアドレスを取得する 12067 */ 12068 extern void* GetBufferShaderConstantBuffer(int SConstBufHandle); 12069 12070 /** 12071 * シェーダー用定数バッファハンドルの定数バッファへの変更を適用する 12072 */ 12073 extern int UpdateShaderConstantBuffer(int SConstBufHandle); 12074 12075 /** 12076 * シェーダー用定数バッファハンドルの定数バッファを指定のシェーダーの指定のスロットにセットする 12077 */ 12078 extern int SetShaderConstantBuffer(int SConstBufHandle, int TargetShader /* DX_SHADERTYPE_VERTEXなど */, int Slot); 12079 12080 // フィルター関係関数 12081 version (DX_NON_FILTER) { 12082 } else { 12083 /** 12084 * GraphFilterBltやGraphBlendBltの結果を転送先に転送する際のブレンドモードを設定する(現状で対応しているのはDX_BLENDMODE_NOBLENDとDX_BLENDMODE_ALPHAのみ) 12085 */ 12086 extern int SetGraphFilterBltBlendMode(int BlendMode /* DX_BLENDMODE_ALPHAなど */); 12087 12088 /** 12089 * 画像にフィルター処理を行う 12090 */ 12091 extern int GraphFilter(int GrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...); 12092 12093 /** 12094 * 画像のフィルター付き転送を行う 12095 */ 12096 extern int GraphFilterBlt(int SrcGrHandle, int DestGrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...); 12097 12098 /** 12099 * 画像のフィルター付き転送を行う(矩形指定) 12100 */ 12101 extern int GraphFilterRectBlt(int SrcGrHandle, int DestGrHandle, int SrcX1, int SrcY1, int SrcX2, int SrcY2, int DestX, int DestY, int FilterType /* DX_GRAPH_FILTER_GAUSS等 */, ...); 12102 12103 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_MONO, int Cb = 青色差(-255~255), int Cr = 赤色差(-255~255)); 12104 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GAUSS, int PixelWidth = 使用ピクセル幅(8 , 16 , 32の何れか), int Param = ぼかしパラメータ(100で約1ピクセル分の幅)); 12105 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_DOWN_SCALE, int DivNum = 元のサイズの何分の1か、という値(2 , 4 , 8の何れか)); 12106 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_CLIP, int CmpType = クリップタイプ(DX_CMP_LESS:CmpParam以下をクリップ又はDX_CMP_GREATER:CmpParam以上をクリップ), int CmpParam = クリップパラメータ(0~255), int ClipFillFlag = クリップしたピクセルを塗りつぶすかどうか(dxlib_d.DxDataType.TRUE:塗りつぶす dxlib_d.DxDataType.FALSE:塗りつぶさない), uint ClipFillColor = クリップしたピクセルに塗る色値(GetColorで取得する)(ClipFillFlagがdxlib_d.DxDataType.FALSEの場合は使用しない), int ClipFillAlpha = クリップしたピクセルに塗るα値(0~255)(ClipFillFlagがdxlib_d.DxDataType.FALSEの場合は使用しない)); 12107 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_SCALE, int MinBright = 変換後に真っ暗になる明るさ(0~255), int MaxBright = 変換後に真っ白になる明るさ(0~255)); 12108 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_HSB, int HueType = Hueの意味(0:相対値 1:絶対値), int Hue = 色相パラメータ(HueTypeが0の場合 = ピクセルの色相に対する相対値(-180~180) HueTypeが1の場合 = 色相の絶対値(0~360)), int Saturation = 彩度(-255~), int Bright = 輝度(-255~255)); 12109 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INVERT); 12110 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_LEVEL, int Min = 変換元の下限値(0~255), int Max = 変換元の上限値(0~255), int Gamma = ガンマ値(100でガンマ補正無し、0とそれ以下の値は不可), int AfterMin = 変換後の最低値(0~255), int AfterMax = 変換後の最大値(0~255)); 12111 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_TWO_COLOR, int Threshold = 閾値(0~255), uint LowColor = 閾値より値が低かったピクセルの変換後の色値(GetColorで取得する), int LowAlpha = 閾値より値が低かったピクセルの変換後のα値(0~255), uint HighColor = 閾値より値が高かったピクセルの変換後の色値(GetColorで取得する), int HighAlpha = 閾値より値が高かったピクセルの変換後のα値(0~255)); 12112 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_GRADIENT_MAP, int MapGrHandle = グラデーションマップのグラフィックハンドル(元画像の輝度からグラデーションマップ画像のx座標を算出しますので縦幅は1dotでもOK), int Reverse = グラデーションマップ左右反転フラグ(dxlib_d.DxDataType.TRUE:グラデーションマップを左右反転して使う dxlib_d.DxDataType.FALSE:左右反転しない)); 12113 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_REPLACEMENT, int TargetR, int TargetG, int TargetB, int TargetA = 置換対象の色(0~255), int R, int G, int B, int A = 置換後の色(0~255)); 12114 12115 /* 12116 * 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ 12117 */ 12118 // int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_PREMUL_ALPHA); 12119 12120 /* 12121 * 乗算済みα画像を通常のアルファチャンネル付き画像に変換するフィルタ 12122 */ 12123 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_INTERP_ALPHA); 12124 12125 /* 12126 * YUVカラーをRGBカラーに変換するフィルタ 12127 */ 12128 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB); 12129 12130 /* 12131 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用) 12132 */ 12133 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分(若しくは4分の1)のグラフィックハンドル(U=R, V=G)); 12134 12135 /* 12136 * YUVカラーをRGBカラーに変換するフィルタ(且つ右側半分のRの値をアルファ値として扱う) 12137 */ 12138 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_YUV_TO_RGB_RRA); 12139 12140 /* 12141 * YUVカラーをRGBカラーに変換するフィルタ(UV成分がY成分の半分・又は4分の1(横・縦片方若しくは両方)の解像度しかない場合用)(且つ右側半分のRの値をアルファ値として扱う) 12142 */ 12143 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_Y2UV1_TO_RGB_RRA, int UVGrHandle = YUVカラーのUV成分のみで、且つYに対して解像度が半分(若しくは4分の1)のグラフィックハンドル(U=R, V=G)); 12144 12145 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_BICUBIC_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数); 12146 //int GraphFilter(int GrHandle, int FilterType = DX_GRAPH_FILTER_LANCZOS3_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数); 12147 12148 /** 12149 * 二つの画像をブレンドする 12150 */ 12151 extern int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio /* ブレンド効果の影響度(0:0% 255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...); 12152 12153 /** 12154 * 二つの画像をブレンドして結果を指定の画像に出力する 12155 */ 12156 extern int GraphBlendBlt(int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int BlendRatio /* ブレンド効果の影響度(0:0% 255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...); 12157 12158 /** 12159 * 二つの画像をブレンドして結果を指定の画像に出力する(矩形指定) 12160 */ 12161 extern int GraphBlendRectBlt(int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int SrcX1, int SrcY1, int SrcX2, int SrcY2, int BlendX, int BlendY, int DestX, int DestY, int BlendRatio /* ブレンド効果の影響度(0:0% 255:100%) */, int BlendType /* DX_GRAPH_BLEND_ADD等 */, ...); 12162 12163 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL); 12164 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_RGBA_SELECT_MIX, int SelectR = (出力の赤分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectG = (出力の緑成分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectB = (出力の青成分となる成分 DX_RGBA_SELECT_SRC_R等), int SelectA = (出力のα成分となる成分 DX_RGBA_SELECT_SRC_R等)); 12165 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE); 12166 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DIFFERENCE); 12167 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD); 12168 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SCREEN); 12169 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_OVERLAY); 12170 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DODGE); 12171 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BURN); 12172 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DARKEN); 12173 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_LIGHTEN); 12174 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SOFTLIGHT); 12175 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HARDLIGHT); 12176 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_EXCLUSION); 12177 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL_ALPHACH); 12178 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD_ALPHACH); 12179 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE_A_ONLY); 12180 // int GraphBlend(int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_PMA_MULTIPLE_A_ONLY); 12181 } 12182 12183 version (DX_NON_MOVIE) { 12184 } else { 12185 // ムービーグラフィック関係関数 12186 12187 /** 12188 * 動画ファイルの再生 12189 */ 12190 extern int PlayMovie(const (dxlib_d.DxDataType.TCHAR)* FileName, int ExRate, int PlayType); 12191 12192 /** 12193 * 動画ファイルの再生 12194 */ 12195 extern int PlayMovieWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int ExRate, int PlayType); 12196 12197 /** 12198 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する 12199 */ 12200 extern int GetMovieImageSize_File(const (dxlib_d.DxDataType.TCHAR)* FileName, int* SizeX, int* SizeY); 12201 12202 /** 12203 * 動画ファイルの横ピクセル数と縦ピクセル数を取得する 12204 */ 12205 extern int GetMovieImageSize_File_WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY); 12206 12207 /** 12208 * メモリ上に展開された動画ファイルの横ピクセル数と縦ピクセル数を取得する 12209 */ 12210 extern int GetMovieImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY); 12211 12212 /** 12213 * 動画ファイルを開く 12214 */ 12215 extern int OpenMovieToGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int FullColor = dxlib_d.DxDataType.TRUE); 12216 12217 /** 12218 * 動画ファイルを開く 12219 */ 12220 extern int OpenMovieToGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int FullColor = dxlib_d.DxDataType.TRUE); 12221 12222 /** 12223 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を開始する 12224 */ 12225 extern int PlayMovieToGraph(int GraphHandle, int PlayType = DX_PLAYTYPE_BACK, int SysPlay = 0); 12226 12227 /** 12228 * 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を停止する 12229 */ 12230 extern int PauseMovieToGraph(int GraphHandle, int SysPause = 0); 12231 12232 /** 12233 * 動画ファイルの再生フレームを進める、戻すことは出来ない(動画ファイルが停止状態で、且つ Ogg Theoraのみ有効) 12234 */ 12235 extern int AddMovieFrameToGraph(int GraphHandle, uint FrameNum); 12236 12237 /** 12238 * 動画ファイルの再生位置を設定する(ミリ秒単位) 12239 */ 12240 extern int SeekMovieToGraph(int GraphHandle, int Time); 12241 12242 /** 12243 * 動画ファイルの再生速度を設定する(1.0 = 等倍速 2.0 = 2倍速)、一部のファイルフォーマットのみで有効な機能です 12244 */ 12245 extern int SetPlaySpeedRateMovieToGraph(int GraphHandle, double SpeedRate); 12246 12247 /** 12248 * 動画ファイルの再生状態を得る 12249 */ 12250 extern int GetMovieStateToGraph(int GraphHandle); 12251 12252 /** 12253 * 動画ファイルの音量を設定する(0~10000) 12254 */ 12255 extern int SetMovieVolumeToGraph(int Volume, int GraphHandle); 12256 12257 /** 12258 * 動画ファイルの音量を設定する(0~255) 12259 */ 12260 extern int ChangeMovieVolumeToGraph(int Volume, int GraphHandle); 12261 12262 /** 12263 * 動画ファイルの基本イメージデータを取得する(ImageUpdateFlagにint型変数のアドレスを渡すと、イメージが更新された場合は1が、更新されていない場合は0が格納されます、ImageUpdateFlagSetOnlyをdxlib_d.DxDataType.TRUEにすると戻り値のBASEIMAGEは有効な画像データではなくなりますが、BASEIMAGEの更新処理が行われませんので、ImageUpdateFlagを利用して画像が更新されたかどうかだけをチェックしたい場合はdxlib_d.DxDataType.TRUEにしてください) 12264 */ 12265 extern const (.BASEIMAGE)* GetMovieBaseImageToGraph(int GraphHandle, int* ImageUpdateFlag = null, int ImageUpdateFlagSetOnly = dxlib_d.DxDataType.FALSE); 12266 12267 /** 12268 * 動画ファイルの総フレーム数を得る(Ogg Theoraとmp4でのみ有効) 12269 */ 12270 extern int GetMovieTotalFrameToGraph(int GraphHandle); 12271 12272 /** 12273 * 動画ファイルの再生位置を取得する(ミリ秒単位) 12274 */ 12275 extern int TellMovieToGraph(int GraphHandle); 12276 12277 /** 12278 * 動画ファイルの再生位置を取得する(フレーム単位) 12279 */ 12280 extern int TellMovieToGraphToFrame(int GraphHandle); 12281 12282 /** 12283 * 動画ファイルの再生位置を設定する(フレーム単位) 12284 */ 12285 extern int SeekMovieToGraphToFrame(int GraphHandle, int Frame); 12286 12287 /** 12288 * 動画ファイルの1フレームあたりの時間を取得する 12289 * 12290 * Returns: 1フレームの時間(単位:マイクロ秒) 12291 */ 12292 extern dxlib_d.DxDataType.LONGLONG GetOneFrameTimeMovieToGraph(int GraphHandle); 12293 12294 /** 12295 * 動画ファイルのイメージを最後に更新した時間を得る(ミリ秒単位) 12296 */ 12297 extern int GetLastUpdateTimeMovieToGraph(int GraphHandle); 12298 12299 /** 12300 * 読み込む動画ファイル映像の右半分の赤成分をα情報として扱うかどうかをセットする 12301 * 12302 * Params: 12303 * Flag = dxlib_d.DxDataType.TRUE:α情報として扱う dxlib_d.DxDataType.FALSE:α情報として扱わない(デフォルト) 12304 */ 12305 extern int SetMovieRightImageAlphaFlag(int Flag); 12306 12307 /** 12308 * 読み込む動画ファイルが32bitカラーだった場合、A8R8G8B8形式として扱うかどうかをセットする、32bitカラーではない動画ファイルに対しては無効 12309 * 12310 * Params: 12311 * Flag = dxlib_d.DxDataType.TRUE:A8R8G8B8として扱う dxlib_d.DxDataType.FALSE:X8R8G8B8として扱う(デフォルト) 12312 */ 12313 extern int SetMovieColorA8R8G8B8Flag(int Flag); 12314 12315 /** 12316 * YUVフォーマットのサーフェスが使用できる場合はYUVフォーマットのサーフェスを使用するかどうかを設定する 12317 * 12318 * Params: 12319 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:RGBフォーマットのサーフェスを使用する 12320 */ 12321 extern int SetMovieUseYUVFormatSurfaceFlag(int Flag); 12322 } 12323 12324 // カメラ関係関数 12325 12326 /** 12327 * カメラのNearクリップ面とFarクリップ面の距離を設定する 12328 */ 12329 extern int SetCameraNearFar(float Near, float Far); 12330 12331 /** 12332 * カメラのNearクリップ面とFarクリップ面の距離を設定する 12333 */ 12334 extern int SetCameraNearFarD(double Near, double Far); 12335 12336 /** 12337 * カメラの視点、注視点、アップベクトルを設定する(アップベクトルはY軸方向から導き出す) 12338 */ 12339 extern int SetCameraPositionAndTarget_UpVecY(.VECTOR Position, .VECTOR Target); 12340 12341 /** 12342 * カメラの視点、注視点、アップベクトルを設定する(アップベクトルはY軸方向から導き出す) 12343 */ 12344 extern int SetCameraPositionAndTarget_UpVecYD(.VECTOR_D Position, .VECTOR_D Target); 12345 12346 /** 12347 * カメラの視点、注視点、アップベクトルを設定する 12348 */ 12349 extern int SetCameraPositionAndTargetAndUpVec(.VECTOR Position, .VECTOR TargetPosition, .VECTOR UpVector); 12350 12351 /** 12352 * カメラの視点、注視点、アップベクトルを設定する 12353 */ 12354 extern int SetCameraPositionAndTargetAndUpVecD(.VECTOR_D Position, .VECTOR_D TargetPosition, .VECTOR_D UpVector); 12355 12356 /** 12357 * カメラの視点、注視点、アップベクトルを設定する(注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す) 12358 */ 12359 extern int SetCameraPositionAndAngle(.VECTOR Position, float VRotate, float HRotate, float TRotate); 12360 12361 /** 12362 * カメラの視点、注視点、アップベクトルを設定する(注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す) 12363 */ 12364 extern int SetCameraPositionAndAngleD(.VECTOR_D Position, double VRotate, double HRotate, double TRotate); 12365 12366 /** 12367 * ビュー行列を直接設定する 12368 */ 12369 extern int SetCameraViewMatrix(.MATRIX ViewMatrix); 12370 12371 /** 12372 * ビュー行列を直接設定する 12373 */ 12374 extern int SetCameraViewMatrixD(.MATRIX_D ViewMatrix); 12375 12376 /** 12377 * 画面上におけるカメラが見ている映像の中心の座標を設定する 12378 */ 12379 extern int SetCameraScreenCenter(float x, float y); 12380 12381 /** 12382 * 画面上におけるカメラが見ている映像の中心の座標を設定する 12383 */ 12384 extern int SetCameraScreenCenterD(double x, double y); 12385 12386 /** 12387 * 遠近法カメラをセットアップする 12388 */ 12389 extern int SetupCamera_Perspective(float Fov); 12390 12391 /** 12392 * 遠近法カメラをセットアップする 12393 */ 12394 extern int SetupCamera_PerspectiveD(double Fov); 12395 12396 /** 12397 * 正射影カメラをセットアップする 12398 */ 12399 extern int SetupCamera_Ortho(float Size); 12400 12401 /** 12402 * 正射影カメラをセットアップする 12403 */ 12404 extern int SetupCamera_OrthoD(double Size); 12405 12406 /** 12407 * 射影行列を直接設定する 12408 */ 12409 extern int SetupCamera_ProjectionMatrix(.MATRIX ProjectionMatrix); 12410 12411 /** 12412 * 射影行列を直接設定する 12413 */ 12414 extern int SetupCamera_ProjectionMatrixD(.MATRIX_D ProjectionMatrix); 12415 12416 /** 12417 * カメラのドットアスペクト比を設定する 12418 */ 12419 extern int SetCameraDotAspect(float DotAspect); 12420 12421 /** 12422 * カメラのドットアスペクト比を設定する 12423 */ 12424 extern int SetCameraDotAspectD(double DotAspect); 12425 12426 /** 12427 * 指定の座標がカメラの視界に入っているかどうかを判定する 12428 * 12429 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない dxlib_d.DxDataType.FALSE:視界に入っている 12430 */ 12431 extern int CheckCameraViewClip(.VECTOR CheckPos); 12432 12433 /** 12434 * 指定の座標がカメラの視界に入っているかどうかを判定する 12435 * 12436 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない dxlib_d.DxDataType.FALSE:視界に入っている 12437 */ 12438 extern int CheckCameraViewClipD(.VECTOR_D CheckPos); 12439 12440 /** 12441 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる 12442 * 12443 * Returns: 0:視界に入っている 0以外:視界に入っていない(DX_CAMERACLIP_LEFTやDX_CAMERACLIP_RIGHTがor演算で混合されたもの、and演算で方向を確認できる) 12444 */ 12445 extern int CheckCameraViewClip_Dir(.VECTOR CheckPos); 12446 12447 /** 12448 * 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる 12449 * 12450 * Returns: 0:視界に入っている 0以外:視界に入っていない(DX_CAMERACLIP_LEFTやDX_CAMERACLIP_RIGHTがor演算で混合されたもの、and演算で方向を確認できる) 12451 */ 12452 extern int CheckCameraViewClip_DirD(.VECTOR_D CheckPos); 12453 12454 /** 12455 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する 12456 * 12457 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない dxlib_d.DxDataType.FALSE:視界に入っている 12458 */ 12459 extern int CheckCameraViewClip_Box(.VECTOR BoxPos1, .VECTOR BoxPos2); 12460 12461 /** 12462 * 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する 12463 * 12464 * Returns: dxlib_d.DxDataType.TRUE:視界に入っていない dxlib_d.DxDataType.FALSE:視界に入っている 12465 */ 12466 extern int CheckCameraViewClip_BoxD(.VECTOR_D BoxPos1, .VECTOR_D BoxPos2); 12467 12468 /** 12469 * カメラのNearクリップ面の距離を取得する 12470 */ 12471 extern float GetCameraNear(); 12472 12473 /** 12474 * カメラのNearクリップ面の距離を取得する 12475 */ 12476 extern double GetCameraNearD(); 12477 12478 /** 12479 * カメラのFarクリップ面の距離を取得する 12480 */ 12481 extern float GetCameraFar(); 12482 12483 /** 12484 * カメラのFarクリップ面の距離を取得する 12485 */ 12486 extern double GetCameraFarD(); 12487 12488 /** 12489 * カメラの位置を取得する 12490 */ 12491 extern .VECTOR GetCameraPosition(); 12492 12493 /** 12494 * カメラの位置を取得する 12495 */ 12496 extern .VECTOR_D GetCameraPositionD(); 12497 12498 /** 12499 * カメラの注視点を取得する 12500 */ 12501 extern .VECTOR GetCameraTarget(); 12502 12503 /** 12504 * カメラの注視点を取得する 12505 */ 12506 extern .VECTOR_D GetCameraTargetD(); 12507 12508 /** 12509 * カメラの正面方向に垂直な上方向のベクトルを取得する 12510 */ 12511 extern .VECTOR GetCameraUpVector(); 12512 12513 /** 12514 * カメラの正面方向に垂直な上方向のベクトルを取得する 12515 */ 12516 extern .VECTOR_D GetCameraUpVectorD(); 12517 12518 /** 12519 * カメラの正面方向に垂直な下方向のベクトルを取得する 12520 */ 12521 extern .VECTOR GetCameraDownVector(); 12522 12523 /** 12524 * カメラの正面方向に垂直な下方向のベクトルを取得する 12525 */ 12526 extern .VECTOR_D GetCameraDownVectorD(); 12527 12528 /** 12529 * カメラの正面方向に垂直な右方向のベクトルを取得する 12530 */ 12531 extern .VECTOR GetCameraRightVector(); 12532 12533 /** 12534 * カメラの正面方向に垂直な右方向のベクトルを取得する 12535 */ 12536 extern .VECTOR_D GetCameraRightVectorD(); 12537 12538 /** 12539 * カメラの正面方向に垂直な左方向のベクトルを取得する 12540 */ 12541 extern .VECTOR GetCameraLeftVector(); 12542 12543 /** 12544 * カメラの正面方向に垂直な左方向のベクトルを取得する 12545 */ 12546 extern .VECTOR_D GetCameraLeftVectorD(); 12547 12548 /** 12549 * カメラの正面方向のベクトルを取得する 12550 */ 12551 extern .VECTOR GetCameraFrontVector(); 12552 12553 /** 12554 * カメラの正面方向のベクトルを取得する 12555 */ 12556 extern .VECTOR_D GetCameraFrontVectorD(); 12557 12558 /** 12559 * カメラの後ろ方向のベクトルを取得する 12560 */ 12561 extern .VECTOR GetCameraBackVector(); 12562 12563 /** 12564 * カメラの後ろ方向のベクトルを取得する 12565 */ 12566 extern .VECTOR_D GetCameraBackVectorD(); 12567 12568 /** 12569 * カメラの水平方向の向きを取得する 12570 */ 12571 extern float GetCameraAngleHRotate(); 12572 12573 /** 12574 * カメラの水平方向の向きを取得する 12575 */ 12576 extern double GetCameraAngleHRotateD(); 12577 12578 /** 12579 * カメラの垂直方向の向きを取得する 12580 */ 12581 extern float GetCameraAngleVRotate(); 12582 12583 /** 12584 * カメラの垂直方向の向きを取得する 12585 */ 12586 extern double GetCameraAngleVRotateD(); 12587 12588 /** 12589 * カメラの向きの捻り角度を取得する 12590 */ 12591 extern float GetCameraAngleTRotate(); 12592 12593 /** 12594 * カメラの向きの捻り角度を取得する 12595 */ 12596 extern double GetCameraAngleTRotateD(); 12597 12598 /** 12599 * ビュー行列を取得する 12600 */ 12601 extern .MATRIX GetCameraViewMatrix(); 12602 12603 /** 12604 * ビュー行列を取得する 12605 */ 12606 extern .MATRIX_D GetCameraViewMatrixD(); 12607 12608 /** 12609 * ビルボード行列を取得する 12610 */ 12611 extern .MATRIX GetCameraBillboardMatrix(); 12612 12613 /** 12614 * ビルボード行列を取得する 12615 */ 12616 extern .MATRIX_D GetCameraBillboardMatrixD(); 12617 12618 /** 12619 * 画面上におけるカメラが見ている映像の中心の座標を取得する 12620 */ 12621 extern int GetCameraScreenCenter(float* x, float* y); 12622 12623 /** 12624 * 画面上におけるカメラが見ている映像の中心の座標を取得する 12625 */ 12626 extern int GetCameraScreenCenterD(double* x, double* y); 12627 12628 /** 12629 * カメラの視野角を取得する 12630 */ 12631 extern float GetCameraFov(); 12632 12633 /** 12634 * カメラの視野角を取得する 12635 */ 12636 extern double GetCameraFovD(); 12637 12638 /** 12639 * カメラの視野サイズを取得する 12640 */ 12641 extern float GetCameraSize(); 12642 12643 /** 12644 * カメラの視野サイズを取得する 12645 */ 12646 extern double GetCameraSizeD(); 12647 12648 /** 12649 * 射影行列を取得する 12650 */ 12651 extern .MATRIX GetCameraProjectionMatrix(); 12652 12653 /** 12654 * 射影行列を取得する 12655 */ 12656 extern .MATRIX_D GetCameraProjectionMatrixD(); 12657 12658 /** 12659 * カメラのドットアスペクト比を得る 12660 */ 12661 extern float GetCameraDotAspect(); 12662 12663 /** 12664 * カメラのドットアスペクト比を得る 12665 */ 12666 extern double GetCameraDotAspectD(); 12667 12668 /** 12669 * ビューポート行列を取得する 12670 */ 12671 extern .MATRIX GetCameraViewportMatrix(); 12672 12673 /** 12674 * ビューポート行列を取得する 12675 */ 12676 extern .MATRIX_D GetCameraViewportMatrixD(); 12677 12678 /** 12679 * Direct3Dで自動適用されるビューポート行列を取得する 12680 */ 12681 extern .MATRIX GetCameraAPIViewportMatrix(); 12682 12683 /** 12684 * Direct3Dで自動適用されるビューポート行列を取得する 12685 */ 12686 extern .MATRIX_D GetCameraAPIViewportMatrixD(); 12687 12688 // ライト関係関数 12689 12690 /** 12691 * ライティングを使用するかどうかを設定する 12692 */ 12693 extern int SetUseLighting(int Flag); 12694 12695 /** 12696 * 3D描画のライティング計算で頂点カラーのディフューズカラーを使用するかどうかを設定する 12697 */ 12698 extern int SetMaterialUseVertDifColor(int UseFlag); 12699 12700 /** 12701 * 3D描画のライティング計算で頂点カラーのスペキュラカラーを使用するかどうかを設定する 12702 */ 12703 extern int SetMaterialUseVertSpcColor(int UseFlag); 12704 12705 /** 12706 * 3D描画のライティング計算で使用するマテリアルパラメータを設定する 12707 */ 12708 extern int SetMaterialParam(MATERIALPARAM Material); 12709 12710 /** 12711 * 3D描画にスペキュラを使用するかどうかを設定する 12712 */ 12713 extern int SetUseSpecular(int UseFlag); 12714 12715 /** 12716 * グローバルアンビエントライトカラーを設定する 12717 */ 12718 extern int SetGlobalAmbientLight(.COLOR_F Color); 12719 12720 /** 12721 * デフォルトライトのタイプをディレクショナルライトにする 12722 */ 12723 extern int ChangeLightTypeDir(.VECTOR Direction); 12724 12725 /** 12726 * デフォルトライトのタイプをスポットライトにする 12727 */ 12728 extern int ChangeLightTypeSpot(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2); 12729 12730 /** 12731 * デフォルトライトのタイプをポイントライトにする 12732 */ 12733 extern int ChangeLightTypePoint(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2); 12734 12735 /** 12736 * デフォルトライトのタイプを取得する 12737 * 12738 * Returns: DX_LIGHTTYPE_DIRECTIONAL等 12739 */ 12740 extern int GetLightType(); 12741 12742 /** 12743 * デフォルトライトを使用するかどうかを設定する 12744 */ 12745 extern int SetLightEnable(int EnableFlag); 12746 12747 /** 12748 * デフォルトライトを使用するかどうかを取得する 12749 * 12750 * Returns: dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 12751 */ 12752 extern int GetLightEnable(); 12753 12754 /** 12755 * デフォルトライトのディフューズカラーを設定する 12756 */ 12757 extern int SetLightDifColor(.COLOR_F Color); 12758 12759 /** 12760 * デフォルトライトのディフューズカラーを取得する 12761 */ 12762 extern .COLOR_F GetLightDifColor(); 12763 12764 /** 12765 * デフォルトライトのスペキュラカラーを設定する 12766 */ 12767 extern int SetLightSpcColor(.COLOR_F Color); 12768 12769 /** 12770 * デフォルトライトのスペキュラカラーを取得する 12771 */ 12772 extern .COLOR_F GetLightSpcColor(); 12773 12774 /** 12775 * デフォルトライトのアンビエントカラーを設定する 12776 */ 12777 extern int SetLightAmbColor(.COLOR_F Color); 12778 12779 /** 12780 * デフォルトライトのアンビエントカラーを取得する 12781 */ 12782 extern .COLOR_F GetLightAmbColor(); 12783 12784 /** 12785 * デフォルトライトの方向を設定する 12786 */ 12787 extern int SetLightDirection(.VECTOR Direction); 12788 12789 /** 12790 * デフォルトライトの方向を取得する 12791 */ 12792 extern .VECTOR GetLightDirection(); 12793 12794 /** 12795 * デフォルトライトの位置を設定する 12796 */ 12797 extern int SetLightPosition(.VECTOR Position); 12798 12799 /** 12800 * デフォルトライトの位置を取得する 12801 */ 12802 extern .VECTOR GetLightPosition(); 12803 12804 /** 12805 * デフォルトライトの距離減衰パラメータを設定する(有効距離、距離減衰係数0、1、2) 12806 */ 12807 extern int SetLightRangeAtten(float Range, float Atten0, float Atten1, float Atten2); 12808 12809 /** 12810 * デフォルトライトの距離減衰パラメータを取得する(有効距離、距離減衰係数0、1、2) 12811 */ 12812 extern int GetLightRangeAtten(float* Range, float* Atten0, float* Atten1, float* Atten2); 12813 12814 /** 12815 * デフォルトライトのスポットライトのパラメータを設定する(外部コーン角度、内部コーン角度) 12816 */ 12817 extern int SetLightAngle(float OutAngle, float InAngle); 12818 12819 /** 12820 * デフォルトライトのスポットライトのパラメータを取得する(外部コーン角度、内部コーン角度) 12821 */ 12822 extern int GetLightAngle(float* OutAngle, float* InAngle); 12823 12824 /** 12825 * デフォルトライトにSetUseShadowMapで指定したシャドウマップを適用するかどうかを設定する 12826 * 12827 * Params: 12828 * SmSlotIndex = シャドウマップスロット(SetUseShadowMapの第1引数に設定する値) 12829 * UseFlag = 適用にするかどうかのフラグ(dxlib_d.DxDataType.TRUE:適用する(デフォルト) dxlib_d.DxDataType.FALSE:適用しない) 12830 */ 12831 extern int SetLightUseShadowMap(int SmSlotIndex, int UseFlag); 12832 12833 /** 12834 * ディレクショナルライトハンドルを作成する 12835 */ 12836 extern int CreateDirLightHandle(.VECTOR Direction); 12837 12838 /** 12839 * スポットライトハンドルを作成する 12840 */ 12841 extern int CreateSpotLightHandle(.VECTOR Position, .VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2); 12842 12843 /** 12844 * ポイントライトハンドルを作成する 12845 */ 12846 extern int CreatePointLightHandle(.VECTOR Position, float Range, float Atten0, float Atten1, float Atten2); 12847 12848 /** 12849 * ライトハンドルを削除する 12850 */ 12851 extern int DeleteLightHandle(int LHandle); 12852 12853 /** 12854 * ライトハンドルを全て削除する 12855 */ 12856 extern int DeleteLightHandleAll(); 12857 12858 /** 12859 * ライトハンドルのライトのタイプを変更する(DX_LIGHTTYPE_DIRECTIONAL等) 12860 */ 12861 extern int SetLightTypeHandle(int LHandle, int LightType); 12862 12863 /** 12864 * ライトハンドルのライト効果の有効、無効を設定する 12865 * 12866 * Params: 12867 * LHandle = ? 12868 * EnableFlag = dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 12869 */ 12870 extern int SetLightEnableHandle(int LHandle, int EnableFlag); 12871 12872 /** 12873 * ライトハンドルのライトのディフューズカラーを設定する 12874 */ 12875 extern int SetLightDifColorHandle(int LHandle, .COLOR_F Color); 12876 12877 /** 12878 * ライトハンドルのライトのスペキュラカラーを設定する 12879 */ 12880 extern int SetLightSpcColorHandle(int LHandle, .COLOR_F Color); 12881 12882 /** 12883 * ライトハンドルのライトのアンビエントカラーを設定する 12884 */ 12885 extern int SetLightAmbColorHandle(int LHandle, .COLOR_F Color); 12886 12887 /** 12888 * ライトハンドルのライトの方向を設定する 12889 */ 12890 extern int SetLightDirectionHandle(int LHandle, .VECTOR Direction); 12891 12892 /** 12893 * ライトハンドルのライトの位置を設定する 12894 */ 12895 extern int SetLightPositionHandle(int LHandle, .VECTOR Position); 12896 12897 /** 12898 * ライトハンドルのライトの距離減衰パラメータを設定する(有効距離、距離減衰係数0、1、2) 12899 */ 12900 extern int SetLightRangeAttenHandle(int LHandle, float Range, float Atten0, float Atten1, float Atten2); 12901 12902 /** 12903 * ライトハンドルのライトのスポットライトのパラメータを設定する(外部コーン角度、内部コーン角度) 12904 */ 12905 extern int SetLightAngleHandle(int LHandle, float OutAngle, float InAngle); 12906 12907 /** 12908 * ライトハンドルのライトにSetUseShadowMapで指定したシャドウマップを適用するかどうかを設定する 12909 * 12910 * Params: 12911 * LHandle = ? 12912 * SmSlotIndex = シャドウマップスロット(SetUseShadowMapの第1引数に設定する値) 12913 * UseFlag = 適用にするかどうかのフラグ(dxlib_d.DxDataType.TRUE:適用する(デフォルト) dxlib_d.DxDataType.FALSE:適用しない) 12914 */ 12915 extern int SetLightUseShadowMapHandle(int LHandle, int SmSlotIndex, int UseFlag); 12916 12917 /** 12918 * ライトハンドルのライトのタイプを取得する 12919 * 12920 * Returns: DX_LIGHTTYPE_DIRECTIONAL等 12921 */ 12922 extern int GetLightTypeHandle(int LHandle); 12923 12924 /** 12925 * ライトハンドルのライト効果の有効、無効を取得する 12926 * 12927 * Returns: dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 12928 */ 12929 extern int GetLightEnableHandle(int LHandle); 12930 12931 /** 12932 * ライトハンドルのライトのディフューズカラーを取得する 12933 */ 12934 extern .COLOR_F GetLightDifColorHandle(int LHandle); 12935 12936 /** 12937 * ライトハンドルのライトのスペキュラカラーを取得する 12938 */ 12939 extern .COLOR_F GetLightSpcColorHandle(int LHandle); 12940 12941 /** 12942 * ライトハンドルのライトのアンビエントカラーを取得する 12943 */ 12944 extern .COLOR_F GetLightAmbColorHandle(int LHandle); 12945 12946 /** 12947 * ライトハンドルのライトの方向を取得する 12948 */ 12949 extern .VECTOR GetLightDirectionHandle(int LHandle); 12950 12951 /** 12952 * ライトハンドルのライトの位置を取得する 12953 */ 12954 extern .VECTOR GetLightPositionHandle(int LHandle); 12955 12956 /** 12957 * ライトハンドルのライトの距離減衰パラメータを取得する(有効距離、距離減衰係数0、1、2) 12958 */ 12959 extern int GetLightRangeAttenHandle(int LHandle, float* Range, float* Atten0, float* Atten1, float* Atten2); 12960 12961 /** 12962 * ライトハンドルのライトのスポットライトのパラメータを取得する(外部コーン角度、内部コーン角度) 12963 */ 12964 extern int GetLightAngleHandle(int LHandle, float* OutAngle, float* InAngle); 12965 12966 /** 12967 * 有効になっているライトハンドルの数を取得する 12968 */ 12969 extern int GetEnableLightHandleNum(); 12970 12971 /** 12972 * 有効になっているライトハンドルを取得する 12973 */ 12974 extern int GetEnableLightHandle(int Index); 12975 12976 // 色情報取得用関数 12977 12978 /** 12979 * テクスチャフォーマットのインデックスを得る 12980 */ 12981 extern int GetTexFormatIndex(const (.IMAGEFORMATDESC)* Format); 12982 12983 // DxMask.cpp 関数プロトタイプ宣言 12984 12985 version (DX_NON_MASK) { 12986 } else { 12987 // マスク関係 12988 12989 /** 12990 * マスクスクリーンを作成する 12991 */ 12992 extern int CreateMaskScreen(); 12993 12994 /** 12995 * マスクスクリーンを削除する 12996 */ 12997 extern int DeleteMaskScreen(); 12998 12999 /** 13000 * マスクスクリーンにメモリ上のビットマップデータを転送する(MaskDataは1byteで1dot 表す1ラインあたり Width byteのデータ配列の先頭アドレス) 13001 */ 13002 extern int DrawMaskToDirectData(int x, int y, int Width, int Height, const (void)* MaskData, int TransMode); 13003 13004 /** 13005 * マスクスクリーンにメモリ上のビットマップデータで指定矩形内を塗りつぶすように転送する 13006 */ 13007 extern int DrawFillMaskToDirectData(int x1, int y1, int x2, int y2, int Width, int Height, const (void)* MaskData); 13008 13009 /** 13010 * マスクスクリーンを使用するかどうかを設定する 13011 * 13012 * Params: 13013 * ValidFlag = 使用するかどうか(dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 13014 */ 13015 extern int SetUseMaskScreenFlag(int ValidFlag); 13016 13017 /** 13018 * マスクスクリーンを使用するかどうかを取得する 13019 */ 13020 extern int GetUseMaskScreenFlag(); 13021 13022 /** 13023 * マスクスクリーンを指定の色で塗りつぶす 13024 */ 13025 extern int FillMaskScreen(int Flag); 13026 13027 /** 13028 * マスクスクリーンとして使用するグラフィックのハンドルを設定する、-1を渡すと解除(引数で渡すグラフィックハンドルはMakeScreenで作成した「アルファチャンネル付きの描画対象にできるグラフィックハンドル」である必要があります(アルファチャンネルがマスクに使用されます)) 13029 */ 13030 extern int SetMaskScreenGraph(int GraphHandle); 13031 13032 /** 13033 * マスクスクリーンとして使用するグラフィックの、どのチャンネルをマスクとして使用するかを設定する(デフォルトはDX_MASKGRAPH_CH_A、尚、DX_MASKGRAPH_CH_A以外を使用する場合はグラフィックスデバイスがシェーダーモデル2.0以降に対応している必要があります) 13034 */ 13035 extern int SetMaskScreenGraphUseChannel(int UseChannel /* DX_MASKGRAPH_CH_A等 */); 13036 13037 /** 13038 * マスクハンドルをすべて削除する 13039 */ 13040 extern int InitMask(); 13041 13042 /** 13043 * マスクハンドルを作成する 13044 */ 13045 extern int MakeMask(int Width, int Height); 13046 13047 /** 13048 * マスクハンドルが持つマスクイメージのサイズを取得する 13049 */ 13050 extern int GetMaskSize(int* WidthBuf, int* HeightBuf, int MaskHandle); 13051 13052 /** 13053 * マスクハンドルが持つマスクイメージのBASEIMAGEデータを取得する(フォーマットが変更されるような操作をすると正常に動作しなくなります、あと、ReleaseBaseImageは実行する必要はありません) 13054 */ 13055 extern int GetMaskBaseImageInfo(.BASEIMAGE* BaseImage, int MaskHandle); 13056 13057 /** 13058 * マスクハンドルにビットマップイメージを転送する 13059 */ 13060 extern int SetDataToMask(int Width, int Height, const (void)* MaskData, int MaskHandle); 13061 13062 /** 13063 * マスクハンドルを削除する 13064 */ 13065 extern int DeleteMask(int MaskHandle); 13066 13067 /** 13068 * マスクハンドルにBASEIMAGEデータを転送する 13069 */ 13070 extern int GraphImageBltToMask(const (.BASEIMAGE)* BaseImage, int ImageX, int ImageY, int MaskHandle); 13071 13072 /** 13073 * 画像ファイルを読み込みマスクハンドルを作成する 13074 */ 13075 extern int LoadMask(const (dxlib_d.DxDataType.TCHAR)* FileName); 13076 13077 /** 13078 * 画像ファイルを読み込みマスクハンドルを作成する 13079 */ 13080 extern int LoadMaskWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 13081 13082 /** 13083 * 画像ファイルを分割読み込みしてマスクハンドルを作成する 13084 */ 13085 extern int LoadDivMask(const (dxlib_d.DxDataType.TCHAR)* FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13086 13087 /** 13088 * 画像ファイルを分割読み込みしてマスクハンドルを作成する 13089 */ 13090 extern int LoadDivMaskWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13091 13092 /** 13093 * メモリ上にある画像ファイルイメージを読み込みマスクハンドルを作成する 13094 */ 13095 extern int CreateMaskFromMem(const (void)* FileImage, int FileImageSize); 13096 13097 /** 13098 * メモリ上にある画像ファイルイメージを分割読み込みしてマスクハンドルを作成する 13099 */ 13100 extern int CreateDivMaskFromMem(const (void)* FileImage, int FileImageSize, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 13101 13102 /** 13103 * マスクスクリーンにマスクハンドルの持つマスクイメージを書き込む 13104 */ 13105 extern int DrawMask(int x, int y, int MaskHandle, int TransMode); 13106 13107 version (DX_NON_FONT) { 13108 } else { 13109 /** 13110 * 書式指定ありの文字列をマスクスクリーンに描画する 13111 */ 13112 extern int DrawFormatStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13113 13114 /** 13115 * 書式指定ありの文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能) 13116 */ 13117 extern int DrawFormatStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13118 13119 /** 13120 * 文字列をマスクスクリーンに描画する 13121 */ 13122 extern int DrawStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* String); 13123 13124 /** 13125 * 文字列をマスクスクリーンに描画する 13126 */ 13127 extern int DrawNStringMask(int x, int y, int Flag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 13128 13129 /** 13130 * 文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能) 13131 */ 13132 extern int DrawStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* String); 13133 13134 /** 13135 * 文字列をマスクスクリーンに描画する(フォントハンドル指定版)(SetFontCacheToTextureFlag(dxlib_d.DxDataType.FALSE);にして作成したフォントハンドルのみ使用可能) 13136 */ 13137 extern int DrawNStringMaskToHandle(int x, int y, int Flag, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 13138 } 13139 13140 /** 13141 * マスクハンドルが持つマスクイメージをマスクスクリーンいっぱいに描画する(タイル状に並べる) 13142 */ 13143 extern int DrawFillMask(int x1, int y1, int x2, int y2, int MaskHandle); 13144 13145 /** 13146 * マスクイメージ内の数値に対する効果を逆転させる(旧バージョンとの互換性の為の機能) 13147 */ 13148 extern int SetMaskReverseEffectFlag(int ReverseFlag); 13149 13150 /** 13151 * マスクスクリーンの指定矩形部分をマスクハンドルに転送する 13152 */ 13153 extern int GetMaskScreenData(int x1, int y1, int x2, int y2, int MaskHandle); 13154 13155 /** 13156 * マスクスクリーンを使用する設定になっているかどうかを取得する 13157 */ 13158 extern int GetMaskUseFlag(); 13159 } 13160 } 13161 13162 // DxFont.cpp 関数プロトタイプ宣言 13163 13164 version (DX_NON_FONT) { 13165 } else { 13166 // フォント、文字列描画関係関数 13167 13168 /** 13169 * 使用可能なフォントの名前を列挙する(NameBufferに64バイト区切りで名前が格納されます) 13170 */ 13171 extern int EnumFontName(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, int JapanOnlyFlag = dxlib_d.DxDataType.TRUE); 13172 13173 /** 13174 * 使用可能なフォントの名前を列挙する(NameBufferに64バイト区切りで名前が格納されます)(文字セット指定版) 13175 */ 13176 extern int EnumFontNameEx(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */); 13177 13178 /** 13179 * 指定のフォント名のフォントを列挙する 13180 */ 13181 extern int EnumFontNameEx2(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, const (dxlib_d.DxDataType.TCHAR)* EnumFontName, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */); 13182 13183 /** 13184 * 指定のフォント名のフォントを列挙する 13185 */ 13186 extern int EnumFontNameEx2WithStrLen(dxlib_d.DxDataType.TCHAR* NameBuffer, int NameBufferNum, const (dxlib_d.DxDataType.TCHAR)* EnumFontName, size_t EnumFontNameLength, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */); 13187 13188 /** 13189 * 指定のフォント名のフォントが存在するかどうかをチェックする 13190 * 13191 * Returns: dxlib_d.DxDataType.TRUE:存在する dxlib_d.DxDataType.FALSE:存在しない 13192 */ 13193 extern int CheckFontName(const (dxlib_d.DxDataType.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */); 13194 13195 /** 13196 * 指定のフォント名のフォントが存在するかどうかをチェックする 13197 * 13198 * Returns: dxlib_d.DxDataType.TRUE:存在する dxlib_d.DxDataType.FALSE:存在しない 13199 */ 13200 extern int CheckFontNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_DEFAULT等 */); 13201 13202 /** 13203 * 全てのフォントハンドルを削除する 13204 */ 13205 extern int InitFontToHandle(); 13206 13207 /** 13208 * フォントハンドルを作成する 13209 */ 13210 extern int CreateFontToHandle(const (dxlib_d.DxDataType.TCHAR)* FontName, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE, int Handle = -1); 13211 13212 /** 13213 * フォントハンドルを作成する 13214 */ 13215 extern int CreateFontToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE, int Handle = -1); 13216 13217 /** 13218 * フォントデータファイルからフォントハンドルを作成する 13219 */ 13220 extern int LoadFontDataToHandle(const (dxlib_d.DxDataType.TCHAR)* FileName, int EdgeSize = 0); 13221 13222 /** 13223 * フォントデータファイルからフォントハンドルを作成する 13224 */ 13225 extern int LoadFontDataToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int EdgeSize = 0); 13226 13227 /** 13228 * メモリ上のフォントデータファイルイメージからフォントハンドルを作成する 13229 */ 13230 extern int LoadFontDataFromMemToHandle(const (void)* FontDataImage, int FontDataImageSize, int EdgeSize = 0); 13231 13232 /** 13233 * フォントハンドルの字間を変更する 13234 */ 13235 extern int SetFontSpaceToHandle(int Pixel, int FontHandle); 13236 13237 /** 13238 * フォントハンドルの行間を変更する 13239 */ 13240 extern int SetFontLineSpaceToHandle(int Pixel, int FontHandle); 13241 13242 /** 13243 * 指定のフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する(UNICODE版では無効) 13244 */ 13245 extern int SetFontCharCodeFormatToHandle(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */, int FontHandle); 13246 13247 /** 13248 * フォントハンドルを削除する 13249 */ 13250 extern int DeleteFontToHandle(int FontHandle); 13251 13252 /** 13253 * フォントハンドルを削除した際にdxlib_d.DxDataType.TRUEを代入する変数のアドレスを設定する 13254 */ 13255 extern int SetFontLostFlag(int FontHandle, int* LostFlag); 13256 13257 /** 13258 * 指定の文字の代わりに描画するグラフィックハンドルを登録する 13259 */ 13260 extern int AddFontImageToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, int GrHandle, int DrawX, int DrawY, int AddX); 13261 13262 /** 13263 * 指定の文字の代わりに描画するグラフィックハンドルを登録する 13264 */ 13265 extern int AddFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength, int GrHandle, int DrawX, int DrawY, int AddX); 13266 13267 /** 13268 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する 13269 */ 13270 extern int SubFontImageToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char); 13271 13272 /** 13273 * 指定の文字の代わりに描画するグラフィックハンドルの登録を解除する 13274 */ 13275 extern int SubFontImageToHandleWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength); 13276 13277 /** 13278 * 代替フォントハンドル(FontHandleに無い文字を描画しようとしたときに代わりに使用されるフォントハンドル)を登録する 13279 */ 13280 extern int AddSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle, int DrawX, int DrawY); 13281 13282 /** 13283 * 代替フォントハンドルの登録を解除する 13284 */ 13285 extern int SubSubstitutionFontToHandle(int FontHandle, int SubstitutionFontHandle); 13286 13287 /** 13288 * デフォルトフォントハンドルで使用するフォントを変更 13289 */ 13290 extern int ChangeFont(const (dxlib_d.DxDataType.TCHAR)* FontName, int CharSet = -1 /* DX_CHARSET_SHFTJIS等 */); 13291 13292 /** 13293 * デフォルトフォントハンドルで使用するフォントを変更 13294 */ 13295 extern int ChangeFontWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int CharSet = -1 /* DX_CHARSET_SHFTJIS等 */); 13296 13297 /** 13298 * デフォルトフォントハンドルのフォントタイプの変更 13299 */ 13300 extern int ChangeFontType(int FontType); 13301 13302 /** 13303 * デフォルトフォントハンドルのフォント名を取得する 13304 */ 13305 extern const (dxlib_d.DxDataType.TCHAR)* GetFontName(); 13306 13307 /** 13308 * デフォルトフォントハンドルのサイズを設定する 13309 */ 13310 extern int SetFontSize(int FontSize); 13311 13312 /** 13313 * デフォルトフォントハンドルのサイズを取得する 13314 */ 13315 extern int GetFontSize(); 13316 13317 /** 13318 * デフォルトフォントハンドルの縁サイズを取得する 13319 */ 13320 extern int GetFontEdgeSize(); 13321 13322 /** 13323 * デフォルトフォントハンドルの太さを設定する 13324 */ 13325 extern int SetFontThickness(int ThickPal); 13326 13327 /** 13328 * デフォルトフォントハンドルの字間を変更する 13329 */ 13330 extern int SetFontSpace(int Pixel); 13331 13332 /** 13333 * デフォルトフォントハンドルの字間を取得する 13334 */ 13335 extern int GetFontSpace(); 13336 13337 /** 13338 * デフォルトフォントハンドルの行間を変更する 13339 */ 13340 extern int SetFontLineSpace(int Pixel); 13341 13342 /** 13343 * デフォルトフォントハンドルの行間を取得する 13344 */ 13345 extern int GetFontLineSpace(); 13346 13347 /** 13348 * デフォルトフォントハンドルを使用する関数の引数に渡す文字列の文字コード形式を設定する(UNICODE版では無効) 13349 */ 13350 extern int SetFontCharCodeFormat(int CharCodeFormat /* DX_CHARCODEFORMAT_SHIFTJIS等 */); 13351 13352 /** 13353 * デフォルトフォントハンドルの設定を変更する 13354 */ 13355 extern int SetDefaultFontState(const (dxlib_d.DxDataType.TCHAR)* FontName, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE); 13356 13357 /** 13358 * デフォルトフォントハンドルの設定を変更する 13359 */ 13360 extern int SetDefaultFontStateWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int Size, int Thick, int FontType = -1, int CharSet = -1, int EdgeSize = -1, int Italic = dxlib_d.DxDataType.FALSE); 13361 13362 /** 13363 * デフォルトフォントハンドルを取得する 13364 */ 13365 extern int GetDefaultFontHandle(); 13366 13367 /** 13368 * デフォルトフォントハンドルのキャッシュできる文字の数を取得する 13369 */ 13370 extern int GetFontMaxCacheCharNum(); 13371 13372 /** 13373 * デフォルトフォントハンドルの文字の最大幅を取得する 13374 */ 13375 extern int GetFontMaxWidth(); 13376 13377 /** 13378 * デフォルトフォントハンドルの描画位置からベースラインまでの高さを取得する 13379 */ 13380 extern int GetFontAscent(); 13381 13382 /** 13383 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する 13384 */ 13385 extern int GetDrawStringWidth(const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13386 13387 /** 13388 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する 13389 */ 13390 extern int GetDrawNStringWidth(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13391 13392 /** 13393 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する 13394 */ 13395 extern int GetDrawFormatStringWidth(const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13396 13397 /** 13398 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する(拡大率付き) 13399 */ 13400 extern int GetDrawExtendStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13401 13402 /** 13403 * デフォルトフォントハンドルを使用した文字列の描画幅を取得する(拡大率付き) 13404 */ 13405 extern int GetDrawExtendNStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13406 13407 /** 13408 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する(拡大率付き) 13409 */ 13410 extern int GetDrawExtendFormatStringWidth(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13411 13412 /** 13413 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13414 */ 13415 extern int GetDrawStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13416 13417 /** 13418 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13419 */ 13420 extern int GetDrawNStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13421 13422 /** 13423 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13424 */ 13425 extern int GetDrawFormatStringSize(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13426 13427 /** 13428 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する(拡大率付き) 13429 */ 13430 extern int GetDrawExtendStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13431 13432 /** 13433 * デフォルトフォントハンドルを使用した文字列の描画幅・高さ・行数を取得する(拡大率付き) 13434 */ 13435 extern int GetDrawExtendNStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13436 13437 /** 13438 * デフォルトフォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する(拡大率付き) 13439 */ 13440 extern int GetDrawExtendFormatStringSize(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13441 13442 /** 13443 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13444 */ 13445 extern int GetDrawStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13446 13447 /** 13448 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13449 */ 13450 extern int GetDrawNStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13451 13452 /** 13453 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13454 */ 13455 extern int GetDrawFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13456 13457 /** 13458 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13459 */ 13460 extern int GetDrawExtendStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13461 13462 /** 13463 * デフォルトフォントハンドルを使用した文字列の1文字毎の情報を取得する 13464 */ 13465 extern int GetDrawExtendNStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13466 13467 /** 13468 * デフォルトフォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13469 */ 13470 extern int GetDrawExtendFormatStringCharInfo(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13471 13472 /** 13473 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13474 * 13475 * Params: 13476 * PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます) 13477 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13478 */ 13479 extern int GetDrawStringKerningPairInfo(const (dxlib_d.DxDataType.TCHAR)* PairChar, int* KernAmount); 13480 13481 /** 13482 * デフォルトフォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13483 * 13484 * Params: 13485 * PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます) 13486 * PairCharLength = ? 13487 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13488 */ 13489 extern int GetDrawStringKerningPairInfoWithStrLen(const (dxlib_d.DxDataType.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount); 13490 13491 /** 13492 * フォントハンドルのフォント名を取得する 13493 */ 13494 extern const (dxlib_d.DxDataType.TCHAR)* GetFontNameToHandle(int FontHandle); 13495 13496 /** 13497 * フォントハンドルのキャッシュできる文字の数を取得する 13498 */ 13499 extern int GetFontMaxCacheCharNumToHandle(int FontHandle); 13500 13501 /** 13502 * フォントハンドルの文字の最大幅を取得する 13503 */ 13504 extern int GetFontMaxWidthToHandle(int FontHandle); 13505 13506 /** 13507 * フォントハンドルの描画位置からベースラインまでの高さを取得する 13508 */ 13509 extern int GetFontAscentToHandle(int FontHandle); 13510 13511 /** 13512 * フォントハンドルのサイズを取得する 13513 */ 13514 extern int GetFontSizeToHandle(int FontHandle); 13515 13516 /** 13517 * フォントハンドルの縁サイズを取得する 13518 */ 13519 extern int GetFontEdgeSizeToHandle(int FontHandle); 13520 13521 /** 13522 * フォントハンドルの字間を取得する 13523 */ 13524 extern int GetFontSpaceToHandle(int FontHandle); 13525 13526 /** 13527 * フォントハンドルの行間を取得する 13528 */ 13529 extern int GetFontLineSpaceToHandle(int FontHandle); 13530 13531 /** 13532 * フォントハンドルの指定の文字の描画情報を取得する 13533 */ 13534 extern int GetFontCharInfo(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY); 13535 13536 /** 13537 * フォントハンドルの指定の文字の描画情報を取得する 13538 */ 13539 extern int GetFontCharInfoWithStrLen(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* Char, size_t CharLength, int* DrawX, int* DrawY, int* NextCharX, int* SizeX, int* SizeY); 13540 13541 /** 13542 * フォントハンドルを使用した文字列の描画幅を取得する 13543 */ 13544 extern int GetDrawStringWidthToHandle(const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13545 13546 /** 13547 * フォントハンドルを使用した文字列の描画幅を取得する 13548 */ 13549 extern int GetDrawNStringWidthToHandle(const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13550 13551 /** 13552 * フォントハンドルを使用した書式付き文字列の描画幅を取得する 13553 */ 13554 extern int GetDrawFormatStringWidthToHandle(int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13555 13556 /** 13557 * フォントハンドルを使用した文字列の描画幅を取得する 13558 */ 13559 extern int GetDrawExtendStringWidthToHandle(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13560 13561 /** 13562 * フォントハンドルを使用した文字列の描画幅を取得する 13563 */ 13564 extern int GetDrawExtendNStringWidthToHandle(double ExRateX, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13565 13566 /** 13567 * フォントハンドルを使用した書式付き文字列の描画幅を取得する 13568 */ 13569 extern int GetDrawExtendFormatStringWidthToHandle(double ExRateX, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13570 13571 /** 13572 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13573 */ 13574 extern int GetDrawStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13575 13576 /** 13577 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13578 */ 13579 extern int GetDrawNStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13580 13581 /** 13582 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13583 */ 13584 extern int GetDrawFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13585 13586 /** 13587 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13588 */ 13589 extern int GetDrawExtendStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13590 13591 /** 13592 * フォントハンドルを使用した文字列の描画幅・高さ・行数を取得する 13593 */ 13594 extern int GetDrawExtendNStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13595 13596 /** 13597 * フォントハンドルを使用した書式付き文字列の描画幅・高さ・行数を取得する 13598 */ 13599 extern int GetDrawExtendFormatStringSizeToHandle(int* SizeX, int* SizeY, int* LineCount, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13600 13601 /** 13602 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13603 */ 13604 extern int GetDrawStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13605 13606 /** 13607 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13608 */ 13609 extern int GetDrawNStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13610 13611 /** 13612 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13613 */ 13614 extern int GetDrawFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13615 13616 /** 13617 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13618 */ 13619 extern int GetDrawExtendStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int StrLen, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13620 13621 /** 13622 * フォントハンドルを使用した文字列の1文字毎の情報を取得する 13623 */ 13624 extern int GetDrawExtendNStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13625 13626 /** 13627 * フォントハンドルを使用した書式付き文字列の1文字毎の情報を取得する 13628 */ 13629 extern int GetDrawExtendFormatStringCharInfoToHandle(.DRAWCHARINFO* InfoBuffer, size_t InfoBufferSize, double ExRateX, double ExRateY, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13630 13631 /** 13632 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13633 * 13634 * Params: 13635 * PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます) 13636 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13637 * FontHandle = ? 13638 */ 13639 extern int GetDrawStringKerningPairInfoToHandle(const (dxlib_d.DxDataType.TCHAR)* PairChar, int* KernAmount, int FontHandle); 13640 13641 /** 13642 * フォントハンドルを使用した二つの文字のペアのカーニング情報を取得する 13643 * 13644 * Params: 13645 * PairChar = カーニング情報を調べるペアとなる2文字の文字列(2文字以上あっても先頭の2文字だけ使用されます) 13646 * KernAmount = 2文字目の文字を基本の位置からずらすドット数を代入するint型変数のアドレス 13647 * FontHandle = ? 13648 */ 13649 extern int GetDrawStringKerningPairInfoToHandleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* PairChar, size_t PairCharLength, int* KernAmount, int FontHandle); 13650 13651 /** 13652 * フォントハンドルの情報を取得する 13653 */ 13654 extern int GetFontStateToHandle(dxlib_d.DxDataType.TCHAR* FontName, int* Size, int* Thick, int FontHandle, int* FontType = null, int* CharSet = null, int* EdgeSize = null, int* Italic = null); 13655 13656 /** 13657 * フォントハンドルがテクスチャキャッシュを使用しているかどうかを取得する 13658 */ 13659 extern int CheckFontCacheToTextureFlag(int FontHandle); 13660 13661 /** 13662 * CheckFontCacheToTextureFlagの誤字版 13663 */ 13664 extern int CheckFontChacheToTextureFlag(int FontHandle); 13665 13666 /** 13667 * フォントハンドルが有効かどうかを取得する 13668 */ 13669 extern int CheckFontHandleValid(int FontHandle); 13670 13671 /** 13672 * フォントハンドルのキャッシュ情報を初期化する 13673 */ 13674 extern int ClearFontCacheToHandle(int FontHandle); 13675 13676 /** 13677 * フォントのキャッシュにテクスチャを使用するかどうかを設定する 13678 * 13679 * Params: 13680 * Flag = dxlib_d.DxDataType.TRUE:テクスチャを使用する(デフォルト) dxlib_d.DxDataType.FALSE:テクスチャは使用しない 13681 */ 13682 extern int SetFontCacheToTextureFlag(int Flag); 13683 13684 /** 13685 * フォントのキャッシュにテクスチャを使用するかどうかを設定する 13686 */ 13687 extern int GetFontCacheToTextureFlag(); 13688 13689 /** 13690 * SetFontCacheToTextureFlagの誤字版 13691 */ 13692 extern int SetFontChacheToTextureFlag(int Flag); 13693 13694 /** 13695 * GetFontCacheToTextureFlagの誤字版 13696 */ 13697 extern int GetFontChacheToTextureFlag(); 13698 13699 /** 13700 * フォントのキャッシュとして使用するテクスチャのカラービット深度を設定する(16又は32のみ指定可能 デフォルトは32) 13701 */ 13702 extern int SetFontCacheTextureColorBitDepth(int ColorBitDepth); 13703 13704 /** 13705 * フォントのキャッシュとして使用するテクスチャのカラービット深度を取得する 13706 */ 13707 extern int GetFontCacheTextureColorBitDepth(); 13708 13709 /** 13710 * フォントキャッシュでキャッシュできる文字数を設定する 13711 */ 13712 extern int SetFontCacheCharNum(int CharNum); 13713 13714 /** 13715 * フォントキャッシュでキャッシュできる文字数を取得する 13716 * 13717 * Returns: 0:デフォルト 1以上:指定文字数 13718 */ 13719 extern int GetFontCacheCharNum(); 13720 13721 /** 13722 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを設定する 13723 * 13724 * Params: 13725 * Flag = dxlib_d.DxDataType.TRUE:乗算済みαを使用する FLASE:乗算済みαを使用しない(デフォルト) 13726 */ 13727 extern int SetFontCacheUsePremulAlphaFlag(int Flag); 13728 13729 /** 13730 * フォントキャッシュとして保存する画像の形式を乗算済みαチャンネル付き画像にするかどうかを取得する 13731 */ 13732 extern int GetFontCacheUsePremulAlphaFlag(); 13733 13734 /** 13735 * フォントのサイズを補正する処理を行うかどうかを設定する 13736 * 13737 * Params: 13738 * Flag = dxlib_d.DxDataType.TRUE:行う(デフォルト) dxlib_d.DxDataType.FALSE:行わない 13739 */ 13740 extern int SetFontUseAdjustSizeFlag(int Flag); 13741 13742 /** 13743 * フォントのサイズを補正する処理を行うかどうかを取得する 13744 */ 13745 extern int GetFontUseAdjustSizeFlag(); 13746 13747 // FontCacheStringDrawの代わりにDrawStringを使ってください 13748 13749 /** 13750 * ? 13751 */ 13752 extern int FontCacheStringDrawToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, uint Color, uint EdgeColor, .BASEIMAGE* DestImage, const (dxlib_d.DxDataType.RECT)* ClipRect /* null可 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxDataType.SIZE* DrawSizeP = null); 13753 13754 /** 13755 * ? 13756 */ 13757 extern int FontCacheStringDrawToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, uint Color, uint EdgeColor, .BASEIMAGE* DestImage, const (dxlib_d.DxDataType.RECT)* ClipRect /* null可 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxDataType.SIZE* DrawSizeP = null); 13758 13759 /** 13760 * 基本イメージに文字列を描画する(デフォルトフォントハンドルを使用する) 13761 */ 13762 extern int FontBaseImageBlt(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13763 13764 /** 13765 * 基本イメージに文字列を描画する(デフォルトフォントハンドルを使用する) 13766 */ 13767 extern int FontBaseImageBltWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13768 13769 /** 13770 * 基本イメージに文字列を描画する 13771 */ 13772 extern int FontBaseImageBltToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13773 13774 /** 13775 * 基本イメージに文字列を描画する 13776 */ 13777 extern int FontBaseImageBltToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, .BASEIMAGE* DestImage, .BASEIMAGE* DestEdgeImage, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 13778 13779 /** 13780 * 2バイト文字か調べる(dxlib_d.DxDataType.TRUE:2バイト文字 dxlib_d.DxDataType.FALSE:1バイト文字) 13781 * 13782 * Returns: dxlib_d.DxDataType.TRUE:2バイト文字 dxlib_d.DxDataType.FALSE:1バイト文字 13783 */ 13784 extern int MultiByteCharCheck(const (char)* Buf, int CharSet /* DX_CHARSET_SHFTJIS */); 13785 13786 // 文字列描画関数 13787 13788 /** 13789 * デフォルトフォントハンドルを使用して文字列を描画する 13790 */ 13791 extern int DrawString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13792 13793 /** 13794 * デフォルトフォントハンドルを使用して文字列を描画する 13795 */ 13796 extern int DrawNString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13797 13798 /** 13799 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き) 13800 */ 13801 extern int DrawVString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13802 13803 /** 13804 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き) 13805 */ 13806 extern int DrawNVString(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13807 13808 /** 13809 * デフォルトフォントハンドルを使用して書式指定文字列を描画する 13810 */ 13811 extern int DrawFormatString(int x, int y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13812 13813 /** 13814 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(縦書き) 13815 */ 13816 extern int DrawFormatVString(int x, int y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13817 13818 /** 13819 * デフォルトフォントハンドルを使用して文字列の拡大描画 13820 */ 13821 extern int DrawExtendString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13822 13823 /** 13824 * デフォルトフォントハンドルを使用して文字列の拡大描画 13825 */ 13826 extern int DrawExtendNString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13827 13828 /** 13829 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き) 13830 */ 13831 extern int DrawExtendVString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13832 13833 /** 13834 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き) 13835 */ 13836 extern int DrawExtendNVString(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13837 13838 /** 13839 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する 13840 */ 13841 extern int DrawExtendFormatString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13842 13843 /** 13844 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(縦書き) 13845 */ 13846 extern int DrawExtendFormatVString(int x, int y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13847 13848 /** 13849 * デフォルトフォントハンドルを使用して文字列を回転描画する 13850 */ 13851 extern int DrawRotaString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null); 13852 13853 /** 13854 * デフォルトフォントハンドルを使用して文字列を回転描画する 13855 */ 13856 extern int DrawRotaNString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0); 13857 13858 /** 13859 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する 13860 */ 13861 extern int DrawRotaFormatString(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...); 13862 13863 /** 13864 * デフォルトフォントハンドルを使用して文字列を変形描画する 13865 */ 13866 extern int DrawModiString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null); 13867 13868 /** 13869 * デフォルトフォントハンドルを使用して文字列を変形描画する 13870 */ 13871 extern int DrawModiNString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0); 13872 13873 /** 13874 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する 13875 */ 13876 extern int DrawModiFormatString(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...); 13877 13878 /** 13879 * デフォルトフォントハンドルを使用して文字列を描画する(座標指定がfloat版) 13880 */ 13881 extern int DrawStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13882 13883 /** 13884 * デフォルトフォントハンドルを使用して文字列を描画する(座標指定がfloat版) 13885 */ 13886 extern int DrawNStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13887 13888 /** 13889 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版) 13890 */ 13891 extern int DrawVStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13892 13893 /** 13894 * デフォルトフォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版) 13895 */ 13896 extern int DrawNVStringF(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13897 13898 /** 13899 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(座標指定がfloat版) 13900 */ 13901 extern int DrawFormatStringF(float x, float y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13902 13903 /** 13904 * デフォルトフォントハンドルを使用して書式指定文字列を描画する(縦書き)(座標指定がfloat版) 13905 */ 13906 extern int DrawFormatVStringF(float x, float y, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13907 13908 /** 13909 * デフォルトフォントハンドルを使用して文字列の拡大描画(座標指定がfloat版) 13910 */ 13911 extern int DrawExtendStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13912 13913 /** 13914 * デフォルトフォントハンドルを使用して文字列の拡大描画(座標指定がfloat版) 13915 */ 13916 extern int DrawExtendNStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13917 13918 /** 13919 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)(座標指定がfloat版) 13920 */ 13921 extern int DrawExtendVStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, uint EdgeColor = 0); 13922 13923 /** 13924 * デフォルトフォントハンドルを使用して文字列の拡大描画(縦書き)(座標指定がfloat版) 13925 */ 13926 extern int DrawExtendNVStringF(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, uint EdgeColor = 0); 13927 13928 /** 13929 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(座標指定がfloat版) 13930 */ 13931 extern int DrawExtendFormatStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13932 13933 /** 13934 * デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)(座標指定がfloat版) 13935 */ 13936 extern int DrawExtendFormatVStringF(float x, float y, double ExRateX, double ExRateY, uint Color, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 13937 13938 /** 13939 * デフォルトフォントハンドルを使用して文字列を回転描画する(座標指定がfloat版) 13940 */ 13941 extern int DrawRotaStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null); 13942 13943 /** 13944 * デフォルトフォントハンドルを使用して文字列を回転描画する(座標指定がfloat版) 13945 */ 13946 extern int DrawRotaNStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0); 13947 13948 /** 13949 * デフォルトフォントハンドルを使用して書式指定文字列を回転描画する(座標指定がfloat版) 13950 */ 13951 extern int DrawRotaFormatStringF(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...); 13952 13953 /** 13954 * デフォルトフォントハンドルを使用して文字列を変形描画する(座標指定がfloat版) 13955 */ 13956 extern int DrawModiStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null); 13957 13958 /** 13959 * デフォルトフォントハンドルを使用して文字列を変形描画する(座標指定がfloat版) 13960 */ 13961 extern int DrawModiNStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0); 13962 13963 /** 13964 * デフォルトフォントハンドルを使用して書式指定文字列を変形描画する(座標指定がfloat版) 13965 */ 13966 extern int DrawModiFormatStringF(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...); 13967 13968 /** 13969 * デフォルトフォントハンドルを使用して整数型の数値を描画する 13970 */ 13971 extern int DrawNumberToI(int x, int y, int Num, int RisesNum, uint Color, uint EdgeColor = 0); 13972 13973 /** 13974 * デフォルトフォントハンドルを使用して浮動小数点型の数値を描画する 13975 */ 13976 extern int DrawNumberToF(int x, int y, double Num, int Length, uint Color, uint EdgeColor = 0); 13977 13978 /** 13979 * デフォルトフォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する 13980 */ 13981 extern int DrawNumberPlusToI(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, int Num, int RisesNum, uint Color, uint EdgeColor = 0); 13982 13983 /** 13984 * デフォルトフォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する 13985 */ 13986 extern int DrawNumberPlusToF(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, double Num, int Length, uint Color, uint EdgeColor = 0); 13987 13988 /** 13989 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する 13990 */ 13991 extern int DrawStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */); 13992 13993 /** 13994 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する 13995 */ 13996 extern int DrawNStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */); 13997 13998 /** 13999 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する(縦書き) 14000 */ 14001 extern int DrawVStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */); 14002 14003 /** 14004 * デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する(縦書き) 14005 */ 14006 extern int DrawNVStringToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */); 14007 14008 /** 14009 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する 14010 */ 14011 extern int DrawFormatStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14012 14013 /** 14014 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する(縦書き) 14015 */ 14016 extern int DrawFormatVStringToZBuffer(int x, int y, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14017 14018 /** 14019 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する 14020 */ 14021 extern int DrawExtendStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */); 14022 14023 /** 14024 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する 14025 */ 14026 extern int DrawExtendNStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */); 14027 14028 /** 14029 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き) 14030 */ 14031 extern int DrawExtendVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int WriteZMode /* DX_ZWRITE_MASK等 */); 14032 14033 /** 14034 * デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き) 14035 */ 14036 extern int DrawExtendNVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int WriteZMode /* DX_ZWRITE_MASK等 */); 14037 14038 /** 14039 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する 14040 */ 14041 extern int DrawExtendFormatStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14042 14043 /** 14044 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する(縦書き) 14045 */ 14046 extern int DrawExtendFormatVStringToZBuffer(int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14047 14048 /** 14049 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する 14050 */ 14051 extern int DrawRotaStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14052 14053 /** 14054 * デフォルトフォントハンドルを使用してZバッファに対して文字列を回転描画する 14055 */ 14056 extern int DrawRotaNStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14057 14058 /** 14059 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する 14060 */ 14061 extern int DrawRotaFormatStringToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14062 14063 /** 14064 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する 14065 */ 14066 extern int DrawModiStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14067 14068 /** 14069 * デフォルトフォントハンドルを使用してZバッファに対して文字列を変形描画する 14070 */ 14071 extern int DrawModiNStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14072 14073 /** 14074 * デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する 14075 */ 14076 extern int DrawModiFormatStringToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14077 14078 /** 14079 * フォントハンドルを使用して文字列を描画する 14080 */ 14081 extern int DrawStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14082 14083 /** 14084 * フォントハンドルを使用して文字列を描画する 14085 */ 14086 extern int DrawNStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14087 14088 /** 14089 * フォントハンドルを使用して文字列を描画する(縦書き) 14090 */ 14091 extern int DrawVStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14092 14093 /** 14094 * フォントハンドルを使用して文字列を描画する(縦書き) 14095 */ 14096 extern int DrawNVStringToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14097 14098 /** 14099 * フォントハンドルを使用して書式指定文字列を描画する 14100 */ 14101 extern int DrawFormatStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14102 14103 /** 14104 * フォントハンドルを使用して書式指定文字列を描画する(縦書き) 14105 */ 14106 extern int DrawFormatVStringToHandle(int x, int y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14107 14108 /** 14109 * フォントハンドルを使用して文字列を拡大描画する 14110 */ 14111 extern int DrawExtendStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14112 14113 /** 14114 * フォントハンドルを使用して文字列を拡大描画する 14115 */ 14116 extern int DrawExtendNStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14117 14118 /** 14119 * フォントハンドルを使用して文字列を拡大描画する(縦書き) 14120 */ 14121 extern int DrawExtendVStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14122 14123 /** 14124 * フォントハンドルを使用して文字列を拡大描画する(縦書き) 14125 */ 14126 extern int DrawExtendNVStringToHandle(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14127 14128 /** 14129 * フォントハンドルを使用して書式指定文字列を拡大描画する 14130 */ 14131 extern int DrawExtendFormatStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14132 14133 /** 14134 * フォントハンドルを使用して書式指定文字列を拡大描画する(縦書き) 14135 */ 14136 extern int DrawExtendFormatVStringToHandle(int x, int y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14137 14138 /** 14139 * フォントハンドルを使用して文字列を回転描画する 14140 */ 14141 extern int DrawRotaStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14142 14143 /** 14144 * フォントハンドルを使用して文字列を回転描画する 14145 */ 14146 extern int DrawRotaNStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14147 14148 /** 14149 * フォントハンドルを使用して書式指定文字列を回転描画する 14150 */ 14151 extern int DrawRotaFormatStringToHandle(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14152 14153 /** 14154 * フォントハンドルを使用して文字列を変形描画する 14155 */ 14156 extern int DrawModiStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14157 14158 /** 14159 * フォントハンドルを使用して文字列を変形描画する 14160 */ 14161 extern int DrawModiNStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14162 14163 /** 14164 * フォントハンドルを使用して書式指定文字列を変形描画する 14165 */ 14166 extern int DrawModiFormatStringToHandle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14167 14168 /** 14169 * フォントハンドルを使用して文字列を描画する(座標指定がfloat版) 14170 */ 14171 extern int DrawStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14172 14173 /** 14174 * フォントハンドルを使用して文字列を描画する(座標指定がfloat版) 14175 */ 14176 extern int DrawNStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14177 14178 /** 14179 * フォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版) 14180 */ 14181 extern int DrawVStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14182 14183 /** 14184 * フォントハンドルを使用して文字列を描画する(縦書き)(座標指定がfloat版) 14185 */ 14186 extern int DrawNVStringFToHandle(float x, float y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14187 14188 /** 14189 * フォントハンドルを使用して書式指定文字列を描画する(座標指定がfloat版) 14190 */ 14191 extern int DrawFormatStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14192 14193 /** 14194 * フォントハンドルを使用して書式指定文字列を描画する(縦書き)(座標指定がfloat版) 14195 */ 14196 extern int DrawFormatVStringFToHandle(float x, float y, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14197 14198 /** 14199 * フォントハンドルを使用して文字列を拡大描画する(座標指定がfloat版) 14200 */ 14201 extern int DrawExtendStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14202 14203 /** 14204 * フォントハンドルを使用して文字列を拡大描画する(座標指定がfloat版) 14205 */ 14206 extern int DrawExtendNStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14207 14208 /** 14209 * フォントハンドルを使用して文字列を拡大描画する(縦書き)(座標指定がfloat版) 14210 */ 14211 extern int DrawExtendVStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, uint Color, int FontHandle, uint EdgeColor = 0); 14212 14213 /** 14214 * フォントハンドルを使用して文字列を拡大描画する(縦書き)(座標指定がfloat版) 14215 */ 14216 extern int DrawExtendNVStringFToHandle(float x, float y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, uint Color, int FontHandle, uint EdgeColor = 0); 14217 14218 /** 14219 * フォントハンドルを使用して書式指定文字列を拡大描画する(座標指定がfloat版) 14220 */ 14221 extern int DrawExtendFormatStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14222 14223 /** 14224 * フォントハンドルを使用して書式指定文字列を拡大描画する(縦書き)(座標指定がfloat版) 14225 */ 14226 extern int DrawExtendFormatVStringFToHandle(float x, float y, double ExRateX, double ExRateY, uint Color, int FontHandle, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14227 14228 /** 14229 * フォントハンドルを使用して文字列を回転描画する(座標指定がfloat版) 14230 */ 14231 extern int DrawRotaStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null); 14232 14233 /** 14234 * フォントハンドルを使用して文字列を回転描画する(座標指定がfloat版) 14235 */ 14236 extern int DrawRotaNStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* String = null, size_t StringLength = 0); 14237 14238 /** 14239 * フォントハンドルを使用して書式指定文字列を回転描画する(座標指定がfloat版) 14240 */ 14241 extern int DrawRotaFormatStringFToHandle(float x, float y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, uint Color, int FontHandle, uint EdgeColor = 0, int VerticalFlag = dxlib_d.DxDataType.FALSE, const (dxlib_d.DxDataType.TCHAR)* FormatString = null, ...); 14242 14243 /** 14244 * フォントハンドルを使用して文字列を変形描画する(座標指定がfloat版) 14245 */ 14246 extern int DrawModiStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14247 14248 /** 14249 * フォントハンドルを使用して文字列を変形描画する(座標指定がfloat版) 14250 */ 14251 extern int DrawModiNStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14252 14253 /** 14254 * フォントハンドルを使用して書式指定文字列を変形描画する(座標指定がfloat版) 14255 */ 14256 extern int DrawModiFormatStringFToHandle(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, uint Color, int FontHandle, uint EdgeColor, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14257 14258 /** 14259 * フォントハンドルを使用して整数型の数値を描画する 14260 */ 14261 extern int DrawNumberToIToHandle(int x, int y, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0); 14262 14263 /** 14264 * フォントハンドルを使用して浮動小数点型の数値を描画する 14265 */ 14266 extern int DrawNumberToFToHandle(int x, int y, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0); 14267 14268 /** 14269 * フォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する 14270 */ 14271 extern int DrawNumberPlusToIToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, int Num, int RisesNum, uint Color, int FontHandle, uint EdgeColor = 0); 14272 14273 /** 14274 * フォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する 14275 */ 14276 extern int DrawNumberPlusToFToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* NoteString, double Num, int Length, uint Color, int FontHandle, uint EdgeColor = 0); 14277 14278 /** 14279 * フォントハンドルを使用してZバッファに対して文字列を描画する 14280 */ 14281 extern int DrawStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14282 14283 /** 14284 * フォントハンドルを使用してZバッファに対して文字列を描画する 14285 */ 14286 extern int DrawNStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14287 14288 /** 14289 * フォントハンドルを使用してZバッファに対して文字列を描画する(縦書き) 14290 */ 14291 extern int DrawVStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 14292 14293 /** 14294 * フォントハンドルを使用してZバッファに対して文字列を描画する(縦書き) 14295 */ 14296 extern int DrawNVStringToHandleToZBuffer(int x, int y, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 14297 14298 /** 14299 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する 14300 */ 14301 extern int DrawFormatStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14302 14303 /** 14304 * フォントハンドルを使用してZバッファに対して書式指定文字列を描画する(縦書き) 14305 */ 14306 extern int DrawFormatVStringToHandleToZBuffer(int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14307 14308 /** 14309 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する 14310 */ 14311 extern int DrawExtendStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14312 14313 /** 14314 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する 14315 */ 14316 extern int DrawExtendNStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag = dxlib_d.DxDataType.FALSE); 14317 14318 /** 14319 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き) 14320 */ 14321 extern int DrawExtendVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 14322 14323 /** 14324 * フォントハンドルを使用してZバッファに対して文字列を拡大描画する(縦書き) 14325 */ 14326 extern int DrawExtendNVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */); 14327 14328 /** 14329 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する 14330 */ 14331 extern int DrawExtendFormatStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14332 14333 /** 14334 * フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する(縦書き) 14335 */ 14336 extern int DrawExtendFormatVStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14337 14338 /** 14339 * フォントハンドルを使用してZバッファに対して文字列を回転描画する 14340 */ 14341 extern int DrawRotaStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14342 14343 /** 14344 * フォントハンドルを使用してZバッファに対して文字列を回転描画する 14345 */ 14346 extern int DrawRotaNStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14347 14348 /** 14349 * フォントハンドルを使用してZバッファに対して書式指定文字列を回転描画する 14350 */ 14351 extern int DrawRotaFormatStringToHandleToZBuffer(int x, int y, double ExRateX, double ExRateY, double RotCenterX, double RotCenterY, double RotAngle, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14352 14353 /** 14354 * フォントハンドルを使用してZバッファに対して文字列を変形描画する 14355 */ 14356 extern int DrawModiStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String); 14357 14358 /** 14359 * フォントハンドルを使用してZバッファに対して文字列を変形描画する 14360 */ 14361 extern int DrawModiNStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* String, size_t StringLength); 14362 14363 /** 14364 * フォントハンドルを使用してZバッファに対して書式指定文字列を変形描画する 14365 */ 14366 extern int DrawModiFormatStringToHandleToZBuffer(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK等 */, int VerticalFlag, const (dxlib_d.DxDataType.TCHAR)* FormatString, ...); 14367 } 14368 14369 // DxMath.cpp 関数プロトタイプ宣言 14370 14371 // 演算ライブラリ 14372 14373 /** 14374 * float型要素の行列をdouble型要素の行列に変換する 14375 */ 14376 extern int ConvertMatrixFtoD(.MATRIX_D* Out, const (.MATRIX)* In); 14377 14378 /** 14379 * double型要素の行列をfloat型要素の行列に変換する 14380 */ 14381 extern int ConvertMatrixDtoF(.MATRIX* Out, const (.MATRIX_D)* In); 14382 14383 /** 14384 * 単位行列を作成する 14385 */ 14386 extern int CreateIdentityMatrix(.MATRIX* Out); 14387 14388 /** 14389 * 単位行列を作成する 14390 */ 14391 extern int CreateIdentityMatrixD(.MATRIX_D* Out); 14392 14393 /** 14394 * ビュー行列を作成する 14395 */ 14396 extern int CreateLookAtMatrix(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up); 14397 14398 /** 14399 * ビュー行列を作成する 14400 */ 14401 extern int CreateLookAtMatrixD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up); 14402 14403 /** 14404 * ビュー行列を作成する(方向を回転値で指定) 14405 */ 14406 extern int CreateLookAtMatrix2(.MATRIX* Out, const (.VECTOR)* Eye, double XZAngle, double Oira); 14407 14408 /** 14409 * ビュー行列を作成する(方向を回転値で指定) 14410 */ 14411 extern int CreateLookAtMatrix2D(.MATRIX_D* Out, const (.VECTOR_D)* Eye, double XZAngle, double Oira); 14412 14413 /** 14414 * ビュー行列を作成する(右手座標系用) 14415 */ 14416 extern int CreateLookAtMatrixRH(.MATRIX* Out, const (.VECTOR)* Eye, const (.VECTOR)* At, const (.VECTOR)* Up); 14417 14418 /** 14419 * ビュー行列を作成する(右手座標系用) 14420 */ 14421 extern int CreateLookAtMatrixRHD(.MATRIX_D* Out, const (.VECTOR_D)* Eye, const (.VECTOR_D)* At, const (.VECTOR_D)* Up); 14422 14423 /** 14424 * 行列の積を求める 14425 */ 14426 extern int CreateMultiplyMatrix(.MATRIX* Out, const (.MATRIX)* In1, const (.MATRIX)* In2); 14427 14428 /** 14429 * 行列の積を求める 14430 */ 14431 extern int CreateMultiplyMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In1, const (.MATRIX_D)* In2); 14432 14433 /** 14434 * 射影行列を作成する 14435 */ 14436 extern int CreatePerspectiveFovMatrix(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f); 14437 14438 /** 14439 * 射影行列を作成する 14440 */ 14441 extern int CreatePerspectiveFovMatrixD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f); 14442 14443 /** 14444 * 射影行列を作成する(右手座標系用) 14445 */ 14446 extern int CreatePerspectiveFovMatrixRH(.MATRIX* Out, float fov, float zn, float zf, float aspect = -1.0f); 14447 14448 /** 14449 * 射影行列を作成する(右手座標系用) 14450 */ 14451 extern int CreatePerspectiveFovMatrixRHD(.MATRIX_D* Out, double fov, double zn, double zf, double aspect = -1.0f); 14452 14453 /** 14454 * 正射影行列を作成する 14455 */ 14456 extern int CreateOrthoMatrix(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f); 14457 14458 /** 14459 * 正射影行列を作成する 14460 */ 14461 extern int CreateOrthoMatrixD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f); 14462 14463 /** 14464 * 正射影行列を作成する(右手座標系用) 14465 */ 14466 extern int CreateOrthoMatrixRH(.MATRIX* Out, float size, float zn, float zf, float aspect = -1.0f); 14467 14468 /** 14469 * 正射影行列を作成する(右手座標系用) 14470 */ 14471 extern int CreateOrthoMatrixRHD(.MATRIX_D* Out, double size, double zn, double zf, double aspect = -1.0f); 14472 14473 /** 14474 * スケーリング行列を作成する 14475 */ 14476 extern int CreateScalingMatrix(.MATRIX* Out, float sx, float sy, float sz); 14477 14478 /** 14479 * スケーリング行列を作成する 14480 */ 14481 extern int CreateScalingMatrixD(.MATRIX_D* Out, double sx, double sy, double sz); 14482 14483 /** 14484 * X軸を中心とした回転行列を作成する 14485 */ 14486 extern int CreateRotationXMatrix(.MATRIX* Out, float Angle); 14487 14488 /** 14489 * X軸を中心とした回転行列を作成する 14490 */ 14491 extern int CreateRotationXMatrixD(.MATRIX_D* Out, double Angle); 14492 14493 /** 14494 * Y軸を中心とした回転行列を作成する 14495 */ 14496 extern int CreateRotationYMatrix(.MATRIX* Out, float Angle); 14497 14498 /** 14499 * Y軸を中心とした回転行列を作成する 14500 */ 14501 extern int CreateRotationYMatrixD(.MATRIX_D* Out, double Angle); 14502 14503 /** 14504 * Z軸を中心とした回転行列を作成する 14505 */ 14506 extern int CreateRotationZMatrix(.MATRIX* Out, float Angle); 14507 14508 /** 14509 * Z軸を中心とした回転行列を作成する 14510 */ 14511 extern int CreateRotationZMatrixD(.MATRIX_D* Out, double Angle); 14512 14513 /** 14514 * 平行移動行列を作成する 14515 */ 14516 extern int CreateTranslationMatrix(.MATRIX* Out, float x, float y, float z); 14517 14518 /** 14519 * 平行移動行列を作成する 14520 */ 14521 extern int CreateTranslationMatrixD(.MATRIX_D* Out, double x, double y, double z); 14522 14523 /** 14524 * 転置行列を作成する 14525 */ 14526 extern int CreateTransposeMatrix(.MATRIX* Out, const (.MATRIX)* In); 14527 14528 /** 14529 * 転置行列を作成する 14530 */ 14531 extern int CreateTransposeMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In); 14532 14533 /** 14534 * 逆行列を作成する 14535 */ 14536 extern int CreateInverseMatrix(.MATRIX* Out, const (.MATRIX)* In); 14537 14538 /** 14539 * 逆行列を作成する 14540 */ 14541 extern int CreateInverseMatrixD(.MATRIX_D* Out, const (.MATRIX_D)* In); 14542 14543 /** 14544 * ビューポート行列を作成する 14545 */ 14546 extern int CreateViewportMatrix(.MATRIX* Out, float CenterX, float CenterY, float Width, float Height); 14547 14548 /** 14549 * ビューポート行列を作成する 14550 */ 14551 extern int CreateViewportMatrixD(.MATRIX_D* Out, double CenterX, double CenterY, double Width, double Height); 14552 14553 /** 14554 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する 14555 */ 14556 extern int CreateRotationXYZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14557 14558 /** 14559 * X軸回転→Y軸回転→Z軸回転を合成した行列を作成する 14560 */ 14561 extern int CreateRotationXYZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14562 14563 /** 14564 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する 14565 */ 14566 extern int CreateRotationXZYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14567 14568 /** 14569 * X軸回転→Z軸回転→Y軸回転を合成した行列を作成する 14570 */ 14571 extern int CreateRotationXZYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14572 14573 /** 14574 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する 14575 */ 14576 extern int CreateRotationYXZMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14577 14578 /** 14579 * Y軸回転→X軸回転→Z軸回転を合成した行列を作成する 14580 */ 14581 extern int CreateRotationYXZMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14582 14583 /** 14584 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する 14585 */ 14586 extern int CreateRotationYZXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14587 14588 /** 14589 * Y軸回転→Z軸回転→X軸回転を合成した行列を作成する 14590 */ 14591 extern int CreateRotationYZXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14592 14593 /** 14594 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する 14595 */ 14596 extern int CreateRotationZXYMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14597 14598 /** 14599 * Z軸回転→X軸回転→Y軸回転を合成した行列を作成する 14600 */ 14601 extern int CreateRotationZXYMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14602 14603 /** 14604 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する 14605 */ 14606 extern int CreateRotationZYXMatrix(.MATRIX* Out, float XRot, float YRot, float ZRot); 14607 14608 /** 14609 * Z軸回転→Y軸回転→X軸回転を合成した行列を作成する 14610 */ 14611 extern int CreateRotationZYXMatrixD(.MATRIX_D* Out, double XRot, double YRot, double ZRot); 14612 14613 /** 14614 * 行列からXYZ軸回転の値を取得する 14615 * 14616 * Returns: -1:ジンバルロック発生 0:成功 14617 */ 14618 extern int GetMatrixXYZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14619 14620 /** 14621 * 行列からXYZ軸回転の値を取得する 14622 * 14623 * Returns: -1:ジンバルロック発生 0:成功 14624 */ 14625 extern int GetMatrixXYZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14626 14627 /** 14628 * 行列からXZY軸回転の値を取得する 14629 * 14630 * Returns: -1:ジンバルロック発生 0:成功 14631 */ 14632 extern int GetMatrixXZYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14633 14634 /** 14635 * 行列からXZY軸回転の値を取得する 14636 * 14637 * Returns: -1:ジンバルロック発生 0:成功 14638 */ 14639 extern int GetMatrixXZYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14640 14641 /** 14642 * 行列からYXZ軸回転の値を取得する 14643 * 14644 * Returns: -1:ジンバルロック発生 0:成功 14645 */ 14646 extern int GetMatrixYXZRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14647 14648 /** 14649 * 行列からYXZ軸回転の値を取得する 14650 * 14651 * Returns: -1:ジンバルロック発生 0:成功 14652 */ 14653 extern int GetMatrixYXZRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14654 14655 /** 14656 * 行列からYZX軸回転の値を取得する 14657 * 14658 * Returns: -1:ジンバルロック発生 0:成功 14659 */ 14660 extern int GetMatrixYZXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14661 14662 /** 14663 * 行列からYZX軸回転の値を取得する 14664 * 14665 * Returns: -1:ジンバルロック発生 0:成功 14666 */ 14667 extern int GetMatrixYZXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14668 14669 /** 14670 * 行列からZXY軸回転の値を取得する 14671 * 14672 * Returns: -1:ジンバルロック発生 0:成功 14673 */ 14674 extern int GetMatrixZXYRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14675 14676 /** 14677 * 行列からZXY軸回転の値を取得する 14678 * 14679 * Returns: -1:ジンバルロック発生 0:成功 14680 */ 14681 extern int GetMatrixZXYRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14682 14683 /** 14684 * 行列からZYX軸回転の値を取得する 14685 * 14686 * Returns: -1:ジンバルロック発生 0:成功 14687 */ 14688 extern int GetMatrixZYXRotation(const (.MATRIX)* In, float* OutXRot, float* OutYRot, float* OutZRot); 14689 14690 /** 14691 * 行列からZYX軸回転の値を取得する 14692 * 14693 * Returns: -1:ジンバルロック発生 0:成功 14694 */ 14695 extern int GetMatrixZYXRotationD(const (.MATRIX_D)* In, double* OutXRot, double* OutYRot, double* OutZRot); 14696 14697 /** 14698 * float型のベクトルをdouble型のベクトルに変換する 14699 */ 14700 extern int VectorConvertFtoD(.VECTOR_D* Out, const (.VECTOR)* In); 14701 14702 /** 14703 * double型のベクトルをfloat型のベクトルに変換する 14704 */ 14705 extern int VectorConvertDtoF(.VECTOR* Out, const (.VECTOR_D)* In); 14706 14707 /** 14708 * ベクトルを正規化する 14709 */ 14710 extern int VectorNormalize(.VECTOR* Out, const (.VECTOR)* In); 14711 14712 /** 14713 * ベクトルを正規化する 14714 */ 14715 extern int VectorNormalizeD(.VECTOR_D* Out, const (.VECTOR_D)* In); 14716 14717 /** 14718 * ベクトルをスカラー倍する 14719 */ 14720 extern int VectorScale(.VECTOR* Out, const (.VECTOR)* In, float Scale); 14721 14722 /** 14723 * ベクトルをスカラー倍する 14724 */ 14725 extern int VectorScaleD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Scale); 14726 14727 /** 14728 * ベクトルの掛け算をする 14729 */ 14730 extern int VectorMultiply(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14731 14732 /** 14733 * ベクトルの掛け算をする 14734 */ 14735 extern int VectorMultiplyD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14736 14737 /** 14738 * Out = In1 - In2のベクトル計算をする 14739 */ 14740 extern int VectorSub(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14741 14742 /** 14743 * Out = In1 - In2のベクトル計算をする 14744 */ 14745 extern int VectorSubD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14746 14747 /** 14748 * Out = In1 + In2のベクトル計算をする 14749 */ 14750 extern int VectorAdd(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14751 14752 /** 14753 * Out = In1 + In2のベクトル計算をする 14754 */ 14755 extern int VectorAddD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14756 14757 /** 14758 * In1とIn2の外積を計算する 14759 */ 14760 extern int VectorOuterProduct(.VECTOR* Out, const (.VECTOR)* In1, const (.VECTOR)* In2); 14761 14762 /** 14763 * In1とIn2の外積を計算する 14764 */ 14765 extern int VectorOuterProductD(.VECTOR_D* Out, const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14766 14767 /** 14768 * In1とIn2の内積を計算する 14769 */ 14770 extern float VectorInnerProduct(const (.VECTOR)* In1, const (.VECTOR)* In2); 14771 14772 /** 14773 * In1とIn2の内積を計算する 14774 */ 14775 extern double VectorInnerProductD(const (.VECTOR_D)* In1, const (.VECTOR_D)* In2); 14776 14777 /** 14778 * ベクトルのX軸を軸にした回転を行う 14779 */ 14780 extern int VectorRotationX(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14781 14782 /** 14783 * ベクトルのX軸を軸にした回転を行う 14784 */ 14785 extern int VectorRotationXD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14786 14787 /** 14788 * ベクトルのY軸を軸にした回転を行う 14789 */ 14790 extern int VectorRotationY(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14791 14792 /** 14793 * ベクトルのY軸を軸にした回転を行う 14794 */ 14795 extern int VectorRotationYD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14796 14797 /** 14798 * ベクトルのZ軸を軸にした回転を行う 14799 */ 14800 extern int VectorRotationZ(.VECTOR* Out, const (.VECTOR)* In, double Angle); 14801 14802 /** 14803 * ベクトルのZ軸を軸にした回転を行う 14804 */ 14805 extern int VectorRotationZD(.VECTOR_D* Out, const (.VECTOR_D)* In, double Angle); 14806 14807 /** 14808 * ベクトル行列と4x4正方行列を乗算する(wは1と仮定) 14809 */ 14810 extern int VectorTransform(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix); 14811 14812 /** 14813 * ベクトル行列と4x4正方行列を乗算する(wは1と仮定) 14814 */ 14815 extern int VectorTransformD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix); 14816 14817 /** 14818 * ベクトル行列と4x4正方行列の回転部分のみを乗算する 14819 */ 14820 extern int VectorTransformSR(.VECTOR* Out, const (.VECTOR)* InVec, const (.MATRIX)* InMatrix); 14821 14822 /** 14823 * ベクトル行列と4x4正方行列の回転部分のみを乗算する 14824 */ 14825 extern int VectorTransformSRD(.VECTOR_D* Out, const (.VECTOR_D)* InVec, const (.MATRIX_D)* InMatrix); 14826 14827 /** 14828 * ベクトル行列と4x4正方行列を乗算する(wの要素を渡す) 14829 */ 14830 extern int VectorTransform4(.VECTOR* Out, float* V4Out, const (.VECTOR)* InVec, const (float)* V4In, const (.MATRIX)* InMatrix); 14831 14832 /** 14833 * ベクトル行列と4x4正方行列を乗算する(wの要素を渡す) 14834 */ 14835 extern int VectorTransform4D(.VECTOR_D* Out, double* V4Out, const (.VECTOR_D)* InVec, const (double)* V4In, const (.MATRIX_D)* InMatrix); 14836 14837 /** 14838 * 二つの線分の最接近点情報を解析する 14839 */ 14840 extern int Segment_Segment_Analyse(const (.VECTOR)* SegmentAPos1, const (.VECTOR)* SegmentAPos2, const (.VECTOR)* SegmentBPos1, const (.VECTOR)* SegmentBPos2, .SEGMENT_SEGMENT_RESULT* Result); 14841 14842 /** 14843 * 二つの線分の最接近点情報を解析する 14844 */ 14845 extern int Segment_Segment_AnalyseD(const (.VECTOR_D)* SegmentAPos1, const (.VECTOR_D)* SegmentAPos2, const (.VECTOR_D)* SegmentBPos1, const (.VECTOR_D)* SegmentBPos2, .SEGMENT_SEGMENT_RESULT_D* Result); 14846 14847 /** 14848 * 線分と点の最接近点情報を解析する 14849 */ 14850 extern int Segment_Point_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* PointPos, .SEGMENT_POINT_RESULT* Result); 14851 14852 /** 14853 * 線分と点の最接近点情報を解析する 14854 */ 14855 extern int Segment_Point_AnalyseD(const (.VECTOR_D)* SegmentPos1, const (.VECTOR_D)* SegmentPos2, const (.VECTOR_D)* PointPos, .SEGMENT_POINT_RESULT_D* Result); 14856 14857 /** 14858 * 線分と三角形の最接近点情報を解析する 14859 */ 14860 extern int Segment_Triangle_Analyse(const (.VECTOR)* SegmentPos1, const (.VECTOR)* SegmentPos2, const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, .SEGMENT_TRIANGLE_RESULT* Result); 14861 14862 /** 14863 * 線分と三角形の最接近点情報を解析する 14864 */ 14865 extern int Segment_Triangle_AnalyseD(const (.VECTOR_D)* SegmentPos1, const (.VECTOR_D)* SegmentPos2, const (.VECTOR_D)* TrianglePos1, const (.VECTOR_D)* TrianglePos2, const (.VECTOR_D)* TrianglePos3, .SEGMENT_TRIANGLE_RESULT_D* Result); 14866 14867 /** 14868 * 三角形と点の最接近点情報を解析する 14869 */ 14870 extern int Triangle_Point_Analyse(const (.VECTOR)* TrianglePos1, const (.VECTOR)* TrianglePos2, const (.VECTOR)* TrianglePos3, const (.VECTOR)* PointPos, .TRIANGLE_POINT_RESULT* Result); 14871 14872 /** 14873 * 三角形と点の最接近点情報を解析する 14874 */ 14875 extern int Triangle_Point_AnalyseD(const (.VECTOR_D)* TrianglePos1, const (.VECTOR_D)* TrianglePos2, const (.VECTOR_D)* TrianglePos3, const (.VECTOR_D)* PointPos, .TRIANGLE_POINT_RESULT_D* Result); 14876 14877 /** 14878 * 平面と点の最近点情報を解析する 14879 */ 14880 extern int Plane_Point_Analyse(const (.VECTOR)* PlanePos, const (.VECTOR)* PlaneNormal, const (.VECTOR)* PointPos, .PLANE_POINT_RESULT* Result); 14881 14882 /** 14883 * 平面と点の最近点情報を解析する 14884 */ 14885 extern int Plane_Point_AnalyseD(const (.VECTOR_D)* PlanePos, const (.VECTOR_D)* PlaneNormal, const (.VECTOR_D)* PointPos, .PLANE_POINT_RESULT_D* Result); 14886 14887 /** 14888 * 指定の座標から三角形の重心を求める 14889 */ 14890 extern void TriangleBarycenter(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR Position, float* TrianglePos1Weight, float* TrianglePos2Weight, float* TrianglePos3Weight); 14891 14892 /** 14893 * 指定の座標から三角形の重心を求める 14894 */ 14895 extern void TriangleBarycenterD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D Position, double* TrianglePos1Weight, double* TrianglePos2Weight, double* TrianglePos3Weight); 14896 14897 /** 14898 * 二つの線分の最近点間の距離を得る 14899 */ 14900 extern float Segment_Segment_MinLength(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2); 14901 14902 /** 14903 * 二つの線分の最近点間の距離を得る 14904 */ 14905 extern double Segment_Segment_MinLengthD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2); 14906 14907 /** 14908 * 二つの線分の最近点間の距離の二乗を得る 14909 */ 14910 extern float Segment_Segment_MinLength_Square(.VECTOR SegmentAPos1, .VECTOR SegmentAPos2, .VECTOR SegmentBPos1, .VECTOR SegmentBPos2); 14911 14912 /** 14913 * 二つの線分の最近点間の距離の二乗を得る 14914 */ 14915 extern double Segment_Segment_MinLength_SquareD(.VECTOR_D SegmentAPos1, .VECTOR_D SegmentAPos2, .VECTOR_D SegmentBPos1, .VECTOR_D SegmentBPos2); 14916 14917 /** 14918 * 線分と三角形の最近点間の距離を得る 14919 */ 14920 extern float Segment_Triangle_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 14921 14922 /** 14923 * 線分と三角形の最近点間の距離を得る 14924 */ 14925 extern double Segment_Triangle_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 14926 14927 /** 14928 * 線分と三角形の最近点間の距離の二乗を得る 14929 */ 14930 extern float Segment_Triangle_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 14931 14932 /** 14933 * 線分と三角形の最近点間の距離の二乗を得る 14934 */ 14935 extern double Segment_Triangle_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 14936 14937 /** 14938 * 線分と点の一番近い距離を得る 14939 */ 14940 extern float Segment_Point_MinLength(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos); 14941 14942 /** 14943 * 線分と点の一番近い距離を得る 14944 */ 14945 extern double Segment_Point_MinLengthD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos); 14946 14947 /** 14948 * 線分と点の一番近い距離の二乗を得る 14949 */ 14950 extern float Segment_Point_MinLength_Square(.VECTOR SegmentPos1, .VECTOR SegmentPos2, .VECTOR PointPos); 14951 14952 /** 14953 * 線分と点の一番近い距離の二乗を得る 14954 */ 14955 extern double Segment_Point_MinLength_SquareD(.VECTOR_D SegmentPos1, .VECTOR_D SegmentPos2, .VECTOR_D PointPos); 14956 14957 /** 14958 * 三角形と点の一番近い距離を得る 14959 */ 14960 extern float Triangle_Point_MinLength(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos); 14961 14962 /** 14963 * 三角形と点の一番近い距離を得る 14964 */ 14965 extern double Triangle_Point_MinLengthD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos); 14966 14967 /** 14968 * 三角形と点の一番近い距離の二乗を得る 14969 */ 14970 extern float Triangle_Point_MinLength_Square(.VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3, .VECTOR PointPos); 14971 14972 /** 14973 * 三角形と点の一番近い距離の二乗を得る 14974 */ 14975 extern double Triangle_Point_MinLength_SquareD(.VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3, .VECTOR_D PointPos); 14976 14977 /** 14978 * 二つの三角形の最近点間の距離を得る 14979 */ 14980 extern float Triangle_Triangle_MinLength(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 14981 14982 /** 14983 * 二つの三角形の最近点間の距離を得る 14984 */ 14985 extern double Triangle_Triangle_MinLengthD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 14986 14987 /** 14988 * 二つの三角形の最近点間の距離の二乗を得る 14989 */ 14990 extern float Triangle_Triangle_MinLength_Square(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 14991 14992 /** 14993 * 二つの三角形の最近点間の距離の二乗を得る 14994 */ 14995 extern double Triangle_Triangle_MinLength_SquareD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 14996 14997 /** 14998 * 点に一番近い平面上の座標を得る 14999 */ 15000 extern .VECTOR Plane_Point_MinLength_Position(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos); 15001 15002 /** 15003 * 点に一番近い平面上の座標を得る 15004 */ 15005 extern .VECTOR_D Plane_Point_MinLength_PositionD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos); 15006 15007 /** 15008 * 平面と点の一番近い距離を得る 15009 */ 15010 extern float Plane_Point_MinLength(.VECTOR PlanePos, .VECTOR PlaneNormal, .VECTOR PointPos); 15011 15012 /** 15013 * 平面と点の一番近い距離を得る 15014 */ 15015 extern double Plane_Point_MinLengthD(.VECTOR_D PlanePos, .VECTOR_D PlaneNormal, .VECTOR_D PointPos); 15016 15017 /** 15018 * 三角形と線の当たり判定 15019 */ 15020 extern .HITRESULT_LINE HitCheck_Line_Triangle(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15021 15022 /** 15023 * 三角形と線の当たり判定 15024 */ 15025 extern .HITRESULT_LINE_D HitCheck_Line_TriangleD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15026 15027 /** 15028 * 三角形と三角形の当たり判定 15029 * 15030 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15031 */ 15032 extern int HitCheck_Triangle_Triangle(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15033 15034 /** 15035 * 三角形と三角形の当たり判定 15036 * 15037 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15038 */ 15039 extern int HitCheck_Triangle_TriangleD(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15040 15041 /** 15042 * 三角形と三角形の当たり判定(2D版) 15043 * 15044 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15045 */ 15046 extern int HitCheck_Triangle_Triangle_2D(.VECTOR Triangle1Pos1, .VECTOR Triangle1Pos2, .VECTOR Triangle1Pos3, .VECTOR Triangle2Pos1, .VECTOR Triangle2Pos2, .VECTOR Triangle2Pos3); 15047 15048 /** 15049 * 三角形と三角形の当たり判定(2D版) 15050 * 15051 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15052 */ 15053 extern int HitCheck_Triangle_TriangleD_2D(.VECTOR_D Triangle1Pos1, .VECTOR_D Triangle1Pos2, .VECTOR_D Triangle1Pos3, .VECTOR_D Triangle2Pos1, .VECTOR_D Triangle2Pos2, .VECTOR_D Triangle2Pos3); 15054 15055 /** 15056 * 線と箱の当たり判定 15057 */ 15058 extern .HITRESULT_LINE HitCheck_Line_Cube(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR CubePos1, .VECTOR CubePos2); 15059 15060 /** 15061 * 線と箱の当たり判定 15062 */ 15063 extern .HITRESULT_LINE_D HitCheck_Line_CubeD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D CubePos1, .VECTOR_D CubePos2); 15064 15065 /** 15066 * 点と円錐の当たり判定 15067 * 15068 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15069 */ 15070 extern int HitCheck_Point_Cone(.VECTOR PointPos, .VECTOR ConeTopPos, .VECTOR ConeBottomPos, float ConeR); 15071 15072 /** 15073 * 点と円錐の当たり判定 15074 * 15075 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15076 */ 15077 extern int HitCheck_Point_ConeD(.VECTOR_D PointPos, .VECTOR_D ConeTopPos, .VECTOR_D ConeBottomPos, double ConeR); 15078 15079 /** 15080 * 線と球の当たり判定 15081 * 15082 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15083 */ 15084 extern int HitCheck_Line_Sphere(.VECTOR LinePos1, .VECTOR LinePos2, .VECTOR SphereCenterPos, float SphereR); 15085 15086 /** 15087 * 線と球の当たり判定 15088 * 15089 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15090 */ 15091 extern int HitCheck_Line_SphereD(.VECTOR_D LinePos1, .VECTOR_D LinePos2, .VECTOR_D SphereCenterPos, double SphereR); 15092 15093 /** 15094 * 球と球の当たり判定 15095 * 15096 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15097 */ 15098 extern int HitCheck_Sphere_Sphere(.VECTOR Sphere1CenterPos, float Sphere1R, .VECTOR Sphere2CenterPos, float Sphere2R); 15099 15100 /** 15101 * 球と球の当たり判定 15102 * 15103 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15104 */ 15105 extern int HitCheck_Sphere_SphereD(.VECTOR_D Sphere1CenterPos, double Sphere1R, .VECTOR_D Sphere2CenterPos, double Sphere2R); 15106 15107 /** 15108 * 球とカプセルの当たり判定 15109 * 15110 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15111 */ 15112 extern int HitCheck_Sphere_Capsule(.VECTOR SphereCenterPos, float SphereR, .VECTOR CapPos1, .VECTOR CapPos2, float CapR); 15113 15114 /** 15115 * 球とカプセルの当たり判定 15116 * 15117 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15118 */ 15119 extern int HitCheck_Sphere_CapsuleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR); 15120 15121 /** 15122 * 球と三角形の当たり判定 15123 * 15124 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15125 */ 15126 extern int HitCheck_Sphere_Triangle(.VECTOR SphereCenterPos, float SphereR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15127 15128 /** 15129 * 球と三角形の当たり判定 15130 * 15131 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15132 */ 15133 extern int HitCheck_Sphere_TriangleD(.VECTOR_D SphereCenterPos, double SphereR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15134 15135 /** 15136 * カプセル同士の当たり判定 15137 * 15138 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15139 */ 15140 extern int HitCheck_Capsule_Capsule(.VECTOR Cap1Pos1, .VECTOR Cap1Pos2, float Cap1R, .VECTOR Cap2Pos1, .VECTOR Cap2Pos2, float Cap2R); 15141 15142 /** 15143 * カプセル同士の当たり判定 15144 * 15145 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15146 */ 15147 extern int HitCheck_Capsule_CapsuleD(.VECTOR_D Cap1Pos1, .VECTOR_D Cap1Pos2, double Cap1R, .VECTOR_D Cap2Pos1, .VECTOR_D Cap2Pos2, double Cap2R); 15148 15149 /** 15150 * カプセルと三角形の当たり判定 15151 * 15152 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15153 */ 15154 extern int HitCheck_Capsule_Triangle(.VECTOR CapPos1, .VECTOR CapPos2, float CapR, .VECTOR TrianglePos1, .VECTOR TrianglePos2, .VECTOR TrianglePos3); 15155 15156 /** 15157 * カプセルと三角形の当たり判定 15158 * 15159 * Returns: dxlib_d.DxDataType.TRUE:当たっている dxlib_d.DxDataType.FALSE:当たっていない 15160 */ 15161 extern int HitCheck_Capsule_TriangleD(.VECTOR_D CapPos1, .VECTOR_D CapPos2, double CapR, .VECTOR_D TrianglePos1, .VECTOR_D TrianglePos2, .VECTOR_D TrianglePos3); 15162 15163 // その他 15164 15165 /** 15166 * 矩形のクリッピング 15167 */ 15168 extern int RectClipping(dxlib_d.DxDataType.RECT* Rect, const (dxlib_d.DxDataType.RECT)* ClippuRect); 15169 15170 /** 15171 * 矩形のleftがrightより値が大きい場合などの誤りを補正する 15172 */ 15173 extern int RectAdjust(dxlib_d.DxDataType.RECT* Rect); 15174 15175 /** 15176 * 矩形の幅と高さを求める 15177 */ 15178 extern int GetRectSize(const (dxlib_d.DxDataType.RECT)* Rect, int* Width, int* Height); 15179 15180 // 表記簡略版 15181 15182 /** 15183 * 単位行列を取得する 15184 */ 15185 extern .MATRIX MGetIdent(); 15186 15187 /** 15188 * 単位行列を取得する 15189 */ 15190 extern .MATRIX_D MGetIdentD(); 15191 15192 /** 15193 * 行列の乗算を行う 15194 */ 15195 extern .MATRIX MMult(.MATRIX In1, .MATRIX In2); 15196 15197 /** 15198 * 行列の乗算を行う 15199 */ 15200 extern .MATRIX_D MMultD(.MATRIX_D In1, .MATRIX_D In2); 15201 15202 /** 15203 * 行列のスケーリングを行う 15204 */ 15205 extern .MATRIX MScale(.MATRIX InM, float Scale); 15206 15207 /** 15208 * 行列のスケーリングを行う 15209 */ 15210 extern .MATRIX_D MScaleD(.MATRIX_D InM, double Scale); 15211 15212 /** 15213 * 行列の足し算を行う 15214 */ 15215 extern .MATRIX MAdd(.MATRIX In1, .MATRIX In2); 15216 15217 /** 15218 * 行列の足し算を行う 15219 */ 15220 extern .MATRIX_D MAddD(.MATRIX_D In1, .MATRIX_D In2); 15221 15222 /** 15223 * 拡大行列を取得する 15224 */ 15225 extern .MATRIX MGetScale(.VECTOR Scale); 15226 15227 /** 15228 * 拡大行列を取得する 15229 */ 15230 extern .MATRIX_D MGetScaleD(.VECTOR_D Scale); 15231 15232 /** 15233 * X軸回転行列を取得する 15234 */ 15235 extern .MATRIX MGetRotX(float XAxisRotate); 15236 15237 /** 15238 * X軸回転行列を取得する 15239 */ 15240 extern .MATRIX_D MGetRotXD(double XAxisRotate); 15241 15242 /** 15243 * Y軸回転行列を取得する 15244 */ 15245 extern .MATRIX MGetRotY(float YAxisRotate); 15246 15247 /** 15248 * Y軸回転行列を取得する 15249 */ 15250 extern .MATRIX_D MGetRotYD(double YAxisRotate); 15251 15252 /** 15253 * Z軸回転行列を取得する 15254 */ 15255 extern .MATRIX MGetRotZ(float ZAxisRotate); 15256 15257 /** 15258 * Z軸回転行列を取得する 15259 */ 15260 extern .MATRIX_D MGetRotZD(double ZAxisRotate); 15261 15262 /** 15263 * 指定軸で指定角度回転する行列を取得する 15264 */ 15265 extern .MATRIX MGetRotAxis(.VECTOR RotateAxis, float Rotate); 15266 15267 /** 15268 * 指定軸で指定角度回転する行列を取得する 15269 */ 15270 extern .MATRIX_D MGetRotAxisD(.VECTOR_D RotateAxis, double Rotate); 15271 15272 /** 15273 * In1の向きからIn2の向きへ変換する回転行列を取得する(In2とIn1が真逆のベクトルの場合は回転軸は不定) 15274 */ 15275 extern .MATRIX MGetRotVec2(.VECTOR In1, .VECTOR In2); 15276 15277 /** 15278 * In1の向きからIn2の向きへ変換する回転行列を取得する(In2とIn1が真逆のベクトルの場合は回転軸は不定) 15279 */ 15280 extern .MATRIX_D MGetRotVec2D(.VECTOR_D In1, .VECTOR_D In2); 15281 15282 /** 15283 * 平行移動行列を取得する 15284 */ 15285 extern .MATRIX MGetTranslate(.VECTOR Trans); 15286 15287 /** 15288 * 平行移動行列を取得する 15289 */ 15290 extern .MATRIX_D MGetTranslateD(.VECTOR_D Trans); 15291 15292 /** 15293 * 指定の3軸ローカルのベクトルを基本軸上のベクトルに変換する行列を取得する(x' = (XAxis.x * x) + (YAixs.x * y) + (ZAxis.z * z) + Pos.x y' = (XAxis.y * x) + (YAixs.y * y) + (ZAxis.y * z) + Pos.y z' = (XAxis.z * x) + (YAixs.z * y) + (ZAxis.z * z) + Pos.z) 15294 */ 15295 extern .MATRIX MGetAxis1(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos); 15296 15297 /** 15298 * 指定の3軸ローカルのベクトルを基本軸上のベクトルに変換する行列を取得する(x' = (XAxis.x * x) + (YAixs.x * y) + (ZAxis.z * z) + Pos.x y' = (XAxis.y * x) + (YAixs.y * y) + (ZAxis.y * z) + Pos.y z' = (XAxis.z * x) + (YAixs.z * y) + (ZAxis.z * z) + Pos.z) 15299 */ 15300 extern .MATRIX_D MGetAxis1D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos); 15301 15302 /** 15303 * 基本軸上のベクトルを指定の3軸上に投影したベクトルに変換する行列を取得する(x' = (XAxis.x * (x - Pos.x)) + (XAxis.y * (x - Pos.x)) + (XAxis.z * (x - Pos.x)) y' = (YAxis.x * (x - Pos.x)) + (YAxis.y * (x - Pos.x)) + (YAxis.z * (x - Pos.x)) z' = (ZAxis.x * (x - Pos.x)) + (ZAxis.y * (x - Pos.x)) + (ZAxis.z * (x - Pos.x))) 15304 */ 15305 extern .MATRIX MGetAxis2(.VECTOR XAxis, .VECTOR YAxis, .VECTOR ZAxis, .VECTOR Pos); 15306 15307 /** 15308 * 基本軸上のベクトルを指定の3軸上に投影したベクトルに変換する行列を取得する(x' = (XAxis.x * (x - Pos.x)) + (XAxis.y * (x - Pos.x)) + (XAxis.z * (x - Pos.x)) y' = (YAxis.x * (x - Pos.x)) + (YAxis.y * (x - Pos.x)) + (YAxis.z * (x - Pos.x)) z' = (ZAxis.x * (x - Pos.x)) + (ZAxis.y * (x - Pos.x)) + (ZAxis.z * (x - Pos.x))) 15309 */ 15310 extern .MATRIX_D MGetAxis2D(.VECTOR_D XAxis, .VECTOR_D YAxis, .VECTOR_D ZAxis, .VECTOR_D Pos); 15311 15312 /** 15313 * 転置行列を取得する 15314 */ 15315 extern .MATRIX MTranspose(.MATRIX InM); 15316 15317 /** 15318 * 転置行列を取得する 15319 */ 15320 extern .MATRIX_D MTransposeD(.MATRIX_D InM); 15321 15322 /** 15323 * 逆行列を取得する 15324 */ 15325 extern .MATRIX MInverse(.MATRIX InM); 15326 15327 /** 15328 * 逆行列を取得する 15329 */ 15330 extern .MATRIX_D MInverseD(.MATRIX_D InM); 15331 15332 /** 15333 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する 15334 */ 15335 extern .VECTOR MGetSize(.MATRIX InM); 15336 15337 /** 15338 * 拡大行列のX軸、Y軸、Z軸の拡大率を取得する 15339 */ 15340 extern .VECTOR_D MGetSizeD(.MATRIX_D InM); 15341 15342 /** 15343 * 行列の回転成分を取得する 15344 */ 15345 extern .MATRIX MGetRotElem(.MATRIX InM); 15346 15347 /** 15348 * 行列の回転成分を取得する 15349 */ 15350 extern .MATRIX_D MGetRotElemD(.MATRIX_D InM); 15351 15352 /** 15353 * 行列の平行移動成分を取得する 15354 */ 15355 pragma(inline, true) 15356 pure nothrow @safe @nogc @live 15357 .VECTOR MGetTranslateElem(ref .MATRIX InM) 15358 { 15359 .VECTOR Result = 15360 { 15361 x: InM.m[3][0], 15362 y: InM.m[3][1], 15363 z: InM.m[3][2], 15364 }; 15365 15366 return Result; 15367 } 15368 15369 /** 15370 * 行列の平行移動成分を取得する 15371 */ 15372 pragma(inline, true) 15373 pure nothrow @safe @nogc @live 15374 .VECTOR_D MGetTranslateElemD(ref .MATRIX_D InM) 15375 { 15376 .VECTOR_D Result = 15377 { 15378 x: InM.m[3][0], 15379 y: InM.m[3][1], 15380 z: InM.m[3][2], 15381 }; 15382 15383 return Result; 15384 } 15385 15386 /** 15387 * ベクトル値の変換 15388 */ 15389 pragma(inline, true) 15390 pure nothrow @safe @nogc @live 15391 .VECTOR_D VConvFtoD(const ref .VECTOR In) 15392 { 15393 .VECTOR_D Result = 15394 { 15395 x: In.x, 15396 y: In.y, 15397 z: In.z, 15398 }; 15399 15400 return Result; 15401 } 15402 15403 pragma(inline, true) 15404 pure nothrow @safe @nogc @live 15405 .VECTOR VConvDtoF(const ref .VECTOR_D In) 15406 { 15407 .VECTOR Result = 15408 { 15409 x: cast(float)(In.x), 15410 y: cast(float)(In.y), 15411 z: cast(float)(In.z), 15412 }; 15413 15414 return Result; 15415 } 15416 15417 /** 15418 * ベクトル値の生成 15419 */ 15420 pragma(inline, true) 15421 pure nothrow @safe @nogc @live 15422 .VECTOR VGet(float x, float y, float z) 15423 { 15424 .VECTOR Result = 15425 { 15426 x: x, 15427 y: y, 15428 z: z, 15429 }; 15430 15431 return Result; 15432 } 15433 15434 pragma(inline, true) 15435 pure nothrow @safe @nogc @live 15436 .VECTOR_D VGetD(double x, double y, double z) 15437 { 15438 .VECTOR_D Result = 15439 { 15440 x: x, 15441 y: y, 15442 z: z, 15443 }; 15444 15445 return Result; 15446 } 15447 15448 pragma(inline, true) 15449 pure nothrow @safe @nogc @live 15450 .FLOAT2 F2Get(float u, float v) 15451 { 15452 .FLOAT2 Result = 15453 { 15454 u: u, 15455 v: v, 15456 }; 15457 15458 return Result; 15459 } 15460 15461 /** 15462 * 4要素ベクトル値の生成 15463 */ 15464 pragma(inline, true) 15465 pure nothrow @safe @nogc @live 15466 .FLOAT4 F4Get(float x, float y, float z, float w) 15467 { 15468 .FLOAT4 Result = 15469 { 15470 x: x, 15471 y: y, 15472 z: z, 15473 w: w, 15474 }; 15475 15476 return Result; 15477 } 15478 15479 pragma(inline, true) 15480 pure nothrow @safe @nogc @live 15481 .DOUBLE4 D4Get(double x, double y, double z, double w) 15482 { 15483 .DOUBLE4 Result = 15484 { 15485 x: x, 15486 y: y, 15487 z: z, 15488 w: w, 15489 }; 15490 15491 return Result; 15492 } 15493 15494 /** 15495 * ベクトルの加算 15496 */ 15497 pragma(inline, true) 15498 pure nothrow @safe @nogc @live 15499 .VECTOR VAdd(const ref .VECTOR In1, const ref .VECTOR In2) 15500 { 15501 .VECTOR Result = 15502 { 15503 x: In1.x + In2.x, 15504 y: In1.y + In2.y, 15505 z: In1.z + In2.z, 15506 }; 15507 15508 return Result; 15509 } 15510 15511 pragma(inline, true) 15512 pure nothrow @safe @nogc @live 15513 .VECTOR_D VAddD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15514 { 15515 .VECTOR_D Result = 15516 { 15517 x: In1.x + In2.x, 15518 y: In1.y + In2.y, 15519 z: In1.z + In2.z, 15520 }; 15521 15522 return Result; 15523 } 15524 15525 /** 15526 * ベクトルの減算 15527 */ 15528 pragma(inline, true) 15529 pure nothrow @safe @nogc @live 15530 .VECTOR VSub(const ref .VECTOR In1, const ref .VECTOR In2) 15531 { 15532 .VECTOR Result = 15533 { 15534 x: In1.x - In2.x, 15535 y: In1.y - In2.y, 15536 z: In1.z - In2.z, 15537 }; 15538 15539 return Result; 15540 } 15541 15542 pragma(inline, true) 15543 pure nothrow @safe @nogc @live 15544 .VECTOR_D VSubD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15545 { 15546 .VECTOR_D Result = 15547 { 15548 x: In1.x - In2.x, 15549 y: In1.y - In2.y, 15550 z: In1.z - In2.z, 15551 }; 15552 15553 return Result; 15554 } 15555 15556 pragma(inline, true) 15557 pure nothrow @safe @nogc @live 15558 .FLOAT2 F2Add(const ref .FLOAT2 In1, const ref .FLOAT2 In2) 15559 { 15560 .FLOAT2 Result = 15561 { 15562 u: In1.u + In2.u, 15563 v: In1.v + In2.v, 15564 }; 15565 15566 return Result; 15567 } 15568 15569 /** 15570 * 4要素ベクトルの加算 15571 */ 15572 pragma(inline, true) 15573 pure nothrow @safe @nogc @live 15574 .FLOAT4 F4Add(const ref .FLOAT4 In1, const ref .FLOAT4 In2) 15575 { 15576 .FLOAT4 Result = 15577 { 15578 x: In1.x + In2.x, 15579 y: In1.y + In2.y, 15580 z: In1.z + In2.z, 15581 w: In1.w + In2.w, 15582 }; 15583 15584 return Result; 15585 } 15586 15587 pragma(inline, true) 15588 pure nothrow @safe @nogc @live 15589 .DOUBLE4 D4Add(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2) 15590 { 15591 .DOUBLE4 Result = 15592 { 15593 x: In1.x + In2.x, 15594 y: In1.y + In2.y, 15595 z: In1.z + In2.z, 15596 w: In1.w + In2.w, 15597 }; 15598 15599 return Result; 15600 } 15601 15602 pragma(inline, true) 15603 pure nothrow @safe @nogc @live 15604 .FLOAT2 F2Sub(const ref .FLOAT2 In1, const ref .FLOAT2 In2) 15605 { 15606 .FLOAT2 Result = 15607 { 15608 u: In1.u - In2.u, 15609 v: In1.v - In2.v, 15610 }; 15611 15612 return Result; 15613 } 15614 15615 /** 15616 * 4要素ベクトルの減算 15617 */ 15618 pragma(inline, true) 15619 pure nothrow @safe @nogc @live 15620 .FLOAT4 F4Sub(const ref .FLOAT4 In1, const ref .FLOAT4 In2) 15621 { 15622 .FLOAT4 Result = 15623 { 15624 x: In1.x - In2.x, 15625 y: In1.y - In2.y, 15626 z: In1.z - In2.z, 15627 w: In1.w - In2.w, 15628 }; 15629 15630 return Result; 15631 } 15632 15633 pragma(inline, true) 15634 pure nothrow @safe @nogc @live 15635 .DOUBLE4 D4Sub(const ref .DOUBLE4 In1, const ref .DOUBLE4 In2) 15636 { 15637 .DOUBLE4 Result = 15638 { 15639 x: In1.x - In2.x, 15640 y: In1.y - In2.y, 15641 z: In1.z - In2.z, 15642 w: In1.w - In2.w, 15643 }; 15644 15645 return Result; 15646 } 15647 15648 /** 15649 * ベクトルの内積 15650 */ 15651 pragma(inline, true) 15652 pure nothrow @safe @nogc @live 15653 float VDot(const ref .VECTOR In1, const ref .VECTOR In2) 15654 { 15655 return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z); 15656 } 15657 15658 pragma(inline, true) 15659 pure nothrow @safe @nogc @live 15660 double VDotD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15661 { 15662 return (In1.x * In2.x) + (In1.y * In2.y) + (In1.z * In2.z); 15663 } 15664 15665 /** 15666 * ベクトルの外積 15667 */ 15668 pragma(inline, true) 15669 pure nothrow @safe @nogc @live 15670 .VECTOR VCross(const ref .VECTOR In1, const ref .VECTOR In2) 15671 { 15672 .VECTOR Result = 15673 { 15674 x: (In1.y * In2.z) - (In1.z * In2.y), 15675 y: (In1.z * In2.x) - (In1.x * In2.z), 15676 z: (In1.x * In2.y) - (In1.y * In2.x), 15677 }; 15678 15679 return Result; 15680 } 15681 15682 pragma(inline, true) 15683 pure nothrow @safe @nogc @live 15684 .VECTOR_D VCrossD(const ref .VECTOR_D In1, const ref .VECTOR_D In2) 15685 { 15686 .VECTOR_D Result = 15687 { 15688 x: (In1.y * In2.z) - (In1.z * In2.y), 15689 y: (In1.z * In2.x) - (In1.x * In2.z), 15690 z: (In1.x * In2.y) - (In1.y * In2.x), 15691 }; 15692 15693 return Result; 15694 } 15695 15696 /** 15697 * ベクトルのスケーリング 15698 */ 15699 pragma(inline, true) 15700 pure nothrow @safe @nogc @live 15701 .VECTOR VScale(const ref .VECTOR In, float Scale) 15702 { 15703 .VECTOR Result = 15704 { 15705 x: In.x * Scale, 15706 y: In.y * Scale, 15707 z: In.z * Scale, 15708 }; 15709 15710 return Result; 15711 } 15712 15713 pragma(inline, true) 15714 pure nothrow @safe @nogc @live 15715 .VECTOR_D VScaleD(const ref .VECTOR_D In, double Scale) 15716 { 15717 .VECTOR_D Result = 15718 { 15719 x: In.x * Scale, 15720 y: In.y * Scale, 15721 z: In.z * Scale, 15722 }; 15723 15724 return Result; 15725 } 15726 15727 pragma(inline, true) 15728 pure nothrow @safe @nogc @live 15729 .FLOAT2 F2Scale(const ref .FLOAT2 In, float Scale) 15730 { 15731 .FLOAT2 Result = 15732 { 15733 u: In.u * Scale, 15734 v: In.v * Scale, 15735 }; 15736 15737 return Result; 15738 } 15739 15740 /** 15741 * 4要素ベクトルのスケーリング 15742 */ 15743 pragma(inline, true) 15744 pure nothrow @safe @nogc @live 15745 .FLOAT4 F4Scale(const ref .FLOAT4 In, float Scale) 15746 { 15747 .FLOAT4 Result = 15748 { 15749 x: In.x * Scale, 15750 y: In.y * Scale, 15751 z: In.z * Scale, 15752 w: In.w * Scale, 15753 }; 15754 15755 return Result; 15756 } 15757 15758 pragma(inline, true) 15759 pure nothrow @safe @nogc @live 15760 .DOUBLE4 D4Scale(const ref .DOUBLE4 In, double Scale) 15761 { 15762 .DOUBLE4 Result = 15763 { 15764 x: In.x * Scale, 15765 y: In.y * Scale, 15766 z: In.z * Scale, 15767 w: In.w * Scale, 15768 }; 15769 15770 return Result; 15771 } 15772 15773 /** 15774 * ベクトルの正規化 15775 */ 15776 extern .VECTOR VNorm(.VECTOR In); 15777 15778 /** 15779 * ベクトルの正規化 15780 */ 15781 extern .VECTOR_D VNormD(.VECTOR_D In); 15782 15783 /** 15784 * ベクトルのサイズ 15785 */ 15786 extern float VSize(.VECTOR In); 15787 15788 /** 15789 * ベクトルのサイズ 15790 */ 15791 extern double VSizeD(.VECTOR_D In); 15792 15793 /** 15794 * ベクトルのサイズの2乗 15795 */ 15796 pragma(inline, true) 15797 pure nothrow @safe @nogc @live 15798 float VSquareSize(const ref .VECTOR In) 15799 { 15800 return (In.x * In.x) + (In.y * In.y) + (In.z * In.z); 15801 } 15802 15803 pragma(inline, true) 15804 pure nothrow @safe @nogc @live 15805 double VSquareSizeD(const ref .VECTOR_D In) 15806 { 15807 return (In.x * In.x) + (In.y * In.y) + (In.z * In.z); 15808 } 15809 15810 /** 15811 * 行列を使った座標変換 15812 */ 15813 pragma(inline, true) 15814 pure nothrow @safe @nogc @live 15815 .VECTOR VTransform(const ref .VECTOR InV, const ref .MATRIX InM) 15816 { 15817 .VECTOR Result = 15818 { 15819 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0], 15820 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1], 15821 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2], 15822 }; 15823 15824 return Result; 15825 } 15826 15827 pragma(inline, true) 15828 pure nothrow @safe @nogc @live 15829 .VECTOR_D VTransformD(const ref .VECTOR_D InV, const ref .MATRIX_D InM) 15830 { 15831 .VECTOR_D Result = 15832 { 15833 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]) + InM.m[3][0], 15834 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]) + InM.m[3][1], 15835 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]) + InM.m[3][2], 15836 }; 15837 15838 return Result; 15839 } 15840 15841 /** 15842 * 行列を使った座標変換(スケーリング+回転成分のみ) 15843 */ 15844 pragma(inline, true) 15845 pure nothrow @safe @nogc @live 15846 .VECTOR VTransformSR(const ref .VECTOR InV, const ref .MATRIX InM) 15847 { 15848 .VECTOR Result = 15849 { 15850 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]), 15851 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]), 15852 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]), 15853 }; 15854 15855 return Result; 15856 } 15857 15858 pragma(inline, true) 15859 pure nothrow @safe @nogc @live 15860 .VECTOR_D VTransformSRD(const ref .VECTOR_D InV, const ref .MATRIX_D InM) 15861 { 15862 .VECTOR_D Result = 15863 { 15864 x: (InV.x * InM.m[0][0]) + (InV.y * InM.m[1][0]) + (InV.z * InM.m[2][0]), 15865 y: (InV.x * InM.m[0][1]) + (InV.y * InM.m[1][1]) + (InV.z * InM.m[2][1]), 15866 z: (InV.x * InM.m[0][2]) + (InV.y * InM.m[1][2]) + (InV.z * InM.m[2][2]), 15867 }; 15868 15869 return Result; 15870 } 15871 15872 /** 15873 * 二つのベクトルが成す角のコサイン値を得る 15874 */ 15875 extern float VCos(.VECTOR In1, .VECTOR In2); 15876 15877 /** 15878 * 二つのベクトルが成す角のコサイン値を得る 15879 */ 15880 extern double VCosD(.VECTOR_D In1, .VECTOR_D In2); 15881 15882 /** 15883 * 二つのベクトルが成す角の角度を得る(単位:ラジアン) 15884 */ 15885 extern float VRad(.VECTOR In1, .VECTOR In2); 15886 15887 /** 15888 * 二つのベクトルが成す角の角度を得る(単位:ラジアン) 15889 */ 15890 extern double VRadD(.VECTOR_D In1, .VECTOR_D In2); 15891 15892 /** 15893 * 2つのクォータニオンの乗算の結果を返す 15894 */ 15895 pragma(inline, true) 15896 pure nothrow @safe @nogc @live 15897 .FLOAT4 QTCross(const ref .FLOAT4 A, const ref .FLOAT4 B) 15898 { 15899 .FLOAT4 Result = 15900 { 15901 w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)), 15902 x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)), 15903 y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)), 15904 z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)), 15905 }; 15906 15907 return Result; 15908 } 15909 15910 pragma(inline, true) 15911 pure nothrow @safe @nogc @live 15912 .DOUBLE4 QTCrossD(const ref .DOUBLE4 A, const ref .DOUBLE4 B) 15913 { 15914 .DOUBLE4 Result = 15915 { 15916 w: (A.w * B.w) - ((A.x * B.x) + (A.y * B.y) + (A.z * B.z)), 15917 x: (B.x * A.w) + (A.x * B.w) + ((A.y * B.z) - (A.z * B.y)), 15918 y: (B.y * A.w) + (A.y * B.w) + ((A.z * B.x) - (A.x * B.z)), 15919 z: (B.z * A.w) + (A.z * B.w) + ((A.x * B.y) - (A.y * B.x)), 15920 }; 15921 15922 return Result; 15923 } 15924 15925 /** 15926 * 共役クォータニオンを返す 15927 */ 15928 pragma(inline, true) 15929 pure nothrow @safe @nogc @live 15930 .FLOAT4 QTConj(const ref .FLOAT4 A) 15931 { 15932 .FLOAT4 Result = 15933 { 15934 w: A.w, 15935 x: -A.x, 15936 y: -A.y, 15937 z: -A.z, 15938 }; 15939 15940 return Result; 15941 } 15942 15943 pragma(inline, true) 15944 pure nothrow @safe @nogc @live 15945 .DOUBLE4 QTConjD(const ref .DOUBLE4 A) 15946 { 15947 .DOUBLE4 Result = 15948 { 15949 w: A.w, 15950 x: -A.x, 15951 y: -A.y, 15952 z: -A.z, 15953 }; 15954 15955 return Result; 15956 } 15957 15958 /** 15959 * 回転を表すクォータニオンを返す 15960 */ 15961 extern .FLOAT4 QTRot(.VECTOR Axis, float Angle); 15962 15963 /** 15964 * 回転を表すクォータニオンを返す 15965 */ 15966 extern .DOUBLE4 QTRotD(.VECTOR_D Axis, double Angle); 15967 15968 /** 15969 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数 15970 */ 15971 extern .VECTOR VRotQ(.VECTOR P, .VECTOR Axis, float Angle); 15972 15973 /** 15974 * 3次元空間上の点を任意の軸の周りに任意の角度だけ回転させる関数 15975 */ 15976 extern .VECTOR_D VRotQD(.VECTOR_D P, .VECTOR_D Axis, double Angle); 15977 15978 // DxBaseImage.cpp 関数プロトタイプ宣言 15979 15980 // 基本イメージデータのロード+DIB関係 15981 15982 /** 15983 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する 15984 */ 15985 extern int CreateGraphImageOrDIBGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* DataImage, int DataImageSize, int DataImageType /* LOADIMAGE_TYPE_FILE等 */, int BmpFlag, int ReverseFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData); 15986 15987 /** 15988 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する 15989 */ 15990 extern int CreateGraphImageOrDIBGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* DataImage, int DataImageSize, int DataImageType /* LOADIMAGE_TYPE_FILE等 */, int BmpFlag, int ReverseFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData); 15991 15992 /** 15993 * 画像データから構築したストリーム読み込み用データを使用して基本イメージデータを構築する 15994 */ 15995 extern int CreateGraphImageType2(.STREAMDATA* Src, .BASEIMAGE* Dest); 15996 15997 /** 15998 * 24bitカラー形式のビットマップデータからBMPデータを構築する 15999 */ 16000 extern int CreateBmpInfo(dxlib_d.DxDataType.BITMAPINFO* BmpInfo, int Width, int Height, int Pitch, const (void)* SrcGrData, void** DestGrData); 16001 16002 /** 16003 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する 16004 */ 16005 extern int GetImageSize_File(const (dxlib_d.DxDataType.TCHAR)* FileName, int* SizeX, int* SizeY); 16006 16007 /** 16008 * 画像ファイルの横ピクセル数と縦ピクセル数を取得する 16009 */ 16010 extern int GetImageSize_FileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int* SizeX, int* SizeY); 16011 16012 /** 16013 * メモリ上に展開された画像ファイルの横ピクセル数と縦ピクセル数を取得する 16014 */ 16015 extern int GetImageSize_Mem(const (void)* FileImage, int FileImageSize, int* SizeX, int* SizeY); 16016 16017 /** 16018 * 基本イメージデータの指定座標のフルカラーコードを取得する 16019 */ 16020 extern uint GetGraphImageFullColorCode(const (.BASEIMAGE)* GraphImage, int x, int y); 16021 16022 /** 16023 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する 16024 */ 16025 extern int CreateGraphImage_plus_Alpha(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* RgbImage, int RgbImageSize, int RgbImageType, const (void)* AlphaImage, int AlphaImageSize, int AlphaImageType, .BASEIMAGE* RgbGraphImage, .BASEIMAGE* AlphaGraphImage, int ReverseFlag); 16026 16027 /** 16028 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する 16029 */ 16030 extern int CreateGraphImage_plus_AlphaWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* RgbImage, int RgbImageSize, int RgbImageType, const (void)* AlphaImage, int AlphaImageSize, int AlphaImageType, .BASEIMAGE* RgbGraphImage, .BASEIMAGE* AlphaGraphImage, int ReverseFlag); 16031 16032 /** 16033 * 基本イメージデータを左右反転する 16034 */ 16035 extern int ReverseGraphImage(.BASEIMAGE* GraphImage); 16036 16037 /** 16038 * ユーザー定義の画像データ読み込み関数を登録する 16039 */ 16040 version (none) 16041 extern int AddUserGraphLoadFunction(int function(FILE* fp, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16042 16043 /** 16044 * ユーザー定義の画像データ読み込み関数を登録する 16045 */ 16046 version (none) 16047 extern int AddUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16048 16049 /** 16050 * ユーザー定義の画像データ読み込み関数Ver3を登録する 16051 */ 16052 version (none) 16053 extern int AddUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16054 16055 /** 16056 * ユーザー定義の画像データ読み込み関数Ver4を登録する 16057 */ 16058 extern int AddUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc); 16059 16060 /** 16061 * ユーザー定義の画像データ読み込み関数を登録から抹消する 16062 */ 16063 version (none) 16064 extern int SubUserGraphLoadFunction(int function(FILE* fp, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16065 16066 /** 16067 * ユーザー定義の画像データ読み込み関数を登録から抹消する 16068 */ 16069 version (none) 16070 extern int SubUserGraphLoadFunction2(int function(void* Image, int ImageSize, int ImageType, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16071 16072 /** 16073 * ユーザー定義の画像データ読み込み関数Ver3を登録から抹消する 16074 */ 16075 version (none) 16076 extern int SubUserGraphLoadFunction3(int function(void* DataImage, int DataImageSize, int DataImageType, int BmpFlag, .BASEIMAGE* BaseImage, dxlib_d.DxDataType.BITMAPINFO** BmpInfo, void** GraphData) UserLoadFunc); 16077 16078 /** 16079 * ユーザー定義の画像データ読み込み関数Ver4を登録から抹消する 16080 */ 16081 extern int SubUserGraphLoadFunction4(int function(.STREAMDATA* Src, .BASEIMAGE* BaseImage) UserLoadFunc); 16082 16083 /** 16084 * 高速読み込みルーチンを使用するかどうかを設定する 16085 * 16086 * Params: 16087 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 16088 */ 16089 extern int SetUseFastLoadFlag(int Flag); 16090 16091 /** 16092 * 画像減色時の画像劣化緩和処理モードを設定する(デフォルトでは緩和処理無しのDX_SHAVEDMODE_NONE) 16093 */ 16094 extern int SetGraphDataShavedMode(int ShavedMode /* DX_SHAVEDMODE_NONE等 */); 16095 16096 /** 16097 * 画像減色時の画像劣化緩和処理モードを取得する 16098 */ 16099 extern int GetGraphDataShavedMode(); 16100 16101 /** 16102 * 画像ファイル読み込み時に乗算済みアルファ画像に変換するかどうかを設定する 16103 * 16104 * Params: 16105 * UseFlag = dxlib_d.DxDataType.TRUE:変換処理を行う dxlib_d.DxDataType.FALSE:変換処理を行わない(デフォルト) 16106 */ 16107 extern int SetUsePremulAlphaConvertLoad(int UseFlag); 16108 16109 // 基本イメージデータ構造体関係 16110 16111 /** 16112 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16113 */ 16114 extern int CreateBaseImage(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/, .BASEIMAGE* BaseImage, int ReverseFlag); 16115 16116 /** 16117 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16118 */ 16119 extern int CreateBaseImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/, .BASEIMAGE* BaseImage, int ReverseFlag); 16120 16121 /** 16122 * CreateBaseImageの旧名称 16123 */ 16124 extern int CreateGraphImage(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* DataImage, int DataImageSize, int DataImageType, .BASEIMAGE* GraphImage, int ReverseFlag); 16125 16126 /** 16127 * 画像ファイルから基本イメージデータを構築する 16128 */ 16129 extern int CreateBaseImageToFile(const (dxlib_d.DxDataType.TCHAR)* FileName, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE); 16130 16131 /** 16132 * 画像ファイルから基本イメージデータを構築する 16133 */ 16134 extern int CreateBaseImageToFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE); 16135 16136 /** 16137 * メモリ上に展開された画像ファイルイメージから基本イメージデータを構築する 16138 */ 16139 extern int CreateBaseImageToMem(const (void)* FileImage, int FileImageSize, .BASEIMAGE* BaseImage, int ReverseFlag = dxlib_d.DxDataType.FALSE); 16140 16141 /** 16142 * ARGB各チャンネル32bit浮動小数点型カラーの基本イメージデータを作成する 16143 */ 16144 extern int CreateARGBF32ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16145 16146 /** 16147 * ARGB各チャンネル16bit浮動小数点型カラーの基本イメージデータを作成する 16148 */ 16149 extern int CreateARGBF16ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16150 16151 /** 16152 * ARGB8カラーの基本イメージデータを作成する 16153 */ 16154 extern int CreateARGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16155 16156 /** 16157 * XRGB8カラーの基本イメージデータを作成する 16158 */ 16159 extern int CreateXRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16160 16161 /** 16162 * RGB8カラーの基本イメージデータを作成する 16163 */ 16164 extern int CreateRGB8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16165 16166 /** 16167 * ARGB4カラーの基本イメージデータを作成する 16168 */ 16169 extern int CreateARGB4ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16170 16171 /** 16172 * A1R5G5B5カラーの基本イメージデータを作成する 16173 */ 16174 extern int CreateA1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16175 16176 /** 16177 * X1R5G5B5カラーの基本イメージデータを作成する 16178 */ 16179 extern int CreateX1R5G5B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16180 16181 /** 16182 * R5G5B5A1カラーの基本イメージデータを作成する 16183 */ 16184 extern int CreateR5G5B5A1ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16185 16186 /** 16187 * R5G6B5カラーの基本イメージデータを作成する 16188 */ 16189 extern int CreateR5G6B5ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage); 16190 16191 /** 16192 * パレット8ビットカラーの基本イメージデータを作成する 16193 */ 16194 extern int CreatePAL8ColorBaseImage(int SizeX, int SizeY, .BASEIMAGE* BaseImage, int UseAlpha = dxlib_d.DxDataType.FALSE); 16195 16196 /** 16197 * 指定のカラーフォーマットの基本イメージデータを作成する 16198 */ 16199 extern int CreateColorDataBaseImage(int SizeX, int SizeY, const (.COLORDATA)* ColorData, .BASEIMAGE* BaseImage); 16200 16201 /** 16202 * 基本イメージデータのイメージサイズを取得する 16203 * 16204 * Returns: イメージサイズ(単位:byte) 16205 */ 16206 extern int GetBaseImageGraphDataSize(const (.BASEIMAGE)* BaseImage); 16207 16208 /** 16209 * 基本イメージデータの指定の部分だけを使う基本イメージデータの情報を作成する(BaseImageにはフォーマットがDX_BASEIMAGE_FORMAT_NORMALでミップマップを使用していない画像のみ使用可能) 16210 */ 16211 extern int DerivationBaseImage(const (.BASEIMAGE)* BaseImage, int x1, int y1, int x2, int y2, .BASEIMAGE* NewBaseImage); 16212 16213 /** 16214 * 基本イメージデータの後始末を行う 16215 */ 16216 extern int ReleaseBaseImage(.BASEIMAGE* BaseImage); 16217 16218 /** 16219 * ReleaseBaseImageの旧名称 16220 */ 16221 extern int ReleaseGraphImage(.BASEIMAGE* GraphImage); 16222 16223 /** 16224 * DX_BASEIMAGE_FORMAT_NORMAL以外の形式のイメージをDX_BASEIMAGE_FORMAT_NORMAL形式のイメージに変換する 16225 */ 16226 extern int ConvertNormalFormatBaseImage(.BASEIMAGE* BaseImage, int ReleaseOrigGraphData = dxlib_d.DxDataType.TRUE); 16227 16228 /** 16229 * 通常のαチャンネル付き画像を乗算済みαチャンネル付き画像に変換する(ピクセルフォーマットがARGB8以外の場合はARGB8に変換されます) 16230 */ 16231 extern int ConvertPremulAlphaBaseImage(.BASEIMAGE* BaseImage); 16232 16233 /** 16234 * 乗算済みαチャンネル付き画像を通常のαチャンネル付き画像に変換する(ピクセルフォーマットがARGB8以外の場合はARGB8に変換されます) 16235 */ 16236 extern int ConvertInterpAlphaBaseImage(.BASEIMAGE* BaseImage); 16237 16238 /** 16239 * 描画対象の画面から指定領域を基本イメージデータに転送する 16240 */ 16241 extern int GetDrawScreenBaseImage(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage); 16242 16243 /** 16244 * 描画対象の画面から指定領域を基本イメージデータに転送する(転送先座標指定版) 16245 */ 16246 extern int GetDrawScreenBaseImageDestPos(int x1, int y1, int x2, int y2, .BASEIMAGE* BaseImage, int DestX, int DestY); 16247 16248 /** 16249 * 基本イメージデータを指定の色で塗りつぶす 16250 */ 16251 extern int FillBaseImage(.BASEIMAGE* BaseImage, int r, int g, int b, int a); 16252 16253 /** 16254 * 基本イメージデータの指定の領域を指定の色で塗りつぶす 16255 */ 16256 extern int FillRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h, int r, int g, int b, int a); 16257 16258 /** 16259 * 基本イメージデータの指定の領域を0クリアする 16260 */ 16261 extern int ClearRectBaseImage(.BASEIMAGE* BaseImage, int x, int y, int w, int h); 16262 16263 /** 16264 * 基本イメージデータのパレットを取得する 16265 */ 16266 extern int GetPaletteBaseImage(const (.BASEIMAGE)* BaseImage, int PaletteNo, int* r, int* g, int* b, int* a); 16267 16268 /** 16269 * 基本イメージデータのパレットをセットする 16270 */ 16271 extern int SetPaletteBaseImage(.BASEIMAGE* BaseImage, int PaletteNo, int r, int g, int b, int a); 16272 16273 /** 16274 * 基本イメージデータの指定の座標の色コードを変更する(パレット画像用) 16275 */ 16276 extern int SetPixelPalCodeBaseImage(.BASEIMAGE* BaseImage, int x, int y, int palNo); 16277 16278 /** 16279 * 基本イメージデータの指定の座標の色コードを取得する(パレット画像用) 16280 */ 16281 extern int GetPixelPalCodeBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y); 16282 16283 /** 16284 * 基本イメージデータの指定の座標の色を変更する(各色要素は0~255) 16285 */ 16286 extern int SetPixelBaseImage(.BASEIMAGE* BaseImage, int x, int y, int r, int g, int b, int a); 16287 16288 /** 16289 * 基本イメージデータの指定の座標の色を変更する(各色要素は浮動小数点数) 16290 */ 16291 extern int SetPixelBaseImageF(.BASEIMAGE* BaseImage, int x, int y, float r, float g, float b, float a); 16292 16293 /** 16294 * 基本イメージデータの指定の座標の色を取得する(各色要素は0~255) 16295 */ 16296 extern int GetPixelBaseImage(const (.BASEIMAGE)* BaseImage, int x, int y, int* r, int* g, int* b, int* a); 16297 16298 /** 16299 * 基本イメージデータの指定の座標の色を取得する(各色要素は浮動小数点数) 16300 */ 16301 extern int GetPixelBaseImageF(const (.BASEIMAGE)* BaseImage, int x, int y, float* r, float* g, float* b, float* a); 16302 16303 /** 16304 * 基本イメージデータの指定の座標に線を描画する(各色要素は0~255) 16305 */ 16306 extern int DrawLineBaseImage(.BASEIMAGE* BaseImage, int x1, int y1, int x2, int y2, int r, int g, int b, int a); 16307 16308 /** 16309 * 基本イメージデータの指定の座標に円を描画する(各色要素は0~255) 16310 */ 16311 extern int DrawCircleBaseImage(.BASEIMAGE* BaseImage, int x, int y, int radius, int r, int g, int b, int a, int FillFlag = dxlib_d.DxDataType.TRUE); 16312 16313 /** 16314 * 基本イメージデータを別の基本イメージデータに転送する 16315 */ 16316 extern int BltBaseImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage); 16317 16318 /** 16319 * 基本イメージデータを別の基本イメージデータに転送する 16320 */ 16321 extern int BltBaseImage(int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage); 16322 16323 /** 16324 * 基本イメージデータを別の基本イメージデータに透過色処理付きで転送する 16325 */ 16326 extern int BltBaseImageWithTransColor(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage, int Tr, int Tg, int Tb, int Ta); 16327 16328 /** 16329 * 基本イメージデータを別の基本イメージデータにアルファ値のブレンドを考慮した上で転送する(出力先がARGB8形式以外の場合はエラーになります) 16330 * 16331 * Params: 16332 * SrcX = ? 16333 * SrcY = ? 16334 * SrcSizeX = ? 16335 * SrcSizeY = ? 16336 * DestX = ? 16337 * DestY = ? 16338 * SrcBaseImage = ? 16339 * DestBaseImage = ? 16340 * Opacity = 透明度:0(完全透明)~255(完全不透明) 16341 */ 16342 extern int BltBaseImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, .BASEIMAGE* SrcBaseImage, .BASEIMAGE* DestBaseImage, int Opacity = 255); 16343 16344 /** 16345 * 基本イメージデータを左右反転する 16346 */ 16347 extern int ReverseBaseImageH(.BASEIMAGE* BaseImage); 16348 16349 /** 16350 * 基本イメージデータを上下反転する 16351 */ 16352 extern int ReverseBaseImageV(.BASEIMAGE* BaseImage); 16353 16354 /** 16355 * 基本イメージデータを上下左右反転する 16356 */ 16357 extern int ReverseBaseImage(.BASEIMAGE* BaseImage); 16358 16359 /** 16360 * 基本イメージデータに含まれるピクセルのアルファ値をチェックする 16361 * 16362 * Returns: -1:エラー 0:画像にアルファ成分が無い 1:画像にアルファ成分があり、すべて最大(255)値 2:画像にアルファ成分があり、存在するアルファ値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にアルファ成分があり、最小と最大以外の中間の値がある 16363 */ 16364 extern int CheckPixelAlphaBaseImage(const (.BASEIMAGE)* BaseImage); 16365 16366 /** 16367 * 基本イメージデータで使用されているパレット番号の最大値を取得する(パレット画像では無い場合は-1が返る) 16368 */ 16369 extern int GetBaseImageUseMaxPaletteNo(const (.BASEIMAGE)* BaseImage); 16370 16371 version (DX_NON_JPEGREAD) { 16372 } else { 16373 /** 16374 * JPEGファイルのExif情報を取得する、ExifBufferをnullに渡すと、戻り値の情報のサイズのみ取得できます 16375 * 16376 * Returns: -1:エラー -1以外:Exif情報のサイズ 16377 */ 16378 extern int ReadJpegExif(const (dxlib_d.DxDataType.TCHAR)* JpegFilePath, dxlib_d.DxDataType.BYTE* ExifBuffer_Array, size_t ExifBufferSize); 16379 16380 /** 16381 * JPEGファイルのExif情報を取得する、ExifBufferをnullに渡すと、戻り値の情報のサイズのみ取得できます 16382 * 16383 * Returns: 戻り値 -1:エラー -1以外:Exif情報のサイズ 16384 */ 16385 extern int ReadJpegExifWithStrLen(const (dxlib_d.DxDataType.TCHAR)* JpegFilePath, size_t JpegFilePathLength, dxlib_d.DxDataType.BYTE* ExifBuffer_Array, size_t ExifBufferSize); 16386 } 16387 16388 version (DX_NON_SAVEFUNCTION) { 16389 } else { 16390 /** 16391 * 基本イメージデータをBMP画像として保存する 16392 */ 16393 extern int SaveBaseImageToBmp(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage); 16394 16395 /** 16396 * 基本イメージデータをBMP画像として保存する 16397 */ 16398 extern int SaveBaseImageToBmpWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage); 16399 16400 /** 16401 * 基本イメージデータをDDS画像として保存する 16402 */ 16403 extern int SaveBaseImageToDds(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (.BASEIMAGE)* BaseImage); 16404 16405 /** 16406 * 基本イメージデータをDDS画像として保存する 16407 */ 16408 extern int SaveBaseImageToDdsWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (.BASEIMAGE)* BaseImage); 16409 16410 version (DX_NON_PNGREAD) { 16411 } else { 16412 /** 16413 * 基本イメージデータをPNG画像として保存する 16414 */ 16415 extern int SaveBaseImageToPng(const (dxlib_d.DxDataType.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int CompressionLevel); 16416 16417 /** 16418 * 基本イメージデータをPNG画像として保存する 16419 */ 16420 extern int SaveBaseImageToPngWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int CompressionLevel); 16421 } 16422 16423 version (DX_NON_JPEGREAD) { 16424 } else { 16425 /** 16426 * 基本イメージデータをJPEG画像として保存する 16427 */ 16428 extern int SaveBaseImageToJpeg(const (dxlib_d.DxDataType.TCHAR)* FilePath, .BASEIMAGE* BaseImage, int Quality, int Sample2x1); 16429 16430 /** 16431 * 基本イメージデータをJPEG画像として保存する 16432 */ 16433 extern int SaveBaseImageToJpegWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, .BASEIMAGE* BaseImage, int Quality, int Sample2x1); 16434 } 16435 } 16436 16437 // 基本イメージ描画 16438 16439 /** 16440 * 基本イメージデータを描画する 16441 */ 16442 extern int DrawBaseImage(int x, int y, .BASEIMAGE* BaseImage); 16443 16444 /** 16445 * カラーマッチングしながらイメージデータ間転送を行う Ver2 16446 */ 16447 extern int GraphColorMatchBltVer2(void* DestGraphData, int DestPitch, const (.COLORDATA)* DestColorData, const (void)* SrcGraphData, int SrcPitch, const (.COLORDATA)* SrcColorData, const (void)* AlphaMask, int AlphaPitch, const (.COLORDATA)* AlphaColorData, dxlib_d.DxDataType.POINT DestPoint, const (dxlib_d.DxDataType.RECT)* SrcRect, int ReverseFlag, int TransColorAlphaTestFlag, uint TransColor, int ImageShavedMode, int AlphaOnlyFlag = dxlib_d.DxDataType.FALSE, int RedIsAlphaFlag = dxlib_d.DxDataType.FALSE, int TransColorNoMoveFlag = dxlib_d.DxDataType.FALSE, int Pal8ColorMatch = dxlib_d.DxDataType.FALSE); 16448 16449 // 色情報取得関係 16450 16451 /** 16452 * 浮動小数点型のカラー値を作成する 16453 */ 16454 extern .COLOR_F GetColorF(float Red, float Green, float Blue, float Alpha); 16455 16456 /** 16457 * 符号なし整数8ビットのカラー値を作成する 16458 */ 16459 extern .COLOR_U8 GetColorU8(int Red, int Green, int Blue, int Alpha); 16460 16461 /** 16462 * DrawPixel等の描画関数で使用するカラー値を取得する 16463 */ 16464 extern uint GetColor(int Red, int Green, int Blue); 16465 16466 /** 16467 * カラー値から赤、緑、青の値を取得する 16468 */ 16469 extern int GetColor2(uint Color, int* Red, int* Green, int* Blue); 16470 16471 /** 16472 * 指定のピクセルフォーマットに対応したカラー値を得る 16473 */ 16474 extern uint GetColor3(const (.COLORDATA)* ColorData, int Red, int Green, int Blue, int Alpha = 255); 16475 16476 /** 16477 * 指定のカラーフォーマットのカラー値を別のカラーフォーマットのカラー値に変換する 16478 */ 16479 extern uint GetColor4(const (.COLORDATA)* DestColorData, const (.COLORDATA)* SrcColorData, uint SrcColor); 16480 16481 /** 16482 * 指定のカラーフォーマットのカラー値を赤、緑、青、アルファの値を取得する 16483 */ 16484 extern int GetColor5(const (.COLORDATA)* ColorData, uint Color, int* Red, int* Green, int* Blue, int* Alpha = null); 16485 16486 /** 16487 * パレットカラーのカラーフォーマットを構築する 16488 */ 16489 extern int CreatePaletteColorData(.COLORDATA* ColorDataBuf); 16490 16491 /** 16492 * ARGB各チャンネル32bit浮動小数点型カラーのカラーフォーマットを構築する 16493 */ 16494 extern int CreateARGBF32ColorData(.COLORDATA* ColorDataBuf); 16495 16496 /** 16497 * ARGB各チャンネル16bit浮動小数点型カラーのカラーフォーマットを構築する 16498 */ 16499 extern int CreateARGBF16ColorData(.COLORDATA* ColorDataBuf); 16500 16501 /** 16502 * XRGB8カラーのカラーフォーマットを構築する 16503 */ 16504 extern int CreateXRGB8ColorData(.COLORDATA* ColorDataBuf); 16505 16506 /** 16507 * ARGB8カラーのカラーフォーマットを構築する 16508 */ 16509 extern int CreateARGB8ColorData(.COLORDATA* ColorDataBuf); 16510 16511 /** 16512 * ARGB4カラーのカラーフォーマットを構築する 16513 */ 16514 extern int CreateARGB4ColorData(.COLORDATA* ColorDataBuf); 16515 16516 /** 16517 * A1R5G5B5カラーのカラーフォーマットを構築する 16518 */ 16519 extern int CreateA1R5G5B5ColorData(.COLORDATA* ColorDataBuf); 16520 16521 /** 16522 * X1R5G5B5カラーのカラーフォーマットを構築する 16523 */ 16524 extern int CreateX1R5G5B5ColorData(.COLORDATA* ColorDataBuf); 16525 16526 /** 16527 * R5G5B5A1カラーのカラーフォーマットを構築する 16528 */ 16529 extern int CreateR5G5B5A1ColorData(.COLORDATA* ColorDataBuf); 16530 16531 /** 16532 * R5G6B5カラーのカラーフォーマットを構築する 16533 */ 16534 extern int CreateR5G6B5ColorData(.COLORDATA* ColorDataBuf); 16535 16536 /** 16537 * 24ビットカラーのカラーフォーマットを構築する 16538 */ 16539 extern int CreateFullColorData(.COLORDATA* ColorDataBuf); 16540 16541 /** 16542 * グレースケールのカラーフォーマットを構築する 16543 */ 16544 extern int CreateGrayColorData(.COLORDATA* ColorDataBuf); 16545 16546 /** 16547 * パレット256色のカラーフォーマットを構築する 16548 */ 16549 extern int CreatePal8ColorData(.COLORDATA* ColorDataBuf, int UseAlpha = dxlib_d.DxDataType.FALSE); 16550 16551 /** 16552 * カラーフォーマットを作成する 16553 */ 16554 extern int CreateColorData(.COLORDATA* ColorDataBuf, int ColorBitDepth, dxlib_d.DxDataType.DWORD RedMask, dxlib_d.DxDataType.DWORD GreenMask, dxlib_d.DxDataType.DWORD BlueMask, dxlib_d.DxDataType.DWORD AlphaMask, int ChannelNum = 0, int ChannelBitDepth = 0, int FloatTypeFlag = dxlib_d.DxDataType.FALSE); 16555 16556 /** 16557 * NoneMask以外の要素を埋めたCOLORDATA構造体の情報を元にNoneMaskをセットする 16558 */ 16559 extern void SetColorDataNoneMask(.COLORDATA* ColorData); 16560 16561 /** 16562 * 二つのカラーフォーマットが等しいかどうか調べる 16563 * 16564 * Returns: dxlib_d.DxDataType.TRUE:等しい dxlib_d.DxDataType.FALSE:等しくない 16565 */ 16566 extern int CmpColorData(const (.COLORDATA)* ColorData1, const (.COLORDATA)* ColorData2); 16567 16568 // DxSoftImage.cpp関数プロトタイプ宣言 16569 version (DX_NON_SOFTIMAGE) { 16570 } else { 16571 /** 16572 * ソフトウエアイメージハンドルを全て削除する 16573 */ 16574 extern int InitSoftImage(); 16575 16576 /** 16577 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する 16578 * 16579 * Returns: -1:エラー -1以外:イメージハンドル 16580 */ 16581 extern int LoadSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName); 16582 16583 /** 16584 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する 16585 * 16586 * Returns: -1:エラー -1以外:イメージハンドル 16587 */ 16588 extern int LoadSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 16589 16590 /** 16591 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換) 16592 * 16593 * Returns: -1:エラー -1以外:イメージハンドル 16594 */ 16595 extern int LoadARGB8ColorSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName); 16596 16597 /** 16598 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換) 16599 * 16600 * Returns: -1:エラー -1以外:イメージハンドル 16601 */ 16602 extern int LoadARGB8ColorSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 16603 16604 /** 16605 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換) 16606 * 16607 * Returns: -1:エラー -1以外:イメージハンドル 16608 */ 16609 extern int LoadXRGB8ColorSoftImage(const (dxlib_d.DxDataType.TCHAR)* FileName); 16610 16611 /** 16612 * 画像ファイルを読み込みソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換) 16613 * 16614 * Returns: -1:エラー -1以外:イメージハンドル 16615 */ 16616 extern int LoadXRGB8ColorSoftImageWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 16617 16618 /** 16619 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する 16620 * 16621 * Returns: -1:エラー -1以外:イメージハンドル 16622 */ 16623 extern int LoadSoftImageToMem(const (void)* FileImage, int FileImageSize); 16624 16625 /** 16626 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する(読み込んだ画像がRGBA8以外のフォーマットだった場合はRGBA8カラーに変換) 16627 * 16628 * Returns: -1:エラー -1以外:イメージハンドル 16629 */ 16630 extern int LoadARGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize); 16631 16632 /** 16633 * メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する(読み込んだ画像がXGBA8以外のフォーマットだった場合はXGBA8カラーに変換) 16634 * 16635 * Returns: -1:エラー -1以外:イメージハンドル 16636 */ 16637 extern int LoadXRGB8ColorSoftImageToMem(const (void)* FileImage, int FileImageSize); 16638 16639 /** 16640 * ソフトウエアイメージハンドルの作成 16641 * 16642 * Returns: -1:エラー -1以外:イメージハンドル 16643 */ 16644 extern int MakeSoftImage(int SizeX, int SizeY); 16645 16646 /** 16647 * ソフトウエアイメージハンドルの作成(RGBA各チャンネル32bit浮動小数点型カラー) 16648 */ 16649 extern int MakeARGBF32ColorSoftImage(int SizeX, int SizeY); 16650 16651 /** 16652 * ソフトウエアイメージハンドルの作成(RGBA各チャンネル16bit浮動小数点型カラー) 16653 */ 16654 extern int MakeARGBF16ColorSoftImage(int SizeX, int SizeY); 16655 16656 /** 16657 * ソフトウエアイメージハンドルの作成(RGBA8カラー) 16658 */ 16659 extern int MakeARGB8ColorSoftImage(int SizeX, int SizeY); 16660 16661 /** 16662 * ソフトウエアイメージハンドルの作成(XRGB8カラー) 16663 */ 16664 extern int MakeXRGB8ColorSoftImage(int SizeX, int SizeY); 16665 16666 /** 16667 * ソフトウエアイメージハンドルの作成(ARGB4カラー) 16668 */ 16669 extern int MakeARGB4ColorSoftImage(int SizeX, int SizeY); 16670 16671 /** 16672 * ソフトウエアイメージハンドルの作成(A1R5G5B5カラー) 16673 */ 16674 extern int MakeA1R5G5B5ColorSoftImage(int SizeX, int SizeY); 16675 16676 /** 16677 * ソフトウエアイメージハンドルの作成(X1R5G5B5カラー) 16678 */ 16679 extern int MakeX1R5G5B5ColorSoftImage(int SizeX, int SizeY); 16680 16681 /** 16682 * ソフトウエアイメージハンドルの作成(R5G5B5A1カラー) 16683 */ 16684 extern int MakeR5G5B5A1ColorSoftImage(int SizeX, int SizeY); 16685 16686 /** 16687 * ソフトウエアイメージハンドルの作成(R5G6B5カラー) 16688 */ 16689 extern int MakeR5G6B5ColorSoftImage(int SizeX, int SizeY); 16690 16691 /** 16692 * ソフトウエアイメージハンドルの作成(RGB8カラー) 16693 */ 16694 extern int MakeRGB8ColorSoftImage(int SizeX, int SizeY); 16695 16696 /** 16697 * ソフトウエアイメージハンドルの作成(パレット256色カラー) 16698 */ 16699 extern int MakePAL8ColorSoftImage(int SizeX, int SizeY, int UseAlpha = dxlib_d.DxDataType.FALSE); 16700 16701 /** 16702 * ソフトウエアイメージハンドルの削除する 16703 */ 16704 extern int DeleteSoftImage(int SIHandle); 16705 16706 /** 16707 * ソフトウエアイメージハンドルのサイズを取得する 16708 */ 16709 extern int GetSoftImageSize(int SIHandle, int* Width, int* Height); 16710 16711 /** 16712 * ソフトウエアイメージハンドルがパレット画像かどうかを取得する 16713 * 16714 * Returns: dxlib_d.DxDataType.TRUE:パレット画像 dxlib_d.DxDataType.FALSE:パレット画像じゃない 16715 */ 16716 extern int CheckPaletteSoftImage(int SIHandle); 16717 16718 /** 16719 * ソフトウエアイメージハンドルのフォーマットにα要素があるかどうかを取得する 16720 * 16721 * Returns: dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない 16722 */ 16723 extern int CheckAlphaSoftImage(int SIHandle); 16724 16725 /** 16726 * ソフトウエアイメージハンドルに含まれるピクセルのα値をチェックする 16727 * 16728 * Returns: -1:エラー 0:画像にα成分が無い 1:画像にα成分があり、すべて最大(255)値 2:画像にα成分があり、存在するα値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にα成分があり、最小と最大以外の中間の値がある 16729 */ 16730 extern int CheckPixelAlphaSoftImage(int SIHandle); 16731 16732 /** 16733 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する 16734 */ 16735 extern int GetDrawScreenSoftImage(int x1, int y1, int x2, int y2, int SIHandle); 16736 16737 /** 16738 * 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する(転送先座標指定版) 16739 */ 16740 extern int GetDrawScreenSoftImageDestPos(int x1, int y1, int x2, int y2, int SIHandle, int DestX, int DestY); 16741 16742 /** 16743 * ソフトウエアイメージハンドルを指定色で塗りつぶす(各色要素は0~255) 16744 */ 16745 extern int FillSoftImage(int SIHandle, int r, int g, int b, int a); 16746 16747 /** 16748 * ソフトウエアイメージハンドルの指定の領域を0クリアする 16749 */ 16750 extern int ClearRectSoftImage(int SIHandle, int x, int y, int w, int h); 16751 16752 /** 16753 * ソフトウエアイメージハンドルのパレットを取得する(各色要素は0~255) 16754 */ 16755 extern int GetPaletteSoftImage(int SIHandle, int PaletteNo, int* r, int* g, int* b, int* a); 16756 16757 /** 16758 * ソフトウエアイメージハンドルのパレットを設定する(各色要素は0~255) 16759 */ 16760 extern int SetPaletteSoftImage(int SIHandle, int PaletteNo, int r, int g, int b, int a); 16761 16762 /** 16763 * ソフトウエアイメージハンドルの指定座標にドットを描画する(パレット画像用、有効値は0~255) 16764 */ 16765 extern int DrawPixelPalCodeSoftImage(int SIHandle, int x, int y, int palNo); 16766 16767 /** 16768 * ソフトウエアイメージハンドルの指定座標の色コードを取得する(パレット画像用) 16769 * 16770 * Returns: 0~255 16771 */ 16772 extern int GetPixelPalCodeSoftImage(int SIHandle, int x, int y); 16773 16774 /** 16775 * ソフトウエアイメージハンドルの画像が格納されているメモリ領域の先頭アドレスを取得する 16776 */ 16777 extern void* GetImageAddressSoftImage(int SIHandle); 16778 16779 /** 16780 * ソフトウエアイメージハンドルのメモリに格納されている画像データの1ライン辺りのバイト数を取得する 16781 */ 16782 extern int GetPitchSoftImage(int SIHandle); 16783 16784 /** 16785 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255) 16786 */ 16787 extern int DrawPixelSoftImage(int SIHandle, int x, int y, int r, int g, int b, int a); 16788 16789 /** 16790 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は浮動小数点数) 16791 */ 16792 extern int DrawPixelSoftImageF(int SIHandle, int x, int y, float r, float g, float b, float a); 16793 16794 /** 16795 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やARGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16796 */ 16797 extern void DrawPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int r, int g, int b); 16798 16799 /** 16800 * ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やXRGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16801 */ 16802 extern void DrawPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int r, int g, int b, int a); 16803 16804 /** 16805 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255) 16806 */ 16807 extern int GetPixelSoftImage(int SIHandle, int x, int y, int* r, int* g, int* b, int* a); 16808 16809 /** 16810 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は浮動小数点数) 16811 */ 16812 extern int GetPixelSoftImageF(int SIHandle, int x, int y, float* r, float* g, float* b, float* a); 16813 16814 /** 16815 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やXRGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16816 */ 16817 extern void GetPixelSoftImage_Unsafe_XRGB8(int SIHandle, int x, int y, int* r, int* g, int* b); 16818 16819 /** 16820 * ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標やARGB8以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します 16821 */ 16822 extern void GetPixelSoftImage_Unsafe_ARGB8(int SIHandle, int x, int y, int* r, int* g, int* b, int* a); 16823 16824 /** 16825 * ソフトウエアイメージハンドルの指定座標に線を描画する(各色要素は0~255) 16826 */ 16827 extern int DrawLineSoftImage(int SIHandle, int x1, int y1, int x2, int y2, int r, int g, int b, int a); 16828 16829 /** 16830 * ソフトウエアイメージハンドルの指定座標に円を描画する(各色要素は0~255) 16831 */ 16832 extern int DrawCircleSoftImage(int SIHandle, int x, int y, int radius, int r, int g, int b, int a, int FillFlag = dxlib_d.DxDataType.TRUE); 16833 16834 /** 16835 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに転送する 16836 */ 16837 extern int BltSoftImage(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle); 16838 16839 /** 16840 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに透過色処理付きで転送する 16841 */ 16842 extern int BltSoftImageWithTransColor(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Tr, int Tg, int Tb, int Ta); 16843 16844 /** 16845 * ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルにアルファ値のブレンドを考慮した上で転送する(Opacityは透明度:0(完全透明)~255(完全不透明))(出力先がARGB8形式以外の場合はエラーになります) 16846 */ 16847 extern int BltSoftImageWithAlphaBlend(int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Opacity = 255); 16848 16849 /** 16850 * ソフトウエアイメージハンドルを左右反転する 16851 */ 16852 extern int ReverseSoftImageH(int SIHandle); 16853 16854 /** 16855 * ソフトウエアイメージハンドルを上下反転する 16856 */ 16857 extern int ReverseSoftImageV(int SIHandle); 16858 16859 /** 16860 * ソフトウエアイメージハンドルを上下左右反転する 16861 */ 16862 extern int ReverseSoftImage(int SIHandle); 16863 16864 version (DX_NON_FONT) { 16865 } else { 16866 /** 16867 * ソフトウエアイメージハンドルに文字列を描画する(デフォルトフォントハンドルを使用する) 16868 */ 16869 extern int BltStringSoftImage(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, int DestSIHandle, int DestEdgeSIHandle = -1, int VerticalFlag = dxlib_d.DxDataType.FALSE); 16870 16871 /** 16872 * ソフトウエアイメージハンドルに文字列を描画する(デフォルトフォントハンドルを使用する) 16873 */ 16874 extern int BltStringSoftImageWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, int DestSIHandle, int DestEdgeSIHandle = -1, int VerticalFlag = dxlib_d.DxDataType.FALSE); 16875 16876 /** 16877 * ソフトウエアイメージハンドルに文字列を描画する(フォントハンドル使用版) 16878 */ 16879 extern int BltStringSoftImageToHandle(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は-1 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 16880 16881 /** 16882 * ソフトウエアイメージハンドルに文字列を描画する(フォントハンドル使用版) 16883 */ 16884 extern int BltStringSoftImageToHandleWithStrLen(int x, int y, const (dxlib_d.DxDataType.TCHAR)* StrData, size_t StrDataLength, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は-1 */, int FontHandle, int VerticalFlag = dxlib_d.DxDataType.FALSE); 16885 } 16886 16887 /** 16888 * ソフトウエアイメージハンドルを画面に描画する 16889 */ 16890 extern int DrawSoftImage(int x, int y, int SIHandle); 16891 16892 version (DX_NON_SAVEFUNCTION) { 16893 } else { 16894 /** 16895 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する 16896 */ 16897 extern int SaveSoftImageToBmp(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle); 16898 16899 /** 16900 * ソフトウエアイメージハンドルをBMP画像ファイルとして保存する 16901 */ 16902 extern int SaveSoftImageToBmpWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle); 16903 16904 /** 16905 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する 16906 */ 16907 extern int SaveSoftImageToDds(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle); 16908 16909 /** 16910 * ソフトウエアイメージハンドルをDDS画像ファイルとして保存する 16911 */ 16912 extern int SaveSoftImageToDdsWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle); 16913 16914 version (DX_NON_PNGREAD) { 16915 } else { 16916 /** 16917 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する 16918 * 16919 * Params: 16920 * FilePath = ? 16921 * SIHandle = ? 16922 * CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 16923 */ 16924 extern int SaveSoftImageToPng(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle, int CompressionLevel); 16925 16926 /** 16927 * ソフトウエアイメージハンドルをPNG画像ファイルとして保存する 16928 * 16929 * Params: 16930 * ? = ? 16931 * ? = ? 16932 * ? = ? 16933 * CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9 16934 */ 16935 extern int SaveSoftImageToPngWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int CompressionLevel); 16936 } 16937 16938 version (DX_NON_JPEGREAD) { 16939 } else { 16940 /** 16941 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 16942 */ 16943 extern int SaveSoftImageToJpeg(const (dxlib_d.DxDataType.TCHAR)* FilePath, int SIHandle, int Quality, int Sample2x1); 16944 16945 /** 16946 * ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100 16947 */ 16948 extern int SaveSoftImageToJpegWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int SIHandle, int Quality, int Sample2x1); 16949 } 16950 } 16951 } 16952 16953 version (DX_NON_SOUND) { 16954 } else { 16955 // DxSound.cpp関数プロトタイプ宣言 16956 16957 // サウンドデータ管理系関数 16958 16959 /** 16960 * 全てのサウンドハンドルを削除する 16961 */ 16962 extern int InitSoundMem(int LogOutFlag = dxlib_d.DxDataType.FALSE); 16963 16964 /** 16965 * サウンドハンドルを作成する 16966 */ 16967 extern int AddSoundData(int Handle = -1); 16968 16969 /** 16970 * ストリーム再生タイプのサウンドハンドルにストリームデータを再生対象に追加する 16971 */ 16972 extern int AddStreamSoundMem(.STREAMDATA* Stream, int LoopNum, int SoundHandle, int StreamDataType, int* CanStreamCloseFlag, int UnionHandle = -1); 16973 16974 /** 16975 * ストリーム再生タイプのサウンドハンドルにメモリ上に展開したサウンドファイルイメージを再生対象に追加する 16976 */ 16977 extern int AddStreamSoundMemToMem(const (void)* FileImage, size_t FileImageSize, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 16978 16979 /** 16980 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する 16981 */ 16982 extern int AddStreamSoundMemToFile(const (dxlib_d.DxDataType.TCHAR)* WaveFile, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 16983 16984 /** 16985 * ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する 16986 */ 16987 extern int AddStreamSoundMemToFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* WaveFile, size_t WaveFilePathLength, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1); 16988 16989 /** 16990 * ストリーム再生タイプのサウンドハンドルの再生準備をする 16991 */ 16992 extern int SetupStreamSoundMem(int SoundHandle); 16993 16994 /** 16995 * ストリーム再生タイプのサウンドハンドルの再生を開始する 16996 */ 16997 extern int PlayStreamSoundMem(int SoundHandle, int PlayType = DX_PLAYTYPE_LOOP, int TopPositionFlag = dxlib_d.DxDataType.TRUE); 16998 16999 /** 17000 * ストリーム再生タイプのサウンドハンドルの再生状態を取得する 17001 */ 17002 extern int CheckStreamSoundMem(int SoundHandle); 17003 17004 /** 17005 * ストリーム再生タイプのサウンドハンドルの再生を停止する 17006 */ 17007 extern int StopStreamSoundMem(int SoundHandle); 17008 17009 /** 17010 * サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効) 17011 */ 17012 extern int SetStreamSoundCurrentPosition(dxlib_d.DxDataType.LONGLONG Byte, int SoundHandle); 17013 17014 /** 17015 * サウンドハンドルの再生位置をバイト単位で取得する 17016 */ 17017 extern dxlib_d.DxDataType.LONGLONG GetStreamSoundCurrentPosition(int SoundHandle); 17018 17019 /** 17020 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある) 17021 */ 17022 extern int SetStreamSoundCurrentTime(dxlib_d.DxDataType.LONGLONG Time, int SoundHandle); 17023 17024 /** 17025 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある) 17026 */ 17027 extern dxlib_d.DxDataType.LONGLONG GetStreamSoundCurrentTime(int SoundHandle); 17028 17029 /** 17030 * ストリーム再生タイプのサウンドハンドルの周期的な処理を行う関数(内部で自動的に呼ばれます) 17031 */ 17032 extern int ProcessStreamSoundMem(int SoundHandle); 17033 17034 /** 17035 * 有効なストリーム再生タイプのサウンドハンドルに対して ProcessStreamSoundMemを実行する(内部で自動的に呼ばれます) 17036 */ 17037 extern int ProcessStreamSoundMemAll(); 17038 17039 /** 17040 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する 17041 */ 17042 extern int LoadSoundMem2(const (dxlib_d.DxDataType.TCHAR)* FileName1, const (dxlib_d.DxDataType.TCHAR)* FileName2); 17043 17044 /** 17045 * 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する 17046 */ 17047 extern int LoadSoundMem2WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName1, size_t FileName1Length, const (dxlib_d.DxDataType.TCHAR)* FileName2, size_t FileName2Length); 17048 17049 /** 17050 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数 17051 */ 17052 extern int LoadBGM(const (dxlib_d.DxDataType.TCHAR)* FileName); 17053 17054 /** 17055 * 主にBGMを読み込みサウンドハンドルを作成するのに適した関数 17056 */ 17057 extern int LoadBGMWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 17058 17059 /** 17060 * サウンドファイルからサウンドハンドルを作成する 17061 */ 17062 extern int LoadSoundMemBase(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum, int UnionHandle = -1); 17063 17064 /** 17065 * サウンドファイルからサウンドハンドルを作成する 17066 */ 17067 extern int LoadSoundMemBaseWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum, int UnionHandle = -1); 17068 17069 /** 17070 * LoadSoundMemBaseの別名関数 17071 */ 17072 extern int LoadSoundMem(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum = 3, int UnionHandle = -1); 17073 17074 /** 17075 * LoadSoundMemBaseの別名関数 17076 */ 17077 extern int LoadSoundMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum = 3, int UnionHandle = -1); 17078 17079 /** 17080 * LoadSoundMemを使用して下さい 17081 */ 17082 extern int LoadSoundMemToBufNumSitei(const (dxlib_d.DxDataType.TCHAR)* FileName, int BufferNum); 17083 17084 /** 17085 * LoadSoundMemを使用して下さい 17086 */ 17087 extern int LoadSoundMemToBufNumSiteiWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int BufferNum); 17088 17089 /** 17090 * 同じサウンドデータを使用するサウンドハンドルを作成する(DX_SOUNDDATATYPE_MEMNOPRESS タイプのサウンドハンドルのみ可能) 17091 */ 17092 extern int DuplicateSoundMem(int SrcSoundHandle, int BufferNum = 3); 17093 17094 /** 17095 * メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する 17096 */ 17097 extern int LoadSoundMemByMemImageBase(const (void)* FileImage, size_t FileImageSize, int BufferNum, int UnionHandle = -1); 17098 17099 /** 17100 * LoadSoundMemByMemImageBaseの別名関数 17101 */ 17102 extern int LoadSoundMemByMemImage(const (void)* FileImage, size_t FileImageSize, int BufferNum = 3, int UnionHandle = -1); 17103 17104 /** 17105 * メモリ上に展開されたPCMデータからサウンドハンドルを作成する 17106 */ 17107 extern int LoadSoundMemByMemImage2(const (void)* WaveImage, size_t WaveImageSize, const (.WAVEFORMATEX)* WaveFormat, size_t WaveHeaderSize); 17108 17109 /** 17110 * LoadSoundMemByMemImageBaseを使用して下さい 17111 */ 17112 extern int LoadSoundMemByMemImageToBufNumSitei(const (void)* FileImage, size_t FileImageSize, int BufferNum); 17113 17114 /** 17115 * 前奏部とループ部に分かれた二つのメモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する 17116 */ 17117 extern int LoadSoundMem2ByMemImage(const (void)* FileImage1, size_t FileImageSize1, const (void)* FileImage2, size_t FileImageSize2); 17118 17119 /** 17120 * ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する 17121 */ 17122 extern int LoadSoundMemFromSoftSound(int SoftSoundHandle, int BufferNum = 3); 17123 17124 /** 17125 * サウンドハンドルを削除する 17126 */ 17127 extern int DeleteSoundMem(int SoundHandle, int LogOutFlag = dxlib_d.DxDataType.FALSE); 17128 17129 /** 17130 * サウンドハンドルを再生する 17131 */ 17132 extern int PlaySoundMem(int SoundHandle, int PlayType, int TopPositionFlag = dxlib_d.DxDataType.TRUE); 17133 17134 /** 17135 * サウンドハンドルの再生を停止する 17136 */ 17137 extern int StopSoundMem(int SoundHandle); 17138 17139 /** 17140 * サウンドハンドルが再生中かどうかを取得する 17141 */ 17142 extern int CheckSoundMem(int SoundHandle); 17143 17144 /** 17145 * サウンドハンドルのパンを設定する(100分の1デシベル単位0~10000) 17146 */ 17147 extern int SetPanSoundMem(int PanPal, int SoundHandle); 17148 17149 /** 17150 * サウンドハンドルのパンを設定する(-255~255) 17151 */ 17152 extern int ChangePanSoundMem(int PanPal, int SoundHandle); 17153 17154 /** 17155 * サウンドハンドルのパンを取得する 17156 */ 17157 extern int GetPanSoundMem(int SoundHandle); 17158 17159 /** 17160 * サウンドハンドルのボリュームを設定する(100分の1デシベル単位0~10000) 17161 */ 17162 extern int SetVolumeSoundMem(int VolumePal, int SoundHandle); 17163 17164 /** 17165 * サウンドハンドルのボリュームを設定する(0~255) 17166 */ 17167 extern int ChangeVolumeSoundMem(int VolumePal, int SoundHandle); 17168 17169 /** 17170 * サウンドハンドルのボリュームを取得する(100分の1デシベル単位0~10000) 17171 */ 17172 extern int GetVolumeSoundMem(int SoundHandle); 17173 17174 /** 17175 * サウンドハンドルのボリュームを取得する(0~255) 17176 */ 17177 extern int GetVolumeSoundMem2(int SoundHandle); 17178 17179 /** 17180 * サウンドハンドルの指定のチャンネルのボリュームを設定する(100分の1デシベル単位0~10000) 17181 */ 17182 extern int SetChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17183 17184 /** 17185 * サウンドハンドルの指定のチャンネルのボリュームを設定する(0~255) 17186 */ 17187 extern int ChangeChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17188 17189 /** 17190 * サウンドハンドルの指定のチャンネルのボリュームを取得する(100分の1デシベル単位0~10000) 17191 */ 17192 extern int GetChannelVolumeSoundMem(int Channel, int SoundHandle); 17193 17194 /** 17195 * サウンドハンドルの指定のチャンネルのボリュームを取得する(0~255) 17196 */ 17197 extern int GetChannelVolumeSoundMem2(int Channel, int SoundHandle); 17198 17199 /** 17200 * サウンドハンドルの再生周波数を設定する 17201 */ 17202 extern int SetFrequencySoundMem(int FrequencyPal, int SoundHandle); 17203 17204 /** 17205 * サウンドハンドルの再生周波数を取得する 17206 */ 17207 extern int GetFrequencySoundMem(int SoundHandle); 17208 17209 /** 17210 * サウンドハンドルの再生周波数を読み込み直後の状態に戻す 17211 */ 17212 extern int ResetFrequencySoundMem(int SoundHandle); 17213 17214 /** 17215 * サウンドハンドルの次の再生にのみ使用するパンを設定する(100分の1デシベル単位0~10000) 17216 */ 17217 extern int SetNextPlayPanSoundMem(int PanPal, int SoundHandle); 17218 17219 /** 17220 * サウンドハンドルの次の再生にのみ使用するパンを設定する(-255~255) 17221 */ 17222 extern int ChangeNextPlayPanSoundMem(int PanPal, int SoundHandle); 17223 17224 /** 17225 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する(100分の1デシベル単位0~10000) 17226 */ 17227 extern int SetNextPlayVolumeSoundMem(int VolumePal, int SoundHandle); 17228 17229 /** 17230 * サウンドハンドルの次の再生にのみ使用するボリュームを設定する(0~255) 17231 */ 17232 extern int ChangeNextPlayVolumeSoundMem(int VolumePal, int SoundHandle); 17233 17234 /** 17235 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する(100分の1デシベル単位0~10000) 17236 */ 17237 extern int SetNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17238 17239 /** 17240 * サウンドハンドルの次の再生にのみ使用するチャンネルのボリュームを設定する(0~255) 17241 */ 17242 extern int ChangeNextPlayChannelVolumeSoundMem(int Channel, int VolumePal, int SoundHandle); 17243 17244 /** 17245 * サウンドハンドルの次の再生にのみ使用する再生周波数を設定する 17246 */ 17247 extern int SetNextPlayFrequencySoundMem(int FrequencyPal, int SoundHandle); 17248 17249 /** 17250 * サウンドハンドルの再生位置をサンプル単位で設定する(再生が止まっている時のみ有効) 17251 */ 17252 extern int SetCurrentPositionSoundMem(dxlib_d.DxDataType.LONGLONG SamplePosition, int SoundHandle); 17253 17254 /** 17255 * サウンドハンドルの再生位置をサンプル単位で取得する 17256 */ 17257 extern dxlib_d.DxDataType.LONGLONG GetCurrentPositionSoundMem(int SoundHandle); 17258 17259 /** 17260 * サウンドハンドルの再生位置をバイト単位で設定する(再生が止まっている時のみ有効) 17261 */ 17262 extern int SetSoundCurrentPosition(dxlib_d.DxDataType.LONGLONG Byte, int SoundHandle); 17263 17264 /** 17265 * サウンドハンドルの再生位置をバイト単位で取得する 17266 */ 17267 extern dxlib_d.DxDataType.LONGLONG GetSoundCurrentPosition(int SoundHandle); 17268 17269 /** 17270 * サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある) 17271 */ 17272 extern int SetSoundCurrentTime(dxlib_d.DxDataType.LONGLONG Time, int SoundHandle); 17273 17274 /** 17275 * サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある) 17276 */ 17277 extern dxlib_d.DxDataType.LONGLONG GetSoundCurrentTime(int SoundHandle); 17278 17279 /** 17280 * サウンドハンドルの音の総時間をサンプル単位で取得する 17281 */ 17282 extern dxlib_d.DxDataType.LONGLONG GetSoundTotalSample(int SoundHandle); 17283 17284 /** 17285 * サウンドハンドルの音の総時間をミリ秒単位で取得する 17286 */ 17287 extern dxlib_d.DxDataType.LONGLONG GetSoundTotalTime(int SoundHandle); 17288 17289 /** 17290 * SetLoopTimePosSoundMemの別名関数 17291 */ 17292 extern int SetLoopPosSoundMem(dxlib_d.DxDataType.LONGLONG LoopTime, int SoundHandle); 17293 17294 /** 17295 * サウンドハンドルにループ位置を設定する(ミリ秒単位) 17296 */ 17297 extern int SetLoopTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopTime, int SoundHandle); 17298 17299 /** 17300 * サウンドハンドルにループ位置を設定する(サンプル単位) 17301 */ 17302 extern int SetLoopSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopSamplePosition, int SoundHandle); 17303 17304 /** 17305 * サウンドハンドルにループ開始位置を設定する(ミリ秒単位) 17306 */ 17307 extern int SetLoopStartTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartTime, int SoundHandle); 17308 17309 /** 17310 * サウンドハンドルにループ開始位置を設定する(サンプル単位) 17311 */ 17312 extern int SetLoopStartSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, int SoundHandle); 17313 17314 /** 17315 * サウンドハンドルにループ範囲を設定する(ミリ秒単位) 17316 */ 17317 extern int SetLoopAreaTimePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartTime, dxlib_d.DxDataType.LONGLONG LoopEndTime, int SoundHandle); 17318 17319 /** 17320 * サウンドハンドルにループ範囲を取得する(ミリ秒単位) 17321 */ 17322 extern int GetLoopAreaTimePosSoundMem(dxlib_d.DxDataType.LONGLONG* LoopStartTime, dxlib_d.DxDataType.LONGLONG* LoopEndTime, int SoundHandle); 17323 17324 /** 17325 * サウンドハンドルにループ範囲を設定する(サンプル単位) 17326 */ 17327 extern int SetLoopAreaSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG LoopEndSamplePosition, int SoundHandle); 17328 17329 /** 17330 * サウンドハンドルにループ範囲を取得する(サンプル単位) 17331 */ 17332 extern int GetLoopAreaSamplePosSoundMem(dxlib_d.DxDataType.LONGLONG* LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG* LoopEndSamplePosition, int SoundHandle); 17333 17334 /** 17335 * サウンドハンドルの再生が終了したら自動的にハンドルを削除するかどうかを設定する 17336 */ 17337 extern int SetPlayFinishDeleteSoundMem(int DeleteFlag, int SoundHandle); 17338 17339 /** 17340 * サウンドハンドルの3Dサウンド用のリバーブパラメータを設定する 17341 */ 17342 extern int Set3DReverbParamSoundMem(const (.SOUND3D_REVERB_PARAM)* Param, int SoundHandle); 17343 17344 /** 17345 * サウンドハンドルの3Dサウンド用のリバーブパラメータをプリセットを使用して設定する 17346 */ 17347 extern int Set3DPresetReverbParamSoundMem(int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */, int SoundHandle); 17348 17349 /** 17350 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータを設定する 17351 * 17352 * Params: 17353 * Param = ? 17354 * PlaySoundOnly = dxlib_d.DxDataType.TRUE:再生中のサウンドにのみ設定する dxlib_d.DxDataType.FALSE:再生していないサウンドにも設定する 17355 */ 17356 extern int Set3DReverbParamSoundMemAll(const (.SOUND3D_REVERB_PARAM)* Param, int PlaySoundOnly = dxlib_d.DxDataType.FALSE); 17357 17358 /** 17359 * 全ての3Dサウンドのサウンドハンドルにリバーブパラメータをプリセットを使用して設定する 17360 * 17361 * Params: 17362 * PresetNo = ? 17363 * PlaySoundOnly = dxlib_d.DxDataType.TRUE:再生中のサウンドにのみ設定する dxlib_d.DxDataType.FALSE:再生していないサウンドにも設定する 17364 */ 17365 extern int Set3DPresetReverbParamSoundMemAll(int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */, int PlaySoundOnly = dxlib_d.DxDataType.FALSE); 17366 17367 /** 17368 * サウンドハンドルに設定されている3Dサウンド用のリバーブパラメータを取得する 17369 */ 17370 extern int Get3DReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int SoundHandle); 17371 17372 /** 17373 * プリセットの3Dサウンド用のリバーブパラメータを取得する 17374 */ 17375 extern int Get3DPresetReverbParamSoundMem(.SOUND3D_REVERB_PARAM* ParamBuffer, int PresetNo /* DX_REVERB_PRESET_DEFAULT等 */); 17376 17377 /** 17378 * サウンドハンドルの3Dサウンド用の再生位置を設定する 17379 */ 17380 extern int Set3DPositionSoundMem(.VECTOR Position, int SoundHandle); 17381 17382 /** 17383 * サウンドハンドルの3Dサウンド用の音が聞こえる距離を設定する 17384 */ 17385 extern int Set3DRadiusSoundMem(float Radius, int SoundHandle); 17386 17387 /** 17388 * サウンドハンドルの3Dサウンド用の移動速度を設定する 17389 */ 17390 extern int Set3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle); 17391 17392 /** 17393 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の再生位置を設定する 17394 */ 17395 extern int SetNextPlay3DPositionSoundMem(.VECTOR Position, int SoundHandle); 17396 17397 /** 17398 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の音が聞こえる距離を設定する 17399 */ 17400 extern int SetNextPlay3DRadiusSoundMem(float Radius, int SoundHandle); 17401 17402 /** 17403 * サウンドハンドルの次の再生のみに使用する3Dサウンド用の移動速度を設定する 17404 */ 17405 extern int SetNextPlay3DVelocitySoundMem(.VECTOR Velocity, int SoundHandle); 17406 17407 // 特殊関数 17408 17409 /** 17410 * MP3ファイルのタグ情報を取得する 17411 */ 17412 extern int GetMP3TagInfo(const (dxlib_d.DxDataType.TCHAR)* FileName, dxlib_d.DxDataType.TCHAR* TitleBuffer, size_t TitleBufferBytes, dxlib_d.DxDataType.TCHAR* ArtistBuffer, size_t ArtistBufferBytes, dxlib_d.DxDataType.TCHAR* AlbumBuffer, size_t AlbumBufferBytes, dxlib_d.DxDataType.TCHAR* YearBuffer, size_t YearBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, size_t CommentBufferBytes, dxlib_d.DxDataType.TCHAR* TrackBuffer, size_t TrackBufferBytes, dxlib_d.DxDataType.TCHAR* GenreBuffer, size_t GenreBufferBytes, int* PictureGrHandle); 17413 17414 /** 17415 * MP3ファイルのタグ情報を取得する 17416 */ 17417 extern int GetMP3TagInfoWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, dxlib_d.DxDataType.TCHAR* TitleBuffer, size_t TitleBufferBytes, dxlib_d.DxDataType.TCHAR* ArtistBuffer, size_t ArtistBufferBytes, dxlib_d.DxDataType.TCHAR* AlbumBuffer, size_t AlbumBufferBytes, dxlib_d.DxDataType.TCHAR* YearBuffer, size_t YearBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, size_t CommentBufferBytes, dxlib_d.DxDataType.TCHAR* TrackBuffer, size_t TrackBufferBytes, dxlib_d.DxDataType.TCHAR* GenreBuffer, size_t GenreBufferBytes, int* PictureGrHandle); 17418 17419 version (DX_NON_OGGVORBIS) { 17420 } else { 17421 /** 17422 * Oggファイルのコメント情報の数を取得する 17423 */ 17424 extern int GetOggCommentNum(const (dxlib_d.DxDataType.TCHAR)* FileName); 17425 17426 /** 17427 * Oggファイルのコメント情報の数を取得する 17428 */ 17429 extern int GetOggCommentNumWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 17430 17431 extern int GetOggComment(const (dxlib_d.DxDataType.TCHAR)* FileName, int CommentIndex, dxlib_d.DxDataType.TCHAR* CommentNameBuffer, size_t CommentNameBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, 17432 /** 17433 * Oggファイルのコメント情報を取得する 17434 */ 17435 size_t CommentBufferBytes); 17436 17437 extern int GetOggCommentWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int CommentIndex, dxlib_d.DxDataType.TCHAR* CommentNameBuffer, size_t CommentNameBufferBytes, dxlib_d.DxDataType.TCHAR* CommentBuffer, 17438 /** 17439 * Oggファイルのコメント情報を取得する 17440 */ 17441 size_t CommentBufferBytes); 17442 } 17443 17444 // 設定関係関数 17445 17446 /** 17447 * 作成するサウンドハンドルの再生タイプを設定する(DX_SOUNDDATATYPE_MEMNOPRESS等) 17448 */ 17449 extern int SetCreateSoundDataType(int SoundDataType); 17450 17451 /** 17452 * 作成するサウンドハンドルの再生タイプを取得する(DX_SOUNDDATATYPE_MEMNOPRESS等) 17453 */ 17454 extern int GetCreateSoundDataType(); 17455 17456 /** 17457 * 作成するサウンドハンドルのピッチ(音の長さを変えずに音程を変更する)レートを設定する(単位はセント(100.0fで半音、1200.0fで1オクターヴ)、プラスの値で音程が高く、マイナスの値で音程が低くなります) 17458 */ 17459 extern int SetCreateSoundPitchRate(float Cents); 17460 17461 /** 17462 * 作成するサウンドハンドルのピッチ(音の長さを変えずに音程を変更する)レートを取得する(単位はセント(100.0fで半音、1200.0fで1オクターヴ)、プラスの値で音程が高く、マイナスの値で音程が低くなります) 17463 */ 17464 extern float GetCreateSoundPitchRate(); 17465 17466 /** 17467 * 作成するサウンドハンドルのタイムストレッチ(音程を変えずに音の長さを変更する)レートを設定する(単位は倍率、2.0fで音の長さが2倍に、0.5fで音の長さが半分になります) 17468 */ 17469 extern int SetCreateSoundTimeStretchRate(float Rate); 17470 17471 /** 17472 * 作成するサウンドハンドルのタイムストレッチ(音程を変えずに音の長さを変更する)レートを取得する(単位は倍率、2.0fで音の長さが2倍に、0.5fで音の長さが半分になります) 17473 */ 17474 extern float GetCreateSoundTimeStretchRate(); 17475 17476 /** 17477 * 作成するサウンドハンドルのループ範囲を設定する(ミリ秒単位) 17478 */ 17479 extern int SetCreateSoundLoopAreaTimePos(dxlib_d.DxDataType.LONGLONG LoopStartTime, dxlib_d.DxDataType.LONGLONG LoopEndTime); 17480 17481 /** 17482 * 作成するサウンドハンドルのループ範囲を取得する(ミリ秒単位) 17483 */ 17484 extern int GetCreateSoundLoopAreaTimePos(dxlib_d.DxDataType.LONGLONG* LoopStartTime, dxlib_d.DxDataType.LONGLONG* LoopEndTime); 17485 17486 /** 17487 * 作成するサウンドハンドルのループ範囲を設定する(サンプル単位) 17488 */ 17489 extern int SetCreateSoundLoopAreaSamplePos(dxlib_d.DxDataType.LONGLONG LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG LoopEndSamplePosition); 17490 17491 /** 17492 * 作成するサウンドハンドルのループ範囲を取得する(サンプル単位) 17493 */ 17494 extern int GetCreateSoundLoopAreaSamplePos(dxlib_d.DxDataType.LONGLONG* LoopStartSamplePosition, dxlib_d.DxDataType.LONGLONG* LoopEndSamplePosition); 17495 17496 /** 17497 * LoadSoundMemなどで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを設定する 17498 * 17499 * Params: 17500 * IgnoreFlag = dxlib_d.DxDataType.TRUE:無視する dxlib_d.DxDataType.FALSE:無視しない(デフォルト) 17501 */ 17502 extern int SetCreateSoundIgnoreLoopAreaInfo(int IgnoreFlag); 17503 17504 /** 17505 * LoadSoundMemなどで読み込むサウンドデータにループ範囲情報があっても無視するかどうかを取得する 17506 * 17507 * Returns: dxlib_d.DxDataType.TRUE:無視する dxlib_d.DxDataType.FALSE:無視しない(デフォルト) 17508 */ 17509 extern int GetCreateSoundIgnoreLoopAreaInfo(); 17510 17511 /** 17512 * 使用しないサウンドデータ読み込み処理のマスクを設定する(DX_READSOUNDFUNCTION_PCM等) 17513 */ 17514 extern int SetDisableReadSoundFunctionMask(int Mask); 17515 17516 /** 17517 * 使用しないサウンドデータ読み込み処理のマスクを取得する(DX_READSOUNDFUNCTION_PCM等) 17518 */ 17519 extern int GetDisableReadSoundFunctionMask(); 17520 17521 /** 17522 * サウンドキャプチャを前提とした動作をするかどうかを設定する 17523 */ 17524 extern int SetEnableSoundCaptureFlag(int Flag); 17525 17526 /** 17527 * ChangeVolumeSoundMem, ChangeNextPlayVolumeSoundMem, ChangeMovieVolumeToGraphの音量計算式をVer3.10c以前のものを使用するかどうかを設定する 17528 * 17529 * Params: 17530 * Flag = dxlib_d.DxDataType.TRUE:Ver3.10c以前の計算式を使用 dxlib_d.DxDataType.FALSE:3.10d以降の計算式を使用(デフォルト) 17531 */ 17532 extern int SetUseOldVolumeCalcFlag(int Flag); 17533 17534 /** 17535 * GetSoundCurrentTimeなどを使用した場合に取得できる再生時間のタイプを設定する 17536 */ 17537 extern int SetSoundCurrentTimeType(int Type /* DX_SOUNDCURRENTTIME_TYPE_LOW_LEVELなど */); 17538 17539 /** 17540 * GetSoundCurrentTimeなどを使用した場合に取得できる再生時間のタイプを取得する 17541 */ 17542 extern int GetSoundCurrentTimeType(); 17543 17544 /** 17545 * 次に作成するサウンドハンドルを3Dサウンド用にするかどうかを設定する 17546 * 17547 * Params: 17548 * Flag = dxlib_d.DxDataType.TRUE:3Dサウンド用にする dxlib_d.DxDataType.FALSE:3Dサウンド用にしない(デフォルト) 17549 */ 17550 extern int SetCreate3DSoundFlag(int Flag); 17551 17552 /** 17553 * 3D空間の1メートルに相当する距離を設定する、DxLib_Initを呼び出す前でのみ呼び出し可能(デフォルト:1.0f) 17554 * 17555 * Params: 17556 * Distance = ? 17557 */ 17558 extern int Set3DSoundOneMetre(float Distance); 17559 17560 /** 17561 * 3Dサウンドのリスナーの位置とリスナーの前方位置を設定する(リスナーの上方向はY軸固定) 17562 */ 17563 extern int Set3DSoundListenerPosAndFrontPos_UpVecY(.VECTOR Position, .VECTOR FrontPosition); 17564 17565 /** 17566 * 3Dサウンドのリスナーの位置とリスナーの前方位置とリスナーの上方向を設定する 17567 */ 17568 extern int Set3DSoundListenerPosAndFrontPosAndUpVec(.VECTOR Position, .VECTOR FrontPosition, .VECTOR UpVector); 17569 17570 /** 17571 * 3Dサウンドのリスナーの移動速度を設定する 17572 */ 17573 extern int Set3DSoundListenerVelocity(.VECTOR Velocity); 17574 17575 /** 17576 * 3Dサウンドのリスナーの可聴角度範囲を設定する 17577 */ 17578 extern int Set3DSoundListenerConeAngle(float InnerAngle, float OuterAngle); 17579 17580 /** 17581 * 3Dサウンドのリスナーの可聴角度範囲の音量倍率を設定する 17582 */ 17583 extern int Set3DSoundListenerConeVolume(float InnerAngleVolume, float OuterAngleVolume); 17584 17585 version (DX_NON_BEEP) { 17586 } else { 17587 // BEEP音再生用命令 17588 17589 /** 17590 * ビープ音周波数設定関数 17591 */ 17592 extern int SetBeepFrequency(int Freq); 17593 17594 /** 17595 * ビープ音を再生する 17596 */ 17597 extern int PlayBeep(); 17598 17599 /** 17600 * ビープ音を止める 17601 */ 17602 extern int StopBeep(); 17603 } 17604 17605 // ラッパー関数 17606 17607 /** 17608 * サウンドファイルを再生する 17609 */ 17610 extern int PlaySoundFile(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType); 17611 17612 /** 17613 * サウンドファイルを再生する 17614 */ 17615 extern int PlaySoundFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType); 17616 17617 /** 17618 * PlaySoundFileの旧名称 17619 */ 17620 extern int PlaySound(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType); 17621 17622 /** 17623 * PlaySoundFileの旧名称 17624 */ 17625 extern int PlaySoundWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType); 17626 17627 /** 17628 * サウンドファイルの再生中かどうかを取得する 17629 */ 17630 extern int CheckSoundFile(); 17631 17632 /** 17633 * CheckSoundFileの旧名称 17634 */ 17635 extern int CheckSound(); 17636 17637 /** 17638 * サウンドファイルの再生を停止する 17639 */ 17640 extern int StopSoundFile(); 17641 17642 /** 17643 * StopSoundFileの旧名称 17644 */ 17645 extern int StopSound(); 17646 17647 /** 17648 * サウンドファイルの音量を設定する 17649 */ 17650 extern int SetVolumeSoundFile(int VolumePal); 17651 17652 /** 17653 * SetVolumeSoundの旧名称 17654 */ 17655 extern int SetVolumeSound(int VolumePal); 17656 17657 // ソフトウエア制御サウンド系関数 17658 17659 /** 17660 * ソフトウエアで扱う波形データハンドルをすべて削除する 17661 */ 17662 extern int InitSoftSound(); 17663 17664 /** 17665 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する 17666 */ 17667 extern int LoadSoftSound(const (dxlib_d.DxDataType.TCHAR)* FileName); 17668 17669 /** 17670 * ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する 17671 */ 17672 extern int LoadSoftSoundWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 17673 17674 /** 17675 * ソフトウエアで扱う波形データハンドルをメモリ上に展開されたサウンドファイルイメージから作成する 17676 */ 17677 extern int LoadSoftSoundFromMemImage(const (void)* FileImage, size_t FileImageSize); 17678 17679 /** 17680 * ソフトウエアで扱う空の波形データハンドルを作成する(フォーマットは引数のソフトウエアサウンドハンドルと同じものにする) 17681 */ 17682 extern int MakeSoftSound(int UseFormat_SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SampleNum); 17683 17684 /** 17685 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:44.1KHz) 17686 */ 17687 extern int MakeSoftSound2Ch16Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17688 17689 /** 17690 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:22KHz) 17691 */ 17692 extern int MakeSoftSound2Ch16Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17693 17694 /** 17695 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:44.1KHz) 17696 */ 17697 extern int MakeSoftSound2Ch8Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17698 17699 /** 17700 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:22KHz) 17701 */ 17702 extern int MakeSoftSound2Ch8Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17703 17704 /** 17705 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:44.1KHz) 17706 */ 17707 extern int MakeSoftSound1Ch16Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17708 17709 /** 17710 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:22KHz) 17711 */ 17712 extern int MakeSoftSound1Ch16Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17713 17714 /** 17715 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:44.1KHz) 17716 */ 17717 extern int MakeSoftSound1Ch8Bit44KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17718 17719 /** 17720 * ソフトウエアで扱う空の波形データハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:22KHz) 17721 */ 17722 extern int MakeSoftSound1Ch8Bit22KHz(dxlib_d.DxDataType.LONGLONG SampleNum); 17723 17724 /** 17725 * ソフトウエアで扱う空の波形データハンドルを作成する 17726 */ 17727 extern int MakeSoftSoundCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec, dxlib_d.DxDataType.LONGLONG SampleNum, int IsFloatType = 0); 17728 17729 /** 17730 * ソフトウエアで扱う波形データハンドルを削除する 17731 */ 17732 extern int DeleteSoftSound(int SoftSoundHandle); 17733 17734 version (DX_NON_SAVEFUNCTION) { 17735 } else { 17736 /** 17737 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する 17738 */ 17739 extern int SaveSoftSound(int SoftSoundHandle, const (dxlib_d.DxDataType.TCHAR)* FileName); 17740 17741 /** 17742 * ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する 17743 */ 17744 extern int SaveSoftSoundWithStrLen(int SoftSoundHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 17745 } 17746 17747 /** 17748 * ソフトウエアで扱う波形データハンドルのサンプル数を取得する 17749 */ 17750 extern dxlib_d.DxDataType.LONGLONG GetSoftSoundSampleNum(int SoftSoundHandle); 17751 17752 /** 17753 * ソフトウエアで扱う波形データハンドルのフォーマットを取得する 17754 */ 17755 extern int GetSoftSoundFormat(int SoftSoundHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec, int* IsFloatType = null); 17756 17757 /** 17758 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る 17759 */ 17760 extern int ReadSoftSoundData(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, int* Channel1, int* Channel2); 17761 17762 /** 17763 * ソフトウエアで扱う波形データハンドルのサンプルを読み取る(float型版) 17764 */ 17765 extern int ReadSoftSoundDataF(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, float* Channel1, float* Channel2); 17766 17767 /** 17768 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む 17769 */ 17770 extern int WriteSoftSoundData(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, int Channel1, int Channel2); 17771 17772 /** 17773 * ソフトウエアで扱う波形データハンドルのサンプルを書き込む(float型版) 17774 */ 17775 extern int WriteSoftSoundDataF(int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG SamplePosition, float Channel1, float Channel2); 17776 17777 /** 17778 * ソフトウエアで扱う波形データハンドルの波形データを音程を変えずにデータの長さを変更する 17779 */ 17780 extern int WriteTimeStretchSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle); 17781 17782 /** 17783 * ソフトウエアで扱う波形データハンドルの波形データの長さを変更する 17784 */ 17785 extern int WritePitchShiftSoftSoundData(int SrcSoftSoundHandle, int DestSoftSoundHandle); 17786 17787 /** 17788 * ソフトウエアで扱う波形データハンドルの波形イメージが格納されているメモリアドレスを取得する 17789 */ 17790 extern void* GetSoftSoundDataImage(int SoftSoundHandle); 17791 17792 /** 17793 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する(SampleNumは16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536の何れかである必要があります、Channelを-1にすると二つのチャンネルを合成した結果になります) 17794 */ 17795 extern int GetFFTVibrationSoftSound(int SoftSoundHandle, int Channel, dxlib_d.DxDataType.LONGLONG SamplePosition, int SampleNum, float* Buffer_Array, int BufferLength); 17796 17797 /** 17798 * ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する、結果の実数と虚数を別々に取得することができるバージョン(SampleNumは16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536の何れかである必要があります、Channelを-1にすると二つのチャンネルを合成した結果になります) 17799 */ 17800 extern int GetFFTVibrationSoftSoundBase(int SoftSoundHandle, int Channel, dxlib_d.DxDataType.LONGLONG SamplePosition, int SampleNum, float* RealBuffer_Array, float* ImagBuffer_Array, int BufferLength); 17801 17802 /** 17803 * ソフトウエアで扱う波形データのプレイヤーハンドルをすべて解放する 17804 */ 17805 extern int InitSoftSoundPlayer(); 17806 17807 /** 17808 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(フォーマットは引数のソフトウエアサウンドハンドルと同じものにする) 17809 */ 17810 extern int MakeSoftSoundPlayer(int UseFormat_SoftSoundHandle); 17811 17812 /** 17813 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:44.1KHz) 17814 */ 17815 extern int MakeSoftSoundPlayer2Ch16Bit44KHz(); 17816 17817 /** 17818 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:16bitサンプリング周波数:22KHz) 17819 */ 17820 extern int MakeSoftSoundPlayer2Ch16Bit22KHz(); 17821 17822 /** 17823 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:44.1KHz) 17824 */ 17825 extern int MakeSoftSoundPlayer2Ch8Bit44KHz(); 17826 17827 /** 17828 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:2 量子化ビット数:8bitサンプリング周波数:22KHz) 17829 */ 17830 extern int MakeSoftSoundPlayer2Ch8Bit22KHz(); 17831 17832 /** 17833 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:44.1KHz) 17834 */ 17835 extern int MakeSoftSoundPlayer1Ch16Bit44KHz(); 17836 17837 /** 17838 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:16bitサンプリング周波数:22KHz) 17839 */ 17840 extern int MakeSoftSoundPlayer1Ch16Bit22KHz(); 17841 17842 /** 17843 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:44.1KHz) 17844 */ 17845 extern int MakeSoftSoundPlayer1Ch8Bit44KHz(); 17846 17847 /** 17848 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する(チャンネル数:1 量子化ビット数:8bitサンプリング周波数:22KHz) 17849 */ 17850 extern int MakeSoftSoundPlayer1Ch8Bit22KHz(); 17851 17852 /** 17853 * ソフトウエアで扱う波形データのプレイヤーハンドルを作成する 17854 */ 17855 extern int MakeSoftSoundPlayerCustom(int ChannelNum, int BitsPerSample, int SamplesPerSec); 17856 17857 /** 17858 * ソフトウエアで扱う波形データのプレイヤーハンドルを削除する 17859 */ 17860 extern int DeleteSoftSoundPlayer(int SSoundPlayerHandle); 17861 17862 /** 17863 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを追加する(フォーマットが同じではない場合はエラー) 17864 */ 17865 extern int AddDataSoftSoundPlayer(int SSoundPlayerHandle, int SoftSoundHandle, dxlib_d.DxDataType.LONGLONG AddSamplePosition, int AddSampleNum); 17866 17867 /** 17868 * ソフトウエアで扱う波形データのプレイヤーハンドルにプレイヤーが対応したフォーマットの生波形データを追加する 17869 */ 17870 extern int AddDirectDataSoftSoundPlayer(int SSoundPlayerHandle, const (void)* SoundData, int AddSampleNum); 17871 17872 /** 17873 * ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを1つ追加する 17874 */ 17875 extern int AddOneDataSoftSoundPlayer(int SSoundPlayerHandle, int Channel1, int Channel2); 17876 17877 /** 17878 * ソフトウエアで扱う波形データのプレイヤーハンドルが扱うデータフォーマットを取得する 17879 */ 17880 extern int GetSoftSoundPlayerFormat(int SSoundPlayerHandle, int* Channels, int* BitsPerSample, int* SamplesPerSec); 17881 17882 /** 17883 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を開始する 17884 */ 17885 extern int StartSoftSoundPlayer(int SSoundPlayerHandle); 17886 17887 /** 17888 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理が開始されているか取得する 17889 * 17890 * Returns: dxlib_d.DxDataType.TRUE:開始している dxlib_d.DxDataType.FALSE:停止している 17891 */ 17892 extern int CheckStartSoftSoundPlayer(int SSoundPlayerHandle); 17893 17894 /** 17895 * ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を停止する 17896 */ 17897 extern int StopSoftSoundPlayer(int SSoundPlayerHandle); 17898 17899 /** 17900 * ソフトウエアで扱う波形データのプレイヤーハンドルの状態を初期状態に戻す(追加された波形データは削除され、再生状態だった場合は停止する) 17901 */ 17902 extern int ResetSoftSoundPlayer(int SSoundPlayerHandle); 17903 17904 /** 17905 * ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する 17906 */ 17907 extern int GetStockDataLengthSoftSoundPlayer(int SSoundPlayerHandle); 17908 17909 /** 17910 * ソフトウエアで扱う波形データのプレイヤーハンドルに再生用サウンドバッファに転送していない波形データが無く、再生用サウンドバッファにも無音データ以外無いかどうかを取得する 17911 * 17912 * Returns: dxlib_d.DxDataType.TRUE:無音データ以外無い dxlib_d.DxDataType.FALSE:有効データがある 17913 */ 17914 extern int CheckSoftSoundPlayerNoneData(int SSoundPlayerHandle); 17915 17916 // MIDI制御関数 17917 17918 /** 17919 * MIDIハンドルを削除する 17920 */ 17921 extern int DeleteMusicMem(int MusicHandle); 17922 17923 /** 17924 * MIDIファイルを読み込みMIDIハンドルを作成する 17925 */ 17926 extern int LoadMusicMem(const (dxlib_d.DxDataType.TCHAR)* FileName); 17927 17928 /** 17929 * MIDIファイルを読み込みMIDIハンドルを作成する 17930 */ 17931 extern int LoadMusicMemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 17932 17933 /** 17934 * メモリ上に展開されたMIDIファイルイメージからMIDIハンドルを作成する 17935 */ 17936 extern int LoadMusicMemByMemImage(const (void)* FileImage, size_t FileImageSize); 17937 17938 /** 17939 * MIDIハンドルの演奏を開始する 17940 */ 17941 extern int PlayMusicMem(int MusicHandle, int PlayType); 17942 17943 /** 17944 * MIDIハンドルの演奏を停止する 17945 */ 17946 extern int StopMusicMem(int MusicHandle); 17947 17948 /** 17949 * MIDIハンドルが演奏中かどうかを取得する 17950 * 17951 * Returns: dxlib_d.DxDataType.TRUE:演奏中 dxlib_d.DxDataType.FALSE:停止中 17952 */ 17953 extern int CheckMusicMem(int MusicHandle); 17954 17955 /** 17956 * MIDIハンドルの再生音量をセットする 17957 */ 17958 extern int SetVolumeMusicMem(int Volume, int MusicHandle); 17959 17960 /** 17961 * MIDIハンドルの現在の再生位置を取得する 17962 */ 17963 extern int GetMusicMemPosition(int MusicHandle); 17964 17965 /** 17966 * MIDIハンドルをすべて削除する 17967 */ 17968 extern int InitMusicMem(); 17969 17970 /** 17971 * MIDIハンドルの周期的処理(内部で呼ばれます) 17972 */ 17973 extern int ProcessMusicMem(); 17974 17975 /** 17976 * MIDIファイルを演奏する 17977 */ 17978 extern int PlayMusic(const (dxlib_d.DxDataType.TCHAR)* FileName, int PlayType); 17979 17980 /** 17981 * MIDIファイルを演奏する 17982 */ 17983 extern int PlayMusicWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int PlayType); 17984 17985 /** 17986 * メモリ上に展開されているMIDIファイルを演奏する 17987 */ 17988 extern int PlayMusicByMemImage(const (void)* FileImage, size_t FileImageSize, int PlayType); 17989 17990 /** 17991 * MIDIの再生音量をセットする 17992 */ 17993 extern int SetVolumeMusic(int Volume); 17994 17995 /** 17996 * MIDIファイルの演奏停止 17997 */ 17998 extern int StopMusic(); 17999 18000 /** 18001 * MIDIファイルが演奏中か否か情報を取得する 18002 */ 18003 extern int CheckMusic(); 18004 18005 /** 18006 * MIDIの現在の再生位置を取得する 18007 */ 18008 extern int GetMusicPosition(); 18009 18010 /** 18011 * MIDIの再生形式を設定する 18012 */ 18013 extern int SelectMidiMode(int Mode); 18014 } 18015 18016 // DxArchive_.cpp 関数 プロトタイプ宣言 18017 18018 /** 18019 * DXアーカイブファイルの読み込み機能を使うかどうかを設定する 18020 * 18021 * Returns: dxlib_d.DxDataType.FALSE:使用しない dxlib_d.DxDataType.TRUE:使用する 18022 */ 18023 extern int SetUseDXArchiveFlag(int Flag); 18024 18025 /** 18026 * 同名のDXアーカイブファイルとフォルダが存在した場合、どちらを優先させるかを設定する 18027 * 18028 * Params: 18029 * Priority = 1:フォルダを優先 0:DXアーカイブファイルを優先(デフォルト) 18030 */ 18031 extern int SetDXArchivePriority(int Priority = 0); 18032 18033 /** 18034 * 検索するDXアーカイブファイルの拡張子を設定する 18035 * 18036 * Params: 18037 * Extension = 拡張子名文字列 18038 */ 18039 extern int SetDXArchiveExtension(const (dxlib_d.DxDataType.TCHAR)* Extension = null); 18040 18041 /** 18042 * 検索するDXアーカイブファイルの拡張子を設定する 18043 * 18044 * Params: 18045 * Extension = 拡張子名文字列 18046 * ExtensionLength = ? 18047 */ 18048 extern int SetDXArchiveExtensionWithStrLen(const (dxlib_d.DxDataType.TCHAR)* Extension = null, size_t ExtensionLength = 0); 18049 18050 /** 18051 * DXアーカイブファイルの鍵文字列を設定する 18052 * 18053 * Params: 18054 * KeyString = 鍵文字列 18055 */ 18056 extern int SetDXArchiveKeyString(const (dxlib_d.DxDataType.TCHAR)* KeyString = null); 18057 18058 /** 18059 * DXアーカイブファイルの鍵文字列を設定する 18060 * 18061 * Params: 18062 * KeyString = 鍵文字列 18063 * KeyStringLength = ? 18064 */ 18065 extern int SetDXArchiveKeyStringWithStrLen(const (dxlib_d.DxDataType.TCHAR)* KeyString = null, size_t KeyStringLength = 0); 18066 18067 /** 18068 * 指定のDXAファイルを丸ごとメモリに読み込む 18069 * 18070 * Returns: -1:エラー 0:成功 18071 */ 18072 extern int DXArchivePreLoad(const (dxlib_d.DxDataType.TCHAR)* FilePath, int ASync = dxlib_d.DxDataType.FALSE); 18073 18074 /** 18075 * 指定のDXAファイルを丸ごとメモリに読み込む 18076 * 18077 * Returns: -1:エラー 0:成功 18078 */ 18079 extern int DXArchivePreLoadWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, int ASync = dxlib_d.DxDataType.FALSE); 18080 18081 /** 18082 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する 18083 * 18084 * Returns: dxlib_d.DxDataType.TRUE:完了した dxlib_d.DxDataType.FALSE:まだ 18085 */ 18086 extern int DXArchiveCheckIdle(const (dxlib_d.DxDataType.TCHAR)* FilePath); 18087 18088 /** 18089 * 指定のDXAファイルの事前読み込みが完了したかどうかを取得する 18090 * 18091 * Returns: dxlib_d.DxDataType.TRUE:完了した dxlib_d.DxDataType.FALSE:まだ 18092 */ 18093 extern int DXArchiveCheckIdleWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 18094 18095 /** 18096 * 指定のDXAファイルをメモリから解放する 18097 */ 18098 extern int DXArchiveRelease(const (dxlib_d.DxDataType.TCHAR)* FilePath); 18099 18100 /** 18101 * 指定のDXAファイルをメモリから解放する 18102 */ 18103 extern int DXArchiveReleaseWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 18104 18105 /** 18106 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePathはDXAファイルをカレントフォルダとした場合のパス 18107 * 18108 * Returns: -1:エラー 0:無い 1:ある 18109 */ 18110 extern int DXArchiveCheckFile(const (dxlib_d.DxDataType.TCHAR)* FilePath, const (dxlib_d.DxDataType.TCHAR)* TargetFilePath); 18111 18112 /** 18113 * DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePathはDXAファイルをカレントフォルダとした場合のパス 18114 * 18115 * Returns: -1:エラー 0:無い 1:ある 18116 */ 18117 extern int DXArchiveCheckFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength, const (dxlib_d.DxDataType.TCHAR)* TargetFilePath, size_t TargetFilePathLength); 18118 18119 /** 18120 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする(EmulateFilePathは見立てるdxaファイルのパス、例えばDXAファイルイメージをImage.dxaというファイル名でc:\Tempにあることにしたい場合はEmulateFilePathに"c:\\Temp\\Image.dxa"を渡す、SetDXArchiveExtensionで拡張子を変更している場合はEmulateFilePathに渡すファイルパスの拡張子もそれに合わせる必要あり) 18121 */ 18122 extern int DXArchiveSetMemImage(void* ArchiveImage, int ArchiveImageSize, const (dxlib_d.DxDataType.TCHAR)* EmulateFilePath, int ArchiveImageCopyFlag = dxlib_d.DxDataType.FALSE, int ArchiveImageReadOnly = dxlib_d.DxDataType.TRUE); 18123 18124 /** 18125 * メモリ上に展開されたDXAファイルを指定のファイルパスにあることにする(EmulateFilePathは見立てるdxaファイルのパス、例えばDXAファイルイメージをImage.dxaというファイル名でc:\Tempにあることにしたい場合はEmulateFilePathに"c:\\Temp\\Image.dxa"を渡す、SetDXArchiveExtensionで拡張子を変更している場合はEmulateFilePathに渡すファイルパスの拡張子もそれに合わせる必要あり) 18126 */ 18127 extern int DXArchiveSetMemImageWithStrLen(void* ArchiveImage, int ArchiveImageSize, const (dxlib_d.DxDataType.TCHAR)* EmulateFilePath, size_t EmulateFilePathLength, int ArchiveImageCopyFlag = dxlib_d.DxDataType.FALSE, int ArchiveImageReadOnly = dxlib_d.DxDataType.TRUE); 18128 18129 /** 18130 * DXArchiveSetMemImageの設定を解除する 18131 */ 18132 extern int DXArchiveReleaseMemImage(void* ArchiveImage); 18133 18134 /** 18135 * バイナリデータを元にCRC32のハッシュ値を計算する 18136 */ 18137 extern dxlib_d.DxDataType.DWORD HashCRC32(const (void)* SrcData, size_t SrcDataSize); 18138 18139 // DxModel.cpp 関数 プロトタイプ宣言 18140 18141 version (DX_NON_MODEL) { 18142 } else { 18143 // モデルの読み込み・複製関係 18144 18145 /** 18146 * モデルの読み込み 18147 * 18148 * Returns: -1:エラー 0以上:モデルハンドル 18149 */ 18150 extern int MV1LoadModel(const (dxlib_d.DxDataType.TCHAR)* FileName); 18151 18152 /** 18153 * モデルの読み込み 18154 * 18155 * Returns: -1:エラー 0以上:モデルハンドル 18156 */ 18157 extern int MV1LoadModelWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 18158 18159 /** 18160 * メモリ上のモデルファイルイメージと独自の読み込みルーチンを使用してモデルを読み込む 18161 */ 18162 extern int MV1LoadModelFromMem(const (void)* FileImage, int FileSize, int function(const (dxlib_d.DxDataType.TCHAR)* FilePath, void** FileImageAddr, int* FileSize, void* FileReadFuncData) FileReadFunc, int function(void* MemoryAddr, void* FileReadFuncData) FileReleaseFunc, void* FileReadFuncData = null); 18163 18164 /** 18165 * 指定のモデルと同じモデル基本データを使用してモデルを作成する 18166 * 18167 * Returns: -1:エラー 0以上:モデルハンドル 18168 */ 18169 extern int MV1DuplicateModel(int SrcMHandle); 18170 18171 /** 18172 * 指定のモデルをモデル基本データも含め複製する(MV1DuplicateModelはモデル基本データは共有しますが、こちらは複製元のモデルとは一切共有データの無いモデルハンドルを作成します) 18173 * 18174 * Returns: -1:エラー 0以上:モデルハンドル 18175 */ 18176 extern int MV1CreateCloneModel(int SrcMHandle); 18177 18178 /** 18179 * モデルを削除する 18180 */ 18181 extern int MV1DeleteModel(int MHandle); 18182 18183 /** 18184 * すべてのモデルを削除する 18185 */ 18186 extern int MV1InitModel(); 18187 18188 /** 18189 * モデルを読み込む際に法線の再計算を行うかどうかを設定する 18190 * 18191 * Params: 18192 * Flag = dxlib_d.DxDataType.TRUE:行う dxlib_d.DxDataType.FALSE:行わない(デフォルト) 18193 */ 18194 extern int MV1SetLoadModelReMakeNormal(int Flag); 18195 18196 /** 18197 * モデルを読み込む際に行う法泉の再計算で使用するスムージング角度を設定する(単位はラジアン) 18198 */ 18199 extern int MV1SetLoadModelReMakeNormalSmoothingAngle(float SmoothingAngle = 1.562069f); 18200 18201 /** 18202 * モデルを読み込む際にスケーリングデータを無視するかどうかを設定する 18203 * 18204 * Params: 18205 * Flag = dxlib_d.DxDataType.TRUE:無視する dxlib_d.DxDataType.FALSE:無視しない(デフォルト) 18206 */ 18207 extern int MV1SetLoadModelIgnoreScaling(int Flag); 18208 18209 /** 18210 * モデルを読み込む際に座標データの最適化を行うかどうかを設定する 18211 * 18212 * Params: 18213 * Flag = dxlib_d.DxDataType.TRUE:行う dxlib_d.DxDataType.FALSE:行わない(デフォルト) 18214 */ 18215 extern int MV1SetLoadModelPositionOptimize(int Flag); 18216 18217 /** 18218 * モデルを読み込む際にポリゴンの辺が接していて、且つ法線の方向が異なる辺に面積0のポリゴンを埋め込むかどうかを設定する、(MV1ファイルの読み込みではこの関数の設定は無視され、ポリゴンの埋め込みは実行されません) 18219 * 18220 * Params: 18221 * Flag = dxlib_d.DxDataType.TRUE:埋め込む dxlib_d.DxDataType.FALSE:埋め込まない(デフォルト) 18222 */ 18223 extern int MV1SetLoadModelNotEqNormalSide_AddZeroAreaPolygon(int Flag); 18224 18225 /** 18226 * 読み込むモデルの物理演算モードを設定する 18227 */ 18228 extern int MV1SetLoadModelUsePhysicsMode(int PhysicsMode /* DX_LOADMODEL_PHYSICS_LOADCALC等 */); 18229 18230 /** 18231 * 読み込むモデルの物理演算に適用する重力パラメータを設定する 18232 */ 18233 extern int MV1SetLoadModelPhysicsWorldGravity(float Gravity); 18234 18235 /** 18236 * 読み込むモデルの物理演算に適用する重力パラメータを取得する 18237 */ 18238 extern float MV1GetLoadModelPhysicsWorldGravity(); 18239 18240 /** 18241 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される重力の設定をする 18242 */ 18243 extern int MV1SetLoadCalcPhysicsWorldGravity(int GravityNo, .VECTOR Gravity); 18244 18245 /** 18246 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される重力を取得する 18247 */ 18248 extern .VECTOR MV1GetLoadCalcPhysicsWorldGravity(int GravityNo); 18249 18250 /** 18251 * 読み込むモデルの物理演算モードが事前計算(DX_LOADMODEL_PHYSICS_LOADCALC)だった場合に適用される物理演算の時間進行の精度を設定する(0:60FPS 1:120FPS 2:240FPS 3:480FPS 4:960FPS 5:1920FPS) 18252 * 18253 * Params: 18254 * Precision = ? 18255 */ 18256 extern int MV1SetLoadModelPhysicsCalcPrecision(int Precision); 18257 18258 /** 18259 * PMD, PMXファイルを読み込んだ際のアニメーションのFPSモードを設定する 18260 */ 18261 extern int MV1SetLoadModel_PMD_PMX_AnimationFPSMode(int FPSMode /* DX_LOADMODEL_PMD_PMX_ANIMATION_FPSMODE_30等 */); 18262 18263 /** 18264 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は63文字、追加できるワードの数は最大256個 18265 */ 18266 extern int MV1AddLoadModelDisablePhysicsNameWord(const (dxlib_d.DxDataType.TCHAR)* NameWord); 18267 18268 /** 18269 * 読み込むモデルの物理演算を特定の剛体のみ無効にするための名前のワードを追加する、追加できるワード文字列の最大長は63文字、追加できるワードの数は最大256個 18270 */ 18271 extern int MV1AddLoadModelDisablePhysicsNameWordWithStrLen(const (dxlib_d.DxDataType.TCHAR)* NameWord, size_t NameWordLength); 18272 18273 /** 18274 * MV1AddLoadModelDisablePhysicsNameWordで追加した剛体の無効ワードをリセットして無効ワード無しの初期状態に戻す 18275 */ 18276 extern int MV1ResetLoadModelDisablePhysicsNameWord(); 18277 18278 /** 18279 * MV1AddLoadModelDisablePhysicsNameWordで追加した剛体の無効ワードの適用ルールを変更する 18280 */ 18281 extern int MV1SetLoadModelDisablePhysicsNameWordMode(int DisableNameWordMode /* DX_LOADMODEL_PHYSICS_DISABLENAMEWORD_ALWAYS等 */); 18282 18283 /** 18284 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット(現在はPMD,PMXのみに効果あり) 18285 */ 18286 extern int MV1SetLoadModelAnimFilePath(const (dxlib_d.DxDataType.TCHAR)* FileName); 18287 18288 /** 18289 * 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット(現在はPMD,PMXのみに効果あり) 18290 */ 18291 extern int MV1SetLoadModelAnimFilePathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 18292 18293 /** 18294 * 読み込むモデルを同時複数描画に対応させるかどうかを設定する、(「対応させる」にすると描画が高速になる可能性がある代わりに消費VRAMが増えます) 18295 * 18296 * Params: 18297 * Flag = dxlib_d.DxDataType.TRUE:対応させる dxlib_d.DxDataType.FALSE:対応させない(デフォルト) 18298 */ 18299 extern int MV1SetLoadModelUsePackDraw(int Flag); 18300 18301 /** 18302 * 読み込むモデルのひとつのトライアングルリストで使用できる最大ボーン数を設定する(UseMaxBoneNumで指定できる値の範囲は8~54、0を指定するとデフォルト動作に戻る) 18303 */ 18304 extern int MV1SetLoadModelTriangleListUseMaxBoneNum(int UseMaxBoneNum); 18305 18306 // モデル保存関係 18307 18308 /** 18309 * 指定のパスにモデルを保存する 18310 * 18311 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18312 */ 18313 extern int MV1SaveModelToMV1File(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE, int Normal8BitFlag = 1, int Position16BitFlag = 1, int Weight8BitFlag = 0, int Anim16BitFlag = 1); 18314 18315 /** 18316 * 指定のパスにモデルを保存する 18317 * 18318 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18319 */ 18320 extern int MV1SaveModelToMV1FileWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE, int Normal8BitFlag = 1, int Position16BitFlag = 1, int Weight8BitFlag = 0, int Anim16BitFlag = 1); 18321 18322 version (DX_NON_SAVEFUNCTION) { 18323 } else { 18324 /** 18325 * 指定のパスにモデルをXファイル形式で保存する 18326 * 18327 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18328 */ 18329 extern int MV1SaveModelToXFile(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE); 18330 18331 /** 18332 * 指定のパスにモデルをXファイル形式で保存する 18333 * 18334 * Returns: 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった 18335 */ 18336 extern int MV1SaveModelToXFileWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int SaveType = MV1_SAVETYPE_NORMAL, int AnimMHandle = -1, int AnimNameCheck = dxlib_d.DxDataType.TRUE); 18337 } 18338 18339 // モデル描画関係 18340 18341 /** 18342 * モデルを描画する 18343 */ 18344 extern int MV1DrawModel(int MHandle); 18345 18346 /** 18347 * モデルの指定のフレームを描画する 18348 */ 18349 extern int MV1DrawFrame(int MHandle, int FrameIndex); 18350 18351 /** 18352 * モデルの指定のメッシュを描画する 18353 */ 18354 extern int MV1DrawMesh(int MHandle, int MeshIndex); 18355 18356 /** 18357 * モデルの指定のトライアングルリストを描画する 18358 */ 18359 extern int MV1DrawTriangleList(int MHandle, int TriangleListIndex); 18360 18361 /** 18362 * モデルのデバッグ描画 18363 */ 18364 extern int MV1DrawModelDebug(int MHandle, uint Color, int IsNormalLine, float NormalLineLength, int IsPolyLine, int IsCollisionBox); 18365 18366 // 描画設定関係 18367 18368 /** 18369 * モデルの描画にSetUseVertexShader, SetUsePixelShaderで指定したシェーダーを使用するかどうかを設定する 18370 * 18371 * Params: 18372 * UseFlag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 18373 */ 18374 extern int MV1SetUseOrigShader(int UseFlag); 18375 18376 /** 18377 * モデルの半透明要素がある部分についての描画モードを設定する 18378 */ 18379 extern int MV1SetSemiTransDrawMode(int DrawMode /* DX_SEMITRANSDRAWMODE_ALWAYS等 */); 18380 18381 // モデル基本制御関係 18382 18383 /** 18384 * モデルのローカル座標からワールド座標に変換する行列を得る 18385 */ 18386 extern .MATRIX MV1GetLocalWorldMatrix(int MHandle); 18387 18388 /** 18389 * モデルのローカル座標からワールド座標に変換する行列を得る 18390 */ 18391 extern .MATRIX_D MV1GetLocalWorldMatrixD(int MHandle); 18392 18393 /** 18394 * モデルの座標をセット 18395 */ 18396 extern int MV1SetPosition(int MHandle, .VECTOR Position); 18397 18398 /** 18399 * モデルの座標をセット 18400 */ 18401 extern int MV1SetPositionD(int MHandle, .VECTOR_D Position); 18402 18403 /** 18404 * モデルの座標を取得 18405 */ 18406 extern .VECTOR MV1GetPosition(int MHandle); 18407 18408 /** 18409 * モデルの座標を取得 18410 */ 18411 extern .VECTOR_D MV1GetPositionD(int MHandle); 18412 18413 /** 18414 * モデルの拡大値をセット 18415 */ 18416 extern int MV1SetScale(int MHandle, .VECTOR Scale); 18417 18418 /** 18419 * モデルの拡大値を取得 18420 */ 18421 extern .VECTOR MV1GetScale(int MHandle); 18422 18423 /** 18424 * モデルの回転値をセット(X軸回転→Y軸回転→Z軸回転方式) 18425 */ 18426 extern int MV1SetRotationXYZ(int MHandle, .VECTOR Rotate); 18427 18428 /** 18429 * モデルの回転値を取得(X軸回転→Y軸回転→Z軸回転方式) 18430 */ 18431 extern .VECTOR MV1GetRotationXYZ(int MHandle); 18432 18433 /** 18434 * モデルのZ軸とY軸の向きをセットする 18435 */ 18436 extern int MV1SetRotationZYAxis(int MHandle, .VECTOR ZAxisDirection, .VECTOR YAxisDirection, float ZAxisTwistRotate); 18437 18438 /** 18439 * モデルのY軸の回転値を指定のベクトルの向きを元に設定する、モデルはZ軸のマイナス方向を向いていることを想定するので、そうではない場合はOffsetYAngleで補正する、X軸回転、Z軸回転は0で固定 18440 */ 18441 extern int MV1SetRotationYUseDir(int MHandle, .VECTOR Direction, float OffsetYAngle); 18442 18443 /** 18444 * モデルの回転用行列をセットする 18445 */ 18446 extern int MV1SetRotationMatrix(int MHandle, .MATRIX Matrix); 18447 18448 /** 18449 * モデルの回転用行列を取得する 18450 */ 18451 extern .MATRIX MV1GetRotationMatrix(int MHandle); 18452 18453 /** 18454 * モデルの変形用行列をセットする 18455 */ 18456 extern int MV1SetMatrix(int MHandle, .MATRIX Matrix); 18457 18458 /** 18459 * モデルの変形用行列をセットする 18460 */ 18461 extern int MV1SetMatrixD(int MHandle, .MATRIX_D Matrix); 18462 18463 /** 18464 * モデルの変形用行列を取得する 18465 */ 18466 extern .MATRIX MV1GetMatrix(int MHandle); 18467 18468 /** 18469 * モデルの変形用行列を取得する 18470 */ 18471 extern .MATRIX_D MV1GetMatrixD(int MHandle); 18472 18473 /** 18474 * モデルの表示、非表示状態を変更する 18475 * 18476 * Params: 18477 * MHandle = ? 18478 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 18479 */ 18480 extern int MV1SetVisible(int MHandle, int VisibleFlag); 18481 18482 /** 18483 * モデルの表示、非表示状態を取得する 18484 * 18485 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 18486 */ 18487 extern int MV1GetVisible(int MHandle); 18488 18489 /** 18490 * モデルのメッシュの種類(DX_MV1_MESHCATEGORY_NORMALなど)毎の表示、非表示を設定する 18491 * 18492 * Params: 18493 * MHandle = ? 18494 * MeshCategory = ? 18495 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 18496 */ 18497 extern int MV1SetMeshCategoryVisible(int MHandle, int MeshCategory, int VisibleFlag); 18498 18499 /** 18500 * モデルのメッシュの種類(DX_MV1_MESHCATEGORY_NORMALなど)毎の表示、非表示を取得する 18501 * 18502 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 18503 */ 18504 extern int MV1GetMeshCategoryVisible(int MHandle, int MeshCategory); 18505 18506 /** 18507 * モデルのディフューズカラーのスケール値を設定する(デフォルト値は1.0f) 18508 */ 18509 extern int MV1SetDifColorScale(int MHandle, .COLOR_F Scale); 18510 18511 /** 18512 * モデルのディフューズカラーのスケール値を取得する(デフォルト値は1.0f) 18513 */ 18514 extern .COLOR_F MV1GetDifColorScale(int MHandle); 18515 18516 /** 18517 * モデルのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f) 18518 */ 18519 extern int MV1SetSpcColorScale(int MHandle, .COLOR_F Scale); 18520 18521 /** 18522 * モデルのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f) 18523 */ 18524 extern .COLOR_F MV1GetSpcColorScale(int MHandle); 18525 18526 /** 18527 * モデルのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f) 18528 */ 18529 extern int MV1SetEmiColorScale(int MHandle, .COLOR_F Scale); 18530 18531 /** 18532 * モデルのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f) 18533 */ 18534 extern .COLOR_F MV1GetEmiColorScale(int MHandle); 18535 18536 /** 18537 * モデルのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f) 18538 */ 18539 extern int MV1SetAmbColorScale(int MHandle, .COLOR_F Scale); 18540 18541 /** 18542 * モデルのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f) 18543 */ 18544 extern .COLOR_F MV1GetAmbColorScale(int MHandle); 18545 18546 /** 18547 * モデルに半透明要素があるかどうかを取得する 18548 * 18549 * Returns: dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない 18550 */ 18551 extern int MV1GetSemiTransState(int MHandle); 18552 18553 /** 18554 * モデルの不透明度を設定する(不透明1.0f~透明 0.0f) 18555 */ 18556 extern int MV1SetOpacityRate(int MHandle, float Rate); 18557 18558 /** 18559 * モデルの不透明度を取得する(不透明1.0f~透明 0.0f) 18560 */ 18561 extern float MV1GetOpacityRate(int MHandle); 18562 18563 /** 18564 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを設定する(描画結果が乗算済みアルファ画像になります) 18565 * 18566 * Params: 18567 * MHandle = ? 18568 * Flag = dxlib_d.DxDataType.TRUE:RGB値に対してA値を乗算する dxlib_d.DxDataType.FALSE:乗算しない(デフォルト) 18569 */ 18570 extern int MV1SetUseDrawMulAlphaColor(int MHandle, int Flag); 18571 18572 /** 18573 * モデルを描画する際にRGB値に対してA値を乗算するかどうかを取得する(描画結果が乗算済みアルファ画像になります) 18574 * 18575 * Returns: dxlib_d.DxDataType.TRUE:RGB値に対してA値を乗算する dxlib_d.DxDataType.FALSE:乗算しない(デフォルト) 18576 */ 18577 extern int MV1GetUseDrawMulAlphaColor(int MHandle); 18578 18579 /** 18580 * モデルを描画する際にZバッファを使用するかどうかを設定する 18581 */ 18582 extern int MV1SetUseZBuffer(int MHandle, int Flag); 18583 18584 /** 18585 * モデルを描画する際にZバッファに書き込みを行うかどうかを設定する 18586 */ 18587 extern int MV1SetWriteZBuffer(int MHandle, int Flag); 18588 18589 /** 18590 * モデルの描画時のZ値の比較モードを設定する 18591 */ 18592 extern int MV1SetZBufferCmpType(int MHandle, int CmpType /* DX_CMP_NEVER等 */); 18593 18594 /** 18595 * モデルの描画時の書き込むZ値のバイアスを設定する 18596 */ 18597 extern int MV1SetZBias(int MHandle, int Bias); 18598 18599 /** 18600 * モデルの含まれるメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する 18601 * 18602 * Params: 18603 * MHandle = ? 18604 * UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 18605 */ 18606 extern int MV1SetUseVertDifColor(int MHandle, int UseFlag); 18607 18608 /** 18609 * モデルに含まれるメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する 18610 * 18611 * Params: 18612 * MHandle = ? 18613 * UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 18614 */ 18615 extern int MV1SetUseVertSpcColor(int MHandle, int UseFlag); 18616 18617 /** 18618 * モデルのテクスチャのサンプルフィルターモードを変更する(FilterModeはDX_DRAWMODE_NEAREST等) 18619 * 18620 * Params: 18621 * MHandle = ? 18622 * FilterMode = ? 18623 */ 18624 extern int MV1SetSampleFilterMode(int MHandle, int FilterMode); 18625 18626 /** 18627 * モデルの異方性フィルタリングの最大次数を設定する 18628 */ 18629 extern int MV1SetMaxAnisotropy(int MHandle, int MaxAnisotropy); 18630 18631 /** 18632 * モデルをワイヤーフレームで描画するかどうかを設定する 18633 */ 18634 extern int MV1SetWireFrameDrawFlag(int MHandle, int Flag); 18635 18636 /** 18637 * モデルの頂点カラーを現在設定されているマテリアルのカラーにする 18638 */ 18639 extern int MV1RefreshVertColorFromMaterial(int MHandle); 18640 18641 /** 18642 * モデルの物理演算の重力を設定する 18643 */ 18644 extern int MV1SetPhysicsWorldGravity(int MHandle, .VECTOR Gravity); 18645 18646 /** 18647 * モデルの物理演算を指定時間分経過したと仮定して計算する(MillisecondTimeで指定する時間の単位はミリ秒) 18648 */ 18649 extern int MV1PhysicsCalculation(int MHandle, float MillisecondTime); 18650 18651 /** 18652 * モデルの物理演算の状態をリセットする(位置がワープしたとき用) 18653 */ 18654 extern int MV1PhysicsResetState(int MHandle); 18655 18656 /** 18657 * モデルのシェイプ機能を使用するかどうかを設定する 18658 * 18659 * Params: 18660 * MHandle = ? 18661 * UseFlag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 18662 */ 18663 extern int MV1SetUseShapeFlag(int MHandle, int UseFlag); 18664 18665 /** 18666 * モデルのマテリアル番号順にメッシュを描画するかどうかのフラグを取得する 18667 * 18668 * Returns: dxlib_d.DxDataType.TRUE:マテリアル番号順に描画 dxlib_d.DxDataType.FALSE:不透明メッシュの後半透明メッシュ 18669 */ 18670 extern int MV1GetMaterialNumberOrderFlag(int MHandle); 18671 18672 // アニメーション関係 18673 18674 /** 18675 * アニメーションをアタッチする 18676 * 18677 * Returns: -1:エラー 0以上:アタッチインデックス 18678 */ 18679 extern int MV1AttachAnim(int MHandle, int AnimIndex, int AnimSrcMHandle = -1, int NameCheck = dxlib_d.DxDataType.TRUE); 18680 18681 /** 18682 * アニメーションをデタッチする 18683 */ 18684 extern int MV1DetachAnim(int MHandle, int AttachIndex); 18685 18686 /** 18687 * アタッチしているアニメーションの再生時間を設定する 18688 */ 18689 extern int MV1SetAttachAnimTime(int MHandle, int AttachIndex, float Time); 18690 18691 /** 18692 * アタッチしているアニメーションの再生時間を取得する 18693 */ 18694 extern float MV1GetAttachAnimTime(int MHandle, int AttachIndex); 18695 18696 /** 18697 * アタッチしているアニメーションの総時間を得る 18698 */ 18699 extern float MV1GetAttachAnimTotalTime(int MHandle, int AttachIndex); 18700 18701 /** 18702 * アタッチしているアニメーションのブレンド率を設定する 18703 */ 18704 extern int MV1SetAttachAnimBlendRate(int MHandle, int AttachIndex, float Rate = 1.0f); 18705 18706 /** 18707 * アタッチしているアニメーションのブレンド率を取得する 18708 */ 18709 extern float MV1GetAttachAnimBlendRate(int MHandle, int AttachIndex); 18710 18711 /** 18712 * アタッチしているアニメーションのブレンド率を設定する(フレーム単位) 18713 */ 18714 extern int MV1SetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex, float Rate, int SetChild = dxlib_d.DxDataType.TRUE); 18715 18716 /** 18717 * アタッチしているアニメーションのブレンド率を設定する(フレーム単位) 18718 */ 18719 extern float MV1GetAttachAnimBlendRateToFrame(int MHandle, int AttachIndex, int FrameIndex); 18720 18721 /** 18722 * アタッチしているアニメーションのアニメーションインデックスを取得する 18723 */ 18724 extern int MV1GetAttachAnim(int MHandle, int AttachIndex); 18725 18726 /** 18727 * アタッチしているアニメーションのシェイプを使用するかどうかを設定する 18728 * 18729 * Params: 18730 * MHandle = ? 18731 * AttachIndex = ? 18732 * UseFlag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 18733 */ 18734 extern int MV1SetAttachAnimUseShapeFlag(int MHandle, int AttachIndex, int UseFlag); 18735 18736 /** 18737 * アタッチしているアニメーションのシェイプを使用するかどうかを取得する 18738 */ 18739 extern int MV1GetAttachAnimUseShapeFlag(int MHandle, int AttachIndex); 18740 18741 /** 18742 * アタッチしているアニメーションの指定のフレームの現在のローカル座標を取得する 18743 */ 18744 extern .VECTOR MV1GetAttachAnimFrameLocalPosition(int MHandle, int AttachIndex, int FrameIndex); 18745 18746 /** 18747 * アタッチしているアニメーションの指定のフレームの現在のローカル変換行列を取得する 18748 */ 18749 extern .MATRIX MV1GetAttachAnimFrameLocalMatrix(int MHandle, int AttachIndex, int FrameIndex); 18750 18751 /** 18752 * アニメーションの数を取得する 18753 */ 18754 extern int MV1GetAnimNum(int MHandle); 18755 18756 /** 18757 * 指定番号のアニメーション名を取得する 18758 * 18759 * Returns: null:エラー 18760 */ 18761 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetAnimName(int MHandle, int AnimIndex); 18762 18763 /** 18764 * 指定番号のアニメーション名を変更する 18765 */ 18766 extern int MV1SetAnimName(int MHandle, int AnimIndex, const (dxlib_d.DxDataType.TCHAR)* AnimName); 18767 18768 /** 18769 * 指定番号のアニメーション名を変更する 18770 */ 18771 extern int MV1SetAnimNameWithStrLen(int MHandle, int AnimIndex, const (dxlib_d.DxDataType.TCHAR)* AnimName, size_t AnimNameLength); 18772 18773 /** 18774 * 指定名のアニメーション番号を取得する 18775 * 18776 * Returns: -1:エラー 18777 */ 18778 extern int MV1GetAnimIndex(int MHandle, const (dxlib_d.DxDataType.TCHAR)* AnimName); 18779 18780 /** 18781 * 指定名のアニメーション番号を取得する 18782 * 18783 * Returns: -1:エラー 18784 */ 18785 extern int MV1GetAnimIndexWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* AnimName, size_t AnimNameLength); 18786 18787 /** 18788 * 指定番号のアニメーションの総時間を得る 18789 */ 18790 extern float MV1GetAnimTotalTime(int MHandle, int AnimIndex); 18791 18792 /** 18793 * 指定のアニメーションがターゲットとするフレームの数を取得する 18794 */ 18795 extern int MV1GetAnimTargetFrameNum(int MHandle, int AnimIndex); 18796 18797 /** 18798 * 指定のアニメーションがターゲットとするフレームの名前を取得する 18799 */ 18800 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetAnimTargetFrameName(int MHandle, int AnimIndex, int AnimFrameIndex); 18801 18802 /** 18803 * 指定のアニメーションがターゲットとするフレームの番号を取得する 18804 */ 18805 extern int MV1GetAnimTargetFrame(int MHandle, int AnimIndex, int AnimFrameIndex); 18806 18807 /** 18808 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットの数を取得する 18809 */ 18810 extern int MV1GetAnimTargetFrameKeySetNum(int MHandle, int AnimIndex, int AnimFrameIndex); 18811 18812 /** 18813 * 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットキーセットインデックスを取得する 18814 */ 18815 extern int MV1GetAnimTargetFrameKeySet(int MHandle, int AnimIndex, int AnimFrameIndex, int Index); 18816 18817 /** 18818 * モデルに含まれるアニメーションキーセットの総数を得る 18819 */ 18820 extern int MV1GetAnimKeySetNum(int MHandle); 18821 18822 /** 18823 * 指定のアニメーションキーセットのタイプを取得する(MV1_ANIMKEY_TYPE_QUATERNION等) 18824 */ 18825 extern int MV1GetAnimKeySetType(int MHandle, int AnimKeySetIndex); 18826 18827 /** 18828 * 指定のアニメーションキーセットのデータタイプを取得する(MV1_ANIMKEY_DATATYPE_ROTATE等) 18829 */ 18830 extern int MV1GetAnimKeySetDataType(int MHandle, int AnimKeySetIndex); 18831 18832 /** 18833 * 指定のアニメーションキーセットのキーの時間データタイプを取得する(MV1_ANIMKEY_TIME_TYPE_ONE等) 18834 */ 18835 extern int MV1GetAnimKeySetTimeType(int MHandle, int AnimKeySetIndex); 18836 18837 /** 18838 * 指定のアニメーションキーセットのキーの数を取得する 18839 */ 18840 extern int MV1GetAnimKeySetDataNum(int MHandle, int AnimKeySetIndex); 18841 18842 /** 18843 * 指定のアニメーションキーセットのキーの時間を取得する 18844 */ 18845 extern float MV1GetAnimKeyDataTime(int MHandle, int AnimKeySetIndex, int Index); 18846 18847 /** 18848 * 指定のアニメーションキーセットの指定の時間でのキーの番号を取得する 18849 */ 18850 extern int MV1GetAnimKeyDataIndexFromTime(int MHandle, int AnimKeySetIndex, float Time); 18851 18852 /** 18853 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_QUATERNIONでは無かった場合は失敗する 18854 */ 18855 extern .FLOAT4 MV1GetAnimKeyDataToQuaternion(int MHandle, int AnimKeySetIndex, int Index); 18856 18857 /** 18858 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_QUATERNIONでは無かった場合は失敗する(時間指定版) 18859 */ 18860 extern .FLOAT4 MV1GetAnimKeyDataToQuaternionFromTime(int MHandle, int AnimKeySetIndex, float Time); 18861 18862 /** 18863 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_VECTORでは無かった場合は失敗する 18864 */ 18865 extern .VECTOR MV1GetAnimKeyDataToVector(int MHandle, int AnimKeySetIndex, int Index); 18866 18867 /** 18868 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_VECTORでは無かった場合は失敗する(時間指定版) 18869 */ 18870 extern .VECTOR MV1GetAnimKeyDataToVectorFromTime(int MHandle, int AnimKeySetIndex, float Time); 18871 18872 /** 18873 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3では無かった場合は失敗する 18874 */ 18875 extern .MATRIX MV1GetAnimKeyDataToMatrix(int MHandle, int AnimKeySetIndex, int Index); 18876 18877 /** 18878 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3では無かった場合は失敗する(時間指定版) 18879 */ 18880 extern .MATRIX MV1GetAnimKeyDataToMatrixFromTime(int MHandle, int AnimKeySetIndex, float Time); 18881 18882 /** 18883 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_FLATでは無かった場合は失敗する 18884 */ 18885 extern float MV1GetAnimKeyDataToFlat(int MHandle, int AnimKeySetIndex, int Index); 18886 18887 /** 18888 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_FLATでは無かった場合は失敗する(時間指定版) 18889 */ 18890 extern float MV1GetAnimKeyDataToFlatFromTime(int MHandle, int AnimKeySetIndex, float Time); 18891 18892 /** 18893 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_LINEARでは無かった場合は失敗する 18894 */ 18895 extern float MV1GetAnimKeyDataToLinear(int MHandle, int AnimKeySetIndex, int Index); 18896 18897 /** 18898 * 指定のアニメーションキーセットのキーを取得する、キータイプがMV1_ANIMKEY_TYPE_LINEARでは無かった場合は失敗する(時間指定版) 18899 */ 18900 extern float MV1GetAnimKeyDataToLinearFromTime(int MHandle, int AnimKeySetIndex, float Time); 18901 18902 // マテリアル関係 18903 18904 /** 18905 * モデルで使用しているマテリアルの数を取得する 18906 */ 18907 extern int MV1GetMaterialNum(int MHandle); 18908 18909 /** 18910 * 指定のマテリアルの名前を取得する 18911 */ 18912 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetMaterialName(int MHandle, int MaterialIndex); 18913 18914 /** 18915 * 全てのマテリアルのタイプを変更する 18916 * 18917 * Params: 18918 * MHandle = ? 18919 * Type = DX_MATERIAL_TYPE_NORMALなど 18920 */ 18921 extern int MV1SetMaterialTypeAll(int MHandle, int Type); 18922 18923 /** 18924 * 指定のマテリアルのタイプを変更する 18925 * 18926 * Params: 18927 * MHandle = ? 18928 * MaterialIndex = ? 18929 * Type = DX_MATERIAL_TYPE_NORMAL 18930 */ 18931 extern int MV1SetMaterialType(int MHandle, int MaterialIndex, int Type); 18932 18933 /** 18934 * 指定のマテリアルのタイプを取得する 18935 * 18936 * Returns: DX_MATERIAL_TYPE_NORMALなど 18937 */ 18938 extern int MV1GetMaterialType(int MHandle, int MaterialIndex); 18939 18940 /** 18941 * 全てのマテリアルのタイプ別パラメータを変更する(マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLORなどで使用) 18942 */ 18943 extern int MV1SetMaterialTypeParamAll(int MHandle, ...); 18944 18945 /** 18946 * 指定のマテリアルのタイプ別パラメータを変更する(マテリアルタイプ DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_TWO_COLORなどで使用) 18947 */ 18948 extern int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, ...); 18949 18950 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる)); 18951 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CLIP_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる), float ClipParam = 閾値(この値未満が0.0fになる)); 18952 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_LUMINANCE_CMP_GREATEREQUALの場合 */ float CmpParam = 比較値(この値以上の場合は1.0fが、未満の場合は0.0fが書き込まれる)); 18953 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる)); 18954 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_CLIP_UNORMの場合 */ float MinParam = 正規化の下限値(この値以下が0.0fになる), float MaxParam = 正規化の上限値(この値以上が1.0fになる), float ClipParam = 閾値(この値未満が0.0fになる)); 18955 // int MV1SetMaterialTypeParam(int MHandle, int MaterialIndex, /* DX_MATERIAL_TYPE_MAT_SPEC_POWER_CMP_GREATEREQUALの場合 */ float CmpParam = 比較値(この値以上の場合は1.0fが、未満の場合は0.0fが書き込まれる)); 18956 18957 /** 18958 * 指定のマテリアルのディフューズカラーを設定する 18959 */ 18960 extern int MV1SetMaterialDifColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18961 18962 /** 18963 * 指定のマテリアルのディフューズカラーを取得する 18964 */ 18965 extern .COLOR_F MV1GetMaterialDifColor(int MHandle, int MaterialIndex); 18966 18967 /** 18968 * 指定のマテリアルのスペキュラカラーを設定する 18969 */ 18970 extern int MV1SetMaterialSpcColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18971 18972 /** 18973 * 指定のマテリアルのスペキュラカラーを取得する 18974 */ 18975 extern .COLOR_F MV1GetMaterialSpcColor(int MHandle, int MaterialIndex); 18976 18977 /** 18978 * 指定のマテリアルのエミッシブカラーを設定する 18979 */ 18980 extern int MV1SetMaterialEmiColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18981 18982 /** 18983 * 指定のマテリアルのエミッシブカラーを取得する 18984 */ 18985 extern .COLOR_F MV1GetMaterialEmiColor(int MHandle, int MaterialIndex); 18986 18987 /** 18988 * 指定のマテリアルのアンビエントカラーを設定する 18989 */ 18990 extern int MV1SetMaterialAmbColor(int MHandle, int MaterialIndex, .COLOR_F Color); 18991 18992 /** 18993 * 指定のマテリアルのアンビエントカラーを取得する 18994 */ 18995 extern .COLOR_F MV1GetMaterialAmbColor(int MHandle, int MaterialIndex); 18996 18997 /** 18998 * 指定のマテリアルのスペキュラの強さを設定する 18999 */ 19000 extern int MV1SetMaterialSpcPower(int MHandle, int MaterialIndex, float Power); 19001 19002 /** 19003 * 指定のマテリアルのスペキュラの強さを取得する 19004 */ 19005 extern float MV1GetMaterialSpcPower(int MHandle, int MaterialIndex); 19006 19007 /** 19008 * 指定のマテリアルでディフューズマップとして使用するテクスチャを指定する 19009 */ 19010 extern int MV1SetMaterialDifMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19011 19012 /** 19013 * 指定のマテリアルでディフューズマップとして使用されているテクスチャのインデックスを取得する 19014 */ 19015 extern int MV1GetMaterialDifMapTexture(int MHandle, int MaterialIndex); 19016 19017 /** 19018 * 指定のマテリアルでサブディフューズマップとして使用するテクスチャを指定する 19019 */ 19020 extern int MV1SetMaterialSubDifMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19021 19022 /** 19023 * 指定のマテリアルでサブディフューズマップとして使用されているテクスチャのインデックスを取得する 19024 */ 19025 extern int MV1GetMaterialSubDifMapTexture(int MHandle, int MaterialIndex); 19026 19027 /** 19028 * 指定のマテリアルでスペキュラマップとして使用するテクスチャを指定する 19029 */ 19030 extern int MV1SetMaterialSpcMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19031 19032 /** 19033 * 指定のマテリアルでスペキュラマップとして使用されているテクスチャのインデックスを取得する 19034 */ 19035 extern int MV1GetMaterialSpcMapTexture(int MHandle, int MaterialIndex); 19036 19037 /** 19038 * 指定のマテリアルで法線マップとして使用されているテクスチャのインデックスを取得する 19039 */ 19040 extern int MV1GetMaterialNormalMapTexture(int MHandle, int MaterialIndex); 19041 19042 /** 19043 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを設定する 19044 */ 19045 extern int MV1SetMaterialDifGradTexture(int MHandle, int MaterialIndex, int TexIndex); 19046 19047 /** 19048 * 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを取得する 19049 */ 19050 extern int MV1GetMaterialDifGradTexture(int MHandle, int MaterialIndex); 19051 19052 /** 19053 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを設定する 19054 */ 19055 extern int MV1SetMaterialSpcGradTexture(int MHandle, int MaterialIndex, int TexIndex); 19056 19057 /** 19058 * 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを取得する 19059 */ 19060 extern int MV1GetMaterialSpcGradTexture(int MHandle, int MaterialIndex); 19061 19062 /** 19063 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを設定する 19064 */ 19065 extern int MV1SetMaterialSphereMapTexture(int MHandle, int MaterialIndex, int TexIndex); 19066 19067 /** 19068 * 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを取得する 19069 */ 19070 extern int MV1GetMaterialSphereMapTexture(int MHandle, int MaterialIndex); 19071 19072 /** 19073 * 全てのマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19074 */ 19075 extern int MV1SetMaterialDifGradBlendTypeAll(int MHandle, int BlendType); 19076 19077 /** 19078 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19079 */ 19080 extern int MV1SetMaterialDifGradBlendType(int MHandle, int MaterialIndex, int BlendType); 19081 19082 /** 19083 * 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19084 */ 19085 extern int MV1GetMaterialDifGradBlendType(int MHandle, int MaterialIndex); 19086 19087 /** 19088 * 全てのマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19089 */ 19090 extern int MV1SetMaterialSpcGradBlendTypeAll(int MHandle, int BlendType); 19091 19092 /** 19093 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19094 */ 19095 extern int MV1SetMaterialSpcGradBlendType(int MHandle, int MaterialIndex, int BlendType); 19096 19097 /** 19098 * 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19099 */ 19100 extern int MV1GetMaterialSpcGradBlendType(int MHandle, int MaterialIndex); 19101 19102 /** 19103 * 全てのマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19104 */ 19105 extern int MV1SetMaterialSphereMapBlendTypeAll(int MHandle, int BlendType); 19106 19107 /** 19108 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19109 */ 19110 extern int MV1SetMaterialSphereMapBlendType(int MHandle, int MaterialIndex, int BlendType); 19111 19112 /** 19113 * 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を取得する(DX_MATERIAL_BLENDTYPE_ADDITIVEなど) 19114 */ 19115 extern int MV1GetMaterialSphereMapBlendType(int MHandle, int MaterialIndex); 19116 19117 /** 19118 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する 19119 */ 19120 extern int MV1SetMaterialOutLineWidthAll(int MHandle, float Width); 19121 19122 /** 19123 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する 19124 */ 19125 extern int MV1SetMaterialOutLineWidth(int MHandle, int MaterialIndex, float Width); 19126 19127 /** 19128 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを取得する 19129 */ 19130 extern float MV1GetMaterialOutLineWidth(int MHandle, int MaterialIndex); 19131 19132 /** 19133 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する 19134 */ 19135 extern int MV1SetMaterialOutLineDotWidthAll(int MHandle, float Width); 19136 19137 /** 19138 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する 19139 */ 19140 extern int MV1SetMaterialOutLineDotWidth(int MHandle, int MaterialIndex, float Width); 19141 19142 /** 19143 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを取得する 19144 */ 19145 extern float MV1GetMaterialOutLineDotWidth(int MHandle, int MaterialIndex); 19146 19147 /** 19148 * 全てのマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する 19149 */ 19150 extern int MV1SetMaterialOutLineColorAll(int MHandle, .COLOR_F Color); 19151 19152 /** 19153 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する 19154 */ 19155 extern int MV1SetMaterialOutLineColor(int MHandle, int MaterialIndex, .COLOR_F Color); 19156 19157 /** 19158 * 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を取得する 19159 */ 19160 extern .COLOR_F MV1GetMaterialOutLineColor(int MHandle, int MaterialIndex); 19161 19162 /** 19163 * 全てのマテリアルの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等) 19164 */ 19165 extern int MV1SetMaterialDrawBlendModeAll(int MHandle, int BlendMode); 19166 19167 /** 19168 * 指定のマテリアルの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等) 19169 */ 19170 extern int MV1SetMaterialDrawBlendMode(int MHandle, int MaterialIndex, int BlendMode); 19171 19172 /** 19173 * 指定のマテリアルの描画ブレンドモードを取得する(DX_BLENDMODE_ALPHA等) 19174 */ 19175 extern int MV1GetMaterialDrawBlendMode(int MHandle, int MaterialIndex); 19176 19177 /** 19178 * 全てのマテリアルの描画ブレンドパラメータを設定する 19179 */ 19180 extern int MV1SetMaterialDrawBlendParamAll(int MHandle, int BlendParam); 19181 19182 /** 19183 * 指定のマテリアルの描画ブレンドパラメータを設定する 19184 */ 19185 extern int MV1SetMaterialDrawBlendParam(int MHandle, int MaterialIndex, int BlendParam); 19186 19187 /** 19188 * 指定のマテリアルの描画ブレンドパラメータを設定する 19189 */ 19190 extern int MV1GetMaterialDrawBlendParam(int MHandle, int MaterialIndex); 19191 19192 /** 19193 * 全てのマテリアルの描画時のアルファテストの設定を行う 19194 * 19195 * Params: 19196 * MHandle = ? 19197 * Enable = αテストを行うかどうか(dxlib_d.DxDataType.TRUE:行う dxlib_d.DxDataType.FALSE:行わない(デフォルト)) 19198 * Mode = テストモード(DX_CMP_GREATER等) 19199 * Param = 描画アルファ値との比較に使用する値(0~255) 19200 */ 19201 extern int MV1SetMaterialDrawAlphaTestAll(int MHandle, int Enable, int Mode, int Param); 19202 19203 /** 19204 * 指定のマテリアルの描画時のアルファテストの設定を行う 19205 * 19206 * Params: 19207 * MHandle = ? 19208 * MaterialIndex = ? 19209 * Enable = αテストを行うかどうか(dxlib_d.DxDataType.TRUE:行う dxlib_d.DxDataType.FALSE:行わない(デフォルト)) 19210 * Mode = テストモード(DX_CMP_GREATER等) 19211 * Param = 描画アルファ値との比較に使用する値(0~255) 19212 */ 19213 extern int MV1SetMaterialDrawAlphaTest(int MHandle, int MaterialIndex, int Enable, int Mode, int Param); 19214 19215 /** 19216 * 指定のマテリアルの描画時のアルファテストを行うかどうかを取得する 19217 * 19218 * Returns: dxlib_d.DxDataType.TRUE:アルファテストを行う dxlib_d.DxDataType.FALSE:アルファテストを行わない 19219 */ 19220 extern int MV1GetMaterialDrawAlphaTestEnable(int MHandle, int MaterialIndex); 19221 19222 /** 19223 * 指定のマテリアルの描画時のアルファテストのテストモードを取得する 19224 * 19225 * Returns: テストモード(DX_CMP_GREATER等) 19226 */ 19227 extern int MV1GetMaterialDrawAlphaTestMode(int MHandle, int MaterialIndex); 19228 19229 /** 19230 * 指定のマテリアルの描画時のアルファテストの描画アルファ地との比較に使用する値(0~255)を取得する 19231 */ 19232 extern int MV1GetMaterialDrawAlphaTestParam(int MHandle, int MaterialIndex); 19233 19234 // テクスチャ関係 19235 19236 /** 19237 * テクスチャの数を取得 19238 */ 19239 extern int MV1GetTextureNum(int MHandle); 19240 19241 /** 19242 * テクスチャの名前を取得 19243 */ 19244 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureName(int MHandle, int TexIndex); 19245 19246 /** 19247 * カラーテクスチャのファイルパスを変更する 19248 */ 19249 extern int MV1SetTextureColorFilePath(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath); 19250 19251 /** 19252 * カラーテクスチャのファイルパスを変更する 19253 */ 19254 extern int MV1SetTextureColorFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 19255 19256 /** 19257 * カラーテクスチャのファイルパスを取得 19258 */ 19259 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureColorFilePath(int MHandle, int TexIndex); 19260 19261 /** 19262 * アルファテクスチャのファイルパスを変更する 19263 */ 19264 extern int MV1SetTextureAlphaFilePath(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath); 19265 19266 /** 19267 * アルファテクスチャのファイルパスを変更する 19268 */ 19269 extern int MV1SetTextureAlphaFilePathWithStrLen(int MHandle, int TexIndex, const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 19270 19271 /** 19272 * アルファテクスチャのファイルパスを取得 19273 */ 19274 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetTextureAlphaFilePath(int MHandle, int TexIndex); 19275 19276 /** 19277 * テクスチャで使用するグラフィックハンドルを変更する(GrHandleを-1にすると解除) 19278 */ 19279 extern int MV1SetTextureGraphHandle(int MHandle, int TexIndex, int GrHandle, int SemiTransFlag); 19280 19281 /** 19282 * テクスチャのグラフィックハンドルを取得する 19283 */ 19284 extern int MV1GetTextureGraphHandle(int MHandle, int TexIndex); 19285 19286 /** 19287 * テクスチャのアドレスモードを設定する(AddUModeの値はDX_TEXADDRESS_WRAP等) 19288 */ 19289 extern int MV1SetTextureAddressMode(int MHandle, int TexIndex, int AddrUMode, int AddrVMode); 19290 19291 /** 19292 * テクスチャのU値のアドレスモードを取得する 19293 * 19294 * Returns: DX_TEXADDRESS_WRAP等 19295 */ 19296 extern int MV1GetTextureAddressModeU(int MHandle, int TexIndex); 19297 19298 /** 19299 * テクスチャのV値のアドレスモードを取得する 19300 * 19301 * Returns: DX_TEXADDRESS_WRAP等 19302 */ 19303 extern int MV1GetTextureAddressModeV(int MHandle, int TexIndex); 19304 19305 /** 19306 * テクスチャの幅を取得する 19307 */ 19308 extern int MV1GetTextureWidth(int MHandle, int TexIndex); 19309 19310 /** 19311 * テクスチャの高さを取得する 19312 */ 19313 extern int MV1GetTextureHeight(int MHandle, int TexIndex); 19314 19315 /** 19316 * テクスチャに半透明要素があるかどうかを取得する 19317 * 19318 * Returns: dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない 19319 */ 19320 extern int MV1GetTextureSemiTransState(int MHandle, int TexIndex); 19321 19322 /** 19323 * テクスチャで使用している画像がバンプマップかどうかを設定する 19324 */ 19325 extern int MV1SetTextureBumpImageFlag(int MHandle, int TexIndex, int Flag); 19326 19327 /** 19328 * テクスチャがバンプマップかどうかを取得する 19329 * 19330 * Returns: dxlib_d.DxDataType.TRUE:バンプマップ dxlib_d.DxDataType.FALSE:違う 19331 */ 19332 extern int MV1GetTextureBumpImageFlag(int MHandle, int TexIndex); 19333 19334 /** 19335 * バンプマップ画像の場合の隣のピクセルとの距離を設定する 19336 */ 19337 extern int MV1SetTextureBumpImageNextPixelLength(int MHandle, int TexIndex, float Length); 19338 19339 /** 19340 * バンプマップ画像の場合の隣のピクセルとの距離を取得する 19341 */ 19342 extern float MV1GetTextureBumpImageNextPixelLength(int MHandle, int TexIndex); 19343 19344 /** 19345 * テクスチャのフィルタリングモードを設定する 19346 */ 19347 extern int MV1SetTextureSampleFilterMode(int MHandle, int TexIndex, int FilterMode); 19348 19349 /** 19350 * テクスチャのフィルタリングモードを取得する 19351 * 19352 * Returns: DX_DRAWMODE_BILINEAR等 19353 */ 19354 extern int MV1GetTextureSampleFilterMode(int MHandle, int TexIndex); 19355 19356 /** 19357 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む 19358 * 19359 * Returns: -1:エラー 0以上:グラフィックハンドル 19360 */ 19361 extern int MV1LoadTexture(const (dxlib_d.DxDataType.TCHAR)* FilePath); 19362 19363 /** 19364 * 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む 19365 * 19366 * Returns: -1:エラー 0以上:グラフィックハンドル 19367 */ 19368 extern int MV1LoadTextureWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 19369 19370 // フレーム関係 19371 19372 /** 19373 * フレームの数を取得する 19374 */ 19375 extern int MV1GetFrameNum(int MHandle); 19376 19377 /** 19378 * フレームの名前からモデル中のフレームのフレームインデックスを取得する 19379 * 19380 * Returns: 無かった場合は-1 19381 */ 19382 extern int MV1SearchFrame(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FrameName); 19383 19384 /** 19385 * フレームの名前からモデル中のフレームのフレームインデックスを取得する 19386 * 19387 * Returns: 無かった場合は-1 19388 */ 19389 extern int MV1SearchFrameWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* FrameName, size_t FrameNameLength); 19390 19391 /** 19392 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する(名前指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する) 19393 * 19394 * Returns: 無かった場合は-1 19395 */ 19396 extern int MV1SearchFrameChild(int MHandle, int FrameIndex = -1, const (dxlib_d.DxDataType.TCHAR)* ChildName = null); 19397 19398 /** 19399 * フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する(名前指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する) 19400 * 19401 * Returns: 無かった場合は-1 19402 */ 19403 extern int MV1SearchFrameChildWithStrLen(int MHandle, int FrameIndex = -1, const (dxlib_d.DxDataType.TCHAR)* ChildName = null, size_t ChildNameLength = 0); 19404 19405 /** 19406 * 指定のフレームの名前を取得する 19407 * 19408 * Returns: エラーの場合はNULL 19409 */ 19410 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetFrameName(int MHandle, int FrameIndex); 19411 19412 /** 19413 * 指定のフレームの名前を取得する 19414 * 19415 * Returns: -1:エラー -1以外:文字列のサイズ 19416 */ 19417 extern int MV1GetFrameName2(int MHandle, int FrameIndex, dxlib_d.DxDataType.TCHAR* StrBuffer); 19418 19419 /** 19420 * 指定のフレームの親フレームのインデックスを得る 19421 * 19422 * Returns: 親がいない場合は-2 19423 */ 19424 extern int MV1GetFrameParent(int MHandle, int FrameIndex); 19425 19426 /** 19427 * 指定のフレームの子フレームの数を取得する(FrameIndexを-1にすると親を持たないフレームの数が返ってくる) 19428 */ 19429 extern int MV1GetFrameChildNum(int MHandle, int FrameIndex = -1); 19430 19431 /** 19432 * 指定のフレームの子フレームのフレームインデックスを取得する(番号指定版)(FrameIndexを-1にすると親を持たないフレームをChildIndexで指定する) 19433 * 19434 * Returns: エラーの場合は-1 19435 */ 19436 extern int MV1GetFrameChild(int MHandle, int FrameIndex = -1, int ChildIndex = 0); 19437 19438 /** 19439 * 指定のフレームの座標を取得する 19440 */ 19441 extern .VECTOR MV1GetFramePosition(int MHandle, int FrameIndex); 19442 19443 /** 19444 * 指定のフレームの座標を取得する 19445 */ 19446 extern .VECTOR_D MV1GetFramePositionD(int MHandle, int FrameIndex); 19447 19448 /** 19449 * 指定のフレームの初期状態での座標変換行列を取得する 19450 */ 19451 extern .MATRIX MV1GetFrameBaseLocalMatrix(int MHandle, int FrameIndex); 19452 19453 /** 19454 * 指定のフレームの初期状態での座標変換行列を取得する 19455 */ 19456 extern .MATRIX_D MV1GetFrameBaseLocalMatrixD(int MHandle, int FrameIndex); 19457 19458 /** 19459 * 指定のフレームの座標変換行列を取得する 19460 */ 19461 extern .MATRIX MV1GetFrameLocalMatrix(int MHandle, int FrameIndex); 19462 19463 /** 19464 * 指定のフレームの座標変換行列を取得する 19465 */ 19466 extern .MATRIX_D MV1GetFrameLocalMatrixD(int MHandle, int FrameIndex); 19467 19468 /** 19469 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る 19470 */ 19471 extern .MATRIX MV1GetFrameLocalWorldMatrix(int MHandle, int FrameIndex); 19472 19473 /** 19474 * 指定のフレームのローカル座標からワールド座標に変換する行列を得る 19475 */ 19476 extern .MATRIX_D MV1GetFrameLocalWorldMatrixD(int MHandle, int FrameIndex); 19477 19478 /** 19479 * 指定のフレームの座標変換行列(ローカル行列)を設定する 19480 */ 19481 extern int MV1SetFrameUserLocalMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19482 19483 /** 19484 * 指定のフレームの座標変換行列(ローカル行列)を設定する 19485 */ 19486 extern int MV1SetFrameUserLocalMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix); 19487 19488 /** 19489 * 指定のフレームの座標変換行列(ローカル行列)をデフォルトに戻す 19490 */ 19491 extern int MV1ResetFrameUserLocalMatrix(int MHandle, int FrameIndex); 19492 19493 /** 19494 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)を設定する 19495 */ 19496 extern int MV1SetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19497 19498 /** 19499 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)を設定する 19500 */ 19501 extern int MV1SetFrameUserLocalWorldMatrixD(int MHandle, int FrameIndex, .MATRIX_D Matrix); 19502 19503 /** 19504 * 指定のフレームの座標変換行列(ローカル座標からワールド座標に変換する行列)をデフォルトに戻す 19505 */ 19506 extern int MV1ResetFrameUserLocalWorldMatrix(int MHandle, int FrameIndex); 19507 19508 /** 19509 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る 19510 */ 19511 extern .VECTOR MV1GetFrameMaxVertexLocalPosition(int MHandle, int FrameIndex); 19512 19513 /** 19514 * 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る 19515 */ 19516 extern .VECTOR_D MV1GetFrameMaxVertexLocalPositionD(int MHandle, int FrameIndex); 19517 19518 /** 19519 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る 19520 */ 19521 extern .VECTOR MV1GetFrameMinVertexLocalPosition(int MHandle, int FrameIndex); 19522 19523 /** 19524 * 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る 19525 */ 19526 extern .VECTOR_D MV1GetFrameMinVertexLocalPositionD(int MHandle, int FrameIndex); 19527 19528 /** 19529 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る 19530 */ 19531 extern .VECTOR MV1GetFrameAvgVertexLocalPosition(int MHandle, int FrameIndex); 19532 19533 /** 19534 * 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る 19535 */ 19536 extern .VECTOR_D MV1GetFrameAvgVertexLocalPositionD(int MHandle, int FrameIndex); 19537 19538 /** 19539 * 指定のフレームに含まれる頂点の数を取得する 19540 */ 19541 extern int MV1GetFrameVertexNum(int MHandle, int FrameIndex); 19542 19543 /** 19544 * 指定のフレームに含まれるポリゴンの数を取得する 19545 */ 19546 extern int MV1GetFrameTriangleNum(int MHandle, int FrameIndex); 19547 19548 /** 19549 * 指定のフレームが持つメッシュの数を取得する 19550 */ 19551 extern int MV1GetFrameMeshNum(int MHandle, int FrameIndex); 19552 19553 /** 19554 * 指定のフレームが持つメッシュのメッシュインデックスを取得する 19555 */ 19556 extern int MV1GetFrameMesh(int MHandle, int FrameIndex, int Index); 19557 19558 /** 19559 * 指定のフレームの表示、非表示状態を変更する 19560 * 19561 * Params: 19562 * MHandle = ? 19563 * FrameIndex = ? 19564 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19565 */ 19566 extern int MV1SetFrameVisible(int MHandle, int FrameIndex, int VisibleFlag); 19567 19568 /** 19569 * 指定のフレームの表示、非表示状態を取得する 19570 * 19571 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19572 */ 19573 extern int MV1GetFrameVisible(int MHandle, int FrameIndex); 19574 19575 /** 19576 * 指定のフレームのディフューズカラーのスケール値を設定する(デフォルト値は1.0f) 19577 */ 19578 extern int MV1SetFrameDifColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19579 19580 /** 19581 * 指定のフレームのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f) 19582 */ 19583 extern int MV1SetFrameSpcColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19584 19585 /** 19586 * 指定のフレームのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f) 19587 */ 19588 extern int MV1SetFrameEmiColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19589 19590 /** 19591 * 指定のフレームのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f) 19592 */ 19593 extern int MV1SetFrameAmbColorScale(int MHandle, int FrameIndex, .COLOR_F Scale); 19594 19595 /** 19596 * 指定のフレームのディフューズカラーのスケール値を取得する(デフォルト値は1.0f) 19597 */ 19598 extern .COLOR_F MV1GetFrameDifColorScale(int MHandle, int FrameIndex); 19599 19600 /** 19601 * 指定のフレームのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f) 19602 */ 19603 extern .COLOR_F MV1GetFrameSpcColorScale(int MHandle, int FrameIndex); 19604 19605 /** 19606 * 指定のフレームのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f) 19607 */ 19608 extern .COLOR_F MV1GetFrameEmiColorScale(int MHandle, int FrameIndex); 19609 19610 /** 19611 * 指定のフレームのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f) 19612 */ 19613 extern .COLOR_F MV1GetFrameAmbColorScale(int MHandle, int FrameIndex); 19614 19615 /** 19616 * 指定のフレームに半透明要素があるかどうかを取得する 19617 * 19618 * Returns: dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない 19619 */ 19620 extern int MV1GetFrameSemiTransState(int MHandle, int FrameIndex); 19621 19622 /** 19623 * 指定のフレームの不透明度を設定する(不透明1.0f~透明 0.0f) 19624 */ 19625 extern int MV1SetFrameOpacityRate(int MHandle, int FrameIndex, float Rate); 19626 19627 /** 19628 * 指定のフレームの不透明度を取得する(不透明1.0f~透明 0.0f) 19629 */ 19630 extern float MV1GetFrameOpacityRate(int MHandle, int FrameIndex); 19631 19632 /** 19633 * 指定のフレームの初期表示状態を設定する 19634 * 19635 * Params: 19636 * MHandle = ? 19637 * FrameIndex = ? 19638 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19639 */ 19640 extern int MV1SetFrameBaseVisible(int MHandle, int FrameIndex, int VisibleFlag); 19641 19642 /** 19643 * 指定のフレームの初期表示状態を取得する 19644 * 19645 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19646 */ 19647 extern int MV1GetFrameBaseVisible(int MHandle, int FrameIndex); 19648 19649 /** 19650 * 指定のフレームのテクスチャ座標変換パラメータを設定する 19651 */ 19652 extern int MV1SetFrameTextureAddressTransform(int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate); 19653 19654 /** 19655 * 指定のフレームのテクスチャ座標変換行列をセットする 19656 */ 19657 extern int MV1SetFrameTextureAddressTransformMatrix(int MHandle, int FrameIndex, .MATRIX Matrix); 19658 19659 /** 19660 * 指定のフレームのテクスチャ座標変換パラメータをリセットする 19661 */ 19662 extern int MV1ResetFrameTextureAddressTransform(int MHandle, int FrameIndex); 19663 19664 // メッシュ関係 19665 19666 /** 19667 * モデルに含まれるメッシュの数を取得する 19668 */ 19669 extern int MV1GetMeshNum(int MHandle); 19670 19671 /** 19672 * 指定メッシュが使用しているマテリアルのインデックスを取得する 19673 */ 19674 extern int MV1GetMeshMaterial(int MHandle, int MeshIndex); 19675 19676 /** 19677 * 指定メッシュに含まれる頂点の数を取得する 19678 */ 19679 extern int MV1GetMeshVertexNum(int MHandle, int MeshIndex); 19680 19681 /** 19682 * 指定メッシュに含まれる三角形ポリゴンの数を取得する 19683 */ 19684 extern int MV1GetMeshTriangleNum(int MHandle, int MeshIndex); 19685 19686 /** 19687 * 指定メッシュの表示、非表示状態を変更する 19688 * 19689 * Params: 19690 * MHandle = ? 19691 * MeshIndex = ? 19692 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19693 */ 19694 extern int MV1SetMeshVisible(int MHandle, int MeshIndex, int VisibleFlag); 19695 19696 /** 19697 * 指定メッシュの表示、非表示状態を取得する 19698 * 19699 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19700 */ 19701 extern int MV1GetMeshVisible(int MHandle, int MeshIndex); 19702 19703 /** 19704 * 指定のメッシュのディフューズカラーのスケール値を設定する(デフォルト値は1.0f) 19705 */ 19706 extern int MV1SetMeshDifColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19707 19708 /** 19709 * 指定のメッシュのスペキュラカラーのスケール値を設定する(デフォルト値は1.0f) 19710 */ 19711 extern int MV1SetMeshSpcColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19712 19713 /** 19714 * 指定のメッシュのエミッシブカラーのスケール値を設定する(デフォルト値は1.0f) 19715 */ 19716 extern int MV1SetMeshEmiColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19717 19718 /** 19719 * 指定のメッシュのアンビエントカラーのスケール値を設定する(デフォルト値は1.0f) 19720 */ 19721 extern int MV1SetMeshAmbColorScale(int MHandle, int MeshIndex, .COLOR_F Scale); 19722 19723 /** 19724 * 指定のメッシュのディフューズカラーのスケール値を取得する(デフォルト値は1.0f) 19725 */ 19726 extern .COLOR_F MV1GetMeshDifColorScale(int MHandle, int MeshIndex); 19727 19728 /** 19729 * 指定のメッシュのスペキュラカラーのスケール値を取得する(デフォルト値は1.0f) 19730 */ 19731 extern .COLOR_F MV1GetMeshSpcColorScale(int MHandle, int MeshIndex); 19732 19733 /** 19734 * 指定のメッシュのエミッシブカラーのスケール値を取得する(デフォルト値は1.0f) 19735 */ 19736 extern .COLOR_F MV1GetMeshEmiColorScale(int MHandle, int MeshIndex); 19737 19738 /** 19739 * 指定のメッシュのアンビエントカラーのスケール値を取得する(デフォルト値は1.0f) 19740 */ 19741 extern .COLOR_F MV1GetMeshAmbColorScale(int MHandle, int MeshIndex); 19742 19743 /** 19744 * 指定のメッシュの不透明度を設定する(不透明1.0f~透明 0.0f) 19745 */ 19746 extern int MV1SetMeshOpacityRate(int MHandle, int MeshIndex, float Rate); 19747 19748 /** 19749 * 指定のメッシュの不透明度を取得する(不透明1.0f~透明 0.0f) 19750 */ 19751 extern float MV1GetMeshOpacityRate(int MHandle, int MeshIndex); 19752 19753 /** 19754 * 指定のメッシュの描画ブレンドモードを設定する(DX_BLENDMODE_ALPHA等) 19755 */ 19756 extern int MV1SetMeshDrawBlendMode(int MHandle, int MeshIndex, int BlendMode); 19757 19758 /** 19759 * 指定のメッシュの描画ブレンドパラメータを設定する 19760 */ 19761 extern int MV1SetMeshDrawBlendParam(int MHandle, int MeshIndex, int BlendParam); 19762 19763 /** 19764 * 指定のメッシュの描画ブレンドモードを取得する(DX_BLENDMODE_ALPHA等) 19765 */ 19766 extern int MV1GetMeshDrawBlendMode(int MHandle, int MeshIndex); 19767 19768 /** 19769 * 指定のメッシュの描画ブレンドパラメータを設定する 19770 */ 19771 extern int MV1GetMeshDrawBlendParam(int MHandle, int MeshIndex); 19772 19773 /** 19774 * 指定のメッシュの初期表示状態を設定する 19775 * 19776 * Params: 19777 * MHandle = ? 19778 * MeshIndex = ? 19779 * VisibleFlag = dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19780 */ 19781 extern int MV1SetMeshBaseVisible(int MHandle, int MeshIndex, int VisibleFlag); 19782 19783 /** 19784 * 指定のメッシュの初期表示状態を取得する 19785 * 19786 * Returns: dxlib_d.DxDataType.TRUE:表示 dxlib_d.DxDataType.FALSE:非表示 19787 */ 19788 extern int MV1GetMeshBaseVisible(int MHandle, int MeshIndex); 19789 19790 /** 19791 * 指定のメッシュのバックカリングを行うかどうかを設定する(DX_CULLING_LEFT等) 19792 */ 19793 extern int MV1SetMeshBackCulling(int MHandle, int MeshIndex, int CullingFlag); 19794 19795 /** 19796 * 指定のメッシュのバックカリングを行うかどうかを取得する(DX_CULLING_LEFT等) 19797 */ 19798 extern int MV1GetMeshBackCulling(int MHandle, int MeshIndex); 19799 19800 /** 19801 * 指定のメッシュに含まれるポリゴンの最大ローカル座標を取得する 19802 */ 19803 extern .VECTOR MV1GetMeshMaxPosition(int MHandle, int MeshIndex); 19804 19805 /** 19806 * 指定のメッシュに含まれるポリゴンの最小ローカル座標を取得する 19807 */ 19808 extern .VECTOR MV1GetMeshMinPosition(int MHandle, int MeshIndex); 19809 19810 /** 19811 * 指定のメッシュに含まれるトライアングルリストの数を取得する 19812 */ 19813 extern int MV1GetMeshTListNum(int MHandle, int MeshIndex); 19814 19815 /** 19816 * 指定のメッシュに含まれるトライアングルリストのインデックスを取得する 19817 */ 19818 extern int MV1GetMeshTList(int MHandle, int MeshIndex, int Index); 19819 19820 /** 19821 * 指定のメッシュに半透明要素があるかどうかを取得する 19822 * 19823 * Returns: dxlib_d.DxDataType.TRUE:ある dxlib_d.DxDataType.FALSE:ない 19824 */ 19825 extern int MV1GetMeshSemiTransState(int MHandle, int MeshIndex); 19826 19827 /** 19828 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する 19829 * 19830 * Params: 19831 * MHandle = ? 19832 * MeshIndex = ? 19833 * UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 19834 */ 19835 extern int MV1SetMeshUseVertDifColor(int MHandle, int MeshIndex, int UseFlag); 19836 19837 /** 19838 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する 19839 * 19840 * Params: 19841 * MHandle = ? 19842 * MeshIndex = ? 19843 * UseFlag = dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 19844 */ 19845 extern int MV1SetMeshUseVertSpcColor(int MHandle, int MeshIndex, int UseFlag); 19846 19847 /** 19848 * 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかの設定を取得する 19849 * 19850 * Returns: dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 19851 */ 19852 extern int MV1GetMeshUseVertDifColor(int MHandle, int MeshIndex); 19853 19854 /** 19855 * 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかの設定を取得する 19856 * 19857 * Returns: dxlib_d.DxDataType.TRUE:マテリアルカラーの代わりに使用する dxlib_d.DxDataType.FALSE:マテリアルカラーを使用する 19858 */ 19859 extern int MV1GetMeshUseVertSpcColor(int MHandle, int MeshIndex); 19860 19861 /** 19862 * 指定のメッシュがシェイプメッシュかどうかを取得する 19863 * 19864 * Returns: dxlib_d.DxDataType.TRUE:シェイプメッシュ dxlib_d.DxDataType.FALSE:通常メッシュ 19865 */ 19866 extern int MV1GetMeshShapeFlag(int MHandle, int MeshIndex); 19867 19868 // シェイプ関係 19869 19870 /** 19871 * モデルに含まれるシェイプの数を取得する 19872 */ 19873 extern int MV1GetShapeNum(int MHandle); 19874 19875 /** 19876 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する 19877 * 19878 * Returns: 無かった場合は-1 19879 */ 19880 extern int MV1SearchShape(int MHandle, const (dxlib_d.DxDataType.TCHAR)* ShapeName); 19881 19882 /** 19883 * シェイプの名前からモデル中のシェイプのシェイプインデックスを取得する 19884 * 19885 * Returns: 無かった場合は-1 19886 */ 19887 extern int MV1SearchShapeWithStrLen(int MHandle, const (dxlib_d.DxDataType.TCHAR)* ShapeName, size_t ShapeNameLength); 19888 19889 /** 19890 * 指定シェイプの名前を取得する 19891 */ 19892 extern const (dxlib_d.DxDataType.TCHAR)* MV1GetShapeName(int MHandle, int ShapeIndex); 19893 19894 /** 19895 * 指定シェイプが対象としているメッシュの数を取得する 19896 */ 19897 extern int MV1GetShapeTargetMeshNum(int MHandle, int ShapeIndex); 19898 19899 /** 19900 * 指定シェイプが対象としているメッシュのメッシュインデックスを取得する 19901 */ 19902 extern int MV1GetShapeTargetMesh(int MHandle, int ShapeIndex, int Index); 19903 19904 /** 19905 * 指定シェイプの有効率を設定する 19906 * 19907 * Params: 19908 * MHandle = ? 19909 * ShapeIndex = ? 19910 * Rate = 0.0f:0%~1.0f:100% 19911 * Type = ? 19912 */ 19913 extern int MV1SetShapeRate(int MHandle, int ShapeIndex, float Rate, int Type = DX_MV1_SHAPERATE_ADD); 19914 19915 /** 19916 * 指定シェイプの有効率を取得する 19917 * 19918 * Returns: 0.0f:0%~1.0f:100% 19919 */ 19920 extern float MV1GetShapeRate(int MHandle, int ShapeIndex); 19921 19922 /** 19923 * 指定シェイプの有効率を取得する(MV1SetShapeRateで指定した値がそのまま戻り値となるMV1GetShapeRateと異なりアニメーションのシェイプ情報なども加味した値が戻り値となります) 19924 * 19925 * Returns: 0.0f:0%~1.0f:100% 19926 */ 19927 extern float MV1GetShapeApplyRate(int MHandle, int ShapeIndex); 19928 19929 // トライアングルリスト関係 19930 19931 /** 19932 * モデルに含まれるトライアングルリストの数を取得する 19933 */ 19934 extern int MV1GetTriangleListNum(int MHandle); 19935 19936 /** 19937 * 指定のトライアングルリストの頂点データタイプを取得する(DX_MV1_VERTEX_TYPE_1FRAME等) 19938 */ 19939 extern int MV1GetTriangleListVertexType(int MHandle, int TListIndex); 19940 19941 /** 19942 * 指定のトライアングルリストに含まれるポリゴンの数を取得する 19943 */ 19944 extern int MV1GetTriangleListPolygonNum(int MHandle, int TListIndex); 19945 19946 /** 19947 * 指定のトライアングルリストに含まれる頂点データの数を取得する 19948 */ 19949 extern int MV1GetTriangleListVertexNum(int MHandle, int TListIndex); 19950 19951 /** 19952 * 指定のトライアングルリストが使用する座標変換行列の数を取得する 19953 */ 19954 extern int MV1GetTriangleListLocalWorldMatrixNum(int MHandle, int TListIndex); 19955 19956 /** 19957 * 指定のトライアングルリストが使用する座標変換行列(ローカル→ワールド)を取得する 19958 */ 19959 extern .MATRIX MV1GetTriangleListLocalWorldMatrix(int MHandle, int TListIndex, int LWMatrixIndex); 19960 19961 /** 19962 * 指定のトライアングルリストの指定のポリゴンが使用している頂点の座標を取得する 19963 * 19964 * Returns: エラー:-1 0以上:ポリゴンが使用している頂点の数 19965 */ 19966 extern int MV1GetTriangleListPolygonVertexPosition(int MHandle, int TListIndex, int PolygonIndex, .VECTOR* VertexPositionArray = null, float* MatrixWeightArray = null); 19967 19968 /** 19969 * 指定のトライアングルリストが使用しているマテリアルのインデックスを取得する 19970 */ 19971 extern int MV1GetTriangleListUseMaterial(int MHandle, int TListIndex); 19972 19973 // コリジョン関係 19974 19975 /** 19976 * コリジョン情報を構築する 19977 */ 19978 extern int MV1SetupCollInfo(int MHandle, int FrameIndex = -1, int XDivNum = 32, int YDivNum = 8, int ZDivNum = 32, int MeshIndex = -1); 19979 19980 /** 19981 * コリジョン情報の後始末 19982 */ 19983 extern int MV1TerminateCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1); 19984 19985 /** 19986 * コリジョン情報を更新する 19987 */ 19988 extern int MV1RefreshCollInfo(int MHandle, int FrameIndex = -1, int MeshIndex = -1); 19989 19990 /** 19991 * 線とモデルの当たり判定 19992 */ 19993 extern .MV1_COLL_RESULT_POLY MV1CollCheck_Line(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1); 19994 19995 /** 19996 * 線とモデルの当たり判定(戻り値がMV1_COLL_RESULT_POLY_DIM) 19997 */ 19998 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_LineDim(int MHandle, int FrameIndex, .VECTOR PosStart, .VECTOR PosEnd, int MeshIndex = -1); 19999 20000 /** 20001 * 球とモデルの当たり判定 20002 */ 20003 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Sphere(int MHandle, int FrameIndex, .VECTOR CenterPos, float r, int MeshIndex = -1); 20004 20005 /** 20006 * カプセルとモデルの当たり判定 20007 */ 20008 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Capsule(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, float r, int MeshIndex = -1); 20009 20010 /** 20011 * 三角形とモデルの当たり判定 20012 */ 20013 extern .MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Triangle(int MHandle, int FrameIndex, .VECTOR Pos1, .VECTOR Pos2, .VECTOR Pos3, int MeshIndex = -1); 20014 20015 /** 20016 * コリジョン結果ポリゴン配列から指定番号のポリゴン情報を取得する 20017 */ 20018 extern .MV1_COLL_RESULT_POLY MV1CollCheck_GetResultPoly(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim, int PolyNo); 20019 20020 /** 20021 * コリジョン結果ポリゴン配列の後始末をする 20022 */ 20023 extern int MV1CollResultPolyDimTerminate(.MV1_COLL_RESULT_POLY_DIM ResultPolyDim); 20024 20025 // 参照用メッシュ関係 20026 20027 /** 20028 * 参照用メッシュのセットアップ 20029 */ 20030 extern int MV1SetupReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1); 20031 20032 /** 20033 * 参照用メッシュの後始末 20034 */ 20035 extern int MV1TerminateReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1); 20036 20037 /** 20038 * 参照用メッシュの更新 20039 */ 20040 extern int MV1RefreshReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1); 20041 20042 /** 20043 * 参照用メッシュを取得する 20044 */ 20045 extern .MV1_REF_POLYGONLIST MV1GetReferenceMesh(int MHandle, int FrameIndex, int IsTransform, int IsPositionOnly = dxlib_d.DxDataType.FALSE, int MeshIndex = -1); 20046 } 20047 20048 // DxLive2DCubism4.cpp 関数 プロトタイプ宣言 20049 20050 version (DX_NON_LIVE2D_CUBISM4) { 20051 } else { 20052 /** 20053 * Live2DCubismCore.dllのファイルパスを設定する 20054 */ 20055 extern int Live2D_SetCubism4CoreDLLPath(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath); 20056 20057 /** 20058 * Live2DCubismCore.dllのファイルパスを設定する 20059 */ 20060 extern int Live2D_SetCubism4CoreDLLPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength); 20061 20062 /** 20063 * Live2DCubismCore.dllのファイルパスを設定する 20064 */ 20065 extern int Live2D_SetCubism3CoreDLLPath(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath); 20066 20067 /** 20068 * Live2DCubismCore.dllのファイルパスを設定する 20069 */ 20070 extern int Live2D_SetCubism3CoreDLLPathWithStrLen(const (dxlib_d.DxDataType.TCHAR)* CoreDLLFilePath, size_t CoreDLLFilePathLength); 20071 20072 /** 20073 * Live2Dの描画処理を開始する 20074 */ 20075 extern int Live2D_RenderBegin(); 20076 20077 /** 20078 * Live2Dの描画処理を終了する 20079 */ 20080 extern int Live2D_RenderEnd(); 20081 20082 /** 20083 * Live2Dのモデルファイルを読み込む 20084 * 20085 * Returns: 0以上:Live2Dモデルハンドル マイナス値:エラー発生 20086 */ 20087 extern int Live2D_LoadModel(const (dxlib_d.DxDataType.TCHAR)* FilePath); 20088 20089 /** 20090 * Live2Dのモデルファイルを読み込む 20091 * 20092 * Returns: 0以上:Live2Dモデルハンドル マイナス値:エラー発生 20093 */ 20094 extern int Live2D_LoadModelWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FilePath, size_t FilePathLength); 20095 20096 /** 20097 * Live2Dのモデルを削除する 20098 */ 20099 extern int Live2D_DeleteModel(int Live2DModelHandle); 20100 20101 /** 20102 * すべてのLive2Dのモデルを削除する 20103 */ 20104 extern int Live2D_InitModel(); 20105 20106 /** 20107 * Live2Dのモデルの状態を更新する 20108 */ 20109 extern int Live2D_Model_Update(int Live2DModelHandle, float DeltaTimeSeconds); 20110 20111 /** 20112 * Live2Dのモデルの位置を設定する 20113 */ 20114 extern int Live2D_Model_SetTranslate(int Live2DModelHandle, float x, float y); 20115 20116 /** 20117 * Live2Dのモデルの拡大率を設定する 20118 */ 20119 extern int Live2D_Model_SetExtendRate(int Live2DModelHandle, float ExRateX, float ExRateY); 20120 20121 /** 20122 * Live2Dのモデルの回転を設定する 20123 */ 20124 extern int Live2D_Model_SetRotate(int Live2DModelHandle, float RotAngle); 20125 20126 /** 20127 * Live2Dのモデルを描画する 20128 */ 20129 extern int Live2D_Model_Draw(int Live2DModelHandle); 20130 20131 /** 20132 * Live2Dのモデルの指定のモーションを再生する 20133 */ 20134 extern int Live2D_Model_StartMotion(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* group, int no); 20135 20136 /** 20137 * Live2Dのモデルの指定のモーションを再生する 20138 */ 20139 extern int Live2D_Model_StartMotionWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* group, size_t groupLength, int no); 20140 20141 /** 20142 * Live2Dのモデルのモーション再生が終了しているかを取得する 20143 * 20144 * Returns: dxlib_d.DxDataType.TRUE:再生が終了している dxlib_d.DxDataType.FALSE:再生中 20145 */ 20146 extern int Live2D_Model_IsMotionFinished(int Live2DModelHandle); 20147 20148 /** 20149 * Live2Dのモデルの指定の表情モーションを設定する 20150 */ 20151 extern int Live2D_Model_SetExpression(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* expressionID); 20152 20153 /** 20154 * Live2Dのモデルの指定の表情モーションを設定する 20155 */ 20156 extern int Live2D_Model_SetExpressionWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* expressionID, size_t expressionIDLength); 20157 20158 /** 20159 * 指定の座標がLive2Dのモデルの指定の当たり判定の矩形範囲内か判定する 20160 * 20161 * Returns: dxlib_d.DxDataType.TRUE:矩形範囲内 dxlib_d.DxDataType.FALSE:矩形範囲外 20162 */ 20163 extern int Live2D_Model_HitTest(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* hitAreaName, float x, float y); 20164 20165 /** 20166 * 指定の座標がLive2Dのモデルの指定の当たり判定の矩形範囲内か判定する 20167 * 20168 * Returns: dxlib_d.DxDataType.TRUE:矩形範囲内 dxlib_d.DxDataType.FALSE:矩形範囲外 20169 */ 20170 extern int Live2D_Model_HitTestWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* hitAreaName, size_t hitAreaNameLength, float x, float y); 20171 20172 /** 20173 * Live2Dのモデルに設定されているパラメータの数を取得する 20174 */ 20175 extern int Live2D_Model_GetParameterCount(int Live2DModelHandle); 20176 20177 /** 20178 * Live2Dのモデルに設定されているパラメータのIDを取得する 20179 */ 20180 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetParameterId(int Live2DModelHandle, int index); 20181 20182 /** 20183 * Live2Dのモデルに設定されているパラメータを取得する 20184 */ 20185 extern float Live2D_Model_GetParameterValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId); 20186 20187 /** 20188 * Live2Dのモデルに設定されているパラメータを取得する 20189 */ 20190 extern float Live2D_Model_GetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, size_t parameterIdLength); 20191 20192 /** 20193 * Live2Dのモデルに設定されているパラメータを設定する 20194 */ 20195 extern int Live2D_Model_SetParameterValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, float value); 20196 20197 /** 20198 * Live2Dのモデルに設定されているパラメータを設定する 20199 */ 20200 extern int Live2D_Model_SetParameterValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* parameterId, size_t parameterIdLength, float value); 20201 20202 /** 20203 * Live2Dのモデルに設定された当たり判定の数を取得する 20204 */ 20205 extern int Live2D_Model_GetHitAreasCount(int Live2DModelHandle); 20206 20207 /** 20208 * Live2Dのモデルの当たり判定に設定された名前を取得する 20209 */ 20210 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetHitAreaName(int Live2DModelHandle, int index); 20211 20212 /** 20213 * Live2Dのモデルの物理演算設定ファイルの名前を取得する 20214 */ 20215 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetPhysicsFileName(int Live2DModelHandle); 20216 20217 /** 20218 * Live2Dのモデルのパーツ切り替え設定ファイルの名前を取得する 20219 */ 20220 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetPoseFileName(int Live2DModelHandle); 20221 20222 /** 20223 * Live2Dのモデルの表情設定ファイルの数を取得する 20224 */ 20225 extern int Live2D_Model_GetExpressionCount(int Live2DModelHandle); 20226 20227 /** 20228 * Live2Dのモデルの表情設定ファイルを識別するIDを取得する 20229 */ 20230 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetExpressionName(int Live2DModelHandle, int index); 20231 20232 /** 20233 * Live2Dのモデルの表情設定ファイルの名前を取得する 20234 */ 20235 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetExpressionFileName(int Live2DModelHandle, int index); 20236 20237 /** 20238 * Live2Dのモデルのモーショングループの数を取得する 20239 */ 20240 extern int Live2D_Model_GetMotionGroupCount(int Live2DModelHandle); 20241 20242 /** 20243 * Live2Dのモデルのモーショングループの名前を取得する 20244 */ 20245 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionGroupName(int Live2DModelHandle, int index); 20246 20247 /** 20248 * Live2Dのモデルのモーショングループに含まれるモーションの数を取得する 20249 */ 20250 extern int Live2D_Model_GetMotionCount(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName); 20251 20252 /** 20253 * Live2Dのモデルのモーショングループに含まれるモーションの数を取得する 20254 */ 20255 extern int Live2D_Model_GetMotionCountWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength); 20256 20257 /** 20258 * Live2Dのモデルのグループ名とインデックス値からモーションファイルの名前を取得する 20259 */ 20260 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionFileName(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index); 20261 20262 /** 20263 * Live2Dのモデルのグループ名とインデックス値からモーションファイルの名前を取得する 20264 */ 20265 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index); 20266 20267 /** 20268 * Live2Dのモデルのモーションに対応するサウンドファイルの名前を取得する 20269 */ 20270 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionSoundFileName(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index); 20271 20272 /** 20273 * Live2Dのモデルのモーションに対応するサウンドファイルの名前を取得する 20274 */ 20275 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetMotionSoundFileNameWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index); 20276 20277 /** 20278 * Live2Dのモデルのモーション開始時のフェードイン処理時間を取得する 20279 */ 20280 extern float Live2D_Model_GetMotionFadeInTimeValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index); 20281 20282 /** 20283 * Live2Dのモデルのモーション開始時のフェードイン処理時間を取得する 20284 */ 20285 extern float Live2D_Model_GetMotionFadeInTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index); 20286 20287 /** 20288 * Live2Dのモデルのモーション終了時のフェードアウト処理時間を取得する 20289 */ 20290 extern float Live2D_Model_GetMotionFadeOutTimeValue(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, int index); 20291 20292 /** 20293 * Live2Dのモデルのモーション終了時のフェードアウト処理時間を取得する 20294 */ 20295 extern float Live2D_Model_GetMotionFadeOutTimeValueWithStrLen(int Live2DModelHandle, const (dxlib_d.DxDataType.TCHAR)* groupName, size_t groupNameLength, int index); 20296 20297 /** 20298 * Live2Dのモデルのユーザデータのファイル名を取得する 20299 */ 20300 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetUserDataFile(int Live2DModelHandle); 20301 20302 /** 20303 * Live2Dのモデルの目パチに関連付けられたパラメータの数を取得する 20304 */ 20305 extern int Live2D_Model_GetEyeBlinkParameterCount(int Live2DModelHandle); 20306 20307 /** 20308 * Live2Dのモデルの目パチに関連付けられたパラメータのIDを取得する 20309 */ 20310 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetEyeBlinkParameterId(int Live2DModelHandle, int index); 20311 20312 /** 20313 * Live2Dのモデルのリップシンクに関連付けられたパラメータの数を取得する 20314 */ 20315 extern int Live2D_Model_GetLipSyncParameterCount(int Live2DModelHandle); 20316 20317 /** 20318 * Live2Dのモデルのリップシンクに関連付けられたパラメータのIDを取得する 20319 */ 20320 extern const (dxlib_d.DxDataType.TCHAR)* Live2D_Model_GetLipSyncParameterId(int Live2DModelHandle, int index); 20321 } 20322 } 20323 20324 // ネームスペースDxLibを使用する ------------------------------------------------------ 20325 version (DX_NON_NAMESPACE) { 20326 } else { 20327 version (DX_NON_USING_NAMESPACE_DXLIB) { 20328 } else { 20329 /+ 20330 using namespace DxLib; 20331 +/ 20332 } 20333 } 20334 20335 // DXライブラリ内部でのみ使用するヘッダファイルのインクルード ------------------------- 20336 20337 version (DX_MAKE) { 20338 // #include "DxStatic.h" 20339 }