graphics: migrate drawables to shared ownership

- introduce DrawablePtr and per-consumer createInstance() semantics
  - add TextureDrawable wrappers backed by shared TexturePtr handles
  - migrate regions, sprites, nine-patches, state lists, skins, groups, gradients,
    UI widgets, tools, modules, ecode, and eeiv to shared drawable ownership
  - remove ownIt flags, manual drawable deletion, and unload-based lifetime handling
  - replace drawable callback IDs with RAII change connections
  - move Variant drawable storage outside its scalar union
  - split UIIcon source lookup from explicit drawable instance creation
  - retain icon instances used by rendering loops instead of cloning per frame
  - avoid shared source mutation in texture-region consumers
  - use drawable type tags instead of RTTI casts
  - fix nearest-size UIIcon lookup
  - document the drawable source/instance contract and add ownership tests
This commit is contained in:
Martín Lucas Golini
2026-07-20 01:09:36 -03:00
parent 04f600bef5
commit dc377335b9
131 changed files with 1747 additions and 1178 deletions
+1 -1
View File
@@ -838,7 +838,7 @@ void AppConfig::loadDocuments( UICodeEditorSplitter* editorSplitter, json j,
editorSplitter->removeUnusedTab( curTabWidget, true, false );
if ( icon )
tab->setIcon( icon );
tab->setIcon( std::move( icon ) );
if ( curTabWidget->getTabCount() == totalToLoad )
curTabWidget->setTabSelected(