gitextract_o983gujm/ ├── .editorconfig ├── .github/ │ ├── actions/ │ │ ├── sample/ │ │ │ └── action.yml │ │ └── soluna/ │ │ └── action.yml │ └── workflows/ │ ├── nightly.yml │ └── pages.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── Makefile ├── README.md ├── asset/ │ ├── sounds.dl │ └── sprites.dl ├── clibs/ │ ├── datalist/ │ │ └── make.lua │ ├── ltask/ │ │ └── make.lua │ ├── lua/ │ │ └── make.lua │ ├── sample/ │ │ └── make.lua │ ├── soluna/ │ │ ├── compile_lua.lua │ │ ├── compile_shader.lua │ │ ├── make.lua │ │ ├── runlua.lua │ │ └── shader2c.lua │ ├── yoga/ │ │ └── make.lua │ └── zip/ │ └── make.lua ├── docs/ │ ├── app.lua │ ├── args.lua │ ├── callback.lua │ ├── coroutine.lua │ ├── crypt.lua │ ├── datalist.lua │ ├── file.lua │ ├── font.lua │ ├── font_system.lua │ ├── image.lua │ ├── layout.lua │ ├── lfs.lua │ ├── material_mask.lua │ ├── material_quad.lua │ ├── material_text.lua │ ├── soluna.lua │ ├── text.lua │ ├── url.lua │ └── zip.lua ├── extlua/ │ ├── extlua.c │ ├── extlua.temp.c │ ├── extlua_impl.c │ ├── extlua_impl.temp.c │ ├── extlua_sample.c │ ├── gen.lua │ ├── gen_sokol.lua │ ├── gen_soluna.lua │ ├── perspective_quad.glsl │ ├── sokolapi.c │ ├── sokolapi.temp.c │ ├── sokolapi_impl.c │ ├── sokolapi_impl.temp.c │ ├── solunaapi.c │ ├── solunaapi.h │ ├── solunaapi.h.temp │ ├── solunaapi.temp.c │ ├── solunaapi_impl.c │ └── solunaapi_impl.temp.c ├── make.lua ├── script/ │ ├── act.lua │ ├── act_targets.lua │ ├── compile_commands.lua │ ├── datalist2c.lua │ ├── hashversion.lua │ └── lua2c.lua ├── src/ │ ├── appevent.h │ ├── audio.c │ ├── batch.c │ ├── batch.h │ ├── blit.glsl │ ├── colorquad.glsl │ ├── data/ │ │ └── settingdefault.dl │ ├── drawmgr.c │ ├── embedlua.c │ ├── entry.c │ ├── extapi.c │ ├── extapi_types.h │ ├── extapi_types.temp.h │ ├── external.c │ ├── file.c │ ├── font.c │ ├── font_define.h │ ├── font_manager.c │ ├── font_manager.h │ ├── font_system.c │ ├── gamepad.c │ ├── image.c │ ├── ime_char_filter.h │ ├── ime_state.h │ ├── lcrypt.c │ ├── lfs.c │ ├── loginfo.h │ ├── lsha1.c │ ├── luabuffer.h │ ├── lualib/ │ │ ├── coroutine.lua │ │ ├── fontmgr.lua │ │ ├── icon.lua │ │ ├── initsetting.lua │ │ ├── layout.lua │ │ ├── main.lua │ │ ├── packageloader.lua │ │ ├── print_r.lua │ │ ├── soluna.lua │ │ ├── spritebundle.lua │ │ ├── text.lua │ │ └── util.lua │ ├── luamods.c │ ├── luayoga.c │ ├── luazip.c │ ├── maskquad.glsl │ ├── material/ │ │ ├── matdefault.lua │ │ ├── matmask.lua │ │ ├── matquad.lua │ │ └── mattext.lua │ ├── material_blit.c │ ├── material_default.c │ ├── material_mask.c │ ├── material_quad.c │ ├── material_text.c │ ├── material_util.c │ ├── material_util.h │ ├── mutex.h │ ├── openlibs.c │ ├── openurl.c │ ├── platform/ │ │ ├── linux/ │ │ │ ├── soluna_linux_ime.c │ │ │ └── soluna_linux_ime.h │ │ ├── macos/ │ │ │ ├── soluna_macos_ime.h │ │ │ └── soluna_macos_ime.m │ │ ├── wasm/ │ │ │ ├── soluna_ime.js │ │ │ ├── soluna_openurl.js │ │ │ └── soluna_wasm_ime.h │ │ └── windows/ │ │ ├── soluna_windows_ime.c │ │ └── soluna_windows_ime.h │ ├── render.c │ ├── render_bindings.c │ ├── render_bindings.h │ ├── render_uniform.c │ ├── sdfimage.c │ ├── sdftext.glsl │ ├── service/ │ │ ├── audio.lua │ │ ├── gamepad.lua │ │ ├── loader.lua │ │ ├── log.lua │ │ ├── render.lua │ │ ├── settings.lua │ │ └── start.lua │ ├── sprite_submit.h │ ├── spritemgr.c │ ├── spritemgr.h │ ├── srbuffer.c │ ├── srbuffer.h │ ├── texquad.glsl │ ├── tmpbuffer.h │ ├── transform.c │ ├── transform.h │ ├── truetype.c │ ├── truetype.h │ ├── version.h │ ├── winfile.c │ ├── writelog.c │ ├── yogaone.cpp │ └── zipreader.h ├── test/ │ ├── audio.game │ ├── audio.lua │ ├── bundle.lua │ ├── extlua/ │ │ └── material/ │ │ └── perspective_quad.lua │ ├── extlua.game │ ├── extlua.lua │ ├── file.lua │ ├── hello.game │ ├── hello.lua │ ├── icon.lua │ ├── image.lua │ ├── ime.lua │ ├── intersect.lua │ ├── layout.lua │ ├── mask.lua │ ├── mtex.game │ ├── mtex.lua │ ├── setting.lua │ ├── sprite.lua │ ├── spritepack.lua │ ├── test.lua │ ├── text.lua │ ├── version.lua │ ├── window.game │ └── window.lua └── website/ ├── README.md ├── README.zh-CN.md ├── astro.config.mjs ├── eslint.config.mjs ├── package.json ├── packages/ │ └── astro-theme-soluna/ │ ├── package.json │ └── src/ │ ├── client/ │ │ └── play.ts │ ├── components/ │ │ ├── Footer.astro │ │ ├── Hero.astro │ │ ├── Menubar.astro │ │ ├── Nav.astro │ │ ├── PlainList.astro │ │ ├── Section.astro │ │ ├── docs/ │ │ │ └── DocsPage.astro │ │ └── examples/ │ │ ├── ExampleListPage.astro │ │ └── ExamplePlayPage.astro │ ├── layouts/ │ │ └── BaseLayout.astro │ └── styles/ │ └── theme.css ├── pnpm-workspace.yaml ├── scripts/ │ └── prepare-runtime.mjs ├── src/ │ ├── content.config.ts │ ├── lib/ │ │ ├── content.ts │ │ └── readme.ts │ └── pages/ │ ├── docs/ │ │ └── index.astro │ ├── examples/ │ │ ├── [id].astro │ │ └── index.astro │ └── index.astro └── tsconfig.json