mirror of
https://github.com/minetest/irrlicht.git
synced 2025-06-28 14:26:06 +02:00
Merge branch 'master' into opengl3
This commit is contained in:
@ -963,11 +963,11 @@ public:
|
||||
#endif
|
||||
|
||||
if (sizeof(wchar_t) == 4)
|
||||
append(reinterpret_cast<const uchar32_t* const>(c));
|
||||
append(reinterpret_cast<const uchar32_t*>(c));
|
||||
else if (sizeof(wchar_t) == 2)
|
||||
append(reinterpret_cast<const uchar16_t* const>(c));
|
||||
append(reinterpret_cast<const uchar16_t*>(c));
|
||||
else if (sizeof(wchar_t) == 1)
|
||||
append(reinterpret_cast<const uchar8_t* const>(c));
|
||||
append(reinterpret_cast<const uchar8_t*>(c));
|
||||
}
|
||||
|
||||
|
||||
@ -982,11 +982,11 @@ public:
|
||||
#endif
|
||||
|
||||
if (sizeof(wchar_t) == 4)
|
||||
append(reinterpret_cast<const uchar32_t* const>(c), length);
|
||||
append(reinterpret_cast<const uchar32_t*>(c), length);
|
||||
else if (sizeof(wchar_t) == 2)
|
||||
append(reinterpret_cast<const uchar16_t* const>(c), length);
|
||||
append(reinterpret_cast<const uchar16_t*>(c), length);
|
||||
else if (sizeof(wchar_t) == 1)
|
||||
append(reinterpret_cast<const uchar8_t* const>(c), length);
|
||||
append(reinterpret_cast<const uchar8_t*>(c), length);
|
||||
}
|
||||
|
||||
|
||||
@ -1116,11 +1116,11 @@ public:
|
||||
ustring16& operator=(const wchar_t* const c)
|
||||
{
|
||||
if (sizeof(wchar_t) == 4)
|
||||
*this = reinterpret_cast<const uchar32_t* const>(c);
|
||||
*this = reinterpret_cast<const uchar32_t*>(c);
|
||||
else if (sizeof(wchar_t) == 2)
|
||||
*this = reinterpret_cast<const uchar16_t* const>(c);
|
||||
*this = reinterpret_cast<const uchar16_t*>(c);
|
||||
else if (sizeof(wchar_t) == 1)
|
||||
*this = reinterpret_cast<const uchar8_t* const>(c);
|
||||
*this = reinterpret_cast<const uchar8_t*>(c);
|
||||
|
||||
return *this;
|
||||
}
|
||||
@ -3049,14 +3049,14 @@ public:
|
||||
|
||||
//! Gets the encoding of the Unicode string this class contains.
|
||||
//! \return An enum describing the current encoding of this string.
|
||||
const unicode::EUTF_ENCODE getEncoding() const
|
||||
unicode::EUTF_ENCODE getEncoding() const
|
||||
{
|
||||
return encoding;
|
||||
}
|
||||
|
||||
//! Gets the endianness of the Unicode string this class contains.
|
||||
//! \return An enum describing the endianness of this string.
|
||||
const unicode::EUTF_ENDIAN getEndianness() const
|
||||
unicode::EUTF_ENDIAN getEndianness() const
|
||||
{
|
||||
if (encoding == unicode::EUTFE_UTF16_LE ||
|
||||
encoding == unicode::EUTFE_UTF32_LE)
|
||||
@ -3612,33 +3612,5 @@ inline std::wostream& operator<<(std::wostream& out, const ustring16& in)
|
||||
return out;
|
||||
}
|
||||
|
||||
namespace unicode
|
||||
{
|
||||
|
||||
//! Hashing algorithm for hashing a ustring. Used for things like unordered_maps.
|
||||
//! Algorithm taken from std::hash<std::string>.
|
||||
class hash : public std::unary_function<core::ustring, size_t>
|
||||
{
|
||||
public:
|
||||
size_t operator()(const core::ustring& s) const
|
||||
{
|
||||
size_t ret = 2166136261U;
|
||||
size_t index = 0;
|
||||
size_t stride = 1 + s.size_raw() / 10;
|
||||
|
||||
core::ustring::const_iterator i = s.begin();
|
||||
while (i != s.end())
|
||||
{
|
||||
// TODO: Don't force u32 on an x64 OS. Make it agnostic.
|
||||
ret = 16777619U * ret ^ (size_t)s[(u32)index];
|
||||
index += stride;
|
||||
i += stride;
|
||||
}
|
||||
return (ret);
|
||||
}
|
||||
};
|
||||
|
||||
} // end namespace unicode
|
||||
|
||||
} // end namespace core
|
||||
} // end namespace irr
|
||||
|
Reference in New Issue
Block a user