Leonardo Zide
cd6cf53c7b
Propagate parts-list rendering failures with lcResult
...
A null framebuffer readback was treated as empty geometry, so a parts
list could retain a blank entry or silently omit it after rendering failed.
The QImage return type also conflated an empty inventory with an error.
Return lcResult<QImage> and abort on failed thumbnail readback after
framebuffer and renderer cleanup. Report framebuffer creation and image
allocation failures explicitly while preserving successful empty inventory
and unavailable-geometry behavior. HTML export propagates the error text;
the instructions UI clears its stale image and displays a warning parented
to the scene's view.
Validation: full debug build and whitespace checks passed. A temporary
OpenGL fault-injection harness covered first and later readback failures
with both missing-parts policies, framebuffer creation failure, successful
empty results, and restoration of caller context, surface, and framebuffer
bindings. The warning dialog was not exercised interactively.
2026-10-05 14:18:57 -07:00
..
2026-10-05 13:55:22 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-09-19 10:01:40 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-10-04 13:57:35 -07:00
2026-09-16 23:03:16 -07:00
2026-04-29 20:59:17 -07:00
2026-10-05 13:54:50 -07:00
2026-10-04 19:29:33 -07:00
2026-09-30 10:03:54 +02:00
2026-09-12 15:54:44 -07:00
2026-09-12 15:54:44 -07:00
2026-07-29 22:48:12 -07:00
2025-12-07 16:48:07 -08:00
2026-03-10 21:11:40 -07:00
2025-07-11 18:18:57 -07:00
2025-08-09 12:53:38 -07:00
2025-08-09 12:53:38 -07:00
2026-03-10 21:11:40 -07:00
2025-08-09 12:53:38 -07:00
2026-09-30 10:03:54 +02:00
2026-10-05 14:01:41 -07:00
2026-10-05 14:01:41 -07:00
2026-09-13 16:15:37 -07:00
2026-09-13 16:15:37 -07:00
2026-04-23 22:34:59 -07:00
2026-03-30 22:33:23 -07:00
2026-03-30 22:33:23 -07:00
2026-03-30 22:33:23 -07:00
2025-11-19 23:10:18 -08:00
2025-11-23 22:52:28 -08:00
2026-03-10 21:11:40 -07:00
2025-07-24 16:48:04 -07:00
2026-03-10 21:11:40 -07:00
2026-02-16 15:19:56 -08:00
2026-04-05 22:23:30 -07:00
2026-10-04 13:57:35 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-05-02 15:08:13 -07:00
2026-05-02 15:08:13 -07:00
2026-09-27 10:59:34 -07:00
2026-04-23 22:34:59 -07:00
2026-05-02 15:51:08 -07:00
2026-09-12 15:54:44 -07:00
2026-05-02 15:51:08 -07:00
2026-09-27 10:59:34 -07:00
2026-10-05 14:18:57 -07:00
2025-07-11 18:18:57 -07:00
2026-03-10 21:11:40 -07:00
2025-06-28 11:11:05 -07:00
2026-10-05 13:54:50 -07:00
2026-10-05 13:54:50 -07:00
2026-09-28 09:22:09 -07:00
2026-09-28 09:22:09 -07:00
2026-10-04 17:19:28 -07:00
2026-09-30 10:15:44 -07:00
2026-09-21 22:34:18 -07:00
2026-10-04 11:37:19 -07:00
2026-09-27 10:59:34 -07:00
2026-10-05 13:54:50 -07:00
2026-10-04 12:37:17 -07:00
2026-03-10 21:11:40 -07:00
2025-12-06 17:30:34 -08:00
2025-06-30 19:23:51 -07:00
2026-10-05 14:18:57 -07:00
2026-10-05 14:18:57 -07:00
2026-09-28 09:22:09 -07:00
2026-09-28 09:22:09 -07:00
2026-09-12 15:54:44 -07:00
2026-05-10 14:51:51 -07:00
2026-05-10 14:51:51 -07:00
2026-02-11 20:15:26 -08:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-05-03 15:30:11 -07:00
2026-04-29 20:25:23 -07:00
2026-09-18 16:21:24 -07:00
2025-07-08 19:31:27 -07:00
2026-09-27 10:59:34 -07:00
2026-09-18 16:21:24 -07:00
2026-09-28 22:49:16 -07:00
2026-09-28 22:49:16 -07:00
2026-09-16 23:03:16 -07:00
2026-09-16 23:03:16 -07:00
2026-09-13 16:15:37 -07:00
2026-09-13 16:15:37 -07:00
2026-09-12 15:54:44 -07:00
2026-09-26 16:06:20 -07:00
2026-09-28 11:39:49 -07:00
2026-05-02 16:06:27 -07:00
2026-05-02 16:06:27 -07:00
2026-05-02 16:06:27 -07:00
2026-09-12 15:54:44 -07:00
2026-05-03 15:30:11 -07:00
2026-09-27 10:59:34 -07:00
2026-03-10 21:11:40 -07:00
2025-07-05 12:00:52 -07:00
2026-09-30 10:15:44 -07:00
2026-09-30 10:15:44 -07:00
2026-03-10 21:11:40 -07:00
2025-12-15 11:19:23 -03:00
2025-11-23 22:52:28 -08:00
2026-09-28 22:49:16 -07:00
2026-09-28 22:49:16 -07:00
2026-09-25 16:58:29 -07:00
2026-09-25 16:58:29 -07:00
2026-10-05 13:31:21 -07:00
2026-09-28 22:49:16 -07:00
2026-10-04 11:32:47 -07:00
2025-07-19 12:01:12 -07:00
2025-07-19 12:01:12 -07:00
2026-04-23 22:34:59 -07:00
2026-04-29 20:59:17 -07:00
2026-03-30 22:50:17 -07:00
2026-10-05 13:33:16 -07:00
2026-09-28 11:39:49 -07:00
2026-10-01 14:19:30 -07:00
2026-10-01 14:19:30 -07:00
2026-09-18 18:23:32 -07:00
2026-09-16 23:03:16 -07:00
2026-09-13 16:31:31 -07:00
2026-05-06 20:59:46 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-09-25 16:58:29 -07:00
2025-07-26 12:49:37 -07:00
2026-03-10 19:55:49 -07:00
2026-03-10 21:11:40 -07:00
2026-10-04 14:05:54 -07:00
2026-10-04 13:57:35 -07:00
2026-10-04 13:57:35 -07:00
2026-10-04 13:57:35 -07:00
2026-10-05 14:18:57 -07:00
2026-10-04 13:57:35 -07:00
2026-09-19 10:01:40 -07:00
2026-09-16 23:03:16 -07:00