dev-tools window is now screen-size-responsive

This commit is contained in:
Eric Froemling 2025-01-26 18:10:47 -08:00
parent 82ee553325
commit 5a08a4054a
No known key found for this signature in database
5 changed files with 64 additions and 48 deletions

52
.efrocachemap generated
View File

@ -432,7 +432,7 @@
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
"build/assets/ba_data/data/langdata.json": "c2796fecf77ee0bb600e874cc57f5c31",
"build/assets/ba_data/data/langdata.json": "2e943cae780ddba2b1ca27ec3c1a6b2a",
"build/assets/ba_data/data/languages/arabic.json": "d95c590f7db91a9e8b7df4b9b58c8529",
"build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff",
"build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d",
@ -462,7 +462,7 @@
"build/assets/ba_data/data/languages/russian.json": "7164b2e1f9f2c16604a0c6eac968577c",
"build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a",
"build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f",
"build/assets/ba_data/data/languages/spanish.json": "4b77db2a5342767e5eda24bfff4a7549",
"build/assets/ba_data/data/languages/spanish.json": "db3e3c994d264914a148068084c3587c",
"build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959",
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
"build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471",
@ -4174,22 +4174,22 @@
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "0de70d818eafab255fa57163820088ab",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "ab6f08c875c0918a945d5febf8185027",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "558dadd14c1fdb58cb849035b71aaf2e",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "9d34333f3f27cef39c51e44015ff922d",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "ba8e35a3aac7f6f1df24cc7e6485a44f",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "b6cb29e41feab09766268d15addbf485",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "efed7a7cbaadc7bd074d5b80918ab62b",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "35cf7817b577ea0d769c434b44c7839b",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "6eedd99a1118fdd4849b29cf50d9021d",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "de6af8bafb4e0bfa2a49904462aec51a",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "74d5966f46df6d81c1832d96f9675fad",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "726a8ea5d7b6cd9dee01d4c8f56f9877",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "89d30000f756383cd37f908c65064b24",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "102b59cc3fa63256f809cd1e4caa25a5",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "e5855cc2eeb3d582d75841a6e5cb4c15",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "bb84f8c8f0c5ec40101ebae0ce40e784",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "ff6445c9cec679efa3ce701d65e32ad4",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "381d0ede50695aa6bfcabd6c02784328",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "1915debfff28b2067c8d653e216b2816",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "24e82e8becbe0d1132b8f7ceea7e2173",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "ee9d05a24152788cb9b759463455cd3b",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "6adabec38f87e3b481d1f7de77a6f391",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "b98c235ff4ae2943818795f2be341ad1",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "bbc7fb28cc4045bbfdfe5da34484892b",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "3f300e51ea39567eb32846513a40d05d",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "449650cc0b09a7b3297e9cd8db97181f",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "bf2680c6f2682b01717581feb3d9eb3f",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "5eaf3b689c665a703a2911ed6550f02f",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "7563bb784660a69629148ac07ba53ccf",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e0747c56bbf8fc8a2115fbf0c619c37f",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "fa43b5cffd659de45f4bf0a3694fb2cc",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "c31826c9e8ce27c00d127a6bd1b7298d",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "37c5f795ccbaeffeb5d6ede4fe9f3c19",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16",
@ -4202,14 +4202,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "314516411d5ac8e991a6f742f399d4de",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "c686172e811ae456b98574a1f9f235b1",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "0f26eb09d4bbe84df6aefad2befebccf",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "ecd1b70e1c0158ae54aa4774b00b72a9",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "9368001f09f1c9458479f83c1e78dac6",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "89744c8ea35463c870702a7e33ef25b0",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "d6c5ea44028135b153d215c9375bb260",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "61410e75d73fe840ea9fc956d6353abc",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "bff59ed9ddaf751a02ad9026092f19a3",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "1653040bcf8a918c03410089609d0fca",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "db68ad522aed3599657bfffc07d36844",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "05ff157096d3e8a99d1b6a41181890b8",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "a312ae2f510d838451f79ec68f9339d0",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "c49e1c02cc41ef90666501e142878404",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "34d963e633901b87848b9811cfaaee7d",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "d010e2a87022b414a6625df508f011c7",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "b2027a4ed6adddc025272fca7cfa4778",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22253, api 9, 2025-01-26)
### 1.7.37 (build 22254, api 9, 2025-01-26)
- Bumping api version to 9. As you'll see below, there's some UI changes that
will require a bit of work for any UI mods to adapt to. If your mods don't
touch UI stuff at all you can simply bump your api version and call it a day.

View File

@ -53,7 +53,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 22253
TARGET_BALLISTICA_BUILD = 22254
TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -26,41 +26,53 @@ class DevToolsWindow(bui.MainWindow):
assert app.classic is not None
uiscale = app.ui_v1.uiscale
self._width = 1000.0 if uiscale is bui.UIScale.SMALL else 670.0
x_inset = 150 if uiscale is bui.UIScale.SMALL else 0
self._width = 1200.0 if uiscale is bui.UIScale.SMALL else 670.0
self._height = (
370.0
800
if uiscale is bui.UIScale.SMALL
else 450.0 if uiscale is bui.UIScale.MEDIUM else 520.0
)
self._spacing = 32
top_extra = 10 if uiscale is bui.UIScale.SMALL else 0
self._scroll_width = self._width - (100 + 2 * x_inset)
self._scroll_height = self._height - 115.0
# Do some fancy math to fill all available screen area up to the
# size of our backing container. This lets us fit to the exact
# screen shape at small ui scale.
screensize = bui.get_virtual_screen_size()
scale = (
2.13
if uiscale is bui.UIScale.SMALL
else 1.4 if uiscale is bui.UIScale.MEDIUM else 1.0
)
# Calc screen size in our local container space and clamp to a
# bit smaller than our container size.
target_width = min(self._width - 80, screensize[0] / scale)
target_height = min(self._height - 90, screensize[1] / scale)
# To get top/left coords, go to the center of our window and
# offset by half the width/height of our target area.
yoffs = 0.5 * self._height + 0.5 * target_height + 30.0
self._scroll_width = target_width
self._scroll_height = target_height - 35
self._scroll_bottom = yoffs - 64 - self._scroll_height
self._sub_width = self._scroll_width * 0.95
self._sub_height = 300.0
super().__init__(
root_widget=bui.containerwidget(
size=(self._width, self._height + top_extra),
size=(self._width, self._height),
toolbar_visibility=(
'menu_minimal'
if uiscale is bui.UIScale.SMALL
else 'menu_full'
),
scale=(
2.13
if uiscale is bui.UIScale.SMALL
else 1.4 if uiscale is bui.UIScale.MEDIUM else 1.0
),
stack_offset=(
(0, 0) if uiscale is bui.UIScale.SMALL else (0, 0)
),
scale=scale,
),
transition=transition,
origin_widget=origin_widget,
# We're affected by screen size only at small ui-scale.
refresh_on_screen_size_changes=uiscale is bui.UIScale.SMALL,
)
self._r = 'settingsDevTools'
@ -73,7 +85,7 @@ class DevToolsWindow(bui.MainWindow):
else:
self._back_button = bui.buttonwidget(
parent=self._root_widget,
position=(53 + x_inset, self._height - 60),
position=(53, yoffs - 50),
size=(140, 60),
scale=0.8,
autoselect=True,
@ -89,7 +101,7 @@ class DevToolsWindow(bui.MainWindow):
parent=self._root_widget,
position=(
self._width * 0.5,
self._height - (64 if uiscale is bui.UIScale.SMALL else 48),
yoffs - (60 if uiscale is bui.UIScale.SMALL else 42),
),
size=(0, 25),
scale=(0.8 if uiscale is bui.UIScale.SMALL else 1.0),
@ -110,11 +122,15 @@ class DevToolsWindow(bui.MainWindow):
self._scrollwidget = bui.scrollwidget(
parent=self._root_widget,
position=(50 + x_inset, 50),
position=(
self._width * 0.5 - self._scroll_width * 0.5,
self._scroll_bottom,
),
simple_culling_v=20.0,
highlight=False,
size=(self._scroll_width, self._scroll_height),
selection_loops_to_parent=True,
border_opacity=0.4,
)
bui.widget(edit=self._scrollwidget, right_widget=self._scrollwidget)
self._subcontainer = bui.containerwidget(

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 22253;
const int kEngineBuildNumber = 22254;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;