mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-27 01:13:13 +08:00
more c++ bootstrap refactoring
This commit is contained in:
parent
c73793c2e7
commit
3f53c70beb
@ -3995,50 +3995,50 @@
|
||||
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
|
||||
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
|
||||
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/10/4a/ffe015cc2ebd47d50975be3eeb0e",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/cb/d7/75c584de816b729e6c3a9f736c4e",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/12/19/5845a35b791d8c7fdc0961857d0a",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/39/d8/2be8c0a549de0e65f31c5ad77152",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/87/6b/680b1c0ac793a8cd136d92af70f6",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/20/57/4c1bbeda1a616da1797b86c1bd61",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1d/5d/ad1529c4eb1f55fdde0eb0c20490",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ee/be/588cc300939f4b3f696089297418",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/22/b5/242086174808668e27b1959f4378",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0f/8a/ce4e2545160c97e46ac40c3cad5a",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ef/9b/aceebec46e3bdbfb48c851fffd84",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c6/2e/cb2d5cadd82a3dd5a218d9b00b1f",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/cc/7d/8cfdc4cdaa0f746c38c95cc2846c",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/8b/39/3ca21bc68eb05e8a0be3b9616de4",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1c/be/c6a5f5fdb8bd179ff2ad3ebda239",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/f4/0d34c518ae2fee1c3c99c00aaf7f",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/c5/ac/8a25d9a65fe146e1b461cff8d0b1",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7c/6d/5fe242ad6afc646aea1405f9d3db",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/41/51/9bbbc5007870d145b1ab4ca28c1e",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/56/3a/1c798b5ac4f042af6221605a45c7",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ec/2a/4d3ceb7b285b9a711cf7ca0ec0f7",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d1/d9/66f7e4526e733ca085c2eb96877f",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b8/56/ee30665ae62ca08660845c9730c0",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e1/82/ce530098283734eb34d0a78682a8",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/66/e1/6aa3c3de153a5a50a06e35fe9134",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7f/e5/2acde40bf16c08d037bfce2b502c",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b0/cb/300a523ef70690dc9b7b4fd91f21",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/21/50/c4cfe81e571b40623ccd72fe77a6",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cb/6a/88729063e5f9857da695c4fe906d",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/93/a7/6ba2b7509dbac96b43d5ebd51edb",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/92/7c/78aa7dfb1f2aea8c984aa666cabc",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c2/d0/65f8cc8676c3a31e6f02dcd79bf2",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/39/39/84895810a54817053bbbc1c6851e",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7c/21/578d14c74a46a3ddea3880964a73",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b2/e3/b529b59785149007257c47ffddf4",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b4/d6/7c5d71b41ee7d6373cb037ccb3ac",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/75/a6/82f3f6dd8dcb6cda1906a5c3f88b",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/c8/3b/232c5613ebb145cf2831a44c4a22",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/e1/6e/5df594275e30b61b9506b04a2bb4",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/70/4e/8b2fc5255a57055b7d6b5a357c9a",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/60/11/16f18674b12113f43cbe39027d19",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/f9/3b/6cca025ed2ec433facf6ceb4b6ec",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/af/a6/93fd32df5427917bf89a2ca4328e",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/58/a0/25ca5194d30f2449e85fe4fab215",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a1/66/39cac09bf6b06e56c530835eb181",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/2b/cb/6dd8bdf3a077d3aa761f9b8fbd63",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b5/e9/5c0a89d56a6e483229da89281796",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fe/f9/c33d7708c6186bfd96d5e47955a3",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/73/5b/93a06dabd24015bb45150bf9b504",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/cb/e0/a0da487b59ded7b3906f14bfa720",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d2/fe/bace2357c3c17373a474bb4c2550",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bb/1c/8f71bc4449cd828817e7eb5e685e",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/59/c0/562d9fdf5769951cd04f4389f0b8",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0a/7d/8a7148a088f5b2c7c1fa770368a9",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d8/d3/b107c0c0564b59544af598ebb975",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c2/10/e29b058f51d202b47315a78e9426",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/25/fd41d552ce3c4d3b6097ddf38575",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/68/35/afcdb16cb02aee02aefecda09c18",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/89/a6/ed6fb097d9f5b7bf213750399b09",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c6/e0/ac51274e398c2d4c9ca96918ff24",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/83/46/3a7a9981de261f0ade01976d5ff7",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a4/a9/0cfdc1a7499515d9ae1742a1556d",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/cd/9b/2b5530a52e1da3912f2b89f2de83",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/24/32/c583f30ff2e5f77c02e1716033b8",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/26/1d/c05986ea5543313a3d9ad8f87551",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a9/30/62c8fa6369762561e87708d625ae",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/32/e2/27313549815bc9201818b4db6c10",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/48/67/bac46275cec3dbdbee7d4c698406",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/13/37/b2a85900f3d5f518cc7e67151282",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7e/4f/2bc692ccdcb53a278ad9b06ddbf1",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/12/6e9a96f48a7af39f526dcd41ebce",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8f/f3/deee23add01a2c2d8bb4b6197366",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/83/4d/8bdc0827cf90d2cd09e56a1846ed",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4a/55/b93f1eae564c146ca60f1a23b915",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e7/fc/58cd588c4aecd56e1ef2bba7b11d",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/21/83/f5bcb13224fec91b6139b7ae83ed",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/69/1a/eb5f3c85fc8f8194cc96b19714b3",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/27/75/a18262f80729191921e12da1b2dc",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4e/a5/7144c121faf50b2e6cf1db40e281",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/29/08/889f9f0cbd89b692cbcdc0dad96c",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/96/8e/6da028cf907b53fa621cf0275352",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/c3/81/6591a6f11570c598e5dee0d58586",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/ee/f9/e0c13708771197ee7f41db988d19",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/a2/66/c5433ea1cbd812a532d23895379d",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/c9/21/154dae08aceb0c162c1ba9580ceb",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/74/c9/fd45708e613a27dcf3782b3d9dfe",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/e1/8e/f5a16f655ae1f2b075e80fb3a981",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/02/73/2dd954ea8a85a542ce900047ab6c",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/7d/3e/229a581cb2454ed856f1d8b564a7",
|
||||
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/98/12/571b2160d69d42580e8f31fa6a8d"
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
### 1.7.7 (build 20823, api 7, 2022-09-12)
|
||||
### 1.7.7 (build 20825, api 7, 2022-09-12)
|
||||
- Added `ba.app.meta.load_exported_classes()` for loading classes discovered by the meta subsystem cleanly in a background thread.
|
||||
- Improved logging of missing playlist game types.
|
||||
- Some ba.Lstr functionality can now be used in background threads.
|
||||
|
||||
@ -38,7 +38,7 @@ def bootstrap() -> None:
|
||||
|
||||
# Give a soft warning if we're being used with a different binary
|
||||
# version than we expect.
|
||||
expected_build = 20823
|
||||
expected_build = 20825
|
||||
running_build: int = env['build_number']
|
||||
if running_build != expected_build:
|
||||
print(
|
||||
|
||||
@ -484,8 +484,6 @@ add_executable(ballisticacore
|
||||
${BA_SRC_ROOT}/ballistica/input/input.h
|
||||
${BA_SRC_ROOT}/ballistica/input/remote_app.cc
|
||||
${BA_SRC_ROOT}/ballistica/input/remote_app.h
|
||||
${BA_SRC_ROOT}/ballistica/input/std_input_module.cc
|
||||
${BA_SRC_ROOT}/ballistica/input/std_input_module.h
|
||||
${BA_SRC_ROOT}/ballistica/internal/app_internal.h
|
||||
${BA_SRC_ROOT}/ballistica/math/matrix44f.cc
|
||||
${BA_SRC_ROOT}/ballistica/math/matrix44f.h
|
||||
@ -516,6 +514,8 @@ add_executable(ballisticacore
|
||||
${BA_SRC_ROOT}/ballistica/platform/platform.h
|
||||
${BA_SRC_ROOT}/ballistica/platform/sdl/sdl_app.cc
|
||||
${BA_SRC_ROOT}/ballistica/platform/sdl/sdl_app.h
|
||||
${BA_SRC_ROOT}/ballistica/platform/stdio_console.cc
|
||||
${BA_SRC_ROOT}/ballistica/platform/stdio_console.h
|
||||
${BA_SRC_ROOT}/ballistica/platform/windows/platform_windows.cc
|
||||
${BA_SRC_ROOT}/ballistica/platform/windows/platform_windows.h
|
||||
${BA_SRC_ROOT}/ballistica/python/class/python_class.cc
|
||||
|
||||
@ -475,8 +475,6 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\input.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\remote_app.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
|
||||
@ -507,6 +505,8 @@
|
||||
<ClInclude Include="..\..\src\ballistica\platform\platform.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\sdl\sdl_app.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\sdl\sdl_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\stdio_console.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\stdio_console.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\windows\platform_windows.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\windows\platform_windows.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\python\class\python_class.cc" />
|
||||
|
||||
@ -859,12 +859,6 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h">
|
||||
<Filter>ballistica\internal</Filter>
|
||||
</ClInclude>
|
||||
@ -955,6 +949,12 @@
|
||||
<ClInclude Include="..\..\src\ballistica\platform\sdl\sdl_app.h">
|
||||
<Filter>ballistica\platform\sdl</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\platform\stdio_console.cc">
|
||||
<Filter>ballistica\platform</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\..\src\ballistica\platform\stdio_console.h">
|
||||
<Filter>ballistica\platform</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\platform\windows\platform_windows.cc">
|
||||
<Filter>ballistica\platform\windows</Filter>
|
||||
</ClCompile>
|
||||
|
||||
@ -470,8 +470,6 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\input.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\remote_app.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
|
||||
@ -502,6 +500,8 @@
|
||||
<ClInclude Include="..\..\src\ballistica\platform\platform.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\sdl\sdl_app.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\sdl\sdl_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\stdio_console.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\stdio_console.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\platform\windows\platform_windows.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\platform\windows\platform_windows.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\python\class\python_class.cc" />
|
||||
|
||||
@ -859,12 +859,6 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h">
|
||||
<Filter>ballistica\internal</Filter>
|
||||
</ClInclude>
|
||||
@ -955,6 +949,12 @@
|
||||
<ClInclude Include="..\..\src\ballistica\platform\sdl\sdl_app.h">
|
||||
<Filter>ballistica\platform\sdl</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\platform\stdio_console.cc">
|
||||
<Filter>ballistica\platform</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\..\src\ballistica\platform\stdio_console.h">
|
||||
<Filter>ballistica\platform</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\platform\windows\platform_windows.cc">
|
||||
<Filter>ballistica\platform\windows</Filter>
|
||||
</ClCompile>
|
||||
|
||||
@ -18,20 +18,30 @@ namespace ballistica {
|
||||
|
||||
AppFlavor::AppFlavor(Thread* thread)
|
||||
: thread_(thread), stress_test_(std::make_unique<StressTest>()) {
|
||||
// assert(g_app_flavor == nullptr);
|
||||
// g_app_flavor = this;
|
||||
|
||||
// We modify some app behavior when run under the server manager.
|
||||
auto* envval = getenv("BA_SERVER_WRAPPER_MANAGED");
|
||||
server_wrapper_managed_ = (envval && strcmp(envval, "1") == 0);
|
||||
}
|
||||
|
||||
void AppFlavor::PostInit() {
|
||||
// If we've got a nice themed hardware cursor, show it.
|
||||
// Otherwise, hide the hardware cursor; we'll draw it in software.
|
||||
// (need to run this in postinit because SDL/etc. may not be inited yet
|
||||
// as of AppFlavor::AppFlavor()).
|
||||
g_platform->SetHardwareCursorVisible(g_buildconfig.hardware_cursor());
|
||||
// Sanity check: make sure asserts are stripped out of release builds
|
||||
// (NDEBUG should do this).
|
||||
#if !BA_DEBUG_BUILD
|
||||
#ifndef NDEBUG
|
||||
#error Expected NDEBUG to be defined for release builds.
|
||||
#endif // NDEBUG
|
||||
assert(true);
|
||||
#endif // !BA_DEBUG_BUILD
|
||||
|
||||
g_app->user_agent_string = g_platform->GetUserAgentString();
|
||||
|
||||
// Figure out where our data is and chdir there.
|
||||
g_platform->SetupDataDirectory();
|
||||
|
||||
// Run these just to make sure these dirs exist.
|
||||
// (otherwise they might not get made if nothing writes to them).
|
||||
g_platform->GetConfigDirectory();
|
||||
g_platform->GetUserPythonDirectory();
|
||||
}
|
||||
|
||||
auto AppFlavor::ManagesEventLoop() const -> bool {
|
||||
@ -357,10 +367,28 @@ void AppFlavor::PushResetAchievementsCall() {
|
||||
thread()->PushCall([] { g_platform->ResetAchievements(); });
|
||||
}
|
||||
|
||||
void AppFlavor::OnBootstrapComplete() {
|
||||
void AppFlavor::OnAppStart() {
|
||||
assert(InMainThread());
|
||||
assert(g_input);
|
||||
|
||||
// If we're running in a terminal, print some info.
|
||||
if (g_platform->is_stdin_a_terminal()) {
|
||||
if (g_buildconfig.headless_build()) {
|
||||
printf("BallisticaCore Headless %s build %d.\n", kAppVersion,
|
||||
kAppBuildNumber);
|
||||
fflush(stdout);
|
||||
} else {
|
||||
printf("BallisticaCore %s build %d.\n", kAppVersion, kAppBuildNumber);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
|
||||
// If we've got a nice themed hardware cursor, show it.
|
||||
// Otherwise, hide the hardware cursor; we'll draw it in software.
|
||||
// (need to run this in postinit because SDL/etc. may not be inited yet
|
||||
// as of AppFlavor::AppFlavor()).
|
||||
g_platform->SetHardwareCursorVisible(g_buildconfig.hardware_cursor());
|
||||
|
||||
if (!HeadlessMode()) {
|
||||
// On desktop systems we just assume keyboard input exists and add it
|
||||
// immediately.
|
||||
|
||||
@ -93,7 +93,7 @@ class AppFlavor {
|
||||
return server_wrapper_managed_;
|
||||
}
|
||||
|
||||
virtual auto OnBootstrapComplete() -> void;
|
||||
virtual auto OnAppStart() -> void;
|
||||
|
||||
// Deferred calls that can be made from other threads.
|
||||
|
||||
|
||||
@ -12,11 +12,7 @@
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
AssetsServer::AssetsServer()
|
||||
: writing_replay_(false),
|
||||
replay_message_bytes_(0),
|
||||
replays_broken_(false),
|
||||
replay_out_file_(nullptr) {
|
||||
AssetsServer::AssetsServer() {
|
||||
// We're a singleton; make sure we don't already exist.
|
||||
assert(g_assets_server == nullptr);
|
||||
|
||||
@ -25,7 +21,7 @@ AssetsServer::AssetsServer()
|
||||
g_app->pausable_threads.push_back(thread_);
|
||||
}
|
||||
|
||||
auto AssetsServer::Start() -> void {
|
||||
auto AssetsServer::OnAppStart() -> void {
|
||||
thread_->PushCallSynchronous([this] { StartInThread(); });
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ namespace ballistica {
|
||||
class AssetsServer {
|
||||
public:
|
||||
AssetsServer();
|
||||
auto Start() -> void;
|
||||
auto OnAppStart() -> void;
|
||||
auto PushBeginWriteReplayCall() -> void;
|
||||
auto PushEndWriteReplayCall() -> void;
|
||||
auto PushAddMessageToReplayCall(const std::vector<uint8_t>& data) -> void;
|
||||
|
||||
@ -330,7 +330,7 @@ AudioServer::AudioServer() : impl_{new AudioServer::Impl()} {
|
||||
g_app->pausable_threads.push_back(thread_);
|
||||
}
|
||||
|
||||
auto AudioServer::Start() -> void {
|
||||
auto AudioServer::OnAppStart() -> void {
|
||||
thread_->PushCallSynchronous([this] { StartInThread(); });
|
||||
}
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ class AudioServer {
|
||||
}
|
||||
|
||||
AudioServer();
|
||||
auto Start() -> void;
|
||||
auto OnAppStart() -> void;
|
||||
|
||||
auto PushSetVolumesCall(float music_volume, float sound_volume) -> void;
|
||||
auto PushSetSoundPitchCall(float val) -> void;
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
#include "ballistica/networking/network_writer.h"
|
||||
#include "ballistica/networking/networking.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
#include "ballistica/platform/stdio_console.h"
|
||||
#include "ballistica/python/python.h"
|
||||
#include "ballistica/scene/scene.h"
|
||||
#include "ballistica/ui/ui.h"
|
||||
@ -31,7 +32,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20823;
|
||||
const int kAppBuildNumber = 20825;
|
||||
const char* kAppVersion = "1.7.7";
|
||||
|
||||
// Our standalone globals.
|
||||
@ -61,7 +62,7 @@ NetworkReader* g_network_reader{};
|
||||
NetworkWriter* g_network_writer{};
|
||||
Platform* g_platform{};
|
||||
Python* g_python{};
|
||||
StdInputModule* g_std_input_module{};
|
||||
StdioConsole* g_stdio_console{};
|
||||
TextGraphics* g_text_graphics{};
|
||||
UI* g_ui{};
|
||||
Utils* g_utils{};
|
||||
@ -70,9 +71,9 @@ Utils* g_utils{};
|
||||
// 1: All threads and globals are created and provisioned. Everything above
|
||||
// should exist at the end of this step (if it is going to exist).
|
||||
// Threads should not be talking to each other yet at this point.
|
||||
// 2: The system is set in motion. Game thread is told to load/apply the config.
|
||||
// This event kicks off an initial-screen-creation message sent to the
|
||||
// graphics-server thread. Other systems are informed that bootstrapping
|
||||
// 2: The system is set in motion. The logic thread is told to load/apply the
|
||||
// config. This event kicks off an initial-screen-creation message sent to
|
||||
// the graphics-server thread. Other systems are informed that bootstrapping
|
||||
// is complete and that they are free to talk to each other. Initial
|
||||
// input-devices are added, asset loads can begin (at least ones not
|
||||
// dependent on the screen/renderer), etc.
|
||||
@ -97,8 +98,8 @@ auto BallisticaMain(int argc, char** argv) -> int {
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
// Absolute bare-bones basics.
|
||||
g_app = new App(argc, argv);
|
||||
g_platform = Platform::Create();
|
||||
g_app = new App(argc, argv);
|
||||
|
||||
// Create a Thread wrapper around the current (main) thread.
|
||||
g_main_thread = new Thread(ThreadIdentifier::kMain, ThreadType::kMain);
|
||||
@ -134,13 +135,9 @@ auto BallisticaMain(int argc, char** argv) -> int {
|
||||
g_bg_dynamics = new BGDynamics();
|
||||
g_bg_dynamics_server = new BGDynamicsServer();
|
||||
}
|
||||
|
||||
// FIXME - move this later but need to init Python earlier then.
|
||||
g_game->Start();
|
||||
|
||||
// NOTE TO SELF: this starts reading stdin and py-init hangs if we do
|
||||
// it after here.
|
||||
g_platform->CreateAuxiliaryModules();
|
||||
if (g_buildconfig.enable_stdio_console()) {
|
||||
g_stdio_console = new StdioConsole();
|
||||
}
|
||||
|
||||
// Ok at this point we can be considered up-and-running.
|
||||
g_app->is_bootstrapped = true;
|
||||
@ -149,14 +146,14 @@ auto BallisticaMain(int argc, char** argv) -> int {
|
||||
// Phase 2: Set things in motion.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
g_audio_server->Start();
|
||||
g_assets_server->Start();
|
||||
|
||||
// Let the app and platform do whatever else it wants here such as adding
|
||||
// initial input devices/etc.
|
||||
g_app_flavor->OnBootstrapComplete();
|
||||
g_platform->OnBootstrapComplete();
|
||||
|
||||
g_game->OnAppStart();
|
||||
g_audio_server->OnAppStart();
|
||||
g_assets_server->OnAppStart();
|
||||
g_platform->OnAppStart();
|
||||
g_app_flavor->OnAppStart();
|
||||
if (g_stdio_console) {
|
||||
g_stdio_console->OnAppStart();
|
||||
}
|
||||
// Ok; now that we're bootstrapped, tell the game thread to read and apply
|
||||
// the config which should kick off the real action.
|
||||
g_game->PushApplyConfigCall();
|
||||
|
||||
@ -125,7 +125,7 @@ extern NetworkReader* g_network_reader;
|
||||
extern NetworkWriter* g_network_writer;
|
||||
extern Platform* g_platform;
|
||||
extern Python* g_python;
|
||||
extern StdInputModule* g_std_input_module;
|
||||
extern StdioConsole* g_stdio_console;
|
||||
extern TextGraphics* g_text_graphics;
|
||||
extern UI* g_ui;
|
||||
extern Utils* g_utils;
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
#define BA_ENABLE_EXECINFO_BACKTRACES 1
|
||||
|
||||
// Allow stdin commands too.
|
||||
#define BA_USE_STDIN_THREAD 1
|
||||
#define BA_ENABLE_STDIO_CONSOLE 1
|
||||
|
||||
#define BA_DEFINE_MAIN 1
|
||||
|
||||
|
||||
@ -122,8 +122,8 @@ namespace ballistica {
|
||||
#error platform string undefined
|
||||
#endif
|
||||
|
||||
#ifndef BA_USE_STDIN_THREAD
|
||||
#define BA_USE_STDIN_THREAD 0
|
||||
#ifndef BA_ENABLE_STDIO_CONSOLE
|
||||
#define BA_ENABLE_STDIO_CONSOLE 0
|
||||
#endif
|
||||
|
||||
#ifndef BA_HARDWARE_CURSOR
|
||||
@ -240,7 +240,9 @@ class BuildConfig {
|
||||
|
||||
bool use_store_kit() const { return EXPBOOL_(BA_USE_STORE_KIT); }
|
||||
bool use_game_center() const { return EXPBOOL_(BA_USE_GAME_CENTER); }
|
||||
bool use_stdin_thread() const { return EXPBOOL_(BA_USE_STDIN_THREAD); }
|
||||
bool enable_stdio_console() const {
|
||||
return EXPBOOL_(BA_ENABLE_STDIO_CONSOLE);
|
||||
}
|
||||
bool enable_os_font_rendering() const {
|
||||
return EXPBOOL_(BA_ENABLE_OS_FONT_RENDERING);
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
// note: define overrides BEFORE common makefile
|
||||
|
||||
#define BA_USE_STDIN_THREAD 1
|
||||
#define BA_ENABLE_STDIO_CONSOLE 1
|
||||
|
||||
#define BA_SDL_BUILD 1
|
||||
#define BA_SDL2_BUILD 1
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
// note: define overrides BEFORE common header
|
||||
#define BA_HEADLESS_BUILD 1
|
||||
|
||||
#define BA_USE_STDIN_THREAD 1
|
||||
#define BA_ENABLE_STDIO_CONSOLE 1
|
||||
|
||||
#define BA_MINSDL_BUILD 1
|
||||
|
||||
|
||||
@ -173,7 +173,7 @@ class SoundData;
|
||||
class SpriteMesh;
|
||||
class StackWidget;
|
||||
class StressTest;
|
||||
class StdInputModule;
|
||||
class StdioConsole;
|
||||
class Module;
|
||||
class TelnetServer;
|
||||
class TestInput;
|
||||
|
||||
@ -82,7 +82,7 @@ Game::Game()
|
||||
// bits of C++ logic.
|
||||
thread_->SetAcquiresPythonGIL();
|
||||
}
|
||||
auto Game::Start() -> void {
|
||||
auto Game::OnAppStart() -> void {
|
||||
thread_->PushCallSynchronous([this] { StartInThread(); });
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ const int kMaxPartyNameCombinedSize = 25;
|
||||
class Game {
|
||||
public:
|
||||
Game();
|
||||
auto Start() -> void;
|
||||
auto OnAppStart() -> void;
|
||||
|
||||
auto LaunchHostSession(PyObject* session_type_obj,
|
||||
BenchmarkType benchmark_type = BenchmarkType::kNone)
|
||||
|
||||
@ -30,9 +30,9 @@
|
||||
#include "ballistica/graphics/mesh/sprite_mesh.h"
|
||||
#include "ballistica/graphics/vr_graphics.h"
|
||||
#include "ballistica/input/input.h"
|
||||
#include "ballistica/input/std_input_module.h"
|
||||
#include "ballistica/networking/networking_sys.h"
|
||||
#include "ballistica/platform/sdl/sdl_app.h"
|
||||
#include "ballistica/platform/stdio_console.h"
|
||||
#include "ballistica/python/python.h"
|
||||
|
||||
#if BA_HEADLESS_BUILD
|
||||
@ -120,7 +120,7 @@ auto Platform::PostInit() -> void {
|
||||
ran_base_post_init_ = true;
|
||||
|
||||
// Are we running in a terminal?
|
||||
if (g_buildconfig.use_stdin_thread()) {
|
||||
if (g_buildconfig.enable_stdio_console()) {
|
||||
is_stdin_a_terminal_ = GetIsStdinATerminal();
|
||||
} else {
|
||||
is_stdin_a_terminal_ = false;
|
||||
@ -531,40 +531,6 @@ void Platform::SleepMS(millisecs_t ms) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(ms));
|
||||
}
|
||||
|
||||
// General one-time initialization stuff
|
||||
static void Init() {
|
||||
// Sanity check: make sure asserts are stripped out of release builds
|
||||
// (NDEBUG should do this).
|
||||
#if !BA_DEBUG_BUILD
|
||||
#ifndef NDEBUG
|
||||
#error Expected NDEBUG to be defined for release builds.
|
||||
#endif // NDEBUG
|
||||
assert(true);
|
||||
#endif // !BA_DEBUG_BUILD
|
||||
|
||||
// If we're running in a terminal, print some info.
|
||||
if (g_platform->is_stdin_a_terminal()) {
|
||||
if (g_buildconfig.headless_build()) {
|
||||
printf("BallisticaCore Headless %s build %d.\n", kAppVersion,
|
||||
kAppBuildNumber);
|
||||
fflush(stdout);
|
||||
} else {
|
||||
printf("BallisticaCore %s build %d.\n", kAppVersion, kAppBuildNumber);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
|
||||
g_app->user_agent_string = g_platform->GetUserAgentString();
|
||||
|
||||
// Figure out where our data is and chdir there.
|
||||
g_platform->SetupDataDirectory();
|
||||
|
||||
// Run these just to make sure these dirs exist.
|
||||
// (otherwise they might not get made if nothing writes to them).
|
||||
g_platform->GetConfigDirectory();
|
||||
g_platform->GetUserPythonDirectory();
|
||||
}
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "NullDereferences"
|
||||
|
||||
@ -649,7 +615,6 @@ auto Platform::CreateAppFlavor() -> AppFlavor* {
|
||||
|
||||
// Hmm do these belong here?...
|
||||
HandleArgs(g_app->argc, g_app->argv);
|
||||
Init();
|
||||
|
||||
// TEMP - need to init sdl on our legacy mac build even though its not
|
||||
// technically an SDL app. Kill this once the old mac build is gone.
|
||||
@ -700,18 +665,6 @@ auto Platform::GetKeyName(int keycode) -> std::string {
|
||||
#endif
|
||||
}
|
||||
|
||||
void Platform::CreateAuxiliaryModules() {
|
||||
if (g_buildconfig.use_stdin_thread()) {
|
||||
// Start listening for stdin commands (on platforms where that makes sense).
|
||||
// Note: this thread blocks indefinitely for input so we don't add it to the
|
||||
// pausable list.
|
||||
auto* std_input_thread = new Thread(ThreadIdentifier::kStdin);
|
||||
std_input_thread->PushCallSynchronous(
|
||||
[std_input_thread] { new StdInputModule(std_input_thread); });
|
||||
g_std_input_module->PushBeginReadCall();
|
||||
}
|
||||
}
|
||||
|
||||
void Platform::WillExitMain(bool errored) {}
|
||||
|
||||
auto Platform::GetUIScale() -> UIScale {
|
||||
@ -885,7 +838,7 @@ auto Platform::CreateTextTexture(int width, int height,
|
||||
|
||||
auto Platform::GetTextTextureData(void* tex) -> uint8_t* { throw Exception(); }
|
||||
|
||||
void Platform::OnBootstrapComplete() {}
|
||||
void Platform::OnAppStart() {}
|
||||
|
||||
auto Platform::ConvertIncomingLeaderboardScore(
|
||||
const std::string& leaderboard_id, int score) -> int {
|
||||
|
||||
@ -54,12 +54,11 @@ class Platform {
|
||||
/// Create the appropriate Graphics subclass for the app.
|
||||
auto CreateGraphics() -> Graphics*;
|
||||
|
||||
virtual auto CreateAuxiliaryModules() -> void;
|
||||
virtual auto WillExitMain(bool errored) -> void;
|
||||
|
||||
/// Inform the platform that all subsystems are up and running and it can
|
||||
/// start talking to them.
|
||||
virtual auto OnBootstrapComplete() -> void;
|
||||
virtual auto OnAppStart() -> void;
|
||||
|
||||
// Get/set values before standard game settings are available
|
||||
// (for values needed before SDL init/etc).
|
||||
|
||||
@ -488,8 +488,8 @@ void SDLApp::SetAutoVSync(bool enable) {
|
||||
}
|
||||
}
|
||||
|
||||
void SDLApp::OnBootstrapComplete() {
|
||||
AppFlavor::OnBootstrapComplete();
|
||||
void SDLApp::OnAppStart() {
|
||||
AppFlavor::OnAppStart();
|
||||
|
||||
if (!HeadlessMode() && g_buildconfig.enable_sdl_joysticks()) {
|
||||
// Add initial sdl joysticks. any added/removed after this will be handled
|
||||
|
||||
@ -22,7 +22,7 @@ class SDLApp : public AppFlavor {
|
||||
auto SetAutoVSync(bool enable) -> void;
|
||||
static auto SDLJoystickConnected(int index) -> void;
|
||||
static auto SDLJoystickDisconnected(int index) -> void;
|
||||
auto OnBootstrapComplete() -> void override;
|
||||
auto OnAppStart() -> void override;
|
||||
|
||||
/// Return g_app_flavor as a SDLApp. (assumes it actually is one).
|
||||
static SDLApp* get() {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// Released under the MIT License. See LICENSE for details.
|
||||
|
||||
#include "ballistica/input/std_input_module.h"
|
||||
#include "ballistica/platform/stdio_console.h"
|
||||
|
||||
#if BA_OSTYPE_LINUX
|
||||
#include <cstring>
|
||||
@ -13,12 +13,17 @@
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
StdInputModule::StdInputModule(Thread* thread) : thread_(thread) {
|
||||
assert(g_std_input_module == nullptr);
|
||||
g_std_input_module = this;
|
||||
StdioConsole::StdioConsole() {
|
||||
// We're a singleton; make sure we don't already exist.
|
||||
assert(g_stdio_console == nullptr);
|
||||
|
||||
// Spin up our thread.
|
||||
thread_ = new Thread(ThreadIdentifier::kAssets);
|
||||
g_app->pausable_threads.push_back(thread_);
|
||||
}
|
||||
|
||||
void StdInputModule::PushBeginReadCall() {
|
||||
auto StdioConsole::OnAppStart() -> void {
|
||||
// Tell our thread to start reading.
|
||||
thread()->PushCall([this] {
|
||||
bool stdin_is_terminal = g_platform->is_stdin_a_terminal();
|
||||
|
||||
@ -72,7 +77,7 @@ void StdInputModule::PushBeginReadCall() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log("StdInputModule got non-eof error reading stdin: "
|
||||
Log("StdioConsole got non-eof error reading stdin: "
|
||||
+ std::to_string(ferror(stdin)));
|
||||
}
|
||||
break;
|
||||
@ -1,16 +1,16 @@
|
||||
// Released under the MIT License. See LICENSE for details.
|
||||
|
||||
#ifndef BALLISTICA_INPUT_STD_INPUT_MODULE_H_
|
||||
#define BALLISTICA_INPUT_STD_INPUT_MODULE_H_
|
||||
#ifndef BALLISTICA_PLATFORM_STDIO_CONSOLE_H_
|
||||
#define BALLISTICA_PLATFORM_STDIO_CONSOLE_H_
|
||||
|
||||
#include "ballistica/ballistica.h"
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
class StdInputModule {
|
||||
class StdioConsole {
|
||||
public:
|
||||
explicit StdInputModule(Thread* thread);
|
||||
void PushBeginReadCall();
|
||||
StdioConsole();
|
||||
void OnAppStart();
|
||||
auto thread() const -> Thread* { return thread_; }
|
||||
|
||||
private:
|
||||
@ -20,4 +20,4 @@ class StdInputModule {
|
||||
|
||||
} // namespace ballistica
|
||||
|
||||
#endif // BALLISTICA_INPUT_STD_INPUT_MODULE_H_
|
||||
#endif // BALLISTICA_PLATFORM_STDIO_CONSOLE_H_
|
||||
Loading…
x
Reference in New Issue
Block a user