@tty-pt/lamina 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +24 -0
- package/README.md +55 -2
- package/dist/bridge.d.ts +10 -0
- package/dist/bridge.js +430 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.js +263 -0
- package/dist/lamina.wasm +0 -0
- package/dist/renderer.js +143 -0
- package/include/ttypt/lam-cam.h +150 -0
- package/include/ttypt/lam-font.h +119 -0
- package/include/ttypt/lam-key.h +211 -0
- package/include/ttypt/lam-tm.h +148 -0
- package/include/ttypt/lam-ui.h +426 -0
- package/include/ttypt/lam.h +372 -0
- package/include/ttypt/webgl.h +286 -0
- package/package.json +49 -4
- package/prebuilds/darwin-arm64/lamina.node +0 -0
- package/prebuilds/darwin-x64/lamina.node +0 -0
- package/prebuilds/linux-x64/lamina.node +0 -0
- package/prebuilds/win32-x64/lamina.node +0 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
#ifndef LAM_KEY_HEADER
|
|
2
|
+
#define LAM_KEY_HEADER
|
|
3
|
+
|
|
4
|
+
#define LAM_PRESS 1
|
|
5
|
+
#define LAM_REPEAT 2
|
|
6
|
+
|
|
7
|
+
#define LAM_HAT_CENTERED 0
|
|
8
|
+
#define LAM_HAT_UP 1
|
|
9
|
+
#define LAM_HAT_RIGHT 2
|
|
10
|
+
#define LAM_HAT_DOWN 4
|
|
11
|
+
#define LAM_HAT_LEFT 8
|
|
12
|
+
#define LAM_HAT_RIGHT_UP (LAM_HAT_RIGHT | LAM_HAT_UP)
|
|
13
|
+
#define LAM_HAT_RIGHT_DOWN (LAM_HAT_RIGHT | LAM_HAT_DOWN)
|
|
14
|
+
#define LAM_HAT_LEFT_UP (LAM_HAT_LEFT | LAM_HAT_UP)
|
|
15
|
+
#define LAM_HAT_LEFT_DOWN (LAM_HAT_LEFT | LAM_HAT_DOWN)
|
|
16
|
+
|
|
17
|
+
#define LAM_KEY_UNKNOWN -1
|
|
18
|
+
|
|
19
|
+
#define LAM_KEY_SPACE 32
|
|
20
|
+
#define LAM_KEY_APOSTROPHE 39 /* ' */
|
|
21
|
+
#define LAM_KEY_COMMA 44 /* , */
|
|
22
|
+
#define LAM_KEY_MINUS 45 /* - */
|
|
23
|
+
#define LAM_KEY_PERIOD 46 /* . */
|
|
24
|
+
#define LAM_KEY_SLASH 47 /* / */
|
|
25
|
+
#define LAM_KEY_0 48
|
|
26
|
+
#define LAM_KEY_1 49
|
|
27
|
+
#define LAM_KEY_2 50
|
|
28
|
+
#define LAM_KEY_3 51
|
|
29
|
+
#define LAM_KEY_4 52
|
|
30
|
+
#define LAM_KEY_5 53
|
|
31
|
+
#define LAM_KEY_6 54
|
|
32
|
+
#define LAM_KEY_7 55
|
|
33
|
+
#define LAM_KEY_8 56
|
|
34
|
+
#define LAM_KEY_9 57
|
|
35
|
+
#define LAM_KEY_SEMICOLON 59 /* ; */
|
|
36
|
+
#define LAM_KEY_EQUAL 61 /* = */
|
|
37
|
+
#define LAM_KEY_A 65
|
|
38
|
+
#define LAM_KEY_B 66
|
|
39
|
+
#define LAM_KEY_C 67
|
|
40
|
+
#define LAM_KEY_D 68
|
|
41
|
+
#define LAM_KEY_E 69
|
|
42
|
+
#define LAM_KEY_F 70
|
|
43
|
+
#define LAM_KEY_G 71
|
|
44
|
+
#define LAM_KEY_H 72
|
|
45
|
+
#define LAM_KEY_I 73
|
|
46
|
+
#define LAM_KEY_J 74
|
|
47
|
+
#define LAM_KEY_K 75
|
|
48
|
+
#define LAM_KEY_L 76
|
|
49
|
+
#define LAM_KEY_M 77
|
|
50
|
+
#define LAM_KEY_N 78
|
|
51
|
+
#define LAM_KEY_O 79
|
|
52
|
+
#define LAM_KEY_P 80
|
|
53
|
+
#define LAM_KEY_Q 81
|
|
54
|
+
#define LAM_KEY_R 82
|
|
55
|
+
#define LAM_KEY_S 83
|
|
56
|
+
#define LAM_KEY_T 84
|
|
57
|
+
#define LAM_KEY_U 85
|
|
58
|
+
#define LAM_KEY_V 86
|
|
59
|
+
#define LAM_KEY_W 87
|
|
60
|
+
#define LAM_KEY_X 88
|
|
61
|
+
#define LAM_KEY_Y 89
|
|
62
|
+
#define LAM_KEY_Z 90
|
|
63
|
+
#define LAM_KEY_LEFT_BRACKET 91 /* [ */
|
|
64
|
+
#define LAM_KEY_BACKSLASH 92 /* \ */
|
|
65
|
+
#define LAM_KEY_RIGHT_BRACKET 93 /* ] */
|
|
66
|
+
#define LAM_KEY_GRAVE_ACCENT 96 /* ` */
|
|
67
|
+
#define LAM_KEY_WORLD_1 161 /* non-US #1 */
|
|
68
|
+
#define LAM_KEY_WORLD_2 162 /* non-US #2 */
|
|
69
|
+
|
|
70
|
+
/* Function keys */
|
|
71
|
+
#define LAM_KEY_ESCAPE 256
|
|
72
|
+
#define LAM_KEY_ENTER 257
|
|
73
|
+
#define LAM_KEY_TAB 258
|
|
74
|
+
#define LAM_KEY_BACKSPACE 259
|
|
75
|
+
#define LAM_KEY_INSERT 260
|
|
76
|
+
#define LAM_KEY_DELETE 261
|
|
77
|
+
#define LAM_KEY_RIGHT 262
|
|
78
|
+
#define LAM_KEY_LEFT 263
|
|
79
|
+
#define LAM_KEY_DOWN 264
|
|
80
|
+
#define LAM_KEY_UP 265
|
|
81
|
+
#define LAM_KEY_PAGE_UP 266
|
|
82
|
+
#define LAM_KEY_PAGE_DOWN 267
|
|
83
|
+
#define LAM_KEY_HOME 268
|
|
84
|
+
#define LAM_KEY_END 269
|
|
85
|
+
#define LAM_KEY_CAPS_LOCK 280
|
|
86
|
+
#define LAM_KEY_SCROLL_LOCK 281
|
|
87
|
+
#define LAM_KEY_NUM_LOCK 282
|
|
88
|
+
#define LAM_KEY_PRINT_SCREEN 283
|
|
89
|
+
#define LAM_KEY_PAUSE 284
|
|
90
|
+
#define LAM_KEY_F1 290
|
|
91
|
+
#define LAM_KEY_F2 291
|
|
92
|
+
#define LAM_KEY_F3 292
|
|
93
|
+
#define LAM_KEY_F4 293
|
|
94
|
+
#define LAM_KEY_F5 294
|
|
95
|
+
#define LAM_KEY_F6 295
|
|
96
|
+
#define LAM_KEY_F7 296
|
|
97
|
+
#define LAM_KEY_F8 297
|
|
98
|
+
#define LAM_KEY_F9 298
|
|
99
|
+
#define LAM_KEY_F10 299
|
|
100
|
+
#define LAM_KEY_F11 300
|
|
101
|
+
#define LAM_KEY_F12 301
|
|
102
|
+
#define LAM_KEY_F13 302
|
|
103
|
+
#define LAM_KEY_F14 303
|
|
104
|
+
#define LAM_KEY_F15 304
|
|
105
|
+
#define LAM_KEY_F16 305
|
|
106
|
+
#define LAM_KEY_F17 306
|
|
107
|
+
#define LAM_KEY_F18 307
|
|
108
|
+
#define LAM_KEY_F19 308
|
|
109
|
+
#define LAM_KEY_F20 309
|
|
110
|
+
#define LAM_KEY_F21 310
|
|
111
|
+
#define LAM_KEY_F22 311
|
|
112
|
+
#define LAM_KEY_F23 312
|
|
113
|
+
#define LAM_KEY_F24 313
|
|
114
|
+
#define LAM_KEY_F25 314
|
|
115
|
+
#define LAM_KEY_KP_0 320
|
|
116
|
+
#define LAM_KEY_KP_1 321
|
|
117
|
+
#define LAM_KEY_KP_2 322
|
|
118
|
+
#define LAM_KEY_KP_3 323
|
|
119
|
+
#define LAM_KEY_KP_4 324
|
|
120
|
+
#define LAM_KEY_KP_5 325
|
|
121
|
+
#define LAM_KEY_KP_6 326
|
|
122
|
+
#define LAM_KEY_KP_7 327
|
|
123
|
+
#define LAM_KEY_KP_8 328
|
|
124
|
+
#define LAM_KEY_KP_9 329
|
|
125
|
+
#define LAM_KEY_KP_DECIMAL 330
|
|
126
|
+
#define LAM_KEY_KP_DIVIDE 331
|
|
127
|
+
#define LAM_KEY_KP_MULTIPLY 332
|
|
128
|
+
#define LAM_KEY_KP_SUBTRACT 333
|
|
129
|
+
#define LAM_KEY_KP_ADD 334
|
|
130
|
+
#define LAM_KEY_KP_ENTER 335
|
|
131
|
+
#define LAM_KEY_KP_EQUAL 336
|
|
132
|
+
#define LAM_KEY_LEFT_SHIFT 340
|
|
133
|
+
#define LAM_KEY_LEFT_CONTROL 341
|
|
134
|
+
#define LAM_KEY_LEFT_ALT 342
|
|
135
|
+
#define LAM_KEY_LEFT_SUPER 343
|
|
136
|
+
#define LAM_KEY_RIGHT_SHIFT 344
|
|
137
|
+
#define LAM_KEY_RIGHT_CONTROL 345
|
|
138
|
+
#define LAM_KEY_RIGHT_ALT 346
|
|
139
|
+
#define LAM_KEY_RIGHT_SUPER 347
|
|
140
|
+
#define LAM_KEY_MENU 348
|
|
141
|
+
|
|
142
|
+
#define LAM_KEY_LAST LAM_KEY_MENU
|
|
143
|
+
|
|
144
|
+
#define LAM_MOD_SHIFT 0x0001
|
|
145
|
+
#define LAM_MOD_CONTROL 0x0002
|
|
146
|
+
#define LAM_MOD_SUPER 0x0002
|
|
147
|
+
#define LAM_MOD_CAPS_LOCK 0x0010
|
|
148
|
+
#define LAM_MOD_NUM_LOCK 0x0020
|
|
149
|
+
|
|
150
|
+
#define LAM_MOUSE_BUTTON_1 0
|
|
151
|
+
#define LAM_MOUSE_BUTTON_2 1
|
|
152
|
+
#define LAM_MOUSE_BUTTON_3 2
|
|
153
|
+
#define LAM_MOUSE_BUTTON_4 3
|
|
154
|
+
#define LAM_MOUSE_BUTTON_5 4
|
|
155
|
+
#define LAM_MOUSE_BUTTON_6 5
|
|
156
|
+
#define LAM_MOUSE_BUTTON_7 6
|
|
157
|
+
#define LAM_MOUSE_BUTTON_8 7
|
|
158
|
+
#define LAM_MOUSE_BUTTON_LAST LAM_MOUSE_BUTTON_8
|
|
159
|
+
#define LAM_MOUSE_BUTTON_LEFT LAM_MOUSE_BUTTON_1
|
|
160
|
+
#define LAM_MOUSE_BUTTON_RIGHT LAM_MOUSE_BUTTON_2
|
|
161
|
+
#define LAM_MOUSE_BUTTON_MIDDLE LAM_MOUSE_BUTTON_3
|
|
162
|
+
|
|
163
|
+
#define LAM_JOYSTICK_1 0
|
|
164
|
+
#define LAM_JOYSTICK_2 1
|
|
165
|
+
#define LAM_JOYSTICK_3 2
|
|
166
|
+
#define LAM_JOYSTICK_4 3
|
|
167
|
+
#define LAM_JOYSTICK_5 4
|
|
168
|
+
#define LAM_JOYSTICK_6 5
|
|
169
|
+
#define LAM_JOYSTICK_7 6
|
|
170
|
+
#define LAM_JOYSTICK_8 7
|
|
171
|
+
#define LAM_JOYSTICK_9 8
|
|
172
|
+
#define LAM_JOYSTICK_10 9
|
|
173
|
+
#define LAM_JOYSTICK_11 10
|
|
174
|
+
#define LAM_JOYSTICK_12 11
|
|
175
|
+
#define LAM_JOYSTICK_13 12
|
|
176
|
+
#define LAM_JOYSTICK_14 13
|
|
177
|
+
#define LAM_JOYSTICK_15 14
|
|
178
|
+
#define LAM_JOYSTICK_16 15
|
|
179
|
+
#define LAM_JOYSTICK_LAST LAM_JOYSTICK_16
|
|
180
|
+
|
|
181
|
+
#define LAM_GAMEPAD_BUTTON_A 0
|
|
182
|
+
#define LAM_GAMEPAD_BUTTON_B 1
|
|
183
|
+
#define LAM_GAMEPAD_BUTTON_X 2
|
|
184
|
+
#define LAM_GAMEPAD_BUTTON_Y 3
|
|
185
|
+
#define LAM_GAMEPAD_BUTTON_LEFT_BUMPER 4
|
|
186
|
+
#define LAM_GAMEPAD_BUTTON_RIGHT_BUMPER 5
|
|
187
|
+
#define LAM_GAMEPAD_BUTTON_BACK 6
|
|
188
|
+
#define LAM_GAMEPAD_BUTTON_START 7
|
|
189
|
+
#define LAM_GAMEPAD_BUTTON_GUIDE 8
|
|
190
|
+
#define LAM_GAMEPAD_BUTTON_LEFT_THUMB 9
|
|
191
|
+
#define LAM_GAMEPAD_BUTTON_RIGHT_THUMB 10
|
|
192
|
+
#define LAM_GAMEPAD_BUTTON_DPAD_UP 11
|
|
193
|
+
#define LAM_GAMEPAD_BUTTON_DPAD_RIGHT 12
|
|
194
|
+
#define LAM_GAMEPAD_BUTTON_DPAD_DOWN 13
|
|
195
|
+
#define LAM_GAMEPAD_BUTTON_DPAD_LEFT 14
|
|
196
|
+
#define LAM_GAMEPAD_BUTTON_LAST LAM_GAMEPAD_BUTTON_DPAD_LEFT
|
|
197
|
+
|
|
198
|
+
#define LAM_GAMEPAD_BUTTON_CROSS LAM_GAMEPAD_BUTTON_A
|
|
199
|
+
#define LAM_GAMEPAD_BUTTON_CIRCLE LAM_GAMEPAD_BUTTON_B
|
|
200
|
+
#define LAM_GAMEPAD_BUTTON_SQUARE LAM_GAMEPAD_BUTTON_X
|
|
201
|
+
#define LAM_GAMEPAD_BUTTON_TRIANGLE LAM_GAMEPAD_BUTTON_Y
|
|
202
|
+
|
|
203
|
+
#define LAM_GAMEPAD_AXIS_LEFT_X 0
|
|
204
|
+
#define LAM_GAMEPAD_AXIS_LEFT_Y 1
|
|
205
|
+
#define LAM_GAMEPAD_AXIS_RIGHT_X 2
|
|
206
|
+
#define LAM_GAMEPAD_AXIS_RIGHT_Y 3
|
|
207
|
+
#define LAM_GAMEPAD_AXIS_LEFT_TRIGGER 4
|
|
208
|
+
#define LAM_GAMEPAD_AXIS_RIGHT_TRIGGER 5
|
|
209
|
+
#define LAM_GAMEPAD_AXIS_LAST LAM_GAMEPAD_AXIS_RIGHT_TRIGGER
|
|
210
|
+
|
|
211
|
+
#endif /* LAM_KEY_HEADER */
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#ifndef LAM_TM_H
|
|
2
|
+
#define LAM_TM_H
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file lam-tm.h
|
|
6
|
+
* @brief Public header for the liblamina tilemap system.
|
|
7
|
+
*
|
|
8
|
+
* Declares the API for managing and rendering
|
|
9
|
+
* 2D tilemaps in the liblamina rendering layer.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
/** @defgroup lam_tile_types liblamina tilemap types
|
|
19
|
+
* @brief Type definitions for tilemap handling.
|
|
20
|
+
* @{
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @brief Tilemap descriptor.
|
|
25
|
+
*
|
|
26
|
+
* Represents a subdivided texture atlas used
|
|
27
|
+
* for rendering multiple tiles from a single
|
|
28
|
+
* image reference.
|
|
29
|
+
*/
|
|
30
|
+
typedef struct {
|
|
31
|
+
unsigned img;
|
|
32
|
+
uint32_t w;
|
|
33
|
+
uint32_t h;
|
|
34
|
+
uint32_t nx;
|
|
35
|
+
uint32_t ny;
|
|
36
|
+
} lam_tm_t;
|
|
37
|
+
|
|
38
|
+
/** @} */
|
|
39
|
+
|
|
40
|
+
/** @defgroup lam_tile_core liblamina tilemap creation and access
|
|
41
|
+
* @brief Tilemap management functions.
|
|
42
|
+
* @{
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @brief Register a new tilemap.
|
|
47
|
+
*
|
|
48
|
+
* Divides the given image into fixed-size tiles.
|
|
49
|
+
*
|
|
50
|
+
* @param[in] img_ref Image reference (texture ID).
|
|
51
|
+
* @param[in] w Tile width.
|
|
52
|
+
* @param[in] h Tile height.
|
|
53
|
+
* @return Tilemap handle (tm_ref).
|
|
54
|
+
*/
|
|
55
|
+
uint32_t lam_tm_new(uint32_t img_ref,
|
|
56
|
+
uint32_t w,
|
|
57
|
+
uint32_t h);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @brief Retrieve a tilemap descriptor.
|
|
61
|
+
*
|
|
62
|
+
* @param[in] tm_ref Tilemap handle.
|
|
63
|
+
* @return Pointer to descriptor, or NULL if invalid.
|
|
64
|
+
*/
|
|
65
|
+
const lam_tm_t *lam_tm_get(uint32_t tm_ref);
|
|
66
|
+
|
|
67
|
+
/** @} */
|
|
68
|
+
|
|
69
|
+
/** @defgroup lam_tile_render liblamina tile rendering
|
|
70
|
+
* @brief Functions for drawing individual tiles.
|
|
71
|
+
* @{
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @brief Draw a single tile from a tilemap.
|
|
76
|
+
*
|
|
77
|
+
* @param[in] ref Tilemap handle.
|
|
78
|
+
* @param[in] idx Tile index (0-based).
|
|
79
|
+
* @param[in] x Destination X position.
|
|
80
|
+
* @param[in] y Destination Y position.
|
|
81
|
+
* @param[in] w Destination width.
|
|
82
|
+
* @param[in] h Destination height.
|
|
83
|
+
* @param[in] rx Optional crop offset X (source space).
|
|
84
|
+
* @param[in] ry Optional crop offset Y (source space).
|
|
85
|
+
*/
|
|
86
|
+
void lam_tile_draw(uint32_t ref,
|
|
87
|
+
uint32_t idx,
|
|
88
|
+
uint32_t x,
|
|
89
|
+
uint32_t y,
|
|
90
|
+
uint32_t w,
|
|
91
|
+
uint32_t h,
|
|
92
|
+
uint32_t rx,
|
|
93
|
+
uint32_t ry);
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @brief Render a complete 2D grid map from an array of tile indices.
|
|
97
|
+
*
|
|
98
|
+
* @param[in] ref Tilemap handle.
|
|
99
|
+
* @param[in] tiles Pointer to 2D array of tile indices (row-major, map_w * map_h entries).
|
|
100
|
+
* @param[in] map_w Width of map in tiles.
|
|
101
|
+
* @param[in] map_h Height of map in tiles.
|
|
102
|
+
* @param[in] start_x Destination X coordinate on screen in pixels.
|
|
103
|
+
* @param[in] start_y Destination Y coordinate on screen in pixels.
|
|
104
|
+
* @param[in] scale Integer scale multiplier for each tile (1 = 1x, 2 = 2x, etc.).
|
|
105
|
+
*/
|
|
106
|
+
void lam_tile_map_draw(uint32_t ref,
|
|
107
|
+
const uint16_t *tiles,
|
|
108
|
+
uint32_t map_w,
|
|
109
|
+
uint32_t map_h,
|
|
110
|
+
int32_t start_x,
|
|
111
|
+
int32_t start_y,
|
|
112
|
+
uint32_t scale);
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @brief Draw a single tile lying flat on the 3D ground plane (Z = elevation).
|
|
116
|
+
*
|
|
117
|
+
* @param[in] ref Tilemap handle.
|
|
118
|
+
* @param[in] idx Tile index (0-based).
|
|
119
|
+
* @param[in] x,y World coordinates of top-left corner on ground plane.
|
|
120
|
+
* @param[in] z Elevation (Z coordinate).
|
|
121
|
+
* @param[in] w,h Width and height of tile in world units.
|
|
122
|
+
*/
|
|
123
|
+
void lam_tile_draw_ground_3d(uint32_t ref,
|
|
124
|
+
uint32_t idx,
|
|
125
|
+
float x, float y, float z,
|
|
126
|
+
float w, float h);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @brief Draw a billboard sprite standing upright in 3D world space.
|
|
130
|
+
*
|
|
131
|
+
* @param[in] ref Tilemap handle.
|
|
132
|
+
* @param[in] idx Tile index (0-based).
|
|
133
|
+
* @param[in] x,y,z Anchor position in world coordinates (e.g. feet position).
|
|
134
|
+
* @param[in] w,h Sprite width and height in world units.
|
|
135
|
+
* @param[in] anchor_x Horizontal anchor (0.0 = left, 0.5 = center, 1.0 = right).
|
|
136
|
+
* @param[in] anchor_y Vertical anchor (0.0 = bottom/feet, 0.5 = center, 1.0 = top).
|
|
137
|
+
*/
|
|
138
|
+
void lam_tile_draw_billboard_3d(uint32_t ref,
|
|
139
|
+
uint32_t idx,
|
|
140
|
+
float x, float y, float z,
|
|
141
|
+
float w, float h,
|
|
142
|
+
float anchor_x, float anchor_y);
|
|
143
|
+
|
|
144
|
+
#ifdef __cplusplus
|
|
145
|
+
}
|
|
146
|
+
#endif
|
|
147
|
+
|
|
148
|
+
#endif /* LAM_TM_H */
|