Advertisement
Guest User

Untitled

a guest
Nov 16th, 2014
1,553
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 396.36 KB | None | 0 0
  1. // -------------------------------------------------------------------------------
  2. //
  3. //      DXライブラリ       ヘッダファイル
  4. //
  5. //              Ver 3.09
  6. //
  7. // -------------------------------------------------------------------------------
  8.  
  9. #ifndef __DXLIB
  10. #define __DXLIB
  11.  
  12. #include "DxCompileConfig.h"
  13. #include "DxDirectX.h"
  14.  
  15. // DXライブラリのバージョン
  16. #define DXLIB_VERSION 0x3090
  17. #define DXLIB_VERSION_STR _T( "3.09 " )
  18.  
  19. // 設定 -----------------------------------------------------------------------
  20.  
  21. // DXライブラリに必要な lib ファイルを、プロジェクトのカレントフォルダや
  22. // コンパイラのデフォルト LIB パスに設定せずに使用される場合は以下の
  23. // コメントを外してください
  24. //#define DX_LIB_NOT_DEFAULTPATH
  25.  
  26. #ifndef __DX_MAKE
  27.  
  28. // 描画関連の関数を一切使用されない場合は以下のコメントを外して下さい
  29. //#define DX_NOTUSE_DRAWFUNCTION
  30.  
  31. #endif // __DX_MAKE
  32.  
  33. // ライブラリリンク定義--------------------------------------------------------
  34.  
  35. #if !defined( __ANDROID )
  36.  
  37. #ifndef __DX_MAKE
  38.     #ifndef DX_LIB_NOT_DEFAULTPATH
  39.         #ifndef DX_SRC_COMPILE
  40.             #ifdef _MSC_VER
  41.                 #ifdef _WIN64
  42.                     #ifdef _DEBUG
  43.                         #pragma comment( lib, "DxDrawFunc_x64_d.lib"        )       //  描画部分の抜き出し
  44.                         #ifdef UNICODE
  45.                             #pragma comment( lib, "DxLibW_x64_d.lib"        )       //  DXライブラリ使用指定
  46.                             #pragma comment( lib, "DxUseCLibW_x64_d.lib"    )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  47.                         #else
  48.                             #pragma comment( lib, "DxLib_x64_d.lib"         )       //  DXライブラリ使用指定
  49.                             #pragma comment( lib, "DxUseCLib_x64_d.lib"     )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  50.                         #endif
  51.                     #else
  52.                         #pragma comment( lib, "DxDrawFunc_x64.lib"          )       //  描画部分の抜き出し
  53.                         #ifdef UNICODE
  54.                             #pragma comment( lib, "DxLibW_x64.lib"          )       //  DXライブラリ使用指定
  55.                             #pragma comment( lib, "DxUseCLibW_x64.lib"      )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  56.                         #else
  57.                             #pragma comment( lib, "DxLib_x64.lib"           )       //  DXライブラリ使用指定
  58.                             #pragma comment( lib, "DxUseCLib_x64.lib"       )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  59.                         #endif
  60.                     #endif
  61.                 #else
  62.                     #ifdef _DEBUG
  63.                         #pragma comment( lib, "DxDrawFunc_d.lib"        )       //  描画部分の抜き出し
  64.                         #ifdef UNICODE
  65.                             #pragma comment( lib, "DxLibW_d.lib"        )       //  DXライブラリ使用指定
  66.                             #pragma comment( lib, "DxUseCLibW_d.lib"    )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  67.                         #else
  68.                             #pragma comment( lib, "DxLib_d.lib"         )       //  DXライブラリ使用指定
  69.                             #pragma comment( lib, "DxUseCLib_d.lib"     )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  70.                         #endif
  71.                     #else
  72.                         #pragma comment( lib, "DxDrawFunc.lib"          )       //  描画部分の抜き出し
  73.                         #ifdef UNICODE
  74.                             #pragma comment( lib, "DxLibW.lib"          )       //  DXライブラリ使用指定
  75.                             #pragma comment( lib, "DxUseCLibW.lib"      )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  76.                         #else
  77.                             #pragma comment( lib, "DxLib.lib"           )       //  DXライブラリ使用指定
  78.                             #pragma comment( lib, "DxUseCLib.lib"       )       //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  79.                         #endif
  80.                     #endif
  81.                 #endif
  82.             #else
  83.                 #pragma comment( lib, "DxDrawFunc.lib"      )           //  描画部分の抜き出し
  84.                 #ifdef UNICODE
  85.                     #pragma comment( lib, "DxLibW.lib"      )           //  DXライブラリ使用指定
  86.                     #pragma comment( lib, "DxUseCLibW.lib"  )           //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  87.                 #else
  88.                     #pragma comment( lib, "DxLib.lib"       )           //  DXライブラリ使用指定
  89.                     #pragma comment( lib, "DxUseCLib.lib"   )           //  標準Cライブラリを使用する部分の lib ファイルの使用指定
  90.                 #endif
  91.             #endif
  92.  
  93.             #ifdef _DEBUG
  94.                 #pragma comment( linker, "/NODEFAULTLIB:libcmt.lib" )
  95.                 #pragma comment( linker, "/NODEFAULTLIB:libc.lib" )
  96.                 #pragma comment( linker, "/NODEFAULTLIB:libcd.lib" )
  97.     //          #pragma comment( linker, "/NODEFAULTLIB:msvcrt.lib" )
  98.     //          #pragma comment( linker, "/NODEFAULTLIB:msvcrtd.lib" )
  99.             #else
  100.                 #pragma comment( linker, "/NODEFAULTLIB:libcmtd.lib" )
  101.                 #pragma comment( linker, "/NODEFAULTLIB:libc.lib" )
  102.                 #pragma comment( linker, "/NODEFAULTLIB:libcd.lib" )
  103.     //          #pragma comment( linker, "/NODEFAULTLIB:msvcrt.lib" )
  104.     //          #pragma comment( linker, "/NODEFAULTLIB:msvcrtd.lib" )
  105.             #endif
  106.         #endif
  107.         //#pragma comment( lib, "libcmt.lib"        )               //  C標準マルチスレッド対応ライブラリ
  108.         #pragma comment( lib, "kernel32.lib"        )           //  Win32カーネルライブラリ
  109.         //#pragma comment( lib, "comctl32.lib"      )           // Win32APIライブラリ
  110.         #pragma comment( lib, "user32.lib"      )               //  Win32APIライブラリ
  111.         #pragma comment( lib, "gdi32.lib"       )               //  Win32APIライブラリ
  112.         #pragma comment( lib, "advapi32.lib"        )           //  Win32APIライブラリ
  113.         //#pragma comment( lib, "ole32.lib"     )               //  Win32APIライブラリ
  114.         #pragma comment( lib, "shell32.lib"     )               //  マルチメディアライブラリ
  115.         //#pragma comment( lib, "winmm.lib"     )               //  マルチメディアライブラリ
  116.         #ifndef DX_NON_MOVIE
  117.             //#pragma comment( lib, "Strmiids.lib" )            // DirectShowライブラリ
  118.         #endif
  119.         #ifndef DX_NON_NETWORK
  120.             //#pragma comment( lib, "wsock32.lib" )             //  WinSocketsライブラリ
  121.         #endif
  122.         #ifndef DX_NON_KEYEX
  123.             //#pragma comment( lib, "imm32.lib" )                   // IME操作用ライブラリ
  124.         #endif
  125.         #ifndef DX_NON_ACM
  126.             //#pragma comment( lib, "msacm32.lib" )             // ACM操作用ライブラリ
  127.         #endif
  128.         #ifndef DX_NON_BULLET_PHYSICS
  129.             #ifdef _MSC_VER
  130.                 #ifdef DX_USE_VC8_BULLET_PHYSICS_LIB
  131.                     #ifdef _WIN64
  132.                         #ifdef _DEBUG
  133.                             #pragma comment( lib, "libbulletcollision_vc8_x64_d.lib" )  // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  134.                             #pragma comment( lib, "libbulletdynamics_vc8_x64_d.lib" )
  135.                             #pragma comment( lib, "libbulletmath_vc8_x64_d.lib" )
  136.                         #else
  137.                             #pragma comment( lib, "libbulletcollision_vc8_x64.lib" )    // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  138.                             #pragma comment( lib, "libbulletdynamics_vc8_x64.lib" )
  139.                             #pragma comment( lib, "libbulletmath_vc8_x64.lib" )
  140.                         #endif
  141.                     #else
  142.                         #ifdef _DEBUG
  143.                             #pragma comment( lib, "libbulletcollision_vc8_d.lib" )  // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  144.                             #pragma comment( lib, "libbulletdynamics_vc8_d.lib" )
  145.                             #pragma comment( lib, "libbulletmath_vc8_d.lib" )
  146.                         #else
  147.                             #pragma comment( lib, "libbulletcollision_vc8.lib" )    // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  148.                             #pragma comment( lib, "libbulletdynamics_vc8.lib" )
  149.                             #pragma comment( lib, "libbulletmath_vc8.lib" )
  150.                         #endif
  151.                     #endif
  152.                 #else
  153.                     #ifdef _WIN64
  154.                         #ifdef _DEBUG
  155.                             #pragma comment( lib, "libbulletcollision_vc8_x64_d.lib" )  // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  156.                             #pragma comment( lib, "libbulletdynamics_vc8_x64_d.lib" )
  157.                             #pragma comment( lib, "libbulletmath_vc8_x64_d.lib" )
  158.                         #else
  159.                             #pragma comment( lib, "libbulletcollision_vc8_x64.lib" )    // Visual C++ 8.0 でコンパイルした Bullet Physics ライブラリ
  160.                             #pragma comment( lib, "libbulletdynamics_vc8_x64.lib" )
  161.                             #pragma comment( lib, "libbulletmath_vc8_x64.lib" )
  162.                         #endif
  163.                     #else
  164.                         #ifdef _DEBUG
  165.                             #pragma comment( lib, "libbulletcollision_vc6_d.lib" )  // Visual C++ 6.0 でコンパイルした Bullet Physics ライブラリ
  166.                             #pragma comment( lib, "libbulletdynamics_vc6_d.lib" )
  167.                             #pragma comment( lib, "libbulletmath_vc6_d.lib" )
  168.                         #else
  169.                             #pragma comment( lib, "libbulletcollision_vc6.lib" )    // Visual C++ 6.0 でコンパイルした Bullet Physics ライブラリ
  170.                             #pragma comment( lib, "libbulletdynamics_vc6.lib" )
  171.                             #pragma comment( lib, "libbulletmath_vc6.lib" )
  172.                         #endif
  173.                     #endif
  174.                 #endif
  175.             #else
  176.                 #pragma comment( lib, "libbulletcollision.lib" )    // Bullet Physics ライブラリ
  177.                 #pragma comment( lib, "libbulletdynamics.lib" )
  178.                 #pragma comment( lib, "libbulletmath.lib" )
  179.             #endif
  180.         #endif
  181.         #ifndef DX_NON_PNGREAD
  182.             #ifdef _MSC_VER
  183.                 #ifdef _WIN64
  184.                     #ifdef _DEBUG
  185.                         #pragma comment( lib, "libpng_x64_d.lib" )      // PNGライブラリ
  186.                         #pragma comment( lib, "zlib_x64_d.lib" )
  187.                     #else
  188.                         #pragma comment( lib, "libpng_x64.lib" )        // PNGライブラリ
  189.                         #pragma comment( lib, "zlib_x64.lib" )
  190.                     #endif
  191.                 #else
  192.                     #ifdef _DEBUG
  193.                         #pragma comment( lib, "libpng_d.lib" )          // PNGライブラリ
  194.                         #pragma comment( lib, "zlib_d.lib" )
  195.                     #else
  196.                         #pragma comment( lib, "libpng.lib" )            // PNGライブラリ
  197.                         #pragma comment( lib, "zlib.lib" )
  198.                     #endif
  199.                 #endif
  200.             #else
  201.                 #pragma comment( lib, "libpng.lib" )            // PNGライブラリ
  202.                 #pragma comment( lib, "zlib.lib" )
  203.             #endif
  204.         #endif
  205.         #ifndef DX_NON_JPEGREAD
  206.             #ifdef _MSC_VER
  207.                 #ifdef _WIN64
  208.                     #ifdef _DEBUG
  209.                         #pragma comment( lib, "libjpeg_x64_d.lib" )     // JPEGライブラリ
  210.                     #else
  211.                         #pragma comment( lib, "libjpeg_x64.lib" )       // JPEGライブラリ
  212.                     #endif
  213.                 #else
  214.                     #ifdef _DEBUG
  215.                         #pragma comment( lib, "libjpeg_d.lib" )         // JPEGライブラリ
  216.                     #else
  217.                         #pragma comment( lib, "libjpeg.lib" )           // JPEGライブラリ
  218.                     #endif
  219.                 #endif
  220.             #else
  221.                 #pragma comment( lib, "libjpeg.lib" )           // JPEGライブラリ
  222.             #endif
  223.         #endif
  224.         #ifndef DX_NON_OGGVORBIS                                // OggVorbisライブラリ
  225.             #ifdef _MSC_VER
  226.                 #ifdef _WIN64
  227.                     #ifdef _DEBUG
  228.                         #pragma comment( lib, "ogg_static_x64_d.lib" )
  229.                         #pragma comment( lib, "vorbis_static_x64_d.lib" )
  230.                         #pragma comment( lib, "vorbisfile_static_x64_d.lib" )
  231.                     #else
  232.                         #pragma comment( lib, "ogg_static_x64.lib" )
  233.                         #pragma comment( lib, "vorbis_static_x64.lib" )
  234.                         #pragma comment( lib, "vorbisfile_static_x64.lib" )
  235.                     #endif
  236.                 #else
  237.                     #ifdef _DEBUG
  238.                         #pragma comment( lib, "ogg_static_d.lib" )
  239.                         #pragma comment( lib, "vorbis_static_d.lib" )
  240.                         #pragma comment( lib, "vorbisfile_static_d.lib" )
  241.                     #else
  242.                         #pragma comment( lib, "ogg_static.lib" )
  243.                         #pragma comment( lib, "vorbis_static.lib" )
  244.                         #pragma comment( lib, "vorbisfile_static.lib" )
  245.                     #endif
  246.                 #endif
  247.             #else
  248.                 #pragma comment( lib, "ogg_static.lib" )
  249.                 #pragma comment( lib, "vorbis_static.lib" )
  250.                 #pragma comment( lib, "vorbisfile_static.lib" )
  251.             #endif
  252.         #endif
  253.         #ifndef DX_NON_OGGTHEORA                                // OggTheoraライブラリ
  254.             #ifdef _MSC_VER
  255.                 #ifdef _WIN64
  256.                     #ifdef _DEBUG
  257.                         #pragma comment( lib, "ogg_static_x64_d.lib" )
  258.                         #pragma comment( lib, "vorbis_static_x64_d.lib" )
  259.                         #pragma comment( lib, "vorbisfile_static_x64_d.lib" )
  260.  
  261.                         #pragma comment( lib, "libtheora_static_x64_d.lib" )
  262.                     #else
  263.                         #pragma comment( lib, "ogg_static_x64.lib" )
  264.                         #pragma comment( lib, "vorbis_static_x64.lib" )
  265.                         #pragma comment( lib, "vorbisfile_static_x64.lib" )
  266.  
  267.                         #pragma comment( lib, "libtheora_static_x64.lib" )
  268.                     #endif
  269.                 #else
  270.                     #ifdef _DEBUG
  271.                         #pragma comment( lib, "ogg_static_d.lib" )
  272.                         #pragma comment( lib, "vorbis_static_d.lib" )
  273.                         #pragma comment( lib, "vorbisfile_static_d.lib" )
  274.  
  275.                         #pragma comment( lib, "libtheora_static_d.lib" )
  276.                     #else
  277.                         #pragma comment( lib, "ogg_static.lib" )
  278.                         #pragma comment( lib, "vorbis_static.lib" )
  279.                         #pragma comment( lib, "vorbisfile_static.lib" )
  280.  
  281.                         #pragma comment( lib, "libtheora_static.lib" )
  282.                     #endif
  283.                 #endif
  284.             #else
  285.                 #pragma comment( lib, "ogg_static.lib" )
  286.                 #pragma comment( lib, "vorbis_static.lib" )
  287.                 #pragma comment( lib, "vorbisfile_static.lib" )
  288.  
  289.                 #pragma comment( lib, "libtheora_static.lib" )
  290.             #endif
  291.         #endif
  292.     #endif
  293. #endif
  294.  
  295. #endif // !defined( __ANDROID )
  296.  
  297. // 定義---------------------------------------------------------------------------
  298.  
  299. // π
  300. #define DX_PI                                       (3.1415926535897932384626433832795 )
  301. #define DX_PI_F                                     (3.1415926535897932384626433832795f)
  302. #define DX_TWO_PI                                   (3.1415926535897932384626433832795  * 2.0 )
  303. #define DX_TWO_PI_F                                 (3.1415926535897932384626433832795f * 2.0f)
  304.  
  305. #define DX_CHAR                                     char
  306.  
  307. #define DX_DEFINE_START
  308.  
  309. #define MAX_IMAGE_NUM                               (32768)             // 同時に持てるグラフィックハンドルの最大数( ハンドルエラーチェックのマスクに使用しているので 65536 以下の 2 のべき乗にして下さい )
  310. #define MAX_2DSURFACE_NUM                           (32768)             // 2Dサーフェスデータの最大数( ハンドルエラーチェックのマスクに使用しているので 65536 以下の 2 のべき乗にして下さい )
  311. #define MAX_3DSURFACE_NUM                           (65536)             // 3Dサーフェスデータの最大数( ハンドルエラーチェックのマスクに使用しているので 65536 以下の 2 のべき乗にして下さい )
  312. #define MAX_IMAGE_DIVNUM                            (64)                // 画像分割の最大数
  313. #define MAX_SURFACE_NUM                             (65536)             // サーフェスデータの最大数
  314. #define MAX_SOFTIMAGE_NUM                           (8192)              // 同時に持てるソフトイメージハンドルの最大数( ハンドルエラーチェックのマスクに使用しているので 65536 以下の 2 のべき乗にして下さい )
  315.  
  316. #define MAX_SOUND_NUM                               (32768)             // 同時に持てるサウンドハンドルの最大数
  317. #define MAX_SOFTSOUND_NUM                           (8192)              // 同時に持てるソフトウエアサウンドハンドルの最大数
  318. #define MAX_MUSIC_NUM                               (256)               // 同時に持てるミュージックハンドルの最大数
  319. #define MAX_MOVIE_NUM                               (100)               // 同時に持てるムービーハンドルの最大数
  320. #define MAX_MASK_NUM                                (512)               // 同時に持てるマスクハンドルの最大数
  321. #define MAX_FONT_NUM                                (40)                // 同時に持てるフォントハンドルの最大数
  322. #define MAX_INPUT_NUM                               (256)               // 同時に持てる文字列入力ハンドルの最大数
  323. #define MAX_SOCKET_NUM                              (8192)              // 同時に持てる通信ハンドルの最大数
  324. #define MAX_LIGHT_NUM                               (4096)              // 同時に持てるライトハンドルの最大数
  325. #define MAX_SHADER_NUM                              (4096)              // 同時に持てるシェーダーハンドルの最大数
  326. #define MAX_MODEL_BASE_NUM                          (32768)             // 同時に持てる3Dモデル基本データハンドルの最大数
  327. #define MAX_MODEL_NUM                               (32768)             // 同時に持てる3Dモデルデータハンドルの最大数
  328. #define MAX_VERTEX_BUFFER_NUM                       (16384)             // 同時に持てる頂点バッファハンドルの最大数
  329. #define MAX_INDEX_BUFFER_NUM                        (16384)             // 同時に持てるインデックスバッファの最大数
  330. #define MAX_FILE_NUM                                (32768)             // 同時に持てるファイルハンドルの最大数
  331.  
  332. #define MAX_JOYPAD_NUM                              (16)                // ジョイパッドの最大数
  333. #define MAX_EVENTPROCESS_NUM                        (5)                 // 一度に処理するイベントの最大数
  334.  
  335. #define DEFAULT_SCREEN_SIZE_X                       (640)               // デフォルトの画面の幅
  336. #define DEFAULT_SCREEN_SIZE_Y                       (480)               // デフォルトの画面の高さ
  337. #define DEFAULT_COLOR_BITDEPTH                      (16)                // デフォルトの色ビット深度
  338.  
  339. #define DEFAULT_FOV                                 (60.0F * 3.1415926535897932384626433832795F / 180.0F)   // デフォルトの視野角
  340. #define DEFAULT_TAN_FOV_HALF                        (0.57735026918962576450914878050196F) // tan( FOV * 0.5 )
  341. #define DEFAULT_NEAR                                (0.0F)              // NEARクリップ面
  342. #define DEFAULT_FAR                                 (20000.0F)          // FARクリップ面
  343.  
  344. #define DEFAULT_FONT_SIZE                           (16)                // フォントのデフォルトのサイズ
  345. #define DEFAULT_FONT_THINCK                         (6)                 // フォントのデフォルトの太さ
  346. #define DEFAULT_FONT_TYPE                           ( DX_FONTTYPE_NORMAL )  // フォントのデフォルトの形態
  347. #define DEFAULT_FONT_EDGESIZE                       (1)                 // フォントのデフォルトの太さ
  348.  
  349. #define FONT_CACHE_MAXNUM                           (2024)              // フォントキャッシュに格納できる最大文字数
  350. #define FONT_CACHE_MEMORYSIZE                       (0x50000)           // フォントキャッシュの最大容量
  351. #define FONT_CACHE_MAX_YLENGTH                      (0x4000)            // フォントキャッシュサーフェスの最大縦幅
  352.  
  353. #define MAX_USERIMAGEREAD_FUNCNUM                   (10)                // ユーザーが登録できるグラフィックロード関数の最大数
  354.  
  355.  
  356. // ハンドルの内訳
  357. #define DX_HANDLEINDEX_MASK                         (0x0000ffff)        // ハンドル配列インデックスマスク
  358. #define DX_HANDLECHECKBIT_MASK                      (0x03ff0000)        // ハンドルインデックスエラーチェック用マスク
  359. #define DX_HANDLECHECKBIT_ADDRESS                   (16)                // ハンドルインデックスエラーチェック用マスクの開始アドレス
  360. #define DX_HANDLETYPE_MASK                          (0x7c000000)        // ハンドルタイプマスク
  361. #define DX_HANDLEERROR_MASK                         (0x80000000)        // エラーチェックマスク( 0ではなかったらエラー )
  362. #define DX_HANDLEERROR_OR_TYPE_MASK                 (0xf8000000)        // DX_HANDLETYPE_MASK と DX_HANDLEERROR_MASK を掛け合わせたもの
  363.  
  364. // ハンドルタイプ定義
  365. #define DX_HANDLETYPE_GRAPH                         (0x04000000)        // グラフィックハンドル
  366. #define DX_HANDLETYPE_SOFTIMAGE                     (0x08000000)        // ソフトウエアで扱うイメージハンドル
  367. #define DX_HANDLETYPE_SOUND                         (0x0c000000)        // サウンドハンドル
  368. #define DX_HANDLETYPE_SOFTSOUND                     (0x10000000)        // ソフトサウンドハンドル
  369. #define DX_HANDLETYPE_MUSIC                         (0x14000000)        // ミュージックハンドル
  370. #define DX_HANDLETYPE_MOVIE                         (0x18000000)        // ムービーハンドル
  371. #define DX_HANDLETYPE_GMASK                         (0x1c000000)        // マスクハンドル
  372. #define DX_HANDLETYPE_FONT                          (0x20000000)        // フォントハンドル
  373. #define DX_HANDLETYPE_KEYINPUT                      (0x24000000)        // 文字列入力ハンドル
  374. #define DX_HANDLETYPE_NETWORK                       (0x28000000)        // ネットワークハンドル
  375. #define DX_HANDLETYPE_LIGHT                         (0x2c000000)        // ライト
  376. #define DX_HANDLETYPE_SHADER                        (0x30000000)        // シェーダーハンドル
  377. #define DX_HANDLETYPE_MODEL_BASE                    (0x34000000)        // 3Dモデル基本データ
  378. #define DX_HANDLETYPE_MODEL                         (0x38000000)        // 3Dモデル
  379. #define DX_HANDLETYPE_VERTEX_BUFFER                 (0x3c000000)        // 頂点バッファハンドル
  380. #define DX_HANDLETYPE_INDEX_BUFFER                  (0x40000000)        // インデックスバッファハンドル
  381. #define DX_HANDLETYPE_FILE                          (0x44000000)        // ファイルハンドル
  382.  
  383. // WINDOWSのバージョンマクロ
  384. #define DX_WINDOWSVERSION_31                        (0x000)
  385. #define DX_WINDOWSVERSION_95                        (0x001)
  386. #define DX_WINDOWSVERSION_98                        (0x002)
  387. #define DX_WINDOWSVERSION_ME                        (0x003)
  388. #define DX_WINDOWSVERSION_NT31                      (0x104)
  389. #define DX_WINDOWSVERSION_NT40                      (0x105)
  390. #define DX_WINDOWSVERSION_2000                      (0x106)
  391. #define DX_WINDOWSVERSION_XP                        (0x107)
  392. #define DX_WINDOWSVERSION_VISTA                     (0x108)
  393. #define DX_WINDOWSVERSION_7                         (0x109)
  394. #define DX_WINDOWSVERSION_NT_TYPE                   (0x100)
  395.  
  396. // DirectXのバージョンマクロ
  397. #define DX_DIRECTXVERSION_NON                       (0)
  398. #define DX_DIRECTXVERSION_1                         (0x10000)
  399. #define DX_DIRECTXVERSION_2                         (0x20000)
  400. #define DX_DIRECTXVERSION_3                         (0x30000)
  401. #define DX_DIRECTXVERSION_4                         (0x40000)
  402. #define DX_DIRECTXVERSION_5                         (0x50000)
  403. #define DX_DIRECTXVERSION_6                         (0x60000)
  404. #define DX_DIRECTXVERSION_6_1                       (0x60100)
  405. #define DX_DIRECTXVERSION_7                         (0x70000)
  406. #define DX_DIRECTXVERSION_8                         (0x80000)
  407. #define DX_DIRECTXVERSION_8_1                       (0x80100)
  408.  
  409. // 文字セット
  410. #define DX_CHARSET_DEFAULT                          (0)             // デフォルト文字セット
  411. #define DX_CHARSET_SHFTJIS                          (1)             // 日本語文字セット
  412. #define DX_CHARSET_HANGEUL                          (2)             // 韓国語文字セット
  413. #define DX_CHARSET_BIG5                             (3)             // 繁体文字セット
  414. #define DX_CHARSET_GB2312                           (4)             // 簡体文字セット
  415.  
  416. // MIDIの再生モード定義
  417. #define DX_MIDIMODE_MCI                             (0)             // MCIによる再生
  418. #define DX_MIDIMODE_DM                              (1)             // DirectMusicによる再生
  419.  
  420. // 描画モード定義
  421. #define DX_DRAWMODE_NEAREST                         (0)             // ネアレストネイバー法で描画
  422. #define DX_DRAWMODE_BILINEAR                        (1)             // バイリニア法で描画する
  423. #define DX_DRAWMODE_ANISOTROPIC                     (2)             // 異方性フィルタリング法で描画する
  424. #define DX_DRAWMODE_OTHER                           (3)             // それ以外
  425.  
  426. // フォントのタイプ
  427. #define DX_FONTTYPE_NORMAL                          (0)             // ノーマルフォント
  428. #define DX_FONTTYPE_EDGE                            (1)             // エッジつきフォント
  429. #define DX_FONTTYPE_ANTIALIASING                    (2)             // アンチエイリアスフォント
  430. #define DX_FONTTYPE_ANTIALIASING_EDGE               (3)             // アンチエイリアス&エッジ付きフォント
  431.  
  432. // 描画ブレンドモード定義
  433. #define DX_BLENDMODE_NOBLEND                        (0)             // ノーブレンド
  434. #define DX_BLENDMODE_ALPHA                          (1)             // αブレンド
  435. #define DX_BLENDMODE_ADD                            (2)             // 加算ブレンド
  436. #define DX_BLENDMODE_SUB                            (3)             // 減算ブレンド
  437. #define DX_BLENDMODE_MUL                            (4)             // 乗算ブレンド
  438.    // (内部処理用)
  439. #define DX_BLENDMODE_SUB2                           (5)             // 内部処理用減算ブレンド子1
  440. //#define DX_BLENDMODE_BLINEALPHA                   (7)             // 境界線ぼかし
  441. #define DX_BLENDMODE_XOR                            (6)             // XORブレンド( ソフトウエアレンダリングモードでのみ有効 )
  442. #define DX_BLENDMODE_DESTCOLOR                      (8)             // カラーは更新されない
  443. #define DX_BLENDMODE_INVDESTCOLOR                   (9)             // 描画先の色の反転値を掛ける
  444. #define DX_BLENDMODE_INVSRC                         (10)            // 描画元の色を反転する
  445. #define DX_BLENDMODE_MULA                           (11)            // アルファチャンネル考慮付き乗算ブレンド
  446. #define DX_BLENDMODE_ALPHA_X4                       (12)            // αブレンドの描画元の輝度を最大4倍にできるモード
  447. #define DX_BLENDMODE_ADD_X4                         (13)            // 加算ブレンドの描画元の輝度を最大4倍にできるモード
  448. #define DX_BLENDMODE_SRCCOLOR                       (14)            // 描画元のカラーでそのまま描画される
  449. #define DX_BLENDMODE_HALF_ADD                       (15)            // 半加算ブレンド
  450.  
  451. // 画像合成タイプ
  452. #define DX_BLENDGRAPHTYPE_NORMAL                    (0)             // 通常合成
  453. #define DX_BLENDGRAPHTYPE_WIPE                      (1)             // ワイプ処理
  454. #define DX_BLENDGRAPHTYPE_ALPHA                     (2)             // ブレンド画像のα値と元画像のα値を掛け合わせる
  455.  
  456. // グラフィックフィルタータイプ
  457. #define DX_GRAPH_FILTER_MONO                        (0)             // モノトーンフィルタ
  458. #define DX_GRAPH_FILTER_GAUSS                       (1)             // ガウスフィルタ
  459. #define DX_GRAPH_FILTER_DOWN_SCALE                  (2)             // 縮小フィルタ
  460. #define DX_GRAPH_FILTER_BRIGHT_CLIP                 (3)             // 明るさクリップフィルタ
  461. #define DX_GRAPH_FILTER_HSB                         (4)             // 色相・彩度・明度フィルタ
  462. #define DX_GRAPH_FILTER_INVERT                      (5)             // 階調の反転フィルタ
  463. #define DX_GRAPH_FILTER_LEVEL                       (6)             // レベル補正フィルタ
  464. #define DX_GRAPH_FILTER_TWO_COLOR                   (7)             // 2階調化フィルタ
  465. #define DX_GRAPH_FILTER_GRADIENT_MAP                (8)             // グラデーションマップフィルタ
  466. #define DX_GRAPH_FILTER_PREMUL_ALPHA                (9)             // 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ
  467. #define DX_GRAPH_FILTER_NUM                         (10)
  468.  
  469. // グラフィックブレンドタイプ
  470. #define DX_GRAPH_BLEND_NORMAL                       (0)             // 通常
  471. #define DX_GRAPH_BLEND_RGBA_SELECT_MIX              (1)             // RGBAの要素を選択して合成
  472. #define DX_GRAPH_BLEND_MULTIPLE                     (2)             // 乗算
  473. #define DX_GRAPH_BLEND_DIFFERENCE                   (3)             // 減算
  474. #define DX_GRAPH_BLEND_ADD                          (4)             // 加算
  475. #define DX_GRAPH_BLEND_SCREEN                       (5)             // スクリーン
  476. #define DX_GRAPH_BLEND_OVERLAY                      (6)             // オーバーレイ
  477. #define DX_GRAPH_BLEND_DODGE                        (7)             // 覆い焼き
  478. #define DX_GRAPH_BLEND_BURN                         (8)             // 焼き込み
  479. #define DX_GRAPH_BLEND_DARKEN                       (9)             // 比較(暗)
  480. #define DX_GRAPH_BLEND_LIGHTEN                      (10)            // 比較(明)
  481. #define DX_GRAPH_BLEND_SOFTLIGHT                    (11)            // ソフトライト
  482. #define DX_GRAPH_BLEND_HARDLIGHT                    (12)            // ハードライト
  483. #define DX_GRAPH_BLEND_EXCLUSION                    (13)            // 除外
  484. #define DX_GRAPH_BLEND_NORMAL_ALPHACH               (14)            // αチャンネル付き画像の通常合成
  485. #define DX_GRAPH_BLEND_ADD_ALPHACH                  (15)            // αチャンネル付き画像の加算合成
  486. #define DX_GRAPH_BLEND_MULTIPLE_A_ONLY              (16)            // アルファチャンネルのみの乗算
  487. #define DX_GRAPH_BLEND_NUM                          (17)
  488.  
  489. // DX_GRAPH_BLEND_RGBA_SELECT_MIX 用の色選択用定義
  490. #define DX_RGBA_SELECT_SRC_R                        (0)             // 元画像の赤成分
  491. #define DX_RGBA_SELECT_SRC_G                        (1)             // 元画像の緑成分
  492. #define DX_RGBA_SELECT_SRC_B                        (2)             // 元画像の青成分
  493. #define DX_RGBA_SELECT_SRC_A                        (3)             // 元画像のα成分
  494. #define DX_RGBA_SELECT_BLEND_R                      (4)             // ブレンド画像の赤成分
  495. #define DX_RGBA_SELECT_BLEND_G                      (5)             // ブレンド画像の緑成分
  496. #define DX_RGBA_SELECT_BLEND_B                      (6)             // ブレンド画像の青成分
  497. #define DX_RGBA_SELECT_BLEND_A                      (7)             // ブレンド画像のα成分
  498.  
  499. // ポリゴンカリングモード
  500. #define DX_CULLING_NONE                             (0)             // カリングなし
  501. #define DX_CULLING_LEFT                             (1)             // 背面を左回りでカリング
  502. #define DX_CULLING_RIGHT                            (2)             // 背面を右回りでカリング
  503.  
  504. // クリッピング方向
  505. #define DX_CAMERACLIP_LEFT                          (0x01)          // 画面左方向にクリップ
  506. #define DX_CAMERACLIP_RIGHT                         (0x02)          // 画面右方向にクリップ
  507. #define DX_CAMERACLIP_BOTTOM                        (0x04)          // 画面下方向にクリップ
  508. #define DX_CAMERACLIP_TOP                           (0x08)          // 画面上方向にクリップ
  509. #define DX_CAMERACLIP_BACK                          (0x10)          // 画面後方向にクリップ
  510. #define DX_CAMERACLIP_FRONT                         (0x20)          // 画面前方向にクリップ
  511.  
  512. // MV1モデルの頂点タイプ
  513. #define DX_MV1_VERTEX_TYPE_1FRAME                   (0)             // 1フレームの影響を受ける頂点
  514. #define DX_MV1_VERTEX_TYPE_4FRAME                   (1)             // 1~4フレームの影響を受ける頂点
  515. #define DX_MV1_VERTEX_TYPE_8FRAME                   (2)             // 5~8フレームの影響を受ける頂点
  516. #define DX_MV1_VERTEX_TYPE_FREE_FRAME               (3)             // 9フレーム以上の影響を受ける頂点
  517. #define DX_MV1_VERTEX_TYPE_NMAP_1FRAME              (4)             // 法線マップ用の情報が含まれる1フレームの影響を受ける頂点
  518. #define DX_MV1_VERTEX_TYPE_NMAP_4FRAME              (5)             // 法線マップ用の情報が含まれる1~4フレームの影響を受ける頂点
  519. #define DX_MV1_VERTEX_TYPE_NMAP_8FRAME              (6)             // 法線マップ用の情報が含まれる5~8フレームの影響を受ける頂点
  520. #define DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME          (7)             // 法線マップ用の情報が含まれる9フレーム以上の影響を受ける頂点
  521. #define DX_MV1_VERTEX_TYPE_NUM                      (8)             // 頂点タイプの数
  522.  
  523. // MV1ファイルの保存タイプ
  524. #define MV1_SAVETYPE_MESH                           (0x0001)        // メッシュ情報のみ保存
  525. #define MV1_SAVETYPE_ANIM                           (0x0002)        // アニメーション情報のみ保存
  526. #define MV1_SAVETYPE_NORMAL                         ( MV1_SAVETYPE_MESH | MV1_SAVETYPE_ANIM )   // 通常保存
  527.  
  528. // 描画先画面指定用定義
  529. #define DX_SCREEN_FRONT                             (0xfffffffc)
  530. #define DX_SCREEN_BACK                              (0xfffffffe)
  531. #define DX_SCREEN_WORK                              (0xfffffffd)
  532. #define DX_SCREEN_TEMPFRONT                         (0xfffffffb)
  533.  
  534. #define DX_NONE_GRAPH                               (0xfffffffb)    // グラフィックなしハンドル
  535.  
  536. // グラフィック減色時の画像劣化緩和処理モード
  537. #define DX_SHAVEDMODE_NONE                          (0)             // 画像劣化緩和処理を行わない
  538. #define DX_SHAVEDMODE_DITHER                        (1)             // ディザリング
  539. #define DX_SHAVEDMODE_DIFFUS                        (2)             // 誤差拡散
  540.  
  541. // 画像の保存タイプ
  542. #define DX_IMAGESAVETYPE_BMP                        (0)             // bitmap
  543. #define DX_IMAGESAVETYPE_JPEG                       (1)             // jpeg
  544. #define DX_IMAGESAVETYPE_PNG                        (2)             // Png
  545.  
  546. // サウンド再生形態指定用定義
  547. #define DX_PLAYTYPE_LOOPBIT                         (0x0002)        // ループ再生ビット
  548. #define DX_PLAYTYPE_BACKBIT                         (0x0001)        // バックグラウンド再生ビット
  549.  
  550. #define DX_PLAYTYPE_NORMAL                          (0)                                             // ノーマル再生
  551. #define DX_PLAYTYPE_BACK                            ( DX_PLAYTYPE_BACKBIT )                         // バックグラウンド再生
  552. #define DX_PLAYTYPE_LOOP                            ( DX_PLAYTYPE_LOOPBIT | DX_PLAYTYPE_BACKBIT )   // ループ再生
  553.  
  554. // 動画再生タイプ定義
  555. #define DX_MOVIEPLAYTYPE_BCANCEL                    (0)             // ボタンキャンセルあり
  556. #define DX_MOVIEPLAYTYPE_NORMAL                     (1)             // ボタンキャンセルなし
  557.  
  558. // サウンドのタイプ
  559. #define DX_SOUNDTYPE_NORMAL                         (0)             // ノーマルサウンド形式
  560. #define DX_SOUNDTYPE_STREAMSTYLE                    (1)             // ストリーム風サウンド形式
  561.  
  562. // ストリームサウンド再生データタイプのマクロ
  563. #define DX_SOUNDDATATYPE_MEMNOPRESS                 (0)             // 圧縮された全データは再生が始まる前にサウンドメモリにすべて解凍され、格納される
  564. #define DX_SOUNDDATATYPE_MEMNOPRESS_PLUS            (1)             // 圧縮された全データはシステムメモリに格納され、再生しながら逐次解凍され、最終的にすべてサウンドメモリに格納される(その後システムメモリに存在する圧縮データは破棄される)
  565. #define DX_SOUNDDATATYPE_MEMPRESS                   (2)             // 圧縮された全データはシステムメモリに格納され、再生する部分だけ逐次解凍しながらサウンドメモリに格納する(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
  566. #define DX_SOUNDDATATYPE_FILE                       (3)             // 圧縮されたデータの再生する部分だけファイルから逐次読み込み解凍され、サウンドメモリに格納される(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
  567.  
  568. // 読み込み処理のタイプ
  569. #define DX_READSOUNDFUNCTION_PCM                    (0x0001)        // PCM の読み込み処理
  570. #define DX_READSOUNDFUNCTION_ACM                    (0x0002)        // ACM を使用した読み込み処理
  571. #define DX_READSOUNDFUNCTION_OGG                    (0x0004)        // Ogg Vorbis の読み込み処理
  572. #define DX_READSOUNDFUNCTION_MP3                    (0x0008)        // ACM を使用した MP3 の読み込み処理
  573. #define DX_READSOUNDFUNCTION_DSMP3                  (0x0010)        // DirectShow を使用した MP3 の読み込み処理
  574.  
  575. // マスク透過色モード
  576. #define DX_MASKTRANS_WHITE                          (0)             // マスク画像の白い部分を透過色とする
  577. #define DX_MASKTRANS_BLACK                          (1)             // マスク画像の黒い部分を透過色とする
  578. #define DX_MASKTRANS_NONE                           (2)             // 透過色なし
  579.  
  580. // Zバッファ書き込みモード
  581. #define DX_ZWRITE_MASK                              (0)             // 書き込めないようにマスクする
  582. #define DX_ZWRITE_CLEAR                             (1)             // 書き込めるようにマスクをクリアする
  583.  
  584. // 比較モード
  585. #define DX_CMP_NEVER                                (1)             // FALSE
  586. #define DX_CMP_LESS                                 (2)             // Src <  Dest      DrawAlpha <  TestParam
  587. #define DX_CMP_EQUAL                                (3)             // Src == Dest      DrawAlpha == TestParam
  588. #define DX_CMP_LESSEQUAL                            (4)             // Src <= Dest      DrawAlpha <= TestParam
  589. #define DX_CMP_GREATER                              (5)             // Src >  Dest      DrawAlpha >  TestParam
  590. #define DX_CMP_NOTEQUAL                             (6)             // Src != Dest      DrawAlpha != TestParam
  591. #define DX_CMP_GREATEREQUAL                         (7)             // Src >= Dest      DrawAlpha >= TestParam
  592. #define DX_CMP_ALWAYS                               (8)             // TRUE
  593. #define DX_ZCMP_DEFAULT                             ( DX_CMP_LESSEQUAL )
  594. #define DX_ZCMP_REVERSE                             ( DX_CMP_GREATEREQUAL )
  595.  
  596. // シェーディングモード
  597. #define DX_SHADEMODE_FLAT                           D_D3DSHADE_FLAT
  598. #define DX_SHADEMODE_GOURAUD                        D_D3DSHADE_GOURAUD
  599.  
  600. // フォグモード
  601. #define DX_FOGMODE_NONE                             D_D3DFOG_NONE
  602. #define DX_FOGMODE_EXP                              D_D3DFOG_EXP
  603. #define DX_FOGMODE_EXP2                             D_D3DFOG_EXP2
  604. #define DX_FOGMODE_LINEAR                           D_D3DFOG_LINEAR
  605.  
  606. // マテリアルタイプ
  607. #define DX_MATERIAL_TYPE_NORMAL                     (0)             // 標準マテリアル
  608. #define DX_MATERIAL_TYPE_TOON                       (1)             // トゥーンレンダリング用マテリアル
  609. #define DX_MATERIAL_TYPE_TOON_2                     (2)             // トゥーンレンダリング用マテリアル_タイプ2( MMD互換 )
  610.  
  611. // マテリアルブレンドタイプ
  612. #define DX_MATERIAL_BLENDTYPE_TRANSLUCENT           (0)             // アルファ合成
  613. #define DX_MATERIAL_BLENDTYPE_ADDITIVE              (1)             // 加算
  614. #define DX_MATERIAL_BLENDTYPE_MODULATE              (2)             // 乗算
  615.  
  616. // テクスチャアドレスタイプ
  617. #define DX_TEXADDRESS_WRAP                          D_D3DTADDRESS_WRAP
  618. #define DX_TEXADDRESS_MIRROR                        D_D3DTADDRESS_MIRROR
  619. #define DX_TEXADDRESS_CLAMP                         D_D3DTADDRESS_CLAMP
  620. #define DX_TEXADDRESS_BORDER                        D_D3DTADDRESS_BORDER
  621.  
  622. // 頂点データタイプ
  623. #define DX_VERTEX_TYPE_NORMAL_3D                    (0)             // VERTEX3D構造体形式
  624. #define DX_VERTEX_TYPE_SHADER_3D                    (1)             // VERTEX3DSHADER構造体形式
  625. #define DX_VERTEX_TYPE_NUM                          (2)
  626.  
  627. // インデックスデータタイプ
  628. #define DX_INDEX_TYPE_16BIT                         (0)             // 16bitインデックス
  629.  
  630. // モデルファイル読み込み時の物理演算モード
  631. #define DX_LOADMODEL_PHYSICS_DISABLE                (1)             // 物理演算を使用しない
  632. #define DX_LOADMODEL_PHYSICS_LOADCALC               (0)             // 読み込み時に計算
  633. #define DX_LOADMODEL_PHYSICS_REALTIME               (2)             // 実行時計算
  634.  
  635. // ポリゴン描画タイプ
  636. #define DX_PRIMTYPE_POINTLIST                       D_D3DPT_POINTLIST
  637. #define DX_PRIMTYPE_LINELIST                        D_D3DPT_LINELIST
  638. #define DX_PRIMTYPE_LINESTRIP                       D_D3DPT_LINESTRIP
  639. #define DX_PRIMTYPE_TRIANGLELIST                    D_D3DPT_TRIANGLELIST
  640. #define DX_PRIMTYPE_TRIANGLESTRIP                   D_D3DPT_TRIANGLESTRIP
  641. #define DX_PRIMTYPE_TRIANGLEFAN                     D_D3DPT_TRIANGLEFAN
  642.  
  643. // ライトタイプ
  644. #define DX_LIGHTTYPE_D3DLIGHT_POINT                 D_D3DLIGHT_POINT
  645. #define DX_LIGHTTYPE_D3DLIGHT_SPOT                  D_D3DLIGHT_SPOT
  646. #define DX_LIGHTTYPE_D3DLIGHT_DIRECTIONAL           D_D3DLIGHT_DIRECTIONAL
  647. #define DX_LIGHTTYPE_D3DLIGHT_FORCEDWORD            D_D3DLIGHT_FORCE_DWORD
  648. #define DX_LIGHTTYPE_POINT                          D_D3DLIGHT_POINT
  649. #define DX_LIGHTTYPE_SPOT                           D_D3DLIGHT_SPOT
  650. #define DX_LIGHTTYPE_DIRECTIONAL                    D_D3DLIGHT_DIRECTIONAL
  651.  
  652. // グラフィックイメージフォーマットの定義
  653. #define DX_GRAPHICSIMAGE_FORMAT_3D_RGB16                    (0)     // 16ビットカラー標準
  654. #define DX_GRAPHICSIMAGE_FORMAT_3D_RGB32                    (1)     // 32ビットカラー標準
  655. #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB16              (2)     // αチャンネル付き16ビットカラー
  656. #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB32              (3)     // αチャンネル付き32ビットカラー
  657. #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB16          (4)     // αテスト付き16ビットカラー
  658. #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB32          (5)     // αテスト付き32ビットカラー
  659. #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT1                     (6)     // DXT1
  660. #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT2                     (7)     // DXT2
  661. #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT3                     (8)     // DXT3
  662. #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT4                     (9)     // DXT4
  663. #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT5                     (10)    // DXT5
  664. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB16          (11)    // 描画可能16ビットカラー
  665. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB32          (12)    // 描画可能32ビットカラー
  666. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ALPHA_RGB32    (13)    // 描画可能α付き32ビットカラー
  667. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_I16       (14)    // 描画可能ARGB整数16ビット型カラー
  668. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F16       (15)    // 描画可能ARGB浮動小数点16ビット型カラー
  669. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F32       (16)    // 描画可能ARGB浮動小数点32ビット型カラー
  670. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I8         (17)    // 描画可能1チャンネル整数8ビット型カラー
  671. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I16        (18)    // 描画可能1チャンネル整数16ビット型カラー
  672. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F16        (19)    // 描画可能1チャンネル浮動少数16ビット型カラー
  673. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F32        (20)    // 描画可能1チャンネル浮動少数32ビット型カラー
  674. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I8         (21)    // 描画可能2チャンネル整数8ビット型カラー
  675. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I16        (22)    // 描画可能2チャンネル整数16ビット型カラー
  676. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F16        (23)    // 描画可能2チャンネル浮動少数16ビット型カラー
  677. #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F32        (24)    // 描画可能2チャンネル浮動少数32ビット型カラー
  678. #define DX_GRAPHICSIMAGE_FORMAT_3D_NUM                      (25)
  679. #define DX_GRAPHICSIMAGE_FORMAT_2D                          (26)    // 標準( DirectDrawSurface の場合はこれのみ )
  680. #define DX_GRAPHICSIMAGE_FORMAT_R5G6B5                      (27)    // R5G6B5( MEMIMG 用 )
  681. #define DX_GRAPHICSIMAGE_FORMAT_X8A8R5G6B5                  (28)    // X8A8R5G6B5( MEMIMG 用 )
  682. #define DX_GRAPHICSIMAGE_FORMAT_X8R8G8B8                    (29)    // X8R8G8B8( MEMIMG 用 )
  683. #define DX_GRAPHICSIMAGE_FORMAT_A8R8G8B8                    (30)    // A8R8G8B8( MEMIMG 用 )
  684.  
  685. #define DX_GRAPHICSIMAGE_FORMAT_NUM                         (31)    // グラフィックフォーマットの種類の数
  686.  
  687. // 基本イメージのピクセルフォーマット
  688. #define DX_BASEIMAGE_FORMAT_NORMAL                  (0)         // 普通の画像
  689. #define DX_BASEIMAGE_FORMAT_DXT1                    (1)         // DXT1
  690. #define DX_BASEIMAGE_FORMAT_DXT2                    (2)         // DXT2
  691. #define DX_BASEIMAGE_FORMAT_DXT3                    (3)         // DXT3
  692. #define DX_BASEIMAGE_FORMAT_DXT4                    (4)         // DXT4
  693. #define DX_BASEIMAGE_FORMAT_DXT5                    (5)         // DXT5
  694.  
  695. // ツールバーのボタンの状態
  696. #define TOOLBUTTON_STATE_ENABLE                     (0)         // 入力可能な状態
  697. #define TOOLBUTTON_STATE_PRESSED                    (1)         // 押されている状態
  698. #define TOOLBUTTON_STATE_DISABLE                    (2)         // 入力不可能な状態
  699. #define TOOLBUTTON_STATE_PRESSED_DISABLE            (3)         // 押されている状態で、入力不可能な状態
  700. #define TOOLBUTTON_STATE_NUM                        (4)         // ツールバーのボタンの状態の数
  701.  
  702. // ツールバーのボタンのタイプ
  703. #define TOOLBUTTON_TYPE_NORMAL                      (0)         // 普通のボタン
  704. #define TOOLBUTTON_TYPE_CHECK                       (1)         // 押すごとにON/OFFが切り替わるボタン
  705. #define TOOLBUTTON_TYPE_GROUP                       (2)         // 別の TOOLBUTTON_TYPE_GROUP タイプのボタンが押されるとOFFになるタイプのボタン(グループの区切りは隙間で)
  706. #define TOOLBUTTON_TYPE_SEP                         (3)         // 隙間(ボタンではありません)
  707. #define TOOLBUTTON_TYPE_NUM                         (4)         // ツールバーのボタンのタイプの数
  708.  
  709. // 親メニューのID
  710. #define MENUITEM_IDTOP                              (0xabababab)
  711.  
  712. // メニューに追加する際のタイプ
  713. #define MENUITEM_ADD_CHILD                          (0)             // 指定の項目の子として追加する
  714. #define MENUITEM_ADD_INSERT                         (1)             // 指定の項目と指定の項目より一つ上の項目の間に追加する
  715.  
  716. // メニューの横に付くマークタイプ
  717. #define MENUITEM_MARK_NONE                          (0)             // 何も付け無い
  718. #define MENUITEM_MARK_CHECK                         (1)             // チェックマーク
  719. #define MENUITEM_MARK_RADIO                         (2)             // ラジオボタン
  720.  
  721. // 文字変換タイプ定義
  722. #define DX_NUMMODE_10                               (0)             // 10進数
  723. #define DX_NUMMODE_16                               (1)             // 16進数
  724. #define DX_STRMODE_NOT0                             (2)             // 空きを0で埋めない
  725. #define DX_STRMODE_USE0                             (3)             // 空きを0で埋める
  726.  
  727. // CheckHitKeyAll で調べる入力タイプ
  728. #define DX_CHECKINPUT_KEY                           (0x0001)        // キー入力を調べる
  729. #define DX_CHECKINPUT_PAD                           (0x0002)        // パッド入力を調べる
  730. #define DX_CHECKINPUT_MOUSE                         (0x0004)        // マウスボタン入力を調べる
  731. #define DX_CHECKINPUT_ALL                           (DX_CHECKINPUT_KEY | DX_CHECKINPUT_PAD | DX_CHECKINPUT_MOUSE)   // すべての入力を調べる
  732.  
  733. // パッド入力取得パラメータ
  734. #define DX_INPUT_KEY_PAD1                           (0x1001)        // キー入力とパッド1入力
  735. #define DX_INPUT_PAD1                               (0x0001)        // パッド1入力
  736. #define DX_INPUT_PAD2                               (0x0002)        // パッド2入力
  737. #define DX_INPUT_PAD3                               (0x0003)        // パッド3入力
  738. #define DX_INPUT_PAD4                               (0x0004)        // パッド4入力
  739. #define DX_INPUT_PAD5                               (0x0005)        // パッド5入力
  740. #define DX_INPUT_PAD6                               (0x0006)        // パッド6入力
  741. #define DX_INPUT_PAD7                               (0x0007)        // パッド7入力
  742. #define DX_INPUT_PAD8                               (0x0008)        // パッド8入力
  743. #define DX_INPUT_PAD9                               (0x0009)        // パッド9入力
  744. #define DX_INPUT_PAD10                              (0x000a)        // パッド10入力
  745. #define DX_INPUT_PAD11                              (0x000b)        // パッド11入力
  746. #define DX_INPUT_PAD12                              (0x000c)        // パッド12入力
  747. #define DX_INPUT_PAD13                              (0x000d)        // パッド13入力
  748. #define DX_INPUT_PAD14                              (0x000e)        // パッド14入力
  749. #define DX_INPUT_PAD15                              (0x000f)        // パッド15入力
  750. #define DX_INPUT_PAD16                              (0x0010)        // パッド16入力
  751. #define DX_INPUT_KEY                                (0x1000)        // キー入力
  752.  
  753. // ムービーのサーフェスモード
  754. #define DX_MOVIESURFACE_NORMAL                      (0)
  755. #define DX_MOVIESURFACE_OVERLAY                     (1)
  756. #define DX_MOVIESURFACE_FULLCOLOR                   (2)
  757.  
  758. // パッド入力定義
  759. #define PAD_INPUT_DOWN                              (0x00000001)    // ↓チェックマスク
  760. #define PAD_INPUT_LEFT                              (0x00000002)    // ←チェックマスク
  761. #define PAD_INPUT_RIGHT                             (0x00000004)    // →チェックマスク
  762. #define PAD_INPUT_UP                                (0x00000008)    // ↑チェックマスク
  763. #define PAD_INPUT_A                                 (0x00000010)    // Aボタンチェックマスク
  764. #define PAD_INPUT_B                                 (0x00000020)    // Bボタンチェックマスク
  765. #define PAD_INPUT_C                                 (0x00000040)    // Cボタンチェックマスク
  766. #define PAD_INPUT_X                                 (0x00000080)    // Xボタンチェックマスク
  767. #define PAD_INPUT_Y                                 (0x00000100)    // Yボタンチェックマスク
  768. #define PAD_INPUT_Z                                 (0x00000200)    // Zボタンチェックマスク
  769. #define PAD_INPUT_L                                 (0x00000400)    // Lボタンチェックマスク
  770. #define PAD_INPUT_R                                 (0x00000800)    // Rボタンチェックマスク
  771. #define PAD_INPUT_START                             (0x00001000)    // STARTボタンチェックマスク
  772. #define PAD_INPUT_M                                 (0x00002000)    // Mボタンチェックマスク
  773. #define PAD_INPUT_D                                 (0x00004000)
  774. #define PAD_INPUT_F                                 (0x00008000)
  775. #define PAD_INPUT_G                                 (0x00010000)
  776. #define PAD_INPUT_H                                 (0x00020000)
  777. #define PAD_INPUT_I                                 (0x00040000)
  778. #define PAD_INPUT_J                                 (0x00080000)
  779. #define PAD_INPUT_K                                 (0x00100000)
  780. #define PAD_INPUT_LL                                (0x00200000)
  781. #define PAD_INPUT_N                                 (0x00400000)
  782. #define PAD_INPUT_O                                 (0x00800000)
  783. #define PAD_INPUT_P                                 (0x01000000)
  784. #define PAD_INPUT_RR                                (0x02000000)
  785. #define PAD_INPUT_S                                 (0x04000000)
  786. #define PAD_INPUT_T                                 (0x08000000)
  787. #define PAD_INPUT_U                                 (0x10000000)
  788. #define PAD_INPUT_V                                 (0x20000000)
  789. #define PAD_INPUT_W                                 (0x40000000)
  790. #define PAD_INPUT_XX                                (0x80000000)
  791.  
  792. #define PAD_INPUT_1                                 (0x00000010)
  793. #define PAD_INPUT_2                                 (0x00000020)
  794. #define PAD_INPUT_3                                 (0x00000040)
  795. #define PAD_INPUT_4                                 (0x00000080)
  796. #define PAD_INPUT_5                                 (0x00000100)
  797. #define PAD_INPUT_6                                 (0x00000200)
  798. #define PAD_INPUT_7                                 (0x00000400)
  799. #define PAD_INPUT_8                                 (0x00000800)
  800. #define PAD_INPUT_9                                 (0x00001000)
  801. #define PAD_INPUT_10                                (0x00002000)
  802. #define PAD_INPUT_11                                (0x00004000)
  803. #define PAD_INPUT_12                                (0x00008000)
  804. #define PAD_INPUT_13                                (0x00010000)
  805. #define PAD_INPUT_14                                (0x00020000)
  806. #define PAD_INPUT_15                                (0x00040000)
  807. #define PAD_INPUT_16                                (0x00080000)
  808. #define PAD_INPUT_17                                (0x00100000)
  809. #define PAD_INPUT_18                                (0x00200000)
  810. #define PAD_INPUT_19                                (0x00400000)
  811. #define PAD_INPUT_20                                (0x00800000)
  812. #define PAD_INPUT_21                                (0x01000000)
  813. #define PAD_INPUT_22                                (0x02000000)
  814. #define PAD_INPUT_23                                (0x04000000)
  815. #define PAD_INPUT_24                                (0x08000000)
  816. #define PAD_INPUT_25                                (0x10000000)
  817. #define PAD_INPUT_26                                (0x20000000)
  818. #define PAD_INPUT_27                                (0x40000000)
  819. #define PAD_INPUT_28                                (0x80000000)
  820.  
  821. // マウス入力定義
  822. #define MOUSE_INPUT_LEFT                            (0x0001)            // マウス左ボタン
  823. #define MOUSE_INPUT_RIGHT                           (0x0002)            // マウス右ボタン
  824. #define MOUSE_INPUT_MIDDLE                          (0x0004)            // マウス中央ボタン
  825. #define MOUSE_INPUT_1                               (0x0001)            // マウス1ボタン
  826. #define MOUSE_INPUT_2                               (0x0002)            // マウス2ボタン
  827. #define MOUSE_INPUT_3                               (0x0004)            // マウス3ボタン
  828. #define MOUSE_INPUT_4                               (0x0008)            // マウス4ボタン
  829. #define MOUSE_INPUT_5                               (0x0010)            // マウス5ボタン
  830. #define MOUSE_INPUT_6                               (0x0020)            // マウス6ボタン
  831. #define MOUSE_INPUT_7                               (0x0040)            // マウス7ボタン
  832. #define MOUSE_INPUT_8                               (0x0080)            // マウス8ボタン
  833.  
  834. // キー定義
  835. #define KEY_INPUT_BACK                              D_DIK_BACK          // バックスペースキー
  836. #define KEY_INPUT_TAB                               D_DIK_TAB           // タブキー
  837. #define KEY_INPUT_RETURN                            D_DIK_RETURN        // エンターキー
  838.  
  839. #define KEY_INPUT_LSHIFT                            D_DIK_LSHIFT        // 左シフトキー
  840. #define KEY_INPUT_RSHIFT                            D_DIK_RSHIFT        // 右シフトキー
  841. #define KEY_INPUT_LCONTROL                          D_DIK_LCONTROL      // 左コントロールキー
  842. #define KEY_INPUT_RCONTROL                          D_DIK_RCONTROL      // 右コントロールキー
  843. #define KEY_INPUT_ESCAPE                            D_DIK_ESCAPE        // エスケープキー
  844. #define KEY_INPUT_SPACE                             D_DIK_SPACE         // スペースキー
  845. #define KEY_INPUT_PGUP                              D_DIK_PGUP          // PageUPキー
  846. #define KEY_INPUT_PGDN                              D_DIK_PGDN          // PageDownキー
  847. #define KEY_INPUT_END                               D_DIK_END           // エンドキー
  848. #define KEY_INPUT_HOME                              D_DIK_HOME          // ホームキー
  849. #define KEY_INPUT_LEFT                              D_DIK_LEFT          // 左キー
  850. #define KEY_INPUT_UP                                D_DIK_UP            // 上キー
  851. #define KEY_INPUT_RIGHT                             D_DIK_RIGHT         // 右キー
  852. #define KEY_INPUT_DOWN                              D_DIK_DOWN          // 下キー
  853. #define KEY_INPUT_INSERT                            D_DIK_INSERT        // インサートキー
  854. #define KEY_INPUT_DELETE                            D_DIK_DELETE        // デリートキー
  855.  
  856. #define KEY_INPUT_MINUS                             D_DIK_MINUS         // -キー
  857. #define KEY_INPUT_YEN                               D_DIK_YEN           // ¥キー
  858. #define KEY_INPUT_PREVTRACK                         D_DIK_PREVTRACK     // ^キー
  859. #define KEY_INPUT_PERIOD                            D_DIK_PERIOD        // .キー
  860. #define KEY_INPUT_SLASH                             D_DIK_SLASH         // /キー
  861. #define KEY_INPUT_LALT                              D_DIK_LALT          // 左ALTキー
  862. #define KEY_INPUT_RALT                              D_DIK_RALT          // 右ALTキー
  863. #define KEY_INPUT_SCROLL                            D_DIK_SCROLL        // ScrollLockキー
  864. #define KEY_INPUT_SEMICOLON                         D_DIK_SEMICOLON     // ;キー
  865. #define KEY_INPUT_COLON                             D_DIK_COLON         // :キー
  866. #define KEY_INPUT_LBRACKET                          D_DIK_LBRACKET      // [キー
  867. #define KEY_INPUT_RBRACKET                          D_DIK_RBRACKET      // ]キー
  868. #define KEY_INPUT_AT                                D_DIK_AT            // @キー
  869. #define KEY_INPUT_BACKSLASH                         D_DIK_BACKSLASH     // \キー
  870. #define KEY_INPUT_COMMA                             D_DIK_COMMA         // ,キー
  871. #define KEY_INPUT_KANJI                             D_DIK_KANJI         // 漢字キー
  872. #define KEY_INPUT_CONVERT                           D_DIK_CONVERT       // 変換キー
  873. #define KEY_INPUT_NOCONVERT                         D_DIK_NOCONVERT     // 無変換キー
  874. #define KEY_INPUT_KANA                              D_DIK_KANA          // カナキー
  875. #define KEY_INPUT_APPS                              D_DIK_APPS          // アプリケーションメニューキー
  876. #define KEY_INPUT_CAPSLOCK                          D_DIK_CAPSLOCK      // CaspLockキー
  877. #define KEY_INPUT_SYSRQ                             D_DIK_SYSRQ         // PrintScreenキー
  878. #define KEY_INPUT_PAUSE                             D_DIK_PAUSE         // PauseBreakキー
  879. #define KEY_INPUT_LWIN                              D_DIK_LWIN          // 左Winキー
  880. #define KEY_INPUT_RWIN                              D_DIK_RWIN          // 右Winキー
  881.  
  882. #define KEY_INPUT_NUMLOCK                           D_DIK_NUMLOCK       // テンキー0
  883. #define KEY_INPUT_NUMPAD0                           D_DIK_NUMPAD0       // テンキー0
  884. #define KEY_INPUT_NUMPAD1                           D_DIK_NUMPAD1       // テンキー1
  885. #define KEY_INPUT_NUMPAD2                           D_DIK_NUMPAD2       // テンキー2
  886. #define KEY_INPUT_NUMPAD3                           D_DIK_NUMPAD3       // テンキー3
  887. #define KEY_INPUT_NUMPAD4                           D_DIK_NUMPAD4       // テンキー4
  888. #define KEY_INPUT_NUMPAD5                           D_DIK_NUMPAD5       // テンキー5
  889. #define KEY_INPUT_NUMPAD6                           D_DIK_NUMPAD6       // テンキー6
  890. #define KEY_INPUT_NUMPAD7                           D_DIK_NUMPAD7       // テンキー7
  891. #define KEY_INPUT_NUMPAD8                           D_DIK_NUMPAD8       // テンキー8
  892. #define KEY_INPUT_NUMPAD9                           D_DIK_NUMPAD9       // テンキー9
  893. #define KEY_INPUT_MULTIPLY                          D_DIK_MULTIPLY      // テンキー*キー
  894. #define KEY_INPUT_ADD                               D_DIK_ADD           // テンキー+キー
  895. #define KEY_INPUT_SUBTRACT                          D_DIK_SUBTRACT      // テンキー-キー
  896. #define KEY_INPUT_DECIMAL                           D_DIK_DECIMAL       // テンキー.キー
  897. #define KEY_INPUT_DIVIDE                            D_DIK_DIVIDE        // テンキー/キー
  898. #define KEY_INPUT_NUMPADENTER                       D_DIK_NUMPADENTER   // テンキーのエンターキー
  899.  
  900. #define KEY_INPUT_F1                                D_DIK_F1            // F1キー
  901. #define KEY_INPUT_F2                                D_DIK_F2            // F2キー
  902. #define KEY_INPUT_F3                                D_DIK_F3            // F3キー
  903. #define KEY_INPUT_F4                                D_DIK_F4            // F4キー
  904. #define KEY_INPUT_F5                                D_DIK_F5            // F5キー
  905. #define KEY_INPUT_F6                                D_DIK_F6            // F6キー
  906. #define KEY_INPUT_F7                                D_DIK_F7            // F7キー
  907. #define KEY_INPUT_F8                                D_DIK_F8            // F8キー
  908. #define KEY_INPUT_F9                                D_DIK_F9            // F9キー
  909. #define KEY_INPUT_F10                               D_DIK_F10           // F10キー
  910. #define KEY_INPUT_F11                               D_DIK_F11           // F11キー
  911. #define KEY_INPUT_F12                               D_DIK_F12           // F12キー
  912.  
  913. #define KEY_INPUT_A                                 D_DIK_A         // Aキー
  914. #define KEY_INPUT_B                                 D_DIK_B         // Bキー
  915. #define KEY_INPUT_C                                 D_DIK_C         // Cキー
  916. #define KEY_INPUT_D                                 D_DIK_D         // Dキー
  917. #define KEY_INPUT_E                                 D_DIK_E         // Eキー
  918. #define KEY_INPUT_F                                 D_DIK_F         // Fキー
  919. #define KEY_INPUT_G                                 D_DIK_G         // Gキー
  920. #define KEY_INPUT_H                                 D_DIK_H         // Hキー
  921. #define KEY_INPUT_I                                 D_DIK_I         // Iキー
  922. #define KEY_INPUT_J                                 D_DIK_J         // Jキー
  923. #define KEY_INPUT_K                                 D_DIK_K         // Kキー
  924. #define KEY_INPUT_L                                 D_DIK_L         // Lキー
  925. #define KEY_INPUT_M                                 D_DIK_M         // Mキー
  926. #define KEY_INPUT_N                                 D_DIK_N         // Nキー
  927. #define KEY_INPUT_O                                 D_DIK_O         // Oキー
  928. #define KEY_INPUT_P                                 D_DIK_P         // Pキー
  929. #define KEY_INPUT_Q                                 D_DIK_Q         // Qキー
  930. #define KEY_INPUT_R                                 D_DIK_R         // Rキー
  931. #define KEY_INPUT_S                                 D_DIK_S         // Sキー
  932. #define KEY_INPUT_T                                 D_DIK_T         // Tキー
  933. #define KEY_INPUT_U                                 D_DIK_U         // Uキー
  934. #define KEY_INPUT_V                                 D_DIK_V         // Vキー
  935. #define KEY_INPUT_W                                 D_DIK_W         // Wキー
  936. #define KEY_INPUT_X                                 D_DIK_X         // Xキー
  937. #define KEY_INPUT_Y                                 D_DIK_Y         // Yキー
  938. #define KEY_INPUT_Z                                 D_DIK_Z         // Zキー
  939.  
  940. #define KEY_INPUT_0                                 D_DIK_0         // 0キー
  941. #define KEY_INPUT_1                                 D_DIK_1         // 1キー
  942. #define KEY_INPUT_2                                 D_DIK_2         // 2キー
  943. #define KEY_INPUT_3                                 D_DIK_3         // 3キー
  944. #define KEY_INPUT_4                                 D_DIK_4         // 4キー
  945. #define KEY_INPUT_5                                 D_DIK_5         // 5キー
  946. #define KEY_INPUT_6                                 D_DIK_6         // 6キー
  947. #define KEY_INPUT_7                                 D_DIK_7         // 7キー
  948. #define KEY_INPUT_8                                 D_DIK_8         // 8キー
  949. #define KEY_INPUT_9                                 D_DIK_9         // 9キー
  950.  
  951. // アスキーコントロールキーコード
  952. #define CTRL_CODE_BS                                (0x08)              // バックスペース
  953. #define CTRL_CODE_TAB                               (0x09)              // タブ
  954. #define CTRL_CODE_CR                                (0x0d)              // 改行
  955. #define CTRL_CODE_DEL                               (0x10)              // DELキー
  956.  
  957. #define CTRL_CODE_COPY                              (0x03)              // コピー
  958. #define CTRL_CODE_PASTE                             (0x16)              // ペースト
  959. #define CTRL_CODE_CUT                               (0x18)              // カット
  960. #define CTRL_CODE_ALL                               (0x01)              // 全て選択
  961.  
  962. #define CTRL_CODE_LEFT                              (0x1d)              // ←キー
  963. #define CTRL_CODE_RIGHT                             (0x1c)              // →キー
  964. #define CTRL_CODE_UP                                (0x1e)              // ↑キー
  965. #define CTRL_CODE_DOWN                              (0x1f)              // ↓キー
  966.  
  967. #define CTRL_CODE_HOME                              (0x1a)              // HOMEボタン
  968. #define CTRL_CODE_END                               (0x19)              // ENDボタン
  969. #define CTRL_CODE_PAGE_UP                           (0x17)              // PAGE UP
  970. #define CTRL_CODE_PAGE_DOWN                         (0x15)              // PAGE DOWN
  971.  
  972. #define CTRL_CODE_ESC                               (0x1b)              // ESCキー
  973. #define CTRL_CODE_CMP                               (0x20)              // 制御コード敷居値
  974.  
  975. // SetGraphMode 戻り値定義
  976. #define DX_CHANGESCREEN_OK                          (0)                 // 画面変更は成功した
  977. #define DX_CHANGESCREEN_RETURN                      (-1)                // 画面の変更は失敗し、元の画面モードに戻された
  978. #define DX_CHANGESCREEN_DEFAULT                     (-2)                // 画面の変更は失敗しデフォルトの画面モードに変更された
  979. #define DX_CHANGESCREEN_REFRESHNORMAL               (-3)                // 画面の変更は成功したが、リフレッシュレートの変更は失敗した
  980.  
  981. // ストリームデータ読み込み処理コード簡略化関連
  982. #define STTELL( st )                                ((st)->ReadShred.Tell( (st)->DataPoint ))
  983. #define STSEEK( st, pos, type )                     ((st)->ReadShred.Seek( (st)->DataPoint, (pos), (type) ))
  984. #define STREAD( buf, length, num, st )              ((st)->ReadShred.Read( (buf), (length), (num), (st)->DataPoint ))
  985. #define STWRITE( buf, length, num, st )             ((st)->ReadShred.Write( (buf), (length), (num), (st)->DataPoint ))
  986. #define STEOF( st )                                 ((st)->ReadShred.Eof( (st)->DataPoint ))
  987. #define STCLOSE( st )                               ((st)->ReadShred.Close( (st)->DataPoint ))
  988.  
  989. // ストリームデータ制御のシークタイプ定義
  990. #define STREAM_SEEKTYPE_SET                         (SEEK_SET)
  991. #define STREAM_SEEKTYPE_END                         (SEEK_END)
  992. #define STREAM_SEEKTYPE_CUR                         (SEEK_CUR)
  993.  
  994. // グラフィックロード時のイメージタイプ
  995. #define LOADIMAGE_TYPE_FILE                         (0)             // イメージはファイルである
  996. #define LOADIMAGE_TYPE_MEM                          (1)             // イメージはメモリである
  997. #define LOADIMAGE_TYPE_NONE                         (-1)            // イメージは無い
  998.  
  999. // DrawPreparation 関数に渡すフラグ
  1000. #define DRAWPREP_TRANS                              (0x0001)
  1001. #define DRAWPREP_VECTORINT                          (0x0002)
  1002. #define DRAWPREP_GOURAUDSHADE                       (0x0008)
  1003. #define DRAWPREP_PERSPECTIVE                        (0x0010)
  1004. #define DRAWPREP_DIFFUSERGB                         (0x0020)
  1005. #define DRAWPREP_DIFFUSEALPHA                       (0x0040)
  1006. #define DRAWPREP_FOG                                (0x0080)
  1007. #define DRAWPREP_NOBLENDSETTING                     (0x0100)
  1008. #define DRAWPREP_LIGHTING                           (0x0200)
  1009. #define DRAWPREP_SPECULAR                           (0x0400)
  1010. #define DRAWPREP_3D                                 (0x0800)
  1011. #define DRAWPREP_TEXADDRESS                         (0x1000)
  1012. #define DRAWPREP_NOTSHADERRESET                     (0x2000)
  1013. #define DRAWPREP_CULLING                            (0x4000)
  1014.  
  1015.  
  1016. #ifndef DX_NON_NETWORK
  1017.  
  1018. // HTTP エラー
  1019. #define HTTP_ERR_SERVER                             (0)             // サーバーエラー
  1020. #define HTTP_ERR_NOTFOUND                           (1)             // ファイルが見つからなかった
  1021. #define HTTP_ERR_MEMORY                             (2)             // メモリ確保の失敗
  1022. #define HTTP_ERR_LOST                               (3)             // 途中で切断された
  1023. #define HTTP_ERR_NONE                               (-1)            // エラーは報告されていない
  1024.  
  1025. // HTTP 処理の結果
  1026. #define HTTP_RES_COMPLETE                           (0)             // 処理完了
  1027. #define HTTP_RES_STOP                               (1)             // 処理中止
  1028. #define HTTP_RES_ERROR                              (2)             // エラー終了
  1029. #define HTTP_RES_NOW                                (-1)            // 現在進行中
  1030.  
  1031. #endif // DX_NON_NETWORK
  1032.  
  1033. #define DX_DEFINE_END
  1034.  
  1035. // データ型定義-------------------------------------------------------------------
  1036.  
  1037. namespace DxLib
  1038. {
  1039.  
  1040. #define DX_STRUCT_START
  1041.  
  1042. // IME入力文字列の描画に必要な情報の内の文節情報
  1043. typedef struct tagIMEINPUTCLAUSEDATA
  1044. {
  1045.     int                     Position ;              // 何バイト目から
  1046.     int                     Length ;                // 何バイトか
  1047. } IMEINPUTCLAUSEDATA, *LPIMEINPUTCLAUSEDATA ;
  1048.  
  1049. // IME入力文字列の描画に必要な情報
  1050. typedef struct tagIMEINPUTDATA
  1051. {
  1052.     const TCHAR *               InputString ;           // 入力中の文字列
  1053.  
  1054.     int                         CursorPosition ;        // カーソルの入力文字列中の位置(バイト単位)
  1055.  
  1056.     const IMEINPUTCLAUSEDATA *  ClauseData ;            // 文節情報
  1057.     int                         ClauseNum ;             // 文節情報の数
  1058.     int                         SelectClause ;          // 選択中の分節( -1 の場合はどの文節にも属していない( 末尾にカーソルがある ) )
  1059.  
  1060.     int                         CandidateNum ;          // 変換候補の数( 0の場合は変換中ではない )
  1061.     const TCHAR **              CandidateList ;         // 変換候補文字列リスト( 例:n番目の候補を描画する場合  DrawString( 0, 0, data.CandidateList[ n ], GetColor(255,255,255) ); )
  1062.     int                         SelectCandidate ;       // 選択中の変換候補
  1063.  
  1064.     int                         ConvertFlag ;           // 文字変換中かどうか( TRUE:変換中  FALSE:変換中ではない( 文字単位でカーソルが移動できる状態 ) )
  1065. } IMEINPUTDATA, *LPIMEINPUTDATA ;
  1066.  
  1067. // タイムデータ型
  1068. typedef struct tagDATEDATA
  1069. {
  1070.     int                     Year ;                          // 年
  1071.     int                     Mon ;                           // 月
  1072.     int                     Day ;                           // 日
  1073.     int                     Hour ;                          // 時間
  1074.     int                     Min ;                           // 分
  1075.     int                     Sec ;                           // 秒
  1076. } DATEDATA, *LPDATEDATA ;
  1077.  
  1078. // 画面モード情報データ型
  1079. typedef struct tagDISPLAYMODEDATA
  1080. {
  1081.     int                     Width ;             // 水平解像度
  1082.     int                     Height ;            // 垂直解像度
  1083.     int                     ColorBitDepth ;     // 色ビット深度
  1084.     int                     RefreshRate ;       // リフレッシュレート( -1 の場合は規定値 )
  1085. } DISPLAYMODEDATA, *LPDISPLAYMODEDATA ;
  1086.  
  1087. // ファイル情報構造体
  1088. typedef struct tagFILEINFO
  1089. {
  1090.     TCHAR                   Name[260] ;          // オブジェクト名
  1091.     int                     DirFlag ;           // ディレクトリかどうか( TRUE:ディレクトリ  FALSE:ファイル )
  1092.     LONGLONG                Size ;              // サイズ
  1093.     DATEDATA                CreationTime ;      // 作成時刻
  1094.     DATEDATA                LastWriteTime ;     // 最終更新時刻
  1095. } FILEINFO, *LPFILEINFO ;
  1096.  
  1097. #ifndef DX_NOTUSE_DRAWFUNCTION
  1098.  
  1099. // 行列構造体
  1100. typedef struct tagMATRIX
  1101. {
  1102.     float                   m[4][4] ;
  1103. } MATRIX, *LPMATRIX ;
  1104.  
  1105. // ベクトルデータ型
  1106. typedef struct tagVECTOR
  1107. {
  1108.     float                   x, y, z ;
  1109. } VECTOR, *LPVECTOR, XYZ, *LPXYZ ;
  1110.  
  1111. // FLOAT2個データ型
  1112. typedef struct tagFLOAT2
  1113. {
  1114.     float                   u, v ;
  1115. } UV ;
  1116.  
  1117. // float 型のカラー値
  1118. typedef struct tagCOLOR_F
  1119. {
  1120.     float                   r, g, b, a ;
  1121. } COLOR_F, *LPCOLOR_F ;
  1122.  
  1123. // unsigned char 型のカラー値
  1124. typedef struct tagCOLOR_U8
  1125. {
  1126.     BYTE                    b, g, r, a ;
  1127. } COLOR_U8 ;
  1128.  
  1129. // FLOAT4個データ型
  1130. typedef struct tagFLOAT4
  1131. {
  1132.     float                   x, y, z, w ;
  1133. } FLOAT4, *LPFLOAT4 ;
  1134.  
  1135. // INT4個データ型
  1136. typedef struct tagINT4
  1137. {
  1138.     int                     x, y, z, w ;
  1139. } INT4 ;
  1140.  
  1141. // 2D描画用頂点構造体(テクスチャ無し)
  1142. typedef struct tagVERTEX_NOTEX_2D
  1143. {
  1144.     VECTOR                  pos ;
  1145.     float                   rhw ;
  1146.     int                     color ;
  1147. } VERTEX_NOTEX_2D, *LPVERTEX_NOTEX_2D ;
  1148.  
  1149. // 主に2D描画に使用する頂点データ型
  1150. typedef struct tagVERTEX_2D
  1151. {
  1152.     VECTOR                  pos ;
  1153.     float                   rhw ;
  1154.     int                     color ;
  1155.     float                   u, v ;
  1156. } VERTEX_2D, *LPVERTEX_2D ;
  1157.  
  1158. // 2D描画に使用する頂点データ型(DrawPrimitive2D用)
  1159. typedef struct tagVERTEX2D
  1160. {
  1161.     VECTOR                  pos ;
  1162.     float                   rhw ;
  1163.     COLOR_U8                dif ;
  1164.     float                   u, v ;
  1165. } VERTEX2D, *LPVERTEX2D ;
  1166.  
  1167. // 2D描画に使用する頂点データ型(DrawPrimitive2DToShader用)
  1168. typedef struct tagVERTEX2DSHADER
  1169. {
  1170.     VECTOR                  pos ;
  1171.     float                   rhw ;
  1172.     COLOR_U8                dif ;
  1173.     COLOR_U8                spc ;
  1174.     float                   u, v ;
  1175.     float                   su, sv ;
  1176. } VERTEX2DSHADER, *LPVERTEX2DSHADER ;
  1177.  
  1178. // 2D描画に使用する頂点データ型(公開用)
  1179. typedef struct tagVERTEX
  1180. {
  1181.     float                   x, y ;
  1182.     float                   u, v ;
  1183.     unsigned char           b, g, r, a ;
  1184. } VERTEX ;
  1185.  
  1186. // 3D描画に使用する頂点データ型( テクスチャなし )( 旧バージョンのもの )
  1187. typedef struct tagVERTEX_NOTEX_3D
  1188. {
  1189.     VECTOR                  pos ;
  1190.     unsigned char           b, g, r, a ;
  1191. } VERTEX_NOTEX_3D, *LPVERTEX_NOTEX_3D ;
  1192.  
  1193. // 3D描画に使用する頂点データ型( 旧バージョンのもの )
  1194. typedef struct tagVERTEX_3D
  1195. {
  1196.     VECTOR                  pos ;
  1197.     unsigned char           b, g, r, a ;
  1198.     float                   u, v ;
  1199. } VERTEX_3D, *LPVERTEX_3D ;
  1200.  
  1201. // 3D描画に使用する頂点データ型
  1202. typedef struct tagVERTEX3D
  1203. {
  1204.     VECTOR                  pos ;                       // 座標
  1205.     VECTOR                  norm ;                      // 法線
  1206.     COLOR_U8                dif ;                       // ディフューズカラー
  1207.     COLOR_U8                spc ;                       // スペキュラカラー
  1208.     float                   u, v ;                      // テクスチャ座標
  1209.     float                   su, sv ;                    // 補助テクスチャ座標
  1210. } VERTEX3D, *LPVERTEX3D ;
  1211.  
  1212. // 3D描画に使用する頂点データ型( DrawPrimitive3DToShader用 )
  1213. // 注意…メンバ変数に追加があるかもしれませんので、宣言時の初期化( VERTEX3DSHADER Vertex = { 0.0f, 0.0f, ... というようなもの )はしない方が良いです
  1214. typedef struct tagVERTEX3DSHADER
  1215. {
  1216.     VECTOR                  pos ;                       // 座標
  1217.     FLOAT4                  spos ;                      // 補助座標
  1218.     VECTOR                  norm ;                      // 法線
  1219.     VECTOR                  tan ;                       // 接線
  1220.     VECTOR                  binorm ;                    // 従法線
  1221.     COLOR_U8                dif ;                       // ディフューズカラー
  1222.     COLOR_U8                spc ;                       // スペキュラカラー
  1223.     float                   u, v ;                      // テクスチャ座標
  1224.     float                   su, sv ;                    // 補助テクスチャ座標
  1225. } VERTEX3DSHADER, *LPVERTEX3DSHADER ;
  1226.  
  1227. // ライトパラメータ
  1228. typedef struct tagLIGHTPARAM
  1229. {
  1230.     int                     LightType ;                 // ライトのタイプ( DX_LIGHTTYPE_D3DLIGHT_POINT 等 )
  1231.     COLOR_F                 Diffuse ;                   // ディフューズカラー
  1232.     COLOR_F                 Specular ;                  // スペキュラカラー
  1233.     COLOR_F                 Ambient ;                   // アンビエント色
  1234.     VECTOR                  Position ;                  // 位置
  1235.     VECTOR                  Direction ;                 // 方向
  1236.     float                   Range ;                     // 有効距離
  1237.     float                   Falloff ;                   // フォールオフ 1.0f にしておくのが好ましい
  1238.     float                   Attenuation0 ;              // 距離による減衰係数0
  1239.     float                   Attenuation1 ;              // 距離による減衰係数1
  1240.     float                   Attenuation2 ;              // 距離による減衰係数2
  1241.     float                   Theta ;                     // スポットライトの内部コーンの照明角度( ラジアン )
  1242.     float                   Phi ;                       // スポットライトの外部コーンの照明角度
  1243. } LIGHTPARAM ;
  1244.  
  1245. // マテリアルパラメータ
  1246. typedef struct tagMATERIALPARAM
  1247. {
  1248.     COLOR_F                 Diffuse ;                   // ディフューズカラー
  1249.     COLOR_F                 Ambient ;                   // アンビエントカラー
  1250.     COLOR_F                 Specular ;                  // スペキュラカラー
  1251.     COLOR_F                 Emissive ;                  // エミッシブカラー
  1252.     float                   Power ;                     // スペキュラハイライトの鮮明度
  1253. } MATERIALPARAM ;
  1254.  
  1255. // ラインヒットチェック結果格納用構造体
  1256. typedef struct tagHITRESULT_LINE
  1257. {
  1258.     int                     HitFlag ;                   // 当たったかどうか( 1:当たった  0:当たらなかった )
  1259.     VECTOR                  Position ;                  // 当たった座標
  1260. } HITRESULT_LINE ;
  1261.  
  1262. // コリジョン結果代入用ポリゴン
  1263. typedef struct tagMV1_COLL_RESULT_POLY
  1264. {
  1265.     int                     HitFlag ;                           // ( MV1CollCheck_Line でのみ有効 )ヒットフラグ( 1:ヒットした  0:ヒットしなかった )
  1266.     VECTOR                  HitPosition ;                       // ( MV1CollCheck_Line でのみ有効 )ヒット座標
  1267.  
  1268.     int                     FrameIndex ;                        // 当たったポリゴンが含まれるフレームの番号
  1269.     int                     PolygonIndex ;                      // 当たったポリゴンの番号
  1270.     int                     MaterialIndex ;                     // 当たったポリゴンが使用しているマテリアルの番号
  1271.     VECTOR                  Position[ 3 ] ;                     // 当たったポリゴンを形成する三点の座標
  1272.     VECTOR                  Normal ;                            // 当たったポリゴンの法線
  1273. } MV1_COLL_RESULT_POLY ;
  1274.  
  1275. // コリジョン結果代入用ポリゴン配列
  1276. typedef struct tagMV1_COLL_RESULT_POLY_DIM
  1277. {
  1278.     int                     HitNum ;                            // ヒットしたポリゴンの数
  1279.     MV1_COLL_RESULT_POLY *  Dim ;                               // ヒットしたポリゴンの配列( HitNum個分存在する )
  1280. } MV1_COLL_RESULT_POLY_DIM ;
  1281.  
  1282. // 参照用頂点構造体
  1283. typedef struct tagMV1_REF_VERTEX
  1284. {
  1285.     VECTOR                  Position ;                          // 位置
  1286.     VECTOR                  Normal ;                            // 法線
  1287.     UV                      TexCoord[ 2 ] ;                     // テクスチャ座標
  1288.     COLOR_U8                DiffuseColor ;                      // ディフューズカラー
  1289.     COLOR_U8                SpecularColor ;                     // スペキュラカラー
  1290. } MV1_REF_VERTEX ;
  1291.  
  1292. // 参照用ポリゴン構造体
  1293. typedef struct tagMV1_REF_POLYGON
  1294. {
  1295.     unsigned short          FrameIndex ;                        // このポリゴンが属しているフレーム
  1296.     unsigned short          MaterialIndex ;                     // 使用しているマテリアル
  1297.     int                     VIndexTarget ;                      // VIndex が指すインデックスの参照先( 1:フレーム  0:モデル全体 )
  1298.     int                     VIndex[ 3 ] ;                       // 3角形ポリゴンを成す参照頂点のインデックス
  1299.     VECTOR                  MinPosition ;                       // ポリゴンを成す頂点座標の最小値
  1300.     VECTOR                  MaxPosition ;                       // ポリゴンを成す頂点座標の最大値
  1301. } MV1_REF_POLYGON ;
  1302.  
  1303. // 参照用ポリゴンデータ構造体
  1304. typedef struct tagMV1_REF_POLYGONLIST
  1305. {
  1306.     int                     PolygonNum ;                        // 参照用ポリゴンの数
  1307.     int                     VertexNum ;                         // 頂点の数
  1308.     VECTOR                  MinPosition ;                       // 頂点座標の最小値
  1309.     VECTOR                  MaxPosition ;                       // 頂点座標の最大値
  1310.     MV1_REF_POLYGON *       Polygons ;                          // 参照用ポリゴン配列
  1311.     MV1_REF_VERTEX *        Vertexs ;                           // 参照用頂点配列
  1312. } MV1_REF_POLYGONLIST ;
  1313.  
  1314. #endif // DX_NOTUSE_DRAWFUNCTION
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321. // ストリームデータ制御用関数ポインタ構造体タイプ2
  1322. typedef struct tagSTREAMDATASHREDTYPE2
  1323. {
  1324.     DWORD_PTR               (*Open      )( const TCHAR *Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag ) ;
  1325.     int                     (*Close     )( DWORD_PTR Handle ) ;
  1326.     long                    (*Tell      )( DWORD_PTR Handle ) ;
  1327.     int                     (*Seek      )( DWORD_PTR Handle, long SeekPoint, int SeekType ) ;
  1328.     size_t                  (*Read      )( void *Buffer, size_t BlockSize, size_t DataNum, DWORD_PTR Handle ) ;
  1329.     int                     (*Eof       )( DWORD_PTR Handle ) ;
  1330.     int                     (*IdleCheck )( DWORD_PTR Handle ) ;
  1331.     int                     (*ChDir     )( const TCHAR *Path ) ;
  1332.     int                     (*GetDir    )( TCHAR *Buffer ) ;
  1333.     DWORD_PTR               (*FindFirst )( const TCHAR *FilePath, FILEINFO *Buffer ) ;      // 戻り値: -1=エラー  -1以外=FindHandle
  1334.     int                     (*FindNext  )( DWORD_PTR FindHandle, FILEINFO *Buffer ) ;           // 戻り値: -1=エラー  0=成功
  1335.     int                     (*FindClose )( DWORD_PTR FindHandle ) ;                         // 戻り値: -1=エラー  0=成功
  1336. } STREAMDATASHREDTYPE2 ;
  1337.  
  1338. // ストリームデータ制御用関数ポインタ構造体
  1339. typedef struct tagSTREAMDATASHRED
  1340. {
  1341.     long                    (*Tell      )( void *StreamDataPoint ) ;
  1342.     int                     (*Seek      )( void *StreamDataPoint, long SeekPoint, int SeekType ) ;
  1343.     size_t                  (*Read      )( void *Buffer, size_t BlockSize, size_t DataNum, void *StreamDataPoint ) ;
  1344. //  size_t                  (*Write     )( void *Buffer, size_t BlockSize, size_t DataNum, void *StreamDataPoint ) ;
  1345.     int                     (*Eof       )( void *StreamDataPoint ) ;
  1346.     int                     (*IdleCheck )( void *StreamDataPoint ) ;
  1347.     int                     (*Close     )( void *StreamDataPoint ) ;
  1348. } STREAMDATASHRED, *LPSTREAMDATASHRED ;
  1349.  
  1350. // ストリームデータ制御用データ構造体
  1351. typedef struct tagSTREAMDATA
  1352. {
  1353.     STREAMDATASHRED         ReadShred ;
  1354.     void                    *DataPoint ;
  1355. } STREAMDATA ;
  1356.  
  1357.  
  1358.  
  1359.  
  1360. #ifndef DX_NOTUSE_DRAWFUNCTION
  1361.  
  1362. // パレット情報構造体
  1363. typedef struct tagCOLORPALETTEDATA
  1364. {
  1365.     unsigned char           Blue ;
  1366.     unsigned char           Green ;
  1367.     unsigned char           Red ;
  1368.     unsigned char           Alpha ;
  1369. } COLORPALETTEDATA ;
  1370.  
  1371. // カラー構造情報構造体
  1372. typedef struct tagCOLORDATA
  1373. {
  1374.     unsigned char           Format ;                                        // フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 )
  1375.  
  1376.     unsigned char           ChannelNum ;                                    // チャンネル数
  1377.     unsigned char           ChannelBitDepth ;                               // 1チャンネル辺りのビット深度
  1378.     unsigned char           FloatTypeFlag ;                                 // 浮動小数点型かどうか( TRUE:浮動小数点型  FALSE:整数型 )
  1379.     unsigned char           PixelByte ;                                     // 1ピクセルあたりのバイト数
  1380.  
  1381.     // 以下は ChannelNum 又は ChannelBitDepth が 0 の時のみ有効
  1382.     unsigned char           ColorBitDepth ;                                 // ビット深度
  1383.     unsigned char           NoneLoc, NoneWidth ;                            // 使われていないビットのアドレスと幅
  1384.     unsigned char           RedWidth, GreenWidth, BlueWidth, AlphaWidth ;   // 各色のビット幅
  1385.     unsigned char           RedLoc  , GreenLoc  , BlueLoc  , AlphaLoc   ;   // 各色の配置されているビットアドレス
  1386.     unsigned int            RedMask , GreenMask , BlueMask , AlphaMask  ;   // 各色のビットマスク
  1387.     unsigned int            NoneMask ;                                      // 使われていないビットのマスク
  1388.     COLORPALETTEDATA        Palette[ 256 ] ;                                // パレット( ColorBitDepth が8以下の場合のみ有効 )
  1389. } COLORDATA, *LPCOLORDATA ;
  1390.  
  1391. // 基本イメージデータ構造体
  1392. typedef struct tagBASEIMAGE
  1393. {
  1394.     COLORDATA               ColorData ;                         // 色情報
  1395.     int                     Width, Height, Pitch ;              // 幅、高さ、ピッチ
  1396.     void                    *GraphData ;                        // グラフィックイメージ
  1397.     int                     MipMapCount ;                       // ミップマップの数
  1398. } BASEIMAGE, GRAPHIMAGE, *LPGRAPHIMAGE ;
  1399.  
  1400. // ラインデータ型
  1401. typedef struct tagLINEDATA
  1402. {
  1403.     int                     x1, y1, x2, y2 ;                    // 座標
  1404.     int                     color ;                             // 色
  1405.     int                     pal ;                               // パラメータ
  1406. } LINEDATA, *LPLINEDATA ;
  1407.  
  1408. // 座標データ型
  1409. typedef struct tagPOINTDATA
  1410. {
  1411.     int                     x, y ;                              // 座標
  1412.     int                     color ;                             // 色
  1413.     int                     pal ;                               // パラメータ
  1414. } POINTDATA, *LPPOINTDATA ;
  1415.  
  1416. // イメージフォーマットデータ
  1417. typedef struct tagIMAGEFORMATDESC
  1418. {
  1419.     unsigned char           TextureFlag ;                   // テクスチャか、フラグ( TRUE:テクスチャ  FALSE:標準サーフェス )
  1420.     unsigned char           AlphaChFlag ;                   // αチャンネルはあるか、フラグ    ( TRUE:ある  FALSE:ない )
  1421.     unsigned char           DrawValidFlag ;                 // 描画可能か、フラグ( TRUE:可能  FALSE:不可能 )
  1422.     unsigned char           SystemMemFlag ;                 // システムメモリ上に存在しているか、フラグ( TRUE:システムメモリ上  FALSE:VRAM上 )( 標準サーフェスの時のみ有効 )
  1423.     unsigned char           UseManagedTextureFlag ;         // マネージドテクスチャを使用するか、フラグ
  1424.  
  1425.     unsigned char           BaseFormat ;                    // 基本フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 )
  1426.     unsigned char           MipMapCount ;                   // ミップマップの数
  1427.     unsigned char           AlphaTestFlag ;                 // αテストチャンネルはあるか、フラグ( TRUE:ある  FALSE:ない )( テクスチャの場合のみ有効 )
  1428.     unsigned char           FloatTypeFlag ;                 // 浮動小数点型かどうか
  1429.     unsigned char           ColorBitDepth ;                 // 色深度( テクスチャの場合のみ有効 )
  1430.     unsigned char           ChannelNum ;                    // チャンネルの数
  1431.     unsigned char           ChannelBitDepth ;               // 1チャンネル辺りのビット深度( テクスチャの場合のみ有効、0 の場合は ColorBitDepth が使用される )
  1432.     unsigned char           BlendGraphFlag ;                // ブレンド用画像か、フラグ
  1433.     unsigned char           UsePaletteFlag ;                // パレットを使用しているか、フラグ( SystemMemFlag が TRUE の場合のみ有効 )
  1434.  
  1435.     unsigned char           MSSamples ;                     // マルチサンプリング数( 描画対象の場合使用 )
  1436.     unsigned char           MSQuality ;                     // マルチサンプリングクオリティ( 描画対象の場合使用 )
  1437. } IMAGEFORMATDESC ;
  1438.  
  1439. #endif // DX_NOTUSE_DRAWFUNCTION
  1440.  
  1441. // DirectInput のジョイパッド入力情報
  1442. typedef struct tagDINPUT_JOYSTATE
  1443. {
  1444.     int                     X ;                             // スティックのX軸パラメータ( -1000~1000 )
  1445.     int                     Y ;                             // スティックのY軸パラメータ( -1000~1000 )
  1446.     int                     Z ;                             // スティックのZ軸パラメータ( -1000~1000 )
  1447.     int                     Rx ;                            // スティックのX軸回転パラメータ( -1000~1000 )
  1448.     int                     Ry ;                            // スティックのY軸回転パラメータ( -1000~1000 )
  1449.     int                     Rz ;                            // スティックのZ軸回転パラメータ( -1000~1000 )
  1450.     int                     Slider[ 2 ] ;                   // スライダー二つ
  1451.     unsigned int            POV[ 4 ] ;                      // ハットスイッチ4つ( -1:入力なし 0:上 4500:右上 9000:右 13500:右下 18000:下 22500:左下 27000:左 31500:左上 )
  1452.     unsigned char           Buttons[ 32 ] ;                 // ボタン32個( 押されたボタンは 128 になる )
  1453. } DINPUT_JOYSTATE ;
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461. // WinSockets使用時のアドレス指定用構造体
  1462. typedef struct tagIPDATA
  1463. {
  1464.     unsigned char           d1, d2, d3, d4 ;                // アドレス値
  1465. } IPDATA, *LPIPDATA ;
  1466.  
  1467. typedef struct tagIPDATA_IPv6
  1468. {
  1469.     union
  1470.     {
  1471.         unsigned char           Byte[ 16 ] ;
  1472.         unsigned short          Word[ 8 ] ;
  1473.     } ;
  1474. } IPDATA_IPv6 ;
  1475.  
  1476. #define DX_STRUCT_END
  1477.  
  1478. }
  1479.  
  1480. // 関数プロトタイプ宣言------------------------------------------------------------------
  1481.  
  1482. namespace DxLib
  1483. {
  1484.  
  1485. #define DX_FUNCTION_START
  1486.  
  1487. // DxSystem.cpp関数プロトタイプ宣言
  1488.  
  1489. // 初期化終了系関数
  1490. extern  int         DxLib_Init( void ) ;                                                    // ライブラリ初期化を行う
  1491. extern  int         DxLib_End( void ) ;                                                     // ライブラリ使用の後始末を行う
  1492.  
  1493. extern  int         DxLib_GlobalStructInitialize( void ) ;                                  // ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Init の前に行った設定を無効化する( DxLib_Init の前でのみ有効 )
  1494. extern  int         DxLib_IsInit( void ) ;                                                  // ライブラリが初期化されているかどうかを取得する( 戻り値: TRUE=初期化されている  FALSE=されていない )
  1495.  
  1496. // メッセージ処理関数
  1497. extern  int         ProcessMessage( void ) ;                                                // ウインドウズのメッセージループに代わる処理を行う
  1498.  
  1499. // ウエイト系関数
  1500. extern  int         WaitTimer( int WaitTime ) ;                                             // 指定の時間だけ処理をとめる
  1501. #ifndef DX_NON_INPUT
  1502. extern  int         WaitKey( void ) ;                                                       // キーの入力待ちを行う
  1503. #endif // DX_NON_INPUT
  1504.  
  1505. // カウンタ及び時刻取得系関数
  1506. extern  int         GetNowCount(                int UseRDTSCFlag = FALSE ) ;                // ミリ秒単位の精度を持つカウンタの現在値を得る
  1507. extern  LONGLONG    GetNowHiPerformanceCount(   int UseRDTSCFlag = FALSE ) ;                // GetNowCountの高精度バージョン
  1508. extern  int         GetDateTime(                DATEDATA *DateBuf ) ;                       // 現在時刻を取得する
  1509.  
  1510. // 乱数取得
  1511. extern  int         GetRand( int RandMax ) ;                                                // 乱数を取得する( RandMax : 返って来る値の最大値 )
  1512. extern  int         SRand(   int Seed ) ;                                                   // 乱数の初期値を設定する
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521. // DxLog.cpp関数プロトタイプ宣言
  1522.  
  1523. #ifndef DX_NON_LOG
  1524. // エラー処理関数
  1525. extern  int         ErrorLogAdd(         const TCHAR *ErrorStr ) ;                          // ログファイル( Log.txt ) に文字列を出力する
  1526. extern  int         ErrorLogFmtAdd(      const TCHAR *FormatString , ... ) ;                // 書式付きで ログファイル( Log.txt ) に文字列を出力する( 書式は printf と同じ )
  1527. extern  int         ErrorLogTabAdd(      void ) ;                                           // ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を一つ増やす
  1528. extern  int         ErrorLogTabSub(      void ) ;                                           // ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を一つ減らす
  1529. extern  int         SetUseTimeStampFlag( int UseFlag ) ;                                    // ログファイル( Log.txt ) に出力する文字列の前に起動してからの時間を付けるかどうかを設定する( TRUE:付ける( デフォルト)  FALSE:付けない )
  1530. extern  int         AppLogAdd(           const TCHAR *String , ... ) ;                      // ErrorLogFmtAdd と同じ機能
  1531.  
  1532. #ifndef DX_NON_PRINTF_DX
  1533.  
  1534. // ログ出力機能関数
  1535. extern  int         SetLogDrawOutFlag(   int DrawFlag ) ;                                   // printfDx の結果を画面に出力するかどうかを設定する、TRUE:出力を行う  FALSE:出力を行わない( printfDx を実行すると内部で SetLogDrawOutFlag( TRUE ) ; が呼ばれます )
  1536. extern  int         GetLogDrawFlag(      void ) ;                                           // printfDx の結果を画面に出力するかどうかの設定を取得する( 戻り値  TRUE:出力を行う  FALSE:出力を行わない )
  1537. extern  int         SetLogFontSize(      int Size ) ;                                       // printfDx の結果を画面に出力する際に使用するフォントのサイズを設定する
  1538.  
  1539. // 簡易画面出力関数
  1540. extern  int         printfDx(            const TCHAR *FormatString , ... ) ;                // printf と同じ引数で画面に文字列を表示するための関数
  1541. extern  int         clsDx(               void ) ;                                           // printfDx の結果をリセットするための関数
  1542. #endif // DX_NON_PRINTF_DX
  1543.  
  1544. #endif // DX_NON_LOG
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557. #ifndef DX_NON_ASYNCLOAD
  1558.  
  1559. // DxASyncLoad.cpp関数プロトタイプ宣言
  1560.  
  1561. // 非同期読み込み関係
  1562. extern  int         SetUseASyncLoadFlag(        int Flag ) ;                                // 読み込み処理系の関数で非同期読み込みを行うかどうかを設定する( 非同期読み込みに対応している関数のみ有効 )( TRUE:非同期読み込みを行う  FALSE:非同期読み込みを行わない( デフォルト ) )
  1563. extern  int         CheckHandleASyncLoad(       int Handle ) ;                              // ハンドルの非同期読み込みが完了しているかどうかを取得する( TRUE:まだ完了していない  FALSE:完了している  -1:エラー )
  1564. extern  int         GetHandleASyncLoadResult(   int Handle ) ;                              // ハンドルの非同期読み込み処理の戻り値を取得する( 非同期読み込み中の場合は一つ前の非同期読み込み処理の戻り値が返ってきます )
  1565. extern  int         GetASyncLoadNum(            void ) ;                                    // 非同期読み込み中の処理の数を取得する
  1566.  
  1567. #endif // DX_NON_ASYNCLOAD
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578. // DxWindow.cpp関数プロトタイプ宣言
  1579.  
  1580. #ifdef __WINDOWS__
  1581.  
  1582. // 便利関数
  1583. extern  int         GetResourceInfo(        const TCHAR *ResourceName , const TCHAR *ResourceType , void **DataPointerP , int *DataSizeP ) ;        // 指定の名前、タイプのリソースのアドレスとサイズを取得する( 戻り値  -1:失敗  0:成功 )
  1584. extern  TCHAR*      GetResourceIDString(    int ResourceID ) ;                                                                                      // リソースID値からリソース名を取得する
  1585.  
  1586. // ウインドウ関係情報取得関数
  1587. extern  int         GetWindowCRect(                 RECT *RectBuf ) ;                                       // メインウインドウのクライアント領域を取得する
  1588. extern  int         GetWindowActiveFlag(            void ) ;                                                // メインウインドウがアクティブかどうかを取得する( 戻り値  TRUE:アクティブ  FALSE:非アクティブ )
  1589. extern  int         GetActiveFlag(                  void ) ;                                                // GetWindowActiveFlag の別名関数
  1590. extern  HWND        GetMainWindowHandle(            void ) ;                                                // メインウインドウのウインドウハンドルを取得する
  1591. extern  int         GetWindowModeFlag(              void ) ;                                                // ウインドウモードで起動しているかどうかを取得する( 戻り値  TRUE:ウインドウモード  FALSE:フルスクリーンモード )
  1592. extern  int         GetDefaultState(                int *SizeX , int *SizeY , int *ColorBitDepth ) ;        // 起動時のデスクトップの画面情報を取得する( SizeX:デスクトップの横解像度を格納する変数のポインタ  SizeY:縦解像度を格納する変数のポインタ  ColorBitDepth:画面カラービット数を格納する変数のポインタ )
  1593. extern  int         GetNoActiveState(               int ResetFlag = TRUE ) ;                                // メインウインドウが非アクティブになり、処理が一時停止していたかどうかを取得する(引数 ResetFlag=TRUE:状態をリセット FALSE:状態をリセットしない    戻り値: 0=一時停止はしていない  1=一時停止していた )
  1594. extern  int         GetMouseDispFlag(               void ) ;                                                // マウスポインタを表示するかどうかの設定を取得する( 戻り値  TRUE:表示する  FALSE:表示しない )
  1595. extern  int         GetAlwaysRunFlag(               void ) ;                                                // メインウインドウが非アクティブになっても処理を実行し続けるかどうかの設定を取得する( TRUE:実行する  FALSE:停止する )
  1596. extern  int         _GetSystemInfo(                 int *DxLibVer , int *DirectXVer , int *WindowsVer ) ;   // DXライブラリと DirectX のバージョンと Windows のバージョン番号を取得する
  1597. extern  int         GetPcInfo(                      TCHAR *OSString , TCHAR *DirectXString , TCHAR *CPUString , int *CPUSpeed /* 単位MHz */ , double *FreeMemorySize /* 単位MByte */ , double *TotalMemorySize , TCHAR *VideoDriverFileName , TCHAR *VideoDriverString , double *FreeVideoMemorySize /* 単位MByte */ , double *TotalVideoMemorySize ) ;   // PCの情報を取得する
  1598. extern  int         GetUseMMXFlag(                  void ) ;                                                // MMXが使えるかどうかの情報を得る
  1599. extern  int         GetUseSSEFlag(                  void ) ;                                                // SSEが使えるかどうかの情報を得る
  1600. extern  int         GetUseSSE2Flag(                 void ) ;                                                // SSE2が使えるかどうかの情報を得る
  1601. extern  int         GetWindowCloseFlag(             void ) ;                                                // ウインドウを閉じようとしているかの情報を得る
  1602. extern  HINSTANCE   GetTaskInstance(                void ) ;                                                // ソフトのインスタンスを取得する
  1603. extern  int         GetUseWindowRgnFlag(            void ) ;                                                // リージョンを使っているかどうかを取得する
  1604. extern  int         GetWindowSizeChangeEnableFlag(  int *FitScreen = NULL ) ;                               // ウインドウのサイズを変更できる設定になっているかどうかを取得する( 戻り値  TRUE:変更できるようになっている  FALSE:変更できないようになっている )
  1605. extern  double      GetWindowSizeExtendRate(        double *ExRateX = NULL , double *ExRateY = NULL ) ;     // 描画画面のサイズに対するウインドウサイズの比率を取得する( 戻り値は ExRateX に代入される値と同じです )
  1606. extern  int         GetWindowSize(                  int *Width, int *Height ) ;                             // メインウインドウのクライアント領域のサイズを取得する
  1607. extern  int         GetWindowPosition(              int *x, int *y ) ;                                      // メインウインドウのデスクトップ上の左上端座標を取得する( 枠も含める )
  1608. extern  int         GetWindowUserCloseFlag(         int StateResetFlag = FALSE ) ;                          // メインウインドウの閉じるボタンが押されたかどうかを取得する
  1609. extern  int         GetNotDrawFlag(                 void ) ;                                                // DXライブラリの描画機能を使うかどうかの設定を取得する
  1610. extern  int         GetPaintMessageFlag(            void ) ;                                                // WM_PAINT メッセージが来たかどうかを取得する(戻り値  TRUE:WM_PAINTメッセージが来た(一度取得すると以後、再び WM_PAINTメッセージが来るまで FALSE が返ってくるようになる)  FALSE:WM_PAINT メッセージは来ていない)
  1611. extern  int         GetValidHiPerformanceCounter(   void ) ;                                                // パフォーマンスカウンタが有効かどうかを取得する(戻り値  TRUE:有効  FALSE:無効)
  1612.  
  1613. // 設定系関数
  1614. extern  int         ChangeWindowMode(                       int Flag ) ;                                                                        // ウインドウモードを変更する
  1615. extern  int         SetUseCharSet(                          int CharSet /* = DX_CHARSET_SHFTJIS 等 */ ) ;                                      // DXライブラリの文字列処理で前提とする文字列セットを設定する
  1616. extern  int         LoadPauseGraph(                         const TCHAR *FileName ) ;                                                           // アクティブウインドウが他のソフトに移っている際に表示する画像をファイルから読み込む( FileName に NULL を渡すことで解除)
  1617. extern  int         LoadPauseGraphFromMem(                  void *MemImage , int MemImageSize ) ;                                               // アクティブウインドウが他のソフトに移っている際に表示する画像をメモリから読み込む( MemImage:ファイルイメージの先頭アドレス,NULL にすることで設定解除  MemImageSize:ファイルイメージのサイズ( 単位:Byte ) )
  1618. extern  int         SetActiveStateChangeCallBackFunction(   int (* CallBackFunction )( int ActiveState , void *UserData ) , void *UserData ) ;  // メインウインドウのアクティブ状態に変化があったときに呼ばれるコールバック関数を設定する( CallBackFunction:呼ばれるコールバック関数、NULL を渡すと設定解除  UserData:CallBackFunction の第2引数に渡される値 )
  1619. extern  int         SetWindowText(                          const TCHAR *WindowText ) ;                                                         // メインウインドウのウインドウテキストを変更する
  1620. extern  int         SetMainWindowText(                      const TCHAR *WindowText ) ;                                                         // SetWindowText の別名関数
  1621. extern  int         SetMainWindowClassName(                 const TCHAR *ClassName ) ;                                                          // メインウインドウのクラス名を設定する( DxLib_Init の前でのみ使用可能 )
  1622. #ifndef DX_NON_LOG
  1623. extern  int         SetOutApplicationLogValidFlag(          int Flag ) ;                                                                        // ログファイル( Log.txt ) を作成するかどうかを設定する( TRUE:作成する( デフォルト )  FALSE:作成しない )、DxLib_Init の前でのみ使用可能
  1624. extern  int         SetApplicationLogSaveDirectory(         const TCHAR *DirectoryPath ) ;                                                      // ログファイル( Log.txt ) を保存するディレクトリパスを設定する
  1625. extern  int         SetUseDateNameLogFile(                  int Flag ) ;                                                                        // ログファイル名に日付をつけるかどうかをセットする( TRUE:付ける  FALSE:付けない( デフォルト ) )
  1626. #endif // DX_NON_LOG
  1627. extern  int         SetAlwaysRunFlag(                       int Flag ) ;                                                                        // メインウインドウが非アクティブ状態でも処理を実行するかどうかを設定する( TRUE:実行する  FALSE:停止する( デフォルト ) )
  1628. extern  int         SetWindowIconID(                        int ID ) ;                                                                          // メインウインドウで使用するアイコンのIDをセットする
  1629. extern  int         SetWindowIconHandle(                    HICON Icon ) ;                                                                      // メインウインドウで使用するアイコンのハンドルをセットする
  1630. extern  int         SetUseASyncChangeWindowModeFunction(    int Flag , void (* CallBackFunction )( void * ) , void *Data ) ;                    // 最大化ボタンやALT+ENTERキーによる非同期なウインドウモードの変更の機能の設定を行う( Flag:非同期ウインドウモード変更を有効にするかどうかのフラグ( TRUE:有効にする  FALSE:無効にする( デフォルト ) )   CallBackFunction:非同期ウインドウモード変更が行われた場合に呼ばれるコールバック関数のアドレス   Data:CallBackFunction の引数に渡される void 型のポインタ )
  1631. extern  int         SetWindowStyleMode(                     int Mode ) ;                                                                        // メインウインドウのスタイルを変更する
  1632. extern  int         SetWindowSizeChangeEnableFlag(          int Flag, int FitScreen = TRUE ) ;                                                  // メインウインドウの端を掴んでウインドウのサイズを変更できるようにするかどうかの設定を行う( Flag:変更を可能にするかどうか( TRUE:可能にする  FALSE:不可能にする( デフォルト ) )  FitScreen:ウインドウのクライアント領域に画面をフィットさせる(拡大させる)かどうか  TRUE:フィットさせる  FALSE:フィットさせない )
  1633. extern  int         SetWindowSizeExtendRate(                double ExRateX, double ExRateY = -1.0 ) ;                                           // 描画画面のサイズに対するメインウインドウサイズの比率を設定する( ExRateY がマイナスの場合は ExRateX の値が ExRateY にも使用されます )
  1634. extern  int         SetWindowSize(                          int Width, int Height ) ;                                                           // メインウインドウのクライアント領域のサイズを設定する
  1635. extern  int         SetWindowPosition(                      int x, int y ) ;                                                                    // メインウインドウの位置を設定する( 枠も含めた左上座標 )
  1636. extern  int         SetSysCommandOffFlag(                   int Flag , const TCHAR *HookDllPath = NULL ) ;                                      // タスクスイッチを有効にするかどうかを設定する
  1637. extern  int         SetHookWinProc(                         WNDPROC WinProc ) ;                                                                 // メインウインドウへのメッセージをフックするウインドウプロージャを登録する
  1638. extern  int         SetUseHookWinProcReturnValue(           int UseFlag ) ;                                                                     // SetHookWinProc で設定したウインドウプロージャの戻り値を使用するかどうかを設定する、SetHookWinProc で設定したウインドウプロージャの中でのみ使用可能( UseFlag TRUE:戻り値を使用して、DXライブラリのウインドウプロージャの処理は行わない  FALSE:戻り値は使用せず、ウインドウプロージャから出た後、DXライブラリのウインドウプロージャの処理を行う )
  1639. extern  int         SetDoubleStartValidFlag(                int Flag ) ;                                                                        // DXライブラリを使用したソフトの二重起動を可能にするかどうかの設定を行う( TRUE:可能にする  FALSE:不可能にする( デフォルト ) )
  1640. extern  int         AddMessageTakeOverWindow(               HWND Window ) ;                                                                     // メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを追加する
  1641. extern  int         SubMessageTakeOverWindow(               HWND Window ) ;                                                                     // メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを減らす
  1642.  
  1643. extern  int         SetWindowInitPosition(                  int x , int y ) ;                                                                   // メインウインドウの初期位置を設定する
  1644. extern  int         SetNotWinFlag(                          int Flag ) ;                                                                        // DXライブラリのウインドウ関連の機能を使用しないかどうかを設定する( TRUE:使用しない  FALSE:使用する( デフォルト ) )
  1645. extern  int         SetNotDrawFlag(                         int Flag ) ;                                                                        // DXライブラリの描画機能を使うかどうかを設定する( TRUE:使用しない  FALSE:使用する( デフォルト ) )
  1646. extern  int         SetNotSoundFlag(                        int Flag ) ;                                                                        // DXライブラリのサウンド機能を使うかどうかを設定する( TRUE:使用しない  FALSE:使用する( デフォルト ) )
  1647. extern  int         SetNotInputFlag(                        int Flag ) ;                                                                        // DXライブラリの入力状態の取得機能を使うかどうかを設定する( TRUE:使用しない  FALSE:使用する( デフォルト ) )
  1648. extern  int         SetDialogBoxHandle(                     HWND WindowHandle ) ;                                                               // DXライブラリでメッセージ処理を行うダイアログボックスを登録する
  1649. extern  int         SetWindowVisibleFlag(                   int Flag ) ;                                                                        // メインウインドウを表示するかどうかを設定する( TRUE:表示する  FALSE:表示しない )
  1650. extern  int         SetWindowMinimizeFlag(                  int Flag ) ;                                                                        // メインウインドウを最小化するかどうかを設定する( TRUE:最小化する  FALSE:最小化を解除 )
  1651. extern  int         SetWindowUserCloseEnableFlag(           int Flag ) ;                                                                        // メインウインドウの×ボタンを押した時にDXライブラリが自動的にウインドウを閉じるかどうかを設定する( TRUE:自動的に閉じる( デフォルト )  FALSE:閉じない )
  1652. extern  int         SetDxLibEndPostQuitMessageFlag(         int Flag ) ;                                                                        // DXライブラリ終了時に PostQuitMessage を呼ぶかどうかを設定する( TRUE:PostQuitMessage を呼ぶ( デフォルト )  FALSE:呼ばない )
  1653. extern  int         SetUserWindow(                          HWND WindowHandle ) ;                                                               // DXライブラリで使用するウインドウのハンドルをセットする( DxLib_Init を実行する以前でのみ有効 )
  1654. extern  int         SetUserChildWindow(                     HWND WindowHandle ) ;                                                               // DXライブラリで使用する表示用の子ウインドウのハンドルをセットする( DxLib_Init を実行する以前でのみ有効 )
  1655. extern  int         SetUserWindowMessageProcessDXLibFlag(   int Flag ) ;                                                                        // SetUseWindow で設定したウインドウのメッセージループ処理をDXライブラリで行うかどうかを設定する( TRUE:DXライブラリで行う( デフォルト )  FALSE:DXライブラリでは行わない )
  1656. extern  int         SetBackgroundColor(                     int Red, int Green, int Blue ) ;                                                    // メインウインドウの背景色を設定する( Red,Green,Blue:それぞれ 0~255 )
  1657. extern  int         SetUseFPUPreserveFlag(                  int Flag ) ;                                                                        // FPUの精度を落とさない設定を使用するかどうかを設定する、DxLib_Init を呼び出す前のみ有効( TRUE:使用する(精度が落ちない)  FALSE:使用しない(精度を落とす(デフォルト) )
  1658. extern  int         SetValidMousePointerWindowOutClientAreaMoveFlag( int Flag ) ;                                                               // マウスポインタがウインドウのクライアントエリアの外にいけるかどうかを設定する( TRUE:いける( デフォルト設定 )  FALSE:いけない )
  1659. extern  int         SetUseBackBufferTransColorFlag(         int Flag ) ;                                                                        // バックバッファの透過色の部分を透過させるかどうかを設定する( TRUE:透過させる  FALSE:透過させない( デフォルト ) )
  1660. extern  int         SetResourceModule(                      HMODULE ResourceModule ) ;                                                          // リソースを読み込む際に使用するモジュールを設定する( NULL を指定すると初期状態に戻ります、デフォルトでは NULL )
  1661.  
  1662. // クリップボード関係
  1663. extern  int         GetClipboardText(           TCHAR *DestBuffer ) ;                                                           // クリップボードに格納されているテキストデータを読み出す( DestBuffer:文字列を格納するバッファの先頭アドレス   戻り値  -1:クリップボードにテキストデータが無い  -1以外:クリップボードに格納されている文字列データのサイズ( 単位:byte ) )
  1664. extern  int         SetClipboardText(           const TCHAR *Text ) ;                                                           // クリップボードにテキストデータを格納する
  1665.  
  1666. // ドラッグ&ドロップされたファイル関係
  1667. extern  int         SetDragFileValidFlag(       int Flag ) ;                                                                    // ファイルのメインウインドウへのドラッグ&ドロップ機能を有効にするかどうかのフラグをセットする
  1668. extern  int         DragFileInfoClear(          void ) ;                                                                        // メインウインドウへドラッグ&ドロップされたファイルの情報をリセットする
  1669. extern  int         GetDragFilePath(            TCHAR *FilePathBuffer ) ;                                                       // メインウインドウへドラッグ&ドロップされたファイル名を取得する( FilePathBuffer:ファイル名を格納するバッファの先頭アドレス  戻り値 -1:取得できなかった  0:取得できた )
  1670. extern  int         GetDragFileNum(             void ) ;                                                                        // メインウインドウへドラッグ&ドロップされたファイルの数を取得する
  1671.  
  1672. // ウインドウ描画領域設定系関数
  1673. extern  HRGN        CreateRgnFromGraph(         int Width , int Height , void *MaskData , int Pitch , int Byte ) ;              // 任意の画像イメージからRGNハンドルを作成する( Width:横ドット数  Height:縦ドット数  MaskData:ドット情報配列の先頭アドレス  Pitch:1ラインあたりのbyteサイズ  Byte:1ドット辺りのbyteサイズ( 対応しているのは 1~4 )、ドットの数値が0かそれ以外かで判別 )
  1674. extern  HRGN        CreateRgnFromBaseImage(     BASEIMAGE *BaseImage, int TransColorR, int TransColorG, int TransColorB ) ;     // 任意の基本イメージデータと透過色からRGNハンドルを作成する( BaseImage:基本イメージデータのアドレス  TransColorR,TransColorG,TransColorB:透過色( それぞれ0~255 )
  1675. extern  int         SetWindowRgnGraph(          const TCHAR *FileName ) ;                                                       // 任意の画像ファイルからRGNをセットする
  1676. extern  int         UpdateTransColorWindowRgn(  void ) ;                                                                        // 描画先の画面の透過色の部分を透過させるRGNをセットする( 使用される透過色は関数 SetTransColor で設定した色 )
  1677.  
  1678. // ツールバー関係
  1679. extern  int         SetupToolBar(               const TCHAR *BitmapName , int DivNum , int ResourceID = -1 ) ;                                                          // ツールバーの準備、BitmapName に NULL, ResourceID に -1 を渡すとツールバーを解除( BitmapName:ツールバーのボタンに使用する画像ファイルパス、ResourceID に -1 以外を渡す場合は NULL にする  DivNum:ボタン画像中のボタンの数  ResourceID:ツールバーのボタンに使用するビットマップリソースのID、BitmapName に NULL を渡すとこの引数が使用される )
  1680. extern  int         AddToolBarButton(           int Type /* TOOLBUTTON_TYPE_NORMAL 等 */ , int State /* TOOLBUTTON_STATE_ENABLE 等 */ , int ImageIndex, int ID ) ;        // ツールバーにボタンを追加する( Type:ボタンタイプ( TOOLBUTTON_TYPE_NORMAL 等( 解説は #define の定義を参照してください ) )  State:初期状態( TOOLBUTTON_STATE_ENABLE 等( 解説は #define の定義を参照してください ) )  ImageIndex:使用するボタンの画像番号  ID:ボタンに割り当てる識別番号  )
  1681. extern  int         AddToolBarSep(              void ) ;                                                                                                                // ツールバーに隙間を追加する
  1682. extern  int         GetToolBarButtonState(      int ID ) ;                                                                                                              // ツールバーのボタンの状態を取得する( ID:AddToolBarButtonで設定したボタンの識別番号  戻り値 TRUE:押されている or 押された  FALSE:押されていない )
  1683. extern  int         SetToolBarButtonState(      int ID , int State /* TOOLBUTTON_STATE_ENABLE 等 */ ) ;                                                                    // ツールバーのボタンの状態を設定する( ID:AddToolBarButtonで設定したボタンの識別番号 State:設定する状態( TOOLBUTTON_STATE_ENABLE 等( 解説は #define の定義を参照してください ) )
  1684. extern  int         DeleteAllToolBarButton(     void ) ;                                                                                                                // ツールバーのボタンを全て削除する
  1685.  
  1686. // メニュー関係
  1687. extern  int         SetUseMenuFlag(             int Flag ) ;                                                                                        // メニューを有効にするかどうかを設定する( TRUE:使用する  FALSE:使用しない )
  1688. extern  int         SetUseKeyAccelFlag(         int Flag ) ;                                                                                        // キーボードアクセラレーターを使用するかどうかを設定する( TRUE:使用する  FALSE:使用しない )
  1689.  
  1690. extern  int         AddKeyAccel(                const TCHAR *ItemName , int ItemID , int KeyCode , int CtrlFlag , int AltFlag , int ShiftFlag ) ;   // ショートカットキーを追加する( ItemName:ショートカットキーを割り当てるメニューのアイテム名( AddMenuItem で NewItemName に渡した名前 )、ItemID を使用する場合は NULL を渡す  ItemID:メニュー項目の識別番号( AddMenuItem の引数 NewItemID で指定したもの )、ItemName を使用する場合は -1 を渡す  KeyCode:ショートカットキーのキー( KEY_INPUT_L 等 )  CtrlFlag:同時にCTRLキーを押す必要があるようにするかどうか( TRUE:押す必要がある  FALSE:押さなくても良い )  AltFlag:同時にALTキーを押す必要があるようにするかどうか( TRUE:押す必要がある  FALSE:押さなくても良い )  ShiftFlag:同時にSHIFTキーを押す必要があるようにするかどうか( TRUE:押す必要がある  FALSE:押さなくても良い )
  1691. extern  int         AddKeyAccel_Name(           const TCHAR *ItemName , int KeyCode , int CtrlFlag , int AltFlag , int ShiftFlag ) ;                // ショートカットキーを追加する( 各引数の解説は AddKeyAccel と同じ、ItemID が無くなっただけ )
  1692. extern  int         AddKeyAccel_ID(             int ItemID, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag ) ;                               // ショートカットキーを追加する( 各引数の解説は AddKeyAccel と同じ、ItemName が無くなっただけ )
  1693. extern  int         ClearKeyAccel(              void ) ;                                                                                            // ショートカットキーの情報をリセットする
  1694.  
  1695. extern  int         AddMenuItem(                int AddType /* MENUITEM_ADD_CHILD等 */ , const TCHAR *ItemName, int ItemID, int SeparatorFlag, const TCHAR *NewItemName = NULL , int NewItemID = -1 ) ;    // メニューに項目を追加する( AddType:項目タイプ( MENUITEM_ADD_CHILD 等( 解説は #define の定義を参照してください ) )    ItemName:AddType が MENUITEM_ADD_CHILDの場合は親となる項目の名前、MENUITEM_ADD_INSERTの場合は挿入位置となる項目の名前、NULL を指定すると ItemID が使用される   ItemID:ItemName の代わりに識別番号で指定するもの、AddType毎の違いは ItemName の解説の通り、-1を指定すると ItemName が使用される  SeparatorFlag:区切り線を追加するかどうか( TRUE:区切り線を追加、この場合 NewItemName と NewItemID は無視される  FALSE:追加するのは区切り線ではない )  NewItemName:新しい項目の名前  NewItemID:新しい項目の識別番号、-1を指定すると内部で適当な番号が割り当てられる )
  1696. extern  int         DeleteMenuItem(             const TCHAR *ItemName, int ItemID ) ;                                                               // メニューから選択項目を削除する( ItemName:削除する項目の名前( AddMenuItem で NewItemName に渡した名前 )、NULL を指定すると ItemID が使用される  ItemID:削除する項目の識別番号( AddMenuItem で NewItemID に渡した番号 )、-1 を指定すると ItemName が使用される )
  1697. extern  int         CheckMenuItemSelect(        const TCHAR *ItemName, int ItemID ) ;                                                               // メニューが選択されたかどうかを取得する( 戻り値  0:選択されていない  1:選択された   ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください )
  1698. extern  int         SetMenuItemEnable(          const TCHAR *ItemName, int ItemID, int EnableFlag ) ;                                               // メニューの項目を選択出来るかどうかを設定する( EnableFlag:項目が選択できるかどうか( TRUE:選択できる   FALSE:選択できない )   ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください )
  1699. extern  int         SetMenuItemMark(            const TCHAR *ItemName, int ItemID, int Mark ) ;                                                     // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等( 解説は #define の定義を参照してください )    ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください ) )
  1700. extern  int         CheckMenuItemSelectAll(     void ) ;                                                                                            // メニューの項目がどれか選択されたかどうかを取得する( 戻り値  TRUE:どれか選択された  FALSE:選択されていない )
  1701.  
  1702. extern  int         AddMenuItem_Name(           const TCHAR *ParentItemName, const TCHAR *NewItemName ) ;                                           // メニューに選択項目を追加する( ParentItemName:親となる項目の名前、親が持つリストの末端に新しい項目を追加します  NewItemName:新しい項目の名前 )
  1703. extern  int         AddMenuLine_Name(           const TCHAR *ParentItemName ) ;                                                                     // メニューのリストに区切り線を追加する( ParentItemName:区切り線を付ける項目リストの親の名前、リストの末端に区切り線を追加します )
  1704. extern  int         InsertMenuItem_Name(        const TCHAR *ItemName, const TCHAR *NewItemName ) ;                                                 // 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する
  1705. extern  int         InsertMenuLine_Name(        const TCHAR *ItemName ) ;                                                                           // 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する
  1706. extern  int         DeleteMenuItem_Name(        const TCHAR *ItemName ) ;                                                                           // メニューから選択項目を削除する
  1707. extern  int         CheckMenuItemSelect_Name(   const TCHAR *ItemName ) ;                                                                           // メニューが選択されたかどうかを取得する( 戻り値 0:選択されていない  1:選択された )
  1708. extern  int         SetMenuItemEnable_Name(     const TCHAR *ItemName, int EnableFlag ) ;                                                           // メニューの項目を選択出来るかどうかを設定する( EnableFlag 1:選択できる  0:選択できない )
  1709. extern  int         SetMenuItemMark_Name(       const TCHAR *ItemName, int Mark ) ;                                                                 // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等 ) )
  1710.  
  1711. extern  int         AddMenuItem_ID(             int ParentItemID, const TCHAR *NewItemName, int NewItemID = -1 ) ;                                  // メニューに選択項目を追加する
  1712. extern  int         AddMenuLine_ID(             int ParentItemID ) ;                                                                                // メニューのリストに区切り線を追加する
  1713. extern  int         InsertMenuItem_ID(          int ItemID, int NewItemID ) ;                                                                       // 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する
  1714. extern  int         InsertMenuLine_ID(          int ItemID, int NewItemID ) ;                                                                       // 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する
  1715. extern  int         DeleteMenuItem_ID(          int ItemID ) ;                                                                                      // メニューから選択項目を削除する
  1716. extern  int         CheckMenuItemSelect_ID(     int ItemID ) ;                                                                                      // メニューが選択されたかどうかを取得する( 戻り値  0:選択されていない  1:選択された )
  1717. extern  int         SetMenuItemEnable_ID(       int ItemID, int EnableFlag ) ;                                                                      // メニューの項目を選択出来るかどうかを設定する( EnableFlag 1:選択できる  0:選択できない )
  1718. extern  int         SetMenuItemMark_ID(         int ItemID, int Mark ) ;                                                                            // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等 ) )
  1719.  
  1720. extern  int         DeleteMenuItemAll(          void ) ;                                                                                            // メニューの全ての選択項目を削除する
  1721. extern  int         ClearMenuItemSelect(        void ) ;                                                                                            // メニューが選択されたかどうかの情報をリセット
  1722. extern  int         GetMenuItemID(              const TCHAR *ItemName ) ;                                                                           // メニューの項目名から項目識別番号を取得する
  1723. extern  int         GetMenuItemName(            int ItemID, TCHAR *NameBuffer ) ;                                                                   // メニューの項目識別番号から項目名を取得する
  1724. extern  int         LoadMenuResource(           int MenuResourceID ) ;                                                                              // メニューをリソースから読み込む
  1725. extern  int         SetMenuItemSelectCallBackFunction(      void (* CallBackFunction )( const TCHAR *ItemName, int ItemID ) ) ;                     // メニューの選択項目が選択されたときに呼ばれるコールバック関数を設定する( CallBackFunction:項目が選択されたときに呼ばれるコールバック関数、引数に項目名と項目の識別番号を渡されて呼ばれる )
  1726.  
  1727. extern  int         SetWindowMenu(              int MenuID, int (* MenuProc )( WORD ID ) ) ;                                                        // (古い関数)ウインドウにメニューを設定する
  1728. extern  int         SetDisplayMenuFlag(         int Flag ) ;                                                                                        // メニューを表示するかどうかをセットする
  1729. extern  int         GetDisplayMenuFlag(         void ) ;                                                                                            // メニューを表示しているかどうかを取得する
  1730. extern  int         GetUseMenuFlag(             void ) ;                                                                                            // メニューを使用しているかどうかを得る
  1731. extern  int         SetAutoMenuDisplayFlag(     int Flag ) ;                                                                                        // フルスクリーン時にメニューを自動で表示したり非表示にしたりするかどうかのフラグをセットする
  1732.  
  1733. #endif // __WINDOWS__
  1734.  
  1735. // マウス関係関数
  1736. extern  int         SetMouseDispFlag(       int DispFlag ) ;                                                // マウスポインタの表示状態を設定する( DispFlag:マウスポインタを表示するかどうか( TRUE:表示する  FALSE:表示しない )
  1737. extern  int         GetMousePoint(          int *XBuf, int *YBuf ) ;                                        // マウスポインタの位置を取得する
  1738. extern  int         SetMousePoint(          int PointX, int PointY ) ;                                      // マウスポインタの位置を設定する
  1739. #ifndef DX_NON_INPUT
  1740. extern  int         GetMouseInput(          void ) ;                                                        // マウスのボタンの押下状態を取得する
  1741. extern  int         GetMouseWheelRotVol(    int CounterReset = TRUE ) ;                                     // 垂直マウスホイールの回転量を取得する
  1742. extern  int         GetMouseHWheelRotVol(   int CounterReset = TRUE ) ;                                     // 水平マウスホイールの回転量を取得する
  1743. extern  int         GetMouseInputLog(       int *Button, int *ClickX, int *ClickY, int LogDelete = TRUE ) ; // マウスのクリック情報を一つ取得する( Button:クリックされたボタン( MOUSE_INPUT_LEFT 等 )を格納する変数のアドレス  ClickX:クリックされた時のX座標を格納する変数のアドレス  ClickY:クリックされた時のY座標を格納する変数のアドレス   LogDelete:取得したクリック情報一つ分をログから削除するかどうか( TRUE:削除する  FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる )  戻り値  0:クリック情報取得できた -1:クリック情報が無かった、つまり前回の呼び出し( または起動時から最初の呼び出し )の間に一度もマウスのボタンがクリックされなかった )
  1744. #endif // DX_NON_INPUT
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759. // DxMemory.cpp関数プロトタイプ宣言
  1760.  
  1761. // メモリ確保系関数
  1762. extern  void*       DxAlloc(                        size_t AllocSize , const char *File = NULL , int Line = -1 ) ;                  // 指定のサイズのメモリを確保する( AllocSize:確保するメモリのサイズ( 単位:byte )  File:DxAllocを呼んだソースファイル名( デバッグ用 )  Line:DxAllocを呼んだソースファイル中の行番号( デバッグ用 )  戻り値  NULL:メモリの確保失敗   NULL以外:確保したメモリ領域の先頭アドレス )
  1763. extern  void*       DxCalloc(                       size_t AllocSize , const char *File = NULL , int Line = -1 ) ;                  // 指定のサイズのメモリを確保して、0で埋める、初期化後に0で埋める以外は DxAlloc と動作は同じ
  1764. extern  void*       DxRealloc(                      void *Memory , size_t AllocSize , const char *File = NULL , int Line = -1 ) ;   // メモリの再確保を行う( Memory:再確保を行うメモリ領域の先頭アドレス( DxAlloc の戻り値 )  AllocSize:新しい確保サイズ FileとLine の説明は DxAlloc の注釈の通り  戻り値 NULL:メモリの再確保失敗 NULL以外:再確保した新しいメモリ領域の先頭アドレス )
  1765. extern  void        DxFree(                         void *Memory ) ;                                                                // メモリを解放する( Memory:解放するメモリ領域の先頭アドレス( DxAlloc の戻り値 ) )
  1766. extern  size_t      DxSetAllocSizeTrap(             size_t Size ) ;                                                                 // 列挙対象にするメモリの確保容量をセットする
  1767. extern  int         DxSetAllocPrintFlag(            int Flag ) ;                                                                    // DXライブラリ内でメモリ確保が行われる時に情報を出力するかどうかをセットする
  1768. extern  size_t      DxGetAllocSize(                 void ) ;                                                                        // DxAlloc や DxCalloc で確保しているメモリサイズを取得する
  1769. extern  int         DxGetAllocNum(                  void ) ;                                                                        // DxAlloc や DxCalloc で確保しているメモリの数を取得する
  1770. extern  void        DxDumpAlloc(                    void ) ;                                                                        // DxAlloc や DxCalloc で確保しているメモリを列挙する
  1771. extern  int         DxErrorCheckAlloc(              void ) ;                                                                        // 確保したメモリ情報が破壊されていないか調べる( -1:破壊あり  0:なし )
  1772. extern  int         DxSetAllocSizeOutFlag(          int Flag ) ;                                                                    // メモリが確保、解放が行われる度に確保しているメモリの容量を出力するかどうかのフラグをセットする
  1773. extern  int         DxSetAllocMemoryErrorCheckFlag( int Flag ) ;                                                                    // メモリの確保、解放が行われる度に確保しているメモリ確保情報が破損していないか調べるかどうかのフラグをセットする
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790. // DxNetwork.cpp関数プロトタイプ宣言
  1791.  
  1792. #ifndef DX_NON_NETWORK
  1793.  
  1794. // 通信関係
  1795. extern  int         ProcessNetMessage(              int RunReleaseProcess = FALSE ) ;                                                       // 通信メッセージの処理をする関数
  1796.  
  1797. extern  int         GetHostIPbyName(                const TCHAR *HostName, IPDATA      *IPDataBuf ) ;                                       // DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv4版 )
  1798. extern  int         GetHostIPbyName_IPv6(           const TCHAR *HostName, IPDATA_IPv6 *IPDataBuf ) ;                                       // DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv6版 )
  1799. extern  int         ConnectNetWork(                 IPDATA      IPData, int Port = -1 ) ;                                                   // 他マシンに接続する( IPv4版 )
  1800. extern  int         ConnectNetWork_IPv6(            IPDATA_IPv6 IPData, int Port = -1 ) ;                                                   // 他マシンに接続する( IPv6版 )
  1801. extern  int         ConnectNetWork_ASync(           IPDATA      IPData, int Port = -1 ) ;                                                   // 他マシンに接続する( IPv4版 )、非同期版
  1802. extern  int         ConnectNetWork_IPv6_ASync(      IPDATA_IPv6 IPData, int Port = -1 ) ;                                                   // 他マシンに接続する( IPv6版 )、非同期版
  1803. extern  int         PreparationListenNetWork(       int Port = -1 ) ;                                                                       // 接続を受けられる状態にする( IPv4版 )
  1804. extern  int         PreparationListenNetWork_IPv6(  int Port = -1 ) ;                                                                       // 接続を受けられる状態にする( IPv6版 )
  1805. extern  int         StopListenNetWork(              void ) ;                                                                                // 接続を受けつけ状態の解除
  1806. extern  int         CloseNetWork(                   int NetHandle ) ;                                                                       // 接続を終了する
  1807.  
  1808. extern  int         GetNetWorkAcceptState(          int NetHandle ) ;                                                                       // 接続状態を取得する
  1809. extern  int         GetNetWorkDataLength(           int NetHandle ) ;                                                                       // 受信データの量を得る
  1810. extern  int         GetNetWorkSendDataLength(       int NetHandle ) ;                                                                       // 未送信のデータの量を得る
  1811. extern  int         GetNewAcceptNetWork(            void ) ;                                                                                // 新たに接続した通信回線を得る
  1812. extern  int         GetLostNetWork(                 void ) ;                                                                                // 接続を切断された通信回線を得る
  1813. extern  int         GetNetWorkIP(                   int NetHandle, IPDATA      *IpBuf ) ;                                                   // 接続先のIPを得る( IPv4版 )
  1814. extern  int         GetNetWorkIP_IPv6(              int NetHandle, IPDATA_IPv6 *IpBuf ) ;                                                   // 接続先のIPを得る( IPv6版 )
  1815. extern  int         GetMyIPAddress(                 IPDATA *IpBuf ) ;                                                                       // 自分のIPを得る
  1816. extern  int         SetConnectTimeOutWait(          int Time ) ;                                                                            // 接続のタイムアウトまでの時間を設定する
  1817. extern  int         SetUseDXNetWorkProtocol(        int Flag ) ;                                                                            // DXライブラリの通信形態を使うかどうかをセットする
  1818. extern  int         GetUseDXNetWorkProtocol(        void ) ;                                                                                // DXライブラリの通信形態を使うかどうかを取得する
  1819. extern  int         SetUseDXProtocol(               int Flag ) ;                                                                            // SetUseDXNetWorkProtocol の別名
  1820. extern  int         GetUseDXProtocol(               void ) ;                                                                                // GetUseDXNetWorkProtocol の別名
  1821. extern  int         SetNetWorkCloseAfterLostFlag(   int Flag ) ;                                                                            // 接続が切断された直後に接続ハンドルを解放するかどうかのフラグをセットする
  1822. extern  int         GetNetWorkCloseAfterLostFlag(   void ) ;                                                                                // 接続が切断された直後に接続ハンドルを解放するかどうかのフラグを取得する
  1823. //extern    int         SetProxySetting( int UseFlag, const char *Address, int Port ) ;                                                     // HTTP通信で使用するプロキシ設定を行う
  1824. //extern    int         GetProxySetting( int *UseFlagBuffer, char *AddressBuffer, int *PortBuffer ) ;                                       // HTTP通信で使用するプロキシ設定を取得する
  1825. //extern    int         SetIEProxySetting( void ) ;                                                                                         // IEのプロキシ設定を適応する
  1826.  
  1827. extern  int         NetWorkRecv(            int NetHandle, void *Buffer, int Length ) ;                                                     // 受信したデータを読み込む
  1828. extern  int         NetWorkRecvToPeek(      int NetHandle, void *Buffer, int Length ) ;                                                     // 受信したデータを読み込む、読み込んだデータはバッファから削除されない
  1829. extern  int         NetWorkRecvBufferClear( int NetHandle ) ;                                                                               // 受信したデータをクリアする
  1830. extern  int         NetWorkSend(            int NetHandle, void *Buffer, int Length ) ;                                                     // データを送信する
  1831.  
  1832. extern  int         MakeUDPSocket(          int RecvPort = -1 ) ;                                                                           // UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります )
  1833. extern  int         MakeUDPSocket_IPv6(     int RecvPort = -1 ) ;                                                                           // UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります )( IPv6版 )
  1834. extern  int         DeleteUDPSocket(        int NetUDPHandle ) ;                                                                            // UDPを使用した通信を行うソケットハンドルを削除する
  1835. extern  int         NetWorkSendUDP(         int NetUDPHandle, IPDATA       SendIP, int SendPort,  void *Buffer, int Length ) ;              // UDPを使用した通信で指定のIPにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます( 戻り値  0以上;送信できたデータサイズ  -1:エラー  -2:送信データが大きすぎる  -3:送信準備ができていない  )
  1836. extern  int         NetWorkSendUDP_IPv6(    int NetUDPHandle, IPDATA_IPv6  SendIP, int SendPort,  void *Buffer, int Length ) ;              // UDPを使用した通信で指定のIPにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます( 戻り値  0以上;送信できたデータサイズ  -1:エラー  -2:送信データが大きすぎる  -3:送信準備ができていない  )( IPv6版 )
  1837. extern  int         NetWorkRecvUDP(         int NetUDPHandle, IPDATA      *RecvIP, int *RecvPort, void *Buffer, int Length, int Peek ) ;    // UDPを使用した通信でデータを受信する、Peek に TRUE を渡すと受信に成功してもデータを受信キューから削除しません( 戻り値  0以上:受信したデータのサイズ  -1:エラー  -2:バッファのサイズが足りない  -3:受信データがない )
  1838. extern  int         NetWorkRecvUDP_IPv6(    int NetUDPHandle, IPDATA_IPv6 *RecvIP, int *RecvPort, void *Buffer, int Length, int Peek ) ;    // UDPを使用した通信でデータを受信する、Peek に TRUE を渡すと受信に成功してもデータを受信キューから削除しません( 戻り値  0以上:受信したデータのサイズ  -1:エラー  -2:バッファのサイズが足りない  -3:受信データがない )( IPv6版 )
  1839. //extern int        CheckNetWorkSendUDP(    int NetUDPHandle ) ;                                                                            // UDPを使用した通信でデータが送信できる状態かどうかを調べる( 戻り値  -1:エラー  TRUE:送信可能  FALSE:送信不可能 )
  1840. extern  int         CheckNetWorkRecvUDP(    int NetUDPHandle ) ;                                                                            // UDPを使用した通信で新たな受信データが存在するかどうかを調べる( 戻り値  -1:エラー  TRUE:受信データあり  FALSE:受信データなし )
  1841.  
  1842. /*  使用不可
  1843. extern  int         HTTP_FileDownload(          const char *FileURL, const char *SavePath = NULL , void **SaveBufferP = NULL , int *FileSize = NULL , char **ParamList = NULL ) ;                       // HTTP を使用してネットワーク上のファイルをダウンロードする
  1844. extern  int         HTTP_GetFileSize(           const char *FileURL ) ;                                                                     // HTTP を使用してネットワーク上のファイルのサイズを得る
  1845.  
  1846. extern  int         HTTP_StartFileDownload(     const char *FileURL, const char *SavePath, void **SaveBufferP = NULL , char **ParamList = NULL ) ;  // HTTP を使用したネットワーク上のファイルをダウンロードする処理を開始する
  1847. extern  int         HTTP_StartGetFileSize(      const char *FileURL ) ;                                                                     // HTTP を使用したネットワーク上のファイルのサイズを得る処理を開始する
  1848. extern  int         HTTP_Close(                 int HttpHandle ) ;                                                                          // HTTP の処理を終了し、ハンドルを解放する
  1849. extern  int         HTTP_CloseAll(              void ) ;                                                                                    // 全てのハンドルに対して HTTP_Close を行う
  1850. extern  int         HTTP_GetState(              int HttpHandle ) ;                                                                          // HTTP 処理の現在の状態を得る( NET_RES_COMPLETE 等 )
  1851. extern  int         HTTP_GetError(              int HttpHandle ) ;                                                                          // HTTP 処理でエラーが発生した場合、エラーの内容を得る( HTTP_ERR_NONE 等 )
  1852. extern  int         HTTP_GetDownloadFileSize(   int HttpHandle ) ;                                                                          // HTTP 処理で対象となっているファイルのサイズを得る( 戻り値: -1 = エラー・若しくはまだファイルのサイズを取得していない  0以上 = ファイルのサイズ )
  1853. extern  int         HTTP_GetDownloadedFileSize( int HttpHandle ) ;                                                                          // HTTP 処理で既にダウンロードしたファイルのサイズを取得する
  1854.  
  1855. extern  int         fgetsForNetHandle(          int NetHandle, char *strbuffer ) ;                                                          // fgets のネットワークハンドル版( -1:取得できず 0:取得できた )
  1856. extern  int         URLAnalys(                  const char *URL, char *HostBuf = NULL , char *PathBuf = NULL , char *FileNameBuf = NULL , int *PortBuf = NULL ) ;   // URLを解析する
  1857. extern  int         URLConvert(                 char *URL, int ParamConvert = TRUE , int NonConvert = FALSE ) ;                             // HTTP に渡せない記号が使われた文字列を渡せるような文字列に変換する( 戻り値: -1 = エラー  0以上 = 変換後の文字列のサイズ )
  1858. extern  int         URLParamAnalysis(           char **ParamList, char **ParamStringP ) ;                                                   // HTTP 用パラメータリストから一つのパラメータ文字列を作成する( 戻り値:  -1 = エラー  0以上 = パラメータの文字列の長さ )
  1859. */
  1860.  
  1861. #endif // DX_NON_NETWORK
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878. // DxInputString.cpp関数プロトタイプ宣言
  1879.  
  1880. #ifndef DX_NON_INPUTSTRING
  1881.  
  1882. // 文字コードバッファ操作関係
  1883. extern  int         StockInputChar(     TCHAR CharCode ) ;                              // 文字コードバッファに文字コードをストックする
  1884. extern  int         ClearInputCharBuf(  void ) ;                                        // 文字コードバッファをクリアする
  1885. extern  TCHAR       GetInputChar(       int DeleteFlag ) ;                              // 文字コードバッファに溜まったデータから文字コードを一つ取得する
  1886. extern  TCHAR       GetInputCharWait(   int DeleteFlag ) ;                              // 文字コードバッファに溜まったデータから文字コードを一つ取得する、バッファになにも文字コードがない場合は文字コードがバッファに一文字分溜まるまで待つ
  1887.  
  1888. extern  int         GetOneChar(         TCHAR *CharBuffer, int DeleteFlag ) ;           // 文字コードバッファに溜まったデータから1文字分取得する
  1889. extern  int         GetOneCharWait(     TCHAR *CharBuffer, int DeleteFlag ) ;           // 文字コードバッファに溜まったデータから1文字分取得する、バッファに何も文字コードがない場合は文字コードがバッファに一文字分溜まるまで待つ
  1890. extern  int         GetCtrlCodeCmp(     TCHAR Char ) ;                                  // 指定の文字コードがアスキーコントロールコードか調べる
  1891.  
  1892. #endif // DX_NON_INPUTSTRING
  1893.  
  1894. #ifndef DX_NON_KEYEX
  1895.  
  1896. extern  int         DrawIMEInputString(             int x, int y, int SelectStringNum ) ;   // 画面上に入力中の文字列を描画する
  1897. extern  int         SetUseIMEFlag(                  int UseFlag ) ;                         // IMEを使用するかどうかを設定する
  1898. extern  int         SetInputStringMaxLengthIMESync( int Flag ) ;                            // IMEで入力できる最大文字数を MakeKeyInput の設定に合わせるかどうかをセットする( TRUE:あわせる  FALSE:あわせない(デフォルト) )
  1899. extern  int         SetIMEInputStringMaxLength(     int Length ) ;                          // IMEで一度に入力できる最大文字数を設定する( 0:制限なし  1以上:指定の文字数で制限 )
  1900.  
  1901. #endif // DX_NON_KEYEX
  1902.  
  1903. extern  int         GetStringPoint(             const TCHAR *String, int Point ) ;          // 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る
  1904. extern  int         GetStringPoint2(            const TCHAR *String, int Point ) ;          // 全角文字、半角文字入り乱れる中から指定の文字数での全角文字数を得る
  1905.  
  1906. #ifndef DX_NON_FONT
  1907. extern  int         DrawObtainsString(          int x, int y, int AddY, const TCHAR *String, int StrColor, int StrEdgeColor = 0 , int FontHandle = -1 , int SelectBackColor = -1 , int SelectStrColor = 0 , int SelectStrEdgeColor = -1 , int SelectStart = -1 , int SelectEnd = -1 ) ;     // 描画可能領域に収まるように改行しながら文字列を描画
  1908. #endif // DX_NON_FONT
  1909. extern  int         DrawObtainsBox(             int x1, int y1, int x2, int y2, int AddY, int Color, int FillFlag ) ;                                                                                                                                                                       // 描画可能領域に収まるように補正を加えながら矩形を描画
  1910.  
  1911. #ifndef DX_NON_KEYEX
  1912.  
  1913. extern  int         InputStringToCustom(        int x, int y, int BufLength, TCHAR *StrBuffer, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = FALSE ) ;     // 文字列の入力取得
  1914.  
  1915. extern  int         KeyInputString(             int x, int y, int CharMaxLength, TCHAR *StrBuffer, int CancelValidFlag ) ;                                                      // 文字列の入力取得
  1916. extern  int         KeyInputSingleCharString(   int x, int y, int CharMaxLength, TCHAR *StrBuffer, int CancelValidFlag ) ;                                                      // 半角文字列のみの入力取得
  1917. extern  int         KeyInputNumber(             int x, int y, int MaxNum, int MinNum, int CancelValidFlag ) ;                                                                   // 数値の入力取得
  1918.  
  1919. extern  int         GetIMEInputModeStr(         TCHAR *GetBuffer ) ;                                                                                                            // IMEの入力モード文字列を取得する
  1920. extern  IMEINPUTDATA* GetIMEInputData(          void ) ;                                                                                                                        // IMEで入力中の文字列の情報を取得する
  1921. #if defined( DX_GCC_COMPILE ) || defined( __ANDROID )
  1922. extern  int         SetKeyInputStringColor(     ULONGLONG NmlStr, ULONGLONG NmlCur, ULONGLONG IMEStr, ULONGLONG IMECur, ULONGLONG IMELine, ULONGLONG IMESelectStr, ULONGLONG IMEModeStr , ULONGLONG NmlStrE = 0 , ULONGLONG IMESelectStrE = 0 , ULONGLONG IMEModeStrE = 0 , ULONGLONG IMESelectWinE = 0xffffffffffffffffULL ,   ULONGLONG IMESelectWinF = 0xffffffffffffffffULL , ULONGLONG SelectStrBackColor = 0xffffffffffffffffULL , ULONGLONG SelectStrColor = 0xffffffffffffffffULL , ULONGLONG SelectStrEdgeColor = 0xffffffffffffffffULL ) ;    // InputString関数使用時の文字の各色を変更する
  1923. #else // defined( DX_GCC_COMPILE ) || defined( __ANDROID )
  1924. extern  int         SetKeyInputStringColor(     ULONGLONG NmlStr, ULONGLONG NmlCur, ULONGLONG IMEStr, ULONGLONG IMECur, ULONGLONG IMELine, ULONGLONG IMESelectStr, ULONGLONG IMEModeStr , ULONGLONG NmlStrE = 0 , ULONGLONG IMESelectStrE = 0 , ULONGLONG IMEModeStrE = 0 , ULONGLONG IMESelectWinE = 0xffffffffffffffff ,  ULONGLONG IMESelectWinF = 0xffffffffffffffff , ULONGLONG SelectStrBackColor = 0xffffffffffffffff , ULONGLONG SelectStrColor = 0xffffffffffffffff , ULONGLONG SelectStrEdgeColor = 0xffffffffffffffff ) ;    // InputString関数使用時の文字の各色を変更する
  1925. #endif // defined( DX_GCC_COMPILE ) || defined( __ANDROID )
  1926. extern  int         SetKeyInputStringFont(      int FontHandle ) ;                                                                                                              // キー入力文字列描画関連で使用するフォントのハンドルを変更する(-1でデフォルトのフォントハンドル)
  1927. extern  int         DrawKeyInputModeString(     int x, int y ) ;                                                                                                                // 入力モード文字列を描画する
  1928.  
  1929. extern  int         InitKeyInput(               void ) ;                                                                                                                        // キー入力データ初期化
  1930. extern  int         MakeKeyInput(               int MaxStrLength, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = FALSE ) ;          // 新しいキー入力ハンドルの作成
  1931. extern  int         DeleteKeyInput(             int InputHandle ) ;                                                                                                             // キー入力ハンドルの削除
  1932. extern  int         SetActiveKeyInput(          int InputHandle ) ;                                                                                                             // 指定のキー入力ハンドルをアクティブにする( -1 を指定するとアクティブなキー入力ハンドルが無い状態になります )
  1933. extern  int         GetActiveKeyInput(          void ) ;                                                                                                                        // 現在アクティブになっているキー入力ハンドルを取得する
  1934. extern  int         CheckKeyInput(              int InputHandle ) ;                                                                                                             // キー入力ハンドルの入力が終了しているか取得する
  1935. extern  int         ReStartKeyInput(            int InputHandle ) ;                                                                                                             // 入力が完了したキー入力ハンドルを再度編集状態に戻す
  1936. extern  int         ProcessActKeyInput(         void ) ;                                                                                                                        // キー入力ハンドル処理関数
  1937. extern  int         DrawKeyInputString(         int x, int y, int InputHandle ) ;                                                                                               // キー入力ハンドルの入力中情報の描画
  1938.  
  1939. extern  int         SetKeyInputSelectArea(      int  SelectStart, int  SelectEnd, int InputHandle ) ;                                                                           // キー入力ハンドルの指定の領域を選択状態にする( SelectStart と SelectEnd に -1 を指定すると選択状態が解除されます )
  1940. extern  int         GetKeyInputSelectArea(      int *SelectStart, int *SelectEnd, int InputHandle ) ;                                                                           // キー入力ハンドルの選択領域を取得する
  1941. extern  int         SetKeyInputDrawStartPos(    int DrawStartPos, int InputHandle ) ;                                                                                           // キー入力ハンドルの描画開始文字位置を設定する
  1942. extern  int         GetKeyInputDrawStartPos(    int InputHandle ) ;                                                                                                             // キー入力ハンドルの描画開始文字位置を取得する
  1943. extern  int         SetKeyInputCursorBrinkTime( int Time ) ;                                                                                                                    // キー入力ハンドルのキー入力時のカーソルの点滅する早さをセットする
  1944. extern  int         SetKeyInputCursorBrinkFlag( int Flag ) ;                                                                                                                    // キー入力ハンドルのキー入力時のカーソルを点滅させるかどうかをセットする
  1945. extern  int         SetKeyInputString(          const TCHAR *String, int InputHandle ) ;                                                                                        // キー入力ハンドルに指定の文字列をセットする
  1946. extern  int         SetKeyInputNumber(          int   Number,        int InputHandle ) ;                                                                                        // キー入力ハンドルに指定の数値を文字に置き換えてセットする
  1947. extern  int         SetKeyInputNumberToFloat(   float Number,        int InputHandle ) ;                                                                                        // キー入力ハンドルに指定の浮動小数点値を文字に置き換えてセットする
  1948. extern  int         GetKeyInputString(          TCHAR *StrBuffer,    int InputHandle ) ;                                                                                        // キー入力ハンドルの入力中の文字列を取得する
  1949. extern  int         GetKeyInputNumber(          int InputHandle ) ;                                                                                                             // キー入力ハンドルの入力中の文字列を整数値として取得する
  1950. extern  float       GetKeyInputNumberToFloat(   int InputHandle ) ;                                                                                                             // キー入力ハンドルの入力中の文字列を浮動小数点値として取得する
  1951. extern  int         SetKeyInputCursorPosition(  int Position,        int InputHandle ) ;                                                                                        // キー入力ハンドルの現在のカーソル位置を設定する
  1952. extern  int         GetKeyInputCursorPosition(  int InputHandle ) ;                                                                                                             // キー入力ハンドルの現在のカーソル位置を取得する
  1953.  
  1954. #endif // DX_NON_KEYEX
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966. // DxFile.cpp関数プロトタイプ宣言
  1967.  
  1968. // ファイルアクセス関数
  1969. extern  int         FileRead_open(              const TCHAR *FilePath , int ASync = FALSE ) ;                   // ファイルを開く
  1970. extern  int         FileRead_size(              const TCHAR *FilePath ) ;                                       // ファイルのサイズを取得する
  1971. extern  int         FileRead_close(             int FileHandle ) ;                                              // ファイルを閉じる
  1972. extern  int         FileRead_tell(              int FileHandle ) ;                                              // ファイルポインタの読み込み位置を取得する
  1973. extern  int         FileRead_seek(              int FileHandle , int Offset , int Origin ) ;                    // ファイルポインタの読み込み位置を変更する
  1974. extern  int         FileRead_read(              void *Buffer , int ReadSize , int FileHandle ) ;                // ファイルからデータを読み込む
  1975. extern  int         FileRead_idle_chk(          int FileHandle ) ;                                              // ファイル読み込みが完了しているかどうかを取得する
  1976. extern  int         FileRead_eof(               int FileHandle ) ;                                              // ファイルの読み込み位置が終端に達しているかどうかを取得する
  1977. extern  int         FileRead_gets(              TCHAR *Buffer , int BufferSize , int FileHandle ) ;             // ファイルから文字列を読み出す
  1978. extern  TCHAR       FileRead_getc(              int FileHandle ) ;                                              // ファイルから一文字読み出す
  1979. extern  int         FileRead_scanf(             int FileHandle , const TCHAR *Format , ... ) ;                  // ファイルから書式化されたデータを読み出す
  1980.  
  1981. extern  DWORD_PTR   FileRead_createInfo(        const TCHAR *ObjectPath ) ;                                     // ファイル情報ハンドルを作成する( 戻り値  -1:エラー  -1以外:ファイル情報ハンドル )
  1982. extern  int         FileRead_getInfoNum(        DWORD_PTR FileInfoHandle ) ;                                    // ファイル情報ハンドル中のファイルの数を取得する
  1983. extern  int         FileRead_getInfo(           int Index , FILEINFO *Buffer , DWORD_PTR FileInfoHandle ) ;     // ファイル情報ハンドル中のファイルの情報を取得する
  1984. extern  int         FileRead_deleteInfo(        DWORD_PTR FileInfoHandle ) ;                                    // ファイル情報ハンドルを削除する
  1985.  
  1986. extern  DWORD_PTR   FileRead_findFirst(         const TCHAR *FilePath, FILEINFO *Buffer ) ;                     // 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する( 戻り値: -1=エラー  -1以外=ファイル検索ハンドル )
  1987. extern  int         FileRead_findNext(          DWORD_PTR FindHandle, FILEINFO *Buffer ) ;                      // 条件の合致する次のファイルの情報を取得する( 戻り値: -1=エラー  0=成功 )
  1988. extern  int         FileRead_findClose(         DWORD_PTR FindHandle ) ;                                        // ファイル検索ハンドルを閉じる( 戻り値: -1=エラー  0=成功 )
  1989.  
  1990. // 設定関係関数
  1991. extern  int         GetStreamFunctionDefault(   void ) ;                                                        // DXライブラリでストリームデータアクセスに使用する関数がデフォルトのものか調べる( TRUE:デフォルトのもの  FALSE:デフォルトではない )
  1992. extern  int         ChangeStreamFunction(       STREAMDATASHREDTYPE2 *StreamThread ) ;                          // DXライブラリでストリームデータアクセスに使用する関数を変更する
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005. // DxInput.cpp関数プロトタイプ宣言
  2006.  
  2007. #ifndef DX_NON_INPUT
  2008.  
  2009. // 入力状態取得関数
  2010. extern  int         CheckHitKey(                            int KeyCode ) ;                                                         // キーボードの押下状態を取得する
  2011. extern  int         CheckHitKeyAll(                         int CheckType = DX_CHECKINPUT_ALL ) ;                                   // どれか一つでもキーが押されているかどうかを取得( 押されていたら戻り値が 0 以外になる )
  2012. extern  int         GetHitKeyStateAll(                      DX_CHAR *KeyStateBuf ) ;                                                // すべてのキーの押下状態を取得する( KeyStateBuf:char型256個分の配列の先頭アドレス )
  2013. extern  int         SetKeyExclusiveCooperativeLevelFlag(    int Flag ) ;                                                            // DirectInput のキーボードの協調レベルを排他レベルにするかどうかを設定する( TRUE:排他レベルにする  FALSE:標準レベルにする( デフォルト ) )、DxLib_Init の呼び出し前でのみ実行可能
  2014. extern  int         GetJoypadNum(                           void ) ;                                                                // ジョイパッドが接続されている数を取得する
  2015. extern  int         GetJoypadInputState(                    int InputType ) ;                                                       // ジョイパッドの入力状態を取得する
  2016. extern  int         GetJoypadAnalogInput(                   int *XBuf, int *YBuf, int InputType ) ;                                 // ジョイパッドのアナログ的なスティック入力情報を得る
  2017. extern  int         GetJoypadAnalogInputRight(              int *XBuf, int *YBuf, int InputType ) ;                                 // ( 使用非推奨 )ジョイパッドのアナログ的なスティック入力情報を得る(右スティック用)
  2018. extern  int         GetJoypadDirectInputState(              int InputType, DINPUT_JOYSTATE *DInputState ) ;                         // DirectInput から得られるジョイパッドの生のデータを取得する( DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラー )
  2019. extern  int         KeyboradBufferProcess(                  void ) ;                                                                // キーボードのバッファからデータを取得する処理
  2020. extern  int         GetJoypadGUID(                          int PadIndex, GUID *GuidBuffer ) ;                                      // ジョイパッドのGUIDを得る
  2021. extern  int         ConvertKeyCodeToVirtualKey(             int KeyCode ) ;                                                         // DXライブラリのキーコード( KEY_INPUT_A など )に対応する Windows の仮想キーコード( VK_LEFT など ) を取得する( KeyCode:変換したいDXライブラリのキーコード 戻り値:Windowsの仮想キーコード )
  2022. extern  int         SetJoypadInputToKeyInput(               int InputType, int PadInput, int KeyInput1, int KeyInput2 = -1 , int KeyInput3 = -1 , int KeyInput4 = -1  ) ; // ジョイパッドの入力に対応したキーボードの入力を設定する( InputType:設定を変更するパッドの識別子( DX_INPUT_PAD1等 )  PadInput:設定を変更するパッドボタンの識別子( PAD_INPUT_1 等 )  KeyInput1:PadInput を押下したことにするキーコード( KEY_INPUT_A など )その1  KeyInput2:その2、-1で設定なし  KeyInput3:その3、-1で設定なし  KeyInput4:その4、-1で設定なし )
  2023. extern  int         SetJoypadDeadZone(                      int InputType, double Zone ) ;                                          // ジョイパッドの無効ゾーンの設定を行う( InputType:設定を変更するパッドの識別子( DX_INPUT_PAD1等 )   Zone:新しい無効ゾーン( 0.0 ~ 1.0 )、デフォルト値は 0.35 )
  2024. extern  int         StartJoypadVibration(                   int InputType, int Power, int Time ) ;                                  // ジョイパッドの振動を開始する
  2025. extern  int         StopJoypadVibration(                    int InputType ) ;                                                       // ジョイパッドの振動を停止する
  2026. extern  int         GetJoypadPOVState(                      int InputType, int POVNumber ) ;                                        // ジョイパッドのPOV入力の状態を得る( 戻り値 指定のPOVデータの角度、単位は角度の100倍( 90度なら 9000 ) 中心位置にある場合は -1 が返る )
  2027. extern  int         GetJoypadName(                          int InputType, TCHAR *InstanceNameBuffer, TCHAR *ProductNameBuffer ) ;  // ジョイパッドのデバイス登録名と製品登録名を取得する
  2028. extern  int         ReSetupJoypad(                          void ) ;                                                                // ジョイパッドの再セットアップを行う( 新たに接続されたジョイパッドがあったら検出される )
  2029.  
  2030. extern  int         SetKeyboardNotDirectInputFlag(          int Flag ) ;                                                            // キーボードの入力処理に DirectInput を使わないかどうかを設定する( TRUE:DirectInput を使わず、Windows標準機能を使用する  FALSE:DirectInput を使用する )
  2031. extern  int         SetUseDirectInputFlag(                  int Flag ) ;                                                            // 入力処理に DirectInput を使用するかどうかを設定する( TRUE:DirectInput を使用する  FALSE:DirectInput を使わず、Windows標準機能を使用する )
  2032. extern  int         SetUseJoypadVibrationFlag(              int Flag ) ;                                                            // ジョイパッドの振動機能を使用するかどうかを設定する( TRUE:使用する  FALSE:使用しない )
  2033.  
  2034. #endif // DX_NON_INPUT
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042. #ifndef DX_NOTUSE_DRAWFUNCTION
  2043.  
  2044. // 画像処理系関数プロトタイプ宣言
  2045.  
  2046. // グラフィックハンドル作成関係関数
  2047. extern  int         MakeGraph(                      int SizeX, int SizeY, int NotUse3DFlag = FALSE ) ;                          // 指定サイズのグラフィックハンドルを作成する
  2048. extern  int         MakeScreen(                     int SizeX, int SizeY, int UseAlphaChannel = FALSE ) ;                       // SetDrawScreen で描画対象にできるグラフィックハンドルを作成する
  2049. extern  int         DerivationGraph(                int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle ) ;           // 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する
  2050. extern  int         DeleteGraph(                    int GrHandle, int LogOutFlag = FALSE ) ;                                    // グラフィックハンドルを削除する
  2051. extern  int         DeleteSharingGraph(             int GrHandle ) ;                                                            // 指定のグラフィックハンドルと、同じグラフィックハンドルから派生しているグラフィックハンドル( DerivationGraph で派生したハンドル、LoadDivGraph 読み込んで作成された複数のハンドル )を一度に削除する
  2052. extern  int         GetGraphNum(                    void ) ;                                                                    // 有効なグラフィックハンドルの数を取得する
  2053. extern  int         FillGraph(                      int GrHandle, int Red, int Green, int Blue, int Alpha = 255 ) ;             // グラフィックハンドルを指定の色で塗りつぶす
  2054. extern  int         SetGraphLostFlag(               int GrHandle, int *LostFlag ) ;                                             // 指定のグラフィックハンドルが削除された際に 1 にする変数のアドレスを設定する
  2055. extern  int         InitGraph(                      int LogOutFlag = FALSE ) ;                                                  // すべてのグラフィックハンドルを削除する
  2056. extern  int         ReloadFileGraphAll(             void ) ;                                                                    // ファイルから画像を読み込んだ全てのグラフィックハンドルについて、再度ファイルから画像を読み込む
  2057.  
  2058. // グラフィックハンドルへの画像転送関数
  2059. extern  int         BltBmpToGraph(                  COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int CopyPointX, int CopyPointY,                                                                                 int GrHandle ) ;                     // BMPの内容をグラフィックハンドルに転送
  2060. extern  int         BltBmpToDivGraph(               COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int AllNum, int XNum, int YNum, int Width, int Height,                                                          int *GrHandle, int ReverseFlag ) ;   // BMPの内容を分割作成したグラフィックハンドルたちに転送
  2061. extern  int         BltBmpOrGraphImageToGraph(      COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int BmpFlag, BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, int CopyPointX, int CopyPointY,                        int GrHandle ) ;                     // BMP か BASEIMAGE をグラフィックハンドルに転送
  2062. extern  int         BltBmpOrGraphImageToGraph2(     COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int BmpFlag, BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, RECT *SrcRect, int DestX, int DestY,                   int GrHandle ) ;                     // BMP か BASEIMAGE の指定の領域をグラフィックハンドルに転送
  2063. extern  int         BltBmpOrGraphImageToDivGraph(   COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int BmpFlag, BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, int AllNum, int XNum, int YNum, int Width, int Height, int *GrHandle, int ReverseFlag ) ;   // BMP か BASEIMAGE を分割作成したグラフィックハンドルたちに転送
  2064.  
  2065. // 画像からグラフィックハンドルを作成する関数
  2066. extern  int         LoadBmpToGraph(                 const TCHAR *FileName, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL ) ;                               // 画像ファイルからグラフィックハンドルを作成する
  2067. extern  int         LoadGraph(                      const TCHAR *FileName, int NotUse3DFlag = FALSE ) ;                                                                                 // 画像ファイルからグラフィックハンドルを作成する
  2068. extern  int         LoadReverseGraph(               const TCHAR *FileName, int NotUse3DFlag = FALSE ) ;                                                                                 // 画像ファイルを反転したものでグラフィックハンドルを作成する
  2069. extern  int         LoadDivGraph(                   const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int NotUse3DFlag = FALSE ) ;           // 画像ファイルを分割してグラフィックハンドルを作成する
  2070. extern  int         LoadDivBmpToGraph(              const TCHAR *FileName, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf, int TextureFlag, int ReverseFlag ) ;   // 画像ファイルを分割してグラフィックハンドルを作成する
  2071. extern  int         LoadReverseDivGraph(            const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int NotUse3DFlag = FALSE ) ;           // 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
  2072. extern  int         LoadBlendGraph(                 const TCHAR *FileName ) ;                                                                                                           // 画像ファイルからブレンド用グラフィックハンドルを作成する
  2073. #ifdef __WINDOWS__
  2074. extern  int         LoadGraphToResource(            int ResourceID ) ;                                                                                                                  // 画像リソースからグラフィックハンドルを作成する
  2075. extern  int         LoadDivGraphToResource(         int ResourceID, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ;                                            // 画像リソースを分割してグラフィックハンドルを作成する
  2076. extern  int         LoadGraphToResource(            const TCHAR *ResourceName, const TCHAR *ResourceType ) ;                                                                            // 画像リソースからグラフィックハンドルを作成する
  2077. extern  int         LoadDivGraphToResource(         const TCHAR *ResourceName, const TCHAR *ResourceType, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ;      // 画像リソースを分割してグラフィックハンドルを作成する
  2078. #endif // __WINDOWS__
  2079.  
  2080. extern  int         CreateGraphFromMem(             void *RGBFileImage, int RGBFileImageSize,               void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 ,      int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // メモリ上の画像イメージからグラフィックハンドルを作成する
  2081. extern  int         ReCreateGraphFromMem(           void *RGBFileImage, int RGBFileImageSize, int GrHandle, void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 ,      int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // メモリ上の画像イメージから既存のグラフィックハンドルにデータを転送する
  2082. extern  int         CreateDivGraphFromMem(          void *RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,         int TextureFlag = TRUE , int ReverseFlag = FALSE , void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 ) ;     // メモリ上の画像イメージから分割グラフィックハンドルを作成する
  2083. extern  int         ReCreateDivGraphFromMem(        void *RGBFileImage, int RGBFileImageSize, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,         int TextureFlag = TRUE , int ReverseFlag = FALSE , void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 ) ;     // メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する
  2084. extern  int         CreateGraphFromBmp(             BITMAPINFO *RGBBmpInfo, void *RGBBmpImage,               BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // ビットマップデータからグラフィックハンドルを作成する
  2085. extern  int         ReCreateGraphFromBmp(           BITMAPINFO *RGBBmpInfo, void *RGBBmpImage, int GrHandle, BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // ビットマップデータから既存のグラフィックハンドルにデータを転送する
  2086. extern  int         CreateDivGraphFromBmp(          BITMAPINFO *RGBBmpInfo, void *RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,        int TextureFlag = TRUE , int ReverseFlag = FALSE , BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL ) ; // ビットマップデータから分割グラフィックハンドルを作成する
  2087. extern  int         ReCreateDivGraphFromBmp(        BITMAPINFO *RGBBmpInfo, void *RGBBmpImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,        int TextureFlag = TRUE , int ReverseFlag = FALSE , BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL ) ; // ビットマップデータから既存の分割グラフィックハンドルにデータを転送する
  2088. extern  int         CreateDXGraph(                  BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage,                                                                             int TextureFlag ) ;                                                                                                 // 基本イメージデータからサイズを割り出し、それに合ったグラフィックハンドルを作成する
  2089. extern  int         CreateGraphFromGraphImage(      BASEIMAGE *RGBImage,                                                                                                    int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータからグラフィックハンドルを作成する
  2090. extern  int         CreateGraphFromGraphImage(      BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage,                                                                             int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータからグラフィックハンドルを作成する
  2091. extern  int         ReCreateGraphFromGraphImage(    BASEIMAGE *RGBImage,                        int GrHandle,                                                               int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから既存のグラフィックハンドルにデータを転送する
  2092. extern  int         ReCreateGraphFromGraphImage(    BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage, int GrHandle,                                                               int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから既存のグラフィックハンドルにデータを転送する
  2093. extern  int         CreateDivGraphFromGraphImage(   BASEIMAGE *RGBImage,                        int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,       int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから分割グラフィックハンドルを作成する
  2094. extern  int         CreateDivGraphFromGraphImage(   BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,       int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから分割グラフィックハンドルを作成する
  2095. extern  int         ReCreateDivGraphFromGraphImage( BASEIMAGE *RGBImage,                        int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,       int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
  2096. extern  int         ReCreateDivGraphFromGraphImage( BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf,       int TextureFlag = TRUE , int ReverseFlag = FALSE ) ;                                                                // 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
  2097. extern  int         CreateGraph(                    int Width, int Height, int Pitch, void *RGBImage, void *AlphaImage = NULL , int GrHandle = -1 ) ;                                                                                                                                           // メモリ上のビットマップイメージからグラフィックハンドルを作成する
  2098. extern  int         CreateDivGraph(                 int Width, int Height, int Pitch, void *RGBImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf, void *AlphaImage = NULL ) ;                                                                                         // メモリ上のビットマップイメージから分割グラフィックハンドルを作成する
  2099. extern  int         ReCreateGraph(                  int Width, int Height, int Pitch, void *RGBImage, int GrHandle, void *AlphaImage = NULL ) ;                                                                                                                                                 // メモリ上のビットマップイメージからグラフィックハンドルを再作成する
  2100. #ifndef DX_NON_SOFTIMAGE
  2101. extern  int         CreateBlendGraphFromSoftImage(  int SIHandle ) ;                                                                                                                    // ソフトウエアで扱うイメージからブレンド用画像グラフィックハンドルを作成する( -1:エラー  -1以外:ブレンド用グラフィックハンドル )
  2102. extern  int         CreateGraphFromSoftImage(       int SIHandle ) ;                                                                                                                    // ソフトウエアで扱うイメージからグラフィックハンドルを作成する( -1:エラー  -1以外:グラフィックハンドル )
  2103. extern  int         CreateGraphFromRectSoftImage(   int SIHandle, int x, int y, int SizeX, int SizeY ) ;                                                                                // ソフトウエアで扱うイメージの指定の領域を使ってグラフィックハンドルを作成する( -1:エラー  -1以外:グラフィックハンドル )
  2104. extern  int         ReCreateGraphFromSoftImage(     int SIHandle, int GrHandle ) ;                                                                                                      // ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
  2105. extern  int         ReCreateGraphFromRectSoftImage( int SIHandle, int x, int y, int SizeX, int SizeY, int GrHandle ) ;                                                                  // ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
  2106. extern  int         CreateDivGraphFromSoftImage(    int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf ) ;                                              // ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する
  2107. #endif // DX_NON_SOFTIMAGE
  2108. extern  int         CreateGraphFromBaseImage(       BASEIMAGE *BaseImage ) ;                                                                                                            // 基本イメージデータからグラフィックハンドルを作成する
  2109. extern  int         CreateGraphFromRectBaseImage(   BASEIMAGE *BaseImage, int x, int y, int SizeX, int SizeY ) ;                                                                        // 基本イメージデータの指定の領域を使ってグラフィックハンドルを作成する
  2110. extern  int         ReCreateGraphFromBaseImage(     BASEIMAGE *BaseImage,                                     int GrHandle ) ;                                                          // 基本イメージデータから既存のグラフィックハンドルに画像データを転送する
  2111. extern  int         ReCreateGraphFromRectBaseImage( BASEIMAGE *BaseImage, int x, int y, int SizeX, int SizeY, int GrHandle ) ;                                                          // 基本イメージデータの指定の領域を使って既存のグラフィックハンドルに画像データを転送する
  2112. extern  int         CreateDivGraphFromBaseImage(    BASEIMAGE *BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf ) ;                                      // 基本イメージデータから分割グラフィックハンドルを作成する
  2113. extern  int         ReloadGraph(                    const TCHAR *FileName, int GrHandle, int ReverseFlag = FALSE ) ;                                                                    // 画像ファイルからグラフィックハンドルへ画像データを転送する
  2114. extern  int         ReloadDivGraph(                 const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int ReverseFlag = FALSE ) ;            // 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する
  2115. extern  int         ReloadReverseGraph(             const TCHAR *FileName, int GrHandle ) ;                                                                                             // ReloadGraph の画像反転処理追加版
  2116. extern  int         ReloadReverseDivGraph(          const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ;                                     // ReloadDivGraph の画像反転処理追加版
  2117.  
  2118. // グラフィックハンドル作成時設定係関数
  2119. extern  int         SetGraphColorBitDepth(                      int ColorBitDepth ) ;                           // SetCreateGraphColorBitDepth の旧名称
  2120. extern  int         GetGraphColorBitDepth(                      void ) ;                                        // GetCreateGraphColorBitDepth の旧名称
  2121. extern  int         SetCreateGraphColorBitDepth(                int BitDepth ) ;                                // 作成するグラフィックハンドルの色深度を設定する
  2122. extern  int         GetCreateGraphColorBitDepth(                void ) ;                                        // 作成するグラフィックハンドルの色深度を取得する
  2123. extern  int         SetCreateGraphChannelBitDepth(              int BitDepth ) ;                                // 作成するグラフィックハンドルの1チャンネル辺りのビット深度を設定する
  2124. extern  int         GetCreateGraphChannelBitDepth(              void ) ;                                        // 作成するグラフィックハンドルの1チャンネル辺りのビット深度を取得する
  2125. extern  int         SetDrawValidGraphCreateFlag(                int Flag ) ;                                    // SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定する( TRUE:描画可能グラフィックハンドルを作成する  FLASE:通常のグラフィックハンドルを作成する( デフォルト ) )
  2126. extern  int         GetDrawValidGraphCreateFlag(                void ) ;                                        // SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定を取得する
  2127. extern  int         SetDrawValidFlagOf3DGraph(                  int Flag ) ;                                    // SetDrawValidGraphCreateFlag の旧名称
  2128. extern  int         SetLeftUpColorIsTransColorFlag(             int Flag ) ;                                    // 画像ファイルからグラフィックハンドルを作成する際に画像左上の色を透過色として扱うかどうかを設定する( TRUE:透過色として扱う  FALSE:透過色として扱わない( デフォルト ) )
  2129. extern  int         SetUseBlendGraphCreateFlag(                 int Flag ) ;                                    // ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を行う( TRUE:ブレンド画像として読み込む  FALSE:通常画像として読み込む( デフォルト ) )
  2130. extern  int         GetUseBlendGraphCreateFlag(                 void ) ;                                        // ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を取得する
  2131. extern  int         SetUseAlphaTestGraphCreateFlag(             int Flag ) ;                                    // アルファテストを使用するグラフィックハンドルを作成するかどうかを設定する( TRUE:アルファテストを使用する( デフォルト )  FALSE:アルファテストを使用しない )
  2132. extern  int         GetUseAlphaTestGraphCreateFlag(             void ) ;                                        // アルファテストを使用するグラフィックハンドルを作成するかどうかを取得する
  2133. extern  int         SetUseAlphaTestFlag(                        int Flag ) ;                                    // SetUseAlphaTestGraphCreateFlag の旧名称
  2134. extern  int         GetUseAlphaTestFlag(                        void ) ;                                        // GetUseAlphaTestGraphCreateFlag の旧名称
  2135. extern  int         SetUseNoBlendModeParam(                     int Flag ) ;                                    // SetDrawBlendMode 関数の第一引数に DX_BLENDMODE_NOBLEND を代入した際に、デフォルトでは第二引数は内部で255を指定したことになるが、その自動255化をしないかどうかを設定する( TRUE:しない(第二引数の値が使用される)   FALSE:する(第二引数の値は無視されて 255 が常に使用される)(デフォルト) )αチャンネル付き画像に対して描画を行う場合のみ意味がある関数
  2136. extern  int         SetDrawValidAlphaChannelGraphCreateFlag(    int Flag ) ;                                    // SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )( TRUE:αチャンネル付き   FALSE:αチャンネルなし( デフォルト ) )
  2137. extern  int         GetDrawValidAlphaChannelGraphCreateFlag(    void ) ;                                        // SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを取得する
  2138. extern  int         SetDrawValidFloatTypeGraphCreateFlag(       int Flag ) ;                                    // SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )、グラフィックスデバイスが浮動小数点型のピクセルフォーマットに対応していない場合はグラフィックハンドルの作成に失敗する( TRUE:浮動小数点型  FALSE:整数型( デフォルト ) )
  2139. extern  int         GetDrawValidFloatTypeGraphCreateFlag(       void ) ;                                        // SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを取得する
  2140. extern  int         SetDrawValidGraphCreateZBufferFlag(         int Flag ) ;                                    // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを設定する( TRUE:専用のZバッファを作成する( デフォルト )  FALSE:専用のZバッファは作成しない )
  2141. extern  int         GetDrawValidGraphCreateZBufferFlag(         void ) ;                                        // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のZバッファも作成するかどうかを取得する
  2142. extern  int         SetCreateDrawValidGraphChannelNum(          int ChannelNum ) ;                              // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を設定する( ChannelNum:チャンネル数( 指定可能な値は 1, 2, 4 の何れか( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )
  2143. extern  int         GetCreateDrawValidGraphChannelNum(          void ) ;                                        // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を取得する
  2144. extern  int         SetDrawValidMultiSample(                    int Samples, int Quality ) ;                    // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するマルチサンプリング( アンチエイリアシング )設定を行う( Samples:マルチサンプル処理に使用するドット数( 多いほど重くなります )  Quality:マルチサンプル処理の品質 )
  2145. extern  int         GetMultiSampleQuality(                      int Samples ) ;                                 // 指定のマルチサンプル数で使用できる最大クオリティ値を取得する( 戻り値がマイナスの場合は引数のサンプル数が使用できないことを示します )
  2146. extern  int         SetUseTransColor(                           int Flag ) ;                                    // 透過色機能を使用するかどうかを設定する( TRUE:使用する( デフォルト )  FALSE:使用しない )
  2147. extern  int         SetUseTransColorGraphCreateFlag(            int Flag ) ;                                    // 透過色機能を使用することを前提とした画像データの読み込み処理を行うかどうかを設定する( TRUE にすると SetDrawMode( DX_DRAWMODE_BILINEAR ); をした状態で DrawGraphF 等の浮動小数点型座標を受け取る関数で小数点以下の値を指定した場合に発生する描画結果の不自然を緩和する効果があります ( デフォルトは FALSE ) )
  2148. extern  int         SetUseGraphAlphaChannel(                    int Flag ) ;                                    // SetUseAlphaChannelGraphCreateFlag の旧名称
  2149. extern  int         GetUseGraphAlphaChannel(                    void ) ;                                        // GetUseAlphaChannelGraphCreateFlag の旧名称
  2150. extern  int         SetUseAlphaChannelGraphCreateFlag(          int Flag ) ;                                    // αチャンネル付きグラフィックハンドルを作成するかどうかを設定する( TRUE:αチャンネル付き   FALSE:αチャンネル無し )
  2151. extern  int         GetUseAlphaChannelGraphCreateFlag(          void ) ;                                        // αチャンネル付きグラフィックハンドルを作成するかどうかを取得する( TRUE:αチャンネル付き   FALSE:αチャンネル無し )
  2152. extern  int         SetUseNotManageTextureFlag(                 int Flag ) ;                                    // Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを設定する( TRUE:管理機能を使用する( デフォルト )  FALSE:管理機能を使用しない )、管理機能を使用するとグラフィックスデバイスのVRAM容量以上の画像を扱うことができる代わりにシステムメモリの使用量が増えます
  2153. extern  int         GetUseNotManageTextureFlag(                 void ) ;                                        // Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを取得する
  2154. extern  int         SetTransColor(                              int Red, int Green, int Blue ) ;                // 作成するグラフィックハンドルに適用する透過色を設定する( Red,Green,Blue:透過色を光の3原色で表したもの( 各色0~255 ) )
  2155. extern  int         GetTransColor(                              int *Red, int *Green, int *Blue ) ;             // 作成するグラフィックハンドルに適用する透過色を取得する
  2156. extern  int         SetUseDivGraphFlag(                         int Flag ) ;                                    // 2のn乗ではないサイズの画像を複数のテクスチャを使用してVRAMの無駄を省くかどうかを設定する( TRUE:複数のテクスチャを使用する   FALSE:なるべく一枚のテクスチャで済ます( デフォルト ) )、複数のテクスチャを使用する場合はVRAM容量の節約ができる代わりに速度の低下やバイリニアフィルタリング描画時にテクスチャとテクスチャの境目が良く見るとわかる等の弊害があります
  2157. extern  int         SetUseMaxTextureSize(                       int Size ) ;                                    // 使用するテクスチャーの最大サイズを設定する( デフォルトではグラフィックスデバイスが対応している最大テクスチャーサイズ、引数に 0 を渡すとデフォルト設定になります )
  2158. extern  int         SetUseGraphBaseDataBackup(                  int Flag ) ;                                    // グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを設定する( TRUE:バックアップをする( デフォルト )  FALSE:バックアップをしない )、バックアップをしないとメモリの節約になりますが、復帰に掛かる時間が長くなり、メモリ上のファイルイメージからグラフィックハンドルを作成した場合は自動復帰ができないなどの弊害があります
  2159. extern  int         GetUseGraphBaseDataBackup(                  void ) ;                                        // グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを取得する
  2160. extern  int         SetUseSystemMemGraphCreateFlag(             int Flag ) ;                                    // ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを設定する( TRUE:システムメモリ上に作成  FALSE:VRAM上に作成( デフォルト ) )
  2161. extern  int         GetUseSystemMemGraphCreateFlag(             void ) ;                                        // ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを取得する
  2162.  
  2163. // 画像情報関係関数
  2164. extern  DWORD*      GetFullColorImage(              int GrHandle ) ;                                                                        // 指定のグラフィックハンドルのARGB8イメージを取得する( 現在動画ファイルをグラフィックハンドルで読み込んだ場合のみ使用可能 )
  2165.  
  2166. extern  int         GraphLock(                      int GrHandle, int *PitchBuf, void **DataPointBuf, COLORDATA **ColorDataPP = NULL ) ;    // グラフィックメモリ領域のロック
  2167. extern  int         GraphUnLock(                    int GrHandle ) ;                                                                        // グラフィックメモリ領域のロック解除
  2168.  
  2169. extern  int         SetUseGraphZBuffer(             int GrHandle, int UseFlag ) ;                                                           // グラフィックハンドル専用のZバッファを持つかどうかを設定する( GrHandle:対象となるグラフィックハンドル( 描画対象として使用可能なグラフィックハンドルのみ有効 )  UseFlag:専用のZバッファを持つかどうか( TRUE:持つ( デフォルト )  FALSE:持たない ) )
  2170. extern  int         CopyGraphZBufferImage(          int DestGrHandle, int SrcGrHandle ) ;                                                   // グラフィックハンドルのZバッファの状態を別のグラフィックハンドルのZバッファにコピーする( DestGrHandle も SrcGrHandle もZバッファを持っている描画対象にできるグラフィックハンドルで、サイズが同じであり、且つマルチサンプリング( アンチエイリアス )設定が無いことが条件 )
  2171.  
  2172. extern  int         GetGraphSize(                   int GrHandle, int *SizeXBuf, int *SizeYBuf ) ;                                          // グラフィックハンドルが持つ画像のサイズを得る
  2173. extern  int         GetGraphTextureSize(            int GrHandle, int *SizeXBuf, int *SizeYBuf ) ;                                          // グラフィックハンドルが持つ一つ目のテクスチャのサイズを得る
  2174. extern  int         GetGraphMipmapCount(            int GrHandle ) ;                                                                        // グラフィックハンドルが持つテクスチャのミップマップレベル数を取得する
  2175.  
  2176. extern  COLORDATA*  GetTexColorData(                int AlphaCh, int AlphaTest, int ColorBitDepth, int DrawValid = FALSE ) ;                // カラーデータを得る
  2177. extern  COLORDATA*  GetTexColorData(                IMAGEFORMATDESC *Format ) ;                                                             // フォーマットに基づいたカラーデータを得る
  2178. extern  COLORDATA*  GetTexColorData(                int FormatIndex ) ;                                                                     // 指定のフォーマットインデックスのカラーデータを得る
  2179. extern  int         GetMaxGraphTextureSize(         int *SizeX, int *SizeY ) ;                                                              // グラフィックスデバイスが対応している最大テクスチャサイズを取得する
  2180. extern  int         GetValidRestoreShredPoint(      void ) ;                                                                                // グラフィックハンドルの画像を復元する関数が登録されているかどうかを取得する( TRUE:登録されている  FALSE:登録されていない )
  2181. extern  int         GetCreateGraphColorData(        COLORDATA *ColorData, IMAGEFORMATDESC *Format ) ;                                       // これから新たにグラフィックを作成する場合に使用するカラー情報を取得する
  2182.  
  2183. // 画像パレット操作関係関数( ソフトウエア画像のみ使用可能 )
  2184. extern  int         GetGraphPalette(                int GrHandle, int ColorIndex, int *Red, int *Green, int *Blue ) ;                       // グラフィックハンドルのパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
  2185. extern  int         GetGraphOriginalPalette(        int GrHandle, int ColorIndex, int *Red, int *Green, int *Blue ) ;                       // グラフィックハンドルの SetGraphPalette で変更する前のパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
  2186. extern  int         SetGraphPalette(                int GrHandle, int ColorIndex, int Color ) ;                                             // グラフィックハンドルのパレットを変更する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
  2187. extern  int         ResetGraphPalette(              int GrHandle ) ;                                                                        // SetGraphPalette で変更したパレットを全て元に戻す( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
  2188.  
  2189. // 図形描画関数
  2190. extern  int         DrawLine(       int x1, int y1, int x2, int y2,                                 int Color, int Thickness = 1 ) ;        // 線を描画する
  2191. extern  int         DrawBox(        int x1, int y1, int x2, int y2,                                 int Color, int FillFlag ) ;             // 四角形の描画する
  2192. extern  int         DrawFillBox(    int x1, int y1, int x2, int y2,                                 int Color ) ;                           // 中身を塗りつぶす四角形を描画する
  2193. extern  int         DrawLineBox(    int x1, int y1, int x2, int y2,                                 int Color ) ;                           // 枠だけの四角形の描画 する
  2194. extern  int         DrawCircle(     int x, int y, int r,                                            int Color, int FillFlag = TRUE ) ;      // 円を描画する
  2195. extern  int         DrawOval(       int x, int y, int rx, int ry,                                   int Color, int FillFlag ) ;             // 楕円を描画する
  2196. extern  int         DrawTriangle(   int x1, int y1, int x2, int y2, int x3, int y3,                 int Color, int FillFlag ) ;             // 三角形を描画する
  2197. extern  int         DrawQuadrangle( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int Color, int FillFlag ) ;             // 四角形を描画する
  2198. extern  int         DrawPixel(      int x, int y,                                                   int Color ) ;                           // 点を描画する
  2199.  
  2200. extern  int         Paint(          int x, int y, int FillColor, int BoundaryColor = -1 ) ;                                                 // 指定点から境界色があるところまで塗りつぶす(境界色を -1 にすると指定点の色の領域を塗りつぶす)
  2201.  
  2202. extern  int         DrawPixelSet(   POINTDATA *PointData, int Num ) ;                                                                       // 点の集合を描画する
  2203. extern  int         DrawLineSet(    LINEDATA *LineData,   int Num ) ;                                                                       // 線の集合を描画する
  2204.  
  2205. extern  int         DrawPixel3D(    VECTOR Pos,                                                            int Color ) ;                    // 3Dの点を描画する
  2206. extern  int         DrawLine3D(     VECTOR Pos1, VECTOR Pos2,                                              int Color ) ;                    // 3Dの線分を描画する
  2207. extern  int         DrawTriangle3D( VECTOR Pos1, VECTOR Pos2, VECTOR Pos3,                                 int Color, int FillFlag ) ;      // 3Dの三角形を描画する
  2208. extern  int         DrawCube3D(     VECTOR Pos1, VECTOR Pos2,                             int DifColor, int SpcColor, int FillFlag ) ;      // 3Dの立方体を描画する
  2209. extern  int         DrawSphere3D(   VECTOR CenterPos,                float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ;      // 3Dの球体を描画する
  2210. extern  int         DrawCapsule3D(  VECTOR Pos1, VECTOR Pos2,        float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ;      // 3Dのカプセルを描画する
  2211. extern  int         DrawCone3D(     VECTOR TopPos, VECTOR BottomPos, float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ;      // 3Dの円錐を描画する
  2212.  
  2213. // 画像描画関数
  2214. extern  int         LoadGraphScreen(          int x, int y, const TCHAR *GraphName, int TransFlag ) ;                                       // 画像ファイルを読みこんで画面に描画する
  2215.  
  2216. extern  int         DrawGraph(                int x, int y,                                                                 int GrHandle, int TransFlag ) ;                                     // 画像の等倍描画
  2217. extern  int         DrawExtendGraph(          int x1, int y1, int x2, int y2,                                               int GrHandle, int TransFlag ) ;                                     // 画像の拡大描画
  2218. extern  int         DrawRotaGraph(            int x, int y,                 double ExRate,                    double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE  ) ;              // 画像の回転描画
  2219. extern  int         DrawRotaGraph2(           int x, int y, int cx, int cy, double ExtRate,                   double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE  ) ;              // 画像の回転描画2( 回転中心指定付き )
  2220. extern  int         DrawRotaGraph3(           int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;               // 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )
  2221. extern  int         DrawModiGraph(            int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4,               int GrHandle, int TransFlag ) ;                                     // 画像の自由変形描画
  2222. extern  int         DrawTurnGraph(            int x, int y,                                                                 int GrHandle, int TransFlag ) ;                                     // 画像の左右反転描画
  2223.  
  2224. extern  int         DrawGraphF(               float xf, float yf,                                                                       int GrHandle, int TransFlag ) ;                         // 画像の描画( 座標指定が float 版 )
  2225. extern  int         DrawExtendGraphF(         float x1f, float y1f, float x2f, float y2,                                                int GrHandle, int TransFlag ) ;                         // 画像の拡大描画( 座標指定が float 版 )
  2226. extern  int         DrawRotaGraphF(           float xf, float yf,                       double ExRate,                    double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE  ) ;  // 画像の回転描画( 座標指定が float 版 )
  2227. extern  int         DrawRotaGraph2F(          float xf, float yf, float cxf, float cyf, double ExtRate,                   double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE  ) ;  // 画像の回転描画2( 回転中心指定付き )( 座標指定が float 版 )
  2228. extern  int         DrawRotaGraph3F(          float xf, float yf, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;   // 画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 )
  2229. extern  int         DrawModiGraphF(           float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4,           int GrHandle, int TransFlag ) ;                         // 画像の自由変形描画( 座標指定が float 版 )
  2230. extern  int         DrawTurnGraphF(           float xf, float yf,                                                                       int GrHandle, int TransFlag ) ;                         // 画像の左右反転描画( 座標指定が float 版 )
  2231.  
  2232. extern  int         DrawChipMap(              int Sx, int Sy, int XNum, int YNum, int *MapData, int ChipTypeNum, int MapDataPitch, int *ChipGrHandle, int TransFlag ) ;                                                                                                         // チップ画像を使った2Dマップ描画
  2233. extern  int         DrawChipMap(              int MapWidth, int MapHeight,        int *MapData, int ChipTypeNum,                   int *ChipGrHandle, int TransFlag, int MapDrawPointX, int MapDrawPointY, int MapDrawWidth, int MapDrawHeight, int ScreenX, int ScreenY ) ;    // チップ画像を使った2Dマップ描画
  2234. extern  int         DrawTile(                 int x1, int y1, int x2, int y2, int Tx, int Ty, double ExtRate, double Angle, int GrHandle, int TransFlag ) ;                                                                                                                     // 画像を指定領域にタイル状に描画する
  2235.  
  2236. extern  int         DrawRectGraph(            int DestX,  int DestY,                          int SrcX, int SrcY, int    Width, int    Height,                         int GraphHandle, int TransFlag, int TurnFlag ) ;             // 画像の指定矩形部分のみを等倍描画
  2237. extern  int         DrawRectExtendGraph(      int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight,                         int GraphHandle, int TransFlag ) ;                           // 画像の指定矩形部分のみを拡大描画
  2238. extern  int         DrawRectRotaGraph(        int x, int y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle,                                   int GraphHandle, int TransFlag, int TurnFlag ) ;             // 画像の指定矩形部分のみを回転描画
  2239. 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 TurnFlag ) ;             // 画像の指定矩形部分のみを回転描画2( 回転中心指定付き )
  2240. 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 TurnFlag ) ;             // 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 )
  2241.  
  2242. extern  int         DrawRectGraphF(           float DestX,  float DestY,                              int SrcX, int SrcY, int    Width, int    Height,                           int GraphHandle, int TransFlag, int TurnFlag ) ;   // 画像の指定矩形部分のみを等倍描画( 座標指定が float 版 )
  2243. extern  int         DrawRectExtendGraphF(     float DestX1, float DestY1, float DestX2, float DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight,                           int GraphHandle, int TransFlag ) ;                 // 画像の指定矩形部分のみを拡大描画( 座標指定が float 版 )
  2244. extern  int         DrawRectRotaGraphF(       float x, float y, int SrcX, int SrcY, int Width, int Height,                       double ExtRate,                   double Angle, int GraphHandle, int TransFlag, int TurnFlag ) ;   // 画像の指定矩形部分のみを回転描画( 座標指定が float 版 )
  2245. 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 TurnFlag ) ;   // 画像の指定矩形部分のみを回転描画2( 回転中心指定付き )( 座標指定が float 版 )
  2246. 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 TurnFlag ) ;   // 画像の指定矩形部分のみを回転描画3( 回転中心指定付き+縦横拡大率別指定版 )( 座標指定が float 版 )
  2247.  
  2248. extern  int         DrawBlendGraph(           int x, int y, int GrHandle, int TransFlag,                 int BlendGraph, int BorderParam, int BorderRange ) ;                                   // ブレンド画像と合成して画像を等倍描画する
  2249. extern  int         DrawBlendGraphPos(        int x, int y, int GrHandle, int TransFlag, int bx, int by, int BlendGraph, int BorderParam, int BorderRange ) ;                                   // ブレンド画像と合成して画像を等倍描画する( ブレンド画像の起点座標を指定する引数付き )
  2250.  
  2251. extern  int         DrawCircleGauge(          int CenterX, int CenterY, double Percent, int GrHandle ) ;                                                                                        // 円グラフ的な描画を行う( GrHandle の画像の上下左右の端は透過色にしておく必要があります )
  2252.  
  2253. extern  int         DrawGraphToZBuffer(       int X, int Y,                                                                 int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                           // Zバッファに対して画像の等倍描画
  2254. extern  int         DrawTurnGraphToZBuffer(   int x, int y,                                                                 int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                           // Zバッファに対して画像の左右反転描画
  2255. extern  int         DrawExtendGraphToZBuffer( int x1, int y1, int x2, int y2,                                               int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                           // Zバッファに対して画像の拡大描画
  2256. extern  int         DrawRotaGraphToZBuffer(   int x, int y, double ExRate, double Angle,                                    int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int TurnFlag = FALSE ) ;        // Zバッファに対して画像の回転描画
  2257. extern  int         DrawRotaGraph2ToZBuffer(  int x, int y, int cx, int cy, double ExtRate,                   double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int TurnFlag = FALSE ) ;        // Zバッファに対して画像の回転描画2( 回転中心指定付き )
  2258. 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 TurnFlag = FALSE ) ;    // Zバッファに対して画像の回転描画3( 回転中心指定付き+縦横拡大率別指定版 )
  2259. 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 等 */ ) ;                           // Zバッファに対して画像の自由変形描画
  2260. extern  int         DrawBoxToZBuffer(         int x1, int y1, int x2, int y2,                                               int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                           // Zバッファに対して矩形の描画
  2261. extern  int         DrawCircleToZBuffer(      int x, int y, int r,                                                          int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                           // Zバッファに対して円の描画
  2262.  
  2263. extern  int         DrawPolygon(                             VERTEX    *Vertex, int PolygonNum,                                                                                              int GrHandle, int TransFlag, int UVScaling = FALSE ) ;     // 2Dポリゴンを描画する( Vertex:三角形を形成する頂点配列の先頭アドレス( 頂点の数はポリゴンの数×3 )  PolygonNum:描画するポリゴンの数  GrHandle:使用するグラフィックハンドル  TransFlag:透過色処理を行うかどうか( TRUE:行う  FALSE:行わない )  UVScaling:基本FALSEでOK )
  2264. extern  int         DrawPolygon2D(                           VERTEX2D  *Vertex, int PolygonNum,                                                                                              int GrHandle, int TransFlag ) ;                            // 2Dポリゴンを描画する
  2265. extern  int         DrawPolygon3D(                           VERTEX3D  *Vertex, int PolygonNum,                                                                                              int GrHandle, int TransFlag ) ;                            // 3Dポリゴンを描画する
  2266. extern  int         DrawPolygonIndexed2D(                    VERTEX2D  *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum,                                                      int GrHandle, int TransFlag ) ;                            // 2Dポリゴンを描画する( 頂点インデックスを使用 )
  2267. extern  int         DrawPolygonIndexed3D(                    VERTEX3D  *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum,                                                      int GrHandle, int TransFlag ) ;                            // 3Dポリゴンを描画する( 頂点インデックスを使用 )
  2268. extern  int         DrawPolygonIndexed3DBase(                VERTEX_3D *Vertex, int VertexNum, unsigned short *Indices, int IndexNum,   int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 3Dポリゴンを描画する( 頂点インデックスを使用 )( 旧バージョン用 )
  2269. extern  int         DrawPolygon3DBase(                       VERTEX_3D *Vertex, int VertexNum,                                          int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 3Dポリゴンを描画する( 旧バージョン用 )
  2270. extern  int         DrawPolygon3D(                           VERTEX_3D *Vertex, int PolygonNum,                                                                                              int GrHandle, int TransFlag ) ;                            // 3Dポリゴンを描画する( 旧バージョン用 )
  2271.  
  2272. extern  int         DrawPolygonBase(                         VERTEX    *Vertex, int VertexNum,                                          int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag, int UVScaling = FALSE ) ;        // 2Dプリミティブを描画する
  2273. extern  int         DrawPrimitive2D(                         VERTEX2D  *Vertex, int VertexNum,                                          int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 2Dプリミティブを描画する
  2274. extern  int         DrawPrimitive3D(                         VERTEX3D  *Vertex, int VertexNum,                                          int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 3Dプリミティブを描画する
  2275. extern  int         DrawPrimitiveIndexed2D(                  VERTEX2D  *Vertex, int VertexNum, unsigned short *Indices, int IndexNum,   int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 2Dプリミティブを描画する(頂点インデックス使用)
  2276. extern  int         DrawPrimitiveIndexed3D(                  VERTEX3D  *Vertex, int VertexNum, unsigned short *Indices, int IndexNum,   int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ;                           // 3Dプリミティブを描画する(頂点インデックス使用)
  2277.  
  2278. extern  int         DrawPolygon3D_UseVertexBuffer(           int VertexBufHandle,                                                                                                                                                               int GrHandle, int TransFlag ) ;     // 頂点バッファを使用して3Dポリゴンを描画する
  2279. extern  int         DrawPrimitive3D_UseVertexBuffer(         int VertexBufHandle,                     int PrimitiveType  /* DX_PRIMTYPE_TRIANGLELIST 等 */,                                                                                     int GrHandle, int TransFlag ) ;        // 頂点バッファを使用して3Dプリミティブを描画する
  2280. extern  int         DrawPrimitive3D_UseVertexBuffer2(        int VertexBufHandle,                     int PrimitiveType  /* DX_PRIMTYPE_TRIANGLELIST 等 */,                 int StartVertex, int UseVertexNum,                                  int GrHandle, int TransFlag ) ;        // 頂点バッファを使用して3Dプリミティブを描画する
  2281. extern  int         DrawPolygonIndexed3D_UseVertexBuffer(    int VertexBufHandle, int IndexBufHandle,                                                                                                                                           int GrHandle, int TransFlag ) ;     // 頂点バッファとインデックスバッファを使用して3Dポリゴンを描画する
  2282. extern  int         DrawPrimitiveIndexed3D_UseVertexBuffer(  int VertexBufHandle, int IndexBufHandle, int PrimitiveType  /* DX_PRIMTYPE_TRIANGLELIST 等 */,                                                                                     int GrHandle, int TransFlag ) ;        // 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する
  2283. 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 ) ;        // 頂点バッファとインデックスバッファを使用して3Dプリミティブを描画する
  2284.  
  2285. extern  int         DrawGraph3D(                             float x, float y, float z,                                                                     int GrHandle, int TransFlag ) ;                             // 画像の3D描画
  2286. extern  int         DrawExtendGraph3D(                       float x, float y, float z, double ExRateX, double ExRateY,                                     int GrHandle, int TransFlag ) ;                             // 画像の拡大3D描画
  2287. extern  int         DrawRotaGraph3D(                         float x, float y, float z, double ExRate, double Angle,                                        int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;       // 画像の回転3D描画
  2288. extern  int         DrawRota2Graph3D(                        float x, float y, float z, float cx, float cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;       // 画像の回転3D描画(回転中心指定型)
  2289. 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 ) ;                             // 画像の自由変形3D描画
  2290. extern  int         DrawBillboard3D(                         VECTOR Pos, float cx, float cy, float Size, float Angle,                                       int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;       // 3D空間上に画像を描画
  2291.  
  2292.  
  2293. // 描画設定関係関数
  2294. extern  int         SetDrawMode(                        int DrawMode ) ;                                                // 描画モードを設定する
  2295. extern  int         GetDrawMode(                        void ) ;                                                        // 描画モードを取得する
  2296. extern  int         SetDrawBlendMode(                   int BlendMode, int BlendParam ) ;                               // 描画ブレンドモードを設定する
  2297. extern  int         GetDrawBlendMode(                   int *BlendMode, int *BlendParam ) ;                             // 描画ブレンドモードを取得する
  2298. extern  int         SetDrawAlphaTest(                   int TestMode, int TestParam ) ;                                 // 描画時のアルファテストの設定を行う( TestMode:テストモード( DX_CMP_GREATER等 -1でデフォルト動作に戻す )  TestParam:描画アルファ値との比較に使用する値( 0~255 ) )
  2299. extern  int         SetBlendGraph(                      int BlendGraph, int BorderParam, int BorderRange ) ;            // ( SetBlendGraphParam の BlendType = DX_BLENDGRAPHTYPE_WIPE の処理を行う旧関数 )描画処理時に描画する画像とブレンドするαチャンネル付き画像をセットする( BlendGraph を -1 でブレンド機能を無効 )
  2300. extern  int         SetBlendGraphParam(                 int BlendGraph, int BlendType, ... ) ;                          // 描画処理時に描画する画像とブレンドする画像のブレンド設定を行う、BlendGraph を -1 にすれば設定を解除、その場合 BlendType とその後ろのパラメータは無視される
  2301. //      int         SetBlendGraphParam(                 int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_NORMAL, int Ratio = ( 0( ブレンド率0% )~255( ブレンド率100% ) ) ) ;
  2302. //      int         SetBlendGraphParam(                 int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_WIPE, int BorderParam, int BorderRange ) ;
  2303. //      int         SetBlendGraphParam(                 int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_ALPHA ) ;
  2304. extern  int         SetBlendGraphPosition(              int x, int y ) ;                                                // ブレンド画像の起点座標をセットする
  2305. extern  int         SetDrawBright(                      int RedBright, int GreenBright, int BlueBright ) ;              // 描画輝度を設定する
  2306. extern  int         GetDrawBright(                      int *Red, int *Green, int *Blue ) ;                             // 描画輝度を取得する
  2307. extern  int         SetIgnoreDrawGraphColor(            int EnableFlag ) ;                                              // 描画する画像のRGB成分を無視するかどうかを指定する( EnableFlag:この機能を使うかどうか( TRUE:使う  FALSE:使わない( デフォルト ) ) )
  2308. extern  int         SetMaxAnisotropy(                   int MaxAnisotropy ) ;                                           // 最大異方性値を設定する
  2309.  
  2310. extern  int         SetUseZBufferFlag(                  int Flag ) ;                                                    // Zバッファを使用するかどうかを設定する( 2Dと3D描画に影響 )( TRUE:Zバッファを使用する  FALSE:Zバッファを使用しない( デフォルト ) )
  2311. extern  int         SetWriteZBufferFlag(                int Flag ) ;                                                    // Zバッファに書き込みを行うかどうかを設定する( 2Dと3D描画に影響 )( TRUE:書き込みを行う  FALSE:書き込みを行わない( デフォルト ) )
  2312. extern  int         SetZBufferCmpType(                  int CmpType /* DX_CMP_NEVER 等 */ ) ;                          // ZバッファのZ値と書き込むZ値との比較モードを設定する( 2Dと3D描画に影響 )( CmpType:DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) )
  2313. extern  int         SetZBias(                           int Bias ) ;                                                    // 書き込むZ値のバイアスを設定する( 2Dと3D描画に影響 )( Bias:バイアス値( デフォルト:0 ) )
  2314. extern  int         SetUseZBuffer3D(                    int Flag ) ;                                                    // Zバッファを使用するかどうかを設定する( 3D描画のみに影響 )( TRUE:Zバッファを使用する  FALSE:Zバッファを使用しない( デフォルト ) )
  2315. extern  int         SetWriteZBuffer3D(                  int Flag ) ;                                                    // Zバッファに書き込みを行うかどうかを設定する( 3D描画のみに影響 )( TRUE:書き込みを行う  FALSE:書き込みを行わない( デフォルト ) )
  2316. extern  int         SetZBufferCmpType3D(                int CmpType /* DX_CMP_NEVER 等 */ ) ;                          // ZバッファのZ値と書き込むZ値との比較モードを設定する( 3D描画のみに影響 )( CmpType:DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) )
  2317. extern  int         SetZBias3D(                         int Bias ) ;                                                    // 書き込むZ値のバイアスを設定する( 3D描画のみに影響 )( Bias:バイアス値( デフォルト:0 ) )
  2318. extern  int         SetDrawZ(                           float Z ) ;                                                     // 2D描画でZバッファに書き込むZ値を設定する( Z:書き込むZ値( デフォルト:0.2f ) )
  2319.  
  2320. extern  int         SetDrawArea(                        int x1, int y1, int x2, int y2 ) ;                              // 描画可能領域の設定する
  2321. extern  int         GetDrawArea(                        RECT *Rect ) ;                                                  // 描画可能領域を取得する
  2322. extern  int         SetDrawAreaFull(                    void ) ;                                                        // 描画可能領域を描画対象画面全体にする
  2323. extern  int         SetDraw3DScale(                     float Scale ) ;                                                 // 3D描画の拡大率を設定する
  2324.  
  2325. extern  int         SetRestoreShredPoint(               void (* ShredPoint )( void ) ) ;                                // SetRestoreGraphCallback の旧名
  2326. extern  int         SetRestoreGraphCallback(            void (* Callback )( void ) ) ;                                  // グラフィックハンドル復元関数を登録する
  2327. extern  int         RunRestoreShred(                    void ) ;                                                        // グラフィック復元関数を実行する
  2328. extern  int         SetGraphicsDeviceRestoreCallbackFunction( void (* Callback )( void *Data ), void *CallbackData ) ;  // グラフィックスデバイスがロストから復帰した際に呼ばれるコールバック関数を設定する
  2329. extern  int         SetGraphicsDeviceLostCallbackFunction(    void (* Callback )( void *Data ), void *CallbackData ) ;  // グラフィックスデバイスがロストから復帰する前に呼ばれるコールバック関数を設定する
  2330.  
  2331. extern  int         SetTransformToWorld(                MATRIX *Matrix ) ;                                              // ローカル座標からワールド座標に変換するための行列を設定する
  2332. extern  int         GetTransformToWorldMatrix(          MATRIX *MatBuf ) ;                                              // ローカル座標からワールド座標に変換するための行列を取得する
  2333. extern  int         SetTransformToView(                 MATRIX *Matrix ) ;                                              // ワールド座標からビュー座標に変換するための行列を設定する
  2334. extern  int         GetTransformToViewMatrix(           MATRIX *MatBuf ) ;                                              // ワールド座標からビュー座標に変換するための行列を取得する
  2335. extern  int         SetTransformToProjection(           MATRIX *Matrix ) ;                                              // ビュー座標からプロジェクション座標に変換するための行列を設定する
  2336. extern  int         GetTransformToProjectionMatrix(     MATRIX *MatBuf ) ;                                              // ビュー座標からプロジェクション座標に変換するための行列を取得する
  2337. extern  int         SetTransformToViewport(             MATRIX *Matrix ) ;                                              // ビューポート行列を設定する
  2338. extern  int         GetTransformToViewportMatrix(       MATRIX *MatBuf ) ;                                              // ビューポート行列を取得する
  2339. extern  int         GetTransformToAPIViewportMatrix(    MATRIX *MatBuf ) ;                                              // Direct3Dで自動適用されるビューポート行列を取得する
  2340. extern  int         SetDefTransformMatrix(              void ) ;                                                        // デフォルトの変換行列を設定する
  2341. extern  int         GetTransformPosition(               VECTOR *LocalPos, float *x, float *y ) ;                        // ローカル座標からスクリーン座標を取得する
  2342. extern  float       GetBillboardPixelSize(              VECTOR WorldPos, float WorldSize ) ;                            // ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する
  2343. extern  VECTOR      ConvWorldPosToViewPos(              VECTOR WorldPos ) ;                                             // ワールド座標をビュー座標に変換する
  2344. extern  VECTOR      ConvWorldPosToScreenPos(            VECTOR WorldPos ) ;                                             // ワールド座標をスクリーン座標に変換する
  2345. extern  FLOAT4      ConvWorldPosToScreenPosPlusW(       VECTOR WorldPos ) ;                                             // ワールド座標をスクリーン座標に変換する、最後のXYZ座標をWで割る前の値を得る
  2346. extern  VECTOR      ConvScreenPosToWorldPos(            VECTOR ScreenPos ) ;                                            // スクリーン座標をワールド座標に変換する
  2347. extern  VECTOR      ConvScreenPosToWorldPos_ZLinear(    VECTOR ScreenPos ) ;                                            // スクリーン座標をワールド座標に変換する( Z座標が線形 )
  2348.  
  2349. extern  int         SetUseCullingFlag(                  int Flag ) ;                                                    // SetUseBackCulling の旧名称
  2350. extern  int         SetUseBackCulling(                  int Flag /* DX_CULLING_LEFT 等 */ ) ;                          // ポリゴンカリングモードを設定する
  2351.  
  2352. extern  int         SetTextureAddressMode(              int Mode /* DX_TEXADDRESS_WRAP 等 */ , int Stage = -1 ) ;      // テクスチャアドレスモードを設定する
  2353. extern  int         SetTextureAddressModeUV(            int ModeU, int ModeV, int Stage = -1 ) ;                        // テクスチャアドレスモードを設定する( U と V を別々に設定する )
  2354. extern  int         SetTextureAddressTransform(         float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate ) ;    // テクスチャ座標変換パラメータを設定する
  2355. extern  int         SetTextureAddressTransformMatrix(   MATRIX Matrix ) ;                                               // テクスチャ座標変換行列を設定する
  2356. extern  int         ResetTextureAddressTransform(       void ) ;                                                        // テクスチャ座標変換設定をリセットする
  2357.  
  2358. extern  int         SetFogEnable(                       int Flag ) ;                                                    // フォグを有効にするかどうかを設定する( TRUE:有効  FALSE:無効 )
  2359. extern  int         SetFogMode(                         int Mode /* DX_FOGMODE_NONE 等 */ ) ;                          // フォグモードを設定する
  2360. extern  int         SetFogColor(                        int r, int g, int b ) ;                                         // フォグカラーを設定する
  2361. extern  int         SetFogStartEnd(                     float start, float end ) ;                                      // フォグが始まる距離と終了する距離を設定する( 0.0f ~ 1.0f )
  2362. extern  int         SetFogDensity(                      float density ) ;                                               // フォグの密度を設定する( 0.0f ~ 1.0f )
  2363.  
  2364.  
  2365. // 画面関係関数
  2366. extern  int             GetPixel(                                   int x, int y ) ;                                                                // 指定座標の色を取得する
  2367. extern  int             GetDrawScreenGraph(                                                      int x1, int y1, int x2, int y2,                       int GrHandle, int UseClientFlag = TRUE ) ;   // 描画先の画面から指定領域の画像情報をグラフィックハンドルに転送する
  2368. extern  int             BltDrawValidGraph(                          int TargetDrawValidGrHandle, int x1, int y1, int x2, int y2, int DestX, int DestY, int DestGrHandle ) ;                         // SetDrawScreen で描画対象にできるグラフィックハンドルから指定領域の画像情報を別のグラフィックハンドルに転送する
  2369. extern  int             ScreenFlip(                                 void ) ;                                                                        // 裏画面と表画面の内容を交換する
  2370. extern  int             ScreenCopy(                                 void ) ;                                                                        // 裏画面の内容を表画面に転送する
  2371. extern  int             WaitVSync(                                  int SyncNum ) ;                                                                 // 垂直同期信号を待つ
  2372. extern  int             ClearDrawScreen(                            RECT *ClearRect = NULL ) ;                                                      // 画面をクリアする
  2373. extern  int             ClearDrawScreenZBuffer(                     RECT *ClearRect = NULL ) ;                                                      // 画面のZバッファをクリアする
  2374. extern  int             ClsDrawScreen(                              void ) ;                                                                        // ClearDrawScreenの旧名称
  2375. extern  int             SetDrawScreen(                              int DrawScreen ) ;                                                              // 描画先画面を設定する( MakeScreen で作成したグラフィックハンドルも渡すことができます )
  2376. extern  int             GetDrawScreen(                              void ) ;                                                                        // 描画先画面を取得する
  2377. extern  int             GetActiveGraph(                             void ) ;                                                                        // GetDrawScreen の旧名称
  2378. extern  int             SetDrawZBuffer(                             int DrawScreen ) ;                                                              // 描画先Zバッファのセット( DrawScreen 付属のZバッファを描画先Zバッファにする、DrawScreen を -1 にするとデフォルトの描画先Zバッファに戻る )
  2379. #ifdef __WINDOWS__
  2380. extern  int             BltBackScreenToWindow(                      HWND Window, int ClientX, int ClientY ) ;                                       // 裏画面の内容を指定のウインドウに転送する
  2381. extern  int             BltRectBackScreenToWindow(                  HWND Window, RECT BackScreenRect, RECT WindowClientRect ) ;                     // 裏画面の指定の領域をウインドウのクライアント領域の指定の領域に転送する
  2382. #endif // __WINDOWS__
  2383. extern  int             SetGraphMode(                               int ScreenSizeX, int ScreenSizeY, int ColorBitDepth, int RefreshRate = 60 ) ;   // 画面モードを設定する
  2384. extern  int             SetEmulation320x240(                        int Flag ) ;                                                                    // 640x480の画面で320x240の画面解像度にするかどうかを設定する、640x480以外の解像度では無効( TRUE:有効  FALSE:無効 )
  2385. extern  int             SetZBufferSize(                             int ZBufferSizeX, int ZBufferSizeY ) ;                                          // 画面用のZバッファのサイズを設定する
  2386. extern  int             SetWaitVSyncFlag(                           int Flag ) ;                                                                    // ScreenFlip 実行時にVSYNC待ちをするかどうかを設定する
  2387. extern  int             GetWaitVSyncFlag(                           void ) ;                                                                        // ScreenFlip 実行時にVSYNC待ちをするかどうかを取得する
  2388. extern  int             SetFullSceneAntiAliasingMode(               int Samples, int Quality ) ;                                                    // 画面のフルスクリーンアンチエイリアスモードの設定を行う( DxLib_Init の前でのみ使用可能 )
  2389. extern  int             SetGraphDisplayArea(                        int x1, int y1, int x2, int y2 ) ;                                              // ScreenFlip 時に表画面全体に転送する裏画面の領域を設定する( DxLib_Init の前でのみ使用可能 )
  2390. extern  int             SetChangeScreenModeGraphicsSystemResetFlag( int Flag ) ;                                                                    // 画面モード変更時( とウインドウモード変更時 )にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する( TRUE:リセットする( デフォルト )  FALSE:リセットしない )
  2391. extern  int             GetScreenState(                             int *SizeX, int *SizeY, int *ColorBitDepth ) ;                                  // 現在の画面の解像度とカラービット数を得る
  2392. extern  int             GetDrawScreenSize(                          int *XBuf, int *YBuf ) ;                                                        // 描画先のサイズを取得する
  2393. extern  int             GetScreenBitDepth(                          void ) ;                                                                        // 画面のカラービット数を取得する
  2394. extern  int             GetColorBitDepth(                           void ) ;                                                                        // GetScreenBitDepth の旧名称
  2395. extern  int             GetChangeDisplayFlag(                       void ) ;                                                                        // 画面モードが変更されているかどうかを取得する
  2396. extern  int             GetVideoMemorySize(                         int *AllSize, int *FreeSize ) ;                                                 // ( 現在正常に動作しません )ビデオメモリの容量を得る
  2397. extern  int             GetRefreshRate(                             void ) ;                                                                        // 現在の画面のリフレッシュレートを取得する
  2398. extern  int             GetDisplayModeNum(                          void ) ;                                                                        // 変更可能なディスプレイモードの数を取得する
  2399. extern  DISPLAYMODEDATA GetDisplayMode(                             int ModeIndex ) ;                                                               // 変更可能なディスプレイモードの情報を取得する( ModeIndex は 0 ~ GetDisplayModeNum の戻り値-1 )
  2400. extern  COLORDATA*      GetDispColorData(                           void ) ;                                                                        // ディスプレイのカラーデータアドレスを取得する
  2401. extern  int             GetMultiDrawScreenNum(                      void ) ;                                                                        // 同時に描画を行うことができる画面の数を取得する
  2402. extern  int             SetDisplayRefreshRate(                      int RefreshRate ) ;                                                             // ( 現在効果なし )フルスクリーン時の画面のリフレッシュレートを変更する
  2403.  
  2404. // その他設定関係関数
  2405. extern  int         SetUseNormalDrawShader(                     int Flag ) ;                                    // 通常描画にプログラマブルシェーダーを使用するかどうかを設定する( TRUE:使用する( デフォルト )  FALSE:使用しない )
  2406. extern  int         SetUseSoftwareRenderModeFlag(               int Flag ) ;                                    // ソフトウエアレンダリングモードを使用するかどうかを設定する( TRUE:使用する  FALSE:使用しない( デフォルト ) )( DxLib_Init の前に呼ぶ必要があります )
  2407. extern  int         SetNotUse3DFlag(                            int Flag ) ;                                    // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )3D機能を使わないかどうかを設定する
  2408. extern  int         SetUse3DFlag(                               int Flag ) ;                                    // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )3D機能を使うかどうかを設定する
  2409. extern  int         GetUse3DFlag(                               void ) ;                                        // 描画に3D機能を使うかどうかを取得する
  2410. extern  int         SetScreenMemToVramFlag(                     int Flag ) ;                                    // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )画面のピクセルデータをVRAMに置くかどうかを設定する
  2411. extern  int         GetScreenMemToSystemMemFlag(                void ) ;                                        // 画面のピクセルデータがシステムメモリ上に存在するかを取得する
  2412.  
  2413. extern  int         SetWindowDrawRect(                          RECT *DrawRect ) ;                              // 通常使用しない
  2414. extern  int         RestoreGraphSystem(                         void ) ;                                        // DXライブラリのグラフィックス処理関連の復帰処理を行う
  2415. extern  int         SetAeroDisableFlag(                         int Flag ) ;                                    // Vista,7 の Windows Aero を無効にするかどうかを設定する( TRUE:無効にする( デフォルト )  FALSE:有効にする )( DxLib_Init の前に呼ぶ必要があります )
  2416. extern  int         SetUseDirect3D9Ex(                          int Flag ) ;                                    // Vista以降の環境で Direct3D9Ex を使用するかどうかを設定する( TRUE:使用する( デフォルト )  FALSE:使用しない )( DxLib_Init の前に呼ぶ必要があります )
  2417. extern  int         SetUseHardwareVertexProcessing(             int Flag ) ;                                    // ハードウエアの頂点演算処理機能を使用するかどうかを設定する( TRUE:使用する( デフォルト )  FALSE:使用しない )( DxLib_Init の前に呼ぶ必要があります )
  2418. extern  int         SetMultiThreadFlag(                         int Flag ) ;                                    // DirectDraw や Direct3D の協調レベルをマルチスレッド対応にするかどうかをセットする( TRUE:マルチスレッド対応にする  FALSE:マルチスレッド対応にしない( デフォルト ) )
  2419. extern  int         SetUseDirectDrawDeviceIndex(                int Index ) ;                                   // 使用する DirectDraw デバイスのインデックスを設定する
  2420. extern  int         SetUseOldDrawModiGraphCodeFlag(             int Flag ) ;                                    // 古いバージョンの DrawModiGraph 関数のコードを使用するかどうかを設定する
  2421. extern  int         SetUseVramFlag(                             int Flag ) ;                                    // ( 現在効果なし )VRAMを使用するかのフラグをセットする
  2422. extern  int         GetUseVramFlag(                             void ) ;                                        // ( 現在効果なし )2Dグラフィックサーフェス作成時にシステムメモリーを使用するかのフラグ取得
  2423. extern  int         SetBasicBlendFlag(                          int Flag ) ;                                    // ( 現在効果なし )簡略化ブレンド処理を行うか否かのフラグをセットする
  2424. extern  int         SetUseBasicGraphDraw3DDeviceMethodFlag(     int Flag ) ;                                    // ( 現在効果なし )単純図形の描画に3Dデバイスの機能を使用するかどうかを設定する
  2425. #ifdef __WINDOWS__
  2426. extern  int         SetUseDirectDrawFlag(                       int Flag ) ;                                    // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )DirectDrawを使用するかどうかを設定する
  2427. extern  int         SetUseGDIFlag(                              int Flag ) ;                                    // GDI描画を使用するかどうかを設定する
  2428. extern  int         GetUseGDIFlag(                              void ) ;                                        // GDI描画を使用するかどうかを取得する
  2429. extern  int         SetDDrawUseGuid(                            GUID *Guid ) ;                                  // DirectDrawが使用するGUIDを設定する
  2430. extern  void*       GetUseDDrawObj(                             void ) ;                                        // 現在使用しているDirectDrawオブジェクトのアドレスを取得する( 戻り値を IDirectDraw7 * にキャストして下さい )
  2431. extern  GUID*       GetDirectDrawDeviceGUID(                    int Number ) ;                                  // 有効な DirectDraw デバイスの GUID を取得する
  2432. extern  int         GetDirectDrawDeviceDescription(             int Number, char *StringBuffer ) ;              // 有効な DirectDraw デバイスの名前を取得する
  2433. extern  int         GetDirectDrawDeviceNum(                     void ) ;                                        // 有効な DirectDraw デバイスの数を取得する
  2434. extern  DX_DIRECT3DDEVICE9* GetUseDirect3DDevice9(              void ) ;                                        // 使用中のDirect3DDevice9オブジェクトを取得する
  2435. extern  DX_DIRECT3DSURFACE9* GetUseDirect3D9BackBufferSurface(  void ) ;                                        // 使用中のバックバッファのDirect3DSurface9オブジェクトを取得する
  2436. #endif // __WINDOWS__
  2437. extern  int         RefreshDxLibDirect3DSetting(                void ) ;                                        // DXライブラリが行ったDirect3Dの設定を再度行う( 特殊用途 )
  2438. extern  int         RenderVertex(                               void ) ;                                        // 頂点バッファに溜まった頂点データを描画する( 特殊用途 )
  2439.  
  2440. #ifndef DX_NON_SAVEFUNCTION
  2441.  
  2442. // 描画先画面保存関数
  2443. // Jpeg_Quality         = 0:低画質~100:高画質
  2444. // Png_CompressionLevel = 0:無圧縮~  9:最高圧縮
  2445. extern  int         SaveDrawScreen(       int x1, int y1, int x2, int y2, const TCHAR *FileName, int SaveType = DX_IMAGESAVETYPE_BMP , int Jpeg_Quality = 80 , int Jpeg_Sample2x1 = TRUE , int Png_CompressionLevel = -1 ) ;        // 現在描画対象になっている画面をファイルで保存する
  2446. extern  int         SaveDrawScreenToBMP(  int x1, int y1, int x2, int y2, const TCHAR *FileName ) ;                                                                                                                                 // 現在描画対象になっている画面をBMP形式で保存する
  2447. extern  int         SaveDrawScreenToJPEG( int x1, int y1, int x2, int y2, const TCHAR *FileName, int Quality = 80 , int Sample2x1 = TRUE ) ;                                                                                        // 現在描画対象になっている画面をJPEG形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
  2448. extern  int         SaveDrawScreenToPNG(  int x1, int y1, int x2, int y2, const TCHAR *FileName, int CompressionLevel = -1 ) ;                                                                                                      // 現在描画対象になっている画面をPNG形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
  2449.  
  2450. #endif // DX_NON_SAVEFUNCTION
  2451.  
  2452. // 頂点バッファ関係関数
  2453. extern  int         CreateVertexBuffer(     int VertexNum, int VertexType /* DX_VERTEX_TYPE_NORMAL_3D 等 */ ) ;                        // 頂点バッファを作成する( -1:エラー  0以上:頂点バッファハンドル )
  2454. extern  int         DeleteVertexBuffer(     int VertexBufHandle ) ;                                                                 // 頂点バッファを削除する
  2455. extern  int         InitVertexBuffer(       void ) ;                                                                                // すべての頂点バッファを削除する
  2456. extern  int         SetVertexBufferData(    int SetIndex, void *VertexData, int VertexNum, int VertexBufHandle ) ;                  // 頂点バッファに頂点データを転送する
  2457. extern  int         CreateIndexBuffer(      int IndexNum, int IndexType /* DX_INDEX_TYPE_16BIT 等 */  ) ;                          // インデックスバッファを作成する( -1:エラー 0以上:インデックスバッファハンドル )
  2458. extern  int         DeleteIndexBuffer(      int IndexBufHandle ) ;                                                                  // インデックスバッファを削除する
  2459. extern  int         InitIndexBuffer(        void ) ;                                                                                // すべてのインデックスバッファを削除する
  2460. extern  int         SetIndexBufferData(     int SetIndex, void *IndexData, int IndexNum, int IndexBufHandle ) ;                     // インデックスバッファにインデックスデータを転送する
  2461.  
  2462. // シェーダー関係関数
  2463. extern  int         GetValidShaderVersion(      void ) ;                                                // 使用できるシェーダーのバージョンを取得する( 0=使えない  200=シェーダーモデル2.0が使用可能  300=シェーダーモデル3.0が使用可能 )
  2464.  
  2465. extern  int         LoadVertexShader(           const TCHAR *FileName ) ;                               // 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する( 戻り値 -1:エラー  -1以外:シェーダーハンドル )
  2466. extern  int         LoadPixelShader(            const TCHAR *FileName ) ;                               // ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する( 戻り値 -1:エラー  -1以外:シェーダーハンドル )
  2467. extern  int         LoadVertexShaderFromMem(    void *ImageAddress, int ImageSize ) ;                   // メモリに読み込まれた頂点シェーダーバイナリから頂点シェーダーハンドルを作成する( 戻り値 -1:エラー  -1以外:シェーダーハンドル )
  2468. extern  int         LoadPixelShaderFromMem(     void *ImageAddress, int ImageSize ) ;                   // メモリに読み込まれたピクセルシェーダーバイナリからピクセルシェーダーハンドルを作成する( 戻り値 -1:エラー  -1以外:シェーダーハンドル )
  2469. extern  int         DeleteShader(               int ShaderHandle ) ;                                    // シェーダーハンドルの削除( 頂点シェーダー・ピクセルシェーダー共通 )
  2470. extern  int         InitShader(                 void ) ;                                                // シェーダーハンドルを全て削除する( 頂点シェーダーハンドル・ピクセルシェーダーハンドルどちらもすべて削除 )
  2471.  
  2472. extern  int         GetConstIndexToShader(           const TCHAR *ConstantName, int ShaderHandle ) ;    // 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する
  2473. extern  int         GetConstCountToShader(           const TCHAR *ConstantName, int ShaderHandle ) ;    // 指定の名前を持つ定数が使用するシェーダー定数の数を取得する
  2474. extern  const FLOAT4 *GetConstDefaultParamFToShader( const TCHAR *ConstantName, int ShaderHandle ) ;    // 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する
  2475. extern  int         SetVSConstSF(         int ConstantIndex, float  Param ) ;                           // 頂点シェーダーの float 型定数を設定する
  2476. extern  int         SetVSConstF(          int ConstantIndex, FLOAT4 Param ) ;                           // 頂点シェーダーの float 型定数を設定する
  2477. extern  int         SetVSConstFMtx(       int ConstantIndex, MATRIX Param ) ;                           // 頂点シェーダーの float 型定数に行列を設定する
  2478. extern  int         SetVSConstFMtxT(      int ConstantIndex, MATRIX Param ) ;                           // 頂点シェーダーの float 型定数に転置した行列を設定する
  2479. extern  int         SetVSConstSI(         int ConstantIndex, int    Param ) ;                           // 頂点シェーダーの int   型定数を設定する
  2480. extern  int         SetVSConstI(          int ConstantIndex, INT4   Param ) ;                           // 頂点シェーダーの int   型定数を設定する
  2481. extern  int         SetVSConstB(          int ConstantIndex, BOOL   Param ) ;                           // 頂点シェーダーの BOOL  型定数を設定する
  2482. extern  int         SetVSConstSFArray(    int ConstantIndex, float  *ParamArray, int ParamNum ) ;       // 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2483. extern  int         SetVSConstFArray(     int ConstantIndex, FLOAT4 *ParamArray, int ParamNum ) ;       // 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2484. extern  int         SetVSConstFMtxArray(  int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ;       // 頂点シェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 )
  2485. extern  int         SetVSConstFMtxTArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ;       // 頂点シェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 )
  2486. extern  int         SetVSConstSIArray(    int ConstantIndex, int    *ParamArray, int ParamNum ) ;       // 頂点シェーダーの int   型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2487. extern  int         SetVSConstIArray(     int ConstantIndex, INT4   *ParamArray, int ParamNum ) ;       // 頂点シェーダーの int   型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2488. extern  int         SetVSConstBArray(     int ConstantIndex, BOOL   *ParamArray, int ParamNum ) ;       // 頂点シェーダーの BOOL  型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2489. extern  int         ResetVSConstF(        int ConstantIndex, int ParamNum ) ;                           // 頂点シェーダーの float 型定数の設定をリセットする
  2490. extern  int         ResetVSConstI(        int ConstantIndex, int ParamNum ) ;                           // 頂点シェーダーの int   型定数の設定をリセットする
  2491. extern  int         ResetVSConstB(        int ConstantIndex, int ParamNum ) ;                           // 頂点シェーダーの BOOL  型定数の設定をリセットする
  2492.  
  2493. extern  int         SetPSConstSF(         int ConstantIndex, float  Param ) ;                           // ピクセルシェーダーの float 型定数を設定する
  2494. extern  int         SetPSConstF(          int ConstantIndex, FLOAT4 Param ) ;                           // ピクセルシェーダーの float 型定数を設定する
  2495. extern  int         SetPSConstFMtx(       int ConstantIndex, MATRIX Param ) ;                           // ピクセルシェーダーの float 型定数に行列を設定する
  2496. extern  int         SetPSConstFMtxT(      int ConstantIndex, MATRIX Param ) ;                           // ピクセルシェーダーの float 型定数に転置した行列を設定する
  2497. extern  int         SetPSConstSI(         int ConstantIndex, int    Param ) ;                           // ピクセルシェーダーの int   型定数を設定する
  2498. extern  int         SetPSConstI(          int ConstantIndex, INT4   Param ) ;                           // ピクセルシェーダーの int   型定数を設定する
  2499. extern  int         SetPSConstB(          int ConstantIndex, BOOL   Param ) ;                           // ピクセルシェーダーの BOOL  型定数を設定する
  2500. extern  int         SetPSConstSFArray(    int ConstantIndex, float  *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2501. extern  int         SetPSConstFArray(     int ConstantIndex, FLOAT4 *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2502. extern  int         SetPSConstFMtxArray(  int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 )
  2503. extern  int         SetPSConstFMtxTArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 )
  2504. extern  int         SetPSConstSIArray(    int ConstantIndex, int    *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの int   型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2505. extern  int         SetPSConstIArray(     int ConstantIndex, INT4   *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの int   型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2506. extern  int         SetPSConstBArray(     int ConstantIndex, BOOL   *ParamArray, int ParamNum ) ;       // ピクセルシェーダーの BOOL  型定数を設定する( 配列を使って連番インデックスに一度に設定 )
  2507. extern  int         ResetPSConstF(        int ConstantIndex, int ParamNum ) ;                           // ピクセルシェーダーの float 型定数の設定をリセットする
  2508. extern  int         ResetPSConstI(        int ConstantIndex, int ParamNum ) ;                           // ピクセルシェーダーの int   型定数の設定をリセットする
  2509. extern  int         ResetPSConstB(        int ConstantIndex, int ParamNum ) ;                           // ピクセルシェーダーの BOOL  型定数の設定をリセットする
  2510.  
  2511. extern  int         SetRenderTargetToShader( int TargetIndex, int DrawScreen ) ;                        // シェーダーを使用した描画での描画先を設定する
  2512. extern  int         SetUseTextureToShader(   int StageIndex, int GraphHandle ) ;                        // シェーダーを使用した描画で使用するグラフィックハンドルを設定する
  2513. extern  int         SetUseVertexShader(      int ShaderHandle ) ;                                       // シェーダーを使用した描画に使用する頂点シェーダーを設定する( -1を渡すと解除 )
  2514. extern  int         SetUsePixelShader(       int ShaderHandle ) ;                                       // シェーダーを使用した描画に使用するピクセルシェーダーを設定する( -1を渡すと解除 )
  2515.  
  2516. extern  int         CalcPolygonBinormalAndTangentsToShader(        VERTEX3DSHADER *Vertex, int PolygonNum ) ;                                               // ポリゴンの頂点の接線と従法線をUV座標から計算してセットする
  2517. extern  int         CalcPolygonIndexedBinormalAndTangentsToShader( VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ;       // ポリゴンの頂点の接線と従法線をUV座標から計算してセットする( 頂点インデックスを使用する )
  2518.  
  2519. extern  int         DrawPolygon2DToShader(          VERTEX2DSHADER *Vertex, int PolygonNum ) ;                                                                                                              // シェーダーを使って2Dポリゴンを描画する
  2520. extern  int         DrawPolygon3DToShader(          VERTEX3DSHADER *Vertex, int PolygonNum ) ;                                                                                                              // シェーダーを使って3Dポリゴンを描画する
  2521. extern  int         DrawPolygonIndexed2DToShader(   VERTEX2DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ;                                                                      // シェーダーを使って2Dポリゴンを描画する( 頂点インデックスを使用する )
  2522. extern  int         DrawPolygonIndexed3DToShader(   VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ;                                                                      // シェーダーを使って3Dポリゴンを描画する( 頂点インデックスを使用する )
  2523. extern  int         DrawPrimitive2DToShader(        VERTEX2DSHADER *Vertex, int VertexNum,                                        int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                  // シェーダーを使って2Dプリミティブを描画する
  2524. extern  int         DrawPrimitive3DToShader(        VERTEX3DSHADER *Vertex, int VertexNum,                                        int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                  // シェーダーを使って3Dプリミティブを描画する
  2525. extern  int         DrawPrimitiveIndexed2DToShader( VERTEX2DSHADER *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                  // シェーダーを使って2Dプリミティブを描画する( 頂点インデックスを使用する )
  2526. extern  int         DrawPrimitiveIndexed3DToShader( VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                  // シェーダーを使って3Dプリミティブを描画する( 頂点インデックスを使用する )
  2527. extern  int         DrawPolygon3DToShader_UseVertexBuffer(           int VertexBufHandle ) ;                                                                                                                // シェーダーを使って3Dポリゴンを描画する( 頂点バッファ使用版 )
  2528. extern  int         DrawPolygonIndexed3DToShader_UseVertexBuffer(    int VertexBufHandle, int IndexBufHandle ) ;                                                                                            // シェーダーを使って3Dポリゴンを描画する( 頂点バッファとインデックスバッファ使用版 )
  2529. extern  int         DrawPrimitive3DToShader_UseVertexBuffer(         int VertexBufHandle,                     int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                                      // シェーダーを使って3Dプリミティブを描画する( 頂点バッファ使用版 )
  2530. extern  int         DrawPrimitive3DToShader_UseVertexBuffer2(        int VertexBufHandle,                     int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int StartVertex, int UseVertexNum ) ;   // シェーダーを使って3Dプリミティブを描画する( 頂点バッファ使用版 )
  2531. extern  int         DrawPrimitiveIndexed3DToShader_UseVertexBuffer(  int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ;                                      // シェーダーを使って3Dプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 )
  2532. extern  int         DrawPrimitiveIndexed3DToShader_UseVertexBuffer2( int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum ) ;  // シェーダーを使って3Dプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 )
  2533.  
  2534. // フィルター関係関数
  2535. #ifndef DX_NON_FILTER
  2536. extern  int         GraphFilter(         int    GrHandle,                                                                                                               int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */ , ... ) ;        // 画像にフィルター処理を行う
  2537. extern  int         GraphFilterBlt(      int SrcGrHandle, int DestGrHandle,                                                                                             int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */ , ... ) ;        // 画像のフィルター付き転送を行う
  2538. 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 等 */ , ... ) ;        // 画像のフィルター付き転送を行う( 矩形指定 )
  2539. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_MONO, int Cb = 青色差( -255 ~ 255 ), int Cr = 赤色差( -255 ~ 255 ) ) ;
  2540. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_GAUSS, int PixelWidth = 使用ピクセル幅( 8 , 16 , 32 の何れか ), int Param = ぼかしパラメータ( 100 で約1ピクセル分の幅 ) ) ;
  2541. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_DOWN_SCALE, int DivNum = 元のサイズの何分の1か、という値( 2 , 4 , 8 の何れか ) ) ;
  2542. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_BRIGHT_CLIP, int CmpType = クリップタイプ( DX_CMP_LESS:CmpParam以下をクリップ  又は  DX_CMP_GREATER:CmpParam以上をクリップ ), int CmpParam = クリップパラメータ( 0 ~ 255 ), int ClipFillFlag = クリップしたピクセルを塗りつぶすかどうか( TRUE:塗りつぶす  FALSE:塗りつぶさない ), int ClipFillColor = クリップしたピクセルに塗る色値( GetColor で取得する )( ClipFillFlag が FALSE の場合は使用しない ), int ClipFillAlpha = クリップしたピクセルに塗るα値( 0 ~ 255 )( ClipFillFlag が FALSE の場合は使用しない ) ) ;
  2543. //      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 ) ) ;
  2544. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_INVERT ) ;
  2545. //      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 ) ) ;
  2546. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_TWO_COLOR, int Threshold = 閾値( 0 ~ 255 ), int LowColor = 閾値より値が低かったピクセルの変換後の色値( GetColor で取得する ), int LowAlpha = 閾値より値が低かったピクセルの変換後のα値( 0 ~ 255 ), int HighColor = 閾値より値が高かったピクセルの変換後の色値( GetColor で取得する ), int HighAlpha = 閾値より値が高かったピクセルの変換後のα値( 0 ~ 255 ) ) ;
  2547. //      int         GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_GRADIENT_MAP, int MapGrHandle = グラデーションマップのグラフィックハンドル( 元画像の輝度からグラデーションマップ画像の x 座標を算出しますので縦幅は1dotでもOK ), int Reverse = グラデーションマップ左右反転フラグ( TRUE : グラデーションマップを左右反転して使う  FALSE : 左右反転しない ) ) ;
  2548.  
  2549. extern  int         GraphBlend(         int    GrHandle, int BlendGrHandle,                                                                                                                                         int BlendRatio /* ブレンド効果の影響度( 0:0%  255:100% ) */ , int BlendType /* DX_GRAPH_BLEND_ADD 等 */ , ... ) ;    // 二つの画像をブレンドする
  2550. extern  int         GraphBlendBlt(      int SrcGrHandle, int BlendGrHandle, int DestGrHandle,                                                                                                                       int BlendRatio /* ブレンド効果の影響度( 0:0%  255:100% ) */ , int BlendType /* DX_GRAPH_BLEND_ADD 等 */ , ... ) ;    // 二つの画像をブレンドして結果を指定の画像に出力する
  2551. 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 等 */ , ... ) ;    // 二つの画像をブレンドして結果を指定の画像に出力する( 矩形指定 )
  2552. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL ) ;
  2553. //      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 等 ) ) ;
  2554. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE ) ;
  2555. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DIFFERENCE ) ;
  2556. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD ) ;
  2557. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SCREEN ) ;
  2558. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_OVERLAY ) ;
  2559. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DODGE ) ;
  2560. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BURN ) ;
  2561. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DARKEN ) ;
  2562. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_LIGHTEN ) ;
  2563. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SOFTLIGHT ) ;
  2564. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HARDLIGHT ) ;
  2565. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_EXCLUSION ) ;
  2566. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HUE ) ;
  2567. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SATURATION ) ;
  2568. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_COLOR ) ;
  2569. //      int         GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BRIGHT ) ;
  2570. #endif // DX_NON_FILTER
  2571.  
  2572. #ifndef DX_NON_MOVIE
  2573. // ムービーグラフィック関係関数
  2574. extern  int         PlayMovie(                      const TCHAR *FileName, int ExRate, int PlayType ) ;                     // 動画ファイルの再生
  2575. extern  int         OpenMovieToGraph(               const TCHAR *FileName, int FullColor = TRUE ) ;                         // 動画ファイルを開く
  2576. extern  int         PlayMovieToGraph(               int GraphHandle, int PlayType = DX_PLAYTYPE_BACK , int SysPlay = 0 ) ;  // 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を開始する
  2577. extern  int         PauseMovieToGraph(              int GraphHandle, int SysPause = 0 ) ;                                   // 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を停止する
  2578. extern  int         AddMovieFrameToGraph(           int GraphHandle, unsigned int FrameNum ) ;                              // 動画ファイルの再生フレームを進める、戻すことは出来ない( 動画ファイルが停止状態で、且つ Ogg Theora のみ有効 )
  2579. extern  int         SeekMovieToGraph(               int GraphHandle, int Time ) ;                                           // 動画ファイルの再生位置を設定する(ミリ秒単位)
  2580. extern  int         GetMovieStateToGraph(           int GraphHandle ) ;                                                     // 動画ファイルの再生状態を得る
  2581. extern  int         SetMovieVolumeToGraph(          int Volume, int GraphHandle ) ;                                         // 動画ファイルの音量を設定する(0~10000)
  2582. extern  int         ChangeMovieVolumeToGraph(       int Volume, int GraphHandle ) ;                                         // 動画ファイルの音量を設定する(0~255)
  2583. extern  BASEIMAGE*  GetMovieBaseImageToGraph(       int GraphHandle ) ;                                                     // 動画ファイルの基本イメージデータを取得する
  2584. extern  int         GetMovieTotalFrameToGraph(      int GraphHandle ) ;                                                     // 動画ファイルの総フレーム数を得る( Ogg Theora でのみ有効 )
  2585. extern  int         TellMovieToGraph(               int GraphHandle ) ;                                                     // 動画ファイルの再生位置を取得する(ミリ秒単位)
  2586. extern  int         TellMovieToGraphToFrame(        int GraphHandle ) ;                                                     // 動画ファイルの再生位置を取得する(フレーム単位)
  2587. extern  int         SeekMovieToGraphToFrame(        int GraphHandle, int Frame ) ;                                          // 動画ファイルの再生位置を設定する(フレーム単位)
  2588. extern  LONGLONG    GetOneFrameTimeMovieToGraph(    int GraphHandle ) ;                                                     // 動画ファイルの1フレームあたりの時間を取得する
  2589. extern  int         GetLastUpdateTimeMovieToGraph(  int GraphHandle ) ;                                                     // 動画ファイルのイメージを最後に更新した時間を得る(ミリ秒単位)
  2590. extern  int         SetMovieRightImageAlphaFlag(    int Flag ) ;                                                            // 動画ファイル映像の右半分の赤成分をα情報として扱うかどうかをセットする( TRUE:α情報として扱う  FALSE:α情報として扱わない( デフォルト ) )
  2591. #endif // DX_NON_MOVIE
  2592.  
  2593. // カメラ関係関数
  2594. extern  int         SetCameraNearFar(                   float Near, float Far ) ;                                           // カメラの Nearクリップ面と Farクリップ面の距離を設定する
  2595. extern  int         SetCameraPositionAndTarget_UpVecY(  VECTOR Position, VECTOR Target ) ;                                  // カメラの視点、注視点、アップベクトルを設定する( アップベクトルはY軸方向から導き出す )
  2596. extern  int         SetCameraPositionAndTargetAndUpVec( VECTOR Position, VECTOR Target, VECTOR Up ) ;                       // カメラの視点、注視点、アップベクトルを設定する
  2597. extern  int         SetCameraPositionAndAngle(          VECTOR Position, float VRotate, float HRotate, float TRotate ) ;    // カメラの視点、注視点、アップベクトルを設定する( 注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す )
  2598. extern  int         SetCameraViewMatrix(                MATRIX ViewMatrix ) ;                                               // ビュー行列を直接設定する
  2599. extern  int         SetCameraScreenCenter(              float x, float y ) ;                                                // 画面上におけるカメラが見ている映像の中心の座標を設定する
  2600.  
  2601. extern  int         SetupCamera_Perspective(            float Fov ) ;                                                       // 遠近法カメラをセットアップする
  2602. extern  int         SetupCamera_Ortho(                  float Size ) ;                                                      // 正射影カメラをセットアップする
  2603. extern  int         SetupCamera_ProjectionMatrix(       MATRIX ProjectionMatrix ) ;                                         // 射影行列を直接設定する
  2604. extern  int         SetCameraDotAspect(                 float DotAspect ) ;                                                 // カメラのドットアスペクト比を設定する
  2605.  
  2606. extern  int         CheckCameraViewClip(                VECTOR CheckPos ) ;                                                 // 指定の座標がカメラの視界に入っているかどうかを判定する( 戻り値 TRUE:視界に入っていない  FALSE:視界に入っている )
  2607. extern  int         CheckCameraViewClip_Dir(            VECTOR CheckPos ) ;                                                 // 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる( 戻り値 0:視界に入っている  0以外:視界に入っていない( DX_CAMERACLIP_LEFT や DX_CAMERACLIP_RIGHT が or 演算で混合されたもの、and 演算で方向を確認できる ) )
  2608. extern  int         CheckCameraViewClip_Box(            VECTOR BoxPos1, VECTOR BoxPos2 ) ;                                  // 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する( 戻り値 TRUE:視界に入っていない  FALSE:視界に入っている )
  2609.  
  2610. extern  float       GetCameraNear(                      void ) ;                                                            // カメラの Near クリップ面の距離を取得する
  2611. extern  float       GetCameraFar(                       void ) ;                                                            // カメラの Far クリップ面の距離を取得する
  2612.  
  2613. extern  VECTOR      GetCameraPosition(                  void ) ;                                                            // カメラの位置を取得する
  2614. extern  VECTOR      GetCameraTarget(                    void ) ;                                                            // カメラの注視点を取得する
  2615. extern  VECTOR      GetCameraUpVector(                  void ) ;                                                            // カメラの視線に垂直な上方向のベクトルを取得する
  2616. extern  float       GetCameraAngleHRotate(              void ) ;                                                            // カメラの水平方向の向きを取得する
  2617. extern  float       GetCameraAngleVRotate(              void ) ;                                                            // カメラの垂直方向の向きを取得する
  2618. extern  float       GetCameraAngleTRotate(              void ) ;                                                            // カメラの向きの捻り角度を取得する
  2619.  
  2620. extern  MATRIX      GetCameraViewMatrix(                void ) ;                                                            // ビュー行列を取得する
  2621. extern  MATRIX      GetCameraBillboardMatrix(           void ) ;                                                            // ビルボード行列を取得する
  2622. extern  float       GetCameraFov(                       void ) ;                                                            // カメラの視野角を取得する
  2623. extern  float       GetCameraSize(                      void ) ;                                                            // カメラの視野サイズを取得する
  2624. extern  MATRIX      GetCameraProjectionMatrix(          void ) ;                                                            // 射影行列を取得する
  2625. extern  float       GetCameraDotAspect(                 void ) ;                                                            // カメラのドットアスペクト比を得る
  2626. extern  MATRIX      GetCameraViewportMatrix(            void ) ;                                                            // ビューポート行列を取得する
  2627. extern  MATRIX      GetCameraAPIViewportMatrix(         void ) ;                                                            // Direct3Dで自動適用されるビューポート行列を取得する
  2628.  
  2629. // ライト関係関数
  2630. extern  int         SetUseLighting(             int Flag ) ;                                                                // ライティングを使用するかどうかを設定する
  2631. extern  int         SetMaterialUseVertDifColor( int UseFlag ) ;                                                             // 3D描画のライティング計算で頂点カラーのディフューズカラーを使用するかどうかを設定する
  2632. extern  int         SetMaterialUseVertSpcColor( int UseFlag ) ;                                                             // 3D描画のライティング計算で頂点カラーのスペキュラカラーを使用するかどうかを設定する
  2633. extern  int         SetMaterialParam(           MATERIALPARAM Material ) ;                                                  // 3D描画のライティング計算で使用するマテリアルパラメータを設定する
  2634. extern  int         SetUseSpecular(             int UseFlag ) ;                                                             // 3D描画にスペキュラを使用するかどうかを設定する
  2635. extern  int         SetGlobalAmbientLight(      COLOR_F Color ) ;                                                           // グローバルアンビエントライトカラーを設定する
  2636.  
  2637. extern  int         ChangeLightTypeDir(         VECTOR Direction ) ;                                                        // デフォルトライトのタイプをディレクショナルライトにする
  2638. extern  int         ChangeLightTypeSpot(        VECTOR Position, VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2 ) ; // デフォルトライトのタイプをスポットライトにする
  2639. extern  int         ChangeLightTypePoint(       VECTOR Position, float Range, float Atten0, float Atten1, float Atten2 ) ;  // デフォルトライトのタイプをポイントライトにする
  2640. extern  int         GetLightType(               void ) ;                                                                    // デフォルトライトのタイプを取得する( 戻り値は DX_LIGHTTYPE_DIRECTIONAL 等 )
  2641. extern  int         SetLightEnable(             int EnableFlag ) ;                                                          // デフォルトライトを使用するかどうかを設定する
  2642. extern  int         GetLightEnable(             void ) ;                                                                    // デフォルトライトを使用するかどうかを取得する( 戻り値 TRUE:有効  FALSE:無効 )
  2643. extern  int         SetLightDifColor(           COLOR_F Color ) ;                                                           // デフォルトライトのディフューズカラーを設定する
  2644. extern  COLOR_F     GetLightDifColor(           void ) ;                                                                    // デフォルトライトのディフューズカラーを取得する
  2645. extern  int         SetLightSpcColor(           COLOR_F Color ) ;                                                           // デフォルトライトのスペキュラカラーを設定する
  2646. extern  COLOR_F     GetLightSpcColor(           void ) ;                                                                    // デフォルトライトのスペキュラカラーを取得する
  2647. extern  int         SetLightAmbColor(           COLOR_F Color ) ;                                                           // デフォルトライトのアンビエントカラーを設定する
  2648. extern  COLOR_F     GetLightAmbColor(           void ) ;                                                                    // デフォルトライトのアンビエントカラーを取得する
  2649. extern  int         SetLightDirection(          VECTOR Direction ) ;                                                        // デフォルトライトの方向を設定する
  2650. extern  VECTOR      GetLightDirection(          void ) ;                                                                    // デフォルトライトの方向を取得する
  2651. extern  int         SetLightPosition(           VECTOR Position ) ;                                                         // デフォルトライトの位置を設定する
  2652. extern  VECTOR      GetLightPosition(           void ) ;                                                                    // デフォルトライトの位置を取得する
  2653. extern  int         SetLightRangeAtten(         float Range, float Atten0, float Atten1, float Atten2 ) ;                   // デフォルトライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数0、1、2 )
  2654. extern  int         GetLightRangeAtten(         float *Range, float *Atten0, float *Atten1, float *Atten2 ) ;               // デフォルトライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数0、1、2 )
  2655. extern  int         SetLightAngle(              float OutAngle, float InAngle ) ;                                           // デフォルトライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 )
  2656. extern  int         GetLightAngle(              float *OutAngle, float *InAngle ) ;                                         // デフォルトライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 )
  2657.  
  2658. extern  int         CreateDirLightHandle(       VECTOR Direction ) ;                                                        // ディレクショナルライトハンドルを作成する
  2659. extern  int         CreateSpotLightHandle(      VECTOR Position, VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2 ) ; // スポットライトハンドルを作成する
  2660. extern  int         CreatePointLightHandle(     VECTOR Position, float Range, float Atten0, float Atten1, float Atten2 ) ;  // ポイントライトハンドルを作成する
  2661. extern  int         DeleteLightHandle(          int LHandle ) ;                                                             // ライトハンドルを削除する
  2662. extern  int         DeleteLightHandleAll(       void ) ;                                                                    // ライトハンドルを全て削除する
  2663. extern  int         SetLightTypeHandle(         int LHandle, int LightType ) ;                                              // ライトハンドルのライトのタイプを変更する( DX_LIGHTTYPE_DIRECTIONAL 等 )
  2664. extern  int         SetLightEnableHandle(       int LHandle, int EnableFlag ) ;                                             // ライトハンドルのライト効果の有効、無効を設定する( TRUE:有効  FALSE:無効 )
  2665. extern  int         SetLightDifColorHandle(     int LHandle, COLOR_F Color ) ;                                              // ライトハンドルのライトのディフューズカラーを設定する
  2666. extern  int         SetLightSpcColorHandle(     int LHandle, COLOR_F Color ) ;                                              // ライトハンドルのライトのスペキュラカラーを設定する
  2667. extern  int         SetLightAmbColorHandle(     int LHandle, COLOR_F Color ) ;                                              // ライトハンドルのライトのアンビエントカラーを設定する
  2668. extern  int         SetLightDirectionHandle(    int LHandle, VECTOR Direction ) ;                                           // ライトハンドルのライトの方向を設定する
  2669. extern  int         SetLightPositionHandle(     int LHandle, VECTOR Position ) ;                                            // ライトハンドルのライトの位置を設定する
  2670. extern  int         SetLightRangeAttenHandle(   int LHandle, float Range, float Atten0, float Atten1, float Atten2 ) ;      // ライトハンドルのライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数0、1、2 )
  2671. extern  int         SetLightAngleHandle(        int LHandle, float OutAngle, float InAngle ) ;                              // ライトハンドルのライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 )
  2672. extern  int         GetLightTypeHandle(         int LHandle ) ;                                                             // ライトハンドルのライトのタイプを取得する( 戻り値は DX_LIGHTTYPE_DIRECTIONAL 等 )
  2673. extern  int         GetLightEnableHandle(       int LHandle ) ;                                                             // ライトハンドルのライト効果の有効、無効を取得する( TRUE:有効  FALSE:無効 )
  2674. extern  COLOR_F     GetLightDifColorHandle(     int LHandle ) ;                                                             // ライトハンドルのライトのディフューズカラーを取得する
  2675. extern  COLOR_F     GetLightSpcColorHandle(     int LHandle ) ;                                                             // ライトハンドルのライトのスペキュラカラーを取得する
  2676. extern  COLOR_F     GetLightAmbColorHandle(     int LHandle ) ;                                                             // ライトハンドルのライトのアンビエントカラーを取得する
  2677. extern  VECTOR      GetLightDirectionHandle(    int LHandle ) ;                                                             // ライトハンドルのライトの方向を取得する
  2678. extern  VECTOR      GetLightPositionHandle(     int LHandle ) ;                                                             // ライトハンドルのライトの位置を取得する
  2679. extern  int         GetLightRangeAttenHandle(   int LHandle, float *Range, float *Atten0, float *Atten1, float *Atten2 ) ;  // ライトハンドルのライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数0、1、2 )
  2680. extern  int         GetLightAngleHandle(        int LHandle, float *OutAngle, float *InAngle ) ;                            // ライトハンドルのライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 )
  2681.  
  2682. extern  int         GetEnableLightHandleNum(    void ) ;                                                                    // 有効になっているライトハンドルの数を取得する
  2683. extern  int         GetEnableLightHandle(       int Index ) ;                                                               // 有効になっているライトハンドルを取得する
  2684.  
  2685. // 色情報取得用関数
  2686. extern  int         GetTexFormatIndex(          IMAGEFORMATDESC *Format ) ;                                                                                                 // テクスチャフォーマットのインデックスを得る
  2687. extern  int         ColorKaiseki(               void *PixelData, COLORDATA* ColorData ) ;                                                                                   // 色ビット情報解析
  2688. #ifdef __WINDOWS__
  2689. extern  int         CreatePixelFormat(          D_DDPIXELFORMAT *PixelFormatBuf, int ColorBitDepth, DWORD RedMask, DWORD GreenMask, DWORD BlueMask, DWORD AlphaMask ) ;     // DDPIXELFORMATデータを作成する
  2690. #endif // __WINDOWS__
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699. // DxMask.cpp 関数プロトタイプ宣言
  2700.  
  2701. #ifndef DX_NON_MASK
  2702.  
  2703. // マスク関係
  2704. extern  int         CreateMaskScreen(               void ) ;                                                                                        // マスクスクリーンを作成する
  2705. extern  int         DeleteMaskScreen(               void ) ;                                                                                        // マスクスクリーンを削除する
  2706. extern  int         DrawMaskToDirectData(           int x, int y, int Width, int Height, void *MaskData , int TransMode ) ;                         // マスクスクリーンにメモリ上のビットマップデータを転送する( MaskData は 1byte で 1dot 表す1ラインあたり Width byte のデータ配列の先頭アドレス )
  2707. extern  int         DrawFillMaskToDirectData(       int x1, int y1, int x2, int y2,  int Width, int Height, void *MaskData ) ;                      // マスクスクリーンにメモリ上のビットマップデータで指定矩形内を塗りつぶすように転送する
  2708.  
  2709. extern  int         SetUseMaskScreenFlag(           int ValidFlag ) ;                                                                               // マスクスクリーンを使用するかどうかを設定する( ValidFlag:使用するかどうか( TRUE:使用する  FALSE:使用しない( デフォルト ) )
  2710. extern  int         GetUseMaskScreenFlag(           void ) ;                                                                                        // マスクスクリーンを使用するかどうかを取得する
  2711. extern  int         FillMaskScreen(                 int Flag ) ;                                                                                    // マスクスクリーンを指定の色で塗りつぶす
  2712.  
  2713. extern  int         InitMask(                       void ) ;                                                                                        // マスクハンドルをすべて削除する
  2714. extern  int         MakeMask(                       int Width, int Height ) ;                                                                       // マスクハンドルを作成する
  2715. extern  int         GetMaskSize(                    int *WidthBuf, int *HeightBuf, int MaskHandle ) ;                                               // マスクハンドルが持つマスクイメージのサイズを取得する
  2716. extern  int         SetDataToMask(                  int Width, int Height, void *MaskData, int MaskHandle ) ;                                       // マスクハンドルにビットマップイメージを転送する
  2717. extern  int         DeleteMask(                     int MaskHandle ) ;                                                                              // マスクハンドルを削除する
  2718. extern  int         BmpBltToMask(                   HBITMAP Bmp, int BmpPointX, int BmpPointY, int MaskHandle ) ;                                   // マスクハンドルにBMPデータを転送する
  2719. extern  int         LoadMask(                       const TCHAR *FileName ) ;                                                                       // 画像ファイルを読み込みマスクハンドルを作成する
  2720. extern  int         LoadDivMask(                    const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ; // 画像ファイルを分割読み込みしてマスクハンドルを作成する
  2721. extern  int         DrawMask(                       int x, int y, int MaskHandle, int TransMode ) ;                                                 // マスクスクリーンにマスクハンドルの持つマスクイメージを書き込む
  2722. #ifndef DX_NON_FONT
  2723. extern  int         DrawFormatStringMask(           int x, int y, int Flag,                 const TCHAR *FormatString, ... ) ;                      // 書式指定ありの文字列をマスクスクリーンに描画する
  2724. extern  int         DrawFormatStringMaskToHandle(   int x, int y, int Flag, int FontHandle, const TCHAR *FormatString, ... ) ;                      // 書式指定ありの文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag( FALSE ) ; にして作成したフォントハンドルのみ使用可能 )
  2725. extern  int         DrawStringMask(                 int x, int y, int Flag,                 const TCHAR *String ) ;                                 // 文字列をマスクスクリーンに描画する
  2726. extern  int         DrawStringMaskToHandle(         int x, int y, int Flag, int FontHandle, const TCHAR *String ) ;                                 // 文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag( FALSE ) ; にして作成したフォントハンドルのみ使用可能 )
  2727. #endif // DX_NON_FONT
  2728. extern  int         DrawFillMask(                   int x1, int y1, int x2, int y2, int MaskHandle ) ;                                              // マスクハンドルが持つマスクイメージをマスクスクリーンいっぱいに描画する( タイル状に並べる )
  2729. extern  int         SetMaskReverseEffectFlag(       int ReverseFlag ) ;                                                                             // マスクイメージ内の数値に対する効果を逆転させる( 旧バージョンとの互換性の為の機能 )
  2730.  
  2731. extern  int         GetMaskScreenData(              int x1, int y1, int x2, int y2, int MaskHandle ) ;                                              // マスクスクリーンの指定矩形部分をマスクハンドルに転送する
  2732. extern  int         GetMaskUseFlag(                 void ) ;                                                                                        // マスクスクリーンを使用する設定になっているかどうかを取得する
  2733.  
  2734. #endif // DX_NON_MASK
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751. // DxFont.cpp 関数プロトタイプ宣言
  2752.  
  2753. #ifndef DX_NON_FONT
  2754.  
  2755. // フォント、文字列描画関係関数
  2756. extern  int         EnumFontName(                           TCHAR *NameBuffer, int NameBufferNum, int JapanOnlyFlag = TRUE ) ;                              // 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます )
  2757. extern  int         EnumFontNameEx(                         TCHAR *NameBuffer, int NameBufferNum, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */ ) ;         // 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます )( 文字セット指定版 )
  2758. extern  int         EnumFontNameEx2(                        TCHAR *NameBuffer, int NameBufferNum, TCHAR *EnumFontName, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */ ) ;    // 指定のフォント名のフォントを列挙する
  2759. extern  int         InitFontToHandle(                       void ) ;                                                                                        // 全てのフォントハンドルを削除する
  2760.  
  2761. extern  int         CreateFontToHandle(                     const TCHAR *FontName, int Size, int Thick, int FontType = -1 , int CharSet = -1 , int EdgeSize = -1 , int Italic = FALSE , int Handle = -1 ) ;     // フォントハンドルを作成する
  2762. extern  int         SetFontSpaceToHandle(                   int Point, int FontHandle ) ;                                                                   // フォントハンドルの字間を変更する
  2763. extern  int         DeleteFontToHandle(                     int FontHandle ) ;                                                                              // フォントハンドルを削除する
  2764. extern  int         SetFontLostFlag(                        int FontHandle, int *LostFlag ) ;                                                               // フォントハンドルを削除した際に TRUE を代入する変数のアドレスを設定する
  2765.  
  2766. extern  int         ChangeFont(                             const TCHAR *FontName, int CharSet = -1 /* DX_CHARSET_SHFTJIS 等 */ ) ;                            // デフォルトフォントハンドルで使用するフォントを変更
  2767. extern  int         ChangeFontType(                         int FontType ) ;                                                                                // デフォルトフォントハンドルのフォントタイプの変更
  2768. extern  int         SetFontSize(                            int FontSize ) ;                                                                                // デフォルトフォントハンドルのサイズを設定する
  2769. extern  int         GetFontSize(                            void ) ;                                                                                        // デフォルトフォントハンドルのサイズを取得する
  2770. extern  int         SetFontThickness(                       int ThickPal ) ;                                                                                // デフォルトフォントハンドルの太さを設定する
  2771. extern  int         SetFontSpace(                           int Point ) ;                                                                                   // デフォルトフォントハンドルの字間を変更する
  2772. extern  int         SetDefaultFontState(                    const TCHAR *FontName, int Size, int Thick ) ;                                                  // デフォルトフォントハンドルの設定を変更する
  2773. extern  int         GetDefaultFontHandle(                   void ) ;                                                                                        // デフォルトフォントハンドルを取得する
  2774. extern  int         GetFontMaxWidth(                        void ) ;                                                                                        // デフォルトフォントハンドルの文字の最大幅を取得する
  2775. extern  int         GetDrawStringWidth(                     const TCHAR *String, int StrLen, int VerticalFlag = FALSE ) ;                                   // デフォルトフォントハンドルを使用した文字列の描画幅を取得する
  2776. extern  int         GetDrawFormatStringWidth(               const TCHAR *FormatString, ... ) ;                                                              // デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する
  2777. extern  int         GetDrawExtendStringWidth(               double ExRateX, const TCHAR *String, int StrLen, int VerticalFlag = FALSE ) ;                   // デフォルトフォントハンドルを使用した文字列の描画幅を取得する( 拡大率付き )
  2778. extern  int         GetDrawExtendFormatStringWidth(         double ExRateX, const TCHAR *FormatString, ... ) ;                                              // デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する( 拡大率付き )
  2779.  
  2780. extern  int         GetFontMaxWidthToHandle(                int FontHandle ) ;                                                                              // フォントハンドルの文字の最大幅を取得する
  2781. extern  int         GetFontSizeToHandle(                    int FontHandle ) ;                                                                              // フォントハンドルのサイズを取得する
  2782. extern  int         GetFontCharInfo(                        int FontHandle, const TCHAR *Char, int *DrawX, int *DrawY, int *NextCharX, int *SizeX, int *SizeY ) ;   // フォントハンドルの指定の文字の描画情報を取得する
  2783. extern  int         GetDrawStringWidthToHandle(             const TCHAR *String, int StrLen, int FontHandle, int VerticalFlag = FALSE ) ;                   // フォントハンドルを使用した文字列の描画幅を取得する
  2784. extern  int         GetDrawFormatStringWidthToHandle(       int FontHandle, const TCHAR *FormatString, ... ) ;                                              // フォントハンドルを使用した書式付き文字列の描画幅を取得する
  2785. extern  int         GetDrawExtendStringWidthToHandle(       double ExRateX, const TCHAR *String, int StrLen, int FontHandle, int VerticalFlag = FALSE ) ;   // フォントハンドルを使用した文字列の描画幅を取得する
  2786. extern  int         GetDrawExtendFormatStringWidthToHandle( double ExRateX, int FontHandle, const TCHAR *FormatString, ... ) ;                              // フォントハンドルを使用した書式付き文字列の描画幅を取得する
  2787. extern  int         GetFontStateToHandle(                   TCHAR *FontName, int *Size, int *Thick, int FontHandle) ;                                       // フォントハンドルの情報を取得する
  2788. extern  int         CheckFontCacheToTextureFlag(            int FontHandle ) ;                                                                              // フォントハンドルがテクスチャキャッシュを使用しているかどうかを取得する
  2789. extern  int         CheckFontChacheToTextureFlag(           int FontHandle ) ;                                                                              // CheckFontCacheToTextureFlag の誤字版
  2790. extern  int         CheckFontHandleValid(                   int FontHandle ) ;                                                                              // フォントハンドルが有効かどうかを取得する
  2791.  
  2792. extern  int         SetFontCacheToTextureFlag(              int Flag ) ;                                                                                    // フォントのキャッシュにテクスチャを使用するかどうかを設定する( TRUE:テクスチャを使用する( デフォルト )  FALSE:テクスチャは使用しない )
  2793. extern  int         GetFontCacheToTextureFlag(              void ) ;                                                                                        // フォントのキャッシュにテクスチャを使用するかどうかを設定する
  2794. extern  int         SetFontChacheToTextureFlag(             int Flag ) ;                                                                                    // SetFontCacheToTextureFlag の誤字版
  2795. extern  int         GetFontChacheToTextureFlag(             void ) ;                                                                                        // GetFontCacheToTextureFlag の誤字版
  2796. extern  int         SetFontCacheCharNum(                    int CharNum ) ;                                                                                 // フォントキャッシュでキャッシュできる文字数を設定する
  2797. extern  int         GetFontCacheCharNum(                    void ) ;                                                                                        // フォントキャッシュでキャッシュできる文字数を取得する( 戻り値  0:デフォルト  1以上:指定文字数 )
  2798.  
  2799. // FontCacheStringDraw の代わりに DrawString を使ってください
  2800. extern  int         FontCacheStringDrawToHandle(            int x, int y, const TCHAR *StrData, int Color, int EdgeColor, BASEIMAGE *DestImage, RECT *ClipRect /* NULL 可 */ , int FontHandle, int VerticalFlag = FALSE , SIZE *DrawSizeP = NULL ) ;
  2801. extern  int         FontBaseImageBlt(                       int x, int y, const TCHAR *StrData, BASEIMAGE *DestImage, BASEIMAGE *DestEdgeImage,                 int VerticalFlag = FALSE ) ;    // 基本イメージに文字列を描画する( デフォルトフォントハンドルを使用する )
  2802. extern  int         FontBaseImageBltToHandle(               int x, int y, const TCHAR *StrData, BASEIMAGE *DestImage, BASEIMAGE *DestEdgeImage, int FontHandle, int VerticalFlag = FALSE ) ;    // 基本イメージに文字列を描画する
  2803.  
  2804. extern  int         MultiByteCharCheck(                     const char *Buf, int CharSet /* DX_CHARSET_SHFTJIS */ ) ;                                       // 2バイト文字か調べる( TRUE:2バイト文字  FALSE:1バイト文字 )
  2805.  
  2806. // 文字列描画関数
  2807. extern  int         DrawString(                             int x, int y, const TCHAR *String, int Color,                 int EdgeColor = 0 ) ;                                                                             // デフォルトフォントハンドルを使用して文字列を描画する
  2808. extern  int         DrawVString(                            int x, int y, const TCHAR *String, int Color,                 int EdgeColor = 0 ) ;                                                                             // デフォルトフォントハンドルを使用して文字列を描画する( 縦書き )
  2809. extern  int         DrawFormatString(                       int x, int y, int Color,                 const TCHAR *FormatString, ... ) ;                                                                                     // デフォルトフォントハンドルを使用して書式指定文字列を描画する
  2810. extern  int         DrawFormatVString(                      int x, int y, int Color,                 const TCHAR *FormatString, ... ) ;                                                                                     // デフォルトフォントハンドルを使用して書式指定文字列を描画する( 縦書き )
  2811. extern  int         DrawExtendString(                       int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color,                 int EdgeColor = 0 ) ;                                             // デフォルトフォントハンドルを使用して文字列の拡大描画
  2812. extern  int         DrawExtendVString(                      int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color,                 int EdgeColor = 0 ) ;                                             // デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き )
  2813. extern  int         DrawExtendFormatString(                 int x, int y, double ExRateX, double ExRateY, int Color,                 const TCHAR *FormatString, ... ) ;                                                     // デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する
  2814. extern  int         DrawExtendFormatVString(                int x, int y, double ExRateX, double ExRateY, int Color,                 const TCHAR *FormatString, ... ) ;                                                     // デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )
  2815.  
  2816. extern  int         DrawNumberToI(                          int x, int y,                          int    Num, int RisesNum, int Color, int EdgeColor = 0 ) ;                                                               // デフォルトフォントハンドルを使用して整数型の数値を描画する
  2817. extern  int         DrawNumberToF(                          int x, int y,                          double Num, int Length,   int Color, int EdgeColor = 0 ) ;                                                               // デフォルトフォントハンドルを使用して浮動小数点型の数値を描画する
  2818. extern  int         DrawNumberPlusToI(                      int x, int y, const TCHAR *NoteString, int    Num, int RisesNum, int Color, int EdgeColor = 0 ) ;                                                               // デフォルトフォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
  2819. extern  int         DrawNumberPlusToF(                      int x, int y, const TCHAR *NoteString, double Num, int Length,   int Color, int EdgeColor = 0 ) ;                                                               // デフォルトフォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
  2820.  
  2821. extern  int         DrawStringToZBuffer(                    int x, int y, const TCHAR *String,                                                 int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する
  2822. extern  int         DrawVStringToZBuffer(                   int x, int y, const TCHAR *String,                                                 int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // デフォルトフォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き )
  2823. extern  int         DrawFormatStringToZBuffer(              int x, int y,                                                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する
  2824. extern  int         DrawFormatVStringToZBuffer(             int x, int y,                                                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を描画する( 縦書き )
  2825. extern  int         DrawExtendStringToZBuffer(              int x, int y, double ExRateX, double ExRateY, const TCHAR *String,                 int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する
  2826. extern  int         DrawExtendVStringToZBuffer(             int x, int y, double ExRateX, double ExRateY, const TCHAR *String,                 int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // デフォルトフォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き )
  2827. extern  int         DrawExtendFormatStringToZBuffer(        int x, int y, double ExRateX, double ExRateY,                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する
  2828. extern  int         DrawExtendFormatVStringToZBuffer(       int x, int y, double ExRateX, double ExRateY,                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // デフォルトフォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する( 縦書き )
  2829.  
  2830.  
  2831. extern  int         DrawStringToHandle(                     int x, int y, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 , int VerticalFlag = FALSE ) ;                                                  // フォントハンドルを使用して文字列を描画する
  2832. extern  int         DrawVStringToHandle(                    int x, int y, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 ) ;                                                                             // フォントハンドルを使用して文字列を描画する( 縦書き )
  2833. extern  int         DrawFormatStringToHandle(               int x, int y, int Color, int FontHandle, const TCHAR *FormatString, ... ) ;                                                                                     // フォントハンドルを使用して書式指定文字列を描画する
  2834. extern  int         DrawFormatVStringToHandle(              int x, int y, int Color, int FontHandle, const TCHAR *FormatString, ... ) ;                                                                                     // フォントハンドルを使用して書式指定文字列を描画する( 縦書き )
  2835. extern  int         DrawExtendStringToHandle(               int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 , int VerticalFlag = FALSE ) ;                  // フォントハンドルを使用して文字列を拡大描画する
  2836. extern  int         DrawExtendVStringToHandle(              int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 ) ;                                             // フォントハンドルを使用して文字列を拡大描画する( 縦書き )
  2837. extern  int         DrawExtendFormatStringToHandle(         int x, int y, double ExRateX, double ExRateY, int Color, int FontHandle, const TCHAR *FormatString, ... ) ;                                                     // フォントハンドルを使用して書式指定文字列を拡大描画する
  2838. extern  int         DrawExtendFormatVStringToHandle(        int x, int y, double ExRateX, double ExRateY, int Color, int FontHandle, const TCHAR *FormatString, ... ) ;                                                     // フォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )
  2839.  
  2840. extern  int         DrawNumberToIToHandle(                  int x, int y,                          int    Num, int RisesNum, int Color, int FontHandle, int EdgeColor = 0 ) ;                                               // フォントハンドルを使用して整数型の数値を描画する
  2841. extern  int         DrawNumberToFToHandle(                  int x, int y,                          double Num, int Length,   int Color, int FontHandle, int EdgeColor = 0 ) ;                                               // フォントハンドルを使用して浮動小数点型の数値を描画する
  2842. extern  int         DrawNumberPlusToIToHandle(              int x, int y, const TCHAR *NoteString, int    Num, int RisesNum, int Color, int FontHandle, int EdgeColor = 0 ) ;                                               // フォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
  2843. extern  int         DrawNumberPlusToFToHandle(              int x, int y, const TCHAR *NoteString, double Num, int Length,   int Color, int FontHandle, int EdgeColor = 0 ) ;                                               // フォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
  2844.  
  2845. extern  int         DrawStringToHandleToZBuffer(            int x, int y, const TCHAR *String, int FontHandle,                                 int WriteZMode /* DX_ZWRITE_MASK 等 */ , int VerticalFlag = FALSE ) ;       // フォントハンドルを使用してZバッファに対して文字列を描画する
  2846. extern  int         DrawVStringToHandleToZBuffer(           int x, int y, const TCHAR *String, int FontHandle,                                 int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // フォントハンドルを使用してZバッファに対して文字列を描画する( 縦書き )
  2847. extern  int         DrawFormatStringToHandleToZBuffer(      int x, int y, int FontHandle,                                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // フォントハンドルを使用してZバッファに対して書式指定文字列を描画する
  2848. extern  int         DrawFormatVStringToHandleToZBuffer(     int x, int y, int FontHandle,                                                      int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // フォントハンドルを使用してZバッファに対して書式指定文字列を描画する( 縦書き )
  2849. extern  int         DrawExtendStringToHandleToZBuffer(      int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int VerticalFlag = FALSE ) ;       // フォントハンドルを使用してZバッファに対して文字列を拡大描画する
  2850. extern  int         DrawExtendVStringToHandleToZBuffer(     int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ;                                  // フォントハンドルを使用してZバッファに対して文字列を拡大描画する( 縦書き )
  2851. extern  int         DrawExtendFormatStringToHandleToZBuffer(  int x, int y, double ExRateX, double ExRateY, int FontHandle,                    int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する
  2852. extern  int         DrawExtendFormatVStringToHandleToZBuffer( int x, int y, double ExRateX, double ExRateY, int FontHandle,                    int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ;  // フォントハンドルを使用してZバッファに対して書式指定文字列を拡大描画する( 縦書き )
  2853.  
  2854. #endif // DX_NON_FONT
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863. // DxMath.cpp 関数プロトタイプ宣言
  2864.  
  2865. // 演算ライブラリ
  2866. extern  int         CreateIdentityMatrix(         MATRIX *Out ) ;                                                           // 単位行列を作成する
  2867. extern  int         CreateLookAtMatrix(           MATRIX *Out, VECTOR *Eye, VECTOR *At, VECTOR *Up ) ;                      // ビュー行列を作成する
  2868. extern  int         CreateLookAtMatrix2(          MATRIX *Out, VECTOR *Eye, double XZAngle, double Oira ) ;                 // ビュー行列を作成する(方向を回転値で指定)
  2869. extern  int         CreateLookAtMatrixRH(         MATRIX *Out, VECTOR *Eye, VECTOR *At, VECTOR *Up ) ;                      // ビュー行列を作成する(右手座標系用)
  2870. extern  int         CreateMultiplyMatrix(         MATRIX *Out, MATRIX *In1, MATRIX *In2 ) ;                                 // 行列の積を求める
  2871. extern  int         CreatePerspectiveFovMatrix(   MATRIX *Out, float fov, float zn, float zf, float aspect = -1.0f ) ;      // 射影行列を作成する
  2872. extern  int         CreatePerspectiveFovMatrixRH( MATRIX *Out, float fov, float zn, float zf, float aspect = -1.0f ) ;      // 射影行列を作成する(右手座標系用)
  2873. extern  int         CreateOrthoMatrix(            MATRIX *Out, float size, float zn, float zf, float aspect = -1.0f ) ;     // 正射影行列を作成する
  2874. extern  int         CreateOrthoMatrixRH(          MATRIX *Out, float size, float zn, float zf, float aspect = -1.0f ) ;     // 正射影行列を作成する(右手座標系用)
  2875. extern  int         CreateScalingMatrix(          MATRIX *Out, float sx, float sy, float sz ) ;                             // スケーリング行列を作成する
  2876. extern  int         CreateRotationXMatrix(        MATRIX *Out, float Angle ) ;                                              // X軸を中心とした回転行列を作成する
  2877. extern  int         CreateRotationYMatrix(        MATRIX *Out, float Angle ) ;                                              // Y軸を中心とした回転行列を作成する
  2878. extern  int         CreateRotationZMatrix(        MATRIX *Out, float Angle ) ;                                              // Z軸を中心とした回転行列を作成する
  2879. extern  int         CreateTranslationMatrix(      MATRIX *Out, float x, float y, float z ) ;                                // 平行移動行列を作成する
  2880. extern  int         CreateTransposeMatrix(        MATRIX *Out, MATRIX *In ) ;                                               // 転置行列を作成する
  2881. extern  int         CreateInverseMatrix(          MATRIX *Out, MATRIX *In ) ;                                               // 逆行列を作成する
  2882. extern  int         CreateViewportMatrix(         MATRIX *Out, float CenterX, float CenterY, float Width, float Height ) ;  // ビューポート行列を作成する
  2883. extern  int         CreateRotationXYZMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // X軸回転→Y軸回転→Z軸回転を合成した行列を作成する
  2884. extern  int         CreateRotationXZYMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // X軸回転→Z軸回転→Y軸回転を合成した行列を作成する
  2885. extern  int         CreateRotationYXZMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // Y軸回転→X軸回転→Z軸回転を合成した行列を作成する
  2886. extern  int         CreateRotationYZXMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // Y軸回転→Z軸回転→X軸回転を合成した行列を作成する
  2887. extern  int         CreateRotationZXYMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // Z軸回転→X軸回転→Y軸回転を合成した行列を作成する
  2888. extern  int         CreateRotationZYXMatrix(      MATRIX *Out, float XRot, float YRot, float ZRot ) ;                       // Z軸回転→Y軸回転→X軸回転を合成した行列を作成する
  2889. extern  int         GetMatrixXYZRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からXYZ軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2890. extern  int         GetMatrixXZYRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からXZY軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2891. extern  int         GetMatrixYXZRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からYXZ軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2892. extern  int         GetMatrixYZXRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からYZX軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2893. extern  int         GetMatrixZXYRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からZXY軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2894. extern  int         GetMatrixZYXRotation(         MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ;            // 行列からZYX軸回転の値を取得する( 戻り値 -1:ジンバルロック発生  0:成功 )
  2895. extern  int         VectorNormalize(              VECTOR *Out, VECTOR *In ) ;                                               // ベクトルを正規化する
  2896. extern  int         VectorScale(                  VECTOR *Out, VECTOR *In, float Scale ) ;                                  // ベクトルをスカラー倍する
  2897. extern  int         VectorMultiply(               VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ;                                 // ベクトルの掛け算をする
  2898. extern  int         VectorSub(                    VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ;                                 // Out = In1 - In2 のベクトル計算をする
  2899. extern  int         VectorAdd(                    VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ;                                 // Out = In1 + In2 のベクトル計算をする
  2900. extern  int         VectorOuterProduct(           VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ;                                 // In1とIn2の外積を計算する
  2901. extern  float       VectorInnerProduct(           VECTOR *In1, VECTOR *In2 ) ;                                              // In1とIn2の内積を計算する
  2902. extern  int         VectorRotationX(              VECTOR *Out, VECTOR *In, double Angle ) ;                                 // ベクトルのX軸を軸にした回転を行う
  2903. extern  int         VectorRotationY(              VECTOR *Out, VECTOR *In, double Angle ) ;                                 // ベクトルのY軸を軸にした回転を行う
  2904. extern  int         VectorRotationZ(              VECTOR *Out, VECTOR *In, double Angle ) ;                                 // ベクトルのZ軸を軸にした回転を行う
  2905. extern  int         VectorTransform(              VECTOR *Out, VECTOR *InVec, MATRIX *InMatrix ) ;                          // ベクトル行列と4x4正方行列を乗算する( w は 1 と仮定 )
  2906. extern  int         VectorTransform4(             VECTOR *Out, float *V4Out, VECTOR *InVec, float *V4In, MATRIX *InMatrix ) ; // ベクトル行列と4x4正方行列を乗算する( w の要素を渡す )
  2907.  
  2908. extern  void        TriangleBarycenter(           VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR Position, float *u, float *v, float *w ) ;  // 指定の座標から三角形の重心を求める
  2909.  
  2910. extern  float       Segment_Segment_MinLength(         VECTOR SegmentAPos1, VECTOR SegmentAPos2, VECTOR SegmentBPos1, VECTOR SegmentBPos2 ) ;                       // 二つの線分の最近点間の距離を得る
  2911. extern  float       Segment_Segment_MinLength_Square(  VECTOR SegmentAPos1, VECTOR SegmentAPos2, VECTOR SegmentBPos1, VECTOR SegmentBPos2 ) ;                       // 二つの線分の最近点間の距離の二乗を得る
  2912. extern  float       Segment_Triangle_MinLength(        VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ;    // 線分と三角形の最近点間の距離を得る
  2913. extern  float       Segment_Triangle_MinLength_Square( VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ;    // 線分と三角形の最近点間の距離の二乗を得る
  2914. extern  float       Segment_Point_MinLength(           VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR PointPos ) ;                                                  // 線分と点の一番近い距離を得る
  2915. extern  float       Segment_Point_MinLength_Square(    VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR PointPos ) ;                                                  // 線分と点の一番近い距離の二乗を得る
  2916. extern  float       Triangle_Point_MinLength(          VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR PointPos ) ;                           // 三角形と点の一番近い距離を得る
  2917. extern  float       Triangle_Point_MinLength_Square(   VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR PointPos ) ;                           // 三角形と点の一番近い距離の二乗を得る
  2918. extern  VECTOR      Plane_Point_MinLength_Position(    VECTOR PlanePos, VECTOR PlaneNormal, VECTOR PointPos ) ;                                                     // 点に一番近い平面上の座標を得る
  2919. extern  float       Plane_Point_MinLength(             VECTOR PlanePos, VECTOR PlaneNormal, VECTOR PointPos ) ;                                                     // 平面と点の一番近い距離を得る
  2920.  
  2921. extern  HITRESULT_LINE HitCheck_Line_Triangle(         VECTOR LinePos1, VECTOR LinePos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ;                                      // 三角形と線の当たり判定
  2922. extern  int         HitCheck_Triangle_Triangle(        VECTOR Triangle1Pos1, VECTOR Triangle1Pos2, VECTOR Triangle1Pos3, VECTOR Triangle2Pos1, VECTOR Triangle2Pos2, VECTOR Triangle2Pos3 ) ;   // 三角形と三角形の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2923. extern  int         HitCheck_Line_Sphere(              VECTOR LinePos1, VECTOR LinePos2, VECTOR SphereCenterPos, float SphereR ) ;                                                              // 線と球の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2924. extern  int         HitCheck_Sphere_Sphere(            VECTOR Sphere1CenterPos, float Sphere1R, VECTOR Sphere2CenterPos, float Sphere2R ) ;                                                     // 球と球の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2925. extern  int         HitCheck_Sphere_Triangle(          VECTOR SphereCenterPos, float SphereR, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ;                                 // 球と三角形の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2926. extern  int         HitCheck_Capsule_Capsule(          VECTOR Cap1Pos1, VECTOR Cap1Pos2, float Cap1R, VECTOR Cap2Pos1, VECTOR Cap2Pos2, float Cap2R ) ;                                         // カプセル同士の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2927. extern  int         HitCheck_Capsule_Triangle(         VECTOR CapPos1, VECTOR CapPos2, float CapR, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ;                            // カプセルと三角形の当たり判定( TRUE:当たっている  FALSE:当たっていない )
  2928.  
  2929. // その他
  2930. extern  int         RectClipping( RECT *MotoRect, RECT *ClippuRect ) ;                          // 矩形のクリッピング
  2931. extern  int         RectAdjust(   RECT *Rect ) ;                                                // 矩形の left が right より値が大きい場合などの誤りを補正する
  2932. extern  int         GetRectSize(  RECT *Rect, int *Width, int *Height ) ;                       // 矩形の幅と高さを求める
  2933.  
  2934. // 表記簡略版
  2935. extern  MATRIX      MGetIdent(     void ) ;                                                     // 単位行列を取得する
  2936. extern  MATRIX      MMult(         MATRIX In1, MATRIX In2 ) ;                                   // 行列の乗算を行う
  2937. extern  MATRIX      MScale(        MATRIX InM, float Scale ) ;                                  // 行列のスケーリングを行う
  2938. extern  MATRIX      MAdd(          MATRIX In1, MATRIX In2 ) ;                                   // 行列の足し算を行う
  2939. extern  MATRIX      MGetScale(     VECTOR Scale ) ;                                             // 拡大行列を取得する
  2940. extern  MATRIX      MGetRotX(      float XAxisRotate ) ;                                        // X軸回転行列を取得する
  2941. extern  MATRIX      MGetRotY(      float YAxisRotate ) ;                                        // Y軸回転行列を取得する
  2942. extern  MATRIX      MGetRotZ(      float ZAxisRotate ) ;                                        // Z軸回転行列を取得する
  2943. extern  MATRIX      MGetRotAxis(   VECTOR RotateAxis, float Rotate ) ;                          // 指定軸で指定角度回転する行列を取得する
  2944. extern  MATRIX      MGetRotVec2(   VECTOR In1, VECTOR In2 ) ;                                   // In1 の向きから In2 の向きへ変換する回転行列を取得する( In2 と In1 が真逆のベクトルの場合は回転軸は不定 )
  2945. extern  MATRIX      MGetTranslate( VECTOR Trans ) ;                                             // 平行移動行列を取得する
  2946. extern  MATRIX      MGetAxis1(     VECTOR XAxis, VECTOR YAxis, VECTOR ZAxis, VECTOR Pos ) ;     // 指定の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 )
  2947. extern  MATRIX      MGetAxis2(     VECTOR XAxis, VECTOR YAxis, VECTOR ZAxis, VECTOR Pos ) ;     // 基本軸上のベクトルを指定の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 ) )
  2948. extern  MATRIX      MTranspose(    MATRIX InM ) ;                                               // 転置行列を取得する
  2949. extern  MATRIX      MInverse(      MATRIX InM ) ;                                               // 逆行列を取得する
  2950. extern  VECTOR      MGetSize(      MATRIX InM ) ;                                               // 拡大行列のX軸、Y軸、Z軸の拡大率を取得する
  2951.  
  2952. // ベクトル値の生成
  2953. __inline VECTOR VGet( float x, float y, float z )
  2954. {
  2955.     VECTOR Result;
  2956.     Result.x = x ;
  2957.     Result.y = y ;
  2958.     Result.z = z ;
  2959.     return Result ;
  2960. }
  2961.  
  2962. // 4要素ベクトル値の生成
  2963. __inline FLOAT4 F4Get( float x, float y, float z, float w )
  2964. {
  2965.     FLOAT4 Result;
  2966.     Result.x = x ;
  2967.     Result.y = y ;
  2968.     Result.z = z ;
  2969.     Result.w = w ;
  2970.     return Result ;
  2971. }
  2972.  
  2973. // ベクトルの加算
  2974. __inline VECTOR     VAdd( const VECTOR &In1, const VECTOR &In2 )
  2975. {
  2976.     VECTOR Result ;
  2977.     Result.x = In1.x + In2.x ;
  2978.     Result.y = In1.y + In2.y ;
  2979.     Result.z = In1.z + In2.z ;
  2980.     return Result ;
  2981. }
  2982.  
  2983. // ベクトルの減算
  2984. __inline VECTOR     VSub( const VECTOR &In1, const VECTOR &In2 )
  2985. {
  2986.     VECTOR Result ;
  2987.     Result.x = In1.x - In2.x ;
  2988.     Result.y = In1.y - In2.y ;
  2989.     Result.z = In1.z - In2.z ;
  2990.     return Result ;
  2991. }
  2992.  
  2993. // 4要素ベクトルの加算
  2994. __inline FLOAT4     F4Add( const FLOAT4 &In1, const FLOAT4 &In2 )
  2995. {
  2996.     FLOAT4 Result ;
  2997.     Result.x = In1.x + In2.x ;
  2998.     Result.y = In1.y + In2.y ;
  2999.     Result.z = In1.z + In2.z ;
  3000.     Result.w = In1.w + In2.w ;
  3001.     return Result ;
  3002. }
  3003.  
  3004. // 4要素ベクトルの減算
  3005. __inline FLOAT4     F4Sub( const FLOAT4 &In1, const FLOAT4 &In2 )
  3006. {
  3007.     FLOAT4 Result ;
  3008.     Result.x = In1.x - In2.x ;
  3009.     Result.y = In1.y - In2.y ;
  3010.     Result.z = In1.z - In2.z ;
  3011.     Result.w = In1.w - In2.w ;
  3012.     return Result ;
  3013. }
  3014.  
  3015. // ベクトルの内積
  3016. __inline float      VDot( const VECTOR &In1, const VECTOR &In2 )
  3017. {
  3018.     return In1.x * In2.x + In1.y * In2.y + In1.z * In2.z ;
  3019. }
  3020.  
  3021. // ベクトルの外積
  3022. __inline VECTOR     VCross( const VECTOR &In1, const VECTOR &In2 )
  3023. {
  3024.     VECTOR Result ;
  3025.     Result.x = In1.y * In2.z - In1.z * In2.y ;
  3026.     Result.y = In1.z * In2.x - In1.x * In2.z ;
  3027.     Result.z = In1.x * In2.y - In1.y * In2.x ;
  3028.     return Result ;
  3029. }
  3030.  
  3031. // ベクトルのスケーリング
  3032. __inline VECTOR     VScale( const VECTOR &In, float Scale )
  3033. {
  3034.     VECTOR Result ;
  3035.     Result.x = In.x * Scale ;
  3036.     Result.y = In.y * Scale ;
  3037.     Result.z = In.z * Scale ;
  3038.     return Result ;
  3039. }
  3040.  
  3041. // 4要素ベクトルのスケーリング
  3042. __inline FLOAT4     F4Scale( const FLOAT4 &In, float Scale )
  3043. {
  3044.     FLOAT4 Result ;
  3045.     Result.x = In.x * Scale ;
  3046.     Result.y = In.y * Scale ;
  3047.     Result.z = In.z * Scale ;
  3048.     Result.w = In.w * Scale ;
  3049.     return Result ;
  3050. }
  3051.  
  3052. // ベクトルの正規化
  3053. extern VECTOR       VNorm( VECTOR In ) ;
  3054.  
  3055. // ベクトルのサイズ
  3056. extern float        VSize( VECTOR In ) ;
  3057.  
  3058. // ベクトルのサイズの2乗
  3059. __inline float      VSquareSize( const VECTOR &In )
  3060. {
  3061.     return In.x * In.x + In.y * In.y + In.z * In.z ;
  3062. }
  3063.  
  3064. // 行列を使った座標変換
  3065. __inline VECTOR     VTransform( const VECTOR &InV, const MATRIX &InM )
  3066. {
  3067.     VECTOR Result ;
  3068.     Result.x = InV.x * InM.m[0][0] + InV.y * InM.m[1][0] + InV.z * InM.m[2][0] + InM.m[3][0] ;
  3069.     Result.y = InV.x * InM.m[0][1] + InV.y * InM.m[1][1] + InV.z * InM.m[2][1] + InM.m[3][1] ;
  3070.     Result.z = InV.x * InM.m[0][2] + InV.y * InM.m[1][2] + InV.z * InM.m[2][2] + InM.m[3][2] ;
  3071.     return Result ;
  3072. }
  3073.  
  3074. // 行列を使った座標変換( スケーリング+回転成分のみ )
  3075. __inline VECTOR     VTransformSR( const VECTOR &InV, const MATRIX &InM )
  3076. {
  3077.     VECTOR Result ;
  3078.     Result.x = InV.x * InM.m[0][0] + InV.y * InM.m[1][0] + InV.z * InM.m[2][0] ;
  3079.     Result.y = InV.x * InM.m[0][1] + InV.y * InM.m[1][1] + InV.z * InM.m[2][1] ;
  3080.     Result.z = InV.x * InM.m[0][2] + InV.y * InM.m[1][2] + InV.z * InM.m[2][2] ;
  3081.     return Result ;
  3082. }
  3083.  
  3084. // 二つのベクトルが成す角のコサイン値を得る
  3085. extern  float       VCos( VECTOR In1, VECTOR In2 ) ;
  3086.  
  3087. // 二つのベクトルが成す角の角度を得る( 単位:ラジアン )
  3088. extern  float       VRad( VECTOR In1, VECTOR In2 ) ;
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097. // DxBaseImage.cpp 関数プロトタイプ宣言
  3098.  
  3099. // 基本イメージデータのロード+DIB関係
  3100. extern  int         CreateGraphImageOrDIBGraph(    const TCHAR *FileName, void *DataImage, int DataImageSize, int DataImageType /* LOADIMAGE_TYPE_FILE 等 */ , int BmpFlag, int ReverseFlag, BASEIMAGE *Image, BITMAPINFO **BmpInfo, void **GraphData ) ;              // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはBMPデータを構築する
  3101. extern  int         CreateGraphImageType2(         STREAMDATA *Src, BASEIMAGE *Dest ) ;                                                                                                                                                                                 // 画像データから構築したストリーム読み込み用データを使用して基本イメージデータを構築する
  3102. extern  int         CreateBmpInfo(                 BITMAPINFO *BmpInfo, int Width, int Height, int Pitch, void *SrcGrData, void **DestGrData ) ;                                                                                                                        // 24bitカラー形式のビットマップデータからBMPデータを構築する
  3103. extern  DWORD       GetGraphImageFullColorCode(    BASEIMAGE *GraphImage, int x, int y ) ;                                                                                                                                                                              // 基本イメージデータの指定座標のフルカラーコードを取得する
  3104. extern  int         CreateGraphImage_plus_Alpha(   const TCHAR *FileName, void *RgbImage, int RgbImageSize, int RgbImageType, void *AlphaImage, int AlphaImageSize, int AlphaImageType, BASEIMAGE *RgbGraphImage, BASEIMAGE *AlphaGraphImage, int ReverseFlag ) ;       // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する
  3105. extern  int         ReverseGraphImage(             BASEIMAGE *GraphImage ) ;                                                                                                                                                                                            // 基本イメージデータを左右反転する
  3106. #ifdef __WINDOWS__
  3107. extern  HBITMAP     CreateDIBGraph(                const TCHAR *FileName,                                                                                                                            int ReverseFlag,          COLORDATA *SrcColor) ;                   // 画像ファイルからDIBデータを作成する
  3108. extern  HBITMAP     CreateDIBGraphToMem(           BITMAPINFO *BmpInfo, void *GraphData,                                                                                                             int ReverseFlag,          COLORDATA *SrcColor ) ;                  // BMPデータからDIBデータクを作成する
  3109. extern  int         CreateDIBGraph_plus_Alpha(     const TCHAR *FileName, HBITMAP *RGBBmp, HBITMAP *AlphaBmp,                                                                                        int ReverseFlag = FALSE , COLORDATA *SrcColor = NULL ) ;           // 画像ファイルからDIBデータとマスク用DIBデータを作成する
  3110. extern  HBITMAP     CreateDIBGraphVer2(            const TCHAR *FileName, void *MemImage, int MemImageSize,                                       int ImageType,                                     int ReverseFlag,          COLORDATA *SrcColor ) ;                  // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータを作成する
  3111. extern  int         CreateDIBGraphVer2_plus_Alpha( const TCHAR *FileName, void *MemImage, int MemImageSize, void *AlphaImage, int AlphaImageSize, int ImageType, HBITMAP *RGBBmp, HBITMAP *AlphaBmp, int ReverseFlag,          COLORDATA *SrcColor ) ;                  // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータとマスク用DIBデータを作成する
  3112. extern  int         ConvBitmapToGraphImage(        BITMAPINFO *BmpInfo, void *GraphData, BASEIMAGE *GraphImage, int CopyFlag ) ;                                                                                                                                        // BMPデータから基本イメージデータを構築する( Ret 0:正常終了  1:コピーを行った  -1:エラー )
  3113. extern  int         ConvGraphImageToBitmap(        BASEIMAGE *GraphImage, BITMAPINFO *BmpInfo, void **GraphData, int CopyFlag, int FullColorConv = TRUE ) ;                                                                                                             // 基本イメージデータをBMPデータに変換するGraphImage を BMP に変換する(アルファデータはあっても無視される)( 戻り値 0:正常終了  1:コピーを行った  -1:エラー )
  3114. #endif // __WINDOWS__
  3115.  
  3116. //extern int        AddUserGraphLoadFunction( int ( *UserLoadFunc )( FILE *fp, BITMAPINFO **BmpInfo, void **GraphData ) ) ;                                                                                 // ユーザー定義の画像データ読み込み関数を登録する
  3117. //extern int        AddUserGraphLoadFunction2( int ( *UserLoadFunc )( void *Image, int ImageSize, int ImageType, BITMAPINFO **BmpInfo, void **GraphData ) ) ;                                               // ユーザー定義の画像データ読み込み関数を登録する
  3118. //extern int        AddUserGraphLoadFunction3( int ( *UserLoadFunc )( void *DataImage, int DataImageSize, int DataImageType, int BmpFlag, BASEIMAGE *Image, BITMAPINFO **BmpInfo, void **GraphData ) ) ;    // ユーザー定義の画像データ読み込み関数Ver3を登録する
  3119. extern  int         AddUserGraphLoadFunction4( int (* UserLoadFunc )( STREAMDATA *Src, BASEIMAGE *Image ) ) ;                                                                                               // ユーザー定義の画像データ読み込み関数Ver4を登録する
  3120. //extern int        SubUserGraphLoadFunction( int ( *UserLoadFunc )( FILE *fp, BITMAPINFO **BmpInfo, void **GraphData ) ) ;                                                                                 // ユーザー定義の画像データ読み込み関数を登録から抹消する
  3121. //extern int        SubUserGraphLoadFunction2( int ( *UserLoadFunc )( void *Image, int ImageSize, int ImageType, BITMAPINFO **BmpInfo, void **GraphData ) ) ;                                               // ユーザー定義の画像データ読み込み関数を登録から抹消する
  3122. //extern int        SubUserGraphLoadFunction3( int ( *UserLoadFunc )( void *DataImage, int DataImageSize, int DataImageType, int BmpFlag, BASEIMAGE *Image, BITMAPINFO **BmpInfo, void **GraphData ) ) ;    // ユーザー定義の画像データ読み込み関数Ver3を登録から抹消する
  3123. extern  int         SubUserGraphLoadFunction4( int (* UserLoadFunc )( STREAMDATA *Src, BASEIMAGE *Image ) ) ;                                                                                               // ユーザー定義の画像データ読み込み関数Ver4を登録から抹消する
  3124.  
  3125. extern  int         SetUseFastLoadFlag(            int Flag ) ;                                                     // 高速読み込みルーチンを使用するかどうかを設定する( TRUE:使用する( デフォルト )  FALSE:使用しない )
  3126. extern  int         SetGraphDataShavedMode(        int ShavedMode /* DX_SHAVEDMODE_NONE 等 */ ) ;                  // 画像減色時の画像劣化緩和処理モードを設定する( デフォルトでは緩和処理無しの DX_SHAVEDMODE_NONE )
  3127. extern  int         GetGraphDataShavedMode(        void ) ;                                                         // 画像減色時の画像劣化緩和処理モードを取得する
  3128.  
  3129. // 基本イメージデータ構造体関係
  3130. extern  int         CreateBaseImage(               const TCHAR *FileName, void *FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/ , BASEIMAGE *BaseImage,  int ReverseFlag ) ;            // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
  3131. extern  int         CreateGraphImage(              const TCHAR *FileName, void *DataImage, int DataImageSize, int DataImageType,                      BASEIMAGE *GraphImage, int ReverseFlag ) ;            // CreateBaseImage の旧名称
  3132. extern  int         CreateBaseImageToFile(         const TCHAR *FileName,                                                                             BASEIMAGE *BaseImage,  int ReverseFlag = FALSE ) ;    // 画像ファイルから基本イメージデータを構築する
  3133. extern  int         CreateBaseImageToMem(                                 void *FileImage, int FileImageSize,                                         BASEIMAGE *BaseImage,  int ReverseFlag = FALSE ) ;    // メモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
  3134. extern  int         CreateARGB8ColorBaseImage(     int SizeX, int SizeY,                       BASEIMAGE *BaseImage ) ;                                                                                     // ARGB8カラーの基本イメージデータを作成する
  3135. extern  int         CreateXRGB8ColorBaseImage(     int SizeX, int SizeY,                       BASEIMAGE *BaseImage ) ;                                                                                     // XRGB8カラーの基本イメージデータを作成する
  3136. extern  int         CreateRGB8ColorBaseImage(      int SizeX, int SizeY,                       BASEIMAGE *BaseImage ) ;                                                                                     // RGB8カラーの基本イメージデータを作成する
  3137. extern  int         CreateARGB4ColorBaseImage(     int SizeX, int SizeY,                       BASEIMAGE *BaseImage ) ;                                                                                     // ARGB4カラーの基本イメージデータを作成する
  3138. extern  int         CreatePAL8ColorBaseImage(      int SizeX, int SizeY,                       BASEIMAGE *BaseImage ) ;                                                                                     // パレット8ビットカラーの基本イメージデータを作成する
  3139. extern  int         CreateColorDataBaseImage(      int SizeX, int SizeY, COLORDATA *ColorData, BASEIMAGE *BaseImage ) ;                                                                                     // 指定のカラーフォーマットの基本イメージデータを作成する
  3140. extern  int         GetBaseImageGraphDataSize(     BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータのイメージサイズを取得する( 単位:byte )
  3141.  
  3142. extern  int         ReleaseBaseImage(              BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータの後始末を行う
  3143. extern  int         ReleaseGraphImage(             BASEIMAGE *GraphImage ) ;                                                                                                                                // ReleaseBaseImage の旧名称
  3144.  
  3145. extern  int         ConvertNormalFormatBaseImage(  BASEIMAGE *BaseImage ) ;                                                                                                                                 // DX_BASEIMAGE_FORMAT_NORMAL 以外の形式のイメージを DX_BASEIMAGE_FORMAT_NORMAL 形式のイメージに変換する
  3146.  
  3147. extern  int         GetDrawScreenBaseImage(        int x1, int y1, int x2, int y2, BASEIMAGE *BaseImage ) ;                                                                                                 // 描画対象の画面から指定領域を基本イメージデータに転送する
  3148. #ifdef __WINDOWS__
  3149. extern  int         UpdateLayerdWindowForBaseImage(                   BASEIMAGE *BaseImage ) ;                                                                                                              // 基本イメージデータを使用して UpdateLayerdWindow を行う
  3150. extern  int         UpdateLayerdWindowForPremultipliedAlphaBaseImage( BASEIMAGE *BaseImage ) ;                                                                                                              // 乗算済みアルファの基本イメージデータを使用して UpdateLayerdWindow を行う
  3151. #endif // __WINDOWS__
  3152. extern  int         FillBaseImage(                 BASEIMAGE *BaseImage, int r, int g, int b, int a ) ;                                                                                                     // 基本イメージデータを指定の色で塗りつぶす
  3153. extern  int         ClearRectBaseImage(            BASEIMAGE *BaseImage, int x, int y, int w, int h ) ;                                                                                                     // 基本イメージデータの指定の領域を0クリアする
  3154. extern  int         GetPaletteBaseImage(           BASEIMAGE *BaseImage, int PaletteNo, int *r, int *g, int *b, int *a ) ;                                                                                  // 基本イメージデータのパレットを取得する
  3155. extern  int         SetPaletteBaseImage(           BASEIMAGE *BaseImage, int PaletteNo, int  r, int  g, int  b, int  a ) ;                                                                                  // 基本イメージデータのパレットをセットする
  3156. extern  int         SetPixelPalCodeBaseImage(      BASEIMAGE *BaseImage, int x, int y, int palNo ) ;                                                                                                        // 基本イメージデータの指定の座標の色コードを変更する(パレット画像用)
  3157. extern  int         GetPixelPalCodeBaseImage(      BASEIMAGE *BaseImage, int x, int y ) ;                                                                                                                   // 基本イメージデータの指定の座標の色コードを取得する(パレット画像用)
  3158. extern  int         SetPixelBaseImage(             BASEIMAGE *BaseImage, int x, int y, int  r, int  g, int  b, int  a ) ;                                                                                   // 基本イメージデータの指定の座標の色を変更する(各色要素は0~255)
  3159. extern  int         GetPixelBaseImage(             BASEIMAGE *BaseImage, int x, int y, int *r, int *g, int *b, int *a ) ;                                                                                   // 基本イメージデータの指定の座標の色を取得する(各色要素は0~255)
  3160. extern  int         DrawLineBaseImage(             BASEIMAGE *BaseImage, int x1, int y1, int x2, int y2, int r, int g, int b, int a ) ;                                                                     // 基本イメージデータの指定の座標に線を描画する(各色要素は0~255)
  3161. extern  int         BltBaseImage(                  int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, BASEIMAGE *SrcBaseImage, BASEIMAGE *DestBaseImage ) ;                              // 基本イメージデータを別の基本イメージデータに転送する
  3162. extern  int         BltBaseImage(                                                                  int DestX, int DestY, BASEIMAGE *SrcBaseImage, BASEIMAGE *DestBaseImage ) ;                              // 基本イメージデータを別の基本イメージデータに転送する
  3163. 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 ) ;  // 基本イメージデータを別の基本イメージデータに透過色処理付きで転送する
  3164. extern  int         BltBaseImageWithAlphaBlend(    int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, BASEIMAGE *SrcBaseImage, BASEIMAGE *DestBaseImage, int Opacity = 255 ) ;           // 基本イメージデータを別の基本イメージデータにアルファ値のブレンドを考慮した上で転送する( Opacity は透明度 : 0( 完全透明 ) ~ 255( 完全不透明 ) )( 出力先が ARGB8 形式以外の場合はエラーになります )
  3165. extern  int         ReverseBaseImageH(             BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータを左右反転する
  3166. extern  int         ReverseBaseImageV(             BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータを上下反転する
  3167. extern  int         ReverseBaseImage(              BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータを上下左右反転する
  3168. extern  int         CheckPixelAlphaBaseImage(      BASEIMAGE *BaseImage ) ;                                                                                                                                 // 基本イメージデータに含まれるピクセルのアルファ値をチェックする( 戻り値   -1:エラー  0:画像にアルファ成分が無い  1:画像にアルファ成分があり、すべて最大(255)値  2:画像にアルファ成分があり、存在するアルファ値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にアルファ成分があり、最小と最大以外の中間の値がある )  
  3169.  
  3170. #ifndef DX_NON_SAVEFUNCTION
  3171.  
  3172. extern  int         SaveBaseImageToBmp(            const TCHAR *FilePath, BASEIMAGE *BaseImage ) ;                                                                                                          // 基本イメージデータをBMP画像として保存する
  3173. #ifndef DX_NON_PNGREAD
  3174. extern  int         SaveBaseImageToPng(            const TCHAR *FilePath, BASEIMAGE *BaseImage, int CompressionLevel ) ;                                                                                    // 基本イメージデータをPNG画像として保存する
  3175. #endif // DX_NON_PNGREAD
  3176. #ifndef DX_NON_JPEGREAD
  3177. extern  int         SaveBaseImageToJpeg(           const TCHAR *FilePath, BASEIMAGE *BaseImage, int Quality, int Sample2x1 ) ;                                                                              // 基本イメージデータをJPEG画像として保存する
  3178. #endif // DX_NON_JPEGREAD
  3179.  
  3180. #endif // DX_NON_SAVEFUNCTION
  3181.  
  3182. // 基本イメージ描画
  3183. extern  int         DrawBaseImage(                  int x, int y, BASEIMAGE *BaseImage ) ;                                                                                                                  // 基本イメージデータを描画する
  3184.  
  3185. // カラーマッチングしながらイメージデータ間転送を行う Ver2
  3186. extern int          GraphColorMatchBltVer2( void *DestGraphData, int DestPitch,  COLORDATA *DestColorData,
  3187.                                             void *SrcGraphData,  int SrcPitch,   COLORDATA *SrcColorData,
  3188.                                             void *AlphaMask,     int AlphaPitch, COLORDATA *AlphaColorData,
  3189.                                             POINT DestPoint, RECT *SrcRect, int ReverseFlag,
  3190.                                             int TransColorAlphaTestFlag, unsigned int TransColor,
  3191.                                             int ImageShavedMode, int AlphaOnlyFlag = FALSE ,
  3192.                                             int RedIsAlphaFlag = FALSE , int TransColorNoMoveFlag = FALSE ,
  3193.                                             int Pal8ColorMatch = FALSE ) ;
  3194.  
  3195.  
  3196. // 色情報取得関係
  3197. extern  COLOR_F     GetColorF(              float Red, float Green, float Blue, float Alpha ) ;                                     // 浮動小数点型のカラー値を作成する
  3198. extern  COLOR_U8    GetColorU8(             int Red, int Green, int Blue, int Alpha ) ;                                             // 符号なし整数8ビットのカラー値を作成する
  3199. extern  DWORD       GetColor(               int Red, int Green, int Blue ) ;                                                        // 3原色の値から現在の画面モードに対応したカラー値を得る
  3200. extern  int         GetColor2(              int Color, int *Red, int *Green, int *Blue ) ;                                          // 画面モードに対応したカラー値から個々の3原色の値を抜き出す
  3201. extern  int         GetColor3(              COLORDATA *ColorData, int Red, int Green, int Blue, int Alpha = 255 ) ;                 // 3原色の値から指定のピクセルフォーマットに対応したカラー値を得る
  3202. extern  int         GetColor4(              COLORDATA *DestColorData, COLORDATA* SrcColorData, int SrcColor ) ;                     // 指定のカラーフォーマットのカラー値を別のカラーフォーマットのカラー値に変換する
  3203. extern  int         GetColor5(              COLORDATA *ColorData, int Color, int *Red, int *Green, int *Blue, int *Alpha = NULL ) ; // 指定のカラーフォーマットのカラー値を3原色の値に変換する
  3204. extern  int         CreatePaletteColorData( COLORDATA *ColorDataBuf ) ;                                                             // パレットカラーのカラーフォーマットを構築する
  3205. extern  int         CreateXRGB8ColorData(   COLORDATA *ColorDataBuf ) ;                                                             // XRGB8カラーのカラーフォーマットを構築する
  3206. extern  int         CreateARGB8ColorData(   COLORDATA *ColorDataBuf ) ;                                                             // ARGB8カラーのカラーフォーマットを構築する
  3207. extern  int         CreateARGB4ColorData(   COLORDATA *ColorDataBuf ) ;                                                             // ARGB4カラーのカラーフォーマットを構築する
  3208. extern  int         CreateFullColorData(    COLORDATA *ColorDataBuf ) ;                                                             // 24ビットカラーのカラーフォーマットを構築する
  3209. extern  int         CreateGrayColorData(    COLORDATA *ColorDataBuf ) ;                                                             // グレースケールのカラーフォーマットを構築する
  3210. extern  int         CreatePal8ColorData(    COLORDATA *ColorDataBuf ) ;                                                             // パレット256色のカラーフォーマットを構築する
  3211. extern  int         CreateColorData(        COLORDATA *ColorDataBuf, int ColorBitDepth,
  3212.                                             DWORD RedMask, DWORD GreenMask, DWORD BlueMask, DWORD AlphaMask,
  3213.                                             int ChannelNum = 0, int ChannelBitDepth = 0, int FloatTypeFlag = FALSE ) ;              // カラーフォーマットを作成する
  3214. extern  void        SetColorDataNoneMask(   COLORDATA *ColorData ) ;                                                                // NoneMask 以外の要素を埋めた COLORDATA 構造体の情報を元に NoneMask をセットする
  3215. extern  int         CmpColorData(           COLORDATA *ColorData1, COLORDATA *ColorData2 ) ;                                        // 二つのカラーフォーマットが等しいかどうか調べる( 戻り値 TRUE:等しい  FALSE:等しくない )
  3216.  
  3217. #endif // DX_NOTUSE_DRAWFUNCTION
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231. // DxSoftImage.cpp関数プロトタイプ宣言
  3232. #ifndef DX_NON_SOFTIMAGE
  3233. extern  int         InitSoftImage(                   void ) ;                                                                           // ソフトウエアイメージハンドルを全て削除する
  3234. extern  int         LoadSoftImage(                   const TCHAR *FileName ) ;                                                          // 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( -1:エラー  -1以外:イメージハンドル )
  3235. extern  int         LoadSoftImageToMem(              void *FileImage, int FileImageSize ) ;                                             // メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する( -1:エラー  -1以外:イメージハンドル )
  3236. extern  int         MakeSoftImage(                   int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( -1:エラー  -1以外:イメージハンドル )
  3237. extern  int         MakeARGB8ColorSoftImage(         int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( RGBA8 カラー )
  3238. extern  int         MakeXRGB8ColorSoftImage(         int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( XRGB8 カラー )
  3239. extern  int         MakeARGB4ColorSoftImage(         int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( ARGB4 カラー )
  3240. extern  int         MakeRGB8ColorSoftImage(          int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( RGB8 カラー )
  3241. extern  int         MakePAL8ColorSoftImage(          int SizeX, int SizeY ) ;                                                           // ソフトウエアイメージハンドルの作成( パレット256色 カラー )
  3242.  
  3243. extern  int         DeleteSoftImage(                 int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルの削除する
  3244.  
  3245. extern  int         GetSoftImageSize(                int SIHandle, int *Width, int *Height ) ;                                          // ソフトウエアイメージハンドルのサイズを取得する
  3246. extern  int         CheckPaletteSoftImage(           int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルがパレット画像かどうかを取得する( TRUE:パレット画像  FALSE:パレット画像じゃない )
  3247. extern  int         CheckAlphaSoftImage(             int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルのフォーマットにα要素があるかどうかを取得する( TRUE:ある  FALSE:ない )
  3248. extern  int         CheckPixelAlphaSoftImage(        int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルに含まれるピクセルのα値をチェックする( 戻り値   -1:エラー  0:画像にα成分が無い  1:画像にα成分があり、すべて最大(255)値  2:画像にα成分があり、存在するα値は最小(0)と最大(255)もしくは最小(0)のみ 3:画像にα成分があり、最小と最大以外の中間の値がある )  
  3249.  
  3250. extern  int         GetDrawScreenSoftImage(          int x1, int y1, int x2, int y2, int SIHandle ) ;                                   // 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する
  3251. #ifdef __WINDOWS__
  3252. extern  int         UpdateLayerdWindowForSoftImage(                   int SIHandle ) ;                                                  // ソフトウエアイメージハンドルを使用して UpdateLayerdWindow を行う( イメージはウインドウのクライアント領域と同じサイズである必要があります )
  3253. extern  int         UpdateLayerdWindowForPremultipliedAlphaSoftImage( int SIHandle ) ;                                                  // 乗算済みアルファのソフトウエアイメージハンドルを使用して UpdateLayerdWindow を行う( イメージはウインドウのクライアント領域と同じサイズである必要があります )
  3254. #endif // __WINDOWS__
  3255. extern  int         FillSoftImage(                   int SIHandle, int r, int g, int b, int a ) ;                                       // ソフトウエアイメージハンドルを指定色で塗りつぶす(各色要素は0~255)
  3256. extern  int         ClearRectSoftImage(              int SIHandle, int x, int y, int w, int h ) ;                                       // ソフトウエアイメージハンドルの指定の領域を0クリアする
  3257. extern  int         GetPaletteSoftImage(             int SIHandle, int PaletteNo, int *r, int *g, int *b, int *a ) ;                    // ソフトウエアイメージハンドルのパレットを取得する(各色要素は0~255)
  3258. extern  int         SetPaletteSoftImage(             int SIHandle, int PaletteNo, int  r, int  g, int  b, int  a ) ;                    // ソフトウエアイメージハンドルのパレットを設定する(各色要素は0~255)
  3259. extern  int         DrawPixelPalCodeSoftImage(       int SIHandle, int x, int y, int palNo ) ;                                          // ソフトウエアイメージハンドルの指定座標にドットを描画する(パレット画像用、有効値は0~255)
  3260. extern  int         GetPixelPalCodeSoftImage(        int SIHandle, int x, int y ) ;                                                     // ソフトウエアイメージハンドルの指定座標の色コードを取得する(パレット画像用、戻り値は0~255)
  3261. extern  void        *GetImageAddressSoftImage(       int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルの画像が格納されているメモリ領域の先頭アドレスを取得する
  3262. extern  int         DrawPixelSoftImage(              int SIHandle, int x, int y, int  r, int  g, int  b, int  a ) ;                     // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)
  3263. extern  void        DrawPixelSoftImage_Unsafe_XRGB8( int SIHandle, int x, int y, int  r, int  g, int  b ) ;                             // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
  3264. extern  void        DrawPixelSoftImage_Unsafe_ARGB8( int SIHandle, int x, int y, int  r, int  g, int  b, int  a ) ;                     // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
  3265. extern  int         GetPixelSoftImage(               int SIHandle, int x, int y, int *r, int *g, int *b, int *a ) ;                     // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)
  3266. extern  void        GetPixelSoftImage_Unsafe_XRGB8(  int SIHandle, int x, int y, int *r, int *g, int *b ) ;                             // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
  3267. extern  void        GetPixelSoftImage_Unsafe_ARGB8(  int SIHandle, int x, int y, int *r, int *g, int *b, int *a ) ;                     // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は0~255)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
  3268. extern  int         DrawLineSoftImage(               int SIHandle, int x1, int y1, int x2, int y2, int r, int g, int b, int a ) ;       // ソフトウエアイメージハンドルの指定座標に線を描画する(各色要素は0~255)
  3269. extern  int         BltSoftImage(                    int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle ) ;                                    // ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに転送する
  3270. 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 ) ;    // ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに透過色処理付きで転送する
  3271. extern  int         BltSoftImageWithAlphaBlend(      int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle, int Opacity = 255 ) ;                 // ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルにアルファ値のブレンドを考慮した上で転送する( Opacity は透明度 : 0( 完全透明 ) ~ 255( 完全不透明 ) )( 出力先が ARGB8 形式以外の場合はエラーになります )
  3272. extern  int         ReverseSoftImageH(               int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルを左右反転する
  3273. extern  int         ReverseSoftImageV(               int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルを上下反転する
  3274. extern  int         ReverseSoftImage(                int SIHandle ) ;                                                                   // ソフトウエアイメージハンドルを上下左右反転する
  3275.  
  3276. #ifndef DX_NON_FONT
  3277. extern  int         BltStringSoftImage(              int x, int y, const TCHAR *StrData, int DestSIHandle, int DestEdgeSIHandle = -1 ,                                        int VerticalFlag = FALSE ) ;      // ソフトウエアイメージハンドルに文字列を描画する( デフォルトフォントハンドルを使用する )
  3278. extern  int         BltStringSoftImageToHandle(      int x, int y, const TCHAR *StrData, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は -1 */ , int FontHandle, int VerticalFlag = FALSE ) ;     // ソフトウエアイメージハンドルに文字列を描画する( フォントハンドル使用版 )
  3279. #endif // DX_NON_FONT
  3280.  
  3281. extern  int         DrawSoftImage(                   int x, int y, int SIHandle ) ;                                                     // ソフトウエアイメージハンドルを画面に描画する
  3282.  
  3283. #ifndef DX_NON_SAVEFUNCTION
  3284.  
  3285. extern  int         SaveSoftImageToBmp(              const TCHAR *FilePath, int SIHandle ) ;                                            // ソフトウエアイメージハンドルをBMP画像ファイルとして保存する
  3286. #ifndef DX_NON_PNGREAD
  3287. extern  int         SaveSoftImageToPng(              const TCHAR *FilePath, int SIHandle, int CompressionLevel ) ;                      // ソフトウエアイメージハンドルをPNG画像ファイルとして保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、0は無圧縮,0~9
  3288. #endif // DX_NON_PNGREAD
  3289. #ifndef DX_NON_JPEGREAD
  3290. extern  int         SaveSoftImageToJpeg(             const TCHAR *FilePath, int SIHandle, int Quality, int Sample2x1 ) ;                // ソフトウエアイメージハンドルをJPEG画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0~100
  3291. #endif // DX_NON_JPEGREAD
  3292.  
  3293. #endif // DX_NON_SAVEFUNCTION
  3294.  
  3295. #endif // DX_NON_SOFTIMAGE
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314. #ifndef DX_NON_SOUND
  3315.  
  3316. // DxSound.cpp関数プロトタイプ宣言
  3317.  
  3318. // サウンドデータ管理系関数
  3319. extern  int         InitSoundMem(                        int LogOutFlag = FALSE ) ;                                                                 // 全てのサウンドハンドルを削除する
  3320.  
  3321. extern  int         AddSoundData(                        int Handle = -1 ) ;                                                                                                        // サウンドハンドルを作成する
  3322. extern  int         AddStreamSoundMem(                   STREAMDATA *Stream, int LoopNum,  int SoundHandle, int StreamDataType, int *CanStreamCloseFlag, int UnionHandle = -1 ) ;   // ストリーム再生タイプのサウンドハンドルにストリームデータを再生対象に追加する
  3323. extern  int         AddStreamSoundMemToMem(              void *FileImage, int FileImageSize, int LoopNum,  int SoundHandle, int StreamDataType, int UnionHandle = -1 ) ;            // ストリーム再生タイプのサウンドハンドルにメモリ上に展開したサウンドファイルイメージを再生対象に追加する
  3324. extern  int         AddStreamSoundMemToFile(             const TCHAR *WaveFile, int LoopNum,  int SoundHandle, int StreamDataType, int UnionHandle = -1 ) ;                         // ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する
  3325. extern  int         SetupStreamSoundMem(                 int SoundHandle ) ;                                                                        // ストリーム再生タイプのサウンドハンドルの再生準備をする
  3326. extern  int         PlayStreamSoundMem(                  int SoundHandle, int PlayType = DX_PLAYTYPE_LOOP , int TopPositionFlag = TRUE ) ;          // ストリーム再生タイプのサウンドハンドルの再生を開始する
  3327. extern  int         CheckStreamSoundMem(                 int SoundHandle ) ;                                                                        // ストリーム再生タイプのサウンドハンドルの再生状態を取得する
  3328. extern  int         StopStreamSoundMem(                  int SoundHandle ) ;                                                                        // ストリーム再生タイプのサウンドハンドルの再生を停止する
  3329. extern  int         SetStreamSoundCurrentPosition(       int Byte, int SoundHandle ) ;                                                              // サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効)
  3330. extern  int         GetStreamSoundCurrentPosition(       int SoundHandle ) ;                                                                        // サウンドハンドルの再生位置をバイト単位で取得する
  3331. extern  int         SetStreamSoundCurrentTime(           int Time, int SoundHandle ) ;                                                              // サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
  3332. extern  int         GetStreamSoundCurrentTime(           int SoundHandle ) ;                                                                        // サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
  3333. extern  int         ProcessStreamSoundMem(               int SoundHandle ) ;                                                                        // ストリーム再生タイプのサウンドハンドルの周期的な処理を行う関数( 内部で自動的に呼ばれます )
  3334. extern  int         ProcessStreamSoundMemAll(            void ) ;                                                                                   // 有効なストリーム再生タイプのサウンドハンドルに対して ProcessStreamSoundMem を実行する( 内部で自動的に呼ばれます )
  3335.  
  3336.  
  3337. extern  int         LoadSoundMem2(                       const TCHAR *FileName1, const TCHAR *FileName2 ) ;                                         // 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する
  3338. extern  int         LoadBGM(                             const TCHAR *FileName ) ;                                                                  // 主にBGMを読み込みサウンドハンドルを作成するのに適した関数
  3339.  
  3340. extern  int         LoadSoundMemBase(                    const TCHAR *FileName, int BufferNum,      int UnionHandle = -1 ) ;                        // サウンドファイルからサウンドハンドルを作成する
  3341. extern  int         LoadSoundMem(                        const TCHAR *FileName, int BufferNum = 3 , int UnionHandle = -1 ) ;                        // LoadSoundMemBase の別名関数
  3342. extern  int         LoadSoundMemToBufNumSitei(           const TCHAR *FileName, int BufferNum ) ;                                                   // LoadSoundMem を使用して下さい
  3343. extern  int         LoadSoundMemByResource(              const TCHAR *ResourceName, const TCHAR *ResourceType, int BufferNum = 1 ) ;                // サウンドリソースからサウンドハンドルを作成する
  3344. extern  int         DuplicateSoundMem(                   int SrcSoundHandle, int BufferNum = 3 ) ;                                                  // 同じサウンドデータを使用するサウンドハンドルを作成する( DX_SOUNDDATATYPE_MEMNOPRESS タイプのサウンドハンドルのみ可能 )
  3345.  
  3346. extern  int         LoadSoundMemByMemImageBase(          void *FileImage, int FileImageSize, int BufferNum, int UnionHandle = -1 ) ;                // メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
  3347. extern  int         LoadSoundMemByMemImage(              void *FileImage, int FileImageSize,                int UnionHandle = -1 ) ;                // メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する( バッファ数指定無し )
  3348. extern  int         LoadSoundMemByMemImage2(             void *WaveImage, int WaveImageSize, WAVEFORMATEX *WaveFormat, int WaveHeaderSize ) ;       // メモリ上に展開されたPCMデータからサウンドハンドルを作成する
  3349. extern  int         LoadSoundMemByMemImageToBufNumSitei( void *FileImage, int FileImageSize, int BufferNum ) ;                                      // LoadSoundMemByMemImageBase を使用して下さい
  3350. extern  int         LoadSoundMem2ByMemImage(             void *FileImage1, int FileImageSize1, void *FileImage2, int FileImageSize2 ) ;             // 前奏部とループ部に分かれた二つのメモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
  3351. extern  int         LoadSoundMemFromSoftSound(           int SoftSoundHandle, int BufferNum = 3 ) ;                                                 // ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する
  3352.  
  3353. extern  int         DeleteSoundMem(                      int SoundHandle, int LogOutFlag = FALSE ) ;                                                // サウンドハンドルを削除する
  3354.  
  3355. extern  int         PlaySoundMem(                        int SoundHandle, int PlayType, int TopPositionFlag = TRUE ) ;                              // サウンドハンドルを再生する
  3356. extern  int         StopSoundMem(                                                     int SoundHandle ) ;                                           // サウンドハンドルの再生を停止する
  3357. extern  int         CheckSoundMem(                                                    int SoundHandle ) ;                                           // サウンドハンドルが再生中かどうかを取得する
  3358. extern  int         SetPanSoundMem(                      int PanPal,                  int SoundHandle ) ;                                           // サウンドハンドルのパンを設定する
  3359. extern  int         GetPanSoundMem(                                                   int SoundHandle ) ;                                           // サウンドハンドルのパンを取得する
  3360. extern  int         SetVolumeSoundMem(                   int VolumePal,               int SoundHandle ) ;                                           // サウンドハンドルのボリュームを設定する( 100分の1デシベル単位 )
  3361. extern  int         ChangeVolumeSoundMem(                int VolumePal,               int SoundHandle ) ;                                           // サウンドハンドルのボリュームを設定する( パーセント指定 )
  3362. extern  int         GetVolumeSoundMem(                                                int SoundHandle ) ;                                           // サウンドハンドルのボリュームを取得する
  3363. extern  int         SetFrequencySoundMem(                int FrequencyPal,            int SoundHandle ) ;                                           // サウンドハンドルの再生周波数を設定する
  3364. extern  int         GetFrequencySoundMem(                                             int SoundHandle ) ;                                           // サウンドハンドルの再生周波数を取得する
  3365. extern  int         ResetFrequencySoundMem(                                           int SoundHandle ) ;                                           // サウンドハンドルの再生周波数を読み込み直後の状態に戻す
  3366.  
  3367. extern  int         SetNextPlayPanSoundMem(              int PanPal,                  int SoundHandle ) ;                                           // サウンドハンドルの次の再生にのみ使用するパンを設定する
  3368. extern  int         SetNextPlayVolumeSoundMem(           int VolumePal,               int SoundHandle ) ;                                           // サウンドハンドルの次の再生にのみ使用するボリュームを設定する( 100分の1デシベル単位 )
  3369. extern  int         ChangeNextPlayVolumeSoundMem(        int VolumePal,               int SoundHandle ) ;                                           // サウンドハンドルの次の再生にのみ使用するボリュームを設定する( パーセント指定 )
  3370. extern  int         SetNextPlayFrequencySoundMem(        int FrequencyPal,            int SoundHandle ) ;                                           // サウンドハンドルの次の再生にのみ使用する再生周波数を設定する
  3371.  
  3372. extern  int         SetCurrentPositionSoundMem(          int SamplePosition,          int SoundHandle ) ;                                           // サウンドハンドルの再生位置をサンプル単位で設定する(再生が止まっている時のみ有効)
  3373. extern  int         GetCurrentPositionSoundMem(                                       int SoundHandle ) ;                                           // サウンドハンドルの再生位置をサンプル単位で取得する
  3374. extern  int         SetSoundCurrentPosition(             int Byte,                    int SoundHandle ) ;                                           // サウンドハンドルの再生位置をバイト単位で設定する(再生が止まっている時のみ有効)
  3375. extern  int         GetSoundCurrentPosition(                                          int SoundHandle ) ;                                           // サウンドハンドルの再生位置をバイト単位で取得する
  3376. extern  int         SetSoundCurrentTime(                 int Time,                    int SoundHandle ) ;                                           // サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
  3377. extern  int         GetSoundCurrentTime(                                              int SoundHandle ) ;                                           // サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
  3378. extern  int         GetSoundTotalSample(                                              int SoundHandle ) ;                                           // サウンドハンドルの音の総時間をサンプル単位で取得する
  3379. extern  int         GetSoundTotalTime(                                                int SoundHandle ) ;                                           // サウンドハンドルの音の総時間をミリ秒単位で取得する
  3380.  
  3381. extern  int         SetLoopPosSoundMem(                  int LoopTime,                int SoundHandle ) ;                                           // SetLoopTimePosSoundMem の別名関数
  3382. extern  int         SetLoopTimePosSoundMem(              int LoopTime,                int SoundHandle ) ;                                           // サウンドハンドルにループ位置を設定する(ミリ秒単位)
  3383. extern  int         SetLoopSamplePosSoundMem(            int LoopSamplePosition,      int SoundHandle ) ;                                           // サウンドハンドルにループ位置を設定する(サンプル単位)
  3384.  
  3385. extern  int         SetLoopStartTimePosSoundMem(         int LoopStartTime,           int SoundHandle ) ;                                           // サウンドハンドルにループ開始位置を設定する(ミリ秒単位)
  3386. extern  int         SetLoopStartSamplePosSoundMem(       int LoopStartSamplePosition, int SoundHandle ) ;                                           // サウンドハンドルにループ開始位置を設定する(サンプル単位)
  3387.  
  3388. // 設定関係関数
  3389. extern  int         SetCreateSoundDataType(              int SoundDataType ) ;                                                                      // 作成するサウンドハンドルの再生タイプを設定する( DX_SOUNDDATATYPE_MEMNOPRESS 等 )
  3390. extern  int         GetCreateSoundDataType(              void ) ;                                                                                   // 作成するサウンドハンドルの再生タイプを取得する( DX_SOUNDDATATYPE_MEMNOPRESS 等 )
  3391. extern  int         SetDisableReadSoundFunctionMask(     int Mask ) ;                                                                               // 使用しないサウンドデータ読み込み処理のマスクを設定する( DX_READSOUNDFUNCTION_PCM 等 )
  3392. extern  int         GetDisableReadSoundFunctionMask(     void ) ;                                                                                   // 使用しないサウンドデータ読み込み処理のマスクを取得する( DX_READSOUNDFUNCTION_PCM 等 )
  3393. extern  int         SetEnableSoundCaptureFlag(           int Flag ) ;                                                                               // サウンドキャプチャを前提とした動作をするかどうかを設定する
  3394. extern  int         SetUseSoftwareMixingSoundFlag(       int Flag ) ;                                                                               // サウンドの処理をソフトウエアで行うかどうかを設定する( TRUE:ソフトウエア  FALSE:ハードウエア( デフォルト ) )
  3395.  
  3396. // 情報取得系関数
  3397. extern  void*       GetDSoundObj(                        void ) ;   /* 戻り値を IDirectSound * にキャストして下さい */                                // DXライブラリが使用している DirectSound オブジェクトを取得する
  3398.  
  3399. #ifndef DX_NON_BEEP
  3400. // BEEP音再生用命令
  3401. extern  int         SetBeepFrequency(                   int Freq ) ;                                                                                // ビープ音周波数設定関数
  3402. extern  int         PlayBeep(                           void ) ;                                                                                    // ビープ音を再生する
  3403. extern  int         StopBeep(                           void ) ;                                                                                    // ビープ音を止める
  3404. #endif // DX_NON_BEEP
  3405.  
  3406. // ラッパー関数
  3407. extern  int         PlaySoundFile(                      const TCHAR *FileName, int PlayType ) ;                                                     // サウンドファイルを再生する
  3408. extern  int         PlaySound(                          const TCHAR *FileName, int PlayType ) ;                                                     // PlaySoundFile の旧名称
  3409. extern  int         CheckSoundFile(                     void ) ;                                                                                    // サウンドファイルの再生中かどうかを取得する
  3410. extern  int         CheckSound(                         void ) ;                                                                                    // CheckSoundFile の旧名称
  3411. extern  int         StopSoundFile(                      void ) ;                                                                                    // サウンドファイルの再生を停止する
  3412. extern  int         StopSound(                          void ) ;                                                                                    // StopSoundFile の旧名称
  3413. extern  int         SetVolumeSoundFile(                 int VolumePal ) ;                                                                           // サウンドファイルの音量を設定する
  3414. extern  int         SetVolumeSound(                     int VolumePal ) ;                                                                           // SetVolumeSound の旧名称
  3415.  
  3416. // ソフトウエア制御サウンド系関数
  3417. extern  int         InitSoftSound(                      void ) ;                                                                                    // ソフトウエアで扱う波形データハンドルをすべて削除する
  3418. extern  int         LoadSoftSound(                      const TCHAR *FileName ) ;                                                                   // ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する
  3419. extern  int         LoadSoftSoundFromMemImage(          const void *FileImage, int FileImageSize ) ;                                                // ソフトウエアで扱う波形データハンドルをメモリ上に展開されたサウンドファイルイメージから作成する
  3420. extern  int         MakeSoftSound(                      int UseFormat_SoftSoundHandle, int SampleNum ) ;                                            // ソフトウエアで扱う空の波形データハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする )
  3421. extern  int         MakeSoftSound2Ch16Bit44KHz(         int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44KHz )
  3422. extern  int         MakeSoftSound2Ch16Bit22KHz(         int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz )
  3423. extern  int         MakeSoftSound2Ch8Bit44KHz(          int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:44KHz )
  3424. extern  int         MakeSoftSound2Ch8Bit22KHz(          int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:22KHz )
  3425. extern  int         MakeSoftSound1Ch16Bit44KHz(         int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44KHz )
  3426. extern  int         MakeSoftSound1Ch16Bit22KHz(         int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz )
  3427. extern  int         MakeSoftSound1Ch8Bit44KHz(          int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:44KHz )
  3428. extern  int         MakeSoftSound1Ch8Bit22KHz(          int SampleNum ) ;                                                                           // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:22KHz )
  3429. extern  int         MakeSoftSoundCustom(                int ChannelNum, int BitsPerSample, int SamplesPerSec, int SampleNum );                      // ソフトウエアで扱う空の波形データハンドルを作成する
  3430. extern  int         DeleteSoftSound(                    int SoftSoundHandle ) ;                                                                     // ソフトウエアで扱う波形データハンドルを削除する
  3431. #ifndef DX_NON_SAVEFUNCTION
  3432. extern  int         SaveSoftSound(                      int SoftSoundHandle, const TCHAR *FileName ) ;                                              // ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する
  3433. #endif // DX_NON_SAVEFUNCTION
  3434. extern  int         GetSoftSoundSampleNum(              int SoftSoundHandle ) ;                                                                     // ソフトウエアで扱う波形データハンドルのサンプル数を取得する
  3435. extern  int         GetSoftSoundFormat(                 int SoftSoundHandle, int *Channels, int *BitsPerSample, int *SamplesPerSec ) ;              // ソフトウエアで扱う波形データハンドルのフォーマットを取得する
  3436. extern  int         ReadSoftSoundData(                  int SoftSoundHandle, int SamplePosition, int *Channel1, int *Channel2 ) ;                   // ソフトウエアで扱う波形データハンドルのサンプルを読み取る
  3437. extern  int         WriteSoftSoundData(                 int SoftSoundHandle, int SamplePosition, int Channel1, int Channel2 ) ;                     // ソフトウエアで扱う波形データハンドルのサンプルを書き込む
  3438. extern  void        *GetSoftSoundDataImage(             int SoftSoundHandle ) ;                                                                     // ソフトウエアで扱う波形データハンドルの波形イメージが格納されているメモリアドレスを取得する
  3439.  
  3440. extern  int         InitSoftSoundPlayer(                void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルをすべて解放する
  3441. extern  int         MakeSoftSoundPlayer(                int UseFormat_SoftSoundHandle ) ;                                                           // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする )
  3442. extern  int         MakeSoftSoundPlayer2Ch16Bit44KHz(   void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44KHz )
  3443. extern  int         MakeSoftSoundPlayer2Ch16Bit22KHz(   void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz )
  3444. extern  int         MakeSoftSoundPlayer2Ch8Bit44KHz(    void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:44KHz )
  3445. extern  int         MakeSoftSoundPlayer2Ch8Bit22KHz(    void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:22KHz )
  3446. extern  int         MakeSoftSoundPlayer1Ch16Bit44KHz(   void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44KHz )
  3447. extern  int         MakeSoftSoundPlayer1Ch16Bit22KHz(   void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz )
  3448. extern  int         MakeSoftSoundPlayer1Ch8Bit44KHz(    void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:44KHz )
  3449. extern  int         MakeSoftSoundPlayer1Ch8Bit22KHz(    void ) ;                                                                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:22KHz )
  3450. extern  int         MakeSoftSoundPlayerCustom(          int ChannelNum, int BitsPerSample, int SamplesPerSec ) ;                                    // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する
  3451. extern  int         DeleteSoftSoundPlayer(              int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルを削除する
  3452. extern  int         AddDataSoftSoundPlayer(             int SSoundPlayerHandle, int SoftSoundHandle, int AddSamplePosition, int AddSampleNum ) ;    // ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを追加する( フォーマットが同じではない場合はエラー )
  3453. extern  int         AddDirectDataSoftSoundPlayer(       int SSoundPlayerHandle, void *SoundData, int AddSampleNum ) ;                               // ソフトウエアで扱う波形データのプレイヤーハンドルにプレイヤーが対応したフォーマットの生波形データを追加する
  3454. extern  int         AddOneDataSoftSoundPlayer(          int SSoundPlayerHandle, int Channel1, int Channel2 ) ;                                      // ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを一つ追加する
  3455. extern  int         GetSoftSoundPlayerFormat(           int SSoundPlayerHandle, int *Channels, int *BitsPerSample, int *SamplesPerSec ) ;           // ソフトウエアで扱う波形データのプレイヤーハンドルが扱うデータフォーマットを取得する
  3456. extern  int         StartSoftSoundPlayer(               int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を開始する
  3457. extern  int         CheckStartSoftSoundPlayer(          int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理が開始されているか取得する( TRUE:開始している  FALSE:停止している )
  3458. extern  int         StopSoftSoundPlayer(                int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を停止する
  3459. extern  int         ResetSoftSoundPlayer(               int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルの状態を初期状態に戻す( 追加された波形データは削除され、再生状態だった場合は停止する )
  3460. extern  int         GetStockDataLengthSoftSoundPlayer(  int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する
  3461. extern  int         CheckSoftSoundPlayerNoneData(       int SSoundPlayerHandle ) ;                                                                  // ソフトウエアで扱う波形データのプレイヤーハンドルに再生用サウンドバッファに転送していない波形データが無く、再生用サウンドバッファにも無音データ以外無いかどうかを取得する( TRUE:無音データ以外無い  FALSE:有効データがある )
  3462.  
  3463.  
  3464.  
  3465.  
  3466. // MIDI制御関数
  3467. extern  int         DeleteMusicMem(                     int MusicHandle ) ;                                                                         // MIDIハンドルを削除する
  3468. extern  int         LoadMusicMem(                       const TCHAR *FileName ) ;                                                                   // MIDIファイルを読み込みMIDIハンドルを作成する
  3469. extern  int         LoadMusicMemByMemImage(             void *FileImage, int FileImageSize ) ;                                                      // メモリ上に展開されたMIDIファイルイメージからMIDIハンドルを作成する
  3470. extern  int         LoadMusicMemByResource(             const TCHAR *ResourceName, const TCHAR *ResourceType ) ;                                    // リソース上のMIDIファイルからMIDIハンドルを作成する
  3471. extern  int         PlayMusicMem(                       int MusicHandle, int PlayType ) ;                                                           // MIDIハンドルの演奏を開始する
  3472. extern  int         StopMusicMem(                       int MusicHandle ) ;                                                                         // MIDIハンドルの演奏を停止する
  3473. extern  int         CheckMusicMem(                      int MusicHandle ) ;                                                                         // MIDIハンドルが演奏中かどうかを取得する( TRUE:演奏中  FALSE:停止中 )
  3474. extern  int         SetVolumeMusicMem(                  int Volume, int MusicHandle ) ;                                                             // MIDIハンドルの再生音量をセットする
  3475. extern  int         GetMusicMemPosition(                int MusicHandle ) ;                                                                         // MIDIハンドルの現在の再生位置を取得する
  3476. extern  int         InitMusicMem(                       void ) ;                                                                                    // MIDIハンドルをすべて削除する
  3477. extern  int         ProcessMusicMem(                    void ) ;                                                                                    // MIDIハンドルの周期的処理( 内部で呼ばれます )
  3478.  
  3479. extern  int         PlayMusic(                          const TCHAR *FileName, int PlayType ) ;                                                     // MIDIファイルを演奏する
  3480. extern  int         PlayMusicByMemImage(                void *FileImage, int FileImageSize, int PlayType ) ;                                        // メモリ上に展開されているMIDIファイルを演奏する
  3481. extern  int         PlayMusicByResource(                const TCHAR *ResourceName, const TCHAR *ResourceType, int PlayType ) ;                      // リソースからMIDIファイルを読み込んで演奏する
  3482. extern  int         SetVolumeMusic(                     int Volume ) ;                                                                              // MIDIの再生音量をセットする
  3483. extern  int         StopMusic(                          void ) ;                                                                                    // MIDIファイルの演奏停止
  3484. extern  int         CheckMusic(                         void ) ;                                                                                    // MIDIファイルが演奏中か否か情報を取得する
  3485. extern  int         GetMusicPosition(                   void ) ;                                                                                    // MIDIの現在の再生位置を取得する
  3486.  
  3487. extern  int         SelectMidiMode(                     int Mode ) ;                                                                                // MIDIの再生形式を設定する
  3488.  
  3489. #endif // DX_NON_SOUND
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500. // DxArchive_.cpp 関数 プロトタイプ宣言
  3501. extern  int         SetUseDXArchiveFlag(    int Flag ) ;                                                    // DXアーカイブファイルの読み込み機能を使うかどうかを設定する( FALSE:使用しない  TRUE:使用する )
  3502. extern  int         SetDXArchivePriority(   int Priority = 0 ) ;                                            // 同名のDXアーカイブファイルとフォルダが存在した場合、どちらを優先させるかを設定する( 1:フォルダを優先  0:DXアーカイブファイルを優先( デフォルト ) )
  3503. extern  int         SetDXArchiveExtension(  const TCHAR *Extension = NULL ) ;                               // 検索するDXアーカイブファイルの拡張子を設定する( Extension:拡張子名文字列 )
  3504. extern  int         SetDXArchiveKeyString(  const TCHAR *KeyString = NULL ) ;                               // DXアーカイブファイルの鍵文字列を設定する( KeyString:鍵文字列 )
  3505.  
  3506. extern  int         DXArchivePreLoad(       const TCHAR *FilePath , int ASync = FALSE ) ;                   // 指定のDXAファイルを丸ごとメモリに読み込む( 戻り値  -1:エラー  0:成功 )
  3507. extern  int         DXArchiveCheckIdle(     const TCHAR *FilePath ) ;                                       // 指定のDXAファイルの事前読み込みが完了したかどうかを取得する( 戻り値  TRUE:完了した FALSE:まだ )
  3508. extern  int         DXArchiveRelease(       const TCHAR *FilePath ) ;                                       // 指定のDXAファイルをメモリから解放する
  3509. extern  int         DXArchiveCheckFile(     const TCHAR *FilePath, const TCHAR *TargetFilePath ) ;          // DXAファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePath はDXAファイルをカレントフォルダとした場合のパス( 戻り値:  -1=エラー  0:無い  1:ある )
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531. // DxModel.cpp 関数 プロトタイプ宣言
  3532.  
  3533. #ifndef DX_NON_MODEL
  3534.  
  3535. // モデルの読み込み・複製関係
  3536. extern  int         MV1LoadModel(                       const TCHAR *FileName ) ;                                           // モデルの読み込み( -1:エラー  0以上:モデルハンドル )
  3537. extern  int         MV1LoadModelFromMem(                void *FileImage, int FileSize, int (* FileReadFunc )( const TCHAR *FilePath, void **FileImageAddr, int *FileSize, void *FileReadFuncData ), int (* FileReleaseFunc )( void *MemoryAddr, void *FileReadFuncData ), void *FileReadFuncData = NULL ) ; // メモリ上のモデルファイルイメージと独自の読み込みルーチンを使用してモデルを読み込む
  3538. extern  int         MV1DuplicateModel(                  int SrcMHandle ) ;                                                  // 指定のモデルと同じモデル基本データを使用してモデルを作成する( -1:エラー  0以上:モデルハンドル )
  3539. extern  int         MV1CreateCloneModel(                int SrcMHandle ) ;                                                  // 指定のモデルをモデル基本データも含め複製する( MV1DuplicateModel はモデル基本データは共有しますが、こちらは複製元のモデルとは一切共有データの無いモデルハンドルを作成します )( -1:エラー  0以上:モデルハンドル )
  3540.  
  3541. extern  int         MV1DeleteModel(                     int MHandle ) ;                                                     // モデルを削除する
  3542. extern  int         MV1InitModel(                       void ) ;                                                            // すべてのモデルを削除する
  3543.  
  3544. extern  int         MV1SetLoadModelReMakeNormal(        int Flag ) ;                                                        // モデルを読み込む際に法線の再計算を行うかどうかを設定する( TRUE:行う  FALSE:行わない )
  3545. extern  int         MV1SetLoadModelReMakeNormalSmoothingAngle( float SmoothingAngle = 1.562069f ) ;                         // モデルを読み込む際に行う法泉の再計算で使用するスムージング角度を設定する( 単位はラジアン )
  3546. extern  int         MV1SetLoadModelPositionOptimize(    int Flag ) ;                                                        // モデルを読み込む際に座標データの最適化を行うかどうかを設定する( TRUE:行う  FALSE:行わない )
  3547. extern  int         MV1SetLoadModelUsePhysicsMode(      int PhysicsMode /* DX_LOADMODEL_PHYSICS_LOADCALC 等 */ ) ;         // 読み込むモデルの物理演算モードを設定する
  3548. extern  int         MV1SetLoadModelPhysicsWorldGravity( float Gravity ) ;                                                   // 読み込むモデルの物理演算に適用する重力パラメータを設定する
  3549. extern  int         MV1SetLoadCalcPhysicsWorldGravity(  int GravityNo, VECTOR Gravity ) ;                                   // 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される重力の設定をする
  3550. extern  int         MV1SetLoadModelAnimFilePath(        const TCHAR *FileName ) ;                                           // 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット( 現在は PMD,PMX のみに効果あり )
  3551.  
  3552. // モデル保存関係
  3553. extern  int         MV1SaveModelToMV1File( int MHandle, const TCHAR *FileName, int SaveType = MV1_SAVETYPE_NORMAL , int AnimMHandle = -1 , int AnimNameCheck = TRUE , int Normal8BitFlag = 1 , int Position16BitFlag = 1 , int Weight8BitFlag = 0 , int Anim16BitFlag = 1 ) ;       // 指定のパスにモデルを保存する( 戻り値  0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった )
  3554. #ifndef DX_NON_SAVEFUNCTION
  3555. extern  int         MV1SaveModelToXFile(   int MHandle, const TCHAR *FileName, int SaveType = MV1_SAVETYPE_NORMAL , int AnimMHandle = -1 , int AnimNameCheck = TRUE ) ; // 指定のパスにモデルをXファイル形式で保存する( 戻り値  0:成功  -1:メモリ不足  -2:使われていないアニメーションがあった )
  3556. #endif // DX_NON_SAVEFUNCTION
  3557.  
  3558. // モデル描画関係
  3559. extern  int         MV1DrawModel(                       int MHandle ) ;                                                     // モデルを描画する
  3560. extern  int         MV1DrawFrame(                       int MHandle, int FrameIndex ) ;                                     // モデルの指定のフレームを描画する
  3561. extern  int         MV1DrawMesh(                        int MHandle, int MeshIndex ) ;                                      // モデルの指定のメッシュを描画する
  3562. extern  int         MV1DrawTriangleList(                int MHandle, int TriangleListIndex ) ;                              // モデルの指定のトライアングルリストを描画する
  3563. extern  int         MV1DrawModelDebug(                  int MHandle, int Color, int IsNormalLine, float NormalLineLength, int IsPolyLine, int IsCollisionBox ) ;    // モデルのデバッグ描画
  3564.  
  3565. // 描画設定関係
  3566. extern  int         MV1SetUseOrigShader(                int UseFlag ) ;                                                     // モデルの描画に SetUseVertexShader, SetUsePixelShader で指定したシェーダーを使用するかどうかを設定する( TRUE:使用する  FALSE:使用しない( デフォルト ) )
  3567.  
  3568. // モデル基本制御関係
  3569. extern  MATRIX      MV1GetLocalWorldMatrix(             int MHandle ) ;                                                     // モデルのローカル座標からワールド座標に変換する行列を得る
  3570. extern  int         MV1SetPosition(                     int MHandle, VECTOR Position ) ;                                    // モデルの座標をセット
  3571. extern  VECTOR      MV1GetPosition(                     int MHandle ) ;                                                     // モデルの座標を取得
  3572. extern  int         MV1SetScale(                        int MHandle, VECTOR Scale ) ;                                       // モデルの拡大値をセット
  3573. extern  VECTOR      MV1GetScale(                        int MHandle ) ;                                                     // モデルの拡大値を取得
  3574. extern  int         MV1SetRotationXYZ(                  int MHandle, VECTOR Rotate ) ;                                      // モデルの回転値をセット( X軸回転→Y軸回転→Z軸回転方式 )
  3575. extern  VECTOR      MV1GetRotationXYZ(                  int MHandle ) ;                                                     // モデルの回転値を取得( X軸回転→Y軸回転→Z軸回転方式 )
  3576. extern  int         MV1SetRotationZYAxis(               int MHandle, VECTOR ZAxisDirection, VECTOR YAxisDirection, float ZAxisTwistRotate ) ;   // モデルのZ軸とY軸の向きをセットする
  3577. extern  int         MV1SetRotationMatrix(               int MHandle, MATRIX Matrix ) ;                                      // モデルの回転用行列をセットする
  3578. extern  MATRIX      MV1GetRotationMatrix(               int MHandle ) ;                                                     // モデルの回転用行列を取得する
  3579. extern  int         MV1SetMatrix(                       int MHandle, MATRIX Matrix ) ;                                      // モデルの変形用行列をセットする
  3580. extern  MATRIX      MV1GetMatrix(                       int MHandle ) ;                                                     // モデルの変形用行列を取得する
  3581. extern  int         MV1SetVisible(                      int MHandle, int VisibleFlag ) ;                                    // モデルの表示、非表示状態を変更する( TRUE:表示  FALSE:非表示 )
  3582. extern  int         MV1GetVisible(                      int MHandle ) ;                                                     // モデルの表示、非表示状態を取得する( TRUE:表示  FALSE:非表示 )
  3583. extern  int         MV1SetDifColorScale(                int MHandle, COLOR_F Scale ) ;                                      // モデルのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
  3584. extern  COLOR_F     MV1GetDifColorScale(                int MHandle ) ;                                                     // モデルのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
  3585. extern  int         MV1SetSpcColorScale(                int MHandle, COLOR_F Scale ) ;                                      // モデルのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
  3586. extern  COLOR_F     MV1GetSpcColorScale(                int MHandle ) ;                                                     // モデルのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
  3587. extern  int         MV1SetEmiColorScale(                int MHandle, COLOR_F Scale ) ;                                      // モデルのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
  3588. extern  COLOR_F     MV1GetEmiColorScale(                int MHandle ) ;                                                     // モデルのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
  3589. extern  int         MV1SetAmbColorScale(                int MHandle, COLOR_F Scale ) ;                                      // モデルのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
  3590. extern  COLOR_F     MV1GetAmbColorScale(                int MHandle ) ;                                                     // モデルのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
  3591. extern  int         MV1GetSemiTransState(               int MHandle ) ;                                                     // モデルに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある  FALSE:ない )
  3592. extern  int         MV1SetOpacityRate(                  int MHandle, float Rate ) ;                                         // モデルの不透明度を設定する( 不透明 1.0f ~ 透明 0.0f )
  3593. extern  float       MV1GetOpacityRate(                  int MHandle ) ;                                                     // モデルの不透明度を取得する( 不透明 1.0f ~ 透明 0.0f )
  3594. extern  int         MV1SetUseZBuffer(                   int MHandle, int Flag ) ;                                           // モデルを描画する際にZバッファを使用するかどうかを設定する
  3595. extern  int         MV1SetWriteZBuffer(                 int MHandle, int Flag ) ;                                           // モデルを描画する際にZバッファに書き込みを行うかどうかを設定する
  3596. extern  int         MV1SetZBufferCmpType(               int MHandle, int CmpType /* DX_CMP_NEVER 等 */ ) ;                 // モデルの描画時のZ値の比較モードを設定する
  3597. extern  int         MV1SetZBias(                        int MHandle, int Bias ) ;                                           // モデルの描画時の書き込むZ値のバイアスを設定する
  3598. extern  int         MV1SetUseVertDifColor(              int MHandle, int UseFlag ) ;                                        // モデルの含まれるメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3599. extern  int         MV1SetUseVertSpcColor(              int MHandle, int UseFlag ) ;                                        // モデルに含まれるメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3600. extern  int         MV1SetSampleFilterMode(             int MHandle, int FilterMode ) ;                                     // モデルのテクスチャのサンプルフィルターモードを変更する( FilterMode は DX_DRAWMODE_NEAREST 等 )
  3601. extern  int         MV1SetMaxAnisotropy(                int MHandle, int MaxAnisotropy ) ;                                  // モデルの異方性フィルタリングの最大次数を設定する
  3602. extern  int         MV1SetWireFrameDrawFlag(            int MHandle, int Flag ) ;                                           // モデルをワイヤーフレームで描画するかどうかを設定する
  3603. extern  int         MV1RefreshVertColorFromMaterial(    int MHandle ) ;                                                     // モデルの頂点カラーを現在設定されているマテリアルのカラーにする
  3604. extern  int         MV1PhysicsCalculation(              int MHandle, float MillisecondTime ) ;                              // モデルの物理演算を指定時間分経過したと仮定して計算する( MillisecondTime で指定する時間の単位はミリ秒 )
  3605. extern  int         MV1PhysicsResetState(               int MHandle ) ;                                                     // モデルの物理演算の状態をリセットする( 位置がワープしたとき用 )
  3606.  
  3607. // アニメーション関係
  3608. extern  int         MV1AttachAnim(                      int MHandle, int AnimIndex, int AnimSrcMHandle = -1 , int NameCheck = TRUE ) ;      // アニメーションをアタッチする( 戻り値  -1:エラー  0以上:アタッチインデックス )
  3609. extern  int         MV1DetachAnim(                      int MHandle, int AttachIndex ) ;                                                    // アニメーションをデタッチする
  3610. extern  int         MV1SetAttachAnimTime(               int MHandle, int AttachIndex, float Time ) ;                                        // アタッチしているアニメーションの再生時間を設定する
  3611. extern  float       MV1GetAttachAnimTime(               int MHandle, int AttachIndex ) ;                                                    // アタッチしているアニメーションの再生時間を取得する
  3612. extern  float       MV1GetAttachAnimTotalTime(          int MHandle, int AttachIndex ) ;                                                    // アタッチしているアニメーションの総時間を得る
  3613. extern  int         MV1SetAttachAnimBlendRate(          int MHandle, int AttachIndex, float Rate = 1.0f ) ;                                 // アタッチしているアニメーションのブレンド率を設定する
  3614. extern  float       MV1GetAttachAnimBlendRate(          int MHandle, int AttachIndex ) ;                                                    // アタッチしているアニメーションのブレンド率を取得する
  3615. extern  int         MV1SetAttachAnimBlendRateToFrame(   int MHandle, int AttachIndex, int FrameIndex, float Rate, int SetChild = TRUE ) ;   // アタッチしているアニメーションのブレンド率を設定する( フレーム単位 )
  3616. extern  float       MV1GetAttachAnimBlendRateToFrame(   int MHandle, int AttachIndex, int FrameIndex ) ;                                    // アタッチしているアニメーションのブレンド率を設定する( フレーム単位 )
  3617. extern  int         MV1GetAttachAnim(                   int MHandle, int AttachIndex ) ;                                                    // アタッチしているアニメーションのアニメーションインデックスを取得する
  3618.  
  3619. extern  int         MV1GetAnimNum(                      int MHandle ) ;                                                                     // アニメーションの数を取得する
  3620. extern  const TCHAR *MV1GetAnimName(                    int MHandle, int AnimIndex ) ;                                                      // 指定番号のアニメーション名を取得する( NULL:エラー )
  3621. extern  int         MV1SetAnimName(                     int MHandle, int AnimIndex, const TCHAR *AnimName ) ;                               // 指定番号のアニメーション名を変更する
  3622. extern  int         MV1GetAnimIndex(                    int MHandle, const TCHAR *AnimName ) ;                                              // 指定名のアニメーション番号を取得する( -1:エラー )
  3623. extern  float       MV1GetAnimTotalTime(                int MHandle, int AnimIndex ) ;                                                      // 指定番号のアニメーションの総時間を得る
  3624. extern  int         MV1GetAnimTargetFrameNum(           int MHandle, int AnimIndex ) ;                                                      // 指定のアニメーションがターゲットとするフレームの数を取得する
  3625. extern  const TCHAR *MV1GetAnimTargetFrameName(         int MHandle, int AnimIndex, int AnimFrameIndex ) ;                                  // 指定のアニメーションがターゲットとするフレームの名前を取得する
  3626. extern  int         MV1GetAnimTargetFrame(              int MHandle, int AnimIndex, int AnimFrameIndex ) ;                                  // 指定のアニメーションがターゲットとするフレームの番号を取得する
  3627. extern  int         MV1GetAnimTargetFrameKeySetNum(     int MHandle, int AnimIndex, int AnimFrameIndex ) ;                                  // 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットの数を取得する
  3628. extern  int         MV1GetAnimTargetFrameKeySet(        int MHandle, int AnimIndex, int AnimFrameIndex, int Index ) ;                       // 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットキーセットインデックスを取得する
  3629.  
  3630. extern  int         MV1GetAnimKeySetNum(                int MHandle ) ;                                                                     // モデルに含まれるアニメーションキーセットの総数を得る
  3631. extern  int         MV1GetAnimKeySetType(               int MHandle, int AnimKeySetIndex ) ;                                                // 指定のアニメーションキーセットのタイプを取得する( MV1_ANIMKEY_TYPE_QUATERNION 等 )
  3632. extern  int         MV1GetAnimKeySetDataType(           int MHandle, int AnimKeySetIndex ) ;                                                // 指定のアニメーションキーセットのデータタイプを取得する( MV1_ANIMKEY_DATATYPE_ROTATE 等 )
  3633. extern  int         MV1GetAnimKeySetTimeType(           int MHandle, int AnimKeySetIndex ) ;                                                // 指定のアニメーションキーセットのキーの時間データタイプを取得する( MV1_ANIMKEY_TIME_TYPE_ONE 等 )
  3634. extern  int         MV1GetAnimKeySetDataNum(            int MHandle, int AnimKeySetIndex ) ;                                                // 指定のアニメーションキーセットのキーの数を取得する
  3635. extern  float       MV1GetAnimKeyDataTime(              int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーの時間を取得する
  3636. extern  FLOAT4      MV1GetAnimKeyDataToQuaternion(      int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する
  3637. extern  FLOAT4      MV1GetAnimKeyDataToQuaternionFromTime( int MHandle, int AnimKeySetIndex, float Time ) ;                                 // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する( 時間指定版 )
  3638. extern  VECTOR      MV1GetAnimKeyDataToVector(          int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する
  3639. extern  VECTOR      MV1GetAnimKeyDataToVectorFromTime(  int MHandle, int AnimKeySetIndex, float Time ) ;                                    // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する( 時間指定版 )
  3640. extern  MATRIX      MV1GetAnimKeyDataToMatrix(          int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する
  3641. extern  MATRIX      MV1GetAnimKeyDataToMatrixFromTime(  int MHandle, int AnimKeySetIndex, float Time ) ;                                    // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する( 時間指定版 )
  3642. extern  float       MV1GetAnimKeyDataToFlat(            int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する
  3643. extern  float       MV1GetAnimKeyDataToFlatFromTime(    int MHandle, int AnimKeySetIndex, float Time ) ;                                    // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する( 時間指定版 )
  3644. extern  float       MV1GetAnimKeyDataToLinear(          int MHandle, int AnimKeySetIndex, int Index ) ;                                     // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する
  3645. extern  float       MV1GetAnimKeyDataToLinearFromTime(  int MHandle, int AnimKeySetIndex, float Time ) ;                                    // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する( 時間指定版 )
  3646.  
  3647. // マテリアル関係
  3648. extern  int         MV1GetMaterialNum(                  int MHandle ) ;                                             // モデルで使用しているマテリアルの数を取得する
  3649. extern  const TCHAR *MV1GetMaterialName(                int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルの名前を取得する
  3650. extern  int         MV1SetMaterialType(                 int MHandle, int MaterialIndex, int Type ) ;                // 指定のマテリアルのタイプを変更する( Type : DX_MATERIAL_TYPE_NORMAL など )
  3651. extern  int         MV1GetMaterialType(                 int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのタイプを取得する( 戻り値 : DX_MATERIAL_TYPE_NORMAL など )
  3652. extern  int         MV1SetMaterialDifColor(             int MHandle, int MaterialIndex, COLOR_F Color ) ;           // 指定のマテリアルのディフューズカラーを設定する
  3653. extern  COLOR_F     MV1GetMaterialDifColor(             int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのディフューズカラーを取得する
  3654. extern  int         MV1SetMaterialSpcColor(             int MHandle, int MaterialIndex, COLOR_F Color ) ;           // 指定のマテリアルのスペキュラカラーを設定する
  3655. extern  COLOR_F     MV1GetMaterialSpcColor(             int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのスペキュラカラーを取得する
  3656. extern  int         MV1SetMaterialEmiColor(             int MHandle, int MaterialIndex, COLOR_F Color ) ;           // 指定のマテリアルのエミッシブカラーを設定する
  3657. extern  COLOR_F     MV1GetMaterialEmiColor(             int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのエミッシブカラーを取得する
  3658. extern  int         MV1SetMaterialAmbColor(             int MHandle, int MaterialIndex, COLOR_F Color ) ;           // 指定のマテリアルのアンビエントカラーを設定する
  3659. extern  COLOR_F     MV1GetMaterialAmbColor(             int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのアンビエントカラーを取得する
  3660. extern  int         MV1SetMaterialSpcPower(             int MHandle, int MaterialIndex, float Power ) ;             // 指定のマテリアルのスペキュラの強さを設定する
  3661. extern  float       MV1GetMaterialSpcPower(             int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのスペキュラの強さを取得する
  3662. extern  int         MV1SetMaterialDifMapTexture(        int MHandle, int MaterialIndex, int TexIndex ) ;            // 指定のマテリアルでディフューズマップとして使用するテクスチャを指定する
  3663. extern  int         MV1GetMaterialDifMapTexture(        int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルでディフューズマップとして使用されているテクスチャのインデックスを取得する
  3664. extern  int         MV1SetMaterialSpcMapTexture(        int MHandle, int MaterialIndex, int TexIndex ) ;            // 指定のマテリアルでスペキュラマップとして使用するテクスチャを指定する
  3665. extern  int         MV1GetMaterialSpcMapTexture(        int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルでスペキュラマップとして使用されているテクスチャのインデックスを取得する
  3666. extern  int         MV1GetMaterialNormalMapTexture(     int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルで法線マップとして使用されているテクスチャのインデックスを取得する
  3667. extern  int         MV1SetMaterialDifGradTexture(       int MHandle, int MaterialIndex, int TexIndex ) ;            // 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを設定する
  3668. extern  int         MV1GetMaterialDifGradTexture(       int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを取得する
  3669. extern  int         MV1SetMaterialSpcGradTexture(       int MHandle, int MaterialIndex, int TexIndex ) ;            // 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを設定する
  3670. extern  int         MV1GetMaterialSpcGradTexture(       int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを取得する
  3671. extern  int         MV1SetMaterialDifGradBlendType(     int MHandle, int MaterialIndex, int BlendType ) ;           // 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
  3672. extern  int         MV1GetMaterialDifGradBlendType(     int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
  3673. extern  int         MV1SetMaterialSpcGradBlendType(     int MHandle, int MaterialIndex, int BlendType ) ;           // 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
  3674. extern  int         MV1GetMaterialSpcGradBlendType(     int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
  3675. extern  int         MV1SetMaterialOutLineWidth(         int MHandle, int MaterialIndex, float Width ) ;             // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する
  3676. extern  float       MV1GetMaterialOutLineWidth(         int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを取得する
  3677. extern  int         MV1SetMaterialOutLineDotWidth(      int MHandle, int MaterialIndex, float Width ) ;             // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する
  3678. extern  float       MV1GetMaterialOutLineDotWidth(      int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを取得する
  3679. extern  int         MV1SetMaterialOutLineColor(         int MHandle, int MaterialIndex, COLOR_F Color ) ;           // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する
  3680. extern  COLOR_F     MV1GetMaterialOutLineColor(         int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を取得する
  3681. extern  int         MV1SetMaterialDrawBlendMode(        int MHandle, int MaterialIndex, int BlendMode ) ;           // 指定のマテリアルの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 )
  3682. extern  int         MV1GetMaterialDrawBlendMode(        int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 )
  3683. extern  int         MV1SetMaterialDrawBlendParam(       int MHandle, int MaterialIndex, int BlendParam ) ;          // 指定のマテリアルの描画ブレンドパラメータを設定する
  3684. extern  int         MV1GetMaterialDrawBlendParam(       int MHandle, int MaterialIndex ) ;                          // 指定のマテリアルの描画ブレンドパラメータを設定する
  3685.  
  3686. // テクスチャ関係
  3687. extern  int         MV1GetTextureNum(                   int MHandle ) ;                                                 // テクスチャの数を取得
  3688. extern  const TCHAR *MV1GetTextureName(                 int MHandle, int TexIndex ) ;                                   // テクスチャの名前を取得
  3689. extern  int         MV1SetTextureColorFilePath(         int MHandle, int TexIndex, const TCHAR *FilePath ) ;            // カラーテクスチャのファイルパスを変更する
  3690. extern  const TCHAR *MV1GetTextureColorFilePath(        int MHandle, int TexIndex ) ;                                   // カラーテクスチャのファイルパスを取得
  3691. extern  int         MV1SetTextureAlphaFilePath(         int MHandle, int TexIndex, const TCHAR *FilePath ) ;            // アルファテクスチャのファイルパスを変更する
  3692. extern  const TCHAR *MV1GetTextureAlphaFilePath(        int MHandle, int TexIndex ) ;                                   // アルファテクスチャのファイルパスを取得
  3693. extern  int         MV1SetTextureGraphHandle(           int MHandle, int TexIndex, int GrHandle, int SemiTransFlag ) ;  // テクスチャで使用するグラフィックハンドルを変更する( GrHandle を -1 にすると解除 )
  3694. extern  int         MV1GetTextureGraphHandle(           int MHandle, int TexIndex ) ;                                   // テクスチャのグラフィックハンドルを取得する
  3695. extern  int         MV1SetTextureAddressMode(           int MHandle, int TexIndex, int AddrUMode, int AddrVMode ) ;     // テクスチャのアドレスモードを設定する( AddUMode の値は DX_TEXADDRESS_WRAP 等 )
  3696. extern  int         MV1GetTextureAddressModeU(          int MHandle, int TexIndex ) ;                                   // テクスチャのU値のアドレスモードを取得する( 戻り値:DX_TEXADDRESS_WRAP 等 )
  3697. extern  int         MV1GetTextureAddressModeV(          int MHandle, int TexIndex ) ;                                   // テクスチャのV値のアドレスモードを取得する( 戻り値:DX_TEXADDRESS_WRAP 等 )
  3698. extern  int         MV1GetTextureWidth(                 int MHandle, int TexIndex ) ;                                   // テクスチャの幅を取得する
  3699. extern  int         MV1GetTextureHeight(                int MHandle, int TexIndex ) ;                                   // テクスチャの高さを取得する
  3700. extern  int         MV1GetTextureSemiTransState(        int MHandle, int TexIndex ) ;                                   // テクスチャに半透明要素があるかどうかを取得する( 戻り値  TRUE:ある  FALSE:ない )
  3701. extern  int         MV1SetTextureBumpImageFlag(         int MHandle, int TexIndex, int Flag ) ;                         // テクスチャで使用している画像がバンプマップかどうかを設定する
  3702. extern  int         MV1GetTextureBumpImageFlag(         int MHandle, int TexIndex ) ;                                   // テクスチャがバンプマップかどうかを取得する( 戻り値  TRUE:バンプマップ  FALSE:違う )
  3703. extern  int         MV1SetTextureBumpImageNextPixelLength( int MHandle, int TexIndex, float Length ) ;                  // バンプマップ画像の場合の隣のピクセルとの距離を設定する
  3704. extern  float       MV1GetTextureBumpImageNextPixelLength( int MHandle, int TexIndex ) ;                                // バンプマップ画像の場合の隣のピクセルとの距離を取得する
  3705. extern  int         MV1SetTextureSampleFilterMode(      int MHandle, int TexIndex, int FilterMode ) ;                   // テクスチャのフィルタリングモードを設定する
  3706. extern  int         MV1GetTextureSampleFilterMode(      int MHandle, int TexIndex ) ;                                   // テクスチャのフィルタリングモードを取得する( 戻り値  DX_DRAWMODE_BILINEAR等 )
  3707. extern  int         MV1LoadTexture(                     const TCHAR *FilePath ) ;                                       // 3Dモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む( 戻り値  -1:エラー  0以上:グラフィックハンドル )
  3708.  
  3709. // フレーム関係
  3710. extern  int         MV1GetFrameNum(                     int MHandle ) ;                                                         // フレームの数を取得する
  3711. extern  int         MV1SearchFrame(                     int MHandle, const TCHAR *FrameName ) ;                                 // フレームの名前からモデル中のフレームのフレームインデックスを取得する( 無かった場合は戻り値が-1 )
  3712. extern  int         MV1SearchFrameChild(                int MHandle, int FrameIndex = -1 , const TCHAR *ChildName = NULL ) ;    // フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する( 名前指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する )( 無かった場合は戻り値が-1 )
  3713. extern  const TCHAR *MV1GetFrameName(                   int MHandle, int FrameIndex ) ;                                         // 指定のフレームの名前を取得する( エラーの場合は戻り値が NULL )
  3714. extern  int         MV1GetFrameParent(                  int MHandle, int FrameIndex ) ;                                         // 指定のフレームの親フレームのインデックスを得る( 親がいない場合は -2 が返る )
  3715. extern  int         MV1GetFrameChildNum(                int MHandle, int FrameIndex = -1 ) ;                                    // 指定のフレームの子フレームの数を取得する( FrameIndex を -1 にすると親を持たないフレームの数が返ってくる )
  3716. extern  int         MV1GetFrameChild(                   int MHandle, int FrameIndex = -1 , int ChildIndex = 0 ) ;               // 指定のフレームの子フレームのフレームインデックスを取得する( 番号指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する )( エラーの場合は戻り値が-1 )
  3717. extern  VECTOR      MV1GetFramePosition(                int MHandle, int FrameIndex ) ;                                         // 指定のフレームの座標を取得する
  3718. extern  MATRIX      MV1GetFrameBaseLocalMatrix(         int MHandle, int FrameIndex ) ;                                         // 指定のフレームの初期状態での座標変換行列を取得する
  3719. extern  MATRIX      MV1GetFrameLocalMatrix(             int MHandle, int FrameIndex ) ;                                         // 指定のフレームの座標変換行列を取得する
  3720. extern  MATRIX      MV1GetFrameLocalWorldMatrix(        int MHandle, int FrameIndex ) ;                                         // 指定のフレームのローカル座標からワールド座標に変換する行列を得る
  3721. extern  int         MV1SetFrameUserLocalMatrix(         int MHandle, int FrameIndex, MATRIX Matrix ) ;                          // 指定のフレームの座標変換行列を設定する
  3722. extern  int         MV1ResetFrameUserLocalMatrix(       int MHandle, int FrameIndex ) ;                                         // 指定のフレームの座標変換行列をデフォルトに戻す
  3723. extern  VECTOR      MV1GetFrameMaxVertexLocalPosition(  int MHandle, int FrameIndex ) ;                                         // 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る
  3724. extern  VECTOR      MV1GetFrameMinVertexLocalPosition(  int MHandle, int FrameIndex ) ;                                         // 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る
  3725. extern  VECTOR      MV1GetFrameAvgVertexLocalPosition(  int MHandle, int FrameIndex ) ;                                         // 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る
  3726. extern  int         MV1GetFrameTriangleNum(             int MHandle, int FrameIndex ) ;                                         // 指定のフレームに含まれるポリゴンの数を取得する
  3727. extern  int         MV1GetFrameMeshNum(                 int MHandle, int FrameIndex ) ;                                         // 指定のフレームが持つメッシュの数を取得する
  3728. extern  int         MV1GetFrameMesh(                    int MHandle, int FrameIndex, int Index ) ;                              // 指定のフレームが持つメッシュのメッシュインデックスを取得する
  3729. extern  int         MV1SetFrameVisible(                 int MHandle, int FrameIndex, int VisibleFlag ) ;                        // 指定のフレームの表示、非表示状態を変更する( TRUE:表示  FALSE:非表示 )
  3730. extern  int         MV1GetFrameVisible(                 int MHandle, int FrameIndex ) ;                                         // 指定のフレームの表示、非表示状態を取得する( TRUE:表示  FALSE:非表示 )
  3731. extern  int         MV1SetFrameDifColorScale(           int MHandle, int FrameIndex, COLOR_F Scale ) ;                          // 指定のフレームのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
  3732. extern  int         MV1SetFrameSpcColorScale(           int MHandle, int FrameIndex, COLOR_F Scale ) ;                          // 指定のフレームのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
  3733. extern  int         MV1SetFrameEmiColorScale(           int MHandle, int FrameIndex, COLOR_F Scale ) ;                          // 指定のフレームのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
  3734. extern  int         MV1SetFrameAmbColorScale(           int MHandle, int FrameIndex, COLOR_F Scale ) ;                          // 指定のフレームのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
  3735. extern  COLOR_F     MV1GetFrameDifColorScale(           int MHandle, int FrameIndex ) ;                                         // 指定のフレームのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
  3736. extern  COLOR_F     MV1GetFrameSpcColorScale(           int MHandle, int FrameIndex ) ;                                         // 指定のフレームのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
  3737. extern  COLOR_F     MV1GetFrameEmiColorScale(           int MHandle, int FrameIndex ) ;                                         // 指定のフレームのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
  3738. extern  COLOR_F     MV1GetFrameAmbColorScale(           int MHandle, int FrameIndex ) ;                                         // 指定のフレームのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
  3739. extern  int         MV1GetFrameSemiTransState(          int MHandle, int FrameIndex ) ;                                         // 指定のフレームに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある  FALSE:ない )
  3740. extern  int         MV1SetFrameOpacityRate(             int MHandle, int FrameIndex, float Rate ) ;                             // 指定のフレームの不透明度を設定する( 不透明 1.0f ~ 透明 0.0f )
  3741. extern  float       MV1GetFrameOpacityRate(             int MHandle, int FrameIndex ) ;                                         // 指定のフレームの不透明度を取得する( 不透明 1.0f ~ 透明 0.0f )
  3742. extern  int         MV1SetFrameBaseVisible(             int MHandle, int FrameIndex, int VisibleFlag ) ;                        // 指定のフレームの初期表示状態を設定する( TRUE:表示  FALSE:非表示 )
  3743. extern  int         MV1GetFrameBaseVisible(             int MHandle, int FrameIndex ) ;                                         // 指定のフレームの初期表示状態を取得する( TRUE:表示  FALSE:非表示 )
  3744. extern  int         MV1SetFrameTextureAddressTransform( int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate ) ;   // 指定のフレームのテクスチャ座標変換パラメータを設定する
  3745. extern  int         MV1SetFrameTextureAddressTransformMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ;                    // 指定のフレームのテクスチャ座標変換行列をセットする
  3746. extern  int         MV1ResetFrameTextureAddressTransform( int MHandle, int FrameIndex ) ;                                       // 指定のフレームのテクスチャ座標変換パラメータをリセットする
  3747.  
  3748. // メッシュ関係
  3749. extern  int         MV1GetMeshNum(                      int MHandle ) ;                                                         // モデルに含まれるメッシュの数を取得する
  3750. extern  int         MV1GetMeshMaterial(                 int MHandle, int MeshIndex ) ;                                          // 指定メッシュが使用しているマテリアルのインデックスを取得する
  3751. extern  int         MV1GetMeshTriangleNum(              int MHandle, int MeshIndex ) ;                                          // 指定メッシュに含まれる三角形ポリゴンの数を取得する
  3752. extern  int         MV1SetMeshVisible(                  int MHandle, int MeshIndex, int VisibleFlag ) ;                         // 指定メッシュの表示、非表示状態を変更する( TRUE:表示  FALSE:非表示 )
  3753. extern  int         MV1GetMeshVisible(                  int MHandle, int MeshIndex ) ;                                          // 指定メッシュの表示、非表示状態を取得する( TRUE:表示  FALSE:非表示 )
  3754. extern  int         MV1SetMeshDifColorScale(            int MHandle, int MeshIndex, COLOR_F Scale ) ;                           // 指定のメッシュのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
  3755. extern  int         MV1SetMeshSpcColorScale(            int MHandle, int MeshIndex, COLOR_F Scale ) ;                           // 指定のメッシュのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
  3756. extern  int         MV1SetMeshEmiColorScale(            int MHandle, int MeshIndex, COLOR_F Scale ) ;                           // 指定のメッシュのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
  3757. extern  int         MV1SetMeshAmbColorScale(            int MHandle, int MeshIndex, COLOR_F Scale ) ;                           // 指定のメッシュのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
  3758. extern  COLOR_F     MV1GetMeshDifColorScale(            int MHandle, int MeshIndex ) ;                                          // 指定のメッシュのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
  3759. extern  COLOR_F     MV1GetMeshSpcColorScale(            int MHandle, int MeshIndex ) ;                                          // 指定のメッシュのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
  3760. extern  COLOR_F     MV1GetMeshEmiColorScale(            int MHandle, int MeshIndex ) ;                                          // 指定のメッシュのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
  3761. extern  COLOR_F     MV1GetMeshAmbColorScale(            int MHandle, int MeshIndex ) ;                                          // 指定のメッシュのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
  3762. extern  int         MV1SetMeshOpacityRate(              int MHandle, int MeshIndex, float Rate ) ;                              // 指定のメッシュの不透明度を設定する( 不透明 1.0f ~ 透明 0.0f )
  3763. extern  float       MV1GetMeshOpacityRate(              int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの不透明度を取得する( 不透明 1.0f ~ 透明 0.0f )
  3764. extern  int         MV1SetMeshDrawBlendMode(            int MHandle, int MeshIndex, int BlendMode ) ;                           // 指定のメッシュの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 )
  3765. extern  int         MV1SetMeshDrawBlendParam(           int MHandle, int MeshIndex, int BlendParam ) ;                          // 指定のメッシュの描画ブレンドパラメータを設定する
  3766. extern  int         MV1GetMeshDrawBlendMode(            int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 )
  3767. extern  int         MV1GetMeshDrawBlendParam(           int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの描画ブレンドパラメータを設定する
  3768. extern  int         MV1SetMeshBaseVisible(              int MHandle, int MeshIndex, int VisibleFlag ) ;                         // 指定のメッシュの初期表示状態を設定する( TRUE:表示  FALSE:非表示 )
  3769. extern  int         MV1GetMeshBaseVisible(              int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの初期表示状態を取得する( TRUE:表示  FALSE:非表示 )
  3770. extern  int         MV1SetMeshBackCulling(              int MHandle, int MeshIndex, int CullingFlag ) ;                         // 指定のメッシュのバックカリングを行うかどうかを設定する( DX_CULLING_LEFT 等 )
  3771. extern  int         MV1GetMeshBackCulling(              int MHandle, int MeshIndex ) ;                                          // 指定のメッシュのバックカリングを行うかどうかを取得する( DX_CULLING_LEFT 等 )
  3772. extern  VECTOR      MV1GetMeshMaxPosition(              int MHandle, int MeshIndex ) ;                                          // 指定のメッシュに含まれるポリゴンの最大ローカル座標を取得する
  3773. extern  VECTOR      MV1GetMeshMinPosition(              int MHandle, int MeshIndex ) ;                                          // 指定のメッシュに含まれるポリゴンの最小ローカル座標を取得する
  3774. extern  int         MV1GetMeshTListNum(                 int MHandle, int MeshIndex ) ;                                          // 指定のメッシュに含まれるトライアングルリストの数を取得する
  3775. extern  int         MV1GetMeshTList(                    int MHandle, int MeshIndex, int Index ) ;                               // 指定のメッシュに含まれるトライアングルリストのインデックスを取得する
  3776. extern  int         MV1GetMeshSemiTransState(           int MHandle, int MeshIndex ) ;                                          // 指定のメッシュに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある  FALSE:ない )
  3777. extern  int         MV1SetMeshUseVertDifColor(          int MHandle, int MeshIndex, int UseFlag ) ;                             // 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3778. extern  int         MV1SetMeshUseVertSpcColor(          int MHandle, int MeshIndex, int UseFlag ) ;                             // 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3779. extern  int         MV1GetMeshUseVertDifColor(          int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかの設定を取得する( 戻り値  TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3780. extern  int         MV1GetMeshUseVertSpcColor(          int MHandle, int MeshIndex ) ;                                          // 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかの設定を取得する( 戻り値  TRUE:マテリアルカラーの代わりに使用する  FALSE:マテリアルカラーを使用する )
  3781.  
  3782. // トライアングルリスト関係
  3783. extern  int         MV1GetTriangleListNum(              int MHandle ) ;                                                         // モデルに含まれるトライアングルリストの数を取得する
  3784. extern  int         MV1GetTriangleListVertexType(       int MHandle, int TListIndex ) ;                                         // 指定のトライアングルリストの頂点データタイプを取得する( DX_MV1_VERTEX_TYPE_1FRAME 等 )
  3785. extern  int         MV1GetTriangleListPolygonNum(       int MHandle, int TListIndex ) ;                                         // 指定のトライアングルリストに含まれるポリゴンの数を取得する
  3786. extern  int         MV1GetTriangleListVertexNum(        int MHandle, int TListIndex ) ;                                         // 指定のトライアングルリストに含まれる頂点データの数を取得する
  3787.  
  3788. // コリジョン関係
  3789. extern  int                         MV1SetupCollInfo(               int MHandle, int FrameIndex = -1 , int XDivNum = 32 , int YDivNum = 8 , int ZDivNum = 32 ) ;    // コリジョン情報を構築する
  3790. extern  int                         MV1TerminateCollInfo(           int MHandle, int FrameIndex = -1 ) ;                                                            // コリジョン情報の後始末
  3791. extern  int                         MV1RefreshCollInfo(             int MHandle, int FrameIndex = -1 ) ;                                                            // コリジョン情報を更新する
  3792. extern  MV1_COLL_RESULT_POLY        MV1CollCheck_Line(              int MHandle, int FrameIndex, VECTOR PosStart, VECTOR PosEnd ) ;                                 // 線とモデルの当たり判定
  3793. extern  MV1_COLL_RESULT_POLY_DIM    MV1CollCheck_LineDim(           int MHandle, int FrameIndex, VECTOR PosStart, VECTOR PosEnd ) ;                                 // 線とモデルの当たり判定( 戻り値が MV1_COLL_RESULT_POLY_DIM )
  3794. extern  MV1_COLL_RESULT_POLY_DIM    MV1CollCheck_Sphere(            int MHandle, int FrameIndex, VECTOR CenterPos, float r ) ;                                      // 球とモデルの当たり判定
  3795. extern  MV1_COLL_RESULT_POLY_DIM    MV1CollCheck_Capsule(           int MHandle, int FrameIndex, VECTOR Pos1, VECTOR Pos2, float r ) ;                              // カプセルとモデルの当たり判定
  3796. extern  MV1_COLL_RESULT_POLY        MV1CollCheck_GetResultPoly(     MV1_COLL_RESULT_POLY_DIM ResultPolyDim, int PolyNo ) ;                                          // コリジョン結果ポリゴン配列から指定番号のポリゴン情報を取得する
  3797. extern  int                         MV1CollResultPolyDimTerminate(  MV1_COLL_RESULT_POLY_DIM ResultPolyDim ) ;                                                      // コリジョン結果ポリゴン配列の後始末をする
  3798.  
  3799. // 参照用メッシュ関係
  3800. extern  int                 MV1SetupReferenceMesh(      int MHandle, int FrameIndex, int IsTransform ) ;                        // 参照用メッシュのセットアップ
  3801. extern  int                 MV1TerminateReferenceMesh(  int MHandle, int FrameIndex, int IsTransform ) ;                        // 参照用メッシュの後始末
  3802. extern  int                 MV1RefreshReferenceMesh(    int MHandle, int FrameIndex, int IsTransform ) ;                        // 参照用メッシュの更新
  3803. extern  MV1_REF_POLYGONLIST MV1GetReferenceMesh(        int MHandle, int FrameIndex, int IsTransform ) ;                        // 参照用メッシュを取得する
  3804.  
  3805. #endif // DX_NON_MODEL
  3806.  
  3807. #define DX_FUNCTION_END
  3808.  
  3809. }
  3810.  
  3811. // ネームスペース DxLib を使用する ------------------------------------------------------
  3812. using namespace DxLib ;
  3813.  
  3814. // DXライブラリ内部でのみ使用するヘッダファイルのインクルード -------------------------
  3815.  
  3816. #ifdef __DX_MAKE
  3817. //  #include "DxStatic.h"
  3818. #endif
  3819.  
  3820. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement