Commit Graph

341 Commits

Author SHA1 Message Date
Bartosz Taudul
ef18ae1b7a Enable user manual links in achievements window. 2026-10-11 23:27:38 +02:00
Bartosz Taudul
607f6a7caf Award the manual achievement from the shared window state.
All ManualWindow instances share the show state, so one check covers the
welcome screen and the view; the old copies were button-only and gated on
a construction-time config snapshot.
2026-10-11 23:27:38 +02:00
Bartosz Taudul
da10087fe9 Highlight the achievements mini-popup on hover.
The built-in tooltip border is rendered at frame end in the global
ImGuiCol_Border, so it cannot react to hover; suppress it via
PopupBorderSize and stroke the same rect manually.
2026-10-11 23:27:37 +02:00
Bartosz Taudul
68e1642711 Animate the star when achievement is unlocked. 2026-10-11 23:27:37 +02:00
Bartosz Taudul
5ea1ab28d0 Make the achievements star rotatable and scalable. 2026-10-11 23:27:32 +02:00
Bartosz Taudul
afb16f68d3 Add a user manual achievement. 2026-10-07 21:21:54 +02:00
Bartosz Taudul
6e1f51ae70 Point the welcome screen's Manual button at the built-in manual. 2026-10-07 21:18:09 +02:00
Bartosz Taudul
ba4a19bb45 Only record achievements when the feature is enabled.
The intro and global-settings achievements recorded state even while
achievements were disabled, so the intro toast could be consumed before the
user ever enabled the feature — and then never appear when they later opted
in. The intro now fires at the enable points, so it shows the first time the
feature is enabled.
2026-10-07 21:18:07 +02:00
Bartosz Taudul
1381f40bd9 Represent the user interface scale as a preset table index.
Replace the userScale float with a zoomLevel index into s_zoomPresets;
the ini key changes accordingly and previously saved floats are ignored.
2026-09-13 16:21:05 +02:00
Bartosz Taudul
63ffadc852 Load the startup trace in a background thread.
Opening and parsing on the browser main thread froze the tab for the
whole load; the file selector path already loads in a worker thread,
so boot now uses the same thread, progress modal, and error dialogs.
2026-09-12 22:19:59 +02:00
Bartosz Taudul
af3432cfde Fetch the startup trace instead of preloading the embedded one.
The preloaded data package made every ?t= load download embed.tracy
as well. The startup glue now fetches embed.tracy only when no URL is
given, into the same /url.tracy slot, and the boot code has a single
open path.
2026-09-12 22:19:59 +02:00
Bartosz Taudul
27f12a4eb5 Report unloadable trace files on the command line instead of crashing.
Version and integrity checks throw from the View constructor, which
was outside the try/catch guarding the file open, so a bad argv trace
terminated the process. Catch and report it there as well.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
8107754a3c Support loading trace files from URL in web version. 2026-09-12 13:08:04 +02:00
Bartosz Taudul
ed468d8625 Reject truncated trace files.
Block sizes weren't checked against the file length, so truncated files
made the decompression threads read off the mapping. Validate framing
(u32 size + payload) before the mapping and threads exist; also reject
zero-stream or empty files.
2026-09-09 01:04:55 +02:00
Bartosz Taudul
23ffe89d24 Abort pending update check on profiler exit. 2026-08-22 02:20:24 +02:00
Bartosz Taudul
246139fb04 Show the NFD error message in the file selector failure popup.
When the native dialog failed, the popup said "File selector cannot
be displayed. Check nfd library implementation for details." but never
showed any details: NFD_GetError() was never read, so the actual
failure reason (e.g. the xdg-desktop-portal lacking a FileChooser
implementation on the session) was invisible and the user was stuck
without a way to open or save traces.

Capture NFD_GetError() into a static string when
NFD_OpenDialogU8_With()/NFD_SaveDialogU8_With() return NFD_ERROR and
display it in the popup. The copy is required: the returned pointer
references NFD-internal storage (the D-Bus error message or a static
buffer) that is overwritten by the next NFD call or cleared on
shutdown. In TRACY_NO_FILESELECTOR builds no NFD exists, so the
previous fallback line is kept there.

The error is shown as a single line (TextUnformatted) rather than
wrapped: in an AlwaysAutoResize window the wrap width is derived from
the previous frame's window size, which feeds back into the auto-size
and oscillates, converging to a narrow multi-line column for a ~110
character D-Bus message.
2026-08-21 20:20:45 +02:00
Bartosz Taudul
dcc86d343b Link to cropped guadec video. 2026-08-06 21:21:26 +02:00
David McCloskey
064d400cf1 Ordering the clients in the connection dialog to prevent jumping in the list. Ordering by time still caused jumps. 2026-07-27 15:33:14 -05:00
Bartosz Taudul
7986dc18d0 Add yalter's guadec presentation to list of videos. 2026-07-23 01:53:54 +02:00
Bartosz Taudul
562fea5564 Add DPI change notification method in View. 2026-07-18 13:17:42 +02:00
Bartosz Taudul
81cb4acbe6 Use ImGui mouse button identifiers instead of raw numeric ids. 2026-07-05 18:47:38 +02:00
Bartosz Taudul
db383f738b Store window handle for file selector. 2026-07-02 01:26:58 +02:00
Bartosz Taudul
eeab1bf1a9 Border sizes are scaled by ScaleAllSizes() since ImGui 1.92.7. 2026-06-17 22:37:30 +02:00
Bartosz Taudul
f441a5070b Wrap achievements column contents into child windows. 2026-06-06 13:19:56 +02:00
Bartosz Taudul
00b6abd67b Move achievements text to markdown files. 2026-06-06 13:19:55 +02:00
Bartosz Taudul
86fbe529ed Bump font awesome to 7.2. 2026-06-05 23:28:09 +02:00
Bartosz Taudul
9da66d4c6b Add icon texture accessor. 2026-05-27 22:33:56 +02:00
Bartosz Taudul
6f91104542 Include git ref in profiler's --help output. 2026-03-28 12:44:12 +01:00
Bartosz Taudul
49590756a0 Extract broadcast message parsing into TracyBroadcast
Move broadcast message parsing logic from profiler/src/main.cpp into
server/TracyBroadcast.cpp/hpp. This reduces code duplication and enables
reuse by other tools (e.g., multi-capture).

ParseBroadcastMessage() handles all broadcast protocol versions (0-3) and
returns std::optional<BroadcastMessage>. ClientUniqueID() generates a unique
identifier from IP address and port.

Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu>
2026-03-02 19:45:48 +01:00
DaniPopes
12a964d3be fix: UI zoom scale not applying on macOS
On macOS with Retina displays, dpiScale is 2.0 but gets overridden to
userScale alone under __APPLE__. The early-return check compared
prevScale against the pre-override value (dpiScale * userScale), which
for 50% zoom evaluates to 2.0 * 0.5 = 1.0, matching the previous
prevScale of 1.0 and causing an early return before the scale change
could take effect. Moving the __APPLE__ override before the early-return
check ensures the comparison uses the actual effective scale.
2026-02-10 16:33:02 -05:00
Bartosz Taudul
a9ea7ec1c9 Workaround libc++ issues. 2026-02-01 18:57:49 +01:00
Bartosz Taudul
8f0c83dbf9 Fix View ptr assignment. 2026-02-01 18:55:53 +01:00
Bartosz Taudul
c86549a3bb View is accessed concurrently. 2026-02-01 17:29:34 +01:00
Bartosz Taudul
4fe8d16a20 Add support for source file links in markdown renderer. 2026-01-31 18:03:11 +01:00
David Kern
0a438193ba fix: 2x scaling on macos with ImGui 1.92 2026-01-15 17:01:40 -08:00
Bartosz Taudul
24ea5118e0 Rename DrawWaitingDots() to DrawWaitingDotsCentered(). 2026-01-14 02:12:00 +01:00
Bartosz Taudul
3ae9db27de Change chat icon to a two-way conversation. 2026-01-11 19:10:58 +01:00
Bartosz Taudul
63a8b4cfb4 Use proper UTF ellipsis. 2025-12-31 18:28:57 +01:00
Bartosz Taudul
adefaff0cc RasterizerDensity is obsolete now. 2025-07-13 12:49:23 +02:00
Bartosz Taudul
9ee6af33a4 Format achievements intro message with markdown. 2025-07-12 23:54:49 +02:00
Bartosz Taudul
d4094f45cc Replace all deprecated ImGui functionality. 2025-07-12 19:50:37 +02:00
Bartosz Taudul
1dd4c2d670 Update ImGui to 1.92.0-docking. 2025-07-12 14:36:47 +02:00
Bartosz Taudul
f9be40ae7c Update wording. 2025-07-12 11:50:28 +02:00
Bartosz Taudul
9c648232a8 Disable LLM integration on emscripten. 2025-07-12 11:50:18 +02:00
Bartosz Taudul
d5b3de6b3a Fix aliasing of button names in options. 2025-07-12 11:50:15 +02:00
Bartosz Taudul
fb0d4f0d82 Make config accessible to all code without extern hacks. 2025-07-12 11:50:15 +02:00
Bartosz Taudul
d1c67a93c6 Make readability.js optional. 2025-07-12 11:50:13 +02:00
Bartosz Taudul
85086c461b Separate selection of LLM and embeddings model. 2025-07-12 11:50:10 +02:00
Bartosz Taudul
b398a4641a Switch from Ollama API to OpenAI API commonly used by all LLM providers. 2025-07-12 11:50:08 +02:00
Bartosz Taudul
eae3c7ef80 Remove LLM config from global settings (leave just LLM checkbox). 2025-07-12 11:50:08 +02:00