ui polishing

This commit is contained in:
Eric Froemling 2025-01-11 22:11:28 -08:00
parent 82ae1930d2
commit 764c2c5d19
No known key found for this signature in database
19 changed files with 127 additions and 84 deletions

72
.efrocachemap generated
View File

@ -1330,14 +1330,14 @@
"build/assets/ba_data/textures/buttonPunch.ktx": "9de2058679dd2e55a9c180fafa810559",
"build/assets/ba_data/textures/buttonPunch.pvr": "7b7ced951fcee4e572988f232d729ad6",
"build/assets/ba_data/textures/buttonPunch_preview.png": "e78d05abb78fef5fe18119c4f3fd1dbe",
"build/assets/ba_data/textures/buttonSquare.dds": "8b4091b6fc25d964059673062cc9faa6",
"build/assets/ba_data/textures/buttonSquare.ktx": "21fe9898e50c6d44151e059e0a4b94ea",
"build/assets/ba_data/textures/buttonSquare.pvr": "c454666fa706aed388e4ce366248b34d",
"build/assets/ba_data/textures/buttonSquare.dds": "48e117e4a57a1d99ebf0e38dd414a95b",
"build/assets/ba_data/textures/buttonSquare.ktx": "936f04a43f99f692071c7e9567cc2a3d",
"build/assets/ba_data/textures/buttonSquare.pvr": "b53fe9f1725e0d28bc974f6ef1623fb0",
"build/assets/ba_data/textures/buttonSquareWide.dds": "5ab9ff791eae959d49f7ac1018f395a9",
"build/assets/ba_data/textures/buttonSquareWide.ktx": "043bbadbe5adff0236d2841fcaeadb87",
"build/assets/ba_data/textures/buttonSquareWide.pvr": "ca3773bfeacc8dcf42387a6da6ef0807",
"build/assets/ba_data/textures/buttonSquareWide_preview.png": "a5a02ed8a9a0b4d0043fcf21fc0f5f8a",
"build/assets/ba_data/textures/buttonSquare_preview.png": "e5dc8e92b0306b218be7b6c927aa4e06",
"build/assets/ba_data/textures/buttonSquare_preview.png": "a9abe7bbf392caf8141adf81fc63f4f8",
"build/assets/ba_data/textures/chTitleChar1.dds": "d8c615a51d900da15b8aba5ce35296bf",
"build/assets/ba_data/textures/chTitleChar1.ktx": "44384ea28c9fe01440deb1fc80c7224a",
"build/assets/ba_data/textures/chTitleChar1.pvr": "304d7551786a2eca008bd2057996d05e",
@ -1962,10 +1962,10 @@
"build/assets/ba_data/textures/ninjaIconColorMask.pvr": "15a9d7c922affee6041871791a96dc98",
"build/assets/ba_data/textures/ninjaIconColorMask_preview.png": "b21a775abb3c4e4dd9a04192ab1e717b",
"build/assets/ba_data/textures/ninjaIcon_preview.png": "e88731a4ac740f6613c7da2aad57d64d",
"build/assets/ba_data/textures/nub.dds": "b0de2808476a2fa7db11a895fa6d2b38",
"build/assets/ba_data/textures/nub.ktx": "b24cbef47d8ac5f87557789dab50d401",
"build/assets/ba_data/textures/nub.pvr": "f99208d88cfb93e323234eacd74482dd",
"build/assets/ba_data/textures/nub_preview.png": "1f1dffc38817559cfff57994d8bb282d",
"build/assets/ba_data/textures/nub.dds": "4cdecccb9f80ed13c98739331c5c55cf",
"build/assets/ba_data/textures/nub.ktx": "ce7f9ec87efca24f7617c9eb4a6d44c6",
"build/assets/ba_data/textures/nub.pvr": "a30b9d28e4b8aea3c8e2121d0d89ee08",
"build/assets/ba_data/textures/nub_preview.png": "0b5ef892128c93d75091dffc20972548",
"build/assets/ba_data/textures/null.dds": "12f8bd2be70d800719e8bff8cf17c642",
"build/assets/ba_data/textures/null.ktx": "a948a0fcadd2c7ff5ade346dc0856b92",
"build/assets/ba_data/textures/null.pvr": "d76c281253b3c791b76db8a7bbe03d35",
@ -2522,14 +2522,14 @@
"build/assets/ba_data/textures/tv.ktx": "0a84d64d668df5b258cbd4bc63351f60",
"build/assets/ba_data/textures/tv.pvr": "c4de871c547fb02b752658f291234205",
"build/assets/ba_data/textures/tv_preview.png": "6ad57c2c33c7eec4842e7b7b74fe88b4",
"build/assets/ba_data/textures/uiAtlas.dds": "76a861c711ea4700ad2f484adb53a837",
"build/assets/ba_data/textures/uiAtlas.ktx": "4bd0550d4297b6b290ceceb0d3dae490",
"build/assets/ba_data/textures/uiAtlas.pvr": "e7601e1d8cb5a03324b7e240a46eb62f",
"build/assets/ba_data/textures/uiAtlas.dds": "06b67a3f00253a745425378fb4ee9b61",
"build/assets/ba_data/textures/uiAtlas.ktx": "55c69a2fa18dc5d7f9f0aec8d86077b5",
"build/assets/ba_data/textures/uiAtlas.pvr": "ee3f1017c1caa32cb3ddb70b3e5d37cf",
"build/assets/ba_data/textures/uiAtlas2.dds": "6d4b31087da911fa4fe4ccbd3935cc63",
"build/assets/ba_data/textures/uiAtlas2.ktx": "7679ce6fab577500b956973ea10a2697",
"build/assets/ba_data/textures/uiAtlas2.pvr": "70383679a25fa1739beb2b2b97f4fbee",
"build/assets/ba_data/textures/uiAtlas2_preview.png": "6a48c238db2453ee0333cf554bd68054",
"build/assets/ba_data/textures/uiAtlas_preview.png": "314c4fe9ba75ff03bb5d75d5003c2462",
"build/assets/ba_data/textures/uiAtlas_preview.png": "96b93b43260c7e69b5f73ab5e498d0bb",
"build/assets/ba_data/textures/upButton.dds": "96f0df23bb2055a30d0073d146138a8e",
"build/assets/ba_data/textures/upButton.ktx": "a5cc08ddb7e67a1b9e5e067d06fbbfcd",
"build/assets/ba_data/textures/upButton.pvr": "d40c03b0401fded3b655de12f7e1c34b",
@ -4126,22 +4126,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": "ec6a692435085ca5125fe2b92a689773",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "96ef4effdc8935ec6430ef40b7cf8df5",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "0f926426969841db0c0de9f2400c379a",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "c44d3ce395e1e2ae66c0e6f7edeb5162",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "c3e94110b6b78f048fe851b9237eb318",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "7f8a6aaebc005da7fed6938c490583ad",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "befbdbdb24743dac71890d13fd91c9c9",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "b9eeb04d059008274ba3b8a8d43bee43",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "e259caf3538d721a6d98e75eea52232f",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "0301ee44945fdbe37f562b105bcfa637",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "0842805a2b7a22bd6611d675a3d5bc8b",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "455e8270255e204ff666d308729d8394",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "be8bdd483cf4076d82187893bcfba98c",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "9fb98b1315ddb8bc3ba0ca44c345deb8",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "4d1b42d4f49f40e3c476c9eed6a67d03",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "a03c4646e60092bb4c1b3554d878c067",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "520f65d1f0c55f6445f2b0eecfd955b3",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "7d43a17ebf6754ab776df42dd0ff427c",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "ffb50fe914c0f3adbddbb96d632fa3ce",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "c5ebbdbd0e36b0c591d79fce53d9fdab",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "1e355db92878f4515b3567aa8dfde4e0",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "4e8e6c9c43eebbed3bdb4ff4644743b5",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "b78d0817ea837c82073f0338db00a1a6",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "c48294ee229710c55f656ec8316b90b8",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "1add252d56e0acf9d54c5c17d9bcb626",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "94ef443d4de4e805bf61cac7cb6ccde1",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "17c30c1a162a6320c9fddcfaa53c791b",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "25971a2e72d7743e1fd928a30d2887d4",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "595118946b7031bf49dce4a6adcd9500",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "336a6b02255337df748a9f73a2a011ec",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "d15e84e5d82e4a1e0273cd2fae35a9a5",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "7b2030ffeecbd855edec3f6154933a58",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "1c375e8003442dd3d059bc0baa260e61",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "40daac4bbc8990d5140f97e792bc4fb1",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "1c375e8003442dd3d059bc0baa260e61",
@ -4154,14 +4154,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "36bb6f32ab12e2a46b82155a93b2e527",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "51884d81e2d7bdeb6b59a72f0247c8e1",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "36bb6f32ab12e2a46b82155a93b2e527",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "f629e97c70198ab3688f11ab4a2d1e97",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "a868c0116adf9f48f503b50b50c70cd8",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "04216607232edde485d139e9e96c6612",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "bdc158a2dfd592cd8dcb235a162a82fe",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "4a0340814c6034b39b2c08287935e26a",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "546ccf01f342463d46302b05c0171044",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "67bb2ff991e00433c1abba2044a0d21e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "8653a52a8fd75c527c976abb9d223e90",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "d05c5a6ce080fa3fc7c428cce5a33355",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "469d83a3e925ca952cc8cf568aa1788c",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "f8029971cd756dcd67ac51e6826eef6b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "68befbd9239dd04e6d3ef2a7ba7c6e71",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "5b564bbd1bb87c62c590662939a8287a",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "e32ebebff970306cccb7ff3de847a538",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "b00f4040bfd3db8c342e8210a941709a",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "1acc0316367d429a78f4bb1b604a0595",
"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 22180, api 9, 2025-01-11)
### 1.7.37 (build 22181, api 9, 2025-01-11)
- 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 = 22180
TARGET_BALLISTICA_BUILD = 22181
TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -163,6 +163,7 @@ class AccountSettingsWindow(bui.MainWindow):
size=(self._scroll_width, self._scroll_height),
claims_left_right=True,
selection_loops_to_parent=True,
border_opacity=0.4,
)
self._subcontainer: bui.Widget | None = None
self._refresh()

