]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/irrlicht_changes/CGUITTFont.h
Fixes needed to use irrArray backed by std::vector (#12263)
[dragonfireclient.git] / src / irrlicht_changes / CGUITTFont.h
index 9457e5b182fa5ed27789970c533700a05578403e..210222ed4d21a036885ba4017e8e623d5d3d57ef 100644 (file)
@@ -37,6 +37,7 @@
 #include <map>
 #include <irrUString.h>
 #include "util/enriched_string.h"
+#include "util/basic_macros.h"
 #include FT_FREETYPE_H
 
 namespace irr
@@ -46,23 +47,34 @@ namespace gui
        struct SGUITTFace;
        class CGUITTFont;
 
-       //! Class to assist in deleting glyphs.
-       class CGUITTAssistDelete
-       {
-               public:
-                       template <class T, typename TAlloc>
-                       static void Delete(core::array<T, TAlloc>& a)
-                       {
-                               TAlloc allocator;
-                               allocator.deallocate(a.pointer());
-                       }
-       };
-
        //! Structure representing a single TrueType glyph.
        struct SGUITTGlyph
        {
                //! Constructor.
-               SGUITTGlyph() : isLoaded(false), glyph_page(0), surface(0), parent(0) {}
+               SGUITTGlyph() :
+                       isLoaded(false),
+                       glyph_page(0),
+                       source_rect(),
+                       offset(),
+                       advance(),
+                       surface(0),
+                       parent(0)
+               {}
+
+               DISABLE_CLASS_COPY(SGUITTGlyph);
+
+               //! This class would be trivially copyable except for the reference count on `surface`.
+               SGUITTGlyph(SGUITTGlyph &&other) :
+                       isLoaded(other.isLoaded),
+                       glyph_page(other.glyph_page),
+                       source_rect(other.source_rect),
+                       offset(other.offset),
+                       advance(other.advance),
+                       surface(other.surface),
+                       parent(other.parent)
+               {
+                       other.surface = 0;
+               }
 
                //! Destructor.
                ~SGUITTGlyph() { unload(); }