annotate semicongine.nim @ 1436:cf0bae787044

add: squirrel hash
author sam <sam@basx.dev>
date Mon, 20 Jan 2025 23:12:30 +0700
parents b03d3d8524fc
children 3502e1efaeb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1427
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
1 import std/tables
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
2 import std/locks
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
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
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
7 from ./semicongine/rendering import initVulkan
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
8 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
9 import ./semicongine/loaders
1429
ab01c577d91c fix: some more import-stuff
sam <sam@basx.dev>
parents: 1428
diff changeset
10 import ./semicongine/images
ab01c577d91c fix: some more import-stuff
sam <sam@basx.dev>
parents: 1428
diff changeset
11 import ./semicongine/audio
1420
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
12
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
13 proc initEngine*(appName: string) =
1428
d16964858790 add: documentation comment
sam <sam@basx.dev>
parents: 1427
diff changeset
14 ## 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
15 engine_obj_internal = Engine()
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
16 engine_obj_internal.vulkan = initVulkan(appName)
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
17
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
18 # start audio
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
19 engine_obj_internal.mixer = createShared(Mixer)
1427
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
20 engine_obj_internal.mixer[] = Mixer()
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
21 engine_obj_internal.mixer[].tracks[""] = Track(level: 1)
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
22 engine_obj_internal.mixer[].lock.initLock()
1420
6f81a41603d9 did: start working on big restructuring
sam <sam@basx.dev>
parents: 1362
diff changeset
23 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
24
1428
d16964858790 add: documentation comment
sam <sam@basx.dev>
parents: 1427
diff changeset
25 # start background resource loaders
1423
3b8a736c45a7 did: put almost all global state into a single struct
sam <sam@basx.dev>
parents: 1420
diff changeset
26 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
27 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
28 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
29 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
30 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
31 engine_obj_internal.audioLoader = initBackgroundLoader(loadAudio)
1425
0daed956cf9e add: function to set engine
sam <sam@basx.dev>
parents: 1423
diff changeset
32
1427
676fc13685a9 did: restructure files and imports
sam <sam@basx.dev>
parents: 1425
diff changeset
33 engine_obj_internal.initialized = true