diff --git a/.efrocachemap b/.efrocachemap index 5c6393cb..cb814059 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -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/98/2c/3a57b1e26899a8ce72deddfedc2d", - "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/65/ae/a6e93b58ec3db43bdc9141ff2292", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/16/1e/f5561596304ba3f4c5e1e689a417", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1b/c6/8c7e33ce20abfdb5400fac24d912", - "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/2e/40/e7a558c524f184060a1a285a3bd4", - "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/fb/c1/e0a9dda43fac36bab931339e0549", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/44/cd/55425e1bd9a2355f5f26d103247e", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5c/80/d897514c88cb34e558964c3fd84e", - "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ff/3f/5f6d6b1ef938fcf5dab41c9bf6b4", - "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c3/26/28015b10cee6fa0e5b4f5a8cf74c", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/52/45/fb6e9c424f5b02fe1282e4750ba1", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/8a/ec/5277ccd466bba1f9e2787dca8702", - "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c3/43/0b694331a64171c28b3f7bf3070d", - "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/77/e3/02852c073ca65312a31423bb9ac9", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/56/abde9450dcf0d34fab2e51c37f18", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e7/6d/508a7e7eb92ef5893591d1bc1705", - "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a4/6c/0a43b4165e225c625db50225ea88", - "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/30/5c/49531bd06432ea2468a2a8d8cad3", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/eb/a5/732bdadc7d22a861f0f395774069", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/e8/7b/7f577295652610d105ddcb65ea38", - "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a4/3e/9436a48d22a818f5c38ec6c79662", - "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5e/0f/f4f6f8a2379f03ac45d475c10d69", - "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6f/59/cf17fc32ed37c901d7ef5f838918", - "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/05/a3/21155690a20d59ddc49388bf2dc2", - "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a9/ba/501984f66a889f1482856e515fb2", - "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/77/d6/ace05e23b2b241dcadec1aba7253", - "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/47/f6/3019e4ef93ac786057a77f3fff1d", - "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cd/dd/47d65260ca9c04eda20adccd6f71", - "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/24/6e/a05c396868c18e8c66ef52b49166", - "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b0/8e/e14993bad63ef92ba5ccb532dbb4", - "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c5/39/75d3dde444ab63aa2c1d49b212f8", - "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/92/8630636fbcdbeee3c95660342639", - "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7b/5f/6f8a0d6cd233aae4b7d394f3dc9e", - "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fb/f2/759a510b82faeb4ab5acc2c3052b", - "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/84/e7/553f60e4603414a35598284c13d6", - "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d9/1c/411f47bc58390560f347ece26172", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/4e/27/fac43344cb6ad625ee6b8f4eb025", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/64/71/fd8c80764edb5c8b3c3e9302283c", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/2f/9c/100bc1657b231fad168f36d2b5f9", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/4d/91/c51ecec26a14c86ac04ac864b92e", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/13/3b/476da858cec08be51883372cfc4f", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/58/ed/9738b4be3c927e807cfaa38a7df8", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/97/e9/a10d1fc18dd3360dfad40624efd5", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/38/61/9da5f4158128bb2330645f44ae8c", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e6/fa/a6d850360d1a7cbf35ceb764ad32", + "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/58/f9/1c7086b632a9ebdb5ba19dfab3cf", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/05/53/9039866ebcd2dd69645fcd872cd9", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/62/b5/79f78facfdd4cd86dc1d4767cc15", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3f/d4/e6c1a8f06f1d23eee27fb7164839", + "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/42/d1/268f4cebbbab626f668e22d08689", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/29/9f/cd098d7d87936893eafcd1cd52c0", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/35/32/0e9e8d112b8aa02e787fd72ca2e6", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/da/92/be9c4085ed3fe8cb8aeb6dd4b6b8", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/6a/65/3a80fd6a0594d157b8ab92883b2f", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ba/39/be2b8f7b86feebde32147640de7a", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/92/ad/ba0c7c1286337c1837d018fe9320", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a5/09/f4d4da0f458f26fb551f97a321c4", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b4/26/a6bc39c9413bc1d12d0d4c6a14d8", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/be/f0/b0864fb2909027994f99862af75c", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/25/0b/10f2197f805915c0124dd0948975", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d5/fc/bd1594788c70e4a1c217247c1fbb", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/98/b2/b549c884954266dad836090d53ca", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/33/b3/9ea1255d8a81a20b7cc400f0b9c0", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/15/f1/bc11435032c10e5d4f60bb6cb951", + "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/65/9f762ac4a1c07bbc85714f4ff487", + "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/60/12/7d0d2c7fa57705f26f9ee25f5eb7", + "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/89/8afc89527d34b8b32d792b1768cc", + "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/00/3b/26438d3e877a2a5b30ff0622d1d9", + "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/37/ed1a28f6d2f8801939c3af3f2cbe", + "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/84/c0/33d97960b9bbb74f3764ddfb5510", + "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8b/2f/dd23665f6b590f0d1392634d58fc", + "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/5d/2a9fbe5f0011bfc45e560f56376e", + "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/85/08/152e657b8ed6917233ecabd88813", + "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fa/5c/16405030ec49d878d8b6de06c665", + "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ec/8e/e320531f0d1f280afdb841c85667", + "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4c/14/536c47d64624acdb36ccc393ecf4", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fe/db/cf274ff81ccc70090fac58bdbdda", + "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/cc/dd5234f21a502657aeb042440f49", + "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8e/69/d9407dd92b1397548cd274c16b5f", + "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/df/83/0a461388cf1b14a7e5b8356af40f", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/42/b4/3456304a0c61e7ea54de0c714b64", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/00/cf/15cff772100169a8e17eb1e9420f", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/08/0a/3c1628d8387d54ac1afc3b946662", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/3f/d3/e6faece149393d0933f4bdc01989", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/f8/3e/266e72c426e172f39f7808931850", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/20/e5/cf23928643af4440a129b6b05ce0", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/d8/a1/ce2de181c40cad598c6f41ee50e9", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/6f/74/a733036d25bf2a4ca529b37c4dce", "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" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d40e5f0..2304e60c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.7 (build 20741, api 7, 2022-09-02) +### 1.7.7 (build 20746, api 7, 2022-09-03) - 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. diff --git a/assets/src/ba_data/python/._ba_sources_hash b/assets/src/ba_data/python/._ba_sources_hash index a56118c4..c14ba9b2 100644 --- a/assets/src/ba_data/python/._ba_sources_hash +++ b/assets/src/ba_data/python/._ba_sources_hash @@ -1 +1 @@ -121748926490457154634465746862153767685 \ No newline at end of file +58669269684775875412740144262313315598 \ No newline at end of file diff --git a/assets/src/ba_data/python/ba/_bootstrap.py b/assets/src/ba_data/python/ba/_bootstrap.py index 5e0f9b46..870d36bf 100644 --- a/assets/src/ba_data/python/ba/_bootstrap.py +++ b/assets/src/ba_data/python/ba/_bootstrap.py @@ -32,7 +32,7 @@ def bootstrap() -> None: # Give a soft warning if we're being used with a different binary # version than we expect. - expected_build = 20741 + expected_build = 20746 running_build: int = env['build_number'] if running_build != expected_build: print( diff --git a/ballisticacore-cmake/CMakeLists.txt b/ballisticacore-cmake/CMakeLists.txt index f93aa0ce..c360dfc9 100644 --- a/ballisticacore-cmake/CMakeLists.txt +++ b/ballisticacore-cmake/CMakeLists.txt @@ -457,6 +457,7 @@ add_executable(ballisticacore ${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/internal.h ${BA_SRC_ROOT}/ballistica/math/matrix44f.cc ${BA_SRC_ROOT}/ballistica/math/matrix44f.h ${BA_SRC_ROOT}/ballistica/math/point2d.h diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj index 541493f4..b3321fa3 100644 --- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj +++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj @@ -448,6 +448,7 @@ + diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters index c799e77f..238bfeae 100644 --- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters +++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters @@ -778,6 +778,9 @@ ballistica\input + + ballistica\internal + ballistica\math @@ -1667,6 +1670,7 @@ + diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj index 2d56df4c..7be524c3 100644 --- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj +++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj @@ -443,6 +443,7 @@ + diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters index c799e77f..238bfeae 100644 --- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters +++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters @@ -778,6 +778,9 @@ ballistica\input + + ballistica\internal + ballistica\math @@ -1667,6 +1670,7 @@ + diff --git a/src/ballistica/app/vr_app.cc b/src/ballistica/app/vr_app.cc index d305f143..25de8698 100644 --- a/src/ballistica/app/vr_app.cc +++ b/src/ballistica/app/vr_app.cc @@ -11,7 +11,8 @@ namespace ballistica { VRApp::VRApp(Thread* thread) : App(thread) {} -void VRApp::PushVRSimpleRemoteStateCall(const VRSimpleRemoteState& state) { +auto VRApp::PushVRSimpleRemoteStateCall(const VRSimpleRemoteState& state) + -> void { PushCall([this, state] { // Convert this to a full hands state, adding in some simple elbow // positioning of our own and left/right. @@ -34,7 +35,7 @@ void VRApp::PushVRSimpleRemoteStateCall(const VRSimpleRemoteState& state) { }); } -void VRApp::VRSetDrawDimensions(int w, int h) { +auto VRApp::VRSetDrawDimensions(int w, int h) -> void { g_graphics_server->VideoResize(w, h); } @@ -55,7 +56,7 @@ void VRApp::VRPreDraw() { } } -void VRApp::VRPostDraw() { +auto VRApp::VRPostDraw() -> void { assert(InMainThread()); if (!g_graphics_server || !g_graphics_server->renderer()) { return; @@ -67,15 +68,15 @@ void VRApp::VRPostDraw() { RunRenderUpkeepCycle(); } -void VRApp::VRSetHead(float tx, float ty, float tz, float yaw, float pitch, - float roll) { +auto VRApp::VRSetHead(float tx, float ty, float tz, float yaw, float pitch, + float roll) -> void { assert(InMainThread()); Renderer* renderer = g_graphics_server->renderer(); if (renderer == nullptr) return; renderer->VRSetHead(tx, ty, tz, yaw, pitch, roll); } -void VRApp::VRSetHands(const VRHandsState& state) { +auto VRApp::VRSetHands(const VRHandsState& state) -> void { assert(InMainThread()); // Pass this along to the renderer (in this same thread) for drawing @@ -88,10 +89,10 @@ void VRApp::VRSetHands(const VRHandsState& state) { g_game->PushVRHandsState(state); } -void VRApp::VRDrawEye(int eye, float yaw, float pitch, float roll, float tan_l, +auto VRApp::VRDrawEye(int eye, float yaw, float pitch, float roll, float tan_l, float tan_r, float tan_b, float tan_t, float eye_x, - float eye_y, float eye_z, int viewport_x, - int viewport_y) { + float eye_y, float eye_z, int viewport_x, int viewport_y) + -> void { if (!g_graphics_server || !g_graphics_server->renderer()) { return; } diff --git a/src/ballistica/app/vr_app.h b/src/ballistica/app/vr_app.h index ffa0b694..2b1a7111 100644 --- a/src/ballistica/app/vr_app.h +++ b/src/ballistica/app/vr_app.h @@ -20,23 +20,24 @@ class VRApp : public App { }; /// Return g_app as a VRApp. (assumes it actually is one). - static VRApp* get() { + static auto get() -> VRApp* { assert(g_app != nullptr); assert(dynamic_cast(g_app) == static_cast(g_app)); return static_cast(g_app); } explicit VRApp(Thread* thread); - void PushVRSimpleRemoteStateCall(const VRSimpleRemoteState& state); - void VRSetDrawDimensions(int w, int h); - void VRPreDraw(); - void VRPostDraw(); - void VRSetHead(float tx, float ty, float tz, float yaw, float pitch, - float roll); - void VRSetHands(const VRHandsState& state); - void VRDrawEye(int eye, float yaw, float pitch, float roll, float tan_l, + auto PushVRSimpleRemoteStateCall(const VRSimpleRemoteState& state) -> void; + auto VRSetDrawDimensions(int w, int h) -> void; + auto VRPreDraw() -> void; + auto VRPostDraw() -> void; + auto VRSetHead(float tx, float ty, float tz, float yaw, float pitch, + float roll) -> void; + auto VRSetHands(const VRHandsState& state) -> void; + auto VRDrawEye(int eye, float yaw, float pitch, float roll, float tan_l, float tan_r, float tan_b, float tan_t, float eye_x, - float eye_y, float eye_z, int viewport_x, int viewport_y); + float eye_y, float eye_z, int viewport_x, int viewport_y) + -> void; private: FrameDef* vr_render_frame_def_{}; diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index 65d4544b..1ecd65cf 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -22,7 +22,7 @@ namespace ballistica { // These are set automatically via script; don't modify them here. -const int kAppBuildNumber = 20741; +const int kAppBuildNumber = 20746; const char* kAppVersion = "1.7.7"; // Our standalone globals. @@ -269,7 +269,7 @@ auto InNetworkWriteThread() -> bool { && g_network_write_module->thread()->IsCurrent()); } -void Log(const std::string& msg, bool to_stdout, bool to_server) { +auto Log(const std::string& msg, bool to_stdout, bool to_server) -> void { Logging::Log(msg, to_stdout, to_server); } @@ -283,7 +283,7 @@ void ScreenMessage(const std::string& s, const Vector3f& color) { } } -void ScreenMessage(const std::string& msg) { +auto ScreenMessage(const std::string& msg) -> void { ScreenMessage(msg, {1.0f, 1.0f, 1.0f}); } diff --git a/src/ballistica/game/connection/connection_to_client.cc b/src/ballistica/game/connection/connection_to_client.cc index abc59536..c67a7325 100644 --- a/src/ballistica/game/connection/connection_to_client.cc +++ b/src/ballistica/game/connection/connection_to_client.cc @@ -2,7 +2,6 @@ #include "ballistica/game/connection/connection_to_client.h" -// #include "ballistica/app/app_internal.h" #include "ballistica/audio/audio.h" #include "ballistica/game/client_controller_interface.h" #include "ballistica/game/connection/connection_set.h" diff --git a/src/ballistica/internal/internal.h b/src/ballistica/internal/internal.h new file mode 100644 index 00000000..2b9661bb --- /dev/null +++ b/src/ballistica/internal/internal.h @@ -0,0 +1,18 @@ +// Released under the MIT License. See LICENSE for details. + +#ifndef BALLISTICA_INTERNAL_INTERNAL_H_ +#define BALLISTICA_INTERNAL_INTERNAL_H_ + +namespace ballistica { + +/// Our high level app interface module. +/// It runs in the main thread and is what platform wrappers +/// should primarily interact with. +class AppInternalBase { + public: + virtual ~AppInternalBase() {} +}; + +} // namespace ballistica + +#endif // BALLISTICA_INTERNAL_INTERNAL_H_ diff --git a/src/ballistica/python/python.cc b/src/ballistica/python/python.cc index e01a7dc0..2d73f28a 100644 --- a/src/ballistica/python/python.cc +++ b/src/ballistica/python/python.cc @@ -946,6 +946,7 @@ void Python::Reset(bool do_init) { BA_PRECONDITION(m = PyImport_AddModule("__main__")); BA_PRECONDITION(main_dict_ = PyModule_GetDict(m)); + // Make sure we're running the Python version we require. const char* ver = Py_GetVersion(); if (strncmp(ver, "3.10", 4) != 0) { throw Exception("We require Python 3.10.x; instead found " @@ -960,7 +961,7 @@ void Python::Reset(bool do_init) { // Run a few core bootstrappy things first: // - get stdout/stderr redirection up so we can intercept python output // - add our user and system script dirs to python path - // - import and instantiate our app-state class + // - create the ba.app instance. #include "ballistica/generated/python_embedded/bootstrap.inc" PyObject* result = @@ -975,7 +976,7 @@ void Python::Reset(bool do_init) { } Py_DECREF(result); - // Import and grab all the Python stuff we use. + // Import and grab all the Python stuff we use from C++. #include "ballistica/generated/python_embedded/binding.inc" AppInternalPythonPostInit(); diff --git a/src/ballistica/python/python.h b/src/ballistica/python/python.h index 967f1803..bd3e82a1 100644 --- a/src/ballistica/python/python.h +++ b/src/ballistica/python/python.h @@ -35,7 +35,7 @@ class Python { static auto current_label() -> const char* { return current_label_; } private: - const char* prev_label_ = nullptr; + const char* prev_label_{}; static const char* current_label_; BA_DISALLOW_CLASS_COPIES(ScopedCallLabel); }; @@ -63,7 +63,7 @@ class Python { static auto HaveGIL() -> bool; /// Attempt to print the python stack trace. - static void PrintStackTrace(); + static auto PrintStackTrace() -> void; /// Pass any PyObject* (including nullptr) to get a readable string /// (basically equivalent of str(foo)). @@ -75,14 +75,14 @@ class Python { auto ValidatedPackageAssetName(PyObject* package, const char* name) -> std::string; - static void LogContextForCallableLabel(const char* label); - static void LogContextEmpty(); - static void LogContextAuto(); - static void LogContextNonLogicThread(); + static auto LogContextForCallableLabel(const char* label) -> void; + static auto LogContextEmpty() -> void; + static auto LogContextAuto() -> void; + static auto LogContextNonLogicThread() -> void; Python(); ~Python(); - void Reset(bool init = true); + auto Reset(bool init = true) -> void; /// Add classes to the newly created ba module. static auto InitModuleClasses(PyObject* module) -> void; @@ -93,19 +93,19 @@ class Python { const std::string& value_name) -> int; auto GetControllerFloatValue(InputDevice* input_device, const std::string& value_name) -> float; - void HandleDeviceMenuPress(InputDevice* input_device); + auto HandleDeviceMenuPress(InputDevice* input_device) -> void; auto GetLastPlayerNameFromInputDevice(InputDevice* input_device) -> std::string; - void AcquireGIL(); - void ReleaseGIL(); + auto AcquireGIL() -> void; + auto ReleaseGIL() -> void; - void LaunchStringEdit(TextWidget* w); - void CaptureGamePadInput(PyObject* obj); - void ReleaseGamePadInput(); - void CaptureKeyboardInput(PyObject* obj); - void ReleaseKeyboardInput(); - void HandleFriendScoresCB(const FriendScoreSet& ss); - void IssueCallInLogicThreadWarning(PyObject* call); + auto LaunchStringEdit(TextWidget* w) -> void; + auto CaptureGamePadInput(PyObject* obj) -> void; + auto ReleaseGamePadInput() -> void; + auto CaptureKeyboardInput(PyObject* obj) -> void; + auto ReleaseKeyboardInput() -> void; + auto HandleFriendScoresCB(const FriendScoreSet& ss) -> void; + auto IssueCallInLogicThreadWarning(PyObject* call) -> void; /// Borrowed from python's source code: used in overriding of objects' dir() /// results. @@ -125,24 +125,24 @@ class Python { auto FilterChatMessage(std::string* message, int client_id) -> bool; /// Pass a chat message along to the python UI layer for handling.. - void HandleLocalChatMessage(const std::string& message); + auto HandleLocalChatMessage(const std::string& message) -> void; - void DispatchScoresToBeatResponse( + auto DispatchScoresToBeatResponse( bool success, const std::list& scores_to_beat, - void* PyCallback); + void* PyCallback) -> void; /// Pop up an in-game window to show a url (NOT in a browser). - void ShowURL(const std::string& url); + auto ShowURL(const std::string& url) -> void; - void AddCleanFrameCommand(const Object::Ref& c); - void RunCleanFrameCommands(); + auto AddCleanFrameCommand(const Object::Ref& c) -> void; + auto RunCleanFrameCommands() -> void; /// Return a minimal filename/position string such as 'foo.py:201' based - /// on the python stack state. This shouldn't be too expensive to fetch and + /// on the Python stack state. This shouldn't be too expensive to fetch and /// is useful as an object identifier/etc. static auto GetPythonFileLocation(bool pretty = true) -> std::string; - void set_env_obj(PyObject* obj) { env_ = obj; } + auto set_env_obj(PyObject* obj) -> void { env_ = obj; } auto env_obj() const -> PyObject* { assert(env_); return env_; @@ -151,7 +151,7 @@ class Python { assert(main_dict_); return main_dict_; } - void PlayMusic(const std::string& music_type, bool continuous); + auto PlayMusic(const std::string& music_type, bool continuous) -> void; // Fetch raw values from the config dict. The default value is returned if // the requested value is not present or not of a compatible type. @@ -166,14 +166,14 @@ class Python { -> std::optional; auto GetRawConfigValue(const char* name, int default_value) -> int; auto GetRawConfigValue(const char* name, bool default_value) -> bool; - void SetRawConfigValue(const char* name, float value); + auto SetRawConfigValue(const char* name, float value) -> void; - void RunDeepLink(const std::string& url); + auto RunDeepLink(const std::string& url) -> void; auto GetResource(const char* key, const char* fallback_resource = nullptr, const char* fallback_value = nullptr) -> std::string; auto GetTranslation(const char* category, const char* s) -> std::string; - // For checking and pulling values out of python objects. + // For checking and pulling values out of Python objects. // These will all throw Exceptions on errors. static auto GetPyString(PyObject* o) -> std::string; static auto GetPyInt64(PyObject* o) -> int64_t; @@ -233,14 +233,15 @@ class Python { static auto GetPyEnum_InputType(PyObject* obj) -> InputType; static auto GetNodeAttr(Node* node, const char* attribute_name) -> PyObject*; - static void SetNodeAttr(Node* node, const char* attr_name, - PyObject* value_obj); + static auto SetNodeAttr(Node* node, const char* attr_name, + PyObject* value_obj) -> void; /// Set Python exception from C++ Exception. - static void SetPythonException(const Exception& exc); + static auto SetPythonException(const Exception& exc) -> void; - static void DoBuildNodeMessage(PyObject* args, int arg_offset, - Buffer* b, PyObject** user_message_obj); + static auto DoBuildNodeMessage(PyObject* args, int arg_offset, + Buffer* b, PyObject** user_message_obj) + -> void; auto DoNewNode(PyObject* args, PyObject* keywds) -> Node*; /// Identifiers for specific Python objects we grab references to for easy @@ -382,40 +383,41 @@ class Python { /// Push a call to a preset obj to the game thread /// (will be run in the UI context). - void PushObjCall(ObjID obj); + auto PushObjCall(ObjID obj) -> void; /// Push a call with a single string arg. - void PushObjCall(ObjID obj, const std::string& arg); + auto PushObjCall(ObjID obj, const std::string& arg) -> void; - /// Register python location and returns true if it has not + /// Register Python location and returns true if it has not /// yet been registered. (for print-once type stuff). auto DoOnce() -> bool; /// Check values passed to timer functions; triggers warnings /// for cases that look like they're passing milliseconds as seconds /// or vice versa... (can remove this once things are settled in). - void TimeFormatCheck(TimeFormat time_format, PyObject* length_obj); + auto TimeFormatCheck(TimeFormat time_format, PyObject* length_obj) -> void; private: /// Check/set debug related initialization. - void SetupInterpreterDebugState(); + auto SetupInterpreterDebugState() -> void; /// Set up system paths if needed (for embedded builds). - void SetupPythonHome(); + auto SetupPythonHome() -> void; /// Set the value for a named object. - void StoreObj(ObjID id, PyObject* pyobj, bool incref = false); + auto StoreObj(ObjID id, PyObject* pyobj, bool incref = false) -> void; /// Set the value for a named object and verify that it is a callable. - void StoreObjCallable(ObjID id, PyObject* pyobj, bool incref = false); + auto StoreObjCallable(ObjID id, PyObject* pyobj, bool incref = false) -> void; /// Set the value for a named object to the result of a Python expression. - void StoreObj(ObjID id, const char* expression, PyObject* context = nullptr); + auto StoreObj(ObjID id, const char* expression, PyObject* context = nullptr) + -> void; /// Set the value for a named object to the result of a Python expression /// and verify that it is callable. - void StoreObjCallable(ObjID id, const char* expression, - PyObject* context = nullptr); + auto StoreObjCallable(ObjID id, const char* expression, + PyObject* context = nullptr) -> void; std::set do_once_locations_; PythonRef objs_[static_cast(ObjID::kLast)]; diff --git a/tools/batools/project.py b/tools/batools/project.py index 8b7dd96b..0bd71885 100755 --- a/tools/batools/project.py +++ b/tools/batools/project.py @@ -618,7 +618,7 @@ class Updater: # Misc sanity checks. if not self._public: # Make sure we're set to prod master server. - with open('src/ballistica/networking/master_server_config.h', + with open('src/ballistica/internal/master_server_config.h', encoding='utf-8') as infile: msconfig = infile.read() if ('// V2 Master Server:\n'