Repository navigation
GUI
SLTextureDecoderGUI.exe is the Qt 6 Widgets front end. It does the same work as
the command line tool, through the same batch engine, with a window instead of
a log file.
.\build\bin\SLTextureDecoderGUI.exe+------------------------------------------------------------------+
| Cache and output |
| Cache folder [ D:\FS Cache\texturecache ] [Browse] |
| Output folder [ D:\textures ] [Browse] |
| 196700 records, 54825 decodable textures, encoder KDU v8.4.1 |
+------------------------------------------------------------------+
| Options |
| [ ] Complete records only [ ] Overwrite existing files |
| [ ] Verbose log Threads: [ 4] Limit: [all] |
+------------------------------------------------------------------+
| [Start conversion] [Cancel] [Open output folder] [Clear log] |
| [=============================== ] |
| 120 of 300 converted - 118 written (83 best effort), ... |
+------------------------------------------------------------------+
| results list (uuid.png, size, components) | preview of the PNG |
| | |
+------------------------------------------------------------------+
| log view (coloured: info / verbose / warning / error) |
+------------------------------------------------------------------+
| Ready Educational use only - not affiliated |
+------------------------------------------------------------------+
| Field | Meaning |
|---|---|
| Cache folder | the directory holding texture.entries, texture.cache and the 0..f shards; the tooltip repeats the usual %APPDATA%\SecondLife_x64\texturecache location |
| Output folder | empty means <cache>/png; picking a cache folder fills it with <cache>/png if it is still empty |
| cache info line | after a cache is chosen (or the path is edited): N records, M decodable textures, encoder ..., or Not a usable cache: <reason>
|
| Complete records only |
--complete-only: skip the records whose cached codestream is truncated |
| Overwrite existing files |
--overwrite; without it a texture whose PNG is already there is skipped, which is how a run is resumed |
| Verbose log | log every texture instead of only warnings and errors |
| Threads | worker threads, 0 shown as auto = one per logical CPU (the default) |
| Limit | convert at most this many textures, 0 shown as all
|
Buttons: Start conversion (browse folders, then go), Cancel (stops the run after the textures currently being decoded - the status line says "Cancelling..."), Open output folder (enabled after a run), Clear log.
The results list keeps the first 2000 textures of a run as
<uuid>.png 512x512 3 comp 1.2 MiB, with (partial) for best effort results.
Selecting an entry previews the PNG (scaled to at most 512x512) on the right.
Everything you set is remembered in QSettings("SLTextureDecoder", "GUI"), i.e.
the registry key:
HKCU\Software\SLTextureDecoder\GUI
cacheDir, outputDir, completeOnly, overwrite, verbose, jobs, limit
Settings are written when a run starts, when the window closes and when a path field is finished editing. Delete the key to get the defaults back.
Closing asks the worker to stop and waits up to 15 seconds for the texture that is currently being decoded. If it is still busy, the window stays open and tells you to close it again in a moment - that way no half written PNG is left behind.
The same binary converts without a window, which is what makes it suitable for a scheduled task:
SLTextureDecoderGUI.exe --batch --jobs 4 --cache-dir "D:\FS Cache\texturecache" --out-dir D:\textures-
--batchnever creates aQApplicationwindow and attaches to the console of the calling shell (--batch > run.logstill works). - All CLI options are accepted (
--limit,--complete-only,--id,--index,-v, ...) plus--jobs <n>/--jobs=<n>, where0(the default) means one worker per logical CPU. - Exit codes are those of Usage.
-
--versionprints the version plus the educational-use and no-affiliation line,--helpappends the two GUI-only options to the CLI help.
The status bar keeps a permanent label
Educational use only - not affiliated with Linden Lab or the Firestorm project
with a tooltip explaining that the cache is opened read-only, that no network
access happens and that the rights in the textures stay with their creators. The
same text is available from the command line through --help / --version, and
the full notice is in
NOTICE.md
- see Legal notice.
MIT licensed - the licence covers the source code only, never the decoded textures. Educational and research use only; not affiliated with Linden Research, Inc. or the Phoenix Firestorm Project - see the Legal notice.
SLTextureDecoder