prep-work for making internal parts optional

This commit is contained in:
Eric 2022-09-03 13:28:50 -07:00
parent 4d4645022d
commit 57d875544a
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
17 changed files with 151 additions and 118 deletions

View File

@ -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"
}

View File

@ -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.

View File

@ -1 +1 @@
121748926490457154634465746862153767685
58669269684775875412740144262313315598

View File

@ -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(

View File

@ -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

View File

@ -448,6 +448,7 @@
<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\internal.h" />
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
<ClInclude Include="..\..\src\ballistica\math\point2d.h" />

View File

@ -778,6 +778,9 @@
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
<Filter>ballistica\input</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ballistica\internal\internal.h">
<Filter>ballistica\internal</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc">
<Filter>ballistica\math</Filter>
</ClCompile>
@ -1667,6 +1670,7 @@
<Filter Include="ballistica\graphics\texture" />
<Filter Include="ballistica\input" />
<Filter Include="ballistica\input\device" />
<Filter Include="ballistica\internal" />
<Filter Include="ballistica\math" />
<Filter Include="ballistica\media" />
<Filter Include="ballistica\media\component" />

View File

@ -443,6 +443,7 @@
<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\internal.h" />
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
<ClInclude Include="..\..\src\ballistica\math\point2d.h" />

View File

@ -778,6 +778,9 @@
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
<Filter>ballistica\input</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ballistica\internal\internal.h">
<Filter>ballistica\internal</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc">
<Filter>ballistica\math</Filter>
</ClCompile>
@ -1667,6 +1670,7 @@
<Filter Include="ballistica\graphics\texture" />
<Filter Include="ballistica\input" />
<Filter Include="ballistica\input\device" />
<Filter Include="ballistica\internal" />
<Filter Include="ballistica\math" />
<Filter Include="ballistica\media" />
<Filter Include="ballistica\media\component" />

View File

@ -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;
}

View File

@ -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<VRApp*>(g_app) == static_cast<VRApp*>(g_app));
return static_cast<VRApp*>(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_{};

View File

@ -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});
}

View File

@ -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"

View File

@ -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_

View File

@ -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();

View File

@ -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<ScoreToBeat>& 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<PythonContextCall>& c);
void RunCleanFrameCommands();
auto AddCleanFrameCommand(const Object::Ref<PythonContextCall>& 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<float>;
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<char>* b, PyObject** user_message_obj);
static auto DoBuildNodeMessage(PyObject* args, int arg_offset,
Buffer<char>* 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<std::string> do_once_locations_;
PythonRef objs_[static_cast<int>(ObjID::kLast)];

View File

@ -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'