Files
leocad/common
Leonardo Zide 1098c2de75 Separate texture management from library source access
Texture lookup, references, decoding, and scheduling were mixed into the pieces library. Introduce lcTextureManager to own texture identities, references, and CPU decoding, while keeping source lookup and file indexes in the library and asynchronous scheduling, uploads, retries, and publication in lcAssetLoader.

Add lcFileSourceSnapshot and OpenFile to return owned disk or memory streams. The library opens files on the existing loading thread and passes lcFile references to the manager. Image decoding uses QFile or existing memory buffers directly, preserving file cursors without an extra adapter.

Hide loader-only texture services, centralize failure state and diagnostics in lcTexture::SetFailed, and use each zip archive internal extraction lock instead of a library-wide mutex. Workers are drained before archive replacement or texture-manager teardown.

Validation: debug build, file ownership and cursor checks, texture lookup and decoding checks, bounded upload-retry and reference-release checks, 800 concurrent archive reads, and matching native GPU renders for embedded and disk textures.
2026-10-12 11:45:25 -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-04-29 20:59:17 -07:00
2026-04-29 20:59:17 -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-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-09-30 10:03:54 +02: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-04-29 20:59:17 -07:00
2026-05-02 15:08:13 -07:00
2026-05-02 15:08:13 -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-03-10 21:11:40 -07:00
2026-09-21 22:34:18 -07:00
2026-09-12 15:54:44 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-09-12 15:54:44 -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-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-03-30 22:50:17 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
…
2026-03-10 19:55:49 -07:00
2026-03-10 21:11:40 -07:00