1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Fixes needed to use irrArray backed by std::vector (#12263)

This commit is contained in:
paradust7 2022-05-21 15:11:49 -07:00 committed by GitHub
parent bc59fcf5c5
commit 2742fef458
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 77 additions and 55 deletions

View file

@ -292,9 +292,6 @@ shadow_offset(0), shadow_alpha(0), fallback(0)
Driver->grab();
setInvisibleCharacters(L" ");
// Glyphs aren't reference counted, so don't try to delete them when we free the array.
Glyphs.set_free_when_destroyed(false);
}
bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antialias, const bool transparency)
@ -411,8 +408,7 @@ CGUITTFont::~CGUITTFont()
{
// Delete the glyphs and glyph pages.
reset_images();
CGUITTAssistDelete::Delete(Glyphs);
//Glyphs.clear();
Glyphs.clear();
// We aren't using this face anymore.
auto n = c_faces.find(filename);
@ -675,6 +671,8 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect<s32>& positio
update_glyph_pages();
auto it = Render_Map.begin();
auto ie = Render_Map.end();
core::array<core::vector2di> tmp_positions;
core::array<core::recti> tmp_source_rects;
while (it != ie)
{
CGUITTGlyphPage* page = it->second;
@ -696,10 +694,8 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect<s32>& positio
do
++i;
while (i < page->render_positions.size() && page->render_colors[i] == colprev);
core::array<core::vector2di> tmp_positions;
core::array<core::recti> tmp_source_rects;
tmp_positions.set_pointer(&page->render_positions[ibegin], i - ibegin, false, false); // no copy
tmp_source_rects.set_pointer(&page->render_source_rects[ibegin], i - ibegin, false, false);
tmp_positions.set_data(&page->render_positions[ibegin], i - ibegin);
tmp_source_rects.set_data(&page->render_source_rects[ibegin], i - ibegin);
--i;
if (!use_transparency)