Merge branch 'find' of https://github.com/lioncash/urde into lioncash-find

This commit is contained in:
Phillip Stephens 2020-04-05 05:11:20 -07:00
commit 5fc8f2ccd2
Signed by: Antidote
GPG Key ID: F8BEE4C83DACA60D
2 changed files with 14 additions and 10 deletions

View File

@ -1,5 +1,7 @@
#include "Runtime/GuiSys/CRasterFont.hpp"
#include <algorithm>
#include "Runtime/CSimplePool.hpp"
#include "Runtime/Graphics/CTexture.hpp"
#include "Runtime/GuiSys/CDrawStringOptions.hpp"
@ -84,6 +86,17 @@ CRasterFont::CRasterFont(urde::CInputStream& in, urde::IObjectStore& store) {
x0_initialized = true;
}
const CGlyph* CRasterFont::InternalGetGlyph(char16_t chr) const {
const auto iter =
std::find_if(xc_glyphs.cbegin(), xc_glyphs.cend(), [chr](const auto& entry) { return entry.first == chr; });
if (iter == xc_glyphs.cend()) {
return nullptr;
}
return &iter->second;
}
void CRasterFont::SinglePassDrawString(const CDrawStringOptions& opts, int x, int y, int& xout, int& yout,
CTextRenderBuffer* renderBuf, const char16_t* str, s32 length) const {
if (!x0_initialized)

View File

@ -109,16 +109,7 @@ class CRasterFont {
s32 x8c_baseline;
s32 x90_lineMargin = 0;
const CGlyph* InternalGetGlyph(char16_t chr) const {
u32 i = 0;
for (; i < xc_glyphs.size(); ++i)
if (chr == xc_glyphs[i].first)
break;
if (i == xc_glyphs.size())
return nullptr;
return &xc_glyphs[i].second;
}
const CGlyph* InternalGetGlyph(char16_t chr) const;
public:
CRasterFont(CInputStream& in, IObjectStore& store);