Mercurial > games > semicongine
annotate semicongine.nim @ 1428:d16964858790
add: documentation comment
author | sam <sam@basx.dev> |
---|---|
date | Sat, 11 Jan 2025 14:15:29 +0700 |
parents | 676fc13685a9 |
children | ab01c577d91c |
rev | line source |
---|---|
1427 | 1 import std/tables |
2 import std/locks | |
3 | |
1298
1feaa8a97acf
did: halfway complete refactoring to move from all-include to some-include+imports, no API changes
sam <sam@basx.dev>
parents:
1277
diff
changeset
|
4 import ./semicongine/core |
1feaa8a97acf
did: halfway complete refactoring to move from all-include to some-include+imports, no API changes
sam <sam@basx.dev>
parents:
1277
diff
changeset
|
5 export core |
1feaa8a97acf
did: halfway complete refactoring to move from all-include to some-include+imports, no API changes
sam <sam@basx.dev>
parents:
1277
diff
changeset
|
6 |
1427 | 7 from ./semicongine/rendering import initVulkan |
8 from ./semicongine/audio import audioWorker | |
9 from ./semicongine/background_loaders import initBackgroundLoader | |
1362
3dbf77ca78b9
did: refactor loading, adding threaded background loading (still missing stuff though)
sam <sam@basx.dev>
parents:
1299
diff
changeset
|
10 import ./semicongine/loaders |
1420
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
11 |
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
12 proc initEngine*(appName: string) = |
1428 | 13 ## Required to be called before most features of the engine can be used |
1420
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
14 engine_obj_internal = Engine() |
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
15 engine_obj_internal.vulkan = initVulkan(appName) |
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
16 |
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
17 # start audio |
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
18 engine_obj_internal.mixer = createShared(Mixer) |
1427 | 19 engine_obj_internal.mixer[] = Mixer() |
20 engine_obj_internal.mixer[].tracks[""] = Track(level: 1) | |
21 engine_obj_internal.mixer[].lock.initLock() | |
1420
6f81a41603d9
did: start working on big restructuring
sam <sam@basx.dev>
parents:
1362
diff
changeset
|
22 engine_obj_internal.audiothread.createThread(audioWorker, engine_obj_internal.mixer) |
1423
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
23 |
1428 | 24 # start background resource loaders |
1423
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
25 engine_obj_internal.rawLoader = initBackgroundLoader(loadBytes) |
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
26 engine_obj_internal.jsonLoader = initBackgroundLoader(loadJson) |
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
27 engine_obj_internal.configLoader = initBackgroundLoader(loadConfig) |
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
28 engine_obj_internal.grayImageLoader = initBackgroundLoader(loadImage[Gray]) |
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
29 engine_obj_internal.imageLoader = initBackgroundLoader(loadImage[BGRA]) |
3b8a736c45a7
did: put almost all global state into a single struct
sam <sam@basx.dev>
parents:
1420
diff
changeset
|
30 engine_obj_internal.audioLoader = initBackgroundLoader(loadAudio) |
1425 | 31 |
1427 | 32 engine_obj_internal.initialized = true |