View File

@ -110,6 +110,7 @@ class AchievementsWindow(bui.MainWindow):
),
capture_arrows=True,
simple_culling_v=10,
border_opacity=0.4,
)
bui.widget(edit=self._scrollwidget, autoselect=True)
if uiscale is bui.UIScale.SMALL:

View File

@ -253,7 +253,10 @@ class CoopBrowserWindow(bui.MainWindow):
self._scroll_width = self._width - (130 + 2 * x_inset)
self._scroll_height = self._height - (
219 if uiscale is bui.UIScale.SMALL else 160
# 219 if uiscale is bui.UIScale.SMALL else 160
170
if uiscale is bui.UIScale.SMALL
else 160
)
self._subcontainerwidth = 800.0
@ -263,7 +266,8 @@ class CoopBrowserWindow(bui.MainWindow):
parent=self._root_widget,
highlight=False,
position=(
(65 + x_inset, 120)
# (65 + x_inset, 120)
(65 + x_inset, 70)
if uiscale is bui.UIScale.SMALL
else (65 + x_inset, 70)
),
@ -273,6 +277,29 @@ class CoopBrowserWindow(bui.MainWindow):
selection_loops_to_parent=True,
border_opacity=0.3 if uiscale is bui.UIScale.SMALL else 1.0,
)
if uiscale is bui.UIScale.SMALL:
bimg = bui.imagewidget(
parent=self._root_widget,
texture=bui.gettexture('uiAtlas'),
mesh_transparent=bui.getmesh('windowBGBlotch'),
position=(x_inset + 10.0, -20),
size=(500.0, 200.0),
color=(0.4, 0.37, 0.49),
# color=(1, 0, 0),
)
bui.widget(edit=bimg, depth_range=(0.9, 1.0))
bimg = bui.imagewidget(
parent=self._root_widget,
texture=bui.gettexture('uiAtlas'),
mesh_transparent=bui.getmesh('windowBGBlotch'),
position=(x_inset + self._scroll_width - 270, -20),
size=(500.0, 200.0),
color=(0.4, 0.37, 0.49),
# color=(1, 0, 0),
)
bui.widget(edit=bimg, depth_range=(0.9, 1.0))
self._subcontainer: bui.Widget | None = None
# Take note of our account state; we'll refresh later if this changes.
@ -742,7 +769,7 @@ class CoopBrowserWindow(bui.MainWindow):
h_scroll = bui.hscrollwidget(
parent=w_parent,
size=(self._scroll_width - 10, 205),
size=(self._scroll_width, 205),
position=(-5, v),
simple_culling_h=70,
highlight=False,
@ -836,7 +863,7 @@ class CoopBrowserWindow(bui.MainWindow):
for i in range(self._tournament_button_count):
tournament_h_scroll = h_scroll = bui.hscrollwidget(
parent=w_parent,
size=(self._scroll_width - 10, 205),
size=(self._scroll_width, 205),
position=(-5, v),
highlight=False,
border_opacity=0.0,
@ -918,7 +945,7 @@ class CoopBrowserWindow(bui.MainWindow):
self._custom_h_scroll = custom_h_scroll = h_scroll = bui.hscrollwidget(
parent=w_parent,
size=(self._scroll_width - 10, 205),
size=(self._scroll_width, 205),
position=(-5, v),
highlight=False,
border_opacity=0.0,

View File

@ -107,6 +107,7 @@ class CreditsWindow(bui.MainWindow):
height - (160 if uiscale is bui.UIScale.SMALL else 100),
),
capture_arrows=True,
border_opacity=0.4,
)
bui.widget(

View File

@ -262,6 +262,7 @@ class GatherWindow(bui.MainWindow):
),
texture=bui.gettexture('scrollWidget'),
mesh_transparent=bui.getmesh('softEdgeOutside'),
opacity=0.4,
)
self._tab_container: bui.Widget | None = None

View File

@ -89,6 +89,7 @@ class HelpWindow(bui.MainWindow):
height - (150 if uiscale is bui.UIScale.SMALL else 120),
),
capture_arrows=True,
border_opacity=0.4,
)
bui.widget(

View File

@ -119,7 +119,7 @@ class InboxWindow(bui.MainWindow):
self._width = 800 if uiscale is bui.UIScale.SMALL else 500
self._height = (
455
485
if uiscale is bui.UIScale.SMALL
else 370 if uiscale is bui.UIScale.MEDIUM else 450
)
@ -132,7 +132,7 @@ class InboxWindow(bui.MainWindow):
'menu_full' if uiscale is bui.UIScale.SMALL else 'menu_full'
),
scale=(
1.7
1.74
if uiscale is bui.UIScale.SMALL
else 1.5 if uiscale is bui.UIScale.MEDIUM else 1.15
),
@ -171,7 +171,7 @@ class InboxWindow(bui.MainWindow):
position=(
self._width * 0.5,
self._height
- (24 if uiscale is bui.UIScale.SMALL else 20)
- (45 if uiscale is bui.UIScale.SMALL else 20)
+ yoffs,
),
size=(0, 0),
@ -209,13 +209,14 @@ class InboxWindow(bui.MainWindow):
),
position=(
30,
(133 if uiscale is bui.UIScale.SMALL else 30) + yoffs,
(110 if uiscale is bui.UIScale.SMALL else 30) + yoffs,
),
capture_arrows=True,
simple_culling_v=200,
claims_left_right=True,
claims_up_down=True,
center_small_content_horizontally=True,
border_opacity=0.4,
)
bui.widget(edit=self._scrollwidget, autoselect=True)
if uiscale is bui.UIScale.SMALL:
@ -466,6 +467,8 @@ class InboxWindow(bui.MainWindow):
)
return
bui.scrollwidget(edit=self._scrollwidget, highlight=False)
bui.spinnerwidget(edit=self._loading_spinner, visible=False)
bui.textwidget(edit=self._infotext, text='')

View File

@ -143,6 +143,7 @@ class LeagueRankWindow(bui.MainWindow):
position=(65 + x_inset, 70),
size=(self._scroll_width, self._scroll_height),
center_small_content=True,
border_opacity=0.4,
)
bui.widget(edit=self._scrollwidget, autoselect=True)
bui.containerwidget(edit=self._scrollwidget, claims_left_right=True)

View File

@ -126,6 +126,7 @@ class PartyWindow(bui.Window):
size=(self._scroll_width, self._height - 200),
position=(30, 80),
color=(0.4, 0.6, 0.3),
border_opacity=0.6,
)
self._columnwidget = bui.columnwidget(
parent=self._scrollwidget, border=2, left_border=-200, margin=0

View File

@ -203,6 +203,7 @@ class PopupMenuWindow(PopupWindow):
highlight=False,
color=(0.35, 0.55, 0.15),
size=(self._width - 40, self._height - 40),
border_opacity=0.5,
)
self._columnwidget = bui.columnwidget(
parent=self._scrollwidget, border=2, margin=0

View File

@ -162,6 +162,7 @@ class AdvancedSettingsWindow(bui.MainWindow):
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

@ -350,6 +350,7 @@ class StoreBrowserWindow(bui.MainWindow):
size=(self._scroll_width, self._scroll_height),
claims_left_right=True,
selection_loops_to_parent=True,
border_opacity=0.4,
)
# NOTE: this stuff is modified by the _Store class.

View File

@ -160,6 +160,7 @@ class WatchWindow(bui.MainWindow):
),
texture=bui.gettexture('scrollWidget'),
mesh_transparent=bui.getmesh('softEdgeOutside'),
opacity=0.4,
)
self._tab_container: bui.Widget | None = None

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 = 22180;
const int kEngineBuildNumber = 22181;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;

View File

@ -725,7 +725,7 @@ void HScrollWidget::Draw(base::RenderPass* pass, bool draw_transparent) {
c.ScopedScissor({l + border_width_, b + border_height_ + 1,
l + (width()), b + (height() * 0.995f)});
auto xf = c.ScopedTransform();
c.Translate(thumb_center_x_, thumb_center_y_, 0.8f);
c.Translate(thumb_center_x_, thumb_center_y_, 0.75f);
c.Scale(-thumb_width_, thumb_height_, 0.1f);
c.FlipCullFace();
c.Rotate(-90, 0, 0, 1);

View File

@ -683,52 +683,54 @@ void ScrollWidget::Draw(base::RenderPass* pass, bool draw_transparent) {
base::EmptyComponent c(pass);
c.SetTransparent(draw_transparent);
auto scissor = c.ScopedScissor({l + border_width_, b + border_height_ + 1,
l + (width() - border_width_ - 0),
l + (width() - border_width_),
b + (height() - border_height_) - 1});
c.Submit(); // Get out of the way for children drawing.
set_simple_culling_bottom(b + border_height_ + 1);
set_simple_culling_top(b + (height() - border_height_) - 1);
// Scroll trough (depth 0.05 to 0.15).
if (explicit_bool(true)) {
if (draw_transparent) {
if (trough_dirty_) {
float r2 = l + width();
float l2 = r2 - scroll_bar_width_;
float b2;
float t2;
b2 = b + (border_height_);
t2 = t - (border_height_);
float l_border, r_border, b_border, t_border;
l_border = 3;
r_border = 0;
b_border = height() * 0.006f;
t_border = height() * 0.002f;
trough_width_ = r2 - l2 + l_border + r_border;
trough_height_ = t2 - b2 + b_border + t_border;
trough_center_x_ = l2 - l_border + trough_width_ * 0.5f;
trough_center_y_ = b2 - b_border + trough_height_ * 0.5f;
trough_dirty_ = false;
}
base::SimpleComponent c(pass);
c.SetTransparent(true);
c.SetColor(1.0f, 1.0f, 1.0f, border_opacity_);
c.SetTexture(g_base->assets->SysTexture(base::SysTextureID::kUIAtlas));
{
auto xf = c.ScopedTransform();
c.Translate(trough_center_x_, trough_center_y_, 0.05f);
c.Scale(trough_width_, trough_height_, 0.1f);
c.DrawMeshAsset(g_base->assets->SysMesh(
base::SysMeshID::kScrollBarTroughTransparent));
}
c.Submit();
}
}
// Draw all our widgets at our z level.
DrawChildren(pass, draw_transparent, l + extra_offs_x, b + extra_offs_y,
1.0f);
}
// Scroll trough (depth 0.7 to 0.8).
if (draw_transparent) {
if (trough_dirty_) {
float r2 = l + width();
float l2 = r2 - scroll_bar_width_;
float b2;
float t2;
b2 = b + (border_height_);
t2 = t - (border_height_);
float l_border, r_border, b_border, t_border;
l_border = 3;
r_border = 0;
b_border = height() * 0.006f;
t_border = height() * 0.002f;
trough_width_ = r2 - l2 + l_border + r_border;
trough_height_ = t2 - b2 + b_border + t_border;
trough_center_x_ = l2 - l_border + trough_width_ * 0.5f;
trough_center_y_ = b2 - b_border + trough_height_ * 0.5f;
trough_dirty_ = false;
}
base::SimpleComponent c(pass);
c.SetTransparent(true);
c.SetColor(1, 1, 1, border_opacity_);
c.SetTexture(g_base->assets->SysTexture(base::SysTextureID::kUIAtlas));
{
auto xf = c.ScopedTransform();
c.Translate(trough_center_x_, trough_center_y_, 0.7f);
c.Scale(trough_width_, trough_height_, 0.1f);
c.DrawMeshAsset(g_base->assets->SysMesh(
base::SysMeshID::kScrollBarTroughTransparent));
}
c.Submit();
}
// Scroll bars.
if (amount_visible_ > 0 && amount_visible_ < 1) {
// Scroll thumb at depth 0.8 - 0.9.