DXフレームワーク　リファレンス・マニュアル 0.01 DXフレームワークのリファレンスです。詳細は公式wiki

- メインページ
- 関連ページ
- クラス
- ファイル

- ファイル一覧

DxLib.h
1 // -------------------------------------------------------------------------------
2 //
3 // ＤＸライブラリ ヘッダファイル
4 //
5 // Ver 3.09d
6 //
7 // -------------------------------------------------------------------------------
8
9 #ifndef __DXLIB
10 #define __DXLIB
11
12 #include "DxCompileConfig.h"
13 #include "DxDirectX.h"
14
15 // ＤＸライブラリのバージョン
16 #define DXLIB_VERSION 0x309d
17 #define DXLIB_VERSION_STR _T( "3.09d" )
18
19 // 設定 -----------------------------------------------------------------------
20
21 // ＤＸライブラリに必要な 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" ) // ＤＸライブラリ使用指定
46 #pragma comment( lib, "DxUseCLibW_x64_d.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
47 #else
48 #pragma comment( lib, "DxLib_x64_d.lib" ) // ＤＸライブラリ使用指定
49 #pragma comment( lib, "DxUseCLib_x64_d.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
50 #endif
51 #else
52 #pragma comment( lib, "DxDrawFunc_x64.lib" ) // 描画部分の抜き出し
53 #ifdef UNICODE
54 #pragma comment( lib, "DxLibW_x64.lib" ) // ＤＸライブラリ使用指定
55 #pragma comment( lib, "DxUseCLibW_x64.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
56 #else
57 #pragma comment( lib, "DxLib_x64.lib" ) // ＤＸライブラリ使用指定
58 #pragma comment( lib, "DxUseCLib_x64.lib" ) // 標準Ｃライブラリを使用する部分の 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" ) // ＤＸライブラリ使用指定
66 #pragma comment( lib, "DxUseCLibW_d.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
67 #else
68 #pragma comment( lib, "DxLib_d.lib" ) // ＤＸライブラリ使用指定
69 #pragma comment( lib, "DxUseCLib_d.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
70 #endif
71 #else
72 #pragma comment( lib, "DxDrawFunc.lib" ) // 描画部分の抜き出し
73 #ifdef UNICODE
74 #pragma comment( lib, "DxLibW.lib" ) // ＤＸライブラリ使用指定
75 #pragma comment( lib, "DxUseCLibW.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
76 #else
77 #pragma comment( lib, "DxLib.lib" ) // ＤＸライブラリ使用指定
78 #pragma comment( lib, "DxUseCLib.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
79 #endif
80 #endif
81 #endif
82 #else
83 #pragma comment( lib, "DxDrawFunc.lib" ) // 描画部分の抜き出し
84 #ifdef UNICODE
85 #pragma comment( lib, "DxLibW.lib" ) // ＤＸライブラリ使用指定
86 #pragma comment( lib, "DxUseCLibW.lib" ) // 標準Ｃライブラリを使用する部分の lib ファイルの使用指定
87 #else
88 #pragma comment( lib, "DxLib.lib" ) // ＤＸライブラリ使用指定
89 #pragma comment( lib, "DxUseCLib.lib" ) // 標準Ｃライブラリを使用する部分の 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" ) // ＩＭＥ操作用ライブラリ
124 #endif
125 #ifndef DX_NON_ACM
126 //#pragma comment( lib, "msacm32.lib" ) // ＡＣＭ操作用ライブラリ
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" ) // ＰＮＧライブラリ
186 #pragma comment( lib, "zlib_x64_d.lib" )
187 #else
188 #pragma comment( lib, "libpng_x64.lib" ) // ＰＮＧライブラリ
189 #pragma comment( lib, "zlib_x64.lib" )
190 #endif
191 #else
192 #ifdef _DEBUG
193 #pragma comment( lib, "libpng_d.lib" ) // ＰＮＧライブラリ
194 #pragma comment( lib, "zlib_d.lib" )
195 #else
196 #pragma comment( lib, "libpng.lib" ) // ＰＮＧライブラリ
197 #pragma comment( lib, "zlib.lib" )
198 #endif
199 #endif
200 #else
201 #pragma comment( lib, "libpng.lib" ) // ＰＮＧライブラリ
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" ) // ＪＰＥＧライブラリ
210 #else
211 #pragma comment( lib, "libjpeg_x64.lib" ) // ＪＰＥＧライブラリ
212 #endif
213 #else
214 #ifdef _DEBUG
215 #pragma comment( lib, "libjpeg_d.lib" ) // ＪＰＥＧライブラリ
216 #else
217 #pragma comment( lib, "libjpeg.lib" ) // ＪＰＥＧライブラリ
218 #endif
219 #endif
220 #else
221 #pragma comment( lib, "libjpeg.lib" ) // ＪＰＥＧライブラリ
222 #endif
223 #endif
224 #ifndef DX_NON_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 // ＯｇｇＴｈｅｏｒａライブラリ
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) // ２Ｄサーフェスデータの最大数( ハンドルエラーチェックのマスクに使用しているので 65536 以下の 2 のべき乗にして下さい )
311 #define MAX_3DSURFACE_NUM (65536) // ３Ｄサーフェスデータの最大数( ハンドルエラーチェックのマスクに使用しているので 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_MSound_NUM (32768) // 同時に持てるサウンドハンドルの最大数
317 #define MAX_SOFTMSound_NUM (8192) // 同時に持てるソフトウエアサウンドハンドルの最大数
318 #define MAX_MMusic_NUM (256) // 同時に持てるミュージックハンドルの最大数
319 #define MAX_MOVIE_NUM (100) // 同時に持てるムービーハンドルの最大数
320 #define MAX_MASK_NUM (512) // 同時に持てるマスクハンドルの最大数
321 #define MAX_MFont_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) // 同時に持てる３Ｄモデル基本データハンドルの最大数
327 #define MAX_MODEL_NUM (32768) // 同時に持てる３Ｄモデルデータハンドルの最大数
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_MFont_SIZE (16) // フォントのデフォルトのサイズ
345 #define DEFAULT_MFont_THINCK (6) // フォントのデフォルトの太さ
346 #define DEFAULT_MFont_TYPE ( DX_MFontTYPE_NORMAL ) // フォントのデフォルトの形態
347 #define DEFAULT_MFont_EDGESIZE (1) // フォントのデフォルトの太さ
348
349 #define MFont_CACHE_MAXNUM (2024) // フォントキャッシュに格納できる最大文字数
350 #define MFont_CACHE_MEMORYSIZE (0x50000) // フォントキャッシュの最大容量
351 #define MFont_CACHE_MAX_YLENGTH (0x4000) // フォントキャッシュサーフェスの最大縦幅
352
353 #define MAX_USERIMAGEREAD_FUNCNUM (10) // ユーザーが登録できるグラフィックロード関数の最大数
354
355
356 // ＷＩＮＤＯＷＳのバージョンマクロ
357 #define DX_WINDOWSVERSION_31 (0x000)
358 #define DX_WINDOWSVERSION_95 (0x001)
359 #define DX_WINDOWSVERSION_98 (0x002)
360 #define DX_WINDOWSVERSION_ME (0x003)
361 #define DX_WINDOWSVERSION_NT31 (0x104)
362 #define DX_WINDOWSVERSION_NT40 (0x105)
363 #define DX_WINDOWSVERSION_2000 (0x106)
364 #define DX_WINDOWSVERSION_XP (0x107)
365 #define DX_WINDOWSVERSION_VISTA (0x108)
366 #define DX_WINDOWSVERSION_7 (0x109)
367 #define DX_WINDOWSVERSION_NT_TYPE (0x100)
368
369 // ＤｉｒｅｃｔＸのバージョンマクロ
370 #define DX_DIRECTXVERSION_NON (0)
371 #define DX_DIRECTXVERSION_1 (0x10000)
372 #define DX_DIRECTXVERSION_2 (0x20000)
373 #define DX_DIRECTXVERSION_3 (0x30000)
374 #define DX_DIRECTXVERSION_4 (0x40000)
375 #define DX_DIRECTXVERSION_5 (0x50000)
376 #define DX_DIRECTXVERSION_6 (0x60000)
377 #define DX_DIRECTXVERSION_6_1 (0x60100)
378 #define DX_DIRECTXVERSION_7 (0x70000)
379 #define DX_DIRECTXVERSION_8 (0x80000)
380 #define DX_DIRECTXVERSION_8_1 (0x80100)
381
382 // 文字セット
383 #define DX_CHARSET_DEFAULT (0) // デフォルト文字セット
384 #define DX_CHARSET_SHFTJIS (1) // 日本語文字セット
385 #define DX_CHARSET_HANGEUL (2) // 韓国語文字セット
386 #define DX_CHARSET_BIG5 (3) // 繁体文字セット
387 #define DX_CHARSET_GB2312 (4) // 簡体文字セット
388
389 // ＭＩＤＩの再生モード定義
390 #define DX_MIDIMODE_MCI (0) // ＭＣＩによる再生
391 #define DX_MIDIMODE_DM (1) // ＤｉｒｅｃｔＭｕｓｉｃによる再生
392
393 // 描画モード定義
394 #define DX_DRAWMODE_NEAREST (0) // ネアレストネイバー法で描画
395 #define DX_DRAWMODE_BILINEAR (1) // バイリニア法で描画する
396 #define DX_DRAWMODE_ANISOTROPIC (2) // 異方性フィルタリング法で描画する
397 #define DX_DRAWMODE_OTHER (3) // それ以外
398
399 // フォントのタイプ
400 #define DX_MFontTYPE_NORMAL (0) // ノーマルフォント
401 #define DX_MFontTYPE_EDGE (1) // エッジつきフォント
402 #define DX_MFontTYPE_ANTIALIASING (2) // アンチエイリアスフォント
403 #define DX_MFontTYPE_ANTIALIASING_EDGE (3) // アンチエイリアス＆エッジ付きフォント
404
405 // 描画ブレンドモード定義
406 #define DX_BLENDMODE_NOBLEND (0) // ノーブレンド
407 #define DX_BLENDMODE_ALPHA (1) // αブレンド
408 #define DX_BLENDMODE_ADD (2) // 加算ブレンド
409 #define DX_BLENDMODE_SUB (3) // 減算ブレンド
410 #define DX_BLENDMODE_MUL (4) // 乗算ブレンド
411 // (内部処理用)
412 #define DX_BLENDMODE_SUB2 (5) // 内部処理用減算ブレンド子１
413 //#define DX_BLENDMODE_BLINEALPHA (7) // 境界線ぼかし
414 #define DX_BLENDMODE_XOR (6) // XORブレンド( ソフトウエアレンダリングモードでのみ有効 )
415 #define DX_BLENDMODE_DESTCOLOR (8) // カラーは更新されない
416 #define DX_BLENDMODE_INVDESTCOLOR (9) // 描画先の色の反転値を掛ける
417 #define DX_BLENDMODE_INVSRC (10) // 描画元の色を反転する
418 #define DX_BLENDMODE_MULA (11) // アルファチャンネル考慮付き乗算ブレンド
419 #define DX_BLENDMODE_ALPHA_X4 (12) // αブレンドの描画元の輝度を最大４倍にできるモード
420 #define DX_BLENDMODE_ADD_X4 (13) // 加算ブレンドの描画元の輝度を最大４倍にできるモード
421 #define DX_BLENDMODE_SRCCOLOR (14) // 描画元のカラーでそのまま描画される
422 #define DX_BLENDMODE_HALF_ADD (15) // 半加算ブレンド
423
424 // 画像合成タイプ
425 #define DX_BLENDGRAPHTYPE_NORMAL (0) // 通常合成
426 #define DX_BLENDGRAPHTYPE_WIPE (1) // ワイプ処理
427 #define DX_BLENDGRAPHTYPE_ALPHA (2) // ブレンド画像のα値と元画像のα値を掛け合わせる
428
429 // グラフィックフィルタータイプ
430 #define DX_GRAPH_FILTER_MONO (0) // モノトーンフィルタ
431 #define DX_GRAPH_FILTER_GAUSS (1) // ガウスフィルタ
432 #define DX_GRAPH_FILTER_DOWN_SCALE (2) // 縮小フィルタ
433 #define DX_GRAPH_FILTER_BRIGHT_CLIP (3) // 明るさクリップフィルタ
434 #define DX_GRAPH_FILTER_HSB (4) // 色相・彩度・明度フィルタ
435 #define DX_GRAPH_FILTER_INVERT (5) // 階調の反転フィルタ
436 #define DX_GRAPH_FILTER_LEVEL (6) // レベル補正フィルタ
437 #define DX_GRAPH_FILTER_TWO_COLOR (7) // ２階調化フィルタ
438 #define DX_GRAPH_FILTER_GRADIENT_MAP (8) // グラデーションマップフィルタ
439 #define DX_GRAPH_FILTER_PREMUL_ALPHA (9) // 通常のアルファチャンネル付き画像を乗算済みアルファ画像に変換するフィルタ
440 #define DX_GRAPH_FILTER_NUM (10)
441
442 // グラフィックブレンドタイプ
443 #define DX_GRAPH_BLEND_NORMAL (0) // 通常
444 #define DX_GRAPH_BLEND_RGBA_SELECT_MIX (1) // RGBAの要素を選択して合成
445 #define DX_GRAPH_BLEND_MULTIPLE (2) // 乗算
446 #define DX_GRAPH_BLEND_DIFFERENCE (3) // 減算
447 #define DX_GRAPH_BLEND_ADD (4) // 加算
448 #define DX_GRAPH_BLEND_SCREEN (5) // スクリーン
449 #define DX_GRAPH_BLEND_OVERLAY (6) // オーバーレイ
450 #define DX_GRAPH_BLEND_DODGE (7) // 覆い焼き
451 #define DX_GRAPH_BLEND_BURN (8) // 焼き込み
452 #define DX_GRAPH_BLEND_DARKEN (9) // 比較(暗)
453 #define DX_GRAPH_BLEND_LIGHTEN (10) // 比較(明)
454 #define DX_GRAPH_BLEND_SOFTLIGHT (11) // ソフトライト
455 #define DX_GRAPH_BLEND_HARDLIGHT (12) // ハードライト
456 #define DX_GRAPH_BLEND_EXCLUSION (13) // 除外
457 #define DX_GRAPH_BLEND_NORMAL_ALPHACH (14) // αチャンネル付き画像の通常合成
458 #define DX_GRAPH_BLEND_ADD_ALPHACH (15) // αチャンネル付き画像の加算合成
459 #define DX_GRAPH_BLEND_MULTIPLE_A_ONLY (16) // アルファチャンネルのみの乗算
460 #define DX_GRAPH_BLEND_NUM (17)
461
462 // DX_GRAPH_BLEND_RGBA_SELECT_MIX 用の色選択用定義
463 #define DX_RGBA_SELECT_SRC_R (0) // 元画像の赤成分
464 #define DX_RGBA_SELECT_SRC_G (1) // 元画像の緑成分
465 #define DX_RGBA_SELECT_SRC_B (2) // 元画像の青成分
466 #define DX_RGBA_SELECT_SRC_A (3) // 元画像のα成分
467 #define DX_RGBA_SELECT_BLEND_R (4) // ブレンド画像の赤成分
468 #define DX_RGBA_SELECT_BLEND_G (5) // ブレンド画像の緑成分
469 #define DX_RGBA_SELECT_BLEND_B (6) // ブレンド画像の青成分
470 #define DX_RGBA_SELECT_BLEND_A (7) // ブレンド画像のα成分
471
472 // ポリゴンカリングモード
473 #define DX_CULLING_NONE (0) // カリングなし
474 #define DX_CULLING_LEFT (1) // 背面を左回りでカリング
475 #define DX_CULLING_RIGHT (2) // 背面を右回りでカリング
476
477 // クリッピング方向
478 #define DX_CAMERACLIP_LEFT (0x01) // 画面左方向にクリップ
479 #define DX_CAMERACLIP_RIGHT (0x02) // 画面右方向にクリップ
480 #define DX_CAMERACLIP_BOTTOM (0x04) // 画面下方向にクリップ
481 #define DX_CAMERACLIP_TOP (0x08) // 画面上方向にクリップ
482 #define DX_CAMERACLIP_BACK (0x10) // 画面後方向にクリップ
483 #define DX_CAMERACLIP_FRONT (0x20) // 画面前方向にクリップ
484
485 // MV1モデルの頂点タイプ
486 #define DX_MV1_VERTEX_TYPE_1FRAME (0) // １フレームの影響を受ける頂点
487 #define DX_MV1_VERTEX_TYPE_4FRAME (1) // １〜４フレームの影響を受ける頂点
488 #define DX_MV1_VERTEX_TYPE_8FRAME (2) // ５〜８フレームの影響を受ける頂点
489 #define DX_MV1_VERTEX_TYPE_FREE_FRAME (3) // ９フレーム以上の影響を受ける頂点
490 #define DX_MV1_VERTEX_TYPE_NMAP_1FRAME (4) // 法線マップ用の情報が含まれる１フレームの影響を受ける頂点
491 #define DX_MV1_VERTEX_TYPE_NMAP_4FRAME (5) // 法線マップ用の情報が含まれる１〜４フレームの影響を受ける頂点
492 #define DX_MV1_VERTEX_TYPE_NMAP_8FRAME (6) // 法線マップ用の情報が含まれる５〜８フレームの影響を受ける頂点
493 #define DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME (7) // 法線マップ用の情報が含まれる９フレーム以上の影響を受ける頂点
494 #define DX_MV1_VERTEX_TYPE_NUM (8) // 頂点タイプの数
495
496 // メッシュの種類
497 #define DX_MV1_MESHCATEGORY_NORMAL (0) // 普通のメッシュ
498 #define DX_MV1_MESHCATEGORY_OUTLINE (1) // 輪郭線描画用メッシュ
499 #define DX_MV1_MESHCATEGORY_OUTLINE_ORIG_SHADER (2) // 輪郭線描画用メッシュ( オリジナルシェーダーでの描画用 )
500 #define DX_MV1_MESHCATEGORY_NUM (3) // メッシュの種類の数
501
502 // MV1ファイルの保存タイプ
503 #define MV1_SAVETYPE_MESH (0x0001) // メッシュ情報のみ保存
504 #define MV1_SAVETYPE_ANIM (0x0002) // アニメーション情報のみ保存
505 #define MV1_SAVETYPE_NORMAL ( MV1_SAVETYPE_MESH | MV1_SAVETYPE_ANIM ) // 通常保存
506
507 // アニメーションキーデータタイプ
508 #define MV1_ANIMKEY_DATATYPE_ROTATE (0) // 回転
509 #define MV1_ANIMKEY_DATATYPE_ROTATE_X (1) // 回転Ｘ
510 #define MV1_ANIMKEY_DATATYPE_ROTATE_Y (2) // 回転Ｙ
511 #define MV1_ANIMKEY_DATATYPE_ROTATE_Z (3) // 回転Ｚ
512 #define MV1_ANIMKEY_DATATYPE_SCALE (5) // 拡大
513 #define MV1_ANIMKEY_DATATYPE_SCALE_X (6) // スケールＸ
514 #define MV1_ANIMKEY_DATATYPE_SCALE_Y (7) // スケールＹ
515 #define MV1_ANIMKEY_DATATYPE_SCALE_Z (8) // スケールＺ
516 #define MV1_ANIMKEY_DATATYPE_TRANSLATE (10) // 平行移動
517 #define MV1_ANIMKEY_DATATYPE_TRANSLATE_X (11) // 平行移動Ｘ
518 #define MV1_ANIMKEY_DATATYPE_TRANSLATE_Y (12) // 平行移動Ｙ
519 #define MV1_ANIMKEY_DATATYPE_TRANSLATE_Z (13) // 平行移動Ｚ
520 #define MV1_ANIMKEY_DATATYPE_MATRIX4X4C (15) // ４×４行列の４列目( 0,0,0,1 )固定版
521 #define MV1_ANIMKEY_DATATYPE_MATRIX3X3 (17) // ３×３行列
522 #define MV1_ANIMKEY_DATATYPE_SHAPE (18) // シェイプ
523 #define MV1_ANIMKEY_DATATYPE_OTHRE (20) // その他
524
525 // タイムタイプ
526 #define MV1_ANIMKEY_TIME_TYPE_ONE (0) // 時間情報は全体で一つ
527 #define MV1_ANIMKEY_TIME_TYPE_KEY (1) // 時間情報は各キーに一つ
528
529 // アニメーションキータイプ
530 #define MV1_ANIMKEY_TYPE_QUATERNION_X (0) // クォータニオン( Xファイルタイプ )
531 #define MV1_ANIMKEY_TYPE_VECTOR (1) // ベクター
532 #define MV1_ANIMKEY_TYPE_MATRIX4X4C (2) // ４×４行列の４列目( 0,0,0,1 )固定版
533 #define MV1_ANIMKEY_TYPE_MATRIX3X3 (3) // ３×３行列
534 #define MV1_ANIMKEY_TYPE_FLAT (4) // フラット
535 #define MV1_ANIMKEY_TYPE_LINEAR (5) // 線形補間
536 #define MV1_ANIMKEY_TYPE_BLEND (6) // 混合
537 #define MV1_ANIMKEY_TYPE_QUATERNION_VMD (7) // クォータニオン( VMDタイプ )
538
539 // 描画先画面指定用定義
540 #define DX_SCREEN_FRONT (0xfffffffc)
541 #define DX_SCREEN_BACK (0xfffffffe)
542 #define DX_SCREEN_WORK (0xfffffffd)
543 #define DX_SCREEN_TEMPFRONT (0xfffffffb)
544
545 #define DX_NONE_GRAPH (0xfffffffb) // グラフィックなしハンドル
546
547 // グラフィック減色時の画像劣化緩和処理モード
548 #define DX_SHAVEDMODE_NONE (0) // 画像劣化緩和処理を行わない
549 #define DX_SHAVEDMODE_DITHER (1) // ディザリング
550 #define DX_SHAVEDMODE_DIFFUS (2) // 誤差拡散
551
552 // 画像の保存タイプ
553 #define DX_IMAGESAVETYPE_BMP (0) // bitmap
554 #define DX_IMAGESAVETYPE_JPEG (1) // jpeg
555 #define DX_IMAGESAVETYPE_PNG (2) // Png
556
557 // サウンド再生形態指定用定義
558 #define DX_PLAYTYPE_LOOPBIT (0x0002) // ループ再生ビット
559 #define DX_PLAYTYPE_BACKBIT (0x0001) // バックグラウンド再生ビット
560
561 #define DX_PLAYTYPE_NORMAL (0) // ノーマル再生
562 #define DX_PLAYTYPE_BACK ( DX_PLAYTYPE_BACKBIT ) // バックグラウンド再生
563 #define DX_PLAYTYPE_LOOP ( DX_PLAYTYPE_LOOPBIT | DX_PLAYTYPE_BACKBIT ) // ループ再生
564
565 // 動画再生タイプ定義
566 #define DX_MOVIEPLAYTYPE_BCANCEL (0) // ボタンキャンセルあり
567 #define DX_MOVIEPLAYTYPE_NORMAL (1) // ボタンキャンセルなし
568
569 // サウンドのタイプ
570 #define DX_MSoundTYPE_NORMAL (0) // ノーマルサウンド形式
571 #define DX_MSoundTYPE_STREAMSTYLE (1) // ストリーム風サウンド形式
572
573 // ストリームサウンド再生データタイプのマクロ
574 #define DX_MSoundDATATYPE_MEMNOPRESS (0) // 圧縮された全データは再生が始まる前にサウンドメモリにすべて解凍され、格納される
575 #define DX_MSoundDATATYPE_MEMNOPRESS_PLUS (1) // 圧縮された全データはシステムメモリに格納され、再生しながら逐次解凍され、最終的にすべてサウンドメモリに格納される(その後システムメモリに存在する圧縮データは破棄される)
576 #define DX_MSoundDATATYPE_MEMPRESS (2) // 圧縮された全データはシステムメモリに格納され、再生する部分だけ逐次解凍しながらサウンドメモリに格納する(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
577 #define DX_MSoundDATATYPE_FILE (3) // 圧縮されたデータの再生する部分だけファイルから逐次読み込み解凍され、サウンドメモリに格納される(鳴らし終わると解凍したデータは破棄されるので何度も解凍処理が行われる)
578
579 // 読み込み処理のタイプ
580 #define DX_READMSoundFUNCTION_PCM (0x0001) // PCM の読み込み処理
581 #define DX_READMSoundFUNCTION_ACM (0x0002) // ACM を使用した読み込み処理
582 #define DX_READMSoundFUNCTION_OGG (0x0004) // Ogg Vorbis の読み込み処理
583 #define DX_READMSoundFUNCTION_MP3 (0x0008) // ACM を使用した MP3 の読み込み処理
584 #define DX_READMSoundFUNCTION_DSMP3 (0x0010) // DirectShow を使用した MP3 の読み込み処理
585
586 // マスク透過色モード
587 #define DX_MASKTRANS_WHITE (0) // マスク画像の白い部分を透過色とする
588 #define DX_MASKTRANS_BLACK (1) // マスク画像の黒い部分を透過色とする
589 #define DX_MASKTRANS_NONE (2) // 透過色なし
590
591 // Ｚバッファ書き込みモード
592 #define DX_ZWRITE_MASK (0) // 書き込めないようにマスクする
593 #define DX_ZWRITE_CLEAR (1) // 書き込めるようにマスクをクリアする
594
595 // 比較モード
596 #define DX_CMP_NEVER (1) // FALSE
597 #define DX_CMP_LESS (2) // Src < Dest DrawAlpha < TestParam
598 #define DX_CMP_EQUAL (3) // Src == Dest DrawAlpha == TestParam
599 #define DX_CMP_LESSEQUAL (4) // Src <= Dest DrawAlpha <= TestParam
600 #define DX_CMP_GREATER (5) // Src > Dest DrawAlpha > TestParam
601 #define DX_CMP_NOTEQUAL (6) // Src != Dest DrawAlpha != TestParam
602 #define DX_CMP_GREATEREQUAL (7) // Src >= Dest DrawAlpha >= TestParam
603 #define DX_CMP_ALWAYS (8) // TRUE
604 #define DX_ZCMP_DEFAULT ( DX_CMP_LESSEQUAL )
605 #define DX_ZCMP_REVERSE ( DX_CMP_GREATEREQUAL )
606
607 // シェーディングモード
608 #define DX_SHADEMODE_FLAT D_D3DSHADE_FLAT
609 #define DX_SHADEMODE_GOURAUD D_D3DSHADE_GOURAUD
610
611 // フォグモード
612 #define DX_FOGMODE_NONE D_D3DFOG_NONE
613 #define DX_FOGMODE_EXP D_D3DFOG_EXP
614 #define DX_FOGMODE_EXP2 D_D3DFOG_EXP2
615 #define DX_FOGMODE_LINEAR D_D3DFOG_LINEAR
616
617 // マテリアルタイプ
618 #define DX_MATERIAL_TYPE_NORMAL (0) // 標準マテリアル
619 #define DX_MATERIAL_TYPE_TOON (1) // トゥーンレンダリング用マテリアル
620 #define DX_MATERIAL_TYPE_TOON_2 (2) // トゥーンレンダリング用マテリアル_タイプ２( MMD互換 )
621
622 // マテリアルブレンドタイプ
623 #define DX_MATERIAL_BLENDTYPE_TRANSLUCENT (0) // アルファ合成
624 #define DX_MATERIAL_BLENDTYPE_ADDITIVE (1) // 加算
625 #define DX_MATERIAL_BLENDTYPE_MODULATE (2) // 乗算
626
627 // テクスチャアドレスタイプ
628 #define DX_TEXADDRESS_WRAP D_D3DTADDRESS_WRAP
629 #define DX_TEXADDRESS_MIRROR D_D3DTADDRESS_MIRROR
630 #define DX_TEXADDRESS_CLAMP D_D3DTADDRESS_CLAMP
631 #define DX_TEXADDRESS_BORDER D_D3DTADDRESS_BORDER
632
633 // 頂点データタイプ
634 #define DX_VERTEX_TYPE_NORMAL_3D (0) // VERTEX3D構造体形式
635 #define DX_VERTEX_TYPE_SHADER_3D (1) // VERTEX3DSHADER構造体形式
636 #define DX_VERTEX_TYPE_NUM (2)
637
638 // インデックスデータタイプ
639 #define DX_INDEX_TYPE_16BIT (0) // 16bitインデックス
640
641 // モデルファイル読み込み時の物理演算モード
642 #define DX_LOADMODEL_PHYSICS_DISABLE (1) // 物理演算を使用しない
643 #define DX_LOADMODEL_PHYSICS_LOADCALC (0) // 読み込み時に計算
644 #define DX_LOADMODEL_PHYSICS_REALTIME (2) // 実行時計算
645
646 // ポリゴン描画タイプ
647 #define DX_PRIMTYPE_POINTLIST D_D3DPT_POINTLIST
648 #define DX_PRIMTYPE_LINELIST D_D3DPT_LINELIST
649 #define DX_PRIMTYPE_LINESTRIP D_D3DPT_LINESTRIP
650 #define DX_PRIMTYPE_TRIANGLELIST D_D3DPT_TRIANGLELIST
651 #define DX_PRIMTYPE_TRIANGLESTRIP D_D3DPT_TRIANGLESTRIP
652 #define DX_PRIMTYPE_TRIANGLEFAN D_D3DPT_TRIANGLEFAN
653
654 // ライトタイプ
655 #define DX_LIGHTTYPE_D3DLIGHT_POINT D_D3DLIGHT_POINT
656 #define DX_LIGHTTYPE_D3DLIGHT_SPOT D_D3DLIGHT_SPOT
657 #define DX_LIGHTTYPE_D3DLIGHT_DIRECTIONAL D_D3DLIGHT_DIRECTIONAL
658 #define DX_LIGHTTYPE_D3DLIGHT_FORCEDWORD D_D3DLIGHT_FORCE_DWORD
659 #define DX_LIGHTTYPE_POINT D_D3DLIGHT_POINT
660 #define DX_LIGHTTYPE_SPOT D_D3DLIGHT_SPOT
661 #define DX_LIGHTTYPE_DIRECTIONAL D_D3DLIGHT_DIRECTIONAL
662
663 // グラフィックイメージフォーマットの定義
664 #define DX_GRAPHICSIMAGE_FORMAT_3D_RGB16 (0) // １６ビットカラー標準
665 #define DX_GRAPHICSIMAGE_FORMAT_3D_RGB32 (1) // ３２ビットカラー標準
666 #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB16 (2) // αチャンネル付き１６ビットカラー
667 #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHA_RGB32 (3) // αチャンネル付き３２ビットカラー
668 #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB16 (4) // αテスト付き１６ビットカラー
669 #define DX_GRAPHICSIMAGE_FORMAT_3D_ALPHATEST_RGB32 (5) // αテスト付き３２ビットカラー
670 #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT1 (6) // ＤＸＴ１
671 #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT2 (7) // ＤＸＴ２
672 #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT3 (8) // ＤＸＴ３
673 #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT4 (9) // ＤＸＴ４
674 #define DX_GRAPHICSIMAGE_FORMAT_3D_DXT5 (10) // ＤＸＴ５
675 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB16 (11) // 描画可能１６ビットカラー
676 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_RGB32 (12) // 描画可能３２ビットカラー
677 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ALPHA_RGB32 (13) // 描画可能α付き３２ビットカラー
678 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_I16 (14) // 描画可能ARGB整数16ビット型カラー
679 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F16 (15) // 描画可能ARGB浮動小数点16ビット型カラー
680 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ABGR_F32 (16) // 描画可能ARGB浮動小数点32ビット型カラー
681 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I8 (17) // 描画可能１チャンネル整数8ビット型カラー
682 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_I16 (18) // 描画可能１チャンネル整数16ビット型カラー
683 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F16 (19) // 描画可能１チャンネル浮動少数16ビット型カラー
684 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_ONE_F32 (20) // 描画可能１チャンネル浮動少数32ビット型カラー
685 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I8 (21) // 描画可能２チャンネル整数8ビット型カラー
686 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_I16 (22) // 描画可能２チャンネル整数16ビット型カラー
687 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F16 (23) // 描画可能２チャンネル浮動少数16ビット型カラー
688 #define DX_GRAPHICSIMAGE_FORMAT_3D_DRAWVALID_TWO_F32 (24) // 描画可能２チャンネル浮動少数32ビット型カラー
689 #define DX_GRAPHICSIMAGE_FORMAT_3D_NUM (25)
690 #define DX_GRAPHICSIMAGE_FORMAT_2D (26) // 標準( DirectDrawSurface の場合はこれのみ )
691 #define DX_GRAPHICSIMAGE_FORMAT_R5G6B5 (27) // R5G6B5( MEMIMG 用 )
692 #define DX_GRAPHICSIMAGE_FORMAT_X8A8R5G6B5 (28) // X8A8R5G6B5( MEMIMG 用 )
693 #define DX_GRAPHICSIMAGE_FORMAT_X8R8G8B8 (29) // X8R8G8B8( MEMIMG 用 )
694 #define DX_GRAPHICSIMAGE_FORMAT_A8R8G8B8 (30) // A8R8G8B8( MEMIMG 用 )
695
696 #define DX_GRAPHICSIMAGE_FORMAT_NUM (31) // グラフィックフォーマットの種類の数
697
698 // 基本イメージのピクセルフォーマット
699 #define DX_BASEIMAGE_FORMAT_NORMAL (0) // 普通の画像
700 #define DX_BASEIMAGE_FORMAT_DXT1 (1) // ＤＸＴ１
701 #define DX_BASEIMAGE_FORMAT_DXT2 (2) // ＤＸＴ２
702 #define DX_BASEIMAGE_FORMAT_DXT3 (3) // ＤＸＴ３
703 #define DX_BASEIMAGE_FORMAT_DXT4 (4) // ＤＸＴ４
704 #define DX_BASEIMAGE_FORMAT_DXT5 (5) // ＤＸＴ５
705
706 // ツールバーのボタンの状態
707 #define TOOLBUTTON_STATE_ENABLE (0) // 入力可能な状態
708 #define TOOLBUTTON_STATE_PRESSED (1) // 押されている状態
709 #define TOOLBUTTON_STATE_DISABLE (2) // 入力不可能な状態
710 #define TOOLBUTTON_STATE_PRESSED_DISABLE (3) // 押されている状態で、入力不可能な状態
711 #define TOOLBUTTON_STATE_NUM (4) // ツールバーのボタンの状態の数
712
713 // ツールバーのボタンのタイプ
714 #define TOOLBUTTON_TYPE_NORMAL (0) // 普通のボタン
715 #define TOOLBUTTON_TYPE_CHECK (1) // 押すごとにＯＮ／ＯＦＦが切り替わるボタン
716 #define TOOLBUTTON_TYPE_GROUP (2) // 別の TOOLBUTTON_TYPE_GROUP タイプのボタンが押されるとＯＦＦになるタイプのボタン(グループの区切りは隙間で)
717 #define TOOLBUTTON_TYPE_SEP (3) // 隙間(ボタンではありません)
718 #define TOOLBUTTON_TYPE_NUM (4) // ツールバーのボタンのタイプの数
719
720 // 親メニューのＩＤ
721 #define MENUITEM_IDTOP (0xabababab)
722
723 // メニューに追加する際のタイプ
724 #define MENUITEM_ADD_CHILD (0) // 指定の項目の子として追加する
725 #define MENUITEM_ADD_INSERT (1) // 指定の項目と指定の項目より一つ上の項目の間に追加する
726
727 // メニューの横に付くマークタイプ
728 #define MENUITEM_MARK_NONE (0) // 何も付け無い
729 #define MENUITEM_MARK_CHECK (1) // チェックマーク
730 #define MENUITEM_MARK_RADIO (2) // ラジオボタン
731
732 // 文字変換タイプ定義
733 #define DX_NUMMODE_10 (0) // １０進数
734 #define DX_NUMMODE_16 (1) // １６進数
735 #define DX_STRMODE_NOT0 (2) // 空きを０で埋めない
736 #define DX_STRMODE_USE0 (3) // 空きを０で埋める
737
738 // CheckHitKeyAll で調べる入力タイプ
739 #define DX_CHECKINPUT_KEY (0x0001) // キー入力を調べる
740 #define DX_CHECKINPUT_PAD (0x0002) // パッド入力を調べる
741 #define DX_CHECKINPUT_MOUSE (0x0004) // マウスボタン入力を調べる
742 #define DX_CHECKINPUT_ALL (DX_CHECKINPUT_KEY | DX_CHECKINPUT_PAD | DX_CHECKINPUT_MOUSE) // すべての入力を調べる
743
744 // パッド入力取得パラメータ
745 #define DX_INPUT_KEY_PAD1 (0x1001) // キー入力とパッド１入力
746 #define DX_INPUT_PAD1 (0x0001) // パッド１入力
747 #define DX_INPUT_PAD2 (0x0002) // パッド２入力
748 #define DX_INPUT_PAD3 (0x0003) // パッド３入力
749 #define DX_INPUT_PAD4 (0x0004) // パッド４入力
750 #define DX_INPUT_PAD5 (0x0005) // パッド５入力
751 #define DX_INPUT_PAD6 (0x0006) // パッド６入力
752 #define DX_INPUT_PAD7 (0x0007) // パッド７入力
753 #define DX_INPUT_PAD8 (0x0008) // パッド８入力
754 #define DX_INPUT_PAD9 (0x0009) // パッド９入力
755 #define DX_INPUT_PAD10 (0x000a) // パッド１０入力
756 #define DX_INPUT_PAD11 (0x000b) // パッド１１入力
757 #define DX_INPUT_PAD12 (0x000c) // パッド１２入力
758 #define DX_INPUT_PAD13 (0x000d) // パッド１３入力
759 #define DX_INPUT_PAD14 (0x000e) // パッド１４入力
760 #define DX_INPUT_PAD15 (0x000f) // パッド１５入力
761 #define DX_INPUT_PAD16 (0x0010) // パッド１６入力
762 #define DX_INPUT_KEY (0x1000) // キー入力
763
764 // ムービーのサーフェスモード
765 #define DX_MOVIESURFACE_NORMAL (0)
766 #define DX_MOVIESURFACE_OVERLAY (1)
767 #define DX_MOVIESURFACE_FULLCOLOR (2)
768
769 // パッド入力定義
770 #define PAD_INPUT_DOWN (0x00000001) // ↓チェックマスク
771 #define PAD_INPUT_LEFT (0x00000002) // ←チェックマスク
772 #define PAD_INPUT_RIGHT (0x00000004) // →チェックマスク
773 #define PAD_INPUT_UP (0x00000008) // ↑チェックマスク
774 #define PAD_INPUT_A (0x00000010) // Ａボタンチェックマスク
775 #define PAD_INPUT_B (0x00000020) // Ｂボタンチェックマスク
776 #define PAD_INPUT_C (0x00000040) // Ｃボタンチェックマスク
777 #define PAD_INPUT_X (0x00000080) // Ｘボタンチェックマスク
778 #define PAD_INPUT_Y (0x00000100) // Ｙボタンチェックマスク
779 #define PAD_INPUT_Z (0x00000200) // Ｚボタンチェックマスク
780 #define PAD_INPUT_L (0x00000400) // Ｌボタンチェックマスク
781 #define PAD_INPUT_R (0x00000800) // Ｒボタンチェックマスク
782 #define PAD_INPUT_START (0x00001000) // ＳＴＡＲＴボタンチェックマスク
783 #define PAD_INPUT_M (0x00002000) // Ｍボタンチェックマスク
784 #define PAD_INPUT_D (0x00004000)
785 #define PAD_INPUT_F (0x00008000)
786 #define PAD_INPUT_G (0x00010000)
787 #define PAD_INPUT_H (0x00020000)
788 #define PAD_INPUT_I (0x00040000)
789 #define PAD_INPUT_J (0x00080000)
790 #define PAD_INPUT_K (0x00100000)
791 #define PAD_INPUT_LL (0x00200000)
792 #define PAD_INPUT_N (0x00400000)
793 #define PAD_INPUT_O (0x00800000)
794 #define PAD_INPUT_P (0x01000000)
795 #define PAD_INPUT_RR (0x02000000)
796 #define PAD_INPUT_S (0x04000000)
797 #define PAD_INPUT_T (0x08000000)
798 #define PAD_INPUT_U (0x10000000)
799 #define PAD_INPUT_V (0x20000000)
800 #define PAD_INPUT_W (0x40000000)
801 #define PAD_INPUT_XX (0x80000000)
802
803 #define PAD_INPUT_1 (0x00000010)
804 #define PAD_INPUT_2 (0x00000020)
805 #define PAD_INPUT_3 (0x00000040)
806 #define PAD_INPUT_4 (0x00000080)
807 #define PAD_INPUT_5 (0x00000100)
808 #define PAD_INPUT_6 (0x00000200)
809 #define PAD_INPUT_7 (0x00000400)
810 #define PAD_INPUT_8 (0x00000800)
811 #define PAD_INPUT_9 (0x00001000)
812 #define PAD_INPUT_10 (0x00002000)
813 #define PAD_INPUT_11 (0x00004000)
814 #define PAD_INPUT_12 (0x00008000)
815 #define PAD_INPUT_13 (0x00010000)
816 #define PAD_INPUT_14 (0x00020000)
817 #define PAD_INPUT_15 (0x00040000)
818 #define PAD_INPUT_16 (0x00080000)
819 #define PAD_INPUT_17 (0x00100000)
820 #define PAD_INPUT_18 (0x00200000)
821 #define PAD_INPUT_19 (0x00400000)
822 #define PAD_INPUT_20 (0x00800000)
823 #define PAD_INPUT_21 (0x01000000)
824 #define PAD_INPUT_22 (0x02000000)
825 #define PAD_INPUT_23 (0x04000000)
826 #define PAD_INPUT_24 (0x08000000)
827 #define PAD_INPUT_25 (0x10000000)
828 #define PAD_INPUT_26 (0x20000000)
829 #define PAD_INPUT_27 (0x40000000)
830 #define PAD_INPUT_28 (0x80000000)
831
832 // マウス入力定義
833 #define MOUSE_INPUT_LEFT (0x0001) // マウス左ボタン
834 #define MOUSE_INPUT_RIGHT (0x0002) // マウス右ボタン
835 #define MOUSE_INPUT_MIDDLE (0x0004) // マウス中央ボタン
836 #define MOUSE_INPUT_1 (0x0001) // マウス１ボタン
837 #define MOUSE_INPUT_2 (0x0002) // マウス２ボタン
838 #define MOUSE_INPUT_3 (0x0004) // マウス３ボタン
839 #define MOUSE_INPUT_4 (0x0008) // マウス４ボタン
840 #define MOUSE_INPUT_5 (0x0010) // マウス５ボタン
841 #define MOUSE_INPUT_6 (0x0020) // マウス６ボタン
842 #define MOUSE_INPUT_7 (0x0040) // マウス７ボタン
843 #define MOUSE_INPUT_8 (0x0080) // マウス８ボタン
844
845 // キー定義
846 #define KEY_INPUT_BACK D_DIK_BACK // バックスペースキー
847 #define KEY_INPUT_TAB D_DIK_TAB // タブキー
848 #define KEY_INPUT_RETURN D_DIK_RETURN // エンターキー
849
850 #define KEY_INPUT_LSHIFT D_DIK_LSHIFT // 左シフトキー
851 #define KEY_INPUT_RSHIFT D_DIK_RSHIFT // 右シフトキー
852 #define KEY_INPUT_LCONTROL D_DIK_LCONTROL // 左コントロールキー
853 #define KEY_INPUT_RCONTROL D_DIK_RCONTROL // 右コントロールキー
854 #define KEY_INPUT_ESCAPE D_DIK_ESCAPE // エスケープキー
855 #define KEY_INPUT_SPACE D_DIK_SPACE // スペースキー
856 #define KEY_INPUT_PGUP D_DIK_PGUP // ＰａｇｅＵＰキー
857 #define KEY_INPUT_PGDN D_DIK_PGDN // ＰａｇｅＤｏｗｎキー
858 #define KEY_INPUT_END D_DIK_END // エンドキー
859 #define KEY_INPUT_HOME D_DIK_HOME // ホームキー
860 #define KEY_INPUT_LEFT D_DIK_LEFT // 左キー
861 #define KEY_INPUT_UP D_DIK_UP // 上キー
862 #define KEY_INPUT_RIGHT D_DIK_RIGHT // 右キー
863 #define KEY_INPUT_DOWN D_DIK_DOWN // 下キー
864 #define KEY_INPUT_INSERT D_DIK_INSERT // インサートキー
865 #define KEY_INPUT_DELETE D_DIK_DELETE // デリートキー
866
867 #define KEY_INPUT_MINUS D_DIK_MINUS // −キー
868 #define KEY_INPUT_YEN D_DIK_YEN // ￥キー
869 #define KEY_INPUT_PREVTRACK D_DIK_PREVTRACK // ＾キー
870 #define KEY_INPUT_PERIOD D_DIK_PERIOD // ．キー
871 #define KEY_INPUT_SLASH D_DIK_SLASH // ／キー
872 #define KEY_INPUT_LALT D_DIK_LALT // 左ＡＬＴキー
873 #define KEY_INPUT_RALT D_DIK_RALT // 右ＡＬＴキー
874 #define KEY_INPUT_SCROLL D_DIK_SCROLL // ScrollLockキー
875 #define KEY_INPUT_SEMICOLON D_DIK_SEMICOLON // ；キー
876 #define KEY_INPUT_COLON D_DIK_COLON // ：キー
877 #define KEY_INPUT_LBRACKET D_DIK_LBRACKET // ［キー
878 #define KEY_INPUT_RBRACKET D_DIK_RBRACKET // ］キー
879 #define KEY_INPUT_AT D_DIK_AT // ＠キー
880 #define KEY_INPUT_BACKSLASH D_DIK_BACKSLASH // ＼キー
881 #define KEY_INPUT_COMMA D_DIK_COMMA // ，キー
882 #define KEY_INPUT_KANJI D_DIK_KANJI // 漢字キー
883 #define KEY_INPUT_CONVERT D_DIK_CONVERT // 変換キー
884 #define KEY_INPUT_NOCONVERT D_DIK_NOCONVERT // 無変換キー
885 #define KEY_INPUT_KANA D_DIK_KANA // カナキー
886 #define KEY_INPUT_APPS D_DIK_APPS // アプリケーションメニューキー
887 #define KEY_INPUT_CAPSLOCK D_DIK_CAPSLOCK // CaspLockキー
888 #define KEY_INPUT_SYSRQ D_DIK_SYSRQ // PrintScreenキー
889 #define KEY_INPUT_PAUSE D_DIK_PAUSE // PauseBreakキー
890 #define KEY_INPUT_LWIN D_DIK_LWIN // 左Ｗｉｎキー
891 #define KEY_INPUT_RWIN D_DIK_RWIN // 右Ｗｉｎキー
892
893 #define KEY_INPUT_NUMLOCK D_DIK_NUMLOCK // テンキー０
894 #define KEY_INPUT_NUMPAD0 D_DIK_NUMPAD0 // テンキー０
895 #define KEY_INPUT_NUMPAD1 D_DIK_NUMPAD1 // テンキー１
896 #define KEY_INPUT_NUMPAD2 D_DIK_NUMPAD2 // テンキー２
897 #define KEY_INPUT_NUMPAD3 D_DIK_NUMPAD3 // テンキー３
898 #define KEY_INPUT_NUMPAD4 D_DIK_NUMPAD4 // テンキー４
899 #define KEY_INPUT_NUMPAD5 D_DIK_NUMPAD5 // テンキー５
900 #define KEY_INPUT_NUMPAD6 D_DIK_NUMPAD6 // テンキー６
901 #define KEY_INPUT_NUMPAD7 D_DIK_NUMPAD7 // テンキー７
902 #define KEY_INPUT_NUMPAD8 D_DIK_NUMPAD8 // テンキー８
903 #define KEY_INPUT_NUMPAD9 D_DIK_NUMPAD9 // テンキー９
904 #define KEY_INPUT_MULTIPLY D_DIK_MULTIPLY // テンキー＊キー
905 #define KEY_INPUT_ADD D_DIK_ADD // テンキー＋キー
906 #define KEY_INPUT_SUBTRACT D_DIK_SUBTRACT // テンキー−キー
907 #define KEY_INPUT_DECIMAL D_DIK_DECIMAL // テンキー．キー
908 #define KEY_INPUT_DIVIDE D_DIK_DIVIDE // テンキー／キー
909 #define KEY_INPUT_NUMPADENTER D_DIK_NUMPADENTER // テンキーのエンターキー
910
911 #define KEY_INPUT_F1 D_DIK_F1 // Ｆ１キー
912 #define KEY_INPUT_F2 D_DIK_F2 // Ｆ２キー
913 #define KEY_INPUT_F3 D_DIK_F3 // Ｆ３キー
914 #define KEY_INPUT_F4 D_DIK_F4 // Ｆ４キー
915 #define KEY_INPUT_F5 D_DIK_F5 // Ｆ５キー
916 #define KEY_INPUT_F6 D_DIK_F6 // Ｆ６キー
917 #define KEY_INPUT_F7 D_DIK_F7 // Ｆ７キー
918 #define KEY_INPUT_F8 D_DIK_F8 // Ｆ８キー
919 #define KEY_INPUT_F9 D_DIK_F9 // Ｆ９キー
920 #define KEY_INPUT_F10 D_DIK_F10 // Ｆ１０キー
921 #define KEY_INPUT_F11 D_DIK_F11 // Ｆ１１キー
922 #define KEY_INPUT_F12 D_DIK_F12 // Ｆ１２キー
923
924 #define KEY_INPUT_A D_DIK_A // Ａキー
925 #define KEY_INPUT_B D_DIK_B // Ｂキー
926 #define KEY_INPUT_C D_DIK_C // Ｃキー
927 #define KEY_INPUT_D D_DIK_D // Ｄキー
928 #define KEY_INPUT_E D_DIK_E // Ｅキー
929 #define KEY_INPUT_F D_DIK_F // Ｆキー
930 #define KEY_INPUT_G D_DIK_G // Ｇキー
931 #define KEY_INPUT_H D_DIK_H // Ｈキー
932 #define KEY_INPUT_I D_DIK_I // Ｉキー
933 #define KEY_INPUT_J D_DIK_J // Ｊキー
934 #define KEY_INPUT_K D_DIK_K // Ｋキー
935 #define KEY_INPUT_L D_DIK_L // Ｌキー
936 #define KEY_INPUT_M D_DIK_M // Ｍキー
937 #define KEY_INPUT_N D_DIK_N // Ｎキー
938 #define KEY_INPUT_O D_DIK_O // Ｏキー
939 #define KEY_INPUT_P D_DIK_P // Ｐキー
940 #define KEY_INPUT_Q D_DIK_Q // Ｑキー
941 #define KEY_INPUT_R D_DIK_R // Ｒキー
942 #define KEY_INPUT_S D_DIK_S // Ｓキー
943 #define KEY_INPUT_T D_DIK_T // Ｔキー
944 #define KEY_INPUT_U D_DIK_U // Ｕキー
945 #define KEY_INPUT_V D_DIK_V // Ｖキー
946 #define KEY_INPUT_W D_DIK_W // Ｗキー
947 #define KEY_INPUT_X D_DIK_X // Ｘキー
948 #define KEY_INPUT_Y D_DIK_Y // Ｙキー
949 #define KEY_INPUT_Z D_DIK_Z // Ｚキー
950
951 #define KEY_INPUT_0 D_DIK_0 // ０キー
952 #define KEY_INPUT_1 D_DIK_1 // １キー
953 #define KEY_INPUT_2 D_DIK_2 // ２キー
954 #define KEY_INPUT_3 D_DIK_3 // ３キー
955 #define KEY_INPUT_4 D_DIK_4 // ４キー
956 #define KEY_INPUT_5 D_DIK_5 // ５キー
957 #define KEY_INPUT_6 D_DIK_6 // ６キー
958 #define KEY_INPUT_7 D_DIK_7 // ７キー
959 #define KEY_INPUT_8 D_DIK_8 // ８キー
960 #define KEY_INPUT_9 D_DIK_9 // ９キー
961
962 // アスキーコントロールキーコード
963 #define CTRL_CODE_BS (0x08) // バックスペース
964 #define CTRL_CODE_TAB (0x09) // タブ
965 #define CTRL_CODE_CR (0x0d) // 改行
966 #define CTRL_CODE_DEL (0x10) // ＤＥＬキー
967
968 #define CTRL_CODE_COPY (0x03) // コピー
969 #define CTRL_CODE_PASTE (0x16) // ペースト
970 #define CTRL_CODE_CUT (0x18) // カット
971 #define CTRL_CODE_ALL (0x01) // 全て選択
972
973 #define CTRL_CODE_LEFT (0x1d) // ←キー
974 #define CTRL_CODE_RIGHT (0x1c) // →キー
975 #define CTRL_CODE_UP (0x1e) // ↑キー
976 #define CTRL_CODE_DOWN (0x1f) // ↓キー
977
978 #define CTRL_CODE_HOME (0x1a) // ＨＯＭＥボタン
979 #define CTRL_CODE_END (0x19) // ＥＮＤボタン
980 #define CTRL_CODE_PAGE_UP (0x17) // ＰＡＧＥ ＵＰ
981 #define CTRL_CODE_PAGE_DOWN (0x15) // ＰＡＧＥ ＤＯＷＮ
982
983 #define CTRL_CODE_ESC (0x1b) // ＥＳＣキー
984 #define CTRL_CODE_CMP (0x20) // 制御コード敷居値
985
986 // SetGraphMode 戻り値定義
987 #define DX_CHANGESCREEN_OK (0) // 画面変更は成功した
988 #define DX_CHANGESCREEN_RETURN (-1) // 画面の変更は失敗し、元の画面モードに戻された
989 #define DX_CHANGESCREEN_DEFAULT (-2) // 画面の変更は失敗しデフォルトの画面モードに変更された
990 #define DX_CHANGESCREEN_REFRESHNORMAL (-3) // 画面の変更は成功したが、リフレッシュレートの変更は失敗した
991
992 // ストリームデータ読み込み処理コード簡略化関連
993 #define STTELL( st ) ((st)->ReadShred.Tell( (st)->DataPoint ))
994 #define STSEEK( st, pos, type ) ((st)->ReadShred.Seek( (st)->DataPoint, (pos), (type) ))
995 #define STREAD( buf, length, num, st ) ((st)->ReadShred.Read( (buf), (length), (num), (st)->DataPoint ))
996 #define STWRITE( buf, length, num, st ) ((st)->ReadShred.Write( (buf), (length), (num), (st)->DataPoint ))
997 #define STEOF( st ) ((st)->ReadShred.Eof( (st)->DataPoint ))
998 #define STCLOSE( st ) ((st)->ReadShred.Close( (st)->DataPoint ))
999
1000 // ストリームデータ制御のシークタイプ定義
1001 #define STREAM_SEEKTYPE_SET (SEEK_SET)
1002 #define STREAM_SEEKTYPE_END (SEEK_END)
1003 #define STREAM_SEEKTYPE_CUR (SEEK_CUR)
1004
1005 // グラフィックロード時のイメージタイプ
1006 #define LOADIMAGE_TYPE_FILE (0) // イメージはファイルである
1007 #define LOADIMAGE_TYPE_MEM (1) // イメージはメモリである
1008 #define LOADIMAGE_TYPE_NONE (-1) // イメージは無い
1009
1010
1011
1012 #ifndef DX_NON_NETWORK
1013
1014 // HTTP エラー
1015 #define HTTP_ERR_SERVER (0) // サーバーエラー
1016 #define HTTP_ERR_NOTFOUND (1) // ファイルが見つからなかった
1017 #define HTTP_ERR_MEMORY (2) // メモリ確保の失敗
1018 #define HTTP_ERR_LOST (3) // 途中で切断された
1019 #define HTTP_ERR_NONE (-1) // エラーは報告されていない
1020
1021 // HTTP 処理の結果
1022 #define HTTP_RES_COMPLETE (0) // 処理完了
1023 #define HTTP_RES_STOP (1) // 処理中止
1024 #define HTTP_RES_ERROR (2) // エラー終了
1025 #define HTTP_RES_NOW (-1) // 現在進行中
1026
1027 #endif // DX_NON_NETWORK
1028
1029 #define DX_DEFINE_END
1030
1031 // データ型定義-------------------------------------------------------------------
1032
1033 namespace DxLib
1034 {
1035
1036 #define DX_STRUCT_START
1037
1038 // ＩＭＥ入力文字列の描画に必要な情報の内の文節情報
1039 typedef struct tagIMEINPUTCLAUSEDATA
1040 {
1041 int Position ; // 何バイト目から
1042 int Length ; // 何バイトか
1043 } IMEINPUTCLAUSEDATA, *LPIMEINPUTCLAUSEDATA ;
1044
1045 // ＩＭＥ入力文字列の描画に必要な情報
1046 typedef struct tagIMEINPUTDATA
1047 {
1048 const TCHAR * InputString ; // 入力中の文字列
1049
1050 int CursorPosition ; // カーソルの入力文字列中の位置(バイト単位)
1051
1052 const IMEINPUTCLAUSEDATA * ClauseData ; // 文節情報
1053 int ClauseNum ; // 文節情報の数
1054 int SelectClause ; // 選択中の分節( -1 の場合はどの文節にも属していない( 末尾にカーソルがある ) )
1055
1056 int CandidateNum ; // 変換候補の数( 0の場合は変換中ではない )
1057 const TCHAR ** CandidateList ; // 変換候補文字列リスト( 例：ｎ番目の候補を描画する場合 DrawString( 0, 0, data.CandidateList[ n ], GetColor(255,255,255) ); )
1058 int SelectCandidate ; // 選択中の変換候補
1059
1060 int ConvertFlag ; // 文字変換中かどうか( TRUE:変換中 FALSE:変換中ではない( 文字単位でカーソルが移動できる状態 ) )
1061 } IMEINPUTDATA, *LPIMEINPUTDATA ;
1062
1063 // タイムデータ型
1064 typedef struct tagDATEDATA
1065 {
1066 int Year ; // 年
1067 int Mon ; // 月
1068 int Day ; // 日
1069 int Hour ; // 時間
1070 int Min ; // 分
1071 int Sec ; // 秒
1072 } DATEDATA, *LPDATEDATA ;
1073
1074 // 画面モード情報データ型
1075 typedef struct tagDISPLAYMODEDATA
1076 {
1077 int Width ; // 水平解像度
1078 int Height ; // 垂直解像度
1079 int ColorBitDepth ; // 色ビット深度
1080 int RefreshRate ; // リフレッシュレート( -1 の場合は規定値 )
1081 } DISPLAYMODEDATA, *LPDISPLAYMODEDATA ;
1082
1083 // ファイル情報構造体
1084 typedef struct tagFILEINFO
1085 {
1086 TCHAR Name[260] ; // オブジェクト名
1087 int DirFlag ; // ディレクトリかどうか( TRUE:ディレクトリ FALSE:ファイル )
1088 LONGLONG Size ; // サイズ
1089 DATEDATA CreationTime ; // 作成時刻
1090 DATEDATA LastWriteTime ; // 最終更新時刻
1091 } FILEINFO, *LPFILEINFO ;
1092
1093 #ifndef DX_NOTUSE_DRAWFUNCTION
1094
1095 // 行列構造体
1096 typedef struct tagMATRIX
1097 {
1098 float m[4][4] ;
1099 } MATRIX, *LPMATRIX ;
1100
1101 // ベクトルデータ型
1102 typedef struct tagVECTOR
1103 {
1104 float x, y, z ;
1105 } VECTOR, *LPVECTOR, XYZ, *LPXYZ ;
1106
1107 // FLOAT2個データ型
1108 typedef struct tagFLOAT2
1109 {
1110 float u, v ;
1111 } UV ;
1112
1113 // float 型のカラー値
1114 typedef struct tagCOLOR_F
1115 {
1116 float r, g, b, a ;
1117 } COLOR_F, *LPCOLOR_F ;
1118
1119 // unsigned char 型のカラー値
1120 typedef struct tagCOLOR_U8
1121 {
1122 BYTE b, g, r, a ;
1123 } COLOR_U8 ;
1124
1125 // FLOAT4個データ型
1126 typedef struct tagFLOAT4
1127 {
1128 float x, y, z, w ;
1129 } FLOAT4, *LPFLOAT4 ;
1130
1131 // INT4個データ型
1132 typedef struct tagINT4
1133 {
1134 int x, y, z, w ;
1135 } INT4 ;
1136
1137 // ２Ｄ描画用頂点構造体(テクスチャ無し)
1138 typedef struct tagVERTEX_NOTEX_2D
1139 {
1140 VECTOR pos ;
1141 float rhw ;
1142 int color ;
1143 } VERTEX_NOTEX_2D, *LPVERTEX_NOTEX_2D ;
1144
1145 // 主に２Ｄ描画に使用する頂点データ型
1146 typedef struct tagVERTEX_2D
1147 {
1148 VECTOR pos ;
1149 float rhw ;
1150 int color ;
1151 float u, v ;
1152 } VERTEX_2D, *LPVERTEX_2D ;
1153
1154 // ２Ｄ描画に使用する頂点データ型(DrawPrimitive2D用)
1155 typedef struct tagVERTEX2D
1156 {
1157 VECTOR pos ;
1158 float rhw ;
1159 COLOR_U8 dif ;
1160 float u, v ;
1161 } VERTEX2D, *LPVERTEX2D ;
1162
1163 // ２Ｄ描画に使用する頂点データ型(DrawPrimitive2DToShader用)
1164 typedef struct tagVERTEX2DSHADER
1165 {
1166 VECTOR pos ;
1167 float rhw ;
1168 COLOR_U8 dif ;
1169 COLOR_U8 spc ;
1170 float u, v ;
1171 float su, sv ;
1172 } VERTEX2DSHADER, *LPVERTEX2DSHADER ;
1173
1174 // ２Ｄ描画に使用する頂点データ型(公開用)
1175 typedef struct tagVERTEX
1176 {
1177 float x, y ;
1178 float u, v ;
1179 unsigned char b, g, r, a ;
1180 } VERTEX ;
1181
1182 // ３Ｄ描画に使用する頂点データ型( テクスチャなし )( 旧バージョンのもの )
1183 typedef struct tagVERTEX_NOTEX_3D
1184 {
1185 VECTOR pos ;
1186 unsigned char b, g, r, a ;
1187 } VERTEX_NOTEX_3D, *LPVERTEX_NOTEX_3D ;
1188
1189 // ３Ｄ描画に使用する頂点データ型( 旧バージョンのもの )
1190 typedef struct tagVERTEX_3D
1191 {
1192 VECTOR pos ;
1193 unsigned char b, g, r, a ;
1194 float u, v ;
1195 } VERTEX_3D, *LPVERTEX_3D ;
1196
1197 // ３Ｄ描画に使用する頂点データ型
1198 typedef struct tagVERTEX3D
1199 {
1200 VECTOR pos ; // 座標
1201 VECTOR norm ; // 法線
1202 COLOR_U8 dif ; // ディフューズカラー
1203 COLOR_U8 spc ; // スペキュラカラー
1204 float u, v ; // テクスチャ座標
1205 float su, sv ; // 補助テクスチャ座標
1206 } VERTEX3D, *LPVERTEX3D ;
1207
1208 // ３Ｄ描画に使用する頂点データ型( DrawPrimitive3DToShader用 )
1209 // 注意…メンバ変数に追加があるかもしれませんので、宣言時の初期化( VERTEX3DSHADER Vertex = { 0.0f, 0.0f, ... というようなもの )はしない方が良いです
1210 typedef struct tagVERTEX3DSHADER
1211 {
1212 VECTOR pos ; // 座標
1213 FLOAT4 spos ; // 補助座標
1214 VECTOR norm ; // 法線
1215 VECTOR tan ; // 接線
1216 VECTOR binorm ; // 従法線
1217 COLOR_U8 dif ; // ディフューズカラー
1218 COLOR_U8 spc ; // スペキュラカラー
1219 float u, v ; // テクスチャ座標
1220 float su, sv ; // 補助テクスチャ座標
1221 } VERTEX3DSHADER, *LPVERTEX3DSHADER ;
1222
1223 // ライトパラメータ
1224 typedef struct tagLIGHTPARAM
1225 {
1226 int LightType ; // ライトのタイプ( DX_LIGHTTYPE_D3DLIGHT_POINT 等 )
1227 COLOR_F Diffuse ; // ディフューズカラー
1228 COLOR_F Specular ; // スペキュラカラー
1229 COLOR_F Ambient ; // アンビエント色
1230 VECTOR Position ; // 位置
1231 VECTOR Direction ; // 方向
1232 float Range ; // 有効距離
1233 float Falloff ; // フォールオフ 1.0f にしておくのが好ましい
1234 float Attenuation0 ; // 距離による減衰係数０
1235 float Attenuation1 ; // 距離による減衰係数１
1236 float Attenuation2 ; // 距離による減衰係数２
1237 float Theta ; // スポットライトの内部コーンの照明角度( ラジアン )
1238 float Phi ; // スポットライトの外部コーンの照明角度
1239 } LIGHTPARAM ;
1240
1241 // マテリアルパラメータ
1242 typedef struct tagMATERIALPARAM
1243 {
1244 COLOR_F Diffuse ; // ディフューズカラー
1245 COLOR_F Ambient ; // アンビエントカラー
1246 COLOR_F Specular ; // スペキュラカラー
1247 COLOR_F Emissive ; // エミッシブカラー
1248 float Power ; // スペキュラハイライトの鮮明度
1249 } MATERIALPARAM ;
1250
1251 // ラインヒットチェック結果格納用構造体
1252 typedef struct tagHITRESULT_LINE
1253 {
1254 int HitFlag ; // 当たったかどうか( 1:当たった 0:当たらなかった )
1255 VECTOR Position ; // 当たった座標
1256 } HITRESULT_LINE ;
1257
1258 // コリジョン結果代入用ポリゴン
1259 typedef struct tagMV1_COLL_RESULT_POLY
1260 {
1261 int HitFlag ; // ( MV1CollCheck_Line でのみ有効 )ヒットフラグ( 1:ヒットした 0:ヒットしなかった )
1262 VECTOR HitPosition ; // ( MV1CollCheck_Line でのみ有効 )ヒット座標
1263
1264 int FrameIndex ; // 当たったポリゴンが含まれるフレームの番号
1265 int PolygonIndex ; // 当たったポリゴンの番号
1266 int MaterialIndex ; // 当たったポリゴンが使用しているマテリアルの番号
1267 VECTOR Position[ 3 ] ; // 当たったポリゴンを形成する三点の座標
1268 VECTOR Normal ; // 当たったポリゴンの法線
1269 } MV1_COLL_RESULT_POLY ;
1270
1271 // コリジョン結果代入用ポリゴン配列
1272 typedef struct tagMV1_COLL_RESULT_POLY_DIM
1273 {
1274 int HitNum ; // ヒットしたポリゴンの数
1275 MV1_COLL_RESULT_POLY * Dim ; // ヒットしたポリゴンの配列( HitNum個分存在する )
1276 } MV1_COLL_RESULT_POLY_DIM ;
1277
1278 // 参照用頂点構造体
1279 typedef struct tagMV1_REF_VERTEX
1280 {
1281 VECTOR Position ; // 位置
1282 VECTOR Normal ; // 法線
1283 UV TexCoord[ 2 ] ; // テクスチャ座標
1284 COLOR_U8 DiffuseColor ; // ディフューズカラー
1285 COLOR_U8 SpecularColor ; // スペキュラカラー
1286 } MV1_REF_VERTEX ;
1287
1288 // 参照用ポリゴン構造体
1289 typedef struct tagMV1_REF_POLYGON
1290 {
1291 unsigned short FrameIndex ; // このポリゴンが属しているフレーム
1292 unsigned short MaterialIndex ; // 使用しているマテリアル
1293 int VIndexTarget ; // VIndex が指すインデックスの参照先( 1:フレーム 0:モデル全体 )
1294 int VIndex[ 3 ] ; // ３角形ポリゴンを成す参照頂点のインデックス
1295 VECTOR MinPosition ; // ポリゴンを成す頂点座標の最小値
1296 VECTOR MaxPosition ; // ポリゴンを成す頂点座標の最大値
1297 } MV1_REF_POLYGON ;
1298
1299 // 参照用ポリゴンデータ構造体
1300 typedef struct tagMV1_REF_POLYGONLIST
1301 {
1302 int PolygonNum ; // 参照用ポリゴンの数
1303 int VertexNum ; // 頂点の数
1304 VECTOR MinPosition ; // 頂点座標の最小値
1305 VECTOR MaxPosition ; // 頂点座標の最大値
1306 MV1_REF_POLYGON * Polygons ; // 参照用ポリゴン配列
1307 MV1_REF_VERTEX * Vertexs ; // 参照用頂点配列
1308 } MV1_REF_POLYGONLIST ;
1309
1310 #endif // DX_NOTUSE_DRAWFUNCTION
1311
1312
1313
1314
1315
1316
1317 // ストリームデータ制御用関数ポインタ構造体タイプ２
1318 typedef struct tagSTREAMDATASHREDTYPE2
1319 {
1320 DWORD_PTR (*Open )( const TCHAR *Path, int UseCacheFlag, int BlockReadFlag, int UseASyncReadFlag ) ;
1321 int (*Close )( DWORD_PTR Handle ) ;
1322 long (*Tell )( DWORD_PTR Handle ) ;
1323 int (*Seek )( DWORD_PTR Handle, long SeekPoint, int SeekType ) ;
1324 size_t (*Read )( void *Buffer, size_t BlockSize, size_t DataNum, DWORD_PTR Handle ) ;
1325 int (*Eof )( DWORD_PTR Handle ) ;
1326 int (*IdleCheck )( DWORD_PTR Handle ) ;
1327 int (*ChDir )( const TCHAR *Path ) ;
1328 int (*GetDir )( TCHAR *Buffer ) ;
1329 DWORD_PTR (*FindFirst )( const TCHAR *FilePath, FILEINFO *Buffer ) ; // 戻り値: -1=エラー -1以外=FindHandle
1330 int (*FindNext )( DWORD_PTR FindHandle, FILEINFO *Buffer ) ; // 戻り値: -1=エラー 0=成功
1331 int (*FindClose )( DWORD_PTR FindHandle ) ; // 戻り値: -1=エラー 0=成功
1332 } STREAMDATASHREDTYPE2 ;
1333
1334 // ストリームデータ制御用関数ポインタ構造体
1335 typedef struct tagSTREAMDATASHRED
1336 {
1337 long (*Tell )( void *StreamDataPoint ) ;
1338 int (*Seek )( void *StreamDataPoint, long SeekPoint, int SeekType ) ;
1339 size_t (*Read )( void *Buffer, size_t BlockSize, size_t DataNum, void *StreamDataPoint ) ;
1340 // size_t (*Write )( void *Buffer, size_t BlockSize, size_t DataNum, void *StreamDataPoint ) ;
1341 int (*Eof )( void *StreamDataPoint ) ;
1342 int (*IdleCheck )( void *StreamDataPoint ) ;
1343 int (*Close )( void *StreamDataPoint ) ;
1344 } STREAMDATASHRED, *LPSTREAMDATASHRED ;
1345
1346 // ストリームデータ制御用データ構造体
1347 typedef struct tagSTREAMDATA
1348 {
1349 STREAMDATASHRED ReadShred ;
1350 void *DataPoint ;
1351 } STREAMDATA ;
1352
1353
1354
1355
1356 #ifndef DX_NOTUSE_DRAWFUNCTION
1357
1358 // パレット情報構造体
1359 typedef struct tagCOLORPALETTEDATA
1360 {
1361 unsigned char Blue ;
1362 unsigned char Green ;
1363 unsigned char Red ;
1364 unsigned char Alpha ;
1365 } COLORPALETTEDATA ;
1366
1367 // カラー構造情報構造体
1368 typedef struct tagCOLORDATA
1369 {
1370 unsigned char Format ; // フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 )
1371
1372 unsigned char ChannelNum ; // チャンネル数
1373 unsigned char ChannelBitDepth ; // １チャンネル辺りのビット深度
1374 unsigned char FloatTypeFlag ; // 浮動小数点型かどうか( TRUE:浮動小数点型 FALSE:整数型 )
1375 unsigned char PixelByte ; // １ピクセルあたりのバイト数
1376
1377 // 以下は ChannelNum 又は ChannelBitDepth が 0 の時のみ有効
1378 unsigned char ColorBitDepth ; // ビット深度
1379 unsigned char NoneLoc, NoneWidth ; // 使われていないビットのアドレスと幅
1380 unsigned char RedWidth, GreenWidth, BlueWidth, AlphaWidth ; // 各色のビット幅
1381 unsigned char RedLoc , GreenLoc , BlueLoc , AlphaLoc ; // 各色の配置されているビットアドレス
1382 unsigned int RedMask , GreenMask , BlueMask , AlphaMask ; // 各色のビットマスク
1383 unsigned int NoneMask ; // 使われていないビットのマスク
1384 COLORPALETTEDATA Palette[ 256 ] ; // パレット( ColorBitDepth が８以下の場合のみ有効 )
1385 } COLORDATA, *LPCOLORDATA ;
1386
1387 // 基本イメージデータ構造体
1388 typedef struct tagBASEIMAGE
1389 {
1390 COLORDATA ColorData ; // 色情報
1391 int Width, Height, Pitch ; // 幅、高さ、ピッチ
1392 void *GraphData ; // グラフィックイメージ
1393 int MipMapCount ; // ミップマップの数
1394 } BASEIMAGE, GRAPHIMAGE, *LPGRAPHIMAGE ;
1395
1396 // ラインデータ型
1397 typedef struct tagLINEDATA
1398 {
1399 int x1, y1, x2, y2 ; // 座標
1400 int color ; // 色
1401 int pal ; // パラメータ
1402 } LINEDATA, *LPLINEDATA ;
1403
1404 // 座標データ型
1405 typedef struct tagPOINTDATA
1406 {
1407 int x, y ; // 座標
1408 int color ; // 色
1409 int pal ; // パラメータ
1410 } POINTDATA, *LPPOINTDATA ;
1411
1412 // イメージフォーマットデータ
1413 typedef struct tagIMAGEFORMATDESC
1414 {
1415 unsigned char TextureFlag ; // テクスチャか、フラグ( TRUE:テクスチャ FALSE:標準サーフェス )
1416 unsigned char AlphaChFlag ; // αチャンネルはあるか、フラグ ( TRUE:ある FALSE:ない )
1417 unsigned char DrawValidFlag ; // 描画可能か、フラグ( TRUE:可能 FALSE:不可能 )
1418 unsigned char SystemMemFlag ; // システムメモリ上に存在しているか、フラグ( TRUE:システムメモリ上 FALSE:ＶＲＡＭ上 )( 標準サーフェスの時のみ有効 )
1419 unsigned char UseManagedTextureFlag ; // マネージドテクスチャを使用するか、フラグ
1420
1421 unsigned char BaseFormat ; // 基本フォーマット( DX_BASEIMAGE_FORMAT_NORMAL 等 )
1422 unsigned char MipMapCount ; // ミップマップの数
1423 unsigned char AlphaTestFlag ; // αテストチャンネルはあるか、フラグ( TRUE:ある FALSE:ない )( テクスチャの場合のみ有効 )
1424 unsigned char FloatTypeFlag ; // 浮動小数点型かどうか
1425 unsigned char ColorBitDepth ; // 色深度( テクスチャの場合のみ有効 )
1426 unsigned char ChannelNum ; // チャンネルの数
1427 unsigned char ChannelBitDepth ; // １チャンネル辺りのビット深度( テクスチャの場合のみ有効、0 の場合は ColorBitDepth が使用される )
1428 unsigned char BlendGraphFlag ; // ブレンド用画像か、フラグ
1429 unsigned char UsePaletteFlag ; // パレットを使用しているか、フラグ( SystemMemFlag が TRUE の場合のみ有効 )
1430
1431 unsigned char MSSamples ; // マルチサンプリング数( 描画対象の場合使用 )
1432 unsigned char MSQuality ; // マルチサンプリングクオリティ( 描画対象の場合使用 )
1433 } IMAGEFORMATDESC ;
1434
1435 #endif // DX_NOTUSE_DRAWFUNCTION
1436
1437 // DirectInput のジョイパッド入力情報
1438 typedef struct tagDINPUT_JOYSTATE
1439 {
1440 int X ; // スティックのＸ軸パラメータ( -1000〜1000 )
1441 int Y ; // スティックのＹ軸パラメータ( -1000〜1000 )
1442 int Z ; // スティックのＺ軸パラメータ( -1000〜1000 )
1443 int Rx ; // スティックのＸ軸回転パラメータ( -1000〜1000 )
1444 int Ry ; // スティックのＹ軸回転パラメータ( -1000〜1000 )
1445 int Rz ; // スティックのＺ軸回転パラメータ( -1000〜1000 )
1446 int Slider[ 2 ] ; // スライダー二つ
1447 unsigned int POV[ 4 ] ; // ハットスイッチ４つ( -1:入力なし 0:上 4500:右上 9000:右 13500:右下 18000:下 22500:左下 27000:左 31500:左上 )
1448 unsigned char Buttons[ 32 ] ; // ボタン３２個( 押されたボタンは 128 になる )
1449 } DINPUT_JOYSTATE ;
1450
1451
1452
1453
1454
1455
1456
1457 // WinSockets使用時のアドレス指定用構造体
1458 typedef struct tagIPDATA
1459 {
1460 unsigned char d1, d2, d3, d4 ; // アドレス値
1461 } IPDATA, *LPIPDATA ;
1462
1463 typedef struct tagIPDATA_IPv6
1464 {
1465 union
1466 {
1467 unsigned char Byte[ 16 ] ;
1468 unsigned short Word[ 8 ] ;
1469 } ;
1470 } IPDATA_IPv6 ;
1471
1472 #define DX_STRUCT_END
1473
1474 }
1475
1476 // 関数プロトタイプ宣言------------------------------------------------------------------
1477
1478 namespace DxLib
1479 {
1480
1481 #define DX_FUNCTION_START
1482
1483 // DxSystem.cpp関数プロトタイプ宣言
1484
1485 // 初期化終了系関数
1486 extern int DxLib_Init( void ) ; // ライブラリ初期化を行う
1487 extern int DxLib_End( void ) ; // ライブラリ使用の後始末を行う
1488
1489 extern int DxLib_GlobalStructInitialize( void ) ; // ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Init の前に行った設定を無効化する( DxLib_Init の前でのみ有効 )
1490 extern int DxLib_IsInit( void ) ; // ライブラリが初期化されているかどうかを取得する( 戻り値: TRUE=初期化されている FALSE=されていない )
1491
1492 // メッセージ処理関数
1493 extern int ProcessMessage( void ) ; // ウインドウズのメッセージループに代わる処理を行う
1494
1495 // ウエイト系関数
1496 extern int WaitTimer( int WaitTime ) ; // 指定の時間だけ処理をとめる
1497 #ifndef DX_NON_INPUT
1498 extern int WaitKey( void ) ; // キーの入力待ちを行う
1499 #endif // DX_NON_INPUT
1500
1501 // カウンタ及び時刻取得系関数
1502 extern int GetNowCount( int UseRDTSCFlag = FALSE ) ; // ミリ秒単位の精度を持つカウンタの現在値を得る
1503 extern LONGLONG GetNowHiPerformanceCount( int UseRDTSCFlag = FALSE ) ; // GetNowCountの高精度バージョン
1504 extern int GetDateTime( DATEDATA *DateBuf ) ; // 現在時刻を取得する
1505
1506 // 乱数取得
1507 extern int GetRand( int RandMax ) ; // 乱数を取得する( RandMax : 返って来る値の最大値 )
1508 extern int SRand( int Seed ) ; // 乱数の初期値を設定する
1509
1510
1511
1512
1513
1514
1515
1516
1517 // DxLog.cpp関数プロトタイプ宣言
1518
1519 #ifndef DX_NON_LOG
1520 // エラー処理関数
1521 extern int ErrorLogAdd( const TCHAR *ErrorStr ) ; // ログファイル( Log.txt ) に文字列を出力する
1522 extern int ErrorLogFmtAdd( const TCHAR *FormatString , ... ) ; // 書式付きで ログファイル( Log.txt ) に文字列を出力する( 書式は printf と同じ )
1523 extern int ErrorLogTabAdd( void ) ; // ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を一つ増やす
1524 extern int ErrorLogTabSub( void ) ; // ログファイル( Log.txt ) に出力する文字列の前に付けるタブの数を一つ減らす
1525 extern int SetUseTimeStampFlag( int UseFlag ) ; // ログファイル( Log.txt ) に出力する文字列の前に起動してからの時間を付けるかどうかを設定する( TRUE:付ける( デフォルト) FALSE:付けない )
1526 extern int AppLogAdd( const TCHAR *String , ... ) ; // ErrorLogFmtAdd と同じ機能
1527
1528 #ifndef DX_NON_PRINTF_DX
1529
1530 // ログ出力機能関数
1531 extern int SetLogDrawOutFlag( int DrawFlag ) ; // printfDx の結果を画面に出力するかどうかを設定する、TRUE:出力を行う FALSE:出力を行わない( printfDx を実行すると内部で SetLogDrawOutFlag( TRUE ) ; が呼ばれます )
1532 extern int GetLogDrawFlag( void ) ; // printfDx の結果を画面に出力するかどうかの設定を取得する( 戻り値 TRUE:出力を行う FALSE:出力を行わない )
1533 extern int SetLogFontSize( int Size ) ; // printfDx の結果を画面に出力する際に使用するフォントのサイズを設定する
1534
1535 // 簡易画面出力関数
1536 extern int printfDx( const TCHAR *FormatString , ... ) ; // printf と同じ引数で画面に文字列を表示するための関数
1537 extern int clsDx( void ) ; // printfDx の結果をリセットするための関数
1538 #endif // DX_NON_PRINTF_DX
1539
1540 #endif // DX_NON_LOG
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553 #ifndef DX_NON_ASYNCLOAD
1554
1555 // DxASyncLoad.cpp関数プロトタイプ宣言
1556
1557 // 非同期読み込み関係
1558 extern int SetUseASyncLoadFlag( int Flag ) ; // 読み込み処理系の関数で非同期読み込みを行うかどうかを設定する( 非同期読み込みに対応している関数のみ有効 )( TRUE:非同期読み込みを行う FALSE:非同期読み込みを行わない( デフォルト ) )
1559 extern int CheckHandleASyncLoad( int Handle ) ; // ハンドルの非同期読み込みが完了しているかどうかを取得する( TRUE:まだ完了していない FALSE:完了している -1:エラー )
1560 extern int GetHandleASyncLoadResult( int Handle ) ; // ハンドルの非同期読み込み処理の戻り値を取得する( 非同期読み込み中の場合は一つ前の非同期読み込み処理の戻り値が返ってきます )
1561 extern int GetASyncLoadNum( void ) ; // 非同期読み込み中の処理の数を取得する
1562
1563 #endif // DX_NON_ASYNCLOAD
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575 // DxHandle.cpp関数プロトタイプ宣言
1576
1577 extern int SetDeleteHandleFlag( int Handle, int *DeleteFlag ) ; // ハンドルが削除されたときに−１が設定される変数を登録する
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592 // DxWindow.cpp関数プロトタイプ宣言
1593
1594 #ifdef __WINDOWS__
1595
1596 // 便利関数
1597 extern int GetResourceInfo( const TCHAR *ResourceName , const TCHAR *ResourceType , void **DataPointerP , int *DataSizeP ) ; // 指定の名前、タイプのリソースのアドレスとサイズを取得する( 戻り値 -1:失敗 0:成功 )
1598 extern TCHAR* GetResourceIDString( int ResourceID ) ; // リソースＩＤ値からリソース名を取得する
1599
1600 // ウインドウ関係情報取得関数
1601 extern int GetWindowCRect( RECT *RectBuf ) ; // メインウインドウのクライアント領域を取得する
1602 extern int GetWindowActiveFlag( void ) ; // メインウインドウがアクティブかどうかを取得する( 戻り値 TRUE:アクティブ FALSE:非アクティブ )
1603 extern int GetActiveFlag( void ) ; // GetWindowActiveFlag の別名関数
1604 extern HWND GetMainWindowHandle( void ) ; // メインウインドウのウインドウハンドルを取得する
1605 extern int GetWindowModeFlag( void ) ; // ウインドウモードで起動しているかどうかを取得する( 戻り値 TRUE:ウインドウモード FALSE:フルスクリーンモード )
1606 extern int GetDefaultState( int *SizeX , int *SizeY , int *ColorBitDepth ) ; // 起動時のデスクトップの画面情報を取得する( SizeX:デスクトップの横解像度を格納する変数のポインタ SizeY:縦解像度を格納する変数のポインタ ColorBitDepth:画面カラービット数を格納する変数のポインタ )
1607 extern int GetNoActiveState( int ResetFlag = TRUE ) ; // メインウインドウが非アクティブになり、処理が一時停止していたかどうかを取得する(引数 ResetFlag=TRUE:状態をリセット FALSE:状態をリセットしない 戻り値: 0=一時停止はしていない 1=一時停止していた )
1608 extern int GetMouseDispFlag( void ) ; // マウスポインタを表示するかどうかの設定を取得する( 戻り値 TRUE:表示する FALSE:表示しない )
1609 extern int GetAlwaysRunFlag( void ) ; // メインウインドウが非アクティブになっても処理を実行し続けるかどうかの設定を取得する( TRUE:実行する FALSE:停止する )
1610 extern int _GetSystemInfo( int *DxLibVer , int *DirectXVer , int *WindowsVer ) ; // ＤＸライブラリと DirectX のバージョンと Windows のバージョン番号を取得する
1611 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 ) ; // ＰＣの情報を取得する
1612 extern int GetUseMMXFlag( void ) ; // ＭＭＸが使えるかどうかの情報を得る
1613 extern int GetUseSSEFlag( void ) ; // ＳＳＥが使えるかどうかの情報を得る
1614 extern int GetUseSSE2Flag( void ) ; // ＳＳＥ２が使えるかどうかの情報を得る
1615 extern int GetWindowCloseFlag( void ) ; // ウインドウを閉じようとしているかの情報を得る
1616 extern HINSTANCE GetTaskInstance( void ) ; // ソフトのインスタンスを取得する
1617 extern int GetUseWindowRgnFlag( void ) ; // リージョンを使っているかどうかを取得する
1618 extern int GetWindowSizeChangeEnableFlag( int *FitScreen = NULL ) ; // ウインドウのサイズを変更できる設定になっているかどうかを取得する( 戻り値 TRUE:変更できるようになっている FALSE:変更できないようになっている )
1619 extern double GetWindowSizeExtendRate( double *ExRateX = NULL , double *ExRateY = NULL ) ; // 描画画面のサイズに対するウインドウサイズの比率を取得する( 戻り値は ExRateX に代入される値と同じです )
1620 extern int GetWindowSize( int *Width, int *Height ) ; // メインウインドウのクライアント領域のサイズを取得する
1621 extern int GetWindowPosition( int *x, int *y ) ; // メインウインドウのデスクトップ上の左上端座標を取得する( 枠も含める )
1622 extern int GetWindowUserCloseFlag( int StateResetFlag = FALSE ) ; // メインウインドウの閉じるボタンが押されたかどうかを取得する
1623 extern int GetNotDrawFlag( void ) ; // ＤＸライブラリの描画機能を使うかどうかの設定を取得する
1624 extern int GetPaintMessageFlag( void ) ; // WM_PAINT メッセージが来たかどうかを取得する(戻り値 TRUE:WM_PAINTメッセージが来た(一度取得すると以後、再び WM_PAINTメッセージが来るまで FALSE が返ってくるようになる) FALSE:WM_PAINT メッセージは来ていない)
1625 extern int GetValidHiPerformanceCounter( void ) ; // パフォーマンスカウンタが有効かどうかを取得する(戻り値 TRUE:有効 FALSE:無効)
1626
1627 // 設定系関数
1628 extern int ChangeWindowMode( int Flag ) ; // ウインドウモードを変更する
1629 extern int SetUseCharSet( int CharSet /* = DX_CHARSET_SHFTJIS 等 */ ) ; // ＤＸライブラリの文字列処理で前提とする文字列セットを設定する
1630 extern int LoadPauseGraph( const TCHAR *FileName ) ; // アクティブウインドウが他のソフトに移っている際に表示する画像をファイルから読み込む( FileName に NULL を渡すことで解除)
1631 extern int LoadPauseGraphFromMem( void *MemImage , int MemImageSize ) ; // アクティブウインドウが他のソフトに移っている際に表示する画像をメモリから読み込む( MemImage:ファイルイメージの先頭アドレス,NULL にすることで設定解除 MemImageSize:ファイルイメージのサイズ( 単位:Byte ) )
1632 extern int SetActiveStateChangeCallBackFunction( int (* CallBackFunction )( int ActiveState , void *UserData ) , void *UserData ) ; // メインウインドウのアクティブ状態に変化があったときに呼ばれるコールバック関数を設定する( CallBackFunction:呼ばれるコールバック関数、NULL を渡すと設定解除 UserData:CallBackFunction の第２引数に渡される値 )
1633 extern int SetWindowText( const TCHAR *WindowText ) ; // メインウインドウのウインドウテキストを変更する
1634 extern int SetMainWindowText( const TCHAR *WindowText ) ; // SetWindowText の別名関数
1635 extern int SetMainWindowClassName( const TCHAR *ClassName ) ; // メインウインドウのクラス名を設定する( DxLib_Init の前でのみ使用可能 )
1636 #ifndef DX_NON_LOG
1637 extern int SetOutApplicationLogValidFlag( int Flag ) ; // ログファイル( Log.txt ) を作成するかどうかを設定する( TRUE:作成する( デフォルト ) FALSE:作成しない )、DxLib_Init の前でのみ使用可能
1638 extern int SetApplicationLogSaveDirectory( const TCHAR *DirectoryPath ) ; // ログファイル( Log.txt ) を保存するディレクトリパスを設定する
1639 extern int SetUseDateNameLogFile( int Flag ) ; // ログファイル名に日付をつけるかどうかをセットする( TRUE:付ける FALSE:付けない( デフォルト ) )
1640 #endif // DX_NON_LOG
1641 extern int SetAlwaysRunFlag( int Flag ) ; // メインウインドウが非アクティブ状態でも処理を実行するかどうかを設定する( TRUE:実行する FALSE:停止する( デフォルト ) )
1642 extern int SetWindowIconID( int ID ) ; // メインウインドウで使用するアイコンのＩＤをセットする
1643 extern int SetWindowIconHandle( HICON Icon ) ; // メインウインドウで使用するアイコンのハンドルをセットする
1644 extern int SetUseASyncChangeWindowModeFunction( int Flag , void (* CallBackFunction )( void * ) , void *Data ) ; // 最大化ボタンやALT+ENTERキーによる非同期なウインドウモードの変更の機能の設定を行う( Flag:非同期ウインドウモード変更を有効にするかどうかのフラグ( TRUE:有効にする FALSE:無効にする( デフォルト ) ) CallBackFunction:非同期ウインドウモード変更が行われた場合に呼ばれるコールバック関数のアドレス Data:CallBackFunction の引数に渡される void 型のポインタ )
1645 extern int SetWindowStyleMode( int Mode ) ; // メインウインドウのスタイルを変更する
1646 extern int SetWindowSizeChangeEnableFlag( int Flag, int FitScreen = TRUE ) ; // メインウインドウの端を掴んでウインドウのサイズを変更できるようにするかどうかの設定を行う( Flag:変更を可能にするかどうか( TRUE:可能にする FALSE:不可能にする( デフォルト ) ) FitScreen:ウインドウのクライアント領域に画面をフィットさせる(拡大させる)かどうか TRUE:フィットさせる FALSE:フィットさせない )
1647 extern int SetWindowSizeExtendRate( double ExRateX, double ExRateY = -1.0 ) ; // 描画画面のサイズに対するメインウインドウサイズの比率を設定する( ExRateY がマイナスの場合は ExRateX の値が ExRateY にも使用されます )
1648 extern int SetWindowSize( int Width, int Height ) ; // メインウインドウのクライアント領域のサイズを設定する
1649 extern int SetWindowPosition( int x, int y ) ; // メインウインドウの位置を設定する( 枠も含めた左上座標 )
1650 extern int SetSysCommandOffFlag( int Flag , const TCHAR *HookDllPath = NULL ) ; // タスクスイッチを有効にするかどうかを設定する
1651 extern int SetHookWinProc( WNDPROC WinProc ) ; // メインウインドウへのメッセージをフックするウインドウプロージャを登録する
1652 extern int SetUseHookWinProcReturnValue( int UseFlag ) ; // SetHookWinProc で設定したウインドウプロージャの戻り値を使用するかどうかを設定する、SetHookWinProc で設定したウインドウプロージャの中でのみ使用可能( UseFlag TRUE:戻り値を使用して、ＤＸライブラリのウインドウプロージャの処理は行わない FALSE:戻り値は使用せず、ウインドウプロージャから出た後、ＤＸライブラリのウインドウプロージャの処理を行う )
1653 extern int SetDoubleStartValidFlag( int Flag ) ; // ＤＸライブラリを使用したソフトの二重起動を可能にするかどうかの設定を行う( TRUE:可能にする FALSE:不可能にする( デフォルト ) )
1654 extern int AddMessageTakeOverWindow( HWND Window ) ; // メッセージ処理をＤＸライブラリに肩代わりしてもらうウインドウを追加する
1655 extern int SubMessageTakeOverWindow( HWND Window ) ; // メッセージ処理をＤＸライブラリに肩代わりしてもらうウインドウを減らす
1656
1657 extern int SetWindowInitPosition( int x , int y ) ; // メインウインドウの初期位置を設定する
1658 extern int SetNotWinFlag( int Flag ) ; // ＤＸライブラリのウインドウ関連の機能を使用しないかどうかを設定する( TRUE:使用しない FALSE:使用する( デフォルト ) )
1659 extern int SetNotDrawFlag( int Flag ) ; // ＤＸライブラリの描画機能を使うかどうかを設定する( TRUE:使用しない FALSE:使用する( デフォルト ) )
1660 extern int SetNotSoundFlag( int Flag ) ; // ＤＸライブラリのサウンド機能を使うかどうかを設定する( TRUE:使用しない FALSE:使用する( デフォルト ) )
1661 extern int SetNotInputFlag( int Flag ) ; // ＤＸライブラリの入力状態の取得機能を使うかどうかを設定する( TRUE:使用しない FALSE:使用する( デフォルト ) )
1662 extern int SetDialogBoxHandle( HWND WindowHandle ) ; // ＤＸライブラリでメッセージ処理を行うダイアログボックスを登録する
1663 extern int SetWindowVisibleFlag( int Flag ) ; // メインウインドウを表示するかどうかを設定する( TRUE:表示する FALSE:表示しない )
1664 extern int SetWindowMinimizeFlag( int Flag ) ; // メインウインドウを最小化するかどうかを設定する( TRUE:最小化する FALSE:最小化を解除 )
1665 extern int SetWindowUserCloseEnableFlag( int Flag ) ; // メインウインドウの×ボタンを押した時にＤＸライブラリが自動的にウインドウを閉じるかどうかを設定する( TRUE:自動的に閉じる( デフォルト ) FALSE:閉じない )
1666 extern int SetDxLibEndPostQuitMessageFlag( int Flag ) ; // ＤＸライブラリ終了時に PostQuitMessage を呼ぶかどうかを設定する( TRUE:PostQuitMessage を呼ぶ( デフォルト ) FALSE:呼ばない )
1667 extern int SetUserWindow( HWND WindowHandle ) ; // ＤＸライブラリで使用するウインドウのハンドルをセットする( DxLib_Init を実行する以前でのみ有効 )
1668 extern int SetUserChildWindow( HWND WindowHandle ) ; // ＤＸライブラリで使用する表示用の子ウインドウのハンドルをセットする( DxLib_Init を実行する以前でのみ有効 )
1669 extern int SetUserWindowMessageProcessDXLibFlag( int Flag ) ; // SetUseWindow で設定したウインドウのメッセージループ処理をＤＸライブラリで行うかどうかを設定する( TRUE:ＤＸライブラリで行う( デフォルト ) FALSE:ＤＸライブラリでは行わない )
1670 extern int SetBackgroundColor( int Red, int Green, int Blue ) ; // メインウインドウの背景色を設定する( Red,Green,Blue:それぞれ ０〜２５５ )
1671 extern int SetUseFPUPreserveFlag( int Flag ) ; // FPUの精度を落とさない設定を使用するかどうかを設定する、DxLib_Init を呼び出す前のみ有効( TRUE:使用する(精度が落ちない) FALSE:使用しない(精度を落とす(デフォルト) )
1672 extern int SetValidMousePointerWindowOutClientAreaMoveFlag( int Flag ) ; // マウスポインタがウインドウのクライアントエリアの外にいけるかどうかを設定する( TRUE:いける( デフォルト設定 ) FALSE:いけない )
1673 extern int SetUseBackBufferTransColorFlag( int Flag ) ; // バックバッファの透過色の部分を透過させるかどうかを設定する( TRUE:透過させる FALSE:透過させない( デフォルト ) )
1674 extern int SetResourceModule( HMODULE ResourceModule ) ; // リソースを読み込む際に使用するモジュールを設定する( NULL を指定すると初期状態に戻ります、デフォルトでは NULL )
1675
1676 // クリップボード関係
1677 extern int GetClipboardText( TCHAR *DestBuffer ) ; // クリップボードに格納されているテキストデータを読み出す( DestBuffer:文字列を格納するバッファの先頭アドレス 戻り値 -1:クリップボードにテキストデータが無い -1以外:クリップボードに格納されている文字列データのサイズ( 単位:byte ) )
1678 extern int SetClipboardText( const TCHAR *Text ) ; // クリップボードにテキストデータを格納する
1679
1680 // ドラッグ＆ドロップされたファイル関係
1681 extern int SetDragFileValidFlag( int Flag ) ; // ファイルのメインウインドウへのドラッグ＆ドロップ機能を有効にするかどうかのフラグをセットする
1682 extern int DragFileInfoClear( void ) ; // メインウインドウへドラッグ＆ドロップされたファイルの情報をリセットする
1683 extern int GetDragFilePath( TCHAR *FilePathBuffer ) ; // メインウインドウへドラッグ＆ドロップされたファイル名を取得する( FilePathBuffer:ファイル名を格納するバッファの先頭アドレス　　戻り値　-1:取得できなかった 0:取得できた )
1684 extern int GetDragFileNum( void ) ; // メインウインドウへドラッグ＆ドロップされたファイルの数を取得する
1685
1686 // ウインドウ描画領域設定系関数
1687 extern HRGN CreateRgnFromGraph( int Width , int Height , void *MaskData , int Pitch , int Byte ) ; // 任意の画像イメージからRGNハンドルを作成する( Width:横ドット数 Height:縦ドット数 MaskData:ドット情報配列の先頭アドレス Pitch:１ラインあたりのbyteサイズ Byte:１ドット辺りのbyteサイズ( 対応しているのは 1〜4 )、ドットの数値が0かそれ以外かで判別 )
1688 extern HRGN CreateRgnFromBaseImage( BASEIMAGE *BaseImage, int TransColorR, int TransColorG, int TransColorB ) ; // 任意の基本イメージデータと透過色からRGNハンドルを作成する( BaseImage:基本イメージデータのアドレス TransColorR,TransColorG,TransColorB:透過色( それぞれ０〜２５５ )
1689 extern int SetWindowRgnGraph( const TCHAR *FileName ) ; // 任意の画像ファイルからＲＧＮをセットする
1690 extern int UpdateTransColorWindowRgn( void ) ; // 描画先の画面の透過色の部分を透過させるＲＧＮをセットする( 使用される透過色は関数 SetTransColor で設定した色 )
1691
1692 // ツールバー関係
1693 extern int SetupToolBar( const TCHAR *BitmapName , int DivNum , int ResourceID = -1 ) ; // ツールバーの準備、BitmapName に NULL, ResourceID に -1 を渡すとツールバーを解除( BitmapName:ツールバーのボタンに使用する画像ファイルパス、ResourceID に -1 以外を渡す場合は NULL にする DivNum:ボタン画像中のボタンの数 ResourceID:ツールバーのボタンに使用するビットマップリソースのＩＤ、BitmapName に NULL を渡すとこの引数が使用される )
1694 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:ボタンに割り当てる識別番号 )
1695 extern int AddToolBarSep( void ) ; // ツールバーに隙間を追加する
1696 extern int GetToolBarButtonState( int ID ) ; // ツールバーのボタンの状態を取得する( ID:AddToolBarButtonで設定したボタンの識別番号　　戻り値　TRUE:押されている or 押された FALSE:押されていない )
1697 extern int SetToolBarButtonState( int ID , int State /* TOOLBUTTON_STATE_ENABLE 等 */ ) ; // ツールバーのボタンの状態を設定する( ID:AddToolBarButtonで設定したボタンの識別番号　State:設定する状態( TOOLBUTTON_STATE_ENABLE 等( 解説は #define の定義を参照してください ) )
1698 extern int DeleteAllToolBarButton( void ) ; // ツールバーのボタンを全て削除する
1699
1700 // メニュー関係
1701 extern int SetUseMenuFlag( int Flag ) ; // メニューを有効にするかどうかを設定する( TRUE:使用する FALSE:使用しない )
1702 extern int SetUseKeyAccelFlag( int Flag ) ; // キーボードアクセラレーターを使用するかどうかを設定する( TRUE:使用する FALSE:使用しない )
1703
1704 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:押さなくても良い )
1705 extern int AddKeyAccel_Name( const TCHAR *ItemName , int KeyCode , int CtrlFlag , int AltFlag , int ShiftFlag ) ; // ショートカットキーを追加する( 各引数の解説は AddKeyAccel と同じ、ItemID が無くなっただけ )
1706 extern int AddKeyAccel_ID( int ItemID, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag ) ; // ショートカットキーを追加する( 各引数の解説は AddKeyAccel と同じ、ItemName が無くなっただけ )
1707 extern int ClearKeyAccel( void ) ; // ショートカットキーの情報をリセットする
1708
1709 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を指定すると内部で適当な番号が割り当てられる )
1710 extern int DeleteMenuItem( const TCHAR *ItemName, int ItemID ) ; // メニューから選択項目を削除する( ItemName:削除する項目の名前( AddMenuItem で NewItemName に渡した名前 )、NULL を指定すると ItemID が使用される ItemID:削除する項目の識別番号( AddMenuItem で NewItemID に渡した番号 )、-1 を指定すると ItemName が使用される )
1711 extern int CheckMenuItemSelect( const TCHAR *ItemName, int ItemID ) ; // メニューが選択されたかどうかを取得する( 戻り値　 0:選択されていない 1:選択された ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください )
1712 extern int SetMenuItemEnable( const TCHAR *ItemName, int ItemID, int EnableFlag ) ; // メニューの項目を選択出来るかどうかを設定する( EnableFlag:項目が選択できるかどうか( TRUE:選択できる FALSE:選択できない ) ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください )
1713 extern int SetMenuItemMark( const TCHAR *ItemName, int ItemID, int Mark ) ; // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等( 解説は #define の定義を参照してください ) ItemName と ItemID については関数 DeleteMenuItem の注釈を参照してください ) )
1714 extern int CheckMenuItemSelectAll( void ) ; // メニューの項目がどれか選択されたかどうかを取得する( 戻り値 TRUE:どれか選択された FALSE:選択されていない )
1715
1716 extern int AddMenuItem_Name( const TCHAR *ParentItemName, const TCHAR *NewItemName ) ; // メニューに選択項目を追加する( ParentItemName:親となる項目の名前、親が持つリストの末端に新しい項目を追加します NewItemName:新しい項目の名前 )
1717 extern int AddMenuLine_Name( const TCHAR *ParentItemName ) ; // メニューのリストに区切り線を追加する( ParentItemName:区切り線を付ける項目リストの親の名前、リストの末端に区切り線を追加します )
1718 extern int InsertMenuItem_Name( const TCHAR *ItemName, const TCHAR *NewItemName ) ; // 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する
1719 extern int InsertMenuLine_Name( const TCHAR *ItemName ) ; // 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する
1720 extern int DeleteMenuItem_Name( const TCHAR *ItemName ) ; // メニューから選択項目を削除する
1721 extern int CheckMenuItemSelect_Name( const TCHAR *ItemName ) ; // メニューが選択されたかどうかを取得する( 戻り値　0:選択されていない 1:選択された )
1722 extern int SetMenuItemEnable_Name( const TCHAR *ItemName, int EnableFlag ) ; // メニューの項目を選択出来るかどうかを設定する( EnableFlag　1:選択できる 0:選択できない )
1723 extern int SetMenuItemMark_Name( const TCHAR *ItemName, int Mark ) ; // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等 ) )
1724
1725 extern int AddMenuItem_ID( int ParentItemID, const TCHAR *NewItemName, int NewItemID = -1 ) ; // メニューに選択項目を追加する
1726 extern int AddMenuLine_ID( int ParentItemID ) ; // メニューのリストに区切り線を追加する
1727 extern int InsertMenuItem_ID( int ItemID, int NewItemID ) ; // 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する
1728 extern int InsertMenuLine_ID( int ItemID, int NewItemID ) ; // 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する
1729 extern int DeleteMenuItem_ID( int ItemID ) ; // メニューから選択項目を削除する
1730 extern int CheckMenuItemSelect_ID( int ItemID ) ; // メニューが選択されたかどうかを取得する( 戻り値　　0:選択されていない 1:選択された )
1731 extern int SetMenuItemEnable_ID( int ItemID, int EnableFlag ) ; // メニューの項目を選択出来るかどうかを設定する( EnableFlag　1:選択できる 0:選択できない )
1732 extern int SetMenuItemMark_ID( int ItemID, int Mark ) ; // メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する( Mark:設定するマーク( MENUITEM_MARK_NONE 等 ) )
1733
1734 extern int DeleteMenuItemAll( void ) ; // メニューの全ての選択項目を削除する
1735 extern int ClearMenuItemSelect( void ) ; // メニューが選択されたかどうかの情報をリセット
1736 extern int GetMenuItemID( const TCHAR *ItemName ) ; // メニューの項目名から項目識別番号を取得する
1737 extern int GetMenuItemName( int ItemID, TCHAR *NameBuffer ) ; // メニューの項目識別番号から項目名を取得する
1738 extern int LoadMenuResource( int MenuResourceID ) ; // メニューをリソースから読み込む
1739 extern int SetMenuItemSelectCallBackFunction( void (* CallBackFunction )( const TCHAR *ItemName, int ItemID ) ) ; // メニューの選択項目が選択されたときに呼ばれるコールバック関数を設定する( CallBackFunction:項目が選択されたときに呼ばれるコールバック関数、引数に項目名と項目の識別番号を渡されて呼ばれる )
1740
1741 extern int SetWindowMenu( int MenuID, int (* MenuProc )( WORD ID ) ) ; // (古い関数)ウインドウにメニューを設定する
1742 extern int SetDisplayMenuFlag( int Flag ) ; // メニューを表示するかどうかをセットする
1743 extern int GetDisplayMenuFlag( void ) ; // メニューを表示しているかどうかを取得する
1744 extern int GetUseMenuFlag( void ) ; // メニューを使用しているかどうかを得る
1745 extern int SetAutoMenuDisplayFlag( int Flag ) ; // フルスクリーン時にメニューを自動で表示したり非表示にしたりするかどうかのフラグをセットする
1746
1747 #endif // __WINDOWS__
1748
1749 // マウス関係関数
1750 extern int SetMouseDispFlag( int DispFlag ) ; // マウスポインタの表示状態を設定する( DispFlag:マウスポインタを表示するかどうか( TRUE:表示する FALSE:表示しない )
1751 extern int GetMousePoint( int *XBuf, int *YBuf ) ; // マウスポインタの位置を取得する
1752 extern int SetMousePoint( int PointX, int PointY ) ; // マウスポインタの位置を設定する
1753 #ifndef DX_NON_INPUT
1754 extern int GetMouseInput( void ) ; // マウスのボタンの押下状態を取得する
1755 extern int GetMouseWheelRotVol( int CounterReset = TRUE ) ; // 垂直マウスホイールの回転量を取得する
1756 extern int GetMouseHWheelRotVol( int CounterReset = TRUE ) ; // 水平マウスホイールの回転量を取得する
1757 extern float GetMouseWheelRotVolF( int CounterReset = TRUE ) ; // 垂直マウスホイールの回転量を取得する( 戻り値が float 型 )
1758 extern float GetMouseHWheelRotVolF( int CounterReset = TRUE ) ; // 水平マウスホイールの回転量を取得する( 戻り値が float 型 )
1759 extern int GetMouseInputLog( int *Button, int *ClickX, int *ClickY, int LogDelete = TRUE ) ; // マウスのクリック情報を一つ取得する( Button:クリックされたボタン( MOUSE_INPUT_LEFT 等 )を格納する変数のアドレス ClickX:クリックされた時のＸ座標を格納する変数のアドレス ClickY:クリックされた時のＹ座標を格納する変数のアドレス LogDelete:取得したクリック情報一つ分をログから削除するかどうか( TRUE:削除する FALSE:削除しない、つまり次にこの関数が呼ばれたときに同じ値を取得することになる )　　戻り値 0:クリック情報取得できた　-1:クリック情報が無かった、つまり前回の呼び出し( または起動時から最初の呼び出し )の間に一度もマウスのボタンがクリックされなかった )
1760 #endif // DX_NON_INPUT
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775 // DxMemory.cpp関数プロトタイプ宣言
1776
1777 // メモリ確保系関数
1778 extern void* DxAlloc( size_t AllocSize , const char *File = NULL , int Line = -1 ) ; // 指定のサイズのメモリを確保する( AllocSize:確保するメモリのサイズ( 単位:byte ) File:DxAllocを呼んだソースファイル名( デバッグ用 ) Line:DxAllocを呼んだソースファイル中の行番号( デバッグ用 )　　戻り値 NULL:メモリの確保失敗 NULL以外:確保したメモリ領域の先頭アドレス )
1779 extern void* DxCalloc( size_t AllocSize , const char *File = NULL , int Line = -1 ) ; // 指定のサイズのメモリを確保して、０で埋める、初期化後に０で埋める以外は DxAlloc と動作は同じ
1780 extern void* DxRealloc( void *Memory , size_t AllocSize , const char *File = NULL , int Line = -1 ) ; // メモリの再確保を行う( Memory:再確保を行うメモリ領域の先頭アドレス( DxAlloc の戻り値 ) AllocSize:新しい確保サイズ　FileとLine の説明は DxAlloc の注釈の通り 　戻り値 NULL:メモリの再確保失敗　NULL以外:再確保した新しいメモリ領域の先頭アドレス　)
1781 extern void DxFree( void *Memory ) ; // メモリを解放する( Memory:解放するメモリ領域の先頭アドレス( DxAlloc の戻り値 ) )
1782 extern size_t DxSetAllocSizeTrap( size_t Size ) ; // 列挙対象にするメモリの確保容量をセットする
1783 extern int DxSetAllocPrintFlag( int Flag ) ; // ＤＸライブラリ内でメモリ確保が行われる時に情報を出力するかどうかをセットする
1784 extern size_t DxGetAllocSize( void ) ; // DxAlloc や DxCalloc で確保しているメモリサイズを取得する
1785 extern int DxGetAllocNum( void ) ; // DxAlloc や DxCalloc で確保しているメモリの数を取得する
1786 extern void DxDumpAlloc( void ) ; // DxAlloc や DxCalloc で確保しているメモリを列挙する
1787 extern int DxErrorCheckAlloc( void ) ; // 確保したメモリ情報が破壊されていないか調べる( -1:破壊あり 0:なし )
1788 extern int DxSetAllocSizeOutFlag( int Flag ) ; // メモリが確保、解放が行われる度に確保しているメモリの容量を出力するかどうかのフラグをセットする
1789 extern int DxSetAllocMemoryErrorCheckFlag( int Flag ) ; // メモリの確保、解放が行われる度に確保しているメモリ確保情報が破損していないか調べるかどうかのフラグをセットする
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806 // DxNetwork.cpp関数プロトタイプ宣言
1807
1808 #ifndef DX_NON_NETWORK
1809
1810 // 通信関係
1811 extern int ProcessNetMessage( int RunReleaseProcess = FALSE ) ; // 通信メッセージの処理をする関数
1812
1813 extern int GetHostIPbyName( const TCHAR *HostName, IPDATA *IPDataBuf ) ; // ＤＮＳサーバーを使ってホスト名からＩＰアドレスを取得する( IPv4版 )
1814 extern int GetHostIPbyName_IPv6( const TCHAR *HostName, IPDATA_IPv6 *IPDataBuf ) ; // ＤＮＳサーバーを使ってホスト名からＩＰアドレスを取得する( IPv6版 )
1815 extern int ConnectNetWork( IPDATA IPData, int Port = -1 ) ; // 他マシンに接続する( IPv4版 )
1816 extern int ConnectNetWork_IPv6( IPDATA_IPv6 IPData, int Port = -1 ) ; // 他マシンに接続する( IPv6版 )
1817 extern int ConnectNetWork_ASync( IPDATA IPData, int Port = -1 ) ; // 他マシンに接続する( IPv4版 )、非同期版
1818 extern int ConnectNetWork_IPv6_ASync( IPDATA_IPv6 IPData, int Port = -1 ) ; // 他マシンに接続する( IPv6版 )、非同期版
1819 extern int PreparationListenNetWork( int Port = -1 ) ; // 接続を受けられる状態にする( IPv4版 )
1820 extern int PreparationListenNetWork_IPv6( int Port = -1 ) ; // 接続を受けられる状態にする( IPv6版 )
1821 extern int StopListenNetWork( void ) ; // 接続を受けつけ状態の解除
1822 extern int CloseNetWork( int NetHandle ) ; // 接続を終了する
1823
1824 extern int GetNetWorkAcceptState( int NetHandle ) ; // 接続状態を取得する
1825 extern int GetNetWorkDataLength( int NetHandle ) ; // 受信データの量を得る
1826 extern int GetNetWorkSendDataLength( int NetHandle ) ; // 未送信のデータの量を得る
1827 extern int GetNewAcceptNetWork( void ) ; // 新たに接続した通信回線を得る
1828 extern int GetLostNetWork( void ) ; // 接続を切断された通信回線を得る
1829 extern int GetNetWorkIP( int NetHandle, IPDATA *IpBuf ) ; // 接続先のＩＰを得る( IPv4版 )
1830 extern int GetNetWorkIP_IPv6( int NetHandle, IPDATA_IPv6 *IpBuf ) ; // 接続先のＩＰを得る( IPv6版 )
1831 extern int GetMyIPAddress( IPDATA *IpBuf ) ; // 自分のＩＰを得る
1832 extern int SetConnectTimeOutWait( int Time ) ; // 接続のタイムアウトまでの時間を設定する
1833 extern int SetUseDXNetWorkProtocol( int Flag ) ; // ＤＸライブラリの通信形態を使うかどうかをセットする
1834 extern int GetUseDXNetWorkProtocol( void ) ; // ＤＸライブラリの通信形態を使うかどうかを取得する
1835 extern int SetUseDXProtocol( int Flag ) ; // SetUseDXNetWorkProtocol の別名
1836 extern int GetUseDXProtocol( void ) ; // GetUseDXNetWorkProtocol の別名
1837 extern int SetNetWorkCloseAfterLostFlag( int Flag ) ; // 接続が切断された直後に接続ハンドルを解放するかどうかのフラグをセットする
1838 extern int GetNetWorkCloseAfterLostFlag( void ) ; // 接続が切断された直後に接続ハンドルを解放するかどうかのフラグを取得する
1839 //extern int SetProxySetting( int UseFlag, const char *Address, int Port ) ; // ＨＴＴＰ通信で使用するプロキシ設定を行う
1840 //extern int GetProxySetting( int *UseFlagBuffer, char *AddressBuffer, int *PortBuffer ) ; // ＨＴＴＰ通信で使用するプロキシ設定を取得する
1841 //extern int SetIEProxySetting( void ) ; // ＩＥのプロキシ設定を適応する
1842
1843 extern int NetWorkRecv( int NetHandle, void *Buffer, int Length ) ; // 受信したデータを読み込む
1844 extern int NetWorkRecvToPeek( int NetHandle, void *Buffer, int Length ) ; // 受信したデータを読み込む、読み込んだデータはバッファから削除されない
1845 extern int NetWorkRecvBufferClear( int NetHandle ) ; // 受信したデータをクリアする
1846 extern int NetWorkSend( int NetHandle, void *Buffer, int Length ) ; // データを送信する
1847
1848 extern int MakeUDPSocket( int RecvPort = -1 ) ; // UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります )
1849 extern int MakeUDPSocket_IPv6( int RecvPort = -1 ) ; // UDPを使用した通信を行うソケットハンドルを作成する( RecvPort を -1 にすると送信専用のソケットハンドルになります )( IPv6版 )
1850 extern int DeleteUDPSocket( int NetUDPHandle ) ; // UDPを使用した通信を行うソケットハンドルを削除する
1851 extern int NetWorkSendUDP( int NetUDPHandle, IPDATA SendIP, int SendPort, void *Buffer, int Length ) ; // UDPを使用した通信で指定のＩＰにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます( 戻り値 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない )
1852 extern int NetWorkSendUDP_IPv6( int NetUDPHandle, IPDATA_IPv6 SendIP, int SendPort, void *Buffer, int Length ) ; // UDPを使用した通信で指定のＩＰにデータを送信する、Length は最大65507、SendPort を -1 にすると MakeUDPSocket に RecvPort で渡したポートが使用されます( 戻り値 0以上;送信できたデータサイズ -1:エラー -2:送信データが大きすぎる -3:送信準備ができていない )( IPv6版 )
1853 extern int NetWorkRecvUDP( int NetUDPHandle, IPDATA *RecvIP, int *RecvPort, void *Buffer, int Length, int Peek ) ; // UDPを使用した通信でデータを受信する、Peek に TRUE を渡すと受信に成功してもデータを受信キューから削除しません( 戻り値 0以上:受信したデータのサイズ -1:エラー -2:バッファのサイズが足りない -3:受信データがない )
1854 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版 )
1855 //extern int CheckNetWorkSendUDP( int NetUDPHandle ) ; // UDPを使用した通信でデータが送信できる状態かどうかを調べる( 戻り値 -1:エラー TRUE:送信可能 FALSE:送信不可能 )
1856 extern int CheckNetWorkRecvUDP( int NetUDPHandle ) ; // UDPを使用した通信で新たな受信データが存在するかどうかを調べる( 戻り値 -1:エラー TRUE:受信データあり FALSE:受信データなし )
1857
1858 /* 使用不可
1859 extern int HTTP_FileDownload( const char *FileURL, const char *SavePath = NULL , void **SaveBufferP = NULL , int *FileSize = NULL , char **ParamList = NULL ) ; // HTTP を使用してネットワーク上のファイルをダウンロードする
1860 extern int HTTP_GetFileSize( const char *FileURL ) ; // HTTP を使用してネットワーク上のファイルのサイズを得る
1861
1862 extern int HTTP_StartFileDownload( const char *FileURL, const char *SavePath, void **SaveBufferP = NULL , char **ParamList = NULL ) ; // HTTP を使用したネットワーク上のファイルをダウンロードする処理を開始する
1863 extern int HTTP_StartGetFileSize( const char *FileURL ) ; // HTTP を使用したネットワーク上のファイルのサイズを得る処理を開始する
1864 extern int HTTP_Close( int HttpHandle ) ; // HTTP の処理を終了し、ハンドルを解放する
1865 extern int HTTP_CloseAll( void ) ; // 全てのハンドルに対して HTTP_Close を行う
1866 extern int HTTP_GetState( int HttpHandle ) ; // HTTP 処理の現在の状態を得る( NET_RES_COMPLETE 等 )
1867 extern int HTTP_GetError( int HttpHandle ) ; // HTTP 処理でエラーが発生した場合、エラーの内容を得る( HTTP_ERR_NONE 等 )
1868 extern int HTTP_GetDownloadFileSize( int HttpHandle ) ; // HTTP 処理で対象となっているファイルのサイズを得る( 戻り値: -1 = エラー・若しくはまだファイルのサイズを取得していない 0以上 = ファイルのサイズ )
1869 extern int HTTP_GetDownloadedFileSize( int HttpHandle ) ; // HTTP 処理で既にダウンロードしたファイルのサイズを取得する
1870
1871 extern int fgetsForNetHandle( int NetHandle, char *strbuffer ) ; // fgets のネットワークハンドル版( -1:取得できず 0:取得できた )
1872 extern int URLAnalys( const char *URL, char *HostBuf = NULL , char *PathBuf = NULL , char *FileNameBuf = NULL , int *PortBuf = NULL ) ; // ＵＲＬを解析する
1873 extern int URLConvert( char *URL, int ParamConvert = TRUE , int NonConvert = FALSE ) ; // HTTP に渡せない記号が使われた文字列を渡せるような文字列に変換する( 戻り値: -1 = エラー 0以上 = 変換後の文字列のサイズ )
1874 extern int URLParamAnalysis( char **ParamList, char **ParamStringP ) ; // HTTP 用パラメータリストから一つのパラメータ文字列を作成する( 戻り値: -1 = エラー 0以上 = パラメータの文字列の長さ )
1875 */
1876
1877 #endif // DX_NON_NETWORK
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894 // DxInputString.cpp関数プロトタイプ宣言
1895
1896 #ifndef DX_NON_INPUTSTRING
1897
1898 // 文字コードバッファ操作関係
1899 extern int StockInputChar( TCHAR CharCode ) ; // 文字コードバッファに文字コードをストックする
1900 extern int ClearInputCharBuf( void ) ; // 文字コードバッファをクリアする
1901 extern TCHAR GetInputChar( int DeleteFlag ) ; // 文字コードバッファに溜まったデータから文字コードを一つ取得する
1902 extern TCHAR GetInputCharWait( int DeleteFlag ) ; // 文字コードバッファに溜まったデータから文字コードを一つ取得する、バッファになにも文字コードがない場合は文字コードがバッファに一文字分溜まるまで待つ
1903
1904 extern int GetOneChar( TCHAR *CharBuffer, int DeleteFlag ) ; // 文字コードバッファに溜まったデータから１文字分取得する
1905 extern int GetOneCharWait( TCHAR *CharBuffer, int DeleteFlag ) ; // 文字コードバッファに溜まったデータから１文字分取得する、バッファに何も文字コードがない場合は文字コードがバッファに一文字分溜まるまで待つ
1906 extern int GetCtrlCodeCmp( TCHAR Char ) ; // 指定の文字コードがアスキーコントロールコードか調べる
1907
1908 #endif // DX_NON_INPUTSTRING
1909
1910 #ifndef DX_NON_KEYEX
1911
1912 extern int DrawIMEInputString( int x, int y, int SelectStringNum ) ; // 画面上に入力中の文字列を描画する
1913 extern int SetUseIMEFlag( int UseFlag ) ; // ＩＭＥを使用するかどうかを設定する
1914 extern int SetInputStringMaxLengthIMESync( int Flag ) ; // ＩＭＥで入力できる最大文字数を MakeKeyInput の設定に合わせるかどうかをセットする( TRUE:あわせる FALSE:あわせない(デフォルト) )
1915 extern int SetIMEInputStringMaxLength( int Length ) ; // ＩＭＥで一度に入力できる最大文字数を設定する( 0:制限なし 1以上:指定の文字数で制限 )
1916
1917 #endif // DX_NON_KEYEX
1918
1919 extern int GetStringPoint( const TCHAR *String, int Point ) ; // 全角文字、半角文字入り乱れる中から指定の文字数での半角文字数を得る
1920 extern int GetStringPoint2( const TCHAR *String, int Point ) ; // 全角文字、半角文字入り乱れる中から指定の文字数での全角文字数を得る
1921
1922 #ifndef DX_NON_MFont
1923 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 ) ; // 描画可能領域に収まるように改行しながら文字列を描画
1924 #endif // DX_NON_MFont
1925 extern int DrawObtainsBox( int x1, int y1, int x2, int y2, int AddY, int Color, int FillFlag ) ; // 描画可能領域に収まるように補正を加えながら矩形を描画
1926
1927 #ifndef DX_NON_KEYEX
1928
1929 extern int InputStringToCustom( int x, int y, int BufLength, TCHAR *StrBuffer, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = FALSE ) ; // 文字列の入力取得
1930
1931 extern int KeyInputString( int x, int y, int CharMaxLength, TCHAR *StrBuffer, int CancelValidFlag ) ; // 文字列の入力取得
1932 extern int KeyInputSingleCharString( int x, int y, int CharMaxLength, TCHAR *StrBuffer, int CancelValidFlag ) ; // 半角文字列のみの入力取得
1933 extern int KeyInputNumber( int x, int y, int MaxNum, int MinNum, int CancelValidFlag ) ; // 数値の入力取得
1934
1935 extern int GetIMEInputModeStr( TCHAR *GetBuffer ) ; // IMEの入力モード文字列を取得する
1936 extern IMEINPUTDATA* GetIMEInputData( void ) ; // IMEで入力中の文字列の情報を取得する
1937 #if defined( DX_GCC_COMPILE ) || defined( __ANDROID )
1938 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関数使用時の文字の各色を変更する
1939 #else // defined( DX_GCC_COMPILE ) || defined( __ANDROID )
1940 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関数使用時の文字の各色を変更する
1941 #endif // defined( DX_GCC_COMPILE ) || defined( __ANDROID )
1942 extern int SetKeyInputStringFont( int FontHandle ) ; // キー入力文字列描画関連で使用するフォントのハンドルを変更する(-1でデフォルトのフォントハンドル)
1943 extern int DrawKeyInputModeString( int x, int y ) ; // 入力モード文字列を描画する
1944
1945 extern int InitKeyInput( void ) ; // キー入力データ初期化
1946 extern int MakeKeyInput( int MaxStrLength, int CancelValidFlag, int SingleCharOnlyFlag, int NumCharOnlyFlag, int DoubleCharOnlyFlag = FALSE ) ; // 新しいキー入力ハンドルの作成
1947 extern int DeleteKeyInput( int InputHandle ) ; // キー入力ハンドルの削除
1948 extern int SetActiveKeyInput( int InputHandle ) ; // 指定のキー入力ハンドルをアクティブにする( -1 を指定するとアクティブなキー入力ハンドルが無い状態になります )
1949 extern int GetActiveKeyInput( void ) ; // 現在アクティブになっているキー入力ハンドルを取得する
1950 extern int CheckKeyInput( int InputHandle ) ; // キー入力ハンドルの入力が終了しているか取得する
1951 extern int ReStartKeyInput( int InputHandle ) ; // 入力が完了したキー入力ハンドルを再度編集状態に戻す
1952 extern int ProcessActKeyInput( void ) ; // キー入力ハンドル処理関数
1953 extern int DrawKeyInputString( int x, int y, int InputHandle ) ; // キー入力ハンドルの入力中情報の描画
1954
1955 extern int SetKeyInputSelectArea( int SelectStart, int SelectEnd, int InputHandle ) ; // キー入力ハンドルの指定の領域を選択状態にする( SelectStart と SelectEnd に -1 を指定すると選択状態が解除されます )
1956 extern int GetKeyInputSelectArea( int *SelectStart, int *SelectEnd, int InputHandle ) ; // キー入力ハンドルの選択領域を取得する
1957 extern int SetKeyInputDrawStartPos( int DrawStartPos, int InputHandle ) ; // キー入力ハンドルの描画開始文字位置を設定する
1958 extern int GetKeyInputDrawStartPos( int InputHandle ) ; // キー入力ハンドルの描画開始文字位置を取得する
1959 extern int SetKeyInputCursorBrinkTime( int Time ) ; // キー入力ハンドルのキー入力時のカーソルの点滅する早さをセットする
1960 extern int SetKeyInputCursorBrinkFlag( int Flag ) ; // キー入力ハンドルのキー入力時のカーソルを点滅させるかどうかをセットする
1961 extern int SetKeyInputString( const TCHAR *String, int InputHandle ) ; // キー入力ハンドルに指定の文字列をセットする
1962 extern int SetKeyInputNumber( int Number, int InputHandle ) ; // キー入力ハンドルに指定の数値を文字に置き換えてセットする
1963 extern int SetKeyInputNumberToFloat( float Number, int InputHandle ) ; // キー入力ハンドルに指定の浮動小数点値を文字に置き換えてセットする
1964 extern int GetKeyInputString( TCHAR *StrBuffer, int InputHandle ) ; // キー入力ハンドルの入力中の文字列を取得する
1965 extern int GetKeyInputNumber( int InputHandle ) ; // キー入力ハンドルの入力中の文字列を整数値として取得する
1966 extern float GetKeyInputNumberToFloat( int InputHandle ) ; // キー入力ハンドルの入力中の文字列を浮動小数点値として取得する
1967 extern int SetKeyInputCursorPosition( int Position, int InputHandle ) ; // キー入力ハンドルの現在のカーソル位置を設定する
1968 extern int GetKeyInputCursorPosition( int InputHandle ) ; // キー入力ハンドルの現在のカーソル位置を取得する
1969
1970 #endif // DX_NON_KEYEX
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982 // DxFile.cpp関数プロトタイプ宣言
1983
1984 // ファイルアクセス関数
1985 extern int FileRead_open( const TCHAR *FilePath , int ASync = FALSE ) ; // ファイルを開く
1986 extern int FileRead_size( const TCHAR *FilePath ) ; // ファイルのサイズを取得する
1987 extern int FileRead_close( int FileHandle ) ; // ファイルを閉じる
1988 extern int FileRead_tell( int FileHandle ) ; // ファイルポインタの読み込み位置を取得する
1989 extern int FileRead_seek( int FileHandle , int Offset , int Origin ) ; // ファイルポインタの読み込み位置を変更する
1990 extern int FileRead_read( void *Buffer , int ReadSize , int FileHandle ) ; // ファイルからデータを読み込む
1991 extern int FileRead_idle_chk( int FileHandle ) ; // ファイル読み込みが完了しているかどうかを取得する
1992 extern int FileRead_eof( int FileHandle ) ; // ファイルの読み込み位置が終端に達しているかどうかを取得する
1993 extern int FileRead_gets( TCHAR *Buffer , int BufferSize , int FileHandle ) ; // ファイルから文字列を読み出す
1994 extern TCHAR FileRead_getc( int FileHandle ) ; // ファイルから一文字読み出す
1995 extern int FileRead_scanf( int FileHandle , const TCHAR *Format , ... ) ; // ファイルから書式化されたデータを読み出す
1996
1997 extern DWORD_PTR FileRead_createInfo( const TCHAR *ObjectPath ) ; // ファイル情報ハンドルを作成する( 戻り値 -1:エラー -1以外:ファイル情報ハンドル )
1998 extern int FileRead_getInfoNum( DWORD_PTR FileInfoHandle ) ; // ファイル情報ハンドル中のファイルの数を取得する
1999 extern int FileRead_getInfo( int Index , FILEINFO *Buffer , DWORD_PTR FileInfoHandle ) ; // ファイル情報ハンドル中のファイルの情報を取得する
2000 extern int FileRead_deleteInfo( DWORD_PTR FileInfoHandle ) ; // ファイル情報ハンドルを削除する
2001
2002 extern DWORD_PTR FileRead_findFirst( const TCHAR *FilePath, FILEINFO *Buffer ) ; // 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する( 戻り値: -1=エラー -1以外=ファイル検索ハンドル )
2003 extern int FileRead_findNext( DWORD_PTR FindHandle, FILEINFO *Buffer ) ; // 条件の合致する次のファイルの情報を取得する( 戻り値: -1=エラー 0=成功 )
2004 extern int FileRead_findClose( DWORD_PTR FindHandle ) ; // ファイル検索ハンドルを閉じる( 戻り値: -1=エラー 0=成功 )
2005
2006 // 設定関係関数
2007 extern int GetStreamFunctionDefault( void ) ; // ＤＸライブラリでストリームデータアクセスに使用する関数がデフォルトのものか調べる( TRUE:デフォルトのもの FALSE:デフォルトではない )
2008 extern int ChangeStreamFunction( STREAMDATASHREDTYPE2 *StreamThread ) ; // ＤＸライブラリでストリームデータアクセスに使用する関数を変更する
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021 // DxInput.cpp関数プロトタイプ宣言
2022
2023 #ifndef DX_NON_INPUT
2024
2025 // 入力状態取得関数
2026 extern int CheckHitKey( int KeyCode ) ; // キーボードの押下状態を取得する
2027 extern int CheckHitKeyAll( int CheckType = DX_CHECKINPUT_ALL ) ; // どれか一つでもキーが押されているかどうかを取得( 押されていたら戻り値が 0 以外になる )
2028 extern int GetHitKeyStateAll( DX_CHAR *KeyStateBuf ) ; // すべてのキーの押下状態を取得する( KeyStateBuf:char型256個分の配列の先頭アドレス )
2029 extern int SetKeyExclusiveCooperativeLevelFlag( int Flag ) ; // DirectInput のキーボードの協調レベルを排他レベルにするかどうかを設定する( TRUE:排他レベルにする FALSE:標準レベルにする( デフォルト ) )、DxLib_Init の呼び出し前でのみ実行可能
2030 extern int GetJoypadNum( void ) ; // ジョイパッドが接続されている数を取得する
2031 extern int GetJoypadInputState( int InputType ) ; // ジョイパッドの入力状態を取得する
2032 extern int GetJoypadAnalogInput( int *XBuf, int *YBuf, int InputType ) ; // ジョイパッドのアナログ的なスティック入力情報を得る
2033 extern int GetJoypadAnalogInputRight( int *XBuf, int *YBuf, int InputType ) ; // ( 使用非推奨 )ジョイパッドのアナログ的なスティック入力情報を得る(右スティック用)
2034 extern int GetJoypadDirectInputState( int InputType, DINPUT_JOYSTATE *DInputState ) ; // DirectInput から得られるジョイパッドの生のデータを取得する( DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラー )
2035 extern int KeyboradBufferProcess( void ) ; // キーボードのバッファからデータを取得する処理
2036 extern int GetJoypadGUID( int PadIndex, GUID *GuidBuffer ) ; // ジョイパッドのＧＵIＤを得る
2037 extern int ConvertKeyCodeToVirtualKey( int KeyCode ) ; // ＤＸライブラリのキーコード( KEY_INPUT_A など )に対応する Windows の仮想キーコード( VK_LEFT など ) を取得する( KeyCode:変換したいＤＸライブラリのキーコード　戻り値：Windowsの仮想キーコード )
2038 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 など )その１　　KeyInput2:その２、-1で設定なし　　KeyInput3:その３、-1で設定なし　　KeyInput4:その４、-1で設定なし )
2039 extern int SetJoypadDeadZone( int InputType, double Zone ) ; // ジョイパッドの無効ゾーンの設定を行う( InputType:設定を変更するパッドの識別子( DX_INPUT_PAD1等 ) Zone:新しい無効ゾーン( 0.0 〜 1.0 )、デフォルト値は 0.35 )
2040 extern int StartJoypadVibration( int InputType, int Power, int Time ) ; // ジョイパッドの振動を開始する
2041 extern int StopJoypadVibration( int InputType ) ; // ジョイパッドの振動を停止する
2042 extern int GetJoypadPOVState( int InputType, int POVNumber ) ; // ジョイパッドのＰＯＶ入力の状態を得る( 戻り値　指定のPOVデータの角度、単位は角度の１００倍( 90度なら 9000 ) 中心位置にある場合は -1 が返る )
2043 extern int GetJoypadName( int InputType, TCHAR *InstanceNameBuffer, TCHAR *ProductNameBuffer ) ; // ジョイパッドのデバイス登録名と製品登録名を取得する
2044 extern int ReSetupJoypad( void ) ; // ジョイパッドの再セットアップを行う( 新たに接続されたジョイパッドがあったら検出される )
2045
2046 extern int SetKeyboardNotDirectInputFlag( int Flag ) ; // キーボードの入力処理に DirectInput を使わないかどうかを設定する( TRUE:DirectInput を使わず、Windows標準機能を使用する　　FALSE:DirectInput を使用する )
2047 extern int SetUseDirectInputFlag( int Flag ) ; // 入力処理に DirectInput を使用するかどうかを設定する( TRUE:DirectInput を使用する　　FALSE:DirectInput を使わず、Windows標準機能を使用する )
2048 extern int SetUseJoypadVibrationFlag( int Flag ) ; // ジョイパッドの振動機能を使用するかどうかを設定する( TRUE:使用する　　FALSE:使用しない )
2049
2050 #endif // DX_NON_INPUT
2051
2052
2053
2054
2055
2056
2057
2058 #ifndef DX_NOTUSE_DRAWFUNCTION
2059
2060 // 画像処理系関数プロトタイプ宣言
2061
2062 // グラフィックハンドル作成関係関数
2063 extern int MakeGraph( int SizeX, int SizeY, int NotUse3DFlag = FALSE ) ; // 指定サイズのグラフィックハンドルを作成する
2064 extern int MakeScreen( int SizeX, int SizeY, int UseAlphaChannel = FALSE ) ; // SetDrawScreen で描画対象にできるグラフィックハンドルを作成する
2065 extern int DerivationGraph( int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle ) ; // 指定のグラフィックハンドルの指定部分だけを抜き出して新たなグラフィックハンドルを作成する
2066 extern int DeleteGraph( int GrHandle, int LogOutFlag = FALSE ) ; // グラフィックハンドルを削除する
2067 extern int DeleteSharingGraph( int GrHandle ) ; // 指定のグラフィックハンドルと、同じグラフィックハンドルから派生しているグラフィックハンドル( DerivationGraph で派生したハンドル、LoadDivGraph 読み込んで作成された複数のハンドル )を一度に削除する
2068 extern int GetGraphNum( void ) ; // 有効なグラフィックハンドルの数を取得する
2069 extern int FillGraph( int GrHandle, int Red, int Green, int Blue, int Alpha = 255 ) ; // グラフィックハンドルを指定の色で塗りつぶす
2070 extern int SetGraphLostFlag( int GrHandle, int *LostFlag ) ; // 指定のグラフィックハンドルが削除された際に 1 にする変数のアドレスを設定する
2071 extern int InitGraph( int LogOutFlag = FALSE ) ; // すべてのグラフィックハンドルを削除する
2072 extern int ReloadFileGraphAll( void ) ; // ファイルから画像を読み込んだ全てのグラフィックハンドルについて、再度ファイルから画像を読み込む
2073
2074 // グラフィックハンドルへの画像転送関数
2075 extern int BltBmpToGraph( COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int CopyPointX, int CopyPointY, int GrHandle ) ; // ＢＭＰの内容をグラフィックハンドルに転送
2076 extern int BltBmpToDivGraph( COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int AllNum, int XNum, int YNum, int Width, int Height, int *GrHandle, int ReverseFlag ) ; // ＢＭＰの内容を分割作成したグラフィックハンドルたちに転送
2077 extern int BltBmpOrGraphImageToGraph( COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int BmpFlag, BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, int CopyPointX, int CopyPointY, int GrHandle ) ; // ＢＭＰ か BASEIMAGE をグラフィックハンドルに転送
2078 extern int BltBmpOrGraphImageToGraph2( COLORDATA *BmpColorData, HBITMAP RgbBmp, HBITMAP AlphaBmp, int BmpFlag, BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, RECT *SrcRect, int DestX, int DestY, int GrHandle ) ; // ＢＭＰ か BASEIMAGE の指定の領域をグラフィックハンドルに転送
2079 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 ) ; // ＢＭＰ か BASEIMAGE を分割作成したグラフィックハンドルたちに転送
2080
2081 // 画像からグラフィックハンドルを作成する関数
2082 extern int LoadBmpToGraph( const TCHAR *FileName, int TextureFlag, int ReverseFlag, int SurfaceMode = DX_MOVIESURFACE_NORMAL ) ; // 画像ファイルからグラフィックハンドルを作成する
2083 extern int LoadGraph( const TCHAR *FileName, int NotUse3DFlag = FALSE ) ; // 画像ファイルからグラフィックハンドルを作成する
2084 extern int LoadReverseGraph( const TCHAR *FileName, int NotUse3DFlag = FALSE ) ; // 画像ファイルを反転したものでグラフィックハンドルを作成する
2085 extern int LoadDivGraph( const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int NotUse3DFlag = FALSE ) ; // 画像ファイルを分割してグラフィックハンドルを作成する
2086 extern int LoadDivBmpToGraph( const TCHAR *FileName, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf, int TextureFlag, int ReverseFlag ) ; // 画像ファイルを分割してグラフィックハンドルを作成する
2087 extern int LoadReverseDivGraph( const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int NotUse3DFlag = FALSE ) ; // 画像ファイルを反転したものを分割してグラフィックハンドルを作成する
2088 extern int LoadBlendGraph( const TCHAR *FileName ) ; // 画像ファイルからブレンド用グラフィックハンドルを作成する
2089 #ifdef __WINDOWS__
2090 extern int LoadGraphToResource( int ResourceID ) ; // 画像リソースからグラフィックハンドルを作成する
2091 extern int LoadDivGraphToResource( int ResourceID, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ; // 画像リソースを分割してグラフィックハンドルを作成する
2092 extern int LoadGraphToResource( const TCHAR *ResourceName, const TCHAR *ResourceType ) ; // 画像リソースからグラフィックハンドルを作成する
2093 extern int LoadDivGraphToResource( const TCHAR *ResourceName, const TCHAR *ResourceType, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ; // 画像リソースを分割してグラフィックハンドルを作成する
2094 #endif // __WINDOWS__
2095
2096 extern int CreateGraphFromMem( void *RGBFileImage, int RGBFileImageSize, void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // メモリ上の画像イメージからグラフィックハンドルを作成する
2097 extern int ReCreateGraphFromMem( void *RGBFileImage, int RGBFileImageSize, int GrHandle, void *AlphaFileImage = NULL , int AlphaFileImageSize = 0 , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // メモリ上の画像イメージから既存のグラフィックハンドルにデータを転送する
2098 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 ) ; // メモリ上の画像イメージから分割グラフィックハンドルを作成する
2099 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 ) ; // メモリ上の画像イメージから既存の分割グラフィックハンドルにデータを転送する
2100 extern int CreateGraphFromBmp( BITMAPINFO *RGBBmpInfo, void *RGBBmpImage, BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // ビットマップデータからグラフィックハンドルを作成する
2101 extern int ReCreateGraphFromBmp( BITMAPINFO *RGBBmpInfo, void *RGBBmpImage, int GrHandle, BITMAPINFO *AlphaBmpInfo = NULL , void *AlphaBmpImage = NULL , int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // ビットマップデータから既存のグラフィックハンドルにデータを転送する
2102 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 ) ; // ビットマップデータから分割グラフィックハンドルを作成する
2103 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 ) ; // ビットマップデータから既存の分割グラフィックハンドルにデータを転送する
2104 extern int CreateDXGraph( BASEIMAGE *RgbImage, BASEIMAGE *AlphaImage, int TextureFlag ) ; // 基本イメージデータからサイズを割り出し、それに合ったグラフィックハンドルを作成する
2105 extern int CreateGraphFromGraphImage( BASEIMAGE *RGBImage, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータからグラフィックハンドルを作成する
2106 extern int CreateGraphFromGraphImage( BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータからグラフィックハンドルを作成する
2107 extern int ReCreateGraphFromGraphImage( BASEIMAGE *RGBImage, int GrHandle, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータから既存のグラフィックハンドルにデータを転送する
2108 extern int ReCreateGraphFromGraphImage( BASEIMAGE *RGBImage, BASEIMAGE *AlphaImage, int GrHandle, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータから既存のグラフィックハンドルにデータを転送する
2109 extern int CreateDivGraphFromGraphImage( BASEIMAGE *RGBImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータから分割グラフィックハンドルを作成する
2110 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 ) ; // 基本イメージデータから分割グラフィックハンドルを作成する
2111 extern int ReCreateDivGraphFromGraphImage( BASEIMAGE *RGBImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf, int TextureFlag = TRUE , int ReverseFlag = FALSE ) ; // 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
2112 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 ) ; // 基本イメージデータから既存の分割グラフィックハンドルにデータを転送する
2113 extern int CreateGraph( int Width, int Height, int Pitch, void *RGBImage, void *AlphaImage = NULL , int GrHandle = -1 ) ; // メモリ上のビットマップイメージからグラフィックハンドルを作成する
2114 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 ) ; // メモリ上のビットマップイメージから分割グラフィックハンドルを作成する
2115 extern int ReCreateGraph( int Width, int Height, int Pitch, void *RGBImage, int GrHandle, void *AlphaImage = NULL ) ; // メモリ上のビットマップイメージからグラフィックハンドルを再作成する
2116 #ifndef DX_NON_SOFTIMAGE
2117 extern int CreateBlendGraphFromSoftImage( int SIHandle ) ; // ソフトウエアで扱うイメージからブレンド用画像グラフィックハンドルを作成する( -1:エラー -1以外:ブレンド用グラフィックハンドル )
2118 extern int CreateGraphFromSoftImage( int SIHandle ) ; // ソフトウエアで扱うイメージからグラフィックハンドルを作成する( -1:エラー -1以外:グラフィックハンドル )
2119 extern int CreateGraphFromRectSoftImage( int SIHandle, int x, int y, int SizeX, int SizeY ) ; // ソフトウエアで扱うイメージの指定の領域を使ってグラフィックハンドルを作成する( -1:エラー -1以外:グラフィックハンドル )
2120 extern int ReCreateGraphFromSoftImage( int SIHandle, int GrHandle ) ; // ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
2121 extern int ReCreateGraphFromRectSoftImage( int SIHandle, int x, int y, int SizeX, int SizeY, int GrHandle ) ; // ソフトウエアで扱うイメージから既存のグラフィックハンドルに画像データを転送する
2122 extern int CreateDivGraphFromSoftImage( int SIHandle, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf ) ; // ソフトウエアで扱うイメージから分割グラフィックハンドルを作成する
2123 #endif // DX_NON_SOFTIMAGE
2124 extern int CreateGraphFromBaseImage( BASEIMAGE *BaseImage ) ; // 基本イメージデータからグラフィックハンドルを作成する
2125 extern int CreateGraphFromRectBaseImage( BASEIMAGE *BaseImage, int x, int y, int SizeX, int SizeY ) ; // 基本イメージデータの指定の領域を使ってグラフィックハンドルを作成する
2126 extern int ReCreateGraphFromBaseImage( BASEIMAGE *BaseImage, int GrHandle ) ; // 基本イメージデータから既存のグラフィックハンドルに画像データを転送する
2127 extern int ReCreateGraphFromRectBaseImage( BASEIMAGE *BaseImage, int x, int y, int SizeX, int SizeY, int GrHandle ) ; // 基本イメージデータの指定の領域を使って既存のグラフィックハンドルに画像データを転送する
2128 extern int CreateDivGraphFromBaseImage( BASEIMAGE *BaseImage, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf ) ; // 基本イメージデータから分割グラフィックハンドルを作成する
2129 extern int ReloadGraph( const TCHAR *FileName, int GrHandle, int ReverseFlag = FALSE ) ; // 画像ファイルからグラフィックハンドルへ画像データを転送する
2130 extern int ReloadDivGraph( const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf, int ReverseFlag = FALSE ) ; // 画像ファイルからグラフィックハンドルたちへ画像データを分割転送する
2131 extern int ReloadReverseGraph( const TCHAR *FileName, int GrHandle ) ; // ReloadGraph の画像反転処理追加版
2132 extern int ReloadReverseDivGraph( const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ; // ReloadDivGraph の画像反転処理追加版
2133
2134 // グラフィックハンドル作成時設定係関数
2135 extern int SetGraphColorBitDepth( int ColorBitDepth ) ; // SetCreateGraphColorBitDepth の旧名称
2136 extern int GetGraphColorBitDepth( void ) ; // GetCreateGraphColorBitDepth の旧名称
2137 extern int SetCreateGraphColorBitDepth( int BitDepth ) ; // 作成するグラフィックハンドルの色深度を設定する
2138 extern int GetCreateGraphColorBitDepth( void ) ; // 作成するグラフィックハンドルの色深度を取得する
2139 extern int SetCreateGraphChannelBitDepth( int BitDepth ) ; // 作成するグラフィックハンドルの１チャンネル辺りのビット深度を設定する
2140 extern int GetCreateGraphChannelBitDepth( void ) ; // 作成するグラフィックハンドルの１チャンネル辺りのビット深度を取得する
2141 extern int SetDrawValidGraphCreateFlag( int Flag ) ; // SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定する( TRUE:描画可能グラフィックハンドルを作成する FLASE:通常のグラフィックハンドルを作成する( デフォルト ) )
2142 extern int GetDrawValidGraphCreateFlag( void ) ; // SetDrawScreen に引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成するかどうかを設定を取得する
2143 extern int SetDrawValidFlagOf3DGraph( int Flag ) ; // SetDrawValidGraphCreateFlag の旧名称
2144 extern int SetLeftUpColorIsTransColorFlag( int Flag ) ; // 画像ファイルからグラフィックハンドルを作成する際に画像左上の色を透過色として扱うかどうかを設定する( TRUE:透過色として扱う 　FALSE:透過色として扱わない( デフォルト ) )
2145 extern int SetUseBlendGraphCreateFlag( int Flag ) ; // ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を行う( TRUE:ブレンド画像として読み込む FALSE:通常画像として読み込む( デフォルト ) )
2146 extern int GetUseBlendGraphCreateFlag( void ) ; // ブレンド処理用画像を作成するかどうか( 要は画像の赤成分をα成分として扱うかどうか )の設定を取得する
2147 extern int SetUseAlphaTestGraphCreateFlag( int Flag ) ; // アルファテストを使用するグラフィックハンドルを作成するかどうかを設定する( TRUE:アルファテストを使用する( デフォルト ) FALSE:アルファテストを使用しない )
2148 extern int GetUseAlphaTestGraphCreateFlag( void ) ; // アルファテストを使用するグラフィックハンドルを作成するかどうかを取得する
2149 extern int SetUseAlphaTestFlag( int Flag ) ; // SetUseAlphaTestGraphCreateFlag の旧名称
2150 extern int GetUseAlphaTestFlag( void ) ; // GetUseAlphaTestGraphCreateFlag の旧名称
2151 extern int SetUseNoBlendModeParam( int Flag ) ; // SetDrawBlendMode 関数の第一引数に DX_BLENDMODE_NOBLEND を代入した際に、デフォルトでは第二引数は内部で２５５を指定したことになるが、その自動２５５化をしないかどうかを設定する( TRUE:しない(第二引数の値が使用される) FALSE:する(第二引数の値は無視されて 255 が常に使用される)(デフォルト) )αチャンネル付き画像に対して描画を行う場合のみ意味がある関数
2152 extern int SetDrawValidAlphaChannelGraphCreateFlag( int Flag ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )( TRUE:αチャンネル付き FALSE:αチャンネルなし( デフォルト ) )
2153 extern int GetDrawValidAlphaChannelGraphCreateFlag( void ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )αチャンネル付きグラフィックハンドルを作成するかどうかを取得する
2154 extern int SetDrawValidFloatTypeGraphCreateFlag( int Flag ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを設定する( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )、グラフィックスデバイスが浮動小数点型のピクセルフォーマットに対応していない場合はグラフィックハンドルの作成に失敗する( TRUE:浮動小数点型　　FALSE:整数型( デフォルト ) )
2155 extern int GetDrawValidFloatTypeGraphCreateFlag( void ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )ピクセルフォーマットが浮動小数点型のグラフィックハンドルを作成するかどうかを取得する
2156 extern int SetDrawValidGraphCreateZBufferFlag( int Flag ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のＺバッファも作成するかどうかを設定する( TRUE:専用のＺバッファを作成する( デフォルト ) FALSE:専用のＺバッファは作成しない )
2157 extern int GetDrawValidGraphCreateZBufferFlag( void ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルを作成する際に専用のＺバッファも作成するかどうかを取得する
2158 extern int SetCreateDrawValidGraphChannelNum( int ChannelNum ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を設定する( ChannelNum:チャンネル数( 指定可能な値は 1, 2, 4 の何れか( SetDrawValidGraphCreateFlag 関数で描画対象として使用できるグラフィックハンドルを作成するように設定されていないと効果ありません )
2159 extern int GetCreateDrawValidGraphChannelNum( void ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用する色のチャンネル数を取得する
2160 extern int SetDrawValidMultiSample( int Samples, int Quality ) ; // SetDrawScreen の引数として渡せる( 描画対象として使用できる )グラフィックハンドルに適用するマルチサンプリング( アンチエイリアシング )設定を行う( Samples:マルチサンプル処理に使用するドット数( 多いほど重くなります ) Quality:マルチサンプル処理の品質 )
2161 extern int GetMultiSampleQuality( int Samples ) ; // 指定のマルチサンプル数で使用できる最大クオリティ値を取得する( 戻り値がマイナスの場合は引数のサンプル数が使用できないことを示します )
2162 extern int SetUseTransColor( int Flag ) ; // 透過色機能を使用するかどうかを設定する( TRUE:使用する( デフォルト ) FALSE:使用しない )
2163 extern int SetUseTransColorGraphCreateFlag( int Flag ) ; // 透過色機能を使用することを前提とした画像データの読み込み処理を行うかどうかを設定する( TRUE にすると SetDrawMode( DX_DRAWMODE_BILINEAR ); をした状態で DrawGraphF 等の浮動小数点型座標を受け取る関数で小数点以下の値を指定した場合に発生する描画結果の不自然を緩和する効果があります ( デフォルトは FALSE ) )
2164 extern int SetUseGraphAlphaChannel( int Flag ) ; // SetUseAlphaChannelGraphCreateFlag の旧名称
2165 extern int GetUseGraphAlphaChannel( void ) ; // GetUseAlphaChannelGraphCreateFlag の旧名称
2166 extern int SetUseAlphaChannelGraphCreateFlag( int Flag ) ; // αチャンネル付きグラフィックハンドルを作成するかどうかを設定する( TRUE:αチャンネル付き FALSE:αチャンネル無し )
2167 extern int GetUseAlphaChannelGraphCreateFlag( void ) ; // αチャンネル付きグラフィックハンドルを作成するかどうかを取得する( TRUE:αチャンネル付き FALSE:αチャンネル無し )
2168 extern int SetUseNotManageTextureFlag( int Flag ) ; // Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを設定する( TRUE:管理機能を使用する( デフォルト ) FALSE:管理機能を使用しない )、管理機能を使用するとグラフィックスデバイスのＶＲＡＭ容量以上の画像を扱うことができる代わりにシステムメモリの使用量が増えます
2169 extern int GetUseNotManageTextureFlag( void ) ; // Direct3D の管理テクスチャ機能を使用するグラフィックハンドルを作成するかどうかを取得する
2170 extern int SetTransColor( int Red, int Green, int Blue ) ; // 作成するグラフィックハンドルに適用する透過色を設定する( Red,Green,Blue:透過色を光の３原色で表したもの( 各色０〜２５５ ) )
2171 extern int GetTransColor( int *Red, int *Green, int *Blue ) ; // 作成するグラフィックハンドルに適用する透過色を取得する
2172 extern int SetUseDivGraphFlag( int Flag ) ; // ２のｎ乗ではないサイズの画像を複数のテクスチャを使用してＶＲＡＭの無駄を省くかどうかを設定する( TRUE:複数のテクスチャを使用する FALSE:なるべく一枚のテクスチャで済ます( デフォルト ) )、複数のテクスチャを使用する場合はＶＲＡＭ容量の節約ができる代わりに速度の低下やバイリニアフィルタリング描画時にテクスチャとテクスチャの境目が良く見るとわかる等の弊害があります
2173 extern int SetUseMaxTextureSize( int Size ) ; // 使用するテクスチャーの最大サイズを設定する( デフォルトではグラフィックスデバイスが対応している最大テクスチャーサイズ、引数に 0 を渡すとデフォルト設定になります )
2174 extern int SetUseGraphBaseDataBackup( int Flag ) ; // グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを設定する( TRUE:バックアップをする( デフォルト ) FALSE:バックアップをしない )、バックアップをしないとメモリの節約になりますが、復帰に掛かる時間が長くなり、メモリ上のファイルイメージからグラフィックハンドルを作成した場合は自動復帰ができないなどの弊害があります
2175 extern int GetUseGraphBaseDataBackup( void ) ; // グラフィックハンドルを作成する際に使用した画像データのバックアップをして Direct3DDevice のデバイスロスト時に使用するかどうかを取得する
2176 extern int SetUsMSystemMemGraphCreateFlag( int Flag ) ; // ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを設定する( TRUE:システムメモリ上に作成 FALSE:ＶＲＡＭ上に作成( デフォルト ) )
2177 extern int GetUsMSystemMemGraphCreateFlag( void ) ; // ( 現在効果なし )グラフィックハンドルが持つ画像データをシステムメモリ上に作成するかどうかを取得する
2178
2179 // 画像情報関係関数
2180 extern DWORD* GetFullColorImage( int GrHandle ) ; // 指定のグラフィックハンドルのＡＲＧＢ８イメージを取得する( 現在動画ファイルをグラフィックハンドルで読み込んだ場合のみ使用可能 )
2181
2182 extern int GraphLock( int GrHandle, int *PitchBuf, void **DataPointBuf, COLORDATA **ColorDataPP = NULL ) ; // グラフィックメモリ領域のロック
2183 extern int GraphUnLock( int GrHandle ) ; // グラフィックメモリ領域のロック解除
2184
2185 extern int SetUseGraphZBuffer( int GrHandle, int UseFlag ) ; // グラフィックハンドル専用のＺバッファを持つかどうかを設定する( GrHandle:対象となるグラフィックハンドル( 描画対象として使用可能なグラフィックハンドルのみ有効 ) UseFlag:専用のＺバッファを持つかどうか( TRUE:持つ( デフォルト ) FALSE:持たない ) )
2186 extern int CopyGraphZBufferImage( int DestGrHandle, int SrcGrHandle ) ; // グラフィックハンドルのＺバッファの状態を別のグラフィックハンドルのＺバッファにコピーする( DestGrHandle も SrcGrHandle もＺバッファを持っている描画対象にできるグラフィックハンドルで、サイズが同じであり、且つマルチサンプリング( アンチエイリアス )設定が無いことが条件 )
2187
2188 extern int GetGraphSize( int GrHandle, int *SizeXBuf, int *SizeYBuf ) ; // グラフィックハンドルが持つ画像のサイズを得る
2189 extern int GetGraphTextureSize( int GrHandle, int *SizeXBuf, int *SizeYBuf ) ; // グラフィックハンドルが持つ一つ目のテクスチャのサイズを得る
2190 extern int GetGraphMipmapCount( int GrHandle ) ; // グラフィックハンドルが持つテクスチャのミップマップレベル数を取得する
2191 extern int GetGraphFilePath( int GrHandle, TCHAR *FilePathBuffer ) ; // グラフィックハンドルが画像ファイルから読み込まれていた場合、その画像のファイルパスを取得する
2192
2193 extern COLORDATA* GetTexColorData( int AlphaCh, int AlphaTest, int ColorBitDepth, int DrawValid = FALSE ) ; // カラーデータを得る
2194 extern COLORDATA* GetTexColorData( IMAGEFORMATDESC *Format ) ; // フォーマットに基づいたカラーデータを得る
2195 extern COLORDATA* GetTexColorData( int FormatIndex ) ; // 指定のフォーマットインデックスのカラーデータを得る
2196 extern int GetMaxGraphTextureSize( int *SizeX, int *SizeY ) ; // グラフィックスデバイスが対応している最大テクスチャサイズを取得する
2197 extern int GetValidRestoreShredPoint( void ) ; // グラフィックハンドルの画像を復元する関数が登録されているかどうかを取得する( TRUE:登録されている FALSE:登録されていない )
2198 extern int GetCreateGraphColorData( COLORDATA *ColorData, IMAGEFORMATDESC *Format ) ; // これから新たにグラフィックを作成する場合に使用するカラー情報を取得する
2199
2200 // 画像パレット操作関係関数( ソフトウエア画像のみ使用可能 )
2201 extern int GetGraphPalette( int GrHandle, int ColorIndex, int *Red, int *Green, int *Blue ) ; // グラフィックハンドルのパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
2202 extern int GetGraphOriginalPalette( int GrHandle, int ColorIndex, int *Red, int *Green, int *Blue ) ; // グラフィックハンドルの SetGraphPalette で変更する前のパレットを取得する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
2203 extern int SetGraphPalette( int GrHandle, int ColorIndex, int Color ) ; // グラフィックハンドルのパレットを変更する( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
2204 extern int ResetGraphPalette( int GrHandle ) ; // SetGraphPalette で変更したパレットを全て元に戻す( ソフトウエアレンダリングモードで、且つパレット画像の場合のみ使用可能 )
2205
2206 // 図形描画関数
2207 extern int DrawLine( int x1, int y1, int x2, int y2, int Color, int Thickness = 1 ) ; // 線を描画する
2208 extern int DrawBox( int x1, int y1, int x2, int y2, int Color, int FillFlag ) ; // 四角形の描画する
2209 extern int DrawFillBox( int x1, int y1, int x2, int y2, int Color ) ; // 中身を塗りつぶす四角形を描画する
2210 extern int DrawLineBox( int x1, int y1, int x2, int y2, int Color ) ; // 枠だけの四角形の描画 する
2211 extern int DrawCircle( int x, int y, int r, int Color, int FillFlag = TRUE ) ; // 円を描画する
2212 extern int DrawOval( int x, int y, int rx, int ry, int Color, int FillFlag ) ; // 楕円を描画する
2213 extern int DrawTriangle( int x1, int y1, int x2, int y2, int x3, int y3, int Color, int FillFlag ) ; // 三角形を描画する
2214 extern int DrawQuadrangle( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int Color, int FillFlag ) ; // 四角形を描画する
2215 extern int DrawPixel( int x, int y, int Color ) ; // 点を描画する
2216
2217 extern int Paint( int x, int y, int FillColor, int BoundaryColor = -1 ) ; // 指定点から境界色があるところまで塗りつぶす(境界色を -1 にすると指定点の色の領域を塗りつぶす)
2218
2219 extern int DrawPixelSet( POINTDATA *PointData, int Num ) ; // 点の集合を描画する
2220 extern int DrawLineSet( LINEDATA *LineData, int Num ) ; // 線の集合を描画する
2221
2222 extern int DrawPixel3D( VECTOR Pos, int Color ) ; // ３Ｄの点を描画する
2223 extern int DrawLine3D( VECTOR Pos1, VECTOR Pos2, int Color ) ; // ３Ｄの線分を描画する
2224 extern int DrawTriangle3D( VECTOR Pos1, VECTOR Pos2, VECTOR Pos3, int Color, int FillFlag ) ; // ３Ｄの三角形を描画する
2225 extern int DrawCube3D( VECTOR Pos1, VECTOR Pos2, int DifColor, int SpcColor, int FillFlag ) ; // ３Ｄの立方体を描画する
2226 extern int DrawSphere3D( VECTOR CenterPos, float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ; // ３Ｄの球体を描画する
2227 extern int DrawCapsule3D( VECTOR Pos1, VECTOR Pos2, float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ; // ３Ｄのカプセルを描画する
2228 extern int DrawCone3D( VECTOR TopPos, VECTOR BottomPos, float r, int DivNum, int DifColor, int SpcColor, int FillFlag ) ; // ３Ｄの円錐を描画する
2229
2230 // 画像描画関数
2231 extern int LoadGraphScreen( int x, int y, const TCHAR *GraphName, int TransFlag ) ; // 画像ファイルを読みこんで画面に描画する
2232
2233 extern int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ; // 画像の等倍描画
2234 extern int DrawExtendGraph( int x1, int y1, int x2, int y2, int GrHandle, int TransFlag ) ; // 画像の拡大描画
2235 extern int DrawRotaGraph( int x, int y, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画
2236 extern int DrawRotaGraph2( int x, int y, int cx, int cy, double ExtRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画２( 回転中心指定付き )
2237 extern int DrawRotaGraph3( int x, int y, int cx, int cy, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画３( 回転中心指定付き＋縦横拡大率別指定版 )
2238 extern int DrawModiGraph( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int GrHandle, int TransFlag ) ; // 画像の自由変形描画
2239 extern int DrawTurnGraph( int x, int y, int GrHandle, int TransFlag ) ; // 画像の左右反転描画
2240
2241 extern int DrawGraphF( float xf, float yf, int GrHandle, int TransFlag ) ; // 画像の描画( 座標指定が float 版 )
2242 extern int DrawExtendGraphF( float x1f, float y1f, float x2f, float y2, int GrHandle, int TransFlag ) ; // 画像の拡大描画( 座標指定が float 版 )
2243 extern int DrawRotaGraphF( float xf, float yf, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画( 座標指定が float 版 )
2244 extern int DrawRotaGraph2F( float xf, float yf, float cxf, float cyf, double ExtRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画２( 回転中心指定付き )( 座標指定が float 版 )
2245 extern int DrawRotaGraph3F( float xf, float yf, float cxf, float cyf, double ExtRateX, double ExtRateY, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転描画３( 回転中心指定付き＋縦横拡大率別指定版 )( 座標指定が float 版 )
2246 extern int DrawModiGraphF( float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int GrHandle, int TransFlag ) ; // 画像の自由変形描画( 座標指定が float 版 )
2247 extern int DrawTurnGraphF( float xf, float yf, int GrHandle, int TransFlag ) ; // 画像の左右反転描画( 座標指定が float 版 )
2248
2249 extern int DrawChipMap( int Sx, int Sy, int XNum, int YNum, int *MapData, int ChipTypeNum, int MapDataPitch, int *ChipGrHandle, int TransFlag ) ; // チップ画像を使った２Ｄマップ描画
2250 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 ) ; // チップ画像を使った２Ｄマップ描画
2251 extern int DrawTile( int x1, int y1, int x2, int y2, int Tx, int Ty, double ExtRate, double Angle, int GrHandle, int TransFlag ) ; // 画像を指定領域にタイル状に描画する
2252
2253 extern int DrawRectGraph( int DestX, int DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int TurnFlag ) ; // 画像の指定矩形部分のみを等倍描画
2254 extern int DrawRectExtendGraph( int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag ) ; // 画像の指定矩形部分のみを拡大描画
2255 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 ) ; // 画像の指定矩形部分のみを回転描画
2256 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 ) ; // 画像の指定矩形部分のみを回転描画２( 回転中心指定付き )
2257 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 ) ; // 画像の指定矩形部分のみを回転描画３( 回転中心指定付き＋縦横拡大率別指定版 )
2258
2259 extern int DrawRectGraphF( float DestX, float DestY, int SrcX, int SrcY, int Width, int Height, int GraphHandle, int TransFlag, int TurnFlag ) ; // 画像の指定矩形部分のみを等倍描画( 座標指定が float 版 )
2260 extern int DrawRectExtendGraphF( float DestX1, float DestY1, float DestX2, float DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag ) ; // 画像の指定矩形部分のみを拡大描画( 座標指定が float 版 )
2261 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 版 )
2262 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 ) ; // 画像の指定矩形部分のみを回転描画２( 回転中心指定付き )( 座標指定が float 版 )
2263 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 ) ; // 画像の指定矩形部分のみを回転描画３( 回転中心指定付き＋縦横拡大率別指定版 )( 座標指定が float 版 )
2264
2265 extern int DrawBlendGraph( int x, int y, int GrHandle, int TransFlag, int BlendGraph, int BorderParam, int BorderRange ) ; // ブレンド画像と合成して画像を等倍描画する
2266 extern int DrawBlendGraphPos( int x, int y, int GrHandle, int TransFlag, int bx, int by, int BlendGraph, int BorderParam, int BorderRange ) ; // ブレンド画像と合成して画像を等倍描画する( ブレンド画像の起点座標を指定する引数付き )
2267
2268 extern int DrawCircleGauge( int CenterX, int CenterY, double Percent, int GrHandle ) ; // 円グラフ的な描画を行う( GrHandle の画像の上下左右の端は透過色にしておく必要があります )
2269
2270 extern int DrawGraphToZBuffer( int X, int Y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // Ｚバッファに対して画像の等倍描画
2271 extern int DrawTurnGraphToZBuffer( int x, int y, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // Ｚバッファに対して画像の左右反転描画
2272 extern int DrawExtendGraphToZBuffer( int x1, int y1, int x2, int y2, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // Ｚバッファに対して画像の拡大描画
2273 extern int DrawRotaGraphToZBuffer( int x, int y, double ExRate, double Angle, int GrHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int TurnFlag = FALSE ) ; // Ｚバッファに対して画像の回転描画
2274 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 ) ; // Ｚバッファに対して画像の回転描画２( 回転中心指定付き )
2275 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 ) ; // Ｚバッファに対して画像の回転描画３( 回転中心指定付き＋縦横拡大率別指定版 )
2276 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 等 */ ) ; // Ｚバッファに対して画像の自由変形描画
2277 extern int DrawBoxToZBuffer( int x1, int y1, int x2, int y2, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // Ｚバッファに対して矩形の描画
2278 extern int DrawCircleToZBuffer( int x, int y, int r, int FillFlag, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // Ｚバッファに対して円の描画
2279
2280 extern int DrawPolygon( VERTEX *Vertex, int PolygonNum, int GrHandle, int TransFlag, int UVScaling = FALSE ) ; // ２Ｄポリゴンを描画する( Vertex:三角形を形成する頂点配列の先頭アドレス( 頂点の数はポリゴンの数×３ ) PolygonNum:描画するポリゴンの数 GrHandle:使用するグラフィックハンドル TransFlag:透過色処理を行うかどうか( TRUE:行う FALSE:行わない ) UVScaling:基本FALSEでOK )
2281 extern int DrawPolygon2D( VERTEX2D *Vertex, int PolygonNum, int GrHandle, int TransFlag ) ; // ２Ｄポリゴンを描画する
2282 extern int DrawPolygon3D( VERTEX3D *Vertex, int PolygonNum, int GrHandle, int TransFlag ) ; // ３Ｄポリゴンを描画する
2283 extern int DrawPolygonIndexed2D( VERTEX2D *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum, int GrHandle, int TransFlag ) ; // ２Ｄポリゴンを描画する( 頂点インデックスを使用 )
2284 extern int DrawPolygonIndexed3D( VERTEX3D *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum, int GrHandle, int TransFlag ) ; // ３Ｄポリゴンを描画する( 頂点インデックスを使用 )
2285 extern int DrawPolygonIndexed3DBase( VERTEX_3D *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ３Ｄポリゴンを描画する( 頂点インデックスを使用 )( 旧バージョン用 )
2286 extern int DrawPolygon3DBase( VERTEX_3D *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ３Ｄポリゴンを描画する( 旧バージョン用 )
2287 extern int DrawPolygon3D( VERTEX_3D *Vertex, int PolygonNum, int GrHandle, int TransFlag ) ; // ３Ｄポリゴンを描画する( 旧バージョン用 )
2288
2289 extern int DrawPolygonBase( VERTEX *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag, int UVScaling = FALSE ) ; // ２Ｄプリミティブを描画する
2290 extern int DrawPrimitive2D( VERTEX2D *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ２Ｄプリミティブを描画する
2291 extern int DrawPrimitive3D( VERTEX3D *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ３Ｄプリミティブを描画する
2292 extern int DrawPrimitiveIndexed2D( VERTEX2D *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ２Ｄプリミティブを描画する(頂点インデックス使用)
2293 extern int DrawPrimitiveIndexed3D( VERTEX3D *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // ３Ｄプリミティブを描画する(頂点インデックス使用)
2294
2295 extern int DrawPolygon3D_UseVertexBuffer( int VertexBufHandle, int GrHandle, int TransFlag ) ; // 頂点バッファを使用して３Ｄポリゴンを描画する
2296 extern int DrawPrimitive3D_UseVertexBuffer( int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // 頂点バッファを使用して３Ｄプリミティブを描画する
2297 extern int DrawPrimitive3D_UseVertexBuffer2( int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int StartVertex, int UseVertexNum, int GrHandle, int TransFlag ) ; // 頂点バッファを使用して３Ｄプリミティブを描画する
2298 extern int DrawPolygonIndexed3D_UseVertexBuffer( int VertexBufHandle, int IndexBufHandle, int GrHandle, int TransFlag ) ; // 頂点バッファとインデックスバッファを使用して３Ｄポリゴンを描画する
2299 extern int DrawPrimitiveIndexed3D_UseVertexBuffer( int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int GrHandle, int TransFlag ) ; // 頂点バッファとインデックスバッファを使用して３Ｄプリミティブを描画する
2300 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 ) ; // 頂点バッファとインデックスバッファを使用して３Ｄプリミティブを描画する
2301
2302 extern int DrawGraph3D( float x, float y, float z, int GrHandle, int TransFlag ) ; // 画像の３Ｄ描画
2303 extern int DrawExtendGraph3D( float x, float y, float z, double ExRateX, double ExRateY, int GrHandle, int TransFlag ) ; // 画像の拡大３Ｄ描画
2304 extern int DrawRotaGraph3D( float x, float y, float z, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // 画像の回転３Ｄ描画
2305 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 ) ; // 画像の回転３Ｄ描画(回転中心指定型)
2306 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 ) ; // 画像の自由変形３Ｄ描画
2307 extern int DrawBillboard3D( VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ; // ３Ｄ空間上に画像を描画
2308
2309
2310 // 描画設定関係関数
2311 extern int SetDrawMode( int DrawMode ) ; // 描画モードを設定する
2312 extern int GetDrawMode( void ) ; // 描画モードを取得する
2313 extern int SetDrawBlendMode( int BlendMode, int BlendParam ) ; // 描画ブレンドモードを設定する
2314 extern int GetDrawBlendMode( int *BlendMode, int *BlendParam ) ; // 描画ブレンドモードを取得する
2315 extern int SetDrawAlphaTest( int TestMode, int TestParam ) ; // 描画時のアルファテストの設定を行う( TestMode:テストモード( DX_CMP_GREATER等 -1でデフォルト動作に戻す ) TestParam:描画アルファ値との比較に使用する値( 0〜255 ) )
2316 extern int SetBlendGraph( int BlendGraph, int BorderParam, int BorderRange ) ; // ( SetBlendGraphParam の BlendType = DX_BLENDGRAPHTYPE_WIPE の処理を行う旧関数 )描画処理時に描画する画像とブレンドするαチャンネル付き画像をセットする( BlendGraph を -1 でブレンド機能を無効 )
2317 extern int SetBlendGraphParam( int BlendGraph, int BlendType, ... ) ; // 描画処理時に描画する画像とブレンドする画像のブレンド設定を行う、BlendGraph を -1 にすれば設定を解除、その場合 BlendType とその後ろのパラメータは無視される
2318 // int SetBlendGraphParam( int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_NORMAL, int Ratio = ( 0( ブレンド率０％ )〜255( ブレンド率１００％ ) ) ) ;
2319 // int SetBlendGraphParam( int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_WIPE, int BorderParam, int BorderRange ) ;
2320 // int SetBlendGraphParam( int BlendGraph, int BlendType = DX_BLENDGRAPHTYPE_ALPHA ) ;
2321 extern int SetBlendGraphPosition( int x, int y ) ; // ブレンド画像の起点座標をセットする
2322 extern int SetDrawBright( int RedBright, int GreenBright, int BlueBright ) ; // 描画輝度を設定する
2323 extern int GetDrawBright( int *Red, int *Green, int *Blue ) ; // 描画輝度を取得する
2324 extern int SetIgnoreDrawGraphColor( int EnableFlag ) ; // 描画する画像のＲＧＢ成分を無視するかどうかを指定する( EnableFlag:この機能を使うかどうか( TRUE:使う FALSE:使わない( デフォルト ) ) )
2325 extern int SetMaxAnisotropy( int MaxAnisotropy ) ; // 最大異方性値を設定する
2326
2327 extern int SetUseZBufferFlag( int Flag ) ; // Ｚバッファを使用するかどうかを設定する( ２Ｄと３Ｄ描画に影響 )( TRUE:Ｚバッファを使用する FALSE:Ｚバッファを使用しない( デフォルト ) )
2328 extern int SetWriteZBufferFlag( int Flag ) ; // Ｚバッファに書き込みを行うかどうかを設定する( ２Ｄと３Ｄ描画に影響 )( TRUE:書き込みを行う FALSE:書き込みを行わない( デフォルト ) )
2329 extern int SetZBufferCmpType( int CmpType /* DX_CMP_NEVER 等 */ ) ; // ＺバッファのＺ値と書き込むＺ値との比較モードを設定する( ２Ｄと３Ｄ描画に影響 )( CmpType:DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) )
2330 extern int SetZBias( int Bias ) ; // 書き込むＺ値のバイアスを設定する( ２Ｄと３Ｄ描画に影響 )( Bias:バイアス値( デフォルト:0 ) )
2331 extern int SetUseZBuffer3D( int Flag ) ; // Ｚバッファを使用するかどうかを設定する( ３Ｄ描画のみに影響 )( TRUE:Ｚバッファを使用する FALSE:Ｚバッファを使用しない( デフォルト ) )
2332 extern int SetWriteZBuffer3D( int Flag ) ; // Ｚバッファに書き込みを行うかどうかを設定する( ３Ｄ描画のみに影響 )( TRUE:書き込みを行う FALSE:書き込みを行わない( デフォルト ) )
2333 extern int SetZBufferCmpType3D( int CmpType /* DX_CMP_NEVER 等 */ ) ; // ＺバッファのＺ値と書き込むＺ値との比較モードを設定する( ３Ｄ描画のみに影響 )( CmpType:DX_CMP_NEVER等( デフォルト:DX_CMP_LESSEQUAL ) )
2334 extern int SetZBias3D( int Bias ) ; // 書き込むＺ値のバイアスを設定する( ３Ｄ描画のみに影響 )( Bias:バイアス値( デフォルト:0 ) )
2335 extern int SetDrawZ( float Z ) ; // ２Ｄ描画でＺバッファに書き込むＺ値を設定する( Z:書き込むＺ値( デフォルト:0.2f ) )
2336
2337 extern int SetDrawArea( int x1, int y1, int x2, int y2 ) ; // 描画可能領域の設定する
2338 extern int GetDrawArea( RECT *Rect ) ; // 描画可能領域を取得する
2339 extern int SetDrawAreaFull( void ) ; // 描画可能領域を描画対象画面全体にする
2340 extern int SetDraw3DScale( float Scale ) ; // ３Ｄ描画の拡大率を設定する
2341
2342 extern int SetRestoreShredPoint( void (* ShredPoint )( void ) ) ; // SetRestoreGraphCallback の旧名
2343 extern int SetRestoreGraphCallback( void (* Callback )( void ) ) ; // グラフィックハンドル復元関数を登録する
2344 extern int RunRestoreShred( void ) ; // グラフィック復元関数を実行する
2345 extern int SetGraphicsDeviceRestoreCallbackFunction( void (* Callback )( void *Data ), void *CallbackData ) ; // グラフィックスデバイスがロストから復帰した際に呼ばれるコールバック関数を設定する
2346 extern int SetGraphicsDeviceLostCallbackFunction( void (* Callback )( void *Data ), void *CallbackData ) ; // グラフィックスデバイスがロストから復帰する前に呼ばれるコールバック関数を設定する
2347
2348 extern int SetTransformToWorld( MATRIX *Matrix ) ; // ローカル座標からワールド座標に変換するための行列を設定する
2349 extern int GetTransformToWorldMatrix( MATRIX *MatBuf ) ; // ローカル座標からワールド座標に変換するための行列を取得する
2350 extern int SetTransformToView( MATRIX *Matrix ) ; // ワールド座標からビュー座標に変換するための行列を設定する
2351 extern int GetTransformToViewMatrix( MATRIX *MatBuf ) ; // ワールド座標からビュー座標に変換するための行列を取得する
2352 extern int SetTransformToProjection( MATRIX *Matrix ) ; // ビュー座標からプロジェクション座標に変換するための行列を設定する
2353 extern int GetTransformToProjectionMatrix( MATRIX *MatBuf ) ; // ビュー座標からプロジェクション座標に変換するための行列を取得する
2354 extern int SetTransformToViewport( MATRIX *Matrix ) ; // ビューポート行列を設定する
2355 extern int GetTransformToViewportMatrix( MATRIX *MatBuf ) ; // ビューポート行列を取得する
2356 extern int GetTransformToAPIViewportMatrix( MATRIX *MatBuf ) ; // Direct3Dで自動適用されるビューポート行列を取得する
2357 extern int SetDefTransformMatrix( void ) ; // デフォルトの変換行列を設定する
2358 extern int GetTransformPosition( VECTOR *LocalPos, float *x, float *y ) ; // ローカル座標からスクリーン座標を取得する
2359 extern float GetBillboardPixelSize( VECTOR WorldPos, float WorldSize ) ; // ワールド空間上のビルボードのサイズからスクリーンに投影した場合のピクセル単位のサイズを取得する
2360 extern VECTOR ConvWorldPosToViewPos( VECTOR WorldPos ) ; // ワールド座標をビュー座標に変換する
2361 extern VECTOR ConvWorldPosToScreenPos( VECTOR WorldPos ) ; // ワールド座標をスクリーン座標に変換する
2362 extern FLOAT4 ConvWorldPosToScreenPosPlusW( VECTOR WorldPos ) ; // ワールド座標をスクリーン座標に変換する、最後のＸＹＺ座標をＷで割る前の値を得る
2363 extern VECTOR ConvScreenPosToWorldPos( VECTOR ScreenPos ) ; // スクリーン座標をワールド座標に変換する
2364 extern VECTOR ConvScreenPosToWorldPos_ZLinear( VECTOR ScreenPos ) ; // スクリーン座標をワールド座標に変換する( Z座標が線形 )
2365
2366 extern int SetUseCullingFlag( int Flag ) ; // SetUseBackCulling の旧名称
2367 extern int SetUseBackCulling( int Flag /* DX_CULLING_LEFT 等 */ ) ; // ポリゴンカリングモードを設定する
2368
2369 extern int SetTextureAddressMode( int Mode /* DX_TEXADDRESS_WRAP 等 */ , int Stage = -1 ) ; // テクスチャアドレスモードを設定する
2370 extern int SetTextureAddressModeUV( int ModeU, int ModeV, int Stage = -1 ) ; // テクスチャアドレスモードを設定する( U と V を別々に設定する )
2371 extern int SetTextureAddressTransform( float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate ) ; // テクスチャ座標変換パラメータを設定する
2372 extern int SetTextureAddressTransformMatrix( MATRIX Matrix ) ; // テクスチャ座標変換行列を設定する
2373 extern int ResetTextureAddressTransform( void ) ; // テクスチャ座標変換設定をリセットする
2374
2375 extern int SetFogEnable( int Flag ) ; // フォグを有効にするかどうかを設定する( TRUE:有効 FALSE:無効 )
2376 extern int SetFogMode( int Mode /* DX_FOGMODE_NONE 等 */ ) ; // フォグモードを設定する
2377 extern int SetFogColor( int r, int g, int b ) ; // フォグカラーを設定する
2378 extern int SetFogStartEnd( float start, float end ) ; // フォグが始まる距離と終了する距離を設定する( 0.0f 〜 1.0f )
2379 extern int SetFogDensity( float density ) ; // フォグの密度を設定する( 0.0f 〜 1.0f )
2380
2381
2382 // 画面関係関数
2383 extern int GetPixel( int x, int y ) ; // 指定座標の色を取得する
2384 extern int GetDrawScreenGraph( int x1, int y1, int x2, int y2, int GrHandle, int UseClientFlag = TRUE ) ; // 描画先の画面から指定領域の画像情報をグラフィックハンドルに転送する
2385 extern int BltDrawValidGraph( int TargetDrawValidGrHandle, int x1, int y1, int x2, int y2, int DestX, int DestY, int DestGrHandle ) ; // SetDrawScreen で描画対象にできるグラフィックハンドルから指定領域の画像情報を別のグラフィックハンドルに転送する
2386 extern int ScreenFlip( void ) ; // 裏画面と表画面の内容を交換する
2387 extern int ScreenCopy( void ) ; // 裏画面の内容を表画面に転送する
2388 extern int WaitVSync( int SyncNum ) ; // 垂直同期信号を待つ
2389 extern int ClearDrawScreen( RECT *ClearRect = NULL ) ; // 画面をクリアする
2390 extern int ClearDrawScreenZBuffer( RECT *ClearRect = NULL ) ; // 画面のＺバッファをクリアする
2391 extern int ClsDrawScreen( void ) ; // ClearDrawScreenの旧名称
2392 extern int SetDrawScreen( int DrawScreen ) ; // 描画先画面を設定する( MakeScreen で作成したグラフィックハンドルも渡すことができます )
2393 extern int GetDrawScreen( void ) ; // 描画先画面を取得する
2394 extern int GetActiveGraph( void ) ; // GetDrawScreen の旧名称
2395 extern int SetDrawZBuffer( int DrawScreen ) ; // 描画先Ｚバッファのセット( DrawScreen 付属のＺバッファを描画先Ｚバッファにする、DrawScreen を -1 にするとデフォルトの描画先Ｚバッファに戻る )
2396 #ifdef __WINDOWS__
2397 extern int BltBackScreenToWindow( HWND Window, int ClientX, int ClientY ) ; // 裏画面の内容を指定のウインドウに転送する
2398 extern int BltRectBackScreenToWindow( HWND Window, RECT BackScreenRect, RECT WindowClientRect ) ; // 裏画面の指定の領域をウインドウのクライアント領域の指定の領域に転送する
2399 #endif // __WINDOWS__
2400 extern int SetGraphMode( int ScreenSizeX, int ScreenSizeY, int ColorBitDepth, int RefreshRate = 60 ) ; // 画面モードを設定する
2401 extern int SetEmulation320x240( int Flag ) ; // ６４０ｘ４８０の画面で３２０ｘ２４０の画面解像度にするかどうかを設定する、６４０ｘ４８０以外の解像度では無効( TRUE:有効 FALSE:無効 )
2402 extern int SetZBufferSize( int ZBufferSizeX, int ZBufferSizeY ) ; // 画面用のＺバッファのサイズを設定する
2403 extern int SetWaitVSyncFlag( int Flag ) ; // ScreenFlip 実行時にＶＳＹＮＣ待ちをするかどうかを設定する
2404 extern int GetWaitVSyncFlag( void ) ; // ScreenFlip 実行時にＶＳＹＮＣ待ちをするかどうかを取得する
2405 extern int SetFullSceneAntiAliasingMode( int Samples, int Quality ) ; // 画面のフルスクリーンアンチエイリアスモードの設定を行う( DxLib_Init の前でのみ使用可能 )
2406 extern int SetGraphDisplayArea( int x1, int y1, int x2, int y2 ) ; // ScreenFlip 時に表画面全体に転送する裏画面の領域を設定する( DxLib_Init の前でのみ使用可能 )
2407 extern int SetChangeScreenModeGraphicsSystemResetFlag( int Flag ) ; // 画面モード変更時( とウインドウモード変更時 )にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する( TRUE:リセットする( デフォルト ) FALSE:リセットしない )
2408 extern int GetScreenState( int *SizeX, int *SizeY, int *ColorBitDepth ) ; // 現在の画面の解像度とカラービット数を得る
2409 extern int GetDrawScreenSize( int *XBuf, int *YBuf ) ; // 描画先のサイズを取得する
2410 extern int GetScreenBitDepth( void ) ; // 画面のカラービット数を取得する
2411 extern int GetColorBitDepth( void ) ; // GetScreenBitDepth の旧名称
2412 extern int GetChangeDisplayFlag( void ) ; // 画面モードが変更されているかどうかを取得する
2413 extern int GetVideoMemorySize( int *AllSize, int *FreeSize ) ; // ( 現在正常に動作しません )ビデオメモリの容量を得る
2414 extern int GetRefreshRate( void ) ; // 現在の画面のリフレッシュレートを取得する
2415 extern int GetDisplayModeNum( void ) ; // 変更可能なディスプレイモードの数を取得する
2416 extern DISPLAYMODEDATA GetDisplayMode( int ModeIndex ) ; // 変更可能なディスプレイモードの情報を取得する( ModeIndex は 0 〜 GetDisplayModeNum の戻り値-1 )
2417 extern COLORDATA* GetDispColorData( void ) ; // ディスプレイのカラーデータアドレスを取得する
2418 extern int GetMultiDrawScreenNum( void ) ; // 同時に描画を行うことができる画面の数を取得する
2419 extern int SetDisplayRefreshRate( int RefreshRate ) ; // ( 現在効果なし )フルスクリーン時の画面のリフレッシュレートを変更する
2420
2421 // その他設定関係関数
2422 extern int SetUseNormalDrawShader( int Flag ) ; // 通常描画にプログラマブルシェーダーを使用するかどうかを設定する( TRUE:使用する( デフォルト ) FALSE:使用しない )
2423 extern int SetUseSoftwareRenderModeFlag( int Flag ) ; // ソフトウエアレンダリングモードを使用するかどうかを設定する( TRUE:使用する FALSE:使用しない( デフォルト ) )( DxLib_Init の前に呼ぶ必要があります )
2424 extern int SetNotUse3DFlag( int Flag ) ; // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )３Ｄ機能を使わないかどうかを設定する
2425 extern int SetUse3DFlag( int Flag ) ; // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )３Ｄ機能を使うかどうかを設定する
2426 extern int GetUse3DFlag( void ) ; // 描画に３Ｄ機能を使うかどうかを取得する
2427 extern int SetScreenMemToVramFlag( int Flag ) ; // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )画面のピクセルデータをＶＲＡＭに置くかどうかを設定する
2428 extern int GetScreenMemToSystemMemFlag( void ) ; // 画面のピクセルデータがシステムメモリ上に存在するかを取得する
2429
2430 extern int SetWindowDrawRect( RECT *DrawRect ) ; // 通常使用しない
2431 extern int RestoreGraphSystem( void ) ; // ＤＸライブラリのグラフィックス処理関連の復帰処理を行う
2432 extern int SetAeroDisableFlag( int Flag ) ; // Vista,7 の Windows Aero を無効にするかどうかを設定する( TRUE:無効にする( デフォルト ) FALSE:有効にする )( DxLib_Init の前に呼ぶ必要があります )
2433 extern int SetUseDirect3D9Ex( int Flag ) ; // Vista以降の環境で Direct3D9Ex を使用するかどうかを設定する( TRUE:使用する( デフォルト ) FALSE:使用しない )( DxLib_Init の前に呼ぶ必要があります )
2434 extern int SetUseHardwareVertexProcessing( int Flag ) ; // ハードウエアの頂点演算処理機能を使用するかどうかを設定する( TRUE:使用する( デフォルト ) FALSE:使用しない )( DxLib_Init の前に呼ぶ必要があります )
2435 extern int SetMultiThreadFlag( int Flag ) ; // DirectDraw や Direct3D の協調レベルをマルチスレッド対応にするかどうかをセットする( TRUE:マルチスレッド対応にする FALSE:マルチスレッド対応にしない( デフォルト ) )
2436 extern int SetUseDirectDrawDeviceIndex( int Index ) ; // 使用する DirectDraw デバイスのインデックスを設定する
2437 extern int SetUseOldDrawModiGraphCodeFlag( int Flag ) ; // 古いバージョンの DrawModiGraph 関数のコードを使用するかどうかを設定する
2438 extern int SetUseVramFlag( int Flag ) ; // ( 現在効果なし )ＶＲＡＭを使用するかのフラグをセットする
2439 extern int GetUseVramFlag( void ) ; // ( 現在効果なし )２Ｄグラフィックサーフェス作成時にシステムメモリーを使用するかのフラグ取得
2440 extern int SetBasicBlendFlag( int Flag ) ; // ( 現在効果なし )簡略化ブレンド処理を行うか否かのフラグをセットする
2441 extern int SetUseBasicGraphDraw3DDeviceMethodFlag( int Flag ) ; // ( 現在効果なし )単純図形の描画に３Ｄデバイスの機能を使用するかどうかを設定する
2442 #ifdef __WINDOWS__
2443 extern int SetUseDirectDrawFlag( int Flag ) ; // ( 同効果のSetUseSoftwareRenderModeFlag を使用して下さい )DirectDrawを使用するかどうかを設定する
2444 extern int SetUseGDIFlag( int Flag ) ; // GDI描画を使用するかどうかを設定する
2445 extern int GetUseGDIFlag( void ) ; // GDI描画を使用するかどうかを取得する
2446 extern int SetDDrawUseGuid( GUID *Guid ) ; // DirectDrawが使用するGUIDを設定する
2447 extern void* GetUseDDrawObj( void ) ; // 現在使用しているDirectDrawオブジェクトのアドレスを取得する( 戻り値を IDirectDraw7 * にキャストして下さい )
2448 extern GUID* GetDirectDrawDeviceGUID( int Number ) ; // 有効な DirectDraw デバイスの GUID を取得する
2449 extern int GetDirectDrawDeviceDescription( int Number, char *StringBuffer ) ; // 有効な DirectDraw デバイスの名前を取得する
2450 extern int GetDirectDrawDeviceNum( void ) ; // 有効な DirectDraw デバイスの数を取得する
2451 extern DX_DIRECT3DDEVICE9* GetUseDirect3DDevice9( void ) ; // 使用中のDirect3DDevice9オブジェクトを取得する
2452 extern DX_DIRECT3DSURFACE9* GetUseDirect3D9BackBufferSurface( void ) ; // 使用中のバックバッファのDirect3DSurface9オブジェクトを取得する
2453 #endif // __WINDOWS__
2454 extern int RefreshDxLibDirect3DSetting( void ) ; // ＤＸライブラリが行ったDirect3Dの設定を再度行う( 特殊用途 )
2455 extern int RenderVertex( void ) ; // 頂点バッファに溜まった頂点データを描画する( 特殊用途 )
2456
2457 #ifndef DX_NON_SAVEFUNCTION
2458
2459 // 描画先画面保存関数
2460 // Jpeg_Quality = 0:低画質〜100:高画質
2461 // Png_CompressionLevel = 0:無圧縮〜 9:最高圧縮
2462 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 ) ; // 現在描画対象になっている画面をファイルで保存する
2463 extern int SaveDrawScreenToBMP( int x1, int y1, int x2, int y2, const TCHAR *FileName ) ; // 現在描画対象になっている画面をＢＭＰ形式で保存する
2464 extern int SaveDrawScreenToJPEG( int x1, int y1, int x2, int y2, const TCHAR *FileName, int Quality = 80 , int Sample2x1 = TRUE ) ; // 現在描画対象になっている画面をＪＰＥＧ形式で保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100
2465 extern int SaveDrawScreenToPNG( int x1, int y1, int x2, int y2, const TCHAR *FileName, int CompressionLevel = -1 ) ; // 現在描画対象になっている画面をＰＮＧ形式で保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、０は無圧縮,0〜9
2466
2467 #endif // DX_NON_SAVEFUNCTION
2468
2469 // 頂点バッファ関係関数
2470 extern int CreateVertexBuffer( int VertexNum, int VertexType /* DX_VERTEX_TYPE_NORMAL_3D 等 */ ) ; // 頂点バッファを作成する( -1:エラー 0以上:頂点バッファハンドル )
2471 extern int DeleteVertexBuffer( int VertexBufHandle ) ; // 頂点バッファを削除する
2472 extern int InitVertexBuffer( void ) ; // すべての頂点バッファを削除する
2473 extern int SetVertexBufferData( int SetIndex, void *VertexData, int VertexNum, int VertexBufHandle ) ; // 頂点バッファに頂点データを転送する
2474 extern int CreateIndexBuffer( int IndexNum, int IndexType /* DX_INDEX_TYPE_16BIT 等 */ ) ; // インデックスバッファを作成する( -1:エラー　0以上：インデックスバッファハンドル )
2475 extern int DeleteIndexBuffer( int IndexBufHandle ) ; // インデックスバッファを削除する
2476 extern int InitIndexBuffer( void ) ; // すべてのインデックスバッファを削除する
2477 extern int SetIndexBufferData( int SetIndex, void *IndexData, int IndexNum, int IndexBufHandle ) ; // インデックスバッファにインデックスデータを転送する
2478
2479 // シェーダー関係関数
2480 extern int GetValidShaderVersion( void ) ; // 使用できるシェーダーのバージョンを取得する( 0=使えない 200=シェーダーモデル２．０が使用可能 300=シェーダーモデル３．０が使用可能 )
2481
2482 extern int LoadVertexShader( const TCHAR *FileName ) ; // 頂点シェーダーバイナリをファイルから読み込み頂点シェーダーハンドルを作成する( 戻り値 -1:エラー -1以外:シェーダーハンドル )
2483 extern int LoadPixelShader( const TCHAR *FileName ) ; // ピクセルシェーダーバイナリをファイルから読み込みピクセルシェーダーハンドルを作成する( 戻り値 -1:エラー -1以外:シェーダーハンドル )
2484 extern int LoadVertexShaderFromMem( void *ImageAddress, int ImageSize ) ; // メモリに読み込まれた頂点シェーダーバイナリから頂点シェーダーハンドルを作成する( 戻り値 -1:エラー -1以外:シェーダーハンドル )
2485 extern int LoadPixelShaderFromMem( void *ImageAddress, int ImageSize ) ; // メモリに読み込まれたピクセルシェーダーバイナリからピクセルシェーダーハンドルを作成する( 戻り値 -1:エラー -1以外:シェーダーハンドル )
2486 extern int DeleteShader( int ShaderHandle ) ; // シェーダーハンドルの削除( 頂点シェーダー・ピクセルシェーダー共通 )
2487 extern int InitShader( void ) ; // シェーダーハンドルを全て削除する( 頂点シェーダーハンドル・ピクセルシェーダーハンドルどちらもすべて削除 )
2488
2489 extern int GetConstIndexToShader( const TCHAR *ConstantName, int ShaderHandle ) ; // 指定の名前を持つ定数が使用するシェーダー定数の番号を取得する
2490 extern int GetConstCountToShader( const TCHAR *ConstantName, int ShaderHandle ) ; // 指定の名前を持つ定数が使用するシェーダー定数の数を取得する
2491 extern const FLOAT4 *GetConstDefaultParamFToShader( const TCHAR *ConstantName, int ShaderHandle ) ; // 指定の名前を持つ浮動小数点数定数のデフォルトパラメータが格納されているメモリアドレスを取得する
2492 extern int SetVSConstSF( int ConstantIndex, float Param ) ; // 頂点シェーダーの float 型定数を設定する
2493 extern int SetVSConstF( int ConstantIndex, FLOAT4 Param ) ; // 頂点シェーダーの float 型定数を設定する
2494 extern int SetVSConstFMtx( int ConstantIndex, MATRIX Param ) ; // 頂点シェーダーの float 型定数に行列を設定する
2495 extern int SetVSConstFMtxT( int ConstantIndex, MATRIX Param ) ; // 頂点シェーダーの float 型定数に転置した行列を設定する
2496 extern int SetVSConstSI( int ConstantIndex, int Param ) ; // 頂点シェーダーの int 型定数を設定する
2497 extern int SetVSConstI( int ConstantIndex, INT4 Param ) ; // 頂点シェーダーの int 型定数を設定する
2498 extern int SetVSConstB( int ConstantIndex, BOOL Param ) ; // 頂点シェーダーの BOOL 型定数を設定する
2499 extern int SetVSConstSFArray( int ConstantIndex, float *ParamArray, int ParamNum ) ; // 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2500 extern int SetVSConstFArray( int ConstantIndex, FLOAT4 *ParamArray, int ParamNum ) ; // 頂点シェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2501 extern int SetVSConstFMtxArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ; // 頂点シェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 )
2502 extern int SetVSConstFMtxTArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ; // 頂点シェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 )
2503 extern int SetVSConstSIArray( int ConstantIndex, int *ParamArray, int ParamNum ) ; // 頂点シェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2504 extern int SetVSConstIArray( int ConstantIndex, INT4 *ParamArray, int ParamNum ) ; // 頂点シェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2505 extern int SetVSConstBArray( int ConstantIndex, BOOL *ParamArray, int ParamNum ) ; // 頂点シェーダーの BOOL 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2506 extern int ResetVSConstF( int ConstantIndex, int ParamNum ) ; // 頂点シェーダーの float 型定数の設定をリセットする
2507 extern int ResetVSConstI( int ConstantIndex, int ParamNum ) ; // 頂点シェーダーの int 型定数の設定をリセットする
2508 extern int ResetVSConstB( int ConstantIndex, int ParamNum ) ; // 頂点シェーダーの BOOL 型定数の設定をリセットする
2509
2510 extern int SetPSConstSF( int ConstantIndex, float Param ) ; // ピクセルシェーダーの float 型定数を設定する
2511 extern int SetPSConstF( int ConstantIndex, FLOAT4 Param ) ; // ピクセルシェーダーの float 型定数を設定する
2512 extern int SetPSConstFMtx( int ConstantIndex, MATRIX Param ) ; // ピクセルシェーダーの float 型定数に行列を設定する
2513 extern int SetPSConstFMtxT( int ConstantIndex, MATRIX Param ) ; // ピクセルシェーダーの float 型定数に転置した行列を設定する
2514 extern int SetPSConstSI( int ConstantIndex, int Param ) ; // ピクセルシェーダーの int 型定数を設定する
2515 extern int SetPSConstI( int ConstantIndex, INT4 Param ) ; // ピクセルシェーダーの int 型定数を設定する
2516 extern int SetPSConstB( int ConstantIndex, BOOL Param ) ; // ピクセルシェーダーの BOOL 型定数を設定する
2517 extern int SetPSConstSFArray( int ConstantIndex, float *ParamArray, int ParamNum ) ; // ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2518 extern int SetPSConstFArray( int ConstantIndex, FLOAT4 *ParamArray, int ParamNum ) ; // ピクセルシェーダーの float 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2519 extern int SetPSConstFMtxArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ; // ピクセルシェーダーの float 型定数に行列を設定する( 配列を使って連番インデックスに一度に設定 )
2520 extern int SetPSConstFMtxTArray( int ConstantIndex, MATRIX *ParamArray, int ParamNum ) ; // ピクセルシェーダーの float 型定数に転置した行列を設定する( 配列を使って連番インデックスに一度に設定 )
2521 extern int SetPSConstSIArray( int ConstantIndex, int *ParamArray, int ParamNum ) ; // ピクセルシェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2522 extern int SetPSConstIArray( int ConstantIndex, INT4 *ParamArray, int ParamNum ) ; // ピクセルシェーダーの int 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2523 extern int SetPSConstBArray( int ConstantIndex, BOOL *ParamArray, int ParamNum ) ; // ピクセルシェーダーの BOOL 型定数を設定する( 配列を使って連番インデックスに一度に設定 )
2524 extern int ResetPSConstF( int ConstantIndex, int ParamNum ) ; // ピクセルシェーダーの float 型定数の設定をリセットする
2525 extern int ResetPSConstI( int ConstantIndex, int ParamNum ) ; // ピクセルシェーダーの int 型定数の設定をリセットする
2526 extern int ResetPSConstB( int ConstantIndex, int ParamNum ) ; // ピクセルシェーダーの BOOL 型定数の設定をリセットする
2527
2528 extern int SetRenderTargetToShader( int TargetIndex, int DrawScreen ) ; // シェーダーを使用した描画での描画先を設定する
2529 extern int SetUseTextureToShader( int StageIndex, int GraphHandle ) ; // シェーダーを使用した描画で使用するグラフィックハンドルを設定する
2530 extern int SetUseVertexShader( int ShaderHandle ) ; // シェーダーを使用した描画に使用する頂点シェーダーを設定する( -1を渡すと解除 )
2531 extern int SetUsePixelShader( int ShaderHandle ) ; // シェーダーを使用した描画に使用するピクセルシェーダーを設定する( -1を渡すと解除 )
2532
2533 extern int CalcPolygonBinormalAndTangentsToShader( VERTEX3DSHADER *Vertex, int PolygonNum ) ; // ポリゴンの頂点の接線と従法線をＵＶ座標から計算してセットする
2534 extern int CalcPolygonIndexedBinormalAndTangentsToShader( VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ; // ポリゴンの頂点の接線と従法線をＵＶ座標から計算してセットする( 頂点インデックスを使用する )
2535
2536 extern int DrawPolygon2DToShader( VERTEX2DSHADER *Vertex, int PolygonNum ) ; // シェーダーを使って２Ｄポリゴンを描画する
2537 extern int DrawPolygon3DToShader( VERTEX3DSHADER *Vertex, int PolygonNum ) ; // シェーダーを使って３Ｄポリゴンを描画する
2538 extern int DrawPolygonIndexed2DToShader( VERTEX2DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ; // シェーダーを使って２Ｄポリゴンを描画する( 頂点インデックスを使用する )
2539 extern int DrawPolygonIndexed3DToShader( VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int PolygonNum ) ; // シェーダーを使って３Ｄポリゴンを描画する( 頂点インデックスを使用する )
2540 extern int DrawPrimitive2DToShader( VERTEX2DSHADER *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って２Ｄプリミティブを描画する
2541 extern int DrawPrimitive3DToShader( VERTEX3DSHADER *Vertex, int VertexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って３Ｄプリミティブを描画する
2542 extern int DrawPrimitiveIndexed2DToShader( VERTEX2DSHADER *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って２Ｄプリミティブを描画する( 頂点インデックスを使用する )
2543 extern int DrawPrimitiveIndexed3DToShader( VERTEX3DSHADER *Vertex, int VertexNum, unsigned short *Indices, int IndexNum, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って３Ｄプリミティブを描画する( 頂点インデックスを使用する )
2544 extern int DrawPolygon3DToShader_UseVertexBuffer( int VertexBufHandle ) ; // シェーダーを使って３Ｄポリゴンを描画する( 頂点バッファ使用版 )
2545 extern int DrawPolygonIndexed3DToShader_UseVertexBuffer( int VertexBufHandle, int IndexBufHandle ) ; // シェーダーを使って３Ｄポリゴンを描画する( 頂点バッファとインデックスバッファ使用版 )
2546 extern int DrawPrimitive3DToShader_UseVertexBuffer( int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って３Ｄプリミティブを描画する( 頂点バッファ使用版 )
2547 extern int DrawPrimitive3DToShader_UseVertexBuffer2( int VertexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int StartVertex, int UseVertexNum ) ; // シェーダーを使って３Ｄプリミティブを描画する( 頂点バッファ使用版 )
2548 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer( int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */ ) ; // シェーダーを使って３Ｄプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 )
2549 extern int DrawPrimitiveIndexed3DToShader_UseVertexBuffer2( int VertexBufHandle, int IndexBufHandle, int PrimitiveType /* DX_PRIMTYPE_TRIANGLELIST 等 */, int BaseVertex, int StartVertex, int UseVertexNum, int StartIndex, int UseIndexNum ) ; // シェーダーを使って３Ｄプリミティブを描画する( 頂点バッファとインデックスバッファ使用版 )
2550
2551 // フィルター関係関数
2552 #ifndef DX_NON_FILTER
2553 extern int GraphFilter( int GrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */ , ... ) ; // 画像にフィルター処理を行う
2554 extern int GraphFilterBlt( int SrcGrHandle, int DestGrHandle, int FilterType /* DX_GRAPH_FILTER_GAUSS 等 */ , ... ) ; // 画像のフィルター付き転送を行う
2555 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 等 */ , ... ) ; // 画像のフィルター付き転送を行う( 矩形指定 )
2556 // int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_MONO, int Cb = 青色差( -255 〜 255 ), int Cr = 赤色差( -255 〜 255 ) ) ;
2557 // int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_GAUSS, int PixelWidth = 使用ピクセル幅( 8 , 16 , 32 の何れか ), int Param = ぼかしパラメータ( 100 で約1ピクセル分の幅 ) ) ;
2558 // int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_DOWN_SCALE, int DivNum = 元のサイズの何分の１か、という値( 2 , 4 , 8 の何れか ) ) ;
2559 // 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 の場合は使用しない ) ) ;
2560 // 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 ) ) ;
2561 // int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_INVERT ) ;
2562 // 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 ) ) ;
2563 // 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 ) ) ;
2564 // int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_GRADIENT_MAP, int MapGrHandle = グラデーションマップのグラフィックハンドル( 元画像の輝度からグラデーションマップ画像の x 座標を算出しますので縦幅は1dotでもＯＫ ), int Reverse = グラデーションマップ左右反転フラグ( TRUE : グラデーションマップを左右反転して使う FALSE : 左右反転しない ) ) ;
2565
2566 extern int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio /* ブレンド効果の影響度( 0:０％ 255:１００％ ) */ , int BlendType /* DX_GRAPH_BLEND_ADD 等 */ , ... ) ; // 二つの画像をブレンドする
2567 extern int GraphBlendBlt( int SrcGrHandle, int BlendGrHandle, int DestGrHandle, int BlendRatio /* ブレンド効果の影響度( 0:０％ 255:１００％ ) */ , int BlendType /* DX_GRAPH_BLEND_ADD 等 */ , ... ) ; // 二つの画像をブレンドして結果を指定の画像に出力する
2568 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:０％ 255:１００％ ) */ , int BlendType /* DX_GRAPH_BLEND_ADD 等 */ , ... ) ; // 二つの画像をブレンドして結果を指定の画像に出力する( 矩形指定 )
2569 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_NORMAL ) ;
2570 // 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 等 ) ) ;
2571 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_MULTIPLE ) ;
2572 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DIFFERENCE ) ;
2573 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_ADD ) ;
2574 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SCREEN ) ;
2575 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_OVERLAY ) ;
2576 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DODGE ) ;
2577 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BURN ) ;
2578 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_DARKEN ) ;
2579 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_LIGHTEN ) ;
2580 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SOFTLIGHT ) ;
2581 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HARDLIGHT ) ;
2582 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_EXCLUSION ) ;
2583 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_HUE ) ;
2584 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_SATURATION ) ;
2585 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_COLOR ) ;
2586 // int GraphBlend( int GrHandle, int BlendGrHandle, int BlendRatio, int BlendType = DX_GRAPH_BLEND_BRIGHT ) ;
2587 #endif // DX_NON_FILTER
2588
2589 #ifndef DX_NON_MOVIE
2590 // ムービーグラフィック関係関数
2591 extern int PlayMovie( const TCHAR *FileName, int ExRate, int PlayType ) ; // 動画ファイルの再生
2592 extern int OpenMovieToGraph( const TCHAR *FileName, int FullColor = TRUE ) ; // 動画ファイルを開く
2593 extern int PlayMovieToGraph( int GraphHandle, int PlayType = DX_PLAYTYPE_BACK , int SysPlay = 0 ) ; // 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を開始する
2594 extern int PauseMovieToGraph( int GraphHandle, int SysPause = 0 ) ; // 動画ファイルを使用するグラフィックハンドルの動画ファイルの再生を停止する
2595 extern int AddMovieFrameToGraph( int GraphHandle, unsigned int FrameNum ) ; // 動画ファイルの再生フレームを進める、戻すことは出来ない( 動画ファイルが停止状態で、且つ Ogg Theora のみ有効 )
2596 extern int SeekMovieToGraph( int GraphHandle, int Time ) ; // 動画ファイルの再生位置を設定する(ミリ秒単位)
2597 extern int GetMovieStateToGraph( int GraphHandle ) ; // 動画ファイルの再生状態を得る
2598 extern int SetMovieVolumeToGraph( int Volume, int GraphHandle ) ; // 動画ファイルの音量を設定する(0〜10000)
2599 extern int ChangeMovieVolumeToGraph( int Volume, int GraphHandle ) ; // 動画ファイルの音量を設定する(0〜255)
2600 extern BASEIMAGE* GetMovieBaseImageToGraph( int GraphHandle ) ; // 動画ファイルの基本イメージデータを取得する
2601 extern int GetMovieTotalFrameToGraph( int GraphHandle ) ; // 動画ファイルの総フレーム数を得る( Ogg Theora でのみ有効 )
2602 extern int TellMovieToGraph( int GraphHandle ) ; // 動画ファイルの再生位置を取得する(ミリ秒単位)
2603 extern int TellMovieToGraphToFrame( int GraphHandle ) ; // 動画ファイルの再生位置を取得する(フレーム単位)
2604 extern int SeekMovieToGraphToFrame( int GraphHandle, int Frame ) ; // 動画ファイルの再生位置を設定する(フレーム単位)
2605 extern LONGLONG GetOneFrameTimeMovieToGraph( int GraphHandle ) ; // 動画ファイルの１フレームあたりの時間を取得する
2606 extern int GetLastUpdateTimeMovieToGraph( int GraphHandle ) ; // 動画ファイルのイメージを最後に更新した時間を得る(ミリ秒単位)
2607 extern int SetMovieRightImageAlphaFlag( int Flag ) ; // 動画ファイル映像の右半分の赤成分をα情報として扱うかどうかをセットする( TRUE:α情報として扱う FALSE:α情報として扱わない( デフォルト ) )
2608 #endif // DX_NON_MOVIE
2609
2610 // カメラ関係関数
2611 extern int SetCameraNearFar( float Near, float Far ) ; // カメラの Nearクリップ面と Farクリップ面の距離を設定する
2612 extern int SetCameraPositionAndTarget_UpVecY( VECTOR Position, VECTOR Target ) ; // カメラの視点、注視点、アップベクトルを設定する( アップベクトルはＹ軸方向から導き出す )
2613 extern int SetCameraPositionAndTargetAndUpVec( VECTOR Position, VECTOR Target, VECTOR Up ) ; // カメラの視点、注視点、アップベクトルを設定する
2614 extern int SetCameraPositionAndAngle( VECTOR Position, float VRotate, float HRotate, float TRotate ) ; // カメラの視点、注視点、アップベクトルを設定する( 注視点とアップベクトルは垂直回転角度、水平回転角度、捻り回転角度から導き出す )
2615 extern int SetCameraViewMatrix( MATRIX ViewMatrix ) ; // ビュー行列を直接設定する
2616 extern int SetCameraScreenCenter( float x, float y ) ; // 画面上におけるカメラが見ている映像の中心の座標を設定する
2617
2618 extern int SetupCamera_Perspective( float Fov ) ; // 遠近法カメラをセットアップする
2619 extern int SetupCamera_Ortho( float Size ) ; // 正射影カメラをセットアップする
2620 extern int SetupCamera_ProjectionMatrix( MATRIX ProjectionMatrix ) ; // 射影行列を直接設定する
2621 extern int SetCameraDotAspect( float DotAspect ) ; // カメラのドットアスペクト比を設定する
2622
2623 extern int CheckCameraViewClip( VECTOR CheckPos ) ; // 指定の座標がカメラの視界に入っているかどうかを判定する( 戻り値 TRUE:視界に入っていない FALSE:視界に入っている )
2624 extern int CheckCameraViewClip_Dir( VECTOR CheckPos ) ; // 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる( 戻り値 0:視界に入っている 0以外:視界に入っていない( DX_CAMERACLIP_LEFT や DX_CAMERACLIP_RIGHT が or 演算で混合されたもの、and 演算で方向を確認できる ) )
2625 extern int CheckCameraViewClip_Box( VECTOR BoxPos1, VECTOR BoxPos2 ) ; // 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する( 戻り値 TRUE:視界に入っていない FALSE:視界に入っている )
2626
2627 extern float GetCameraNear( void ) ; // カメラの Near クリップ面の距離を取得する
2628 extern float GetCameraFar( void ) ; // カメラの Far クリップ面の距離を取得する
2629
2630 extern VECTOR GetCameraPosition( void ) ; // カメラの位置を取得する
2631 extern VECTOR GetCameraTarget( void ) ; // カメラの注視点を取得する
2632 extern VECTOR GetCameraUpVector( void ) ; // カメラの視線に垂直な上方向のベクトルを取得する
2633 extern float GetCameraAngleHRotate( void ) ; // カメラの水平方向の向きを取得する
2634 extern float GetCameraAngleVRotate( void ) ; // カメラの垂直方向の向きを取得する
2635 extern float GetCameraAngleTRotate( void ) ; // カメラの向きの捻り角度を取得する
2636
2637 extern MATRIX GetCameraViewMatrix( void ) ; // ビュー行列を取得する
2638 extern MATRIX GetCameraBillboardMatrix( void ) ; // ビルボード行列を取得する
2639 extern float GetCameraFov( void ) ; // カメラの視野角を取得する
2640 extern float GetCameraSize( void ) ; // カメラの視野サイズを取得する
2641 extern MATRIX GetCameraProjectionMatrix( void ) ; // 射影行列を取得する
2642 extern float GetCameraDotAspect( void ) ; // カメラのドットアスペクト比を得る
2643 extern MATRIX GetCameraViewportMatrix( void ) ; // ビューポート行列を取得する
2644 extern MATRIX GetCameraAPIViewportMatrix( void ) ; // Direct3Dで自動適用されるビューポート行列を取得する
2645
2646 // ライト関係関数
2647 extern int SetUseLighting( int Flag ) ; // ライティングを使用するかどうかを設定する
2648 extern int SetMaterialUseVertDifColor( int UseFlag ) ; // ３Ｄ描画のライティング計算で頂点カラーのディフューズカラーを使用するかどうかを設定する
2649 extern int SetMaterialUseVertSpcColor( int UseFlag ) ; // ３Ｄ描画のライティング計算で頂点カラーのスペキュラカラーを使用するかどうかを設定する
2650 extern int SetMaterialParam( MATERIALPARAM Material ) ; // ３Ｄ描画のライティング計算で使用するマテリアルパラメータを設定する
2651 extern int SetUseSpecular( int UseFlag ) ; // ３Ｄ描画にスペキュラを使用するかどうかを設定する
2652 extern int SetGlobalAmbientLight( COLOR_F Color ) ; // グローバルアンビエントライトカラーを設定する
2653
2654 extern int ChangeLightTypeDir( VECTOR Direction ) ; // デフォルトライトのタイプをディレクショナルライトにする
2655 extern int ChangeLightTypeSpot( VECTOR Position, VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2 ) ; // デフォルトライトのタイプをスポットライトにする
2656 extern int ChangeLightTypePoint( VECTOR Position, float Range, float Atten0, float Atten1, float Atten2 ) ; // デフォルトライトのタイプをポイントライトにする
2657 extern int GetLightType( void ) ; // デフォルトライトのタイプを取得する( 戻り値は DX_LIGHTTYPE_DIRECTIONAL 等 )
2658 extern int SetLightEnable( int EnableFlag ) ; // デフォルトライトを使用するかどうかを設定する
2659 extern int GetLightEnable( void ) ; // デフォルトライトを使用するかどうかを取得する( 戻り値　TRUE:有効 FALSE:無効 )
2660 extern int SetLightDifColor( COLOR_F Color ) ; // デフォルトライトのディフューズカラーを設定する
2661 extern COLOR_F GetLightDifColor( void ) ; // デフォルトライトのディフューズカラーを取得する
2662 extern int SetLightSpcColor( COLOR_F Color ) ; // デフォルトライトのスペキュラカラーを設定する
2663 extern COLOR_F GetLightSpcColor( void ) ; // デフォルトライトのスペキュラカラーを取得する
2664 extern int SetLightAmbColor( COLOR_F Color ) ; // デフォルトライトのアンビエントカラーを設定する
2665 extern COLOR_F GetLightAmbColor( void ) ; // デフォルトライトのアンビエントカラーを取得する
2666 extern int SetLightDirection( VECTOR Direction ) ; // デフォルトライトの方向を設定する
2667 extern VECTOR GetLightDirection( void ) ; // デフォルトライトの方向を取得する
2668 extern int SetLightPosition( VECTOR Position ) ; // デフォルトライトの位置を設定する
2669 extern VECTOR GetLightPosition( void ) ; // デフォルトライトの位置を取得する
2670 extern int SetLightRangeAtten( float Range, float Atten0, float Atten1, float Atten2 ) ; // デフォルトライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数０、１、２ )
2671 extern int GetLightRangeAtten( float *Range, float *Atten0, float *Atten1, float *Atten2 ) ; // デフォルトライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数０、１、２ )
2672 extern int SetLightAngle( float OutAngle, float InAngle ) ; // デフォルトライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 )
2673 extern int GetLightAngle( float *OutAngle, float *InAngle ) ; // デフォルトライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 )
2674
2675 extern int CreateDirLightHandle( VECTOR Direction ) ; // ディレクショナルライトハンドルを作成する
2676 extern int CreateSpotLightHandle( VECTOR Position, VECTOR Direction, float OutAngle, float InAngle, float Range, float Atten0, float Atten1, float Atten2 ) ; // スポットライトハンドルを作成する
2677 extern int CreatePointLightHandle( VECTOR Position, float Range, float Atten0, float Atten1, float Atten2 ) ; // ポイントライトハンドルを作成する
2678 extern int DeleteLightHandle( int LHandle ) ; // ライトハンドルを削除する
2679 extern int DeleteLightHandleAll( void ) ; // ライトハンドルを全て削除する
2680 extern int SetLightTypeHandle( int LHandle, int LightType ) ; // ライトハンドルのライトのタイプを変更する( DX_LIGHTTYPE_DIRECTIONAL 等 )
2681 extern int SetLightEnableHandle( int LHandle, int EnableFlag ) ; // ライトハンドルのライト効果の有効、無効を設定する( TRUE:有効 FALSE:無効 )
2682 extern int SetLightDifColorHandle( int LHandle, COLOR_F Color ) ; // ライトハンドルのライトのディフューズカラーを設定する
2683 extern int SetLightSpcColorHandle( int LHandle, COLOR_F Color ) ; // ライトハンドルのライトのスペキュラカラーを設定する
2684 extern int SetLightAmbColorHandle( int LHandle, COLOR_F Color ) ; // ライトハンドルのライトのアンビエントカラーを設定する
2685 extern int SetLightDirectionHandle( int LHandle, VECTOR Direction ) ; // ライトハンドルのライトの方向を設定する
2686 extern int SetLightPositionHandle( int LHandle, VECTOR Position ) ; // ライトハンドルのライトの位置を設定する
2687 extern int SetLightRangeAttenHandle( int LHandle, float Range, float Atten0, float Atten1, float Atten2 ) ; // ライトハンドルのライトの距離減衰パラメータを設定する( 有効距離、距離減衰係数０、１、２ )
2688 extern int SetLightAngleHandle( int LHandle, float OutAngle, float InAngle ) ; // ライトハンドルのライトのスポットライトのパラメータを設定する( 外部コーン角度、内部コーン角度 )
2689 extern int GetLightTypeHandle( int LHandle ) ; // ライトハンドルのライトのタイプを取得する( 戻り値は DX_LIGHTTYPE_DIRECTIONAL 等 )
2690 extern int GetLightEnableHandle( int LHandle ) ; // ライトハンドルのライト効果の有効、無効を取得する( TRUE:有効 FALSE:無効 )
2691 extern COLOR_F GetLightDifColorHandle( int LHandle ) ; // ライトハンドルのライトのディフューズカラーを取得する
2692 extern COLOR_F GetLightSpcColorHandle( int LHandle ) ; // ライトハンドルのライトのスペキュラカラーを取得する
2693 extern COLOR_F GetLightAmbColorHandle( int LHandle ) ; // ライトハンドルのライトのアンビエントカラーを取得する
2694 extern VECTOR GetLightDirectionHandle( int LHandle ) ; // ライトハンドルのライトの方向を取得する
2695 extern VECTOR GetLightPositionHandle( int LHandle ) ; // ライトハンドルのライトの位置を取得する
2696 extern int GetLightRangeAttenHandle( int LHandle, float *Range, float *Atten0, float *Atten1, float *Atten2 ) ; // ライトハンドルのライトの距離減衰パラメータを取得する( 有効距離、距離減衰係数０、１、２ )
2697 extern int GetLightAngleHandle( int LHandle, float *OutAngle, float *InAngle ) ; // ライトハンドルのライトのスポットライトのパラメータを取得する( 外部コーン角度、内部コーン角度 )
2698
2699 extern int GetEnableLightHandleNum( void ) ; // 有効になっているライトハンドルの数を取得する
2700 extern int GetEnableLightHandle( int Index ) ; // 有効になっているライトハンドルを取得する
2701
2702 // 色情報取得用関数
2703 extern int GetTexFormatIndex( IMAGEFORMATDESC *Format ) ; // テクスチャフォーマットのインデックスを得る
2704 extern int ColorKaiseki( void *PixelData, COLORDATA* ColorData ) ; // 色ビット情報解析
2705 #ifdef __WINDOWS__
2706 extern int CreatePixelFormat( D_DDPIXELFORMAT *PixelFormatBuf, int ColorBitDepth, DWORD RedMask, DWORD GreenMask, DWORD BlueMask, DWORD AlphaMask ) ; // DDPIXELFORMATデータを作成する
2707 #endif // __WINDOWS__
2708
2709
2710
2711
2712
2713
2714
2715
2716 // DxMask.cpp 関数プロトタイプ宣言
2717
2718 #ifndef DX_NON_MASK
2719
2720 // マスク関係
2721 extern int CreateMaskScreen( void ) ; // マスクスクリーンを作成する
2722 extern int DeleteMaskScreen( void ) ; // マスクスクリーンを削除する
2723 extern int DrawMaskToDirectData( int x, int y, int Width, int Height, void *MaskData , int TransMode ) ; // マスクスクリーンにメモリ上のビットマップデータを転送する( MaskData は 1byte で 1dot 表す１ラインあたり Width byte のデータ配列の先頭アドレス )
2724 extern int DrawFillMaskToDirectData( int x1, int y1, int x2, int y2, int Width, int Height, void *MaskData ) ; // マスクスクリーンにメモリ上のビットマップデータで指定矩形内を塗りつぶすように転送する
2725
2726 extern int SetUseMaskScreenFlag( int ValidFlag ) ; // マスクスクリーンを使用するかどうかを設定する( ValidFlag:使用するかどうか( TRUE:使用する FALSE:使用しない( デフォルト ) )
2727 extern int GetUseMaskScreenFlag( void ) ; // マスクスクリーンを使用するかどうかを取得する
2728 extern int FillMaskScreen( int Flag ) ; // マスクスクリーンを指定の色で塗りつぶす
2729
2730 extern int InitMask( void ) ; // マスクハンドルをすべて削除する
2731 extern int MakeMask( int Width, int Height ) ; // マスクハンドルを作成する
2732 extern int GetMaskSize( int *WidthBuf, int *HeightBuf, int MaskHandle ) ; // マスクハンドルが持つマスクイメージのサイズを取得する
2733 extern int SetDataToMask( int Width, int Height, void *MaskData, int MaskHandle ) ; // マスクハンドルにビットマップイメージを転送する
2734 extern int DeleteMask( int MaskHandle ) ; // マスクハンドルを削除する
2735 extern int BmpBltToMask( HBITMAP Bmp, int BmpPointX, int BmpPointY, int MaskHandle ) ; // マスクハンドルにＢＭＰデータを転送する
2736 extern int LoadMask( const TCHAR *FileName ) ; // 画像ファイルを読み込みマスクハンドルを作成する
2737 extern int LoadDivMask( const TCHAR *FileName, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ; // 画像ファイルを分割読み込みしてマスクハンドルを作成する
2738 extern int DrawMask( int x, int y, int MaskHandle, int TransMode ) ; // マスクスクリーンにマスクハンドルの持つマスクイメージを書き込む
2739 #ifndef DX_NON_MFont
2740 extern int DrawFormatStringMask( int x, int y, int Flag, const TCHAR *FormatString, ... ) ; // 書式指定ありの文字列をマスクスクリーンに描画する
2741 extern int DrawFormatStringMaskToHandle( int x, int y, int Flag, int FontHandle, const TCHAR *FormatString, ... ) ; // 書式指定ありの文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag( FALSE ) ; にして作成したフォントハンドルのみ使用可能 )
2742 extern int DrawStringMask( int x, int y, int Flag, const TCHAR *String ) ; // 文字列をマスクスクリーンに描画する
2743 extern int DrawStringMaskToHandle( int x, int y, int Flag, int FontHandle, const TCHAR *String ) ; // 文字列をマスクスクリーンに描画する( フォントハンドル指定版 )( SetFontCacheToTextureFlag( FALSE ) ; にして作成したフォントハンドルのみ使用可能 )
2744 #endif // DX_NON_MFont
2745 extern int DrawFillMask( int x1, int y1, int x2, int y2, int MaskHandle ) ; // マスクハンドルが持つマスクイメージをマスクスクリーンいっぱいに描画する( タイル状に並べる )
2746 extern int SetMaskReverseEffectFlag( int ReverseFlag ) ; // マスクイメージ内の数値に対する効果を逆転させる( 旧バージョンとの互換性の為の機能 )
2747
2748 extern int GetMaskScreenData( int x1, int y1, int x2, int y2, int MaskHandle ) ; // マスクスクリーンの指定矩形部分をマスクハンドルに転送する
2749 extern int GetMaskUseFlag( void ) ; // マスクスクリーンを使用する設定になっているかどうかを取得する
2750
2751 #endif // DX_NON_MASK
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768 // DxFont.cpp 関数プロトタイプ宣言
2769
2770 #ifndef DX_NON_MFont
2771
2772 // フォント、文字列描画関係関数
2773 extern int EnueFontName( TCHAR *NameBuffer, int NameBufferNum, int JapanOnlyFlag = TRUE ) ; // 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます )
2774 extern int EnueFontNameEx( TCHAR *NameBuffer, int NameBufferNum, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */ ) ; // 使用可能なフォントの名前を列挙する( NameBuffer に 64バイト区切りで名前が格納されます )( 文字セット指定版 )
2775 extern int EnueFontNameEx2( TCHAR *NameBuffer, int NameBufferNum, TCHAR *EnueFontName, int CharSet = -1 /* DX_CHARSET_DEFAULT 等 */ ) ; // 指定のフォント名のフォントを列挙する
2776 extern int InitFontToHandle( void ) ; // 全てのフォントハンドルを削除する
2777
2778 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 ) ; // フォントハンドルを作成する
2779 extern int SetFontSpaceToHandle( int Point, int FontHandle ) ; // フォントハンドルの字間を変更する
2780 extern int DeleteFontToHandle( int FontHandle ) ; // フォントハンドルを削除する
2781 extern int SetFontLostFlag( int FontHandle, int *LostFlag ) ; // フォントハンドルを削除した際に TRUE を代入する変数のアドレスを設定する
2782
2783 extern int ChangeFont( const TCHAR *FontName, int CharSet = -1 /* DX_CHARSET_SHFTJIS 等 */ ) ; // デフォルトフォントハンドルで使用するフォントを変更
2784 extern int ChangeFontType( int FontType ) ; // デフォルトフォントハンドルのフォントタイプの変更
2785 extern int SetFontSize( int FontSize ) ; // デフォルトフォントハンドルのサイズを設定する
2786 extern int GetFontSize( void ) ; // デフォルトフォントハンドルのサイズを取得する
2787 extern int SetFontThickness( int ThickPal ) ; // デフォルトフォントハンドルの太さを設定する
2788 extern int SetFontSpace( int Point ) ; // デフォルトフォントハンドルの字間を変更する
2789 extern int SetDefaultFontState( const TCHAR *FontName, int Size, int Thick ) ; // デフォルトフォントハンドルの設定を変更する
2790 extern int GetDefaultFontHandle( void ) ; // デフォルトフォントハンドルを取得する
2791 extern int GetFontMaxWidth( void ) ; // デフォルトフォントハンドルの文字の最大幅を取得する
2792 extern int GetDrawStringWidth( const TCHAR *String, int StrLen, int VerticalFlag = FALSE ) ; // デフォルトフォントハンドルを使用した文字列の描画幅を取得する
2793 extern int GetDrawFormatStringWidth( const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する
2794 extern int GetDrawExtendStringWidth( double ExRateX, const TCHAR *String, int StrLen, int VerticalFlag = FALSE ) ; // デフォルトフォントハンドルを使用した文字列の描画幅を取得する( 拡大率付き )
2795 extern int GetDrawExtendFormatStringWidth( double ExRateX, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用した書式付き文字列の描画幅を取得する( 拡大率付き )
2796
2797 extern int GetFontMaxWidthToHandle( int FontHandle ) ; // フォントハンドルの文字の最大幅を取得する
2798 extern int GetFontSizeToHandle( int FontHandle ) ; // フォントハンドルのサイズを取得する
2799 extern int GetFontCharInfo( int FontHandle, const TCHAR *Char, int *DrawX, int *DrawY, int *NextCharX, int *SizeX, int *SizeY ) ; // フォントハンドルの指定の文字の描画情報を取得する
2800 extern int GetDrawStringWidthToHandle( const TCHAR *String, int StrLen, int FontHandle, int VerticalFlag = FALSE ) ; // フォントハンドルを使用した文字列の描画幅を取得する
2801 extern int GetDrawFormatStringWidthToHandle( int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用した書式付き文字列の描画幅を取得する
2802 extern int GetDrawExtendStringWidthToHandle( double ExRateX, const TCHAR *String, int StrLen, int FontHandle, int VerticalFlag = FALSE ) ; // フォントハンドルを使用した文字列の描画幅を取得する
2803 extern int GetDrawExtendFormatStringWidthToHandle( double ExRateX, int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用した書式付き文字列の描画幅を取得する
2804 extern int GetFontStateToHandle( TCHAR *FontName, int *Size, int *Thick, int FontHandle) ; // フォントハンドルの情報を取得する
2805 extern int CheckFontCacheToTextureFlag( int FontHandle ) ; // フォントハンドルがテクスチャキャッシュを使用しているかどうかを取得する
2806 extern int CheckFontChacheToTextureFlag( int FontHandle ) ; // CheckFontCacheToTextureFlag の誤字版
2807 extern int CheckFontHandleValid( int FontHandle ) ; // フォントハンドルが有効かどうかを取得する
2808
2809 extern int SetFontCacheToTextureFlag( int Flag ) ; // フォントのキャッシュにテクスチャを使用するかどうかを設定する( TRUE:テクスチャを使用する( デフォルト ) FALSE:テクスチャは使用しない )
2810 extern int GetFontCacheToTextureFlag( void ) ; // フォントのキャッシュにテクスチャを使用するかどうかを設定する
2811 extern int SetFontChacheToTextureFlag( int Flag ) ; // SetFontCacheToTextureFlag の誤字版
2812 extern int GetFontChacheToTextureFlag( void ) ; // GetFontCacheToTextureFlag の誤字版
2813 extern int SetFontCacheCharNum( int CharNum ) ; // フォントキャッシュでキャッシュできる文字数を設定する
2814 extern int GetFontCacheCharNum( void ) ; // フォントキャッシュでキャッシュできる文字数を取得する( 戻り値 0:デフォルト 1以上:指定文字数 )
2815
2816 // FontCacheStringDraw の代わりに DrawString を使ってください
2817 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 ) ;
2818 extern int FontBaseImageBlt( int x, int y, const TCHAR *StrData, BASEIMAGE *DestImage, BASEIMAGE *DestEdgeImage, int VerticalFlag = FALSE ) ; // 基本イメージに文字列を描画する( デフォルトフォントハンドルを使用する )
2819 extern int FontBaseImageBltToHandle( int x, int y, const TCHAR *StrData, BASEIMAGE *DestImage, BASEIMAGE *DestEdgeImage, int FontHandle, int VerticalFlag = FALSE ) ; // 基本イメージに文字列を描画する
2820
2821 extern int MultiByteCharCheck( const char *Buf, int CharSet /* DX_CHARSET_SHFTJIS */ ) ; // ２バイト文字か調べる( TRUE:２バイト文字 FALSE:１バイト文字 )
2822
2823 // 文字列描画関数
2824 extern int DrawString( int x, int y, const TCHAR *String, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して文字列を描画する
2825 extern int DrawVString( int x, int y, const TCHAR *String, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して文字列を描画する( 縦書き )
2826 extern int DrawFormatString( int x, int y, int Color, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用して書式指定文字列を描画する
2827 extern int DrawFormatVString( int x, int y, int Color, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用して書式指定文字列を描画する( 縦書き )
2828 extern int DrawExtendString( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して文字列の拡大描画
2829 extern int DrawExtendVString( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して文字列の拡大描画( 縦書き )
2830 extern int DrawExtendFormatString( int x, int y, double ExRateX, double ExRateY, int Color, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する
2831 extern int DrawExtendFormatVString( int x, int y, double ExRateX, double ExRateY, int Color, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )
2832
2833 extern int DrawNumberToI( int x, int y, int Num, int RisesNum, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して整数型の数値を描画する
2834 extern int DrawNumberToF( int x, int y, double Num, int Length, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して浮動小数点型の数値を描画する
2835 extern int DrawNumberPlusToI( int x, int y, const TCHAR *NoteString, int Num, int RisesNum, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
2836 extern int DrawNumberPlusToF( int x, int y, const TCHAR *NoteString, double Num, int Length, int Color, int EdgeColor = 0 ) ; // デフォルトフォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
2837
2838 extern int DrawStringToZBuffer( int x, int y, const TCHAR *String, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // デフォルトフォントハンドルを使用してＺバッファに対して文字列を描画する
2839 extern int DrawVStringToZBuffer( int x, int y, const TCHAR *String, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // デフォルトフォントハンドルを使用してＺバッファに対して文字列を描画する( 縦書き )
2840 extern int DrawFormatStringToZBuffer( int x, int y, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用してＺバッファに対して書式指定文字列を描画する
2841 extern int DrawFormatVStringToZBuffer( int x, int y, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用してＺバッファに対して書式指定文字列を描画する( 縦書き )
2842 extern int DrawExtendStringToZBuffer( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // デフォルトフォントハンドルを使用してＺバッファに対して文字列を拡大描画する
2843 extern int DrawExtendVStringToZBuffer( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // デフォルトフォントハンドルを使用してＺバッファに対して文字列を拡大描画する( 縦書き )
2844 extern int DrawExtendFormatStringToZBuffer( int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用してＺバッファに対して書式指定文字列を拡大描画する
2845 extern int DrawExtendFormatVStringToZBuffer( int x, int y, double ExRateX, double ExRateY, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // デフォルトフォントハンドルを使用してＺバッファに対して書式指定文字列を拡大描画する( 縦書き )
2846
2847
2848 extern int DrawStringToHandle( int x, int y, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 , int VerticalFlag = FALSE ) ; // フォントハンドルを使用して文字列を描画する
2849 extern int DrawVStringToHandle( int x, int y, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して文字列を描画する( 縦書き )
2850 extern int DrawFormatStringToHandle( int x, int y, int Color, int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用して書式指定文字列を描画する
2851 extern int DrawFormatVStringToHandle( int x, int y, int Color, int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用して書式指定文字列を描画する( 縦書き )
2852 extern int DrawExtendStringToHandle( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 , int VerticalFlag = FALSE ) ; // フォントハンドルを使用して文字列を拡大描画する
2853 extern int DrawExtendVStringToHandle( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して文字列を拡大描画する( 縦書き )
2854 extern int DrawExtendFormatStringToHandle( int x, int y, double ExRateX, double ExRateY, int Color, int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用して書式指定文字列を拡大描画する
2855 extern int DrawExtendFormatVStringToHandle( int x, int y, double ExRateX, double ExRateY, int Color, int FontHandle, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用して書式指定文字列を拡大描画する( 縦書き )
2856
2857 extern int DrawNumberToIToHandle( int x, int y, int Num, int RisesNum, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して整数型の数値を描画する
2858 extern int DrawNumberToFToHandle( int x, int y, double Num, int Length, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して浮動小数点型の数値を描画する
2859 extern int DrawNumberPlusToIToHandle( int x, int y, const TCHAR *NoteString, int Num, int RisesNum, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して整数型の数値とその説明の文字列を一度に描画する
2860 extern int DrawNumberPlusToFToHandle( int x, int y, const TCHAR *NoteString, double Num, int Length, int Color, int FontHandle, int EdgeColor = 0 ) ; // フォントハンドルを使用して浮動小数点型の数値とその説明の文字列を一度に描画する
2861
2862 extern int DrawStringToHandleToZBuffer( int x, int y, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int VerticalFlag = FALSE ) ; // フォントハンドルを使用してＺバッファに対して文字列を描画する
2863 extern int DrawVStringToHandleToZBuffer( int x, int y, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // フォントハンドルを使用してＺバッファに対して文字列を描画する( 縦書き )
2864 extern int DrawFormatStringToHandleToZBuffer( int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用してＺバッファに対して書式指定文字列を描画する
2865 extern int DrawFormatVStringToHandleToZBuffer( int x, int y, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用してＺバッファに対して書式指定文字列を描画する( 縦書き )
2866 extern int DrawExtendStringToHandleToZBuffer( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ , int VerticalFlag = FALSE ) ; // フォントハンドルを使用してＺバッファに対して文字列を拡大描画する
2867 extern int DrawExtendVStringToHandleToZBuffer( int x, int y, double ExRateX, double ExRateY, const TCHAR *String, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */ ) ; // フォントハンドルを使用してＺバッファに対して文字列を拡大描画する( 縦書き )
2868 extern int DrawExtendFormatStringToHandleToZBuffer( int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用してＺバッファに対して書式指定文字列を拡大描画する
2869 extern int DrawExtendFormatVStringToHandleToZBuffer( int x, int y, double ExRateX, double ExRateY, int FontHandle, int WriteZMode /* DX_ZWRITE_MASK 等 */, const TCHAR *FormatString, ... ) ; // フォントハンドルを使用してＺバッファに対して書式指定文字列を拡大描画する( 縦書き )
2870
2871 #endif // DX_NON_MFont
2872
2873
2874
2875
2876
2877
2878
2879
2880 // DxMath.cpp 関数プロトタイプ宣言
2881
2882 // 演算ライブラリ
2883 extern int CreateIdentityMatrix( MATRIX *Out ) ; // 単位行列を作成する
2884 extern int CreateLookAtMatrix( MATRIX *Out, VECTOR *Eye, VECTOR *At, VECTOR *Up ) ; // ビュー行列を作成する
2885 extern int CreateLookAtMatrix2( MATRIX *Out, VECTOR *Eye, double XZAngle, double Oira ) ; // ビュー行列を作成する(方向を回転値で指定)
2886 extern int CreateLookAtMatrixRH( MATRIX *Out, VECTOR *Eye, VECTOR *At, VECTOR *Up ) ; // ビュー行列を作成する(右手座標系用)
2887 extern int CreateMultiplyMatrix( MATRIX *Out, MATRIX *In1, MATRIX *In2 ) ; // 行列の積を求める
2888 extern int CreatePerspectiveFovMatrix( MATRIX *Out, float fov, float zn, float zf, float aspect = -1.0f ) ; // 射影行列を作成する
2889 extern int CreatePerspectiveFovMatrixRH( MATRIX *Out, float fov, float zn, float zf, float aspect = -1.0f ) ; // 射影行列を作成する(右手座標系用)
2890 extern int CreateOrthoMatrix( MATRIX *Out, float size, float zn, float zf, float aspect = -1.0f ) ; // 正射影行列を作成する
2891 extern int CreateOrthoMatrixRH( MATRIX *Out, float size, float zn, float zf, float aspect = -1.0f ) ; // 正射影行列を作成する(右手座標系用)
2892 extern int CreateScalingMatrix( MATRIX *Out, float sx, float sy, float sz ) ; // スケーリング行列を作成する
2893 extern int CreateRotationXMatrix( MATRIX *Out, float Angle ) ; // Ｘ軸を中心とした回転行列を作成する
2894 extern int CreateRotationYMatrix( MATRIX *Out, float Angle ) ; // Ｙ軸を中心とした回転行列を作成する
2895 extern int CreateRotationZMatrix( MATRIX *Out, float Angle ) ; // Ｚ軸を中心とした回転行列を作成する
2896 extern int CreateTranslationMatrix( MATRIX *Out, float x, float y, float z ) ; // 平行移動行列を作成する
2897 extern int CreateTransposeMatrix( MATRIX *Out, MATRIX *In ) ; // 転置行列を作成する
2898 extern int CreateInverseMatrix( MATRIX *Out, MATRIX *In ) ; // 逆行列を作成する
2899 extern int CreateViewportMatrix( MATRIX *Out, float CenterX, float CenterY, float Width, float Height ) ; // ビューポート行列を作成する
2900 extern int CreateRotationXYZMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｘ軸回転→Ｙ軸回転→Ｚ軸回転を合成した行列を作成する
2901 extern int CreateRotationXZYMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｘ軸回転→Ｚ軸回転→Ｙ軸回転を合成した行列を作成する
2902 extern int CreateRotationYXZMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｙ軸回転→Ｘ軸回転→Ｚ軸回転を合成した行列を作成する
2903 extern int CreateRotationYZXMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｙ軸回転→Ｚ軸回転→Ｘ軸回転を合成した行列を作成する
2904 extern int CreateRotationZXYMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｚ軸回転→Ｘ軸回転→Ｙ軸回転を合成した行列を作成する
2905 extern int CreateRotationZYXMatrix( MATRIX *Out, float XRot, float YRot, float ZRot ) ; // Ｚ軸回転→Ｙ軸回転→Ｘ軸回転を合成した行列を作成する
2906 extern int GetMatrixXYZRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＸＹＺ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2907 extern int GetMatrixXZYRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＸＺＹ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2908 extern int GetMatrixYXZRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＹＸＺ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2909 extern int GetMatrixYZXRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＹＺＸ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2910 extern int GetMatrixZXYRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＺＸＹ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2911 extern int GetMatrixZYXRotation( MATRIX *In, float *OutXRot, float *OutYRot, float *OutZRot ) ; // 行列からＺＹＸ軸回転の値を取得する( 戻り値　-1:ジンバルロック発生 0:成功 )
2912 extern int VectorNormalize( VECTOR *Out, VECTOR *In ) ; // ベクトルを正規化する
2913 extern int VectorScale( VECTOR *Out, VECTOR *In, float Scale ) ; // ベクトルをスカラー倍する
2914 extern int VectorMultiply( VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ; // ベクトルの掛け算をする
2915 extern int VectorSub( VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ; // Out = In1 - In2 のベクトル計算をする
2916 extern int VectorAdd( VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ; // Out = In1 + In2 のベクトル計算をする
2917 extern int VectorOuterProduct( VECTOR *Out, VECTOR *In1, VECTOR *In2 ) ; // In1とIn2の外積を計算する
2918 extern float VectorInnerProduct( VECTOR *In1, VECTOR *In2 ) ; // In1とIn2の内積を計算する
2919 extern int VectorRotationX( VECTOR *Out, VECTOR *In, double Angle ) ; // ベクトルのＸ軸を軸にした回転を行う
2920 extern int VectorRotationY( VECTOR *Out, VECTOR *In, double Angle ) ; // ベクトルのＹ軸を軸にした回転を行う
2921 extern int VectorRotationZ( VECTOR *Out, VECTOR *In, double Angle ) ; // ベクトルのＺ軸を軸にした回転を行う
2922 extern int VectorTransform( VECTOR *Out, VECTOR *InVec, MATRIX *InMatrix ) ; // ベクトル行列と4x4正方行列を乗算する( w は 1 と仮定 )
2923 extern int VectorTransform4( VECTOR *Out, float *V4Out, VECTOR *InVec, float *V4In, MATRIX *InMatrix ) ; // ベクトル行列と4x4正方行列を乗算する( w の要素を渡す )
2924
2925 extern void TriangleBarycenter( VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR Position, float *u, float *v, float *w ) ; // 指定の座標から三角形の重心を求める
2926
2927 extern float Segment_Segment_MinLength( VECTOR SegmentAPos1, VECTOR SegmentAPos2, VECTOR SegmentBPos1, VECTOR SegmentBPos2 ) ; // 二つの線分の最近点間の距離を得る
2928 extern float Segment_Segment_MinLength_Square( VECTOR SegmentAPos1, VECTOR SegmentAPos2, VECTOR SegmentBPos1, VECTOR SegmentBPos2 ) ; // 二つの線分の最近点間の距離の二乗を得る
2929 extern float Segment_Triangle_MinLength( VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ; // 線分と三角形の最近点間の距離を得る
2930 extern float Segment_Triangle_MinLength_Square( VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ; // 線分と三角形の最近点間の距離の二乗を得る
2931 extern float Segment_Point_MinLength( VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR PointPos ) ; // 線分と点の一番近い距離を得る
2932 extern float Segment_Point_MinLength_Square( VECTOR SegmentPos1, VECTOR SegmentPos2, VECTOR PointPos ) ; // 線分と点の一番近い距離の二乗を得る
2933 extern float Triangle_Point_MinLength( VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR PointPos ) ; // 三角形と点の一番近い距離を得る
2934 extern float Triangle_Point_MinLength_Square( VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3, VECTOR PointPos ) ; // 三角形と点の一番近い距離の二乗を得る
2935 extern VECTOR Plane_Point_MinLength_Position( VECTOR PlanePos, VECTOR PlaneNormal, VECTOR PointPos ) ; // 点に一番近い平面上の座標を得る
2936 extern float Plane_Point_MinLength( VECTOR PlanePos, VECTOR PlaneNormal, VECTOR PointPos ) ; // 平面と点の一番近い距離を得る
2937
2938 extern HITRESULT_LINE HitCheck_Line_Triangle( VECTOR LinePos1, VECTOR LinePos2, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ; // 三角形と線の当たり判定
2939 extern int HitCheck_Triangle_Triangle( VECTOR Triangle1Pos1, VECTOR Triangle1Pos2, VECTOR Triangle1Pos3, VECTOR Triangle2Pos1, VECTOR Triangle2Pos2, VECTOR Triangle2Pos3 ) ; // 三角形と三角形の当たり判定( TRUE:当たっている FALSE:当たっていない )
2940 extern int HitCheck_Line_Sphere( VECTOR LinePos1, VECTOR LinePos2, VECTOR SphereCenterPos, float SphereR ) ; // 線と球の当たり判定( TRUE:当たっている FALSE:当たっていない )
2941 extern int HitCheck_Sphere_Sphere( VECTOR Sphere1CenterPos, float Sphere1R, VECTOR Sphere2CenterPos, float Sphere2R ) ; // 球と球の当たり判定( TRUE:当たっている FALSE:当たっていない )
2942 extern int HitCheck_Sphere_Triangle( VECTOR SphereCenterPos, float SphereR, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ; // 球と三角形の当たり判定( TRUE:当たっている FALSE:当たっていない )
2943 extern int HitCheck_Capsule_Capsule( VECTOR Cap1Pos1, VECTOR Cap1Pos2, float Cap1R, VECTOR Cap2Pos1, VECTOR Cap2Pos2, float Cap2R ) ; // カプセル同士の当たり判定( TRUE:当たっている FALSE:当たっていない )
2944 extern int HitCheck_Capsule_Triangle( VECTOR CapPos1, VECTOR CapPos2, float CapR, VECTOR TrianglePos1, VECTOR TrianglePos2, VECTOR TrianglePos3 ) ; // カプセルと三角形の当たり判定( TRUE:当たっている FALSE:当たっていない )
2945
2946 // その他
2947 extern int RectClipping( RECT *MotoRect, RECT *ClippuRect ) ; // 矩形のクリッピング
2948 extern int RectAdjust( RECT *Rect ) ; // 矩形の left が right より値が大きい場合などの誤りを補正する
2949 extern int GetRectSize( RECT *Rect, int *Width, int *Height ) ; // 矩形の幅と高さを求める
2950
2951 // 表記簡略版
2952 extern MATRIX MGetIdent( void ) ; // 単位行列を取得する
2953 extern MATRIX MMult( MATRIX In1, MATRIX In2 ) ; // 行列の乗算を行う
2954 extern MATRIX MScale( MATRIX InM, float Scale ) ; // 行列のスケーリングを行う
2955 extern MATRIX MAdd( MATRIX In1, MATRIX In2 ) ; // 行列の足し算を行う
2956 extern MATRIX MGetScale( VECTOR Scale ) ; // 拡大行列を取得する
2957 extern MATRIX MGetRotX( float XAxisRotate ) ; // Ｘ軸回転行列を取得する
2958 extern MATRIX MGetRotY( float YAxisRotate ) ; // Ｙ軸回転行列を取得する
2959 extern MATRIX MGetRotZ( float ZAxisRotate ) ; // Ｚ軸回転行列を取得する
2960 extern MATRIX MGetRotAxis( VECTOR RotateAxis, float Rotate ) ; // 指定軸で指定角度回転する行列を取得する
2961 extern MATRIX MGetRotVec2( VECTOR In1, VECTOR In2 ) ; // In1 の向きから In2 の向きへ変換する回転行列を取得する( In2 と In1 が真逆のベクトルの場合は回転軸は不定 )
2962 extern MATRIX MGetTranslate( VECTOR Trans ) ; // 平行移動行列を取得する
2963 extern MATRIX MGetAxis1( VECTOR XAxis, VECTOR YAxis, VECTOR ZAxis, VECTOR Pos ) ; // 指定の３軸ローカルのベクトルを基本軸上のベクトルに変換する行列を取得する( 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 )
2964 extern MATRIX MGetAxis2( VECTOR XAxis, VECTOR YAxis, VECTOR ZAxis, VECTOR Pos ) ; // 基本軸上のベクトルを指定の３軸上に投影したベクトルに変換する行列を取得する( 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 ) )
2965 extern MATRIX MTranspose( MATRIX InM ) ; // 転置行列を取得する
2966 extern MATRIX MInverse( MATRIX InM ) ; // 逆行列を取得する
2967 extern VECTOR MGetSize( MATRIX InM ) ; // 拡大行列のＸ軸、Ｙ軸、Ｚ軸の拡大率を取得する
2968
2969 // ベクトル値の生成
2970 __inline VECTOR VGet( float x, float y, float z )
2971 {
2972 VECTOR Result;
2973 Result.x = x ;
2974 Result.y = y ;
2975 Result.z = z ;
2976 return Result ;
2977 }
2978
2979 // ４要素ベクトル値の生成
2980 __inline FLOAT4 F4Get( float x, float y, float z, float w )
2981 {
2982 FLOAT4 Result;
2983 Result.x = x ;
2984 Result.y = y ;
2985 Result.z = z ;
2986 Result.w = w ;
2987 return Result ;
2988 }
2989
2990 // ベクトルの加算
2991 __inline VECTOR VAdd( const VECTOR &In1, const VECTOR &In2 )
2992 {
2993 VECTOR Result ;
2994 Result.x = In1.x + In2.x ;
2995 Result.y = In1.y + In2.y ;
2996 Result.z = In1.z + In2.z ;
2997 return Result ;
2998 }
2999
3000 // ベクトルの減算
3001 __inline VECTOR VSub( const VECTOR &In1, const VECTOR &In2 )
3002 {
3003 VECTOR Result ;
3004 Result.x = In1.x - In2.x ;
3005 Result.y = In1.y - In2.y ;
3006 Result.z = In1.z - In2.z ;
3007 return Result ;
3008 }
3009
3010 // ４要素ベクトルの加算
3011 __inline FLOAT4 F4Add( const FLOAT4 &In1, const FLOAT4 &In2 )
3012 {
3013 FLOAT4 Result ;
3014 Result.x = In1.x + In2.x ;
3015 Result.y = In1.y + In2.y ;
3016 Result.z = In1.z + In2.z ;
3017 Result.w = In1.w + In2.w ;
3018 return Result ;
3019 }
3020
3021 // ４要素ベクトルの減算
3022 __inline FLOAT4 F4Sub( const FLOAT4 &In1, const FLOAT4 &In2 )
3023 {
3024 FLOAT4 Result ;
3025 Result.x = In1.x - In2.x ;
3026 Result.y = In1.y - In2.y ;
3027 Result.z = In1.z - In2.z ;
3028 Result.w = In1.w - In2.w ;
3029 return Result ;
3030 }
3031
3032 // ベクトルの内積
3033 __inline float VDot( const VECTOR &In1, const VECTOR &In2 )
3034 {
3035 return In1.x * In2.x + In1.y * In2.y + In1.z * In2.z ;
3036 }
3037
3038 // ベクトルの外積
3039 __inline VECTOR VCross( const VECTOR &In1, const VECTOR &In2 )
3040 {
3041 VECTOR Result ;
3042 Result.x = In1.y * In2.z - In1.z * In2.y ;
3043 Result.y = In1.z * In2.x - In1.x * In2.z ;
3044 Result.z = In1.x * In2.y - In1.y * In2.x ;
3045 return Result ;
3046 }
3047
3048 // ベクトルのスケーリング
3049 __inline VECTOR VScale( const VECTOR &In, float Scale )
3050 {
3051 VECTOR Result ;
3052 Result.x = In.x * Scale ;
3053 Result.y = In.y * Scale ;
3054 Result.z = In.z * Scale ;
3055 return Result ;
3056 }
3057
3058 // ４要素ベクトルのスケーリング
3059 __inline FLOAT4 F4Scale( const FLOAT4 &In, float Scale )
3060 {
3061 FLOAT4 Result ;
3062 Result.x = In.x * Scale ;
3063 Result.y = In.y * Scale ;
3064 Result.z = In.z * Scale ;
3065 Result.w = In.w * Scale ;
3066 return Result ;
3067 }
3068
3069 // ベクトルの正規化
3070 extern VECTOR VNorm( VECTOR In ) ;
3071
3072 // ベクトルのサイズ
3073 extern float VSize( VECTOR In ) ;
3074
3075 // ベクトルのサイズの２乗
3076 __inline float VSquareSize( const VECTOR &In )
3077 {
3078 return In.x * In.x + In.y * In.y + In.z * In.z ;
3079 }
3080
3081 // 行列を使った座標変換
3082 __inline VECTOR VTransform( const VECTOR &InV, const MATRIX &InM )
3083 {
3084 VECTOR Result ;
3085 Result.x = InV.x * InM.m[0][0] + InV.y * InM.m[1][0] + InV.z * InM.m[2][0] + InM.m[3][0] ;
3086 Result.y = InV.x * InM.m[0][1] + InV.y * InM.m[1][1] + InV.z * InM.m[2][1] + InM.m[3][1] ;
3087 Result.z = InV.x * InM.m[0][2] + InV.y * InM.m[1][2] + InV.z * InM.m[2][2] + InM.m[3][2] ;
3088 return Result ;
3089 }
3090
3091 // 行列を使った座標変換( スケーリング＋回転成分のみ )
3092 __inline VECTOR VTransformSR( const VECTOR &InV, const MATRIX &InM )
3093 {
3094 VECTOR Result ;
3095 Result.x = InV.x * InM.m[0][0] + InV.y * InM.m[1][0] + InV.z * InM.m[2][0] ;
3096 Result.y = InV.x * InM.m[0][1] + InV.y * InM.m[1][1] + InV.z * InM.m[2][1] ;
3097 Result.z = InV.x * InM.m[0][2] + InV.y * InM.m[1][2] + InV.z * InM.m[2][2] ;
3098 return Result ;
3099 }
3100
3101 // 二つのベクトルが成す角のコサイン値を得る
3102 extern float VCos( VECTOR In1, VECTOR In2 ) ;
3103
3104 // 二つのベクトルが成す角の角度を得る( 単位：ラジアン )
3105 extern float VRad( VECTOR In1, VECTOR In2 ) ;
3106
3107
3108
3109
3110
3111
3112
3113
3114 // DxBaseImage.cpp 関数プロトタイプ宣言
3115
3116 // 基本イメージデータのロード＋ＤＩＢ関係
3117 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 ) ; // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータ若しくはＢＭＰデータを構築する
3118 extern int CreateGraphImageType2( STREAMDATA *Src, BASEIMAGE *Dest ) ; // 画像データから構築したストリーム読み込み用データを使用して基本イメージデータを構築する
3119 extern int CreateBmpInfo( BITMAPINFO *BmpInfo, int Width, int Height, int Pitch, void *SrcGrData, void **DestGrData ) ; // 24bitカラー形式のビットマップデータからＢＭＰデータを構築する
3120 extern DWORD GetGraphImageFullColorCode( BASEIMAGE *GraphImage, int x, int y ) ; // 基本イメージデータの指定座標のフルカラーコードを取得する
3121 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 ) ; // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージを読み込み、基本イメージデータを構築する
3122 extern int ReverseGraphImage( BASEIMAGE *GraphImage ) ; // 基本イメージデータを左右反転する
3123 #ifdef __WINDOWS__
3124 extern HBITMAP CreateDIBGraph( const TCHAR *FileName, int ReverseFlag, COLORDATA *SrcColor) ; // 画像ファイルからＤＩＢデータを作成する
3125 extern HBITMAP CreateDIBGraphToMem( BITMAPINFO *BmpInfo, void *GraphData, int ReverseFlag, COLORDATA *SrcColor ) ; // ＢＭＰデータからＤＩＢデータクを作成する
3126 extern int CreateDIBGraph_plus_Alpha( const TCHAR *FileName, HBITMAP *RGBBmp, HBITMAP *AlphaBmp, int ReverseFlag = FALSE , COLORDATA *SrcColor = NULL ) ; // 画像ファイルからＤＩＢデータとマスク用ＤＩＢデータを作成する
3127 extern HBITMAP CreateDIBGraphVer2( const TCHAR *FileName, void *MemImage, int MemImageSize, int ImageType, int ReverseFlag, COLORDATA *SrcColor ) ; // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからＤＩＢデータを作成する
3128 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 ) ; // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからＤＩＢデータとマスク用ＤＩＢデータを作成する
3129 extern int ConvBitmapToGraphImage( BITMAPINFO *BmpInfo, void *GraphData, BASEIMAGE *GraphImage, int CopyFlag ) ; // ＢＭＰデータから基本イメージデータを構築する( Ret 0:正常終了 1:コピーを行った -1:エラー )
3130 extern int ConvGraphImageToBitmap( BASEIMAGE *GraphImage, BITMAPINFO *BmpInfo, void **GraphData, int CopyFlag, int FullColorConv = TRUE ) ; // 基本イメージデータをＢＭＰデータに変換するGraphImage を ＢＭＰ に変換する(アルファデータはあっても無視される)( 戻り値　0:正常終了 1:コピーを行った -1:エラー )
3131 #endif // __WINDOWS__
3132
3133 //extern int AddUserGraphLoadFunction( int ( *UserLoadFunc )( FILE *fp, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数を登録する
3134 //extern int AddUserGraphLoadFunction2( int ( *UserLoadFunc )( void *Image, int ImageSize, int ImageType, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数を登録する
3135 //extern int AddUserGraphLoadFunction3( int ( *UserLoadFunc )( void *DataImage, int DataImageSize, int DataImageType, int BmpFlag, BASEIMAGE *Image, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数Ver3を登録する
3136 extern int AddUserGraphLoadFunction4( int (* UserLoadFunc )( STREAMDATA *Src, BASEIMAGE *Image ) ) ; // ユーザー定義の画像データ読み込み関数Ver4を登録する
3137 //extern int SubUserGraphLoadFunction( int ( *UserLoadFunc )( FILE *fp, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数を登録から抹消する
3138 //extern int SubUserGraphLoadFunction2( int ( *UserLoadFunc )( void *Image, int ImageSize, int ImageType, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数を登録から抹消する
3139 //extern int SubUserGraphLoadFunction3( int ( *UserLoadFunc )( void *DataImage, int DataImageSize, int DataImageType, int BmpFlag, BASEIMAGE *Image, BITMAPINFO **BmpInfo, void **GraphData ) ) ; // ユーザー定義の画像データ読み込み関数Ver3を登録から抹消する
3140 extern int SubUserGraphLoadFunction4( int (* UserLoadFunc )( STREAMDATA *Src, BASEIMAGE *Image ) ) ; // ユーザー定義の画像データ読み込み関数Ver4を登録から抹消する
3141
3142 extern int SetUseFastLoadFlag( int Flag ) ; // 高速読み込みルーチンを使用するかどうかを設定する( TRUE:使用する( デフォルト ) FALSE:使用しない )
3143 extern int SetGraphDataShavedMode( int ShavedMode /* DX_SHAVEDMODE_NONE 等 */ ) ; // 画像減色時の画像劣化緩和処理モードを設定する( デフォルトでは緩和処理無しの DX_SHAVEDMODE_NONE )
3144 extern int GetGraphDataShavedMode( void ) ; // 画像減色時の画像劣化緩和処理モードを取得する
3145
3146 // 基本イメージデータ構造体関係
3147 extern int CreateBaseImage( const TCHAR *FileName, void *FileImage, int FileImageSize, int DataType /*=LOADIMAGE_TYPE_FILE*/ , BASEIMAGE *BaseImage, int ReverseFlag ) ; // 画像ファイル若しくはメモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
3148 extern int CreateGraphImage( const TCHAR *FileName, void *DataImage, int DataImageSize, int DataImageType, BASEIMAGE *GraphImage, int ReverseFlag ) ; // CreateBaseImage の旧名称
3149 extern int CreateBaseImageToFile( const TCHAR *FileName, BASEIMAGE *BaseImage, int ReverseFlag = FALSE ) ; // 画像ファイルから基本イメージデータを構築する
3150 extern int CreateBaseImageToMem( void *FileImage, int FileImageSize, BASEIMAGE *BaseImage, int ReverseFlag = FALSE ) ; // メモリ上に展開された画像ファイルイメージから基本イメージデータを構築する
3151 extern int CreateARGB8ColorBaseImage( int SizeX, int SizeY, BASEIMAGE *BaseImage ) ; // ＡＲＧＢ８カラーの基本イメージデータを作成する
3152 extern int CreateXRGB8ColorBaseImage( int SizeX, int SizeY, BASEIMAGE *BaseImage ) ; // ＸＲＧＢ８カラーの基本イメージデータを作成する
3153 extern int CreateRGB8ColorBaseImage( int SizeX, int SizeY, BASEIMAGE *BaseImage ) ; // ＲＧＢ８カラーの基本イメージデータを作成する
3154 extern int CreateARGB4ColorBaseImage( int SizeX, int SizeY, BASEIMAGE *BaseImage ) ; // ＡＲＧＢ４カラーの基本イメージデータを作成する
3155 extern int CreatePAL8ColorBaseImage( int SizeX, int SizeY, BASEIMAGE *BaseImage ) ; // パレット８ビットカラーの基本イメージデータを作成する
3156 extern int CreateColorDataBaseImage( int SizeX, int SizeY, COLORDATA *ColorData, BASEIMAGE *BaseImage ) ; // 指定のカラーフォーマットの基本イメージデータを作成する
3157 extern int GetBaseImageGraphDataSize( BASEIMAGE *BaseImage ) ; // 基本イメージデータのイメージサイズを取得する( 単位：byte )
3158
3159 extern int ReleaseBaseImage( BASEIMAGE *BaseImage ) ; // 基本イメージデータの後始末を行う
3160 extern int ReleaseGraphImage( BASEIMAGE *GraphImage ) ; // ReleaseBaseImage の旧名称
3161
3162 extern int ConvertNormalFormatBaseImage( BASEIMAGE *BaseImage ) ; // DX_BASEIMAGE_FORMAT_NORMAL 以外の形式のイメージを DX_BASEIMAGE_FORMAT_NORMAL 形式のイメージに変換する
3163
3164 extern int GetDrawScreenBaseImage( int x1, int y1, int x2, int y2, BASEIMAGE *BaseImage ) ; // 描画対象の画面から指定領域を基本イメージデータに転送する
3165 #ifdef __WINDOWS__
3166 extern int UpdateLayerdWindowForBaseImage( BASEIMAGE *BaseImage ) ; // 基本イメージデータを使用して UpdateLayerdWindow を行う
3167 extern int UpdateLayerdWindowForPremultipliedAlphaBaseImage( BASEIMAGE *BaseImage ) ; // 乗算済みアルファの基本イメージデータを使用して UpdateLayerdWindow を行う
3168 #endif // __WINDOWS__
3169 extern int FillBaseImage( BASEIMAGE *BaseImage, int r, int g, int b, int a ) ; // 基本イメージデータを指定の色で塗りつぶす
3170 extern int ClearRectBaseImage( BASEIMAGE *BaseImage, int x, int y, int w, int h ) ; // 基本イメージデータの指定の領域を０クリアする
3171 extern int GetPaletteBaseImage( BASEIMAGE *BaseImage, int PaletteNo, int *r, int *g, int *b, int *a ) ; // 基本イメージデータのパレットを取得する
3172 extern int SetPaletteBaseImage( BASEIMAGE *BaseImage, int PaletteNo, int r, int g, int b, int a ) ; // 基本イメージデータのパレットをセットする
3173 extern int SetPixelPalCodeBaseImage( BASEIMAGE *BaseImage, int x, int y, int palNo ) ; // 基本イメージデータの指定の座標の色コードを変更する(パレット画像用)
3174 extern int GetPixelPalCodeBaseImage( BASEIMAGE *BaseImage, int x, int y ) ; // 基本イメージデータの指定の座標の色コードを取得する(パレット画像用)
3175 extern int SetPixelBaseImage( BASEIMAGE *BaseImage, int x, int y, int r, int g, int b, int a ) ; // 基本イメージデータの指定の座標の色を変更する(各色要素は０〜２５５)
3176 extern int GetPixelBaseImage( BASEIMAGE *BaseImage, int x, int y, int *r, int *g, int *b, int *a ) ; // 基本イメージデータの指定の座標の色を取得する(各色要素は０〜２５５)
3177 extern int DrawLineBaseImage( BASEIMAGE *BaseImage, int x1, int y1, int x2, int y2, int r, int g, int b, int a ) ; // 基本イメージデータの指定の座標に線を描画する(各色要素は０〜２５５)
3178 extern int BltBaseImage( int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int DestX, int DestY, BASEIMAGE *SrcBaseImage, BASEIMAGE *DestBaseImage ) ; // 基本イメージデータを別の基本イメージデータに転送する
3179 extern int BltBaseImage( int DestX, int DestY, BASEIMAGE *SrcBaseImage, BASEIMAGE *DestBaseImage ) ; // 基本イメージデータを別の基本イメージデータに転送する
3180 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 ) ; // 基本イメージデータを別の基本イメージデータに透過色処理付きで転送する
3181 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 形式以外の場合はエラーになります )
3182 extern int ReverseBaseImageH( BASEIMAGE *BaseImage ) ; // 基本イメージデータを左右反転する
3183 extern int ReverseBaseImageV( BASEIMAGE *BaseImage ) ; // 基本イメージデータを上下反転する
3184 extern int ReverseBaseImage( BASEIMAGE *BaseImage ) ; // 基本イメージデータを上下左右反転する
3185 extern int CheckPixelAlphaBaseImage( BASEIMAGE *BaseImage ) ; // 基本イメージデータに含まれるピクセルのアルファ値をチェックする( 戻り値 -1:エラー 0:画像にアルファ成分が無い 1:画像にアルファ成分があり、すべて最大(255)値 2:画像にアルファ成分があり、存在するアルファ値は最小(0)と最大(255)もしくは最小(0)のみ　3:画像にアルファ成分があり、最小と最大以外の中間の値がある )
3186
3187 #ifndef DX_NON_SAVEFUNCTION
3188
3189 extern int SaveBaseImageToBmp( const TCHAR *FilePath, BASEIMAGE *BaseImage ) ; // 基本イメージデータをＢＭＰ画像として保存する
3190 #ifndef DX_NON_PNGREAD
3191 extern int SaveBaseImageToPng( const TCHAR *FilePath, BASEIMAGE *BaseImage, int CompressionLevel ) ; // 基本イメージデータをＰＮＧ画像として保存する
3192 #endif // DX_NON_PNGREAD
3193 #ifndef DX_NON_JPEGREAD
3194 extern int SaveBaseImageToJpeg( const TCHAR *FilePath, BASEIMAGE *BaseImage, int Quality, int Sample2x1 ) ; // 基本イメージデータをＪＰＥＧ画像として保存する
3195 #endif // DX_NON_JPEGREAD
3196
3197 #endif // DX_NON_SAVEFUNCTION
3198
3199 // 基本イメージ描画
3200 extern int DrawBaseImage( int x, int y, BASEIMAGE *BaseImage ) ; // 基本イメージデータを描画する
3201
3202 // カラーマッチングしながらイメージデータ間転送を行う Ver2
3203 extern int GraphColorMatchBltVer2( void *DestGraphData, int DestPitch, COLORDATA *DestColorData,
3204 void *SrcGraphData, int SrcPitch, COLORDATA *SrcColorData,
3205 void *AlphaMask, int AlphaPitch, COLORDATA *AlphaColorData,
3206 POINT DestPoint, RECT *SrcRect, int ReverseFlag,
3207 int TransColorAlphaTestFlag, unsigned int TransColor,
3208 int ImageShavedMode, int AlphaOnlyFlag = FALSE ,
3209 int RedIsAlphaFlag = FALSE , int TransColorNoMoveFlag = FALSE ,
3210 int Pal8ColorMatch = FALSE ) ;
3211
3212
3213 // 色情報取得関係
3214 extern COLOR_F GetColorF( float Red, float Green, float Blue, float Alpha ) ; // 浮動小数点型のカラー値を作成する
3215 extern COLOR_U8 GetColorU8( int Red, int Green, int Blue, int Alpha ) ; // 符号なし整数８ビットのカラー値を作成する
3216 extern DWORD GetColor( int Red, int Green, int Blue ) ; // ３原色の値から現在の画面モードに対応したカラー値を得る
3217 extern int GetColor2( int Color, int *Red, int *Green, int *Blue ) ; // 画面モードに対応したカラー値から個々の３原色の値を抜き出す
3218 extern int GetColor3( COLORDATA *ColorData, int Red, int Green, int Blue, int Alpha = 255 ) ; // ３原色の値から指定のピクセルフォーマットに対応したカラー値を得る
3219 extern int GetColor4( COLORDATA *DestColorData, COLORDATA* SrcColorData, int SrcColor ) ; // 指定のカラーフォーマットのカラー値を別のカラーフォーマットのカラー値に変換する
3220 extern int GetColor5( COLORDATA *ColorData, int Color, int *Red, int *Green, int *Blue, int *Alpha = NULL ) ; // 指定のカラーフォーマットのカラー値を３原色の値に変換する
3221 extern int CreatePaletteColorData( COLORDATA *ColorDataBuf ) ; // パレットカラーのカラーフォーマットを構築する
3222 extern int CreateXRGB8ColorData( COLORDATA *ColorDataBuf ) ; // ＸＲＧＢ８カラーのカラーフォーマットを構築する
3223 extern int CreateARGB8ColorData( COLORDATA *ColorDataBuf ) ; // ＡＲＧＢ８カラーのカラーフォーマットを構築する
3224 extern int CreateARGB4ColorData( COLORDATA *ColorDataBuf ) ; // ＡＲＧＢ４カラーのカラーフォーマットを構築する
3225 extern int CreateFullColorData( COLORDATA *ColorDataBuf ) ; // ２４ビットカラーのカラーフォーマットを構築する
3226 extern int CreateGrayColorData( COLORDATA *ColorDataBuf ) ; // グレースケールのカラーフォーマットを構築する
3227 extern int CreatePal8ColorData( COLORDATA *ColorDataBuf ) ; // パレット２５６色のカラーフォーマットを構築する
3228 extern int CreateColorData( COLORDATA *ColorDataBuf, int ColorBitDepth,
3229 DWORD RedMask, DWORD GreenMask, DWORD BlueMask, DWORD AlphaMask,
3230 int ChannelNum = 0, int ChannelBitDepth = 0, int FloatTypeFlag = FALSE ) ; // カラーフォーマットを作成する
3231 extern void SetColorDataNoneMask( COLORDATA *ColorData ) ; // NoneMask 以外の要素を埋めた COLORDATA 構造体の情報を元に NoneMask をセットする
3232 extern int CmpColorData( COLORDATA *ColorData1, COLORDATA *ColorData2 ) ; // 二つのカラーフォーマットが等しいかどうか調べる( 戻り値　TRUE:等しい FALSE:等しくない )
3233
3234 #endif // DX_NOTUSE_DRAWFUNCTION
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248 // DxSoftImage.cpp関数プロトタイプ宣言
3249 #ifndef DX_NON_SOFTIMAGE
3250 extern int InitSoftImage( void ) ; // ソフトウエアイメージハンドルを全て削除する
3251 extern int LoadSoftImage( const TCHAR *FileName ) ; // 画像ファイルを読み込みソフトウエアイメージハンドルを作成する( -1:エラー -1以外:イメージハンドル )
3252 extern int LoadSoftImageToMem( void *FileImage, int FileImageSize ) ; // メモリ上に展開された画像ファイルイメージからソフトウエアイメージハンドルを作成する( -1:エラー -1以外:イメージハンドル )
3253 extern int MakeSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( -1:エラー -1以外:イメージハンドル )
3254 extern int MakeARGB8ColorSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( RGBA8 カラー )
3255 extern int MakeXRGB8ColorSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( XRGB8 カラー )
3256 extern int MakeARGB4ColorSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( ARGB4 カラー )
3257 extern int MakeRGB8ColorSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( RGB8 カラー )
3258 extern int MakePAL8ColorSoftImage( int SizeX, int SizeY ) ; // ソフトウエアイメージハンドルの作成( パレット２５６色 カラー )
3259
3260 extern int DeleteSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルの削除する
3261
3262 extern int GetSoftImageSize( int SIHandle, int *Width, int *Height ) ; // ソフトウエアイメージハンドルのサイズを取得する
3263 extern int CheckPaletteSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルがパレット画像かどうかを取得する( TRUE:パレット画像 FALSE:パレット画像じゃない )
3264 extern int CheckAlphaSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルのフォーマットにα要素があるかどうかを取得する( TRUE:ある FALSE:ない )
3265 extern int CheckPixelAlphaSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルに含まれるピクセルのα値をチェックする( 戻り値 -1:エラー 0:画像にα成分が無い 1:画像にα成分があり、すべて最大(255)値 2:画像にα成分があり、存在するα値は最小(0)と最大(255)もしくは最小(0)のみ　3:画像にα成分があり、最小と最大以外の中間の値がある )
3266
3267 extern int GetDrawScreenSoftImage( int x1, int y1, int x2, int y2, int SIHandle ) ; // 描画対象の画面から指定領域をソフトウエアイメージハンドルに転送する
3268 #ifdef __WINDOWS__
3269 extern int UpdateLayerdWindowForSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルを使用して UpdateLayerdWindow を行う( イメージはウインドウのクライアント領域と同じサイズである必要があります )
3270 extern int UpdateLayerdWindowForPremultipliedAlphaSoftImage( int SIHandle ) ; // 乗算済みアルファのソフトウエアイメージハンドルを使用して UpdateLayerdWindow を行う( イメージはウインドウのクライアント領域と同じサイズである必要があります )
3271 #endif // __WINDOWS__
3272 extern int FillSoftImage( int SIHandle, int r, int g, int b, int a ) ; // ソフトウエアイメージハンドルを指定色で塗りつぶす(各色要素は０〜２５５)
3273 extern int ClearRectSoftImage( int SIHandle, int x, int y, int w, int h ) ; // ソフトウエアイメージハンドルの指定の領域を０クリアする
3274 extern int GetPaletteSoftImage( int SIHandle, int PaletteNo, int *r, int *g, int *b, int *a ) ; // ソフトウエアイメージハンドルのパレットを取得する(各色要素は０〜２５５)
3275 extern int SetPaletteSoftImage( int SIHandle, int PaletteNo, int r, int g, int b, int a ) ; // ソフトウエアイメージハンドルのパレットを設定する(各色要素は０〜２５５)
3276 extern int DrawPixelPalCodeSoftImage( int SIHandle, int x, int y, int palNo ) ; // ソフトウエアイメージハンドルの指定座標にドットを描画する(パレット画像用、有効値は０〜２５５)
3277 extern int GetPixelPalCodeSoftImage( int SIHandle, int x, int y ) ; // ソフトウエアイメージハンドルの指定座標の色コードを取得する(パレット画像用、戻り値は０〜２５５)
3278 extern void *GetImageAddressSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルの画像が格納されているメモリ領域の先頭アドレスを取得する
3279 extern int DrawPixelSoftImage( int SIHandle, int x, int y, int r, int g, int b, int a ) ; // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は０〜２５５)
3280 extern void DrawPixelSoftImage_Unsafe_XRGB8( int SIHandle, int x, int y, int r, int g, int b ) ; // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は０〜２５５)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
3281 extern void DrawPixelSoftImage_Unsafe_ARGB8( int SIHandle, int x, int y, int r, int g, int b, int a ) ; // ソフトウエアイメージハンドルの指定座標にドットを描画する(各色要素は０〜２５５)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
3282 extern int GetPixelSoftImage( int SIHandle, int x, int y, int *r, int *g, int *b, int *a ) ; // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は０〜２５５)
3283 extern void GetPixelSoftImage_Unsafe_XRGB8( int SIHandle, int x, int y, int *r, int *g, int *b ) ; // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は０〜２５５)、エラーチェックをしない代わりに高速ですが、範囲外の座標や XRGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
3284 extern void GetPixelSoftImage_Unsafe_ARGB8( int SIHandle, int x, int y, int *r, int *g, int *b, int *a ) ; // ソフトウエアイメージハンドルの指定座標の色を取得する(各色要素は０〜２５５)、エラーチェックをしない代わりに高速ですが、範囲外の座標や ARGB8 以外のフォーマットのソフトハンドルを渡すと不正なメモリアクセスで強制終了します
3285 extern int DrawLineSoftImage( int SIHandle, int x1, int y1, int x2, int y2, int r, int g, int b, int a ) ; // ソフトウエアイメージハンドルの指定座標に線を描画する(各色要素は０〜２５５)
3286 extern int BltSoftImage( int SrcX, int SrcY, int SrcSizeX, int SrcSizeY, int SrcSIHandle, int DestX, int DestY, int DestSIHandle ) ; // ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに転送する
3287 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 ) ; // ソフトウエアイメージハンドルを別のソフトウエアイメージハンドルに透過色処理付きで転送する
3288 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 形式以外の場合はエラーになります )
3289 extern int ReverseSoftImageH( int SIHandle ) ; // ソフトウエアイメージハンドルを左右反転する
3290 extern int ReverseSoftImageV( int SIHandle ) ; // ソフトウエアイメージハンドルを上下反転する
3291 extern int ReverseSoftImage( int SIHandle ) ; // ソフトウエアイメージハンドルを上下左右反転する
3292
3293 #ifndef DX_NON_MFont
3294 extern int BltStringSoftImage( int x, int y, const TCHAR *StrData, int DestSIHandle, int DestEdgeSIHandle = -1 , int VerticalFlag = FALSE ) ; // ソフトウエアイメージハンドルに文字列を描画する( デフォルトフォントハンドルを使用する )
3295 extern int BltStringSoftImageToHandle( int x, int y, const TCHAR *StrData, int DestSIHandle, int DestEdgeSIHandle /* 縁が必要ない場合は -1 */ , int FontHandle, int VerticalFlag = FALSE ) ; // ソフトウエアイメージハンドルに文字列を描画する( フォントハンドル使用版 )
3296 #endif // DX_NON_MFont
3297
3298 extern int DrawSoftImage( int x, int y, int SIHandle ) ; // ソフトウエアイメージハンドルを画面に描画する
3299
3300 #ifndef DX_NON_SAVEFUNCTION
3301
3302 extern int SaveSoftImageToBmp( const TCHAR *FilePath, int SIHandle ) ; // ソフトウエアイメージハンドルをＢＭＰ画像ファイルとして保存する
3303 #ifndef DX_NON_PNGREAD
3304 extern int SaveSoftImageToPng( const TCHAR *FilePath, int SIHandle, int CompressionLevel ) ; // ソフトウエアイメージハンドルをＰＮＧ画像ファイルとして保存する CompressionLevel = 圧縮率、値が大きいほど高圧縮率高負荷、０は無圧縮,0〜9
3305 #endif // DX_NON_PNGREAD
3306 #ifndef DX_NON_JPEGREAD
3307 extern int SaveSoftImageToJpeg( const TCHAR *FilePath, int SIHandle, int Quality, int Sample2x1 ) ; // ソフトウエアイメージハンドルをＪＰＥＧ画像ファイルとして保存する Quality = 画質、値が大きいほど低圧縮高画質,0〜100
3308 #endif // DX_NON_JPEGREAD
3309
3310 #endif // DX_NON_SAVEFUNCTION
3311
3312 #endif // DX_NON_SOFTIMAGE
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331 #ifndef DX_NON_MSound
3332
3333 // DxSound.cpp関数プロトタイプ宣言
3334
3335 // サウンドデータ管理系関数
3336 extern int InitSoundMem( int LogOutFlag = FALSE ) ; // 全てのサウンドハンドルを削除する
3337
3338 extern int AddSoundData( int Handle = -1 ) ; // サウンドハンドルを作成する
3339 extern int AddStreaMSoundMem( STREAMDATA *Stream, int LoopNum, int SoundHandle, int StreamDataType, int *CanStreamCloseFlag, int UnionHandle = -1 ) ; // ストリーム再生タイプのサウンドハンドルにストリームデータを再生対象に追加する
3340 extern int AddStreaMSoundMemToMem( void *FileImage, int FileImageSize, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1 ) ; // ストリーム再生タイプのサウンドハンドルにメモリ上に展開したサウンドファイルイメージを再生対象に追加する
3341 extern int AddStreaMSoundMemToFile( const TCHAR *WaveFile, int LoopNum, int SoundHandle, int StreamDataType, int UnionHandle = -1 ) ; // ストリーム再生タイプのサウンドハンドルにサウンドファイルを再生対象に追加する
3342 extern int SetupStreaMSoundMem( int SoundHandle ) ; // ストリーム再生タイプのサウンドハンドルの再生準備をする
3343 extern int PlayStreaMSoundMem( int SoundHandle, int PlayType = DX_PLAYTYPE_LOOP , int TopPositionFlag = TRUE ) ; // ストリーム再生タイプのサウンドハンドルの再生を開始する
3344 extern int CheckStreaMSoundMem( int SoundHandle ) ; // ストリーム再生タイプのサウンドハンドルの再生状態を取得する
3345 extern int StopStreaMSoundMem( int SoundHandle ) ; // ストリーム再生タイプのサウンドハンドルの再生を停止する
3346 extern int SetStreaMSoundCurrentPosition( int Byte, int SoundHandle ) ; // サウンドハンドルの再生位置をバイト単位で変更する(再生が止まっている時のみ有効)
3347 extern int GetStreaMSoundCurrentPosition( int SoundHandle ) ; // サウンドハンドルの再生位置をバイト単位で取得する
3348 extern int SetStreaMSoundCurrentTime( int Time, int SoundHandle ) ; // サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
3349 extern int GetStreaMSoundCurrentTime( int SoundHandle ) ; // サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
3350 extern int ProcessStreaMSoundMem( int SoundHandle ) ; // ストリーム再生タイプのサウンドハンドルの周期的な処理を行う関数( 内部で自動的に呼ばれます )
3351 extern int ProcessStreaMSoundMemAll( void ) ; // 有効なストリーム再生タイプのサウンドハンドルに対して ProcessStreaMSoundMem を実行する( 内部で自動的に呼ばれます )
3352
3353
3354 extern int LoadSoundMem2( const TCHAR *FileName1, const TCHAR *FileName2 ) ; // 前奏部とループ部に分かれたサウンドファイルを読み込みサウンドハンドルを作成する
3355 extern int LoadBGM( const TCHAR *FileName ) ; // 主にＢＧＭを読み込みサウンドハンドルを作成するのに適した関数
3356
3357 extern int LoadSoundMemBase( const TCHAR *FileName, int BufferNum, int UnionHandle = -1 ) ; // サウンドファイルからサウンドハンドルを作成する
3358 extern int LoadSoundMem( const TCHAR *FileName, int BufferNum = 3 , int UnionHandle = -1 ) ; // LoadSoundMemBase の別名関数
3359 extern int LoadSoundMemToBufNumSitei( const TCHAR *FileName, int BufferNum ) ; // LoadSoundMem を使用して下さい
3360 extern int LoadSoundMemByResource( const TCHAR *ResourceName, const TCHAR *ResourceType, int BufferNum = 1 ) ; // サウンドリソースからサウンドハンドルを作成する
3361 extern int DuplicatMSoundMem( int SrcSoundHandle, int BufferNum = 3 ) ; // 同じサウンドデータを使用するサウンドハンドルを作成する( DX_MSoundDATATYPE_MEMNOPRESS タイプのサウンドハンドルのみ可能 )
3362
3363 extern int LoadSoundMemByMemImageBase( void *FileImage, int FileImageSize, int BufferNum, int UnionHandle = -1 ) ; // メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
3364 extern int LoadSoundMemByMemImage( void *FileImage, int FileImageSize, int UnionHandle = -1 ) ; // メモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する( バッファ数指定無し )
3365 extern int LoadSoundMemByMemImage2( void *WaveImage, int WaveImageSize, WAVEFORMATEX *WaveFormat, int WaveHeaderSize ) ; // メモリ上に展開されたＰＣＭデータからサウンドハンドルを作成する
3366 extern int LoadSoundMemByMemImageToBufNumSitei( void *FileImage, int FileImageSize, int BufferNum ) ; // LoadSoundMemByMemImageBase を使用して下さい
3367 extern int LoadSoundMem2ByMemImage( void *FileImage1, int FileImageSize1, void *FileImage2, int FileImageSize2 ) ; // 前奏部とループ部に分かれた二つのメモリ上に展開されたサウンドファイルイメージからサウンドハンドルを作成する
3368 extern int LoadSoundMemFromSoftSound( int SoftSoundHandle, int BufferNum = 3 ) ; // ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する
3369
3370 extern int DeletMSoundMem( int SoundHandle, int LogOutFlag = FALSE ) ; // サウンドハンドルを削除する
3371
3372 extern int PlaySoundMem( int SoundHandle, int PlayType, int TopPositionFlag = TRUE ) ; // サウンドハンドルを再生する
3373 extern int StopSoundMem( int SoundHandle ) ; // サウンドハンドルの再生を停止する
3374 extern int CheckSoundMem( int SoundHandle ) ; // サウンドハンドルが再生中かどうかを取得する
3375 extern int SetPanSoundMem( int PanPal, int SoundHandle ) ; // サウンドハンドルのパンを設定する
3376 extern int GetPanSoundMem( int SoundHandle ) ; // サウンドハンドルのパンを取得する
3377 extern int SetVolumMSoundMem( int VolumePal, int SoundHandle ) ; // サウンドハンドルのボリュームを設定する( 100分の1デシベル単位 )
3378 extern int ChangeVolumMSoundMem( int VolumePal, int SoundHandle ) ; // サウンドハンドルのボリュームを設定する( パーセント指定 )
3379 extern int GetVolumMSoundMem( int SoundHandle ) ; // サウンドハンドルのボリュームを取得する
3380 extern int SetFrequencySoundMem( int FrequencyPal, int SoundHandle ) ; // サウンドハンドルの再生周波数を設定する
3381 extern int GetFrequencySoundMem( int SoundHandle ) ; // サウンドハンドルの再生周波数を取得する
3382 extern int ResetFrequencySoundMem( int SoundHandle ) ; // サウンドハンドルの再生周波数を読み込み直後の状態に戻す
3383
3384 extern int SetNextPlayPanSoundMem( int PanPal, int SoundHandle ) ; // サウンドハンドルの次の再生にのみ使用するパンを設定する
3385 extern int SetNextPlayVolumMSoundMem( int VolumePal, int SoundHandle ) ; // サウンドハンドルの次の再生にのみ使用するボリュームを設定する( 100分の1デシベル単位 )
3386 extern int ChangeNextPlayVolumMSoundMem( int VolumePal, int SoundHandle ) ; // サウンドハンドルの次の再生にのみ使用するボリュームを設定する( パーセント指定 )
3387 extern int SetNextPlayFrequencySoundMem( int FrequencyPal, int SoundHandle ) ; // サウンドハンドルの次の再生にのみ使用する再生周波数を設定する
3388
3389 extern int SetCurrentPositionSoundMem( int SamplePosition, int SoundHandle ) ; // サウンドハンドルの再生位置をサンプル単位で設定する(再生が止まっている時のみ有効)
3390 extern int GetCurrentPositionSoundMem( int SoundHandle ) ; // サウンドハンドルの再生位置をサンプル単位で取得する
3391 extern int SetSoundCurrentPosition( int Byte, int SoundHandle ) ; // サウンドハンドルの再生位置をバイト単位で設定する(再生が止まっている時のみ有効)
3392 extern int GetSoundCurrentPosition( int SoundHandle ) ; // サウンドハンドルの再生位置をバイト単位で取得する
3393 extern int SetSoundCurrentTime( int Time, int SoundHandle ) ; // サウンドハンドルの再生位置をミリ秒単位で設定する(圧縮形式の場合は正しく設定されない場合がある)
3394 extern int GetSoundCurrentTime( int SoundHandle ) ; // サウンドハンドルの再生位置をミリ秒単位で取得する(圧縮形式の場合は正しい値が返ってこない場合がある)
3395 extern int GetSoundTotalSample( int SoundHandle ) ; // サウンドハンドルの音の総時間をサンプル単位で取得する
3396 extern int GetSoundTotalTime( int SoundHandle ) ; // サウンドハンドルの音の総時間をミリ秒単位で取得する
3397
3398 extern int SetLoopPosSoundMem( int LoopTime, int SoundHandle ) ; // SetLoopTimePosSoundMem の別名関数
3399 extern int SetLoopTimePosSoundMem( int LoopTime, int SoundHandle ) ; // サウンドハンドルにループ位置を設定する(ミリ秒単位)
3400 extern int SetLoopSamplePosSoundMem( int LoopSamplePosition, int SoundHandle ) ; // サウンドハンドルにループ位置を設定する(サンプル単位)
3401
3402 extern int SetLoopStartTimePosSoundMem( int LoopStartTime, int SoundHandle ) ; // サウンドハンドルにループ開始位置を設定する(ミリ秒単位)
3403 extern int SetLoopStartSamplePosSoundMem( int LoopStartSamplePosition, int SoundHandle ) ; // サウンドハンドルにループ開始位置を設定する(サンプル単位)
3404
3405 // 設定関係関数
3406 extern int SetCreatMSoundDataType( int SoundDataType ) ; // 作成するサウンドハンドルの再生タイプを設定する( DX_MSoundDATATYPE_MEMNOPRESS 等 )
3407 extern int GetCreatMSoundDataType( void ) ; // 作成するサウンドハンドルの再生タイプを取得する( DX_MSoundDATATYPE_MEMNOPRESS 等 )
3408 extern int SetDisableReadSoundFunctionMask( int Mask ) ; // 使用しないサウンドデータ読み込み処理のマスクを設定する( DX_READMSoundFUNCTION_PCM 等 )
3409 extern int GetDisableReadSoundFunctionMask( void ) ; // 使用しないサウンドデータ読み込み処理のマスクを取得する( DX_READMSoundFUNCTION_PCM 等 )
3410 extern int SetEnablMSoundCaptureFlag( int Flag ) ; // サウンドキャプチャを前提とした動作をするかどうかを設定する
3411 extern int SetUseSoftwareMixingSoundFlag( int Flag ) ; // サウンドの処理をソフトウエアで行うかどうかを設定する( TRUE:ソフトウエア FALSE:ハードウエア( デフォルト ) )
3412
3413 // 情報取得系関数
3414 extern void* GetDSoundObj( void ) ; /* 戻り値を IDirectSound * にキャストして下さい */ // ＤＸライブラリが使用している DirectSound オブジェクトを取得する
3415
3416 #ifndef DX_NON_BEEP
3417 // BEEP音再生用命令
3418 extern int SetBeepFrequency( int Freq ) ; // ビープ音周波数設定関数
3419 extern int PlayBeep( void ) ; // ビープ音を再生する
3420 extern int StopBeep( void ) ; // ビープ音を止める
3421 #endif // DX_NON_BEEP
3422
3423 // ラッパー関数
3424 extern int PlaySoundFile( const TCHAR *FileName, int PlayType ) ; // サウンドファイルを再生する
3425 extern int PlaySound( const TCHAR *FileName, int PlayType ) ; // PlaySoundFile の旧名称
3426 extern int CheckSoundFile( void ) ; // サウンドファイルの再生中かどうかを取得する
3427 extern int CheckSound( void ) ; // CheckSoundFile の旧名称
3428 extern int StopSoundFile( void ) ; // サウンドファイルの再生を停止する
3429 extern int StopSound( void ) ; // StopSoundFile の旧名称
3430 extern int SetVolumMSoundFile( int VolumePal ) ; // サウンドファイルの音量を設定する
3431 extern int SetVolumMSound( int VolumePal ) ; // SetVolumMSound の旧名称
3432
3433 // ソフトウエア制御サウンド系関数
3434 extern int InitSoftSound( void ) ; // ソフトウエアで扱う波形データハンドルをすべて削除する
3435 extern int LoadSoftSound( const TCHAR *FileName ) ; // ソフトウエアで扱う波形データハンドルをサウンドファイルから作成する
3436 extern int LoadSoftSoundFromMemImage( const void *FileImage, int FileImageSize ) ; // ソフトウエアで扱う波形データハンドルをメモリ上に展開されたサウンドファイルイメージから作成する
3437 extern int MakeSoftSound( int UseFormat_SoftSoundHandle, int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする )
3438 extern int MakeSoftSound2Ch16Bit44KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44KHz )
3439 extern int MakeSoftSound2Ch16Bit22KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz )
3440 extern int MakeSoftSound2Ch8Bit44KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:44KHz )
3441 extern int MakeSoftSound2Ch8Bit22KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:22KHz )
3442 extern int MakeSoftSound1Ch16Bit44KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44KHz )
3443 extern int MakeSoftSound1Ch16Bit22KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz )
3444 extern int MakeSoftSound1Ch8Bit44KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:44KHz )
3445 extern int MakeSoftSound1Ch8Bit22KHz( int SampleNum ) ; // ソフトウエアで扱う空の波形データハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:22KHz )
3446 extern int MakeSoftSoundCustom( int ChannelNum, int BitsPerSample, int SamplesPerSec, int SampleNum ); // ソフトウエアで扱う空の波形データハンドルを作成する
3447 extern int DeleteSoftSound( int SoftSoundHandle ) ; // ソフトウエアで扱う波形データハンドルを削除する
3448 #ifndef DX_NON_SAVEFUNCTION
3449 extern int SaveSoftSound( int SoftSoundHandle, const TCHAR *FileName ) ; // ソフトウエアで扱う波形データハンドルをWAVEファイル(PCM)形式で保存する
3450 #endif // DX_NON_SAVEFUNCTION
3451 extern int GetSoftSoundSampleNum( int SoftSoundHandle ) ; // ソフトウエアで扱う波形データハンドルのサンプル数を取得する
3452 extern int GetSoftSoundFormat( int SoftSoundHandle, int *Channels, int *BitsPerSample, int *SamplesPerSec ) ; // ソフトウエアで扱う波形データハンドルのフォーマットを取得する
3453 extern int ReadSoftSoundData( int SoftSoundHandle, int SamplePosition, int *Channel1, int *Channel2 ) ; // ソフトウエアで扱う波形データハンドルのサンプルを読み取る
3454 extern int WriteSoftSoundData( int SoftSoundHandle, int SamplePosition, int Channel1, int Channel2 ) ; // ソフトウエアで扱う波形データハンドルのサンプルを書き込む
3455 extern void *GetSoftSoundDataImage( int SoftSoundHandle ) ; // ソフトウエアで扱う波形データハンドルの波形イメージが格納されているメモリアドレスを取得する
3456
3457 extern int InitSoftSoundPlayer( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルをすべて解放する
3458 extern int MakeSoftSoundPlayer( int UseFormat_SoftSoundHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( フォーマットは引数のソフトウエアサウンドハンドルと同じものにする )
3459 extern int MakeSoftSoundPlayer2Ch16Bit44KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:44KHz )
3460 extern int MakeSoftSoundPlayer2Ch16Bit22KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数:16bit サンプリング周波数:22KHz )
3461 extern int MakeSoftSoundPlayer2Ch8Bit44KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:44KHz )
3462 extern int MakeSoftSoundPlayer2Ch8Bit22KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:2 量子化ビット数: 8bit サンプリング周波数:22KHz )
3463 extern int MakeSoftSoundPlayer1Ch16Bit44KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:44KHz )
3464 extern int MakeSoftSoundPlayer1Ch16Bit22KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数:16bit サンプリング周波数:22KHz )
3465 extern int MakeSoftSoundPlayer1Ch8Bit44KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:44KHz )
3466 extern int MakeSoftSoundPlayer1Ch8Bit22KHz( void ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する( チャンネル数:1 量子化ビット数: 8bit サンプリング周波数:22KHz )
3467 extern int MakeSoftSoundPlayerCustom( int ChannelNum, int BitsPerSample, int SamplesPerSec ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを作成する
3468 extern int DeleteSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルを削除する
3469 extern int AddDataSoftSoundPlayer( int SSoundPlayerHandle, int SoftSoundHandle, int AddSamplePosition, int AddSampleNum ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを追加する( フォーマットが同じではない場合はエラー )
3470 extern int AddDirectDataSoftSoundPlayer( int SSoundPlayerHandle, void *SoundData, int AddSampleNum ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルにプレイヤーが対応したフォーマットの生波形データを追加する
3471 extern int AddOneDataSoftSoundPlayer( int SSoundPlayerHandle, int Channel1, int Channel2 ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルに波形データを一つ追加する
3472 extern int GetSoftSoundPlayerFormat( int SSoundPlayerHandle, int *Channels, int *BitsPerSample, int *SamplesPerSec ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルが扱うデータフォーマットを取得する
3473 extern int StartSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を開始する
3474 extern int CheckStartSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理が開始されているか取得する( TRUE:開始している FALSE:停止している )
3475 extern int StopSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルの再生処理を停止する
3476 extern int ResetSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルの状態を初期状態に戻す( 追加された波形データは削除され、再生状態だった場合は停止する )
3477 extern int GetStockDataLengthSoftSoundPlayer( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する
3478 extern int CheckSoftSoundPlayerNoneData( int SSoundPlayerHandle ) ; // ソフトウエアで扱う波形データのプレイヤーハンドルに再生用サウンドバッファに転送していない波形データが無く、再生用サウンドバッファにも無音データ以外無いかどうかを取得する( TRUE:無音データ以外無い FALSE:有効データがある )
3479
3480
3481
3482
3483 // ＭＩＤＩ制御関数
3484 extern int DeletMMusicMem( int MusicHandle ) ; // ＭＩＤＩハンドルを削除する
3485 extern int LoadMusicMem( const TCHAR *FileName ) ; // ＭＩＤＩファイルを読み込みＭＩＤＩハンドルを作成する
3486 extern int LoadMusicMemByMemImage( void *FileImage, int FileImageSize ) ; // メモリ上に展開されたＭＩＤＩファイルイメージからＭＩＤＩハンドルを作成する
3487 extern int LoadMusicMemByResource( const TCHAR *ResourceName, const TCHAR *ResourceType ) ; // リソース上のＭＩＤＩファイルからＭＩＤＩハンドルを作成する
3488 extern int PlayMusicMem( int MusicHandle, int PlayType ) ; // ＭＩＤＩハンドルの演奏を開始する
3489 extern int StopMusicMem( int MusicHandle ) ; // ＭＩＤＩハンドルの演奏を停止する
3490 extern int CheckMusicMem( int MusicHandle ) ; // ＭＩＤＩハンドルが演奏中かどうかを取得する( TRUE:演奏中 FALSE:停止中 )
3491 extern int SetVolumMMusicMem( int Volume, int MusicHandle ) ; // ＭＩＤＩハンドルの再生音量をセットする
3492 extern int GetMusicMemPosition( int MusicHandle ) ; // ＭＩＤＩハンドルの現在の再生位置を取得する
3493 extern int InitMusicMem( void ) ; // ＭＩＤＩハンドルをすべて削除する
3494 extern int ProcessMusicMem( void ) ; // ＭＩＤＩハンドルの周期的処理( 内部で呼ばれます )
3495
3496 extern int PlayMusic( const TCHAR *FileName, int PlayType ) ; // ＭＩＤＩファイルを演奏する
3497 extern int PlayMusicByMemImage( void *FileImage, int FileImageSize, int PlayType ) ; // メモリ上に展開されているＭＩＤＩファイルを演奏する
3498 extern int PlayMusicByResource( const TCHAR *ResourceName, const TCHAR *ResourceType, int PlayType ) ; // リソースからＭＩＤＩファイルを読み込んで演奏する
3499 extern int SetVolumMMusic( int Volume ) ; // ＭＩＤＩの再生音量をセットする
3500 extern int StopMusic( void ) ; // ＭＩＤＩファイルの演奏停止
3501 extern int CheckMusic( void ) ; // ＭＩＤＩファイルが演奏中か否か情報を取得する
3502 extern int GetMusicPosition( void ) ; // ＭＩＤＩの現在の再生位置を取得する
3503
3504 extern int SelectMidiMode( int Mode ) ; // ＭＩＤＩの再生形式を設定する
3505
3506 #endif // DX_NON_MSound
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517 // DxArchive_.cpp 関数 プロトタイプ宣言
3518 extern int SetUseDXArchiveFlag( int Flag ) ; // ＤＸアーカイブファイルの読み込み機能を使うかどうかを設定する( FALSE:使用しない TRUE:使用する )
3519 extern int SetDXArchivePriority( int Priority = 0 ) ; // 同名のＤＸアーカイブファイルとフォルダが存在した場合、どちらを優先させるかを設定する( 1:フォルダを優先　 0:ＤＸアーカイブファイルを優先( デフォルト ) )
3520 extern int SetDXArchiveExtension( const TCHAR *Extension = NULL ) ; // 検索するＤＸアーカイブファイルの拡張子を設定する( Extension:拡張子名文字列 )
3521 extern int SetDXArchiveKeyString( const TCHAR *KeyString = NULL ) ; // ＤＸアーカイブファイルの鍵文字列を設定する( KeyString:鍵文字列 )
3522
3523 extern int DXArchivePreLoad( const TCHAR *FilePath , int ASync = FALSE ) ; // 指定のＤＸＡファイルを丸ごとメモリに読み込む( 戻り値 -1:エラー 0:成功 )
3524 extern int DXArchiveCheckIdle( const TCHAR *FilePath ) ; // 指定のＤＸＡファイルの事前読み込みが完了したかどうかを取得する( 戻り値 TRUE:完了した FALSE:まだ )
3525 extern int DXArchiveRelease( const TCHAR *FilePath ) ; // 指定のＤＸＡファイルをメモリから解放する
3526 extern int DXArchiveCheckFile( const TCHAR *FilePath, const TCHAR *TargetFilePath ) ; // ＤＸＡファイルの中に指定のファイルが存在するかどうかを調べる、TargetFilePath はＤＸＡファイルをカレントフォルダとした場合のパス( 戻り値: -1=エラー 0:無い 1:ある )
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548 // DxModel.cpp 関数 プロトタイプ宣言
3549
3550 #ifndef DX_NON_MODEL
3551
3552 // モデルの読み込み・複製関係
3553 extern int MV1LoadModel( const TCHAR *FileName ) ; // モデルの読み込み( -1:エラー 0以上:モデルハンドル )
3554 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 ) ; // メモリ上のモデルファイルイメージと独自の読み込みルーチンを使用してモデルを読み込む
3555 extern int MV1DuplicateModel( int SrcMHandle ) ; // 指定のモデルと同じモデル基本データを使用してモデルを作成する( -1:エラー 0以上:モデルハンドル )
3556 extern int MV1CreateCloneModel( int SrcMHandle ) ; // 指定のモデルをモデル基本データも含め複製する( MV1DuplicateModel はモデル基本データは共有しますが、こちらは複製元のモデルとは一切共有データの無いモデルハンドルを作成します )( -1:エラー 0以上:モデルハンドル )
3557
3558 extern int MV1DeleteModel( int MHandle ) ; // モデルを削除する
3559 extern int MV1InitModel( void ) ; // すべてのモデルを削除する
3560
3561 extern int MV1SetLoadModelReMakeNormal( int Flag ) ; // モデルを読み込む際に法線の再計算を行うかどうかを設定する( TRUE:行う FALSE:行わない )
3562 extern int MV1SetLoadModelReMakeNormalSmoothingAngle( float SmoothingAngle = 1.562069f ) ; // モデルを読み込む際に行う法泉の再計算で使用するスムージング角度を設定する( 単位はラジアン )
3563 extern int MV1SetLoadModelPositionOptimize( int Flag ) ; // モデルを読み込む際に座標データの最適化を行うかどうかを設定する( TRUE:行う FALSE:行わない )
3564 extern int MV1SetLoadModelUsePhysicsMode( int PhysicsMode /* DX_LOADMODEL_PHYSICS_LOADCALC 等 */ ) ; // 読み込むモデルの物理演算モードを設定する
3565 extern int MV1SetLoadModelPhysicsWorldGravity( float Gravity ) ; // 読み込むモデルの物理演算に適用する重力パラメータを設定する
3566 extern int MV1SetLoadCalcPhysicsWorldGravity( int GravityNo, VECTOR Gravity ) ; // 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される重力の設定をする
3567 extern int MV1SetLoadModelAnimFilePath( const TCHAR *FileName ) ; // 読み込むモデルに適用するアニメーションファイルのパスを設定する、NULLを渡すと設定リセット( 現在は PMD,PMX のみに効果あり )
3568
3569 // モデル保存関係
3570 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:使われていないアニメーションがあった )
3571 #ifndef DX_NON_SAVEFUNCTION
3572 extern int MV1SaveModelToXFile( int MHandle, const TCHAR *FileName, int SaveType = MV1_SAVETYPE_NORMAL , int AnimMHandle = -1 , int AnimNameCheck = TRUE ) ; // 指定のパスにモデルをＸファイル形式で保存する( 戻り値 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった )
3573 #endif // DX_NON_SAVEFUNCTION
3574
3575 // モデル描画関係
3576 extern int MV1DrawModel( int MHandle ) ; // モデルを描画する
3577 extern int MV1DrawFrame( int MHandle, int FrameIndex ) ; // モデルの指定のフレームを描画する
3578 extern int MV1DrawMesh( int MHandle, int MeshIndex ) ; // モデルの指定のメッシュを描画する
3579 extern int MV1DrawTriangleList( int MHandle, int TriangleListIndex ) ; // モデルの指定のトライアングルリストを描画する
3580 extern int MV1DrawModelDebug( int MHandle, int Color, int IsNormalLine, float NormalLineLength, int IsPolyLine, int IsCollisionBox ) ; // モデルのデバッグ描画
3581
3582 // 描画設定関係
3583 extern int MV1SetUseOrigShader( int UseFlag ) ; // モデルの描画に SetUseVertexShader, SetUsePixelShader で指定したシェーダーを使用するかどうかを設定する( TRUE:使用する FALSE:使用しない( デフォルト ) )
3584
3585 // モデル基本制御関係
3586 extern MATRIX MV1GetLocalWorldMatrix( int MHandle ) ; // モデルのローカル座標からワールド座標に変換する行列を得る
3587 extern int MV1SetPosition( int MHandle, VECTOR Position ) ; // モデルの座標をセット
3588 extern VECTOR MV1GetPosition( int MHandle ) ; // モデルの座標を取得
3589 extern int MV1SetScale( int MHandle, VECTOR Scale ) ; // モデルの拡大値をセット
3590 extern VECTOR MV1GetScale( int MHandle ) ; // モデルの拡大値を取得
3591 extern int MV1SetRotationXYZ( int MHandle, VECTOR Rotate ) ; // モデルの回転値をセット( X軸回転→Y軸回転→Z軸回転方式 )
3592 extern VECTOR MV1GetRotationXYZ( int MHandle ) ; // モデルの回転値を取得( X軸回転→Y軸回転→Z軸回転方式 )
3593 extern int MV1SetRotationZYAxis( int MHandle, VECTOR ZAxisDirection, VECTOR YAxisDirection, float ZAxisTwistRotate ) ; // モデルのＺ軸とＹ軸の向きをセットする
3594 extern int MV1SetRotationMatrix( int MHandle, MATRIX Matrix ) ; // モデルの回転用行列をセットする
3595 extern MATRIX MV1GetRotationMatrix( int MHandle ) ; // モデルの回転用行列を取得する
3596 extern int MV1SetMatrix( int MHandle, MATRIX Matrix ) ; // モデルの変形用行列をセットする
3597 extern MATRIX MV1GetMatrix( int MHandle ) ; // モデルの変形用行列を取得する
3598 extern int MV1SetVisible( int MHandle, int VisibleFlag ) ; // モデルの表示、非表示状態を変更する( TRUE:表示 FALSE:非表示 )
3599 extern int MV1GetVisible( int MHandle ) ; // モデルの表示、非表示状態を取得する( TRUE:表示 FALSE:非表示 )
3600 extern int MV1SetMeshCategoryVisible( int MHandle, int MeshCategory, int VisibleFlag ) ; // モデルのメッシュの種類( DX_MV1_MESHCATEGORY_NORMAL など )毎の表示、非表示を設定する( TRUE:表示 FALSE:非表示 )
3601 extern int MV1GetMeshCategoryVisible( int MHandle, int MeshCategory ) ; // モデルのメッシュの種類( DX_MV1_MESHCATEGORY_NORMAL など )毎の表示、非表示を取得する( TRUE:表示 FALSE:非表示 )
3602 extern int MV1SetDifColorScale( int MHandle, COLOR_F Scale ) ; // モデルのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
3603 extern COLOR_F MV1GetDifColorScale( int MHandle ) ; // モデルのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
3604 extern int MV1SetSpcColorScale( int MHandle, COLOR_F Scale ) ; // モデルのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
3605 extern COLOR_F MV1GetSpcColorScale( int MHandle ) ; // モデルのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
3606 extern int MV1SetEmiColorScale( int MHandle, COLOR_F Scale ) ; // モデルのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
3607 extern COLOR_F MV1GetEmiColorScale( int MHandle ) ; // モデルのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
3608 extern int MV1SetAmbColorScale( int MHandle, COLOR_F Scale ) ; // モデルのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
3609 extern COLOR_F MV1GetAmbColorScale( int MHandle ) ; // モデルのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
3610 extern int MV1GetSemiTransState( int MHandle ) ; // モデルに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある FALSE:ない )
3611 extern int MV1SetOpacityRate( int MHandle, float Rate ) ; // モデルの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f )
3612 extern float MV1GetOpacityRate( int MHandle ) ; // モデルの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f )
3613 extern int MV1SetUseZBuffer( int MHandle, int Flag ) ; // モデルを描画する際にＺバッファを使用するかどうかを設定する
3614 extern int MV1SetWriteZBuffer( int MHandle, int Flag ) ; // モデルを描画する際にＺバッファに書き込みを行うかどうかを設定する
3615 extern int MV1SetZBufferCmpType( int MHandle, int CmpType /* DX_CMP_NEVER 等 */ ) ; // モデルの描画時のＺ値の比較モードを設定する
3616 extern int MV1SetZBias( int MHandle, int Bias ) ; // モデルの描画時の書き込むＺ値のバイアスを設定する
3617 extern int MV1SetUseVertDifColor( int MHandle, int UseFlag ) ; // モデルの含まれるメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3618 extern int MV1SetUseVertSpcColor( int MHandle, int UseFlag ) ; // モデルに含まれるメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3619 extern int MV1SetSampleFilterMode( int MHandle, int FilterMode ) ; // モデルのテクスチャのサンプルフィルターモードを変更する( FilterMode は DX_DRAWMODE_NEAREST 等 )
3620 extern int MV1SetMaxAnisotropy( int MHandle, int MaxAnisotropy ) ; // モデルの異方性フィルタリングの最大次数を設定する
3621 extern int MV1SetWireFrameDrawFlag( int MHandle, int Flag ) ; // モデルをワイヤーフレームで描画するかどうかを設定する
3622 extern int MV1RefreshVertColorFromMaterial( int MHandle ) ; // モデルの頂点カラーを現在設定されているマテリアルのカラーにする
3623 extern int MV1PhysicsCalculation( int MHandle, float MillisecondTime ) ; // モデルの物理演算を指定時間分経過したと仮定して計算する( MillisecondTime で指定する時間の単位はミリ秒 )
3624 extern int MV1PhysicsResetState( int MHandle ) ; // モデルの物理演算の状態をリセットする( 位置がワープしたとき用 )
3625
3626 // アニメーション関係
3627 extern int MV1AttachAnim( int MHandle, int AnimIndex, int AnimSrcMHandle = -1 , int NameCheck = TRUE ) ; // アニメーションをアタッチする( 戻り値 -1:エラー 0以上:アタッチインデックス )
3628 extern int MV1DetachAnim( int MHandle, int AttachIndex ) ; // アニメーションをデタッチする
3629 extern int MV1SetAttachAnimTime( int MHandle, int AttachIndex, float Time ) ; // アタッチしているアニメーションの再生時間を設定する
3630 extern float MV1GetAttachAnimTime( int MHandle, int AttachIndex ) ; // アタッチしているアニメーションの再生時間を取得する
3631 extern float MV1GetAttachAnimTotalTime( int MHandle, int AttachIndex ) ; // アタッチしているアニメーションの総時間を得る
3632 extern int MV1SetAttachAnimBlendRate( int MHandle, int AttachIndex, float Rate = 1.0f ) ; // アタッチしているアニメーションのブレンド率を設定する
3633 extern float MV1GetAttachAnimBlendRate( int MHandle, int AttachIndex ) ; // アタッチしているアニメーションのブレンド率を取得する
3634 extern int MV1SetAttachAnimBlendRateToFrame( int MHandle, int AttachIndex, int FrameIndex, float Rate, int SetChild = TRUE ) ; // アタッチしているアニメーションのブレンド率を設定する( フレーム単位 )
3635 extern float MV1GetAttachAnimBlendRateToFrame( int MHandle, int AttachIndex, int FrameIndex ) ; // アタッチしているアニメーションのブレンド率を設定する( フレーム単位 )
3636 extern int MV1GetAttachAnim( int MHandle, int AttachIndex ) ; // アタッチしているアニメーションのアニメーションインデックスを取得する
3637
3638 extern int MV1GetAnimNum( int MHandle ) ; // アニメーションの数を取得する
3639 extern const TCHAR *MV1GetAnimName( int MHandle, int AnimIndex ) ; // 指定番号のアニメーション名を取得する( NULL:エラー )
3640 extern int MV1SetAnimName( int MHandle, int AnimIndex, const TCHAR *AnimName ) ; // 指定番号のアニメーション名を変更する
3641 extern int MV1GetAnimIndex( int MHandle, const TCHAR *AnimName ) ; // 指定名のアニメーション番号を取得する( -1:エラー )
3642 extern float MV1GetAnimTotalTime( int MHandle, int AnimIndex ) ; // 指定番号のアニメーションの総時間を得る
3643 extern int MV1GetAnimTargetFrameNum( int MHandle, int AnimIndex ) ; // 指定のアニメーションがターゲットとするフレームの数を取得する
3644 extern const TCHAR *MV1GetAnimTargetFrameName( int MHandle, int AnimIndex, int AnimFrameIndex ) ; // 指定のアニメーションがターゲットとするフレームの名前を取得する
3645 extern int MV1GetAnimTargetFrame( int MHandle, int AnimIndex, int AnimFrameIndex ) ; // 指定のアニメーションがターゲットとするフレームの番号を取得する
3646 extern int MV1GetAnimTargetFrameKeySetNum( int MHandle, int AnimIndex, int AnimFrameIndex ) ; // 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットの数を取得する
3647 extern int MV1GetAnimTargetFrameKeySet( int MHandle, int AnimIndex, int AnimFrameIndex, int Index ) ; // 指定のアニメーションがターゲットとするフレーム用のアニメーションキーセットキーセットインデックスを取得する
3648
3649 extern int MV1GetAnimKeySetNum( int MHandle ) ; // モデルに含まれるアニメーションキーセットの総数を得る
3650 extern int MV1GetAnimKeySetType( int MHandle, int AnimKeySetIndex ) ; // 指定のアニメーションキーセットのタイプを取得する( MV1_ANIMKEY_TYPE_QUATERNION 等 )
3651 extern int MV1GetAnimKeySetDataType( int MHandle, int AnimKeySetIndex ) ; // 指定のアニメーションキーセットのデータタイプを取得する( MV1_ANIMKEY_DATATYPE_ROTATE 等 )
3652 extern int MV1GetAnimKeySetTimeType( int MHandle, int AnimKeySetIndex ) ; // 指定のアニメーションキーセットのキーの時間データタイプを取得する( MV1_ANIMKEY_TIME_TYPE_ONE 等 )
3653 extern int MV1GetAnimKeySetDataNum( int MHandle, int AnimKeySetIndex ) ; // 指定のアニメーションキーセットのキーの数を取得する
3654 extern float MV1GetAnimKeyDataTime( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーの時間を取得する
3655 extern FLOAT4 MV1GetAnimKeyDataToQuaternion( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する
3656 extern FLOAT4 MV1GetAnimKeyDataToQuaternionFromTime( int MHandle, int AnimKeySetIndex, float Time ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_QUATERNION では無かった場合は失敗する( 時間指定版 )
3657 extern VECTOR MV1GetAnimKeyDataToVector( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する
3658 extern VECTOR MV1GetAnimKeyDataToVectorFromTime( int MHandle, int AnimKeySetIndex, float Time ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_VECTOR では無かった場合は失敗する( 時間指定版 )
3659 extern MATRIX MV1GetAnimKeyDataToMatrix( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する
3660 extern MATRIX MV1GetAnimKeyDataToMatrixFromTime( int MHandle, int AnimKeySetIndex, float Time ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_MATRIX4X4C か MV1_ANIMKEY_TYPE_MATRIX3X3 では無かった場合は失敗する( 時間指定版 )
3661 extern float MV1GetAnimKeyDataToFlat( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する
3662 extern float MV1GetAnimKeyDataToFlatFromTime( int MHandle, int AnimKeySetIndex, float Time ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_FLAT では無かった場合は失敗する( 時間指定版 )
3663 extern float MV1GetAnimKeyDataToLinear( int MHandle, int AnimKeySetIndex, int Index ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する
3664 extern float MV1GetAnimKeyDataToLinearFromTime( int MHandle, int AnimKeySetIndex, float Time ) ; // 指定のアニメーションキーセットのキーを取得する、キータイプが MV1_ANIMKEY_TYPE_LINEAR では無かった場合は失敗する( 時間指定版 )
3665
3666 // マテリアル関係
3667 extern int MV1GetMaterialNum( int MHandle ) ; // モデルで使用しているマテリアルの数を取得する
3668 extern const TCHAR *MV1GetMaterialName( int MHandle, int MaterialIndex ) ; // 指定のマテリアルの名前を取得する
3669 extern int MV1SetMaterialType( int MHandle, int MaterialIndex, int Type ) ; // 指定のマテリアルのタイプを変更する( Type : DX_MATERIAL_TYPE_NORMAL など )
3670 extern int MV1GetMaterialType( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのタイプを取得する( 戻り値 : DX_MATERIAL_TYPE_NORMAL など )
3671 extern int MV1SetMaterialDifColor( int MHandle, int MaterialIndex, COLOR_F Color ) ; // 指定のマテリアルのディフューズカラーを設定する
3672 extern COLOR_F MV1GetMaterialDifColor( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのディフューズカラーを取得する
3673 extern int MV1SetMaterialSpcColor( int MHandle, int MaterialIndex, COLOR_F Color ) ; // 指定のマテリアルのスペキュラカラーを設定する
3674 extern COLOR_F MV1GetMaterialSpcColor( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのスペキュラカラーを取得する
3675 extern int MV1SetMaterialEmiColor( int MHandle, int MaterialIndex, COLOR_F Color ) ; // 指定のマテリアルのエミッシブカラーを設定する
3676 extern COLOR_F MV1GetMaterialEmiColor( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのエミッシブカラーを取得する
3677 extern int MV1SetMaterialAmbColor( int MHandle, int MaterialIndex, COLOR_F Color ) ; // 指定のマテリアルのアンビエントカラーを設定する
3678 extern COLOR_F MV1GetMaterialAmbColor( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのアンビエントカラーを取得する
3679 extern int MV1SetMaterialSpcPower( int MHandle, int MaterialIndex, float Power ) ; // 指定のマテリアルのスペキュラの強さを設定する
3680 extern float MV1GetMaterialSpcPower( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのスペキュラの強さを取得する
3681 extern int MV1SetMaterialDifMapTexture( int MHandle, int MaterialIndex, int TexIndex ) ; // 指定のマテリアルでディフューズマップとして使用するテクスチャを指定する
3682 extern int MV1GetMaterialDifMapTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルでディフューズマップとして使用されているテクスチャのインデックスを取得する
3683 extern int MV1SetMaterialSpcMapTexture( int MHandle, int MaterialIndex, int TexIndex ) ; // 指定のマテリアルでスペキュラマップとして使用するテクスチャを指定する
3684 extern int MV1GetMaterialSpcMapTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルでスペキュラマップとして使用されているテクスチャのインデックスを取得する
3685 extern int MV1GetMaterialNormalMapTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルで法線マップとして使用されているテクスチャのインデックスを取得する
3686 extern int MV1SetMaterialDifGradTexture( int MHandle, int MaterialIndex, int TexIndex ) ; // 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを設定する
3687 extern int MV1GetMaterialDifGradTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルでトゥーンレンダリングのディフューズグラデーションマップとして使用するテクスチャを取得する
3688 extern int MV1SetMaterialSpcGradTexture( int MHandle, int MaterialIndex, int TexIndex ) ; // 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを設定する
3689 extern int MV1GetMaterialSpcGradTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルでトゥーンレンダリングのスペキュラグラデーションマップとして使用するテクスチャを取得する
3690 extern int MV1SetMaterialSphereMapTexture( int MHandle, int MaterialIndex, int TexIndex ) ; // 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを設定する
3691 extern int MV1GetMaterialSphereMapTexture( int MHandle, int MaterialIndex ) ; // 指定のマテリアルでトゥーンレンダリングのスフィアマップとして使用するテクスチャを取得する
3692 extern int MV1SetMaterialDifGradBlendType( int MHandle, int MaterialIndex, int BlendType ) ; // 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3693 extern int MV1GetMaterialDifGradBlendType( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用するディフューズグラデーションマップとディフューズカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3694 extern int MV1SetMaterialSpcGradBlendType( int MHandle, int MaterialIndex, int BlendType ) ; // 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3695 extern int MV1GetMaterialSpcGradBlendType( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用するスペキュラグラデーションマップとスペキュラカラーの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3696 extern int MV1SetMaterialSphereMapBlendType( int MHandle, int MaterialIndex, int BlendType ) ; // 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を設定する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3697 extern int MV1GetMaterialSphereMapBlendType( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用するスフィアマップの合成方法を取得する( DX_MATERIAL_BLENDTYPE_ADDITIVE など )
3698 extern int MV1SetMaterialOutLineWidth( int MHandle, int MaterialIndex, float Width ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する
3699 extern float MV1GetMaterialOutLineWidth( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを取得する
3700 extern int MV1SetMaterialOutLineDotWidth( int MHandle, int MaterialIndex, float Width ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを設定する
3701 extern float MV1GetMaterialOutLineDotWidth( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線のドット単位の太さを取得する
3702 extern int MV1SetMaterialOutLineColor( int MHandle, int MaterialIndex, COLOR_F Color ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を設定する
3703 extern COLOR_F MV1GetMaterialOutLineColor( int MHandle, int MaterialIndex ) ; // 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の色を取得する
3704 extern int MV1SetMaterialDrawBlendMode( int MHandle, int MaterialIndex, int BlendMode ) ; // 指定のマテリアルの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 )
3705 extern int MV1GetMaterialDrawBlendMode( int MHandle, int MaterialIndex ) ; // 指定のマテリアルの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 )
3706 extern int MV1SetMaterialDrawBlendParam( int MHandle, int MaterialIndex, int BlendParam ) ; // 指定のマテリアルの描画ブレンドパラメータを設定する
3707 extern int MV1GetMaterialDrawBlendParam( int MHandle, int MaterialIndex ) ; // 指定のマテリアルの描画ブレンドパラメータを設定する
3708
3709 // テクスチャ関係
3710 extern int MV1GetTextureNum( int MHandle ) ; // テクスチャの数を取得
3711 extern const TCHAR *MV1GetTextureName( int MHandle, int TexIndex ) ; // テクスチャの名前を取得
3712 extern int MV1SetTextureColorFilePath( int MHandle, int TexIndex, const TCHAR *FilePath ) ; // カラーテクスチャのファイルパスを変更する
3713 extern const TCHAR *MV1GetTextureColorFilePath( int MHandle, int TexIndex ) ; // カラーテクスチャのファイルパスを取得
3714 extern int MV1SetTextureAlphaFilePath( int MHandle, int TexIndex, const TCHAR *FilePath ) ; // アルファテクスチャのファイルパスを変更する
3715 extern const TCHAR *MV1GetTextureAlphaFilePath( int MHandle, int TexIndex ) ; // アルファテクスチャのファイルパスを取得
3716 extern int MV1SetTextureGraphHandle( int MHandle, int TexIndex, int GrHandle, int SemiTransFlag ) ; // テクスチャで使用するグラフィックハンドルを変更する( GrHandle を -1 にすると解除 )
3717 extern int MV1GetTextureGraphHandle( int MHandle, int TexIndex ) ; // テクスチャのグラフィックハンドルを取得する
3718 extern int MV1SetTextureAddressMode( int MHandle, int TexIndex, int AddrUMode, int AddrVMode ) ; // テクスチャのアドレスモードを設定する( AddUMode の値は DX_TEXADDRESS_WRAP 等 )
3719 extern int MV1GetTextureAddressModeU( int MHandle, int TexIndex ) ; // テクスチャのＵ値のアドレスモードを取得する( 戻り値:DX_TEXADDRESS_WRAP 等 )
3720 extern int MV1GetTextureAddressModeV( int MHandle, int TexIndex ) ; // テクスチャのＶ値のアドレスモードを取得する( 戻り値:DX_TEXADDRESS_WRAP 等 )
3721 extern int MV1GetTextureWidth( int MHandle, int TexIndex ) ; // テクスチャの幅を取得する
3722 extern int MV1GetTextureHeight( int MHandle, int TexIndex ) ; // テクスチャの高さを取得する
3723 extern int MV1GetTextureSemiTransState( int MHandle, int TexIndex ) ; // テクスチャに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある FALSE:ない )
3724 extern int MV1SetTextureBumpImageFlag( int MHandle, int TexIndex, int Flag ) ; // テクスチャで使用している画像がバンプマップかどうかを設定する
3725 extern int MV1GetTextureBumpImageFlag( int MHandle, int TexIndex ) ; // テクスチャがバンプマップかどうかを取得する( 戻り値 TRUE:バンプマップ FALSE:違う )
3726 extern int MV1SetTextureBumpImageNextPixelLength( int MHandle, int TexIndex, float Length ) ; // バンプマップ画像の場合の隣のピクセルとの距離を設定する
3727 extern float MV1GetTextureBumpImageNextPixelLength( int MHandle, int TexIndex ) ; // バンプマップ画像の場合の隣のピクセルとの距離を取得する
3728 extern int MV1SetTextureSampleFilterMode( int MHandle, int TexIndex, int FilterMode ) ; // テクスチャのフィルタリングモードを設定する
3729 extern int MV1GetTextureSampleFilterMode( int MHandle, int TexIndex ) ; // テクスチャのフィルタリングモードを取得する( 戻り値 DX_DRAWMODE_BILINEAR等 )
3730 extern int MV1LoadTexture( const TCHAR *FilePath ) ; // ３Ｄモデルに貼り付けるのに向いた画像の読み込み方式で画像を読み込む( 戻り値 -1:エラー 0以上:グラフィックハンドル )
3731
3732 // フレーム関係
3733 extern int MV1GetFrameNum( int MHandle ) ; // フレームの数を取得する
3734 extern int MV1SearchFrame( int MHandle, const TCHAR *FrameName ) ; // フレームの名前からモデル中のフレームのフレームインデックスを取得する( 無かった場合は戻り値が-1 )
3735 extern int MV1SearchFrameChild( int MHandle, int FrameIndex = -1 , const TCHAR *ChildName = NULL ) ; // フレームの名前から指定のフレームの子フレームのフレームインデックスを取得する( 名前指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する )( 無かった場合は戻り値が-1 )
3736 extern const TCHAR *MV1GetFrameName( int MHandle, int FrameIndex ) ; // 指定のフレームの名前を取得する( エラーの場合は戻り値が NULL )
3737 extern int MV1GetFrameParent( int MHandle, int FrameIndex ) ; // 指定のフレームの親フレームのインデックスを得る( 親がいない場合は -2 が返る )
3738 extern int MV1GetFrameChildNum( int MHandle, int FrameIndex = -1 ) ; // 指定のフレームの子フレームの数を取得する( FrameIndex を -1 にすると親を持たないフレームの数が返ってくる )
3739 extern int MV1GetFrameChild( int MHandle, int FrameIndex = -1 , int ChildIndex = 0 ) ; // 指定のフレームの子フレームのフレームインデックスを取得する( 番号指定版 )( FrameIndex を -1 にすると親を持たないフレームを ChildIndex で指定する )( エラーの場合は戻り値が-1 )
3740 extern VECTOR MV1GetFramePosition( int MHandle, int FrameIndex ) ; // 指定のフレームの座標を取得する
3741 extern MATRIX MV1GetFrameBaseLocalMatrix( int MHandle, int FrameIndex ) ; // 指定のフレームの初期状態での座標変換行列を取得する
3742 extern MATRIX MV1GetFrameLocalMatrix( int MHandle, int FrameIndex ) ; // 指定のフレームの座標変換行列を取得する
3743 extern MATRIX MV1GetFrameLocalWorldMatrix( int MHandle, int FrameIndex ) ; // 指定のフレームのローカル座標からワールド座標に変換する行列を得る
3744 extern int MV1SetFrameUserLocalMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ; // 指定のフレームの座標変換行列を設定する
3745 extern int MV1ResetFrameUserLocalMatrix( int MHandle, int FrameIndex ) ; // 指定のフレームの座標変換行列をデフォルトに戻す
3746 extern VECTOR MV1GetFrameMaxVertexLocalPosition( int MHandle, int FrameIndex ) ; // 指定のフレームが持つメッシュ頂点のローカル座標での最大値を得る
3747 extern VECTOR MV1GetFrameMinVertexLocalPosition( int MHandle, int FrameIndex ) ; // 指定のフレームが持つメッシュ頂点のローカル座標での最小値を得る
3748 extern VECTOR MV1GetFrameAvgVertexLocalPosition( int MHandle, int FrameIndex ) ; // 指定のフレームが持つメッシュ頂点のローカル座標での平均値を得る
3749 extern int MV1GetFrameTriangleNum( int MHandle, int FrameIndex ) ; // 指定のフレームに含まれるポリゴンの数を取得する
3750 extern int MV1GetFrameMeshNum( int MHandle, int FrameIndex ) ; // 指定のフレームが持つメッシュの数を取得する
3751 extern int MV1GetFrameMesh( int MHandle, int FrameIndex, int Index ) ; // 指定のフレームが持つメッシュのメッシュインデックスを取得する
3752 extern int MV1SetFrameVisible( int MHandle, int FrameIndex, int VisibleFlag ) ; // 指定のフレームの表示、非表示状態を変更する( TRUE:表示 FALSE:非表示 )
3753 extern int MV1GetFrameVisible( int MHandle, int FrameIndex ) ; // 指定のフレームの表示、非表示状態を取得する( TRUE:表示 FALSE:非表示 )
3754 extern int MV1SetFrameDifColorScale( int MHandle, int FrameIndex, COLOR_F Scale ) ; // 指定のフレームのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
3755 extern int MV1SetFrameSpcColorScale( int MHandle, int FrameIndex, COLOR_F Scale ) ; // 指定のフレームのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
3756 extern int MV1SetFrameEmiColorScale( int MHandle, int FrameIndex, COLOR_F Scale ) ; // 指定のフレームのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
3757 extern int MV1SetFrameAmbColorScale( int MHandle, int FrameIndex, COLOR_F Scale ) ; // 指定のフレームのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
3758 extern COLOR_F MV1GetFrameDifColorScale( int MHandle, int FrameIndex ) ; // 指定のフレームのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
3759 extern COLOR_F MV1GetFrameSpcColorScale( int MHandle, int FrameIndex ) ; // 指定のフレームのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
3760 extern COLOR_F MV1GetFrameEmiColorScale( int MHandle, int FrameIndex ) ; // 指定のフレームのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
3761 extern COLOR_F MV1GetFrameAmbColorScale( int MHandle, int FrameIndex ) ; // 指定のフレームのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
3762 extern int MV1GetFrameSemiTransState( int MHandle, int FrameIndex ) ; // 指定のフレームに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある FALSE:ない )
3763 extern int MV1SetFrameOpacityRate( int MHandle, int FrameIndex, float Rate ) ; // 指定のフレームの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f )
3764 extern float MV1GetFrameOpacityRate( int MHandle, int FrameIndex ) ; // 指定のフレームの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f )
3765 extern int MV1SetFrameBaseVisible( int MHandle, int FrameIndex, int VisibleFlag ) ; // 指定のフレームの初期表示状態を設定する( TRUE:表示 FALSE:非表示 )
3766 extern int MV1GetFrameBaseVisible( int MHandle, int FrameIndex ) ; // 指定のフレームの初期表示状態を取得する( TRUE:表示 FALSE:非表示 )
3767 extern int MV1SetFrameTextureAddressTransform( int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate ) ; // 指定のフレームのテクスチャ座標変換パラメータを設定する
3768 extern int MV1SetFrameTextureAddressTransformMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ; // 指定のフレームのテクスチャ座標変換行列をセットする
3769 extern int MV1ResetFrameTextureAddressTransform( int MHandle, int FrameIndex ) ; // 指定のフレームのテクスチャ座標変換パラメータをリセットする
3770
3771 // メッシュ関係
3772 extern int MV1GetMeshNum( int MHandle ) ; // モデルに含まれるメッシュの数を取得する
3773 extern int MV1GetMeshMaterial( int MHandle, int MeshIndex ) ; // 指定メッシュが使用しているマテリアルのインデックスを取得する
3774 extern int MV1GetMeshTriangleNum( int MHandle, int MeshIndex ) ; // 指定メッシュに含まれる三角形ポリゴンの数を取得する
3775 extern int MV1SetMeshVisible( int MHandle, int MeshIndex, int VisibleFlag ) ; // 指定メッシュの表示、非表示状態を変更する( TRUE:表示 FALSE:非表示 )
3776 extern int MV1GetMeshVisible( int MHandle, int MeshIndex ) ; // 指定メッシュの表示、非表示状態を取得する( TRUE:表示 FALSE:非表示 )
3777 extern int MV1SetMeshDifColorScale( int MHandle, int MeshIndex, COLOR_F Scale ) ; // 指定のメッシュのディフューズカラーのスケール値を設定する( デフォルト値は 1.0f )
3778 extern int MV1SetMeshSpcColorScale( int MHandle, int MeshIndex, COLOR_F Scale ) ; // 指定のメッシュのスペキュラカラーのスケール値を設定する( デフォルト値は 1.0f )
3779 extern int MV1SetMeshEmiColorScale( int MHandle, int MeshIndex, COLOR_F Scale ) ; // 指定のメッシュのエミッシブカラーのスケール値を設定する( デフォルト値は 1.0f )
3780 extern int MV1SetMeshAmbColorScale( int MHandle, int MeshIndex, COLOR_F Scale ) ; // 指定のメッシュのアンビエントカラーのスケール値を設定する( デフォルト値は 1.0f )
3781 extern COLOR_F MV1GetMeshDifColorScale( int MHandle, int MeshIndex ) ; // 指定のメッシュのディフューズカラーのスケール値を取得する( デフォルト値は 1.0f )
3782 extern COLOR_F MV1GetMeshSpcColorScale( int MHandle, int MeshIndex ) ; // 指定のメッシュのスペキュラカラーのスケール値を取得する( デフォルト値は 1.0f )
3783 extern COLOR_F MV1GetMeshEmiColorScale( int MHandle, int MeshIndex ) ; // 指定のメッシュのエミッシブカラーのスケール値を取得する( デフォルト値は 1.0f )
3784 extern COLOR_F MV1GetMeshAmbColorScale( int MHandle, int MeshIndex ) ; // 指定のメッシュのアンビエントカラーのスケール値を取得する( デフォルト値は 1.0f )
3785 extern int MV1SetMeshOpacityRate( int MHandle, int MeshIndex, float Rate ) ; // 指定のメッシュの不透明度を設定する( 不透明 1.0f 〜 透明 0.0f )
3786 extern float MV1GetMeshOpacityRate( int MHandle, int MeshIndex ) ; // 指定のメッシュの不透明度を取得する( 不透明 1.0f 〜 透明 0.0f )
3787 extern int MV1SetMeshDrawBlendMode( int MHandle, int MeshIndex, int BlendMode ) ; // 指定のメッシュの描画ブレンドモードを設定する( DX_BLENDMODE_ALPHA 等 )
3788 extern int MV1SetMeshDrawBlendParam( int MHandle, int MeshIndex, int BlendParam ) ; // 指定のメッシュの描画ブレンドパラメータを設定する
3789 extern int MV1GetMeshDrawBlendMode( int MHandle, int MeshIndex ) ; // 指定のメッシュの描画ブレンドモードを取得する( DX_BLENDMODE_ALPHA 等 )
3790 extern int MV1GetMeshDrawBlendParam( int MHandle, int MeshIndex ) ; // 指定のメッシュの描画ブレンドパラメータを設定する
3791 extern int MV1SetMeshBaseVisible( int MHandle, int MeshIndex, int VisibleFlag ) ; // 指定のメッシュの初期表示状態を設定する( TRUE:表示 FALSE:非表示 )
3792 extern int MV1GetMeshBaseVisible( int MHandle, int MeshIndex ) ; // 指定のメッシュの初期表示状態を取得する( TRUE:表示 FALSE:非表示 )
3793 extern int MV1SetMeshBackCulling( int MHandle, int MeshIndex, int CullingFlag ) ; // 指定のメッシュのバックカリングを行うかどうかを設定する( DX_CULLING_LEFT 等 )
3794 extern int MV1GetMeshBackCulling( int MHandle, int MeshIndex ) ; // 指定のメッシュのバックカリングを行うかどうかを取得する( DX_CULLING_LEFT 等 )
3795 extern VECTOR MV1GetMeshMaxPosition( int MHandle, int MeshIndex ) ; // 指定のメッシュに含まれるポリゴンの最大ローカル座標を取得する
3796 extern VECTOR MV1GetMeshMinPosition( int MHandle, int MeshIndex ) ; // 指定のメッシュに含まれるポリゴンの最小ローカル座標を取得する
3797 extern int MV1GetMeshTListNum( int MHandle, int MeshIndex ) ; // 指定のメッシュに含まれるトライアングルリストの数を取得する
3798 extern int MV1GetMeshTList( int MHandle, int MeshIndex, int Index ) ; // 指定のメッシュに含まれるトライアングルリストのインデックスを取得する
3799 extern int MV1GetMeshSemiTransState( int MHandle, int MeshIndex ) ; // 指定のメッシュに半透明要素があるかどうかを取得する( 戻り値 TRUE:ある FALSE:ない )
3800 extern int MV1SetMeshUseVertDifColor( int MHandle, int MeshIndex, int UseFlag ) ; // 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3801 extern int MV1SetMeshUseVertSpcColor( int MHandle, int MeshIndex, int UseFlag ) ; // 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかを設定する( TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3802 extern int MV1GetMeshUseVertDifColor( int MHandle, int MeshIndex ) ; // 指定のメッシュの頂点ディフューズカラーをマテリアルのディフューズカラーの代わりに使用するかどうかの設定を取得する( 戻り値 TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3803 extern int MV1GetMeshUseVertSpcColor( int MHandle, int MeshIndex ) ; // 指定のメッシュの頂点スペキュラカラーをマテリアルのスペキュラカラーの代わりに使用するかどうかの設定を取得する( 戻り値 TRUE:マテリアルカラーの代わりに使用する FALSE:マテリアルカラーを使用する )
3804
3805 // トライアングルリスト関係
3806 extern int MV1GetTriangleListNum( int MHandle ) ; // モデルに含まれるトライアングルリストの数を取得する
3807 extern int MV1GetTriangleListVertexType( int MHandle, int TListIndex ) ; // 指定のトライアングルリストの頂点データタイプを取得する( DX_MV1_VERTEX_TYPE_1FRAME 等 )
3808 extern int MV1GetTriangleListPolygonNum( int MHandle, int TListIndex ) ; // 指定のトライアングルリストに含まれるポリゴンの数を取得する
3809 extern int MV1GetTriangleListVertexNum( int MHandle, int TListIndex ) ; // 指定のトライアングルリストに含まれる頂点データの数を取得する
3810
3811 // コリジョン関係
3812 extern int MV1SetupCollInfo( int MHandle, int FrameIndex = -1 , int XDivNum = 32 , int YDivNum = 8 , int ZDivNum = 32 ) ; // コリジョン情報を構築する
3813 extern int MV1TerminateCollInfo( int MHandle, int FrameIndex = -1 ) ; // コリジョン情報の後始末
3814 extern int MV1RefreshCollInfo( int MHandle, int FrameIndex = -1 ) ; // コリジョン情報を更新する
3815 extern MV1_COLL_RESULT_POLY MV1CollCheck_Line( int MHandle, int FrameIndex, VECTOR PosStart, VECTOR PosEnd ) ; // 線とモデルの当たり判定
3816 extern MV1_COLL_RESULT_POLY_DIM MV1CollCheck_LineDim( int MHandle, int FrameIndex, VECTOR PosStart, VECTOR PosEnd ) ; // 線とモデルの当たり判定( 戻り値が MV1_COLL_RESULT_POLY_DIM )
3817 extern MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Sphere( int MHandle, int FrameIndex, VECTOR CenterPos, float r ) ; // 球とモデルの当たり判定
3818 extern MV1_COLL_RESULT_POLY_DIM MV1CollCheck_Capsule( int MHandle, int FrameIndex, VECTOR Pos1, VECTOR Pos2, float r ) ; // カプセルとモデルの当たり判定
3819 extern MV1_COLL_RESULT_POLY MV1CollCheck_GetResultPoly( MV1_COLL_RESULT_POLY_DIM ResultPolyDim, int PolyNo ) ; // コリジョン結果ポリゴン配列から指定番号のポリゴン情報を取得する
3820 extern int MV1CollResultPolyDimTerminate( MV1_COLL_RESULT_POLY_DIM ResultPolyDim ) ; // コリジョン結果ポリゴン配列の後始末をする
3821
3822 // 参照用メッシュ関係
3823 extern int MV1SetupReferenceMesh( int MHandle, int FrameIndex, int IsTransform ) ; // 参照用メッシュのセットアップ
3824 extern int MV1TerminateReferenceMesh( int MHandle, int FrameIndex, int IsTransform ) ; // 参照用メッシュの後始末
3825 extern int MV1RefreshReferenceMesh( int MHandle, int FrameIndex, int IsTransform ) ; // 参照用メッシュの更新
3826 extern MV1_REF_POLYGONLIST MV1GetReferenceMesh( int MHandle, int FrameIndex, int IsTransform ) ; // 参照用メッシュを取得する
3827
3828 #endif // DX_NON_MODEL
3829
3830 #define DX_FUNCTION_END
3831
3832 }
3833
3834 // ネームスペース DxLib を使用する ------------------------------------------------------
3835 using namespace DxLib ;
3836
3837 // ＤＸライブラリ内部でのみ使用するヘッダファイルのインクルード -------------------------
3838
3839 #ifdef __DX_MAKE
3840 // #include "DxStatic.h"
3841 #endif
3842
3843 #endif
3844
3845
DxLib::tagIPDATA
Definition: DxLib.h:1458
DxLib::tagCOLORPALETTEDATA
Definition: DxLib.h:1359
DxLib::tagMV1_REF_VERTEX
Definition: DxLib.h:1279
DxLib::tagFLOAT2
Definition: DxLib.h:1108
DxLib::tagVERTEX_3D
Definition: DxLib.h:1190
DxLib::tagVERTEX_2D
Definition: DxLib.h:1146
DxLib::tagSTREAMDATASHRED
Definition: DxLib.h:1335
DxLib::tagCOLOR_U8
Definition: DxLib.h:1120
DxLib::tagIPDATA_IPv6
Definition: DxLib.h:1463
DxLib::tagLINEDATA
Definition: DxLib.h:1397
DxLib::tagVERTEX2DSHADER
Definition: DxLib.h:1164
DxLib::tagVERTEX3DSHADER
Definition: DxLib.h:1210
DxLib::tagMV1_REF_POLYGONLIST
Definition: DxLib.h:1300
DxLib::tagBASEIMAGE
Definition: DxLib.h:1388
DxLib::tagCOLOR_F
Definition: DxLib.h:1114
DxLib::tagSTREAMDATA
Definition: DxLib.h:1347
DxLib::tagHITRESULT_LINE
Definition: DxLib.h:1252
DxLib::tagFLOAT4
Definition: DxLib.h:1126
DxLib::tagMV1_COLL_RESULT_POLY
Definition: DxLib.h:1259
DxLib::tagVERTEX
Definition: DxLib.h:1175
DxLib::tagMATRIX
Definition: DxLib.h:1096
DxLib::tagVECTOR
Definition: DxLib.h:1102
DxLib::tagMV1_COLL_RESULT_POLY_DIM
Definition: DxLib.h:1272
DxLib::tagSTREAMDATASHREDTYPE2
Definition: DxLib.h:1318
DxLib::tagDINPUT_JOYSTATE
Definition: DxLib.h:1438
DxLib::tagVERTEX_NOTEX_2D
Definition: DxLib.h:1138
DxLib::tagVERTEX_NOTEX_3D
Definition: DxLib.h:1183
DxLib::tagFILEINFO
Definition: DxLib.h:1084
DxLib::tagINT4
Definition: DxLib.h:1132
DxLib::tagDISPLAYMODEDATA
Definition: DxLib.h:1075
DxLib::tagMATERIALPARAM
Definition: DxLib.h:1242
DxLib::tagLIGHTPARAM
Definition: DxLib.h:1224
DxLib::tagMV1_REF_POLYGON
Definition: DxLib.h:1289
DxLib::tagIMEINPUTDATA
Definition: DxLib.h:1046
DxLib::tagPOINTDATA
Definition: DxLib.h:1405
DxLib::tagDATEDATA
Definition: DxLib.h:1064
DxLib::tagIMEINPUTCLAUSEDATA
Definition: DxLib.h:1039
DxLib::tagIMAGEFORMATDESC
Definition: DxLib.h:1413
DxLib::tagCOLORDATA
Definition: DxLib.h:1368
DxLib::tagVERTEX2D
Definition: DxLib.h:1155
DxLib::tagVERTEX3D
Definition: DxLib.h:1198