Mercurial > games > semicongine
view semicongine.nim @ 1439:3502e1efaeb4 main
fix: initial mixer music set to 0
author | sam <sam@basx.dev> |
---|---|
date | Sat, 15 Feb 2025 12:11:41 +0700 |
parents | b03d3d8524fc |
children |
line wrap: on
line source
import std/tables import std/locks import ./semicongine/core export core from ./semicongine/rendering import initVulkan from ./semicongine/background_loaders import initBackgroundLoader import ./semicongine/loaders import ./semicongine/images import ./semicongine/audio proc initEngine*(appName: string) = ## Required to be called before most features of the engine can be used engine_obj_internal = Engine() engine_obj_internal.vulkan = initVulkan(appName) # start audio engine_obj_internal.mixer = createShared(Mixer) engine_obj_internal.mixer[] = Mixer() engine_obj_internal.mixer[].level = 1 engine_obj_internal.mixer[].tracks[""] = Track(level: 1) engine_obj_internal.mixer[].lock.initLock() engine_obj_internal.audiothread.createThread(audioWorker, engine_obj_internal.mixer) # start background resource loaders engine_obj_internal.rawLoader = initBackgroundLoader(loadBytes) engine_obj_internal.jsonLoader = initBackgroundLoader(loadJson) engine_obj_internal.configLoader = initBackgroundLoader(loadConfig) engine_obj_internal.grayImageLoader = initBackgroundLoader(loadImage[Gray]) engine_obj_internal.imageLoader = initBackgroundLoader(loadImage[BGRA]) engine_obj_internal.audioLoader = initBackgroundLoader(loadAudio) engine_obj_internal.initialized = true