DarkRadiant: master 5363c1c2

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 30.11.2022 20:34 master dc63b7c4
Affected Issues  0006178: Sporadic assertion failure on shutdown due to LocalBitmapArtProvider destruction
Changeset 0006178: ArtProvider is now local to RadiantApp class

LocalBitmapArtProvider was only ever constructed and owned by
RadiantApp; the reason it was exposed as a wxutil header was for the
ArtIdPrefix() method, which was used in a single other header
(Bitmap.h).

LocalBitmapArtProvider is now RadiantApp::ArtProvider, a local nested
class which is not exposed anywhere else. The functions in Bitmap.h just
use the "darkradiant:" prefix explicitly, which could be seen as
duplication but (1) the prefix is very unlikely to change, and (2) the
redundancy isn't serious enough to justify exposing the art provider
class and its method(s) through several headers and their dependent
shared objects.

Also removed the LocalBitmapArtProvider destructor which explicitly
removed the art provider from wxWidgets. This appeared to be redundant
because the wxArtProvider base class already does this in its own
destructor (according to documentation).
mod - libs/wxutil/Bitmap.h Diff File
rm - libs/wxutil/LocalBitmapArtProvider.h Diff
mod - radiant/RadiantApp.cpp Diff File
mod - radiant/RadiantApp.h Diff File
mod - radiant/ui/materials/editor/MaterialEditor.cpp Diff File
mod - radiant/ui/skin/SkinEditor.cpp Diff File
mod - radiant/xyview/GlobalXYWnd.cpp Diff File