Lumino (C API)
LNTypedef.h
1 #pragma once
2 #include "LNCommon.h"
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif // __cplusplus
7 
10 
11 //=============================================================================
12 // Common
13 //=============================================================================
14 
16 typedef enum tagLNBool
17 {
18  LN_FALSE = 0,
19  LN_TRUE = 1,
21 } LNBool;
22 
24 typedef enum tagLNResult
25 {
26  LN_OK = 0,
36  LN_ERROR_IO = -10,
43  LN_ERROR_COM = -17,
45 } LNResult;
46 
51 typedef void(*LNExceptionCallback)(LNResult errCode);
52 
53 
54 //=============================================================================
55 // Base
56 //=============================================================================
57 
59 typedef enum tagLNVariantType
60 {
72  LN_VARIANTTYPE__TERMINATOR,
73 
75 
77 typedef struct tagLNSize
78 {
79  int Width;
80  int Height;
81 } LNSize;
82 
84 typedef struct tagLNRect
85 {
86  int X;
87  int Y;
88  int Width;
89  int Height;
90 } LNRect;
91 
93 typedef struct tagLNVariant
94 {
95  LNVariantType Type;
96  uint32_t Data1;
97  uint32_t Data2;
98  uint32_t Data3;
99  uint32_t Data4;
101 } LNVariant;
102 
103 //=============================================================================
104 // FileIO
105 //=============================================================================
106 
109 {
114  LN_FILEACCESSPRIORITY__TERMINATOR,
115 
117 
119 typedef enum tagLNFileType
120 {
124  LN_FILETYPE__TERMINATOR,
125 
126 } LNFileType;
127 
129 typedef enum tagLNFileMode
130 {
135  LN_FILEMODE__TERMINATOR,
136 
137 } LNFileMode;
138 
140 typedef enum tagLNFileAccess
141 {
146  LN_FILEACCESS__TERMINATOR,
147 
148 } LNFileAccess;
149 
151 typedef enum tagLNSeekOrigin
152 {
157 } LNSeekOrigin;
158 
160 typedef enum tagLNAsyncIOState
161 {
168  LN_ASYNCIOSTATE__TERMINATOR,
169 
171 
172 //=============================================================================
173 // Math
174 //=============================================================================
175 
177 typedef struct tagLNVector2
178 {
179  float X;
180  float Y;
181 
182 } LNVector2;
183 
185 typedef struct tagLNVector3
186 {
187  float X;
188  float Y;
189  float Z;
190 
191 } LNVector3;
192 
194 typedef struct tagLNVector4
195 {
196  float X;
197  float Y;
198  float Z;
199  float W;
200 
201 } LNVector4;
202 
204 typedef struct tagLNMatrix
205 {
206  float M11;
207  float M12;
208  float M13;
209  float M14;
210  float M21;
211  float M22;
212  float M23;
213  float M24;
214  float M31;
215  float M32;
216  float M33;
217  float M34;
218  float M41;
219  float M42;
220  float M43;
221  float M44;
222 
223 } LNMatrix;
224 
226 typedef struct tagLNQuaternion
227 {
228  float X;
229  float Y;
230  float Z;
231  float W;
232 
233 } LNQuaternion;
234 
236 typedef enum tagLNRotationOrder
237 {
245  LN_ROTATIONORDER__TERMINATOR,
246 
248 
249 //=============================================================================
250 // System
251 //=============================================================================
252 
254 typedef enum tagLNKeyCode
255 {
256  LN_KEY_UNKNOWN = 0,
257 
258  LN_KEY_A,
259  LN_KEY_B,
260  LN_KEY_C,
261  LN_KEY_D,
262  LN_KEY_E,
263  LN_KEY_F,
264  LN_KEY_G,
265  LN_KEY_H,
266  LN_KEY_I,
267  LN_KEY_J,
268  LN_KEY_K,
269  LN_KEY_L,
270  LN_KEY_M,
271  LN_KEY_N,
272  LN_KEY_O,
273  LN_KEY_P,
274  LN_KEY_Q,
275  LN_KEY_R,
276  LN_KEY_S,
277  LN_KEY_T,
278  LN_KEY_U,
279  LN_KEY_V,
280  LN_KEY_W,
281  LN_KEY_X,
282  LN_KEY_Y,
283  LN_KEY_Z,
284 
296  LN_KEY_F1,
297  LN_KEY_F2,
298  LN_KEY_F3,
299  LN_KEY_F4,
300  LN_KEY_F5,
301  LN_KEY_F6,
302  LN_KEY_F7,
303  LN_KEY_F8,
304  LN_KEY_F9,
305  LN_KEY_F10,
306  LN_KEY_F11,
307  LN_KEY_F12,
308 
309  LN_KEY_SPACE,
310  LN_KEY_ESCAPE,
311  LN_KEY_UP,
312  LN_KEY_DOWN,
313  LN_KEY_LEFT,
314  LN_KEY_RIGHT,
315  LN_KEY_LSHIFT,
316  LN_KEY_RSHIFT,
317  LN_KEY_LCTRL,
318  LN_KEY_RCTRL,
319  LN_KEY_LALT,
320  LN_KEY_RALT,
321  LN_KEY_TAB,
322  LN_KEY_ENTER,
323  LN_KEY_BACKSPACE,
324  LN_KEY_INSERT,
325  LN_KEY_DELETE,
326  LN_KEY_PAGEUP,
327  LN_KEY_PAGEDOWN,
328  LN_KEY_HOME,
329  LN_KEY_END,
330 
345  LN_KEY__TERMINATOR = 256,
346 
347 } LNKeyCode;
348 
351 {
355  LN_ACCELERATORKEY__TERMINATOR,
356 
358 
359 
360 //=============================================================================
361 // Audio
362 //=============================================================================
363 
366 {
372  LN_DIRECTMUSICMODE__TERMINATOR,
373 
375 
378 {
385  LN_SOUNDPLAYINGTYPE__TERMINATOR,
386 
388 
391 {
396  LN_SOUNDPLAYINGSTATE__TERMINATOR,
397 
399 
402 {
409  LN_SOUNDFADEBEHAVIOR__TERMINATOR,
410 
412 
413 //=============================================================================
414 // Graphics
415 //=============================================================================
416 
418 typedef struct tagLNColor
419 {
420  uint8_t R;
421  uint8_t G;
422  uint8_t B;
423  uint8_t A;
425 } LNColor;
426 
428 typedef struct tagLNColorF
429 {
430  float R;
431  float G;
432  float B;
433  float A;
435 } LNColorF;
436 
438 typedef struct tagLNTone
439 {
440  float R;
441  float G;
442  float B;
443  float Mono;
445 } LNTone;
446 
449 {
454  LN_BACKBUFFERRESIZEMODE__TERMINATOR,
455 
457 
459 typedef enum tagLNTextureFormat
460 {
468  LN_FMT__TERMINATOR,
469 
471 
473 typedef enum tagLNBlendMode
474 {
485  LN_BLEND__TERMINATOR,
486 
487 } LNBlendMode;
488 
490 typedef enum tagLNCullingMode
491 {
496  LN_CULL__TERMINATOR,
497 
498 } LNCullingMode;
499 
501 typedef enum tagLNTextAlign
502 {
507  LN_TEXTALIGN__TERMINATOR,
508 
509 } LNTextAlign;
510 
512 typedef enum tagLNPlacementType
513 {
518  LN_PLACEMENTTYPE__TERMINATOR,
519 
521 
523 typedef enum tagLNFrontAxis
524 {
532  LN_FRONTAXIS__TERMINATOR,
533 
534 } LNFrontAxis;
535 
538 {
543  LN_MESHCREATEFLAGS__TERMINATOR,
544 
546 
548 typedef enum tagLNCameraType
549 {
554  LN_CAMERATYPE__TERMINATOR,
555 
556 } LNCameraType;
557 
558 //=============================================================================
559 // Scene
560 //=============================================================================
561 
563 typedef enum tagLNCoord
564 {
568  LN_COORD__TERMINATOR,
569 
570 } LNCoord;
571 
572 //=============================================================================
573 //
574 //=============================================================================
575 
577 typedef enum tagLNObjectType
578 {
579  LN_OBJECTTYPE_SOUND,
580 
581  LN_OBJECTTYPE__TERMINATOR,
582 
583 } LNObjectType;
584 
586 
587 #ifdef __cplusplus
588 } // extern "C" {
589 #endif // __cplusplus
int Height
高さ
Definition: LNTypedef.h:80
tagLNBlendMode
合成方法
Definition: LNTypedef.h:473
struct tagLNVector2 LNVector2
2Dベクトル
通常の配置方法
Definition: LNTypedef.h:514
/
Definition: LNTypedef.h:335
float G
緑成分 (0.0~1.0)
Definition: LNTypedef.h:431
tagLNFileAccessPriority
ファイルへのアクセス制限
Definition: LNTypedef.h:108
32 ビットの Z バッファフォーマット
Definition: LNTypedef.h:466
float Mono
モノクロ成分 (0.0~1.0)
Definition: LNTypedef.h:443
読み取りアクセス
Definition: LNTypedef.h:142
struct tagLNVector3 LNVector3
3Dベクトル
tagLNObjectType
ハンドルオブジェクトの種類
Definition: LNTypedef.h:577
フルスクリーン切り替えを行うアクセラレータキー
Definition: LNTypedef.h:352
tagLNRotationOrder
回転順序
Definition: LNTypedef.h:236
不明な再生方法
Definition: LNTypedef.h:379
X- 方向 (左向き)
Definition: LNTypedef.h:528
Definition: LNTypedef.h:334
enum tagLNPlacementType LNPlacementType
ノードの配置方法
物理演算のメッシュボディとして扱うメッシュを生成する
Definition: LNTypedef.h:540
4x4行列
Definition: LNTypedef.h:204
[
Definition: LNTypedef.h:340
バイナリモードで開く
Definition: LNTypedef.h:121
float G
緑成分 (-1.0~1.0)
Definition: LNTypedef.h:441
3Dベクトル
Definition: LNTypedef.h:185
enum tagLNFileAccess LNFileAccess
ファイルにアクセスする方法
現在のシーク位置
Definition: LNTypedef.h:154
Definition: LNTypedef.h:19
Z+ 方向 (奥向き)
Definition: LNTypedef.h:527
2D 空間
Definition: LNTypedef.h:565
Boolean.
Definition: LNTypedef.h:63
float R
赤成分 (0.0~1.0)
Definition: LNTypedef.h:430
SMF.
Definition: LNTypedef.h:383
リバース
Definition: LNTypedef.h:483
enum tagLNMeshCreateFlags LNMeshCreateFlags
メッシュ生成オプション
'7' (NumPad ではない)
Definition: LNTypedef.h:292
ストリームの末尾を越えてアクセスしようとした
Definition: LNTypedef.h:40
enum tagLNSeekOrigin LNSeekOrigin
シーク位置移動の起点
両面表示
Definition: LNTypedef.h:494
Definition: LNTypedef.h:418
矩形
Definition: LNTypedef.h:84
tagLNDirectMusicMode
DirectMusic の初期化方法
Definition: LNTypedef.h:365
不明なエラー
Definition: LNTypedef.h:27
バックバッファは初期化時のサイズのまま、ウィンドウサイズに合わせて拡縮を行う
Definition: LNTypedef.h:450
struct tagLNColor LNColor
64 ビットの浮動小数点フォーマット
Definition: LNTypedef.h:464
ファイルの末尾
Definition: LNTypedef.h:155
int Width
Definition: LNTypedef.h:79
,
Definition: LNTypedef.h:333
位置と各軸の回転角度から算出する (2D カメラのデフォルト)
Definition: LNTypedef.h:551
中央揃え
Definition: LNTypedef.h:504
struct tagLNVector4 LNVector4
4Dベクトル
enum tagLNSoundFadeBehavior LNSoundFadeBehavior
音量フェード完了時の動作
不明な型
Definition: LNTypedef.h:61
前提条件の検証エラー
Definition: LNTypedef.h:28
停止する
Definition: LNTypedef.h:404
uint8_t B
青成分 (0~255)
Definition: LNTypedef.h:422
LNSizeF 構造体
Definition: LNTypedef.h:70
アーカイブ優先
Definition: LNTypedef.h:110
減算
Definition: LNTypedef.h:479
バックバッファは初期化時のサイズのまま、レターボックスを表示してアスペクト比を保ち拡縮を行う ...
Definition: LNTypedef.h:451
tagLNFileAccess
ファイルにアクセスする方法
Definition: LNTypedef.h:140
数値演算によるオーバーフローが発生した
Definition: LNTypedef.h:35
float A
アルファ成分 (0.0~1.0)
Definition: LNTypedef.h:433
位置と注視点から算出する (3Dカメラのデフォルト。2Dカメラでは無効)
Definition: LNTypedef.h:550
enum tagLNDirectMusicMode LNDirectMusicMode
DirectMusic の初期化方法
tagLNTextureFormat
テクスチャフォーマット
Definition: LNTypedef.h:459
enum tagLNFileType LNFileType
ファイルオープンモード
アーカイブのみ
Definition: LNTypedef.h:112
tagLNCoord
座標系
Definition: LNTypedef.h:563
float B
青成分 (0.0~1.0)
Definition: LNTypedef.h:432
(BaskSpaceキーの左の\キー) [非推奨 GLFWではI]
Definition: LNTypedef.h:338
Y → X → Z.
Definition: LNTypedef.h:240
一時停止する
Definition: LNTypedef.h:406
'8' (NumPad ではない)
Definition: LNTypedef.h:293
'4' (NumPad ではない)
Definition: LNTypedef.h:289
別スレッドで初期化して、再生時に未完了の場合は待つ
Definition: LNTypedef.h:369
継続(なにもしない)
Definition: LNTypedef.h:403
加算(アルファチャンネル無視)
Definition: LNTypedef.h:478
struct tagLNColorF LNColorF
色 (実数表現)
tagLNAsyncIOState
非同期処理の状態
Definition: LNTypedef.h:160
終了状態 (処理終了後・処理に失敗した)
Definition: LNTypedef.h:166
32 ビットのアルファ付きフォーマット
Definition: LNTypedef.h:462
tagLNCameraType
カメラ姿勢の設定方法
Definition: LNTypedef.h:548
裏面表示
Definition: LNTypedef.h:493
不明なフォーマット
Definition: LNTypedef.h:461
配列
Definition: LNTypedef.h:67
Z- 方向 (手前向き)
Definition: LNTypedef.h:530
既存のファイルを開く
Definition: LNTypedef.h:131
'2' (NumPad ではない)
Definition: LNTypedef.h:287
オブジェクト
Definition: LNTypedef.h:68
tagLNSoundFadeBehavior
音量フェード完了時の動作
Definition: LNTypedef.h:401
enum tagLNAsyncIOState LNAsyncIOState
非同期処理の状態
新しいファイルを作成する。既に存在する場合は上書きされる
Definition: LNTypedef.h:132
クォータニオン
Definition: LNTypedef.h:226
enum tagLNSoundPlayingMode LNSoundPlayingMode
サウンド再生方法
COM のエラー
Definition: LNTypedef.h:43
DirectMusic を使用しない
Definition: LNTypedef.h:367
ファイルを開き、ファイルの末尾をシークする。存在しない場合は新しいファイルを作成する ...
Definition: LNTypedef.h:133
アルファブレンド (デフォルト)
Definition: LNTypedef.h:476
uint8_t G
緑成分 (0~255)
Definition: LNTypedef.h:421
enum tagLNBackbufferResizeMode LNBackbufferResizeMode
ウィンドウとバックバッファのリサイズモード
左揃え
Definition: LNTypedef.h:503
X → Z → Y.
Definition: LNTypedef.h:239
int Height
高さ
Definition: LNTypedef.h:89
uint8_t A
アルファ成分 (0~255)
Definition: LNTypedef.h:423
Variant値
Definition: LNTypedef.h:93
32 ビットのアルファ無しフォーマット
Definition: LNTypedef.h:463
行列を使用し、正面(0,0,1) と 上方向(0,1,0) を変換する
Definition: LNTypedef.h:552
enum tagLNCameraType LNCameraType
カメラ姿勢の設定方法
一時停止中
Definition: LNTypedef.h:394
文字列
Definition: LNTypedef.h:66
struct tagLNQuaternion LNQuaternion
クォータニオン
tagLNSoundPlayingState
サウンドの再生状態
Definition: LNTypedef.h:390
int Y
左上 Y 座標
Definition: LNTypedef.h:87
デバッグ用の情報を表示切替を行うアクセラレータキー
Definition: LNTypedef.h:353
実行可能状態 (実際の処理開始を待っている)
Definition: LNTypedef.h:163
ソフトウェアスキニング用のモデル (動的な頂点、インデックスバッファを作成)
Definition: LNTypedef.h:539
tagLNBool
真偽値
Definition: LNTypedef.h:16
struct tagLNMatrix LNMatrix
4x4行列
tagLNTextAlign
テキストアライン
Definition: LNTypedef.h:501
enum tagLNObjectType LNObjectType
ハンドルオブジェクトの種類
tagLNMeshCreateFlags
メッシュ生成オプション
Definition: LNTypedef.h:537
tagLNAcceleratorKey
アクセラレータキー
Definition: LNTypedef.h:350
右揃え
Definition: LNTypedef.h:505
enum tagLNTextAlign LNTextAlign
テキストアライン
'5' (NumPad ではない)
Definition: LNTypedef.h:290
Android '+'.
Definition: LNTypedef.h:343
成功
Definition: LNTypedef.h:26
マテリアルに含まれるテクスチャファイルが見つからなくても無視する
Definition: LNTypedef.h:541
(バックスラッシュ) [非推奨 GLFWではNOWORD2]
Definition: LNTypedef.h:337
メモリ確保に失敗
Definition: LNTypedef.h:32
色 (実数表現)
Definition: LNTypedef.h:428
通常 (アルファ無視)
Definition: LNTypedef.h:475
ディレクトリ優先
Definition: LNTypedef.h:111
再生中
Definition: LNTypedef.h:393
実行状態 (処理中)
Definition: LNTypedef.h:164
enum tagLNSoundPlayingState LNSoundPlayingState
サウンドの再生状態
Y 軸固定
Definition: LNTypedef.h:516
Z → X → Y.
Definition: LNTypedef.h:242
自動選択 (デフォルトではデコード後のサイズが 10000 バイト以上になる場合はストリーミング、そうでない場...
Definition: LNTypedef.h:380
オブジェクトの現在の状態に対して無効な呼び出しが行われた
Definition: LNTypedef.h:30
停止中
Definition: LNTypedef.h:392
tagLNBackbufferResizeMode
ウィンドウとバックバッファのリサイズモード
Definition: LNTypedef.h:448
無効なディレクトリにアクセスしようとした
Definition: LNTypedef.h:38
enum tagLNTextureFormat LNTextureFormat
テクスチャフォーマット
読み取り及び書き込みアクセス
Definition: LNTypedef.h:143
オンメモリ
Definition: LNTypedef.h:381
乗算(アルファチャンネル無視)
Definition: LNTypedef.h:481
32bit 整数
Definition: LNTypedef.h:64
struct tagLNVariant LNVariant
Variant値
enum tagLNBool LNBool
真偽値
その他のIOエラー
Definition: LNTypedef.h:36
]
Definition: LNTypedef.h:341
enum tagLNFileMode LNFileMode
ファイルを開く方法または作成する方法
Definition: LNTypedef.h:18
Y → Z → X.
Definition: LNTypedef.h:241
X+ 方向 (右向き)
Definition: LNTypedef.h:525
enum tagLNKeyCode LNKeyCode
キーボードのキーコード
tagLNKeyCode
キーボードのキーコード
Definition: LNTypedef.h:254
ファイルにアクセスしようとして失敗した
Definition: LNTypedef.h:37
一時停止して、音量を元の値に戻す
Definition: LNTypedef.h:407
^ [非推奨 GLFWではGLFW_KEY_APOSTROPHE(')]
Definition: LNTypedef.h:339
enum tagLNVariantType LNVariantType
Variant の型識別情報
int Width
Definition: LNTypedef.h:88
tagLNFrontAxis
3D 空間での基準方向を表す値
Definition: LNTypedef.h:523
別スレッドで初期化して、再生時に未完了の場合は再生を予約する
Definition: LNTypedef.h:370
struct tagLNRect LNRect
矩形
検索に使用したキーが存在しない
Definition: LNTypedef.h:34
tagLNPlacementType
ノードの配置方法
Definition: LNTypedef.h:512
2Dベクトル
Definition: LNTypedef.h:177
'3' (NumPad ではない)
Definition: LNTypedef.h:288
int X
左上 X 座標
Definition: LNTypedef.h:86
enum tagLNResult LNResult
結果・エラーコード
スクリーン(アルファチャンネル無視)
Definition: LNTypedef.h:482
3D 空間
Definition: LNTypedef.h:566
enum tagLNAcceleratorKey LNAcceleratorKey
アクセラレータキー
文字コードの変換中、マッピングできない文字または不正シーケンスが見つかった
Definition: LNTypedef.h:41
ファイルの先頭
Definition: LNTypedef.h:153
struct tagLNSize LNSize
サイズ (高さ・幅)
終了状態 (成功)
Definition: LNTypedef.h:165
Z → Y → X.
Definition: LNTypedef.h:243
enum tagLNBlendMode LNBlendMode
合成方法
常にカメラの方向を向くビルボード (回転は Z 軸のみ有効)
Definition: LNTypedef.h:515
バックバッファをウィンドウサイズに合わせてリサイズする
Definition: LNTypedef.h:452
float B
青成分 (-1.0~1.0)
Definition: LNTypedef.h:442
uint8_t R
赤成分 (0~255)
Definition: LNTypedef.h:420
停止して、音量を元の値に戻す
Definition: LNTypedef.h:405
enum tagLNRotationOrder LNRotationOrder
回転順序
float R
赤成分 (-1.0~1.0)
Definition: LNTypedef.h:440
テキストモードで開く
Definition: LNTypedef.h:122
値が有効な範囲に存在しない
Definition: LNTypedef.h:33
加算
Definition: LNTypedef.h:477
減算(アルファチャンネル無視)
Definition: LNTypedef.h:480
: [非推奨 GLFWでは;]
Definition: LNTypedef.h:331
WindowsAPI のエラー
Definition: LNTypedef.h:42
tagLNCullingMode
カリング方法
Definition: LNTypedef.h:490
tagLNFileType
ファイルオープンモード
Definition: LNTypedef.h:119
サイズ (高さ・幅)
Definition: LNTypedef.h:77
ファイルや文字列等の形式が不正
Definition: LNTypedef.h:39
待機状態 (初期状態)
Definition: LNTypedef.h:162
Y+ 方向 (上向き)
Definition: LNTypedef.h:526
未実装の機能を呼び出した
Definition: LNTypedef.h:31
128 ビットの浮動小数点フォーマット
Definition: LNTypedef.h:465
tagLNResult
結果・エラーコード
Definition: LNTypedef.h:24
struct tagLNTone LNTone
色調
4Dベクトル
Definition: LNTypedef.h:194
Y- 方向 (下向き)
Definition: LNTypedef.h:529
void(* LNExceptionCallback)(LNResult errCode)
例外発生時のコールバック関数
Definition: LNTypedef.h:51
ストリーミング
Definition: LNTypedef.h:382
引数が無効
Definition: LNTypedef.h:29
通常
Definition: LNTypedef.h:368
書き込みアクセス
Definition: LNTypedef.h:144
前面表示
Definition: LNTypedef.h:492
enum tagLNCullingMode LNCullingMode
カリング方法
Definition: LNTypedef.h:336
; [非推奨 GLFWでは=]
Definition: LNTypedef.h:332
enum tagLNFileAccessPriority LNFileAccessPriority
ファイルへのアクセス制限
単精度浮動小数
Definition: LNTypedef.h:65
enum tagLNFrontAxis LNFrontAxis
3D 空間での基準方向を表す値
tagLNVariantType
Variant の型識別情報
Definition: LNTypedef.h:59
tagLNFileMode
ファイルを開く方法または作成する方法
Definition: LNTypedef.h:129
X → Y → Z.
Definition: LNTypedef.h:238
'0' (NumPad ではない)
Definition: LNTypedef.h:285
enum tagLNCoord LNCoord
座標系
'9' (NumPad ではない)
Definition: LNTypedef.h:294
色調
Definition: LNTypedef.h:438
'1' (NumPad ではない)
Definition: LNTypedef.h:286
tagLNSeekOrigin
シーク位置移動の起点
Definition: LNTypedef.h:151
tagLNSoundPlayingMode
サウンド再生方法
Definition: LNTypedef.h:377
'6' (NumPad ではない)
Definition: LNTypedef.h:291