diff --git a/src/ogfx/render/BasicRenderer.cpp b/src/ogfx/render/BasicRenderer.cpp index 606e71b..c8b4290 100644 --- a/src/ogfx/render/BasicRenderer.cpp +++ b/src/ogfx/render/BasicRenderer.cpp @@ -248,7 +248,7 @@ namespace ogfx if (!font) font = m_font; auto l_buildCacheKey = [&](void) -> String { - return String("").add(message).add(fontSize).add(reinterpret_cast(font)); + return String("").add(message).add(fontSize).add(font); }; String cacheKey = l_buildCacheKey(); diff --git a/src/ostd/string/String.cpp b/src/ostd/string/String.cpp index 6bb07d4..2e0cf75 100644 --- a/src/ostd/string/String.cpp +++ b/src/ostd/string/String.cpp @@ -265,6 +265,13 @@ namespace ostd return add(s); } + String& String::add(const void* p, const String& prefix) + { + std::stringstream stream; + stream << prefix << std::hex << std::uppercase << reinterpret_cast(p); + return add(stream.str()); + } + //New String @@ -431,6 +438,12 @@ namespace ostd return __str.add(f, precision); } + String String::new_add(const void* p, const String& prefix) + { + String __str = m_data; + return __str.add(p, prefix); + } + //Utility diff --git a/src/ostd/string/String.hpp b/src/ostd/string/String.hpp index 22fa7b3..f427bb7 100644 --- a/src/ostd/string/String.hpp +++ b/src/ostd/string/String.hpp @@ -122,6 +122,7 @@ namespace ostd String& add(i64 i); String& add(f32 f, u8 precision = 0); String& add(f64 f, u8 precision = 0); + String& add(const void* p, const String& prefix = "0x"); //New String String new_ltrim(void) const; @@ -152,6 +153,7 @@ namespace ostd String new_add(i64 i) const; String new_add(f32 f, u8 precision = 0) const; String new_add(f64 f, u8 precision = 0) const; + String new_add(const void* p, const String& prefix = "0x"); //Utility i64 toInt(void) const;