You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-22 15:06:45 +00:00
Use range iterators for Map
This commit is contained in:
@@ -795,8 +795,8 @@ _FORCE_INLINE_ bool TextServerFallback::_ensure_cache_for_size(FontDataFallback
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ void TextServerFallback::_font_clear_cache(FontDataFallback *p_font_data) {
|
||||
for (const Map<Vector2i, FontDataForSizeFallback *>::Element *E = p_font_data->cache.front(); E; E = E->next()) {
|
||||
memdelete(E->get());
|
||||
for (const KeyValue<Vector2i, FontDataForSizeFallback *> &E : p_font_data->cache) {
|
||||
memdelete(E.value);
|
||||
}
|
||||
|
||||
p_font_data->cache.clear();
|
||||
@@ -1008,8 +1008,8 @@ Array TextServerFallback::font_get_size_cache_list(RID p_font_rid) const {
|
||||
|
||||
MutexLock lock(fd->mutex);
|
||||
Array ret;
|
||||
for (const Map<Vector2i, FontDataForSizeFallback *>::Element *E = fd->cache.front(); E; E = E->next()) {
|
||||
ret.push_back(E->key());
|
||||
for (const KeyValue<Vector2i, FontDataForSizeFallback *> &E : fd->cache) {
|
||||
ret.push_back(E.key);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -1019,8 +1019,8 @@ void TextServerFallback::font_clear_size_cache(RID p_font_rid) {
|
||||
ERR_FAIL_COND(!fd);
|
||||
|
||||
MutexLock lock(fd->mutex);
|
||||
for (const Map<Vector2i, FontDataForSizeFallback *>::Element *E = fd->cache.front(); E; E = E->next()) {
|
||||
memdelete(E->get());
|
||||
for (const KeyValue<Vector2i, FontDataForSizeFallback *> &E : fd->cache) {
|
||||
memdelete(E.value);
|
||||
}
|
||||
fd->cache.clear();
|
||||
}
|
||||
@@ -1578,8 +1578,8 @@ Array TextServerFallback::font_get_kerning_list(RID p_font_rid, int p_size) cons
|
||||
ERR_FAIL_COND_V(!_ensure_cache_for_size(fd, size), Array());
|
||||
|
||||
Array ret;
|
||||
for (const Map<Vector2i, Vector2>::Element *E = fd->cache[size]->kerning_map.front(); E; E = E->next()) {
|
||||
ret.push_back(E->key());
|
||||
for (const KeyValue<Vector2i, Vector2> &E : fd->cache[size]->kerning_map) {
|
||||
ret.push_back(E.key);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -1852,8 +1852,8 @@ Vector<String> TextServerFallback::font_get_language_support_overrides(RID p_fon
|
||||
|
||||
MutexLock lock(fd->mutex);
|
||||
Vector<String> out;
|
||||
for (const Map<String, bool>::Element *E = fd->language_support_overrides.front(); E; E = E->next()) {
|
||||
out.push_back(E->key());
|
||||
for (const KeyValue<String, bool> &E : fd->language_support_overrides) {
|
||||
out.push_back(E.key);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
@@ -1902,8 +1902,8 @@ Vector<String> TextServerFallback::font_get_script_support_overrides(RID p_font_
|
||||
|
||||
MutexLock lock(fd->mutex);
|
||||
Vector<String> out;
|
||||
for (const Map<String, bool>::Element *E = fd->script_support_overrides.front(); E; E = E->next()) {
|
||||
out.push_back(E->key());
|
||||
for (const KeyValue<String, bool> &E : fd->script_support_overrides) {
|
||||
out.push_back(E.key);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
@@ -1971,9 +1971,9 @@ void TextServerFallback::invalidate(ShapedTextData *p_shaped) {
|
||||
void TextServerFallback::full_copy(ShapedTextData *p_shaped) {
|
||||
ShapedTextData *parent = shaped_owner.get_or_null(p_shaped->parent);
|
||||
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = parent->objects.front(); E; E = E->next()) {
|
||||
if (E->get().pos >= p_shaped->start && E->get().pos < p_shaped->end) {
|
||||
p_shaped->objects[E->key()] = E->get();
|
||||
for (const KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : parent->objects) {
|
||||
if (E.value.pos >= p_shaped->start && E.value.pos < p_shaped->end) {
|
||||
p_shaped->objects[E.key] = E.value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2192,9 +2192,9 @@ bool TextServerFallback::shaped_text_resize_object(RID p_shaped, Variant p_key,
|
||||
Glyph gl = sd->glyphs[i];
|
||||
Variant key;
|
||||
if (gl.count == 1) {
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = sd->objects.front(); E; E = E->next()) {
|
||||
if (E->get().pos == gl.start) {
|
||||
key = E->key();
|
||||
for (const KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : sd->objects) {
|
||||
if (E.value.pos == gl.start) {
|
||||
key = E.key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2237,64 +2237,64 @@ bool TextServerFallback::shaped_text_resize_object(RID p_shaped, Variant p_key,
|
||||
// Align embedded objects to baseline.
|
||||
real_t full_ascent = sd->ascent;
|
||||
real_t full_descent = sd->descent;
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = sd->objects.front(); E; E = E->next()) {
|
||||
if ((E->get().pos >= sd->start) && (E->get().pos < sd->end)) {
|
||||
for (KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : sd->objects) {
|
||||
if ((E.value.pos >= sd->start) && (E.value.pos < sd->end)) {
|
||||
if (sd->orientation == ORIENTATION_HORIZONTAL) {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.y = -sd->ascent;
|
||||
E.value.rect.position.y = -sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.y = (-sd->ascent + sd->descent) / 2;
|
||||
E.value.rect.position.y = (-sd->ascent + sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.y = 0;
|
||||
E.value.rect.position.y = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.y = sd->descent;
|
||||
E.value.rect.position.y = sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y;
|
||||
E.value.rect.position.y -= E.value.rect.size.y;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y / 2;
|
||||
E.value.rect.position.y -= E.value.rect.size.y / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.y);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.y + E->get().rect.size.y);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.y);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.y + E.value.rect.size.y);
|
||||
} else {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.x = -sd->ascent;
|
||||
E.value.rect.position.x = -sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.x = (-sd->ascent + sd->descent) / 2;
|
||||
E.value.rect.position.x = (-sd->ascent + sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.x = 0;
|
||||
E.value.rect.position.x = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.x = sd->descent;
|
||||
E.value.rect.position.x = sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x;
|
||||
E.value.rect.position.x -= E.value.rect.size.x;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x / 2;
|
||||
E.value.rect.position.x -= E.value.rect.size.x / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.x);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.x + E->get().rect.size.x);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.x);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.x + E.value.rect.size.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2344,11 +2344,11 @@ RID TextServerFallback::shaped_text_substr(RID p_shaped, int p_start, int p_leng
|
||||
Variant key;
|
||||
bool find_embedded = false;
|
||||
if (gl.count == 1) {
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = sd->objects.front(); E; E = E->next()) {
|
||||
if (E->get().pos == gl.start) {
|
||||
for (const KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : sd->objects) {
|
||||
if (E.value.pos == gl.start) {
|
||||
find_embedded = true;
|
||||
key = E->key();
|
||||
new_sd->objects[key] = E->get();
|
||||
key = E.key;
|
||||
new_sd->objects[key] = E.value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2389,64 +2389,64 @@ RID TextServerFallback::shaped_text_substr(RID p_shaped, int p_start, int p_leng
|
||||
// Align embedded objects to baseline.
|
||||
real_t full_ascent = new_sd->ascent;
|
||||
real_t full_descent = new_sd->descent;
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = new_sd->objects.front(); E; E = E->next()) {
|
||||
if ((E->get().pos >= new_sd->start) && (E->get().pos < new_sd->end)) {
|
||||
for (KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : new_sd->objects) {
|
||||
if ((E.value.pos >= new_sd->start) && (E.value.pos < new_sd->end)) {
|
||||
if (sd->orientation == ORIENTATION_HORIZONTAL) {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.y = -new_sd->ascent;
|
||||
E.value.rect.position.y = -new_sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.y = (-new_sd->ascent + new_sd->descent) / 2;
|
||||
E.value.rect.position.y = (-new_sd->ascent + new_sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.y = 0;
|
||||
E.value.rect.position.y = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.y = new_sd->descent;
|
||||
E.value.rect.position.y = new_sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y;
|
||||
E.value.rect.position.y -= E.value.rect.size.y;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y / 2;
|
||||
E.value.rect.position.y -= E.value.rect.size.y / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.y);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.y + E->get().rect.size.y);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.y);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.y + E.value.rect.size.y);
|
||||
} else {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.x = -new_sd->ascent;
|
||||
E.value.rect.position.x = -new_sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.x = (-new_sd->ascent + new_sd->descent) / 2;
|
||||
E.value.rect.position.x = (-new_sd->ascent + new_sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.x = 0;
|
||||
E.value.rect.position.x = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.x = new_sd->descent;
|
||||
E.value.rect.position.x = new_sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x;
|
||||
E.value.rect.position.x -= E.value.rect.size.x;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x / 2;
|
||||
E.value.rect.position.x -= E.value.rect.size.x / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.x);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.x + E->get().rect.size.x);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.x);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.x + E.value.rect.size.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2907,63 +2907,63 @@ bool TextServerFallback::shaped_text_shape(RID p_shaped) {
|
||||
// Align embedded objects to baseline.
|
||||
real_t full_ascent = sd->ascent;
|
||||
real_t full_descent = sd->descent;
|
||||
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = sd->objects.front(); E; E = E->next()) {
|
||||
for (KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : sd->objects) {
|
||||
if (sd->orientation == ORIENTATION_HORIZONTAL) {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.y = -sd->ascent;
|
||||
E.value.rect.position.y = -sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.y = (-sd->ascent + sd->descent) / 2;
|
||||
E.value.rect.position.y = (-sd->ascent + sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.y = 0;
|
||||
E.value.rect.position.y = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.y = sd->descent;
|
||||
E.value.rect.position.y = sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y;
|
||||
E.value.rect.position.y -= E.value.rect.size.y;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.y -= E->get().rect.size.y / 2;
|
||||
E.value.rect.position.y -= E.value.rect.size.y / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.y);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.y + E->get().rect.size.y);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.y);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.y + E.value.rect.size.y);
|
||||
} else {
|
||||
switch (E->get().inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_TEXT_MASK) {
|
||||
case INLINE_ALIGN_TO_TOP: {
|
||||
E->get().rect.position.x = -sd->ascent;
|
||||
E.value.rect.position.x = -sd->ascent;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_CENTER: {
|
||||
E->get().rect.position.x = (-sd->ascent + sd->descent) / 2;
|
||||
E.value.rect.position.x = (-sd->ascent + sd->descent) / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BASELINE: {
|
||||
E->get().rect.position.x = 0;
|
||||
E.value.rect.position.x = 0;
|
||||
} break;
|
||||
case INLINE_ALIGN_TO_BOTTOM: {
|
||||
E->get().rect.position.x = sd->descent;
|
||||
E.value.rect.position.x = sd->descent;
|
||||
} break;
|
||||
}
|
||||
switch (E->get().inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
switch (E.value.inline_align & INLINE_ALIGN_IMAGE_MASK) {
|
||||
case INLINE_ALIGN_BOTTOM_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x;
|
||||
E.value.rect.position.x -= E.value.rect.size.x;
|
||||
} break;
|
||||
case INLINE_ALIGN_CENTER_TO: {
|
||||
E->get().rect.position.x -= E->get().rect.size.x / 2;
|
||||
E.value.rect.position.x -= E.value.rect.size.x / 2;
|
||||
} break;
|
||||
case INLINE_ALIGN_TOP_TO: {
|
||||
//NOP
|
||||
} break;
|
||||
}
|
||||
full_ascent = MAX(full_ascent, -E->get().rect.position.x);
|
||||
full_descent = MAX(full_descent, E->get().rect.position.x + E->get().rect.size.x);
|
||||
full_ascent = MAX(full_ascent, -E.value.rect.position.x);
|
||||
full_descent = MAX(full_descent, E.value.rect.position.x + E.value.rect.size.x);
|
||||
}
|
||||
}
|
||||
sd->ascent = full_ascent;
|
||||
@@ -3017,8 +3017,8 @@ Array TextServerFallback::shaped_text_get_objects(RID p_shaped) const {
|
||||
ERR_FAIL_COND_V(!sd, ret);
|
||||
|
||||
MutexLock lock(sd->mutex);
|
||||
for (const Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = sd->objects.front(); E; E = E->next()) {
|
||||
ret.push_back(E->key());
|
||||
for (const KeyValue<Variant, ShapedTextData::EmbeddedObject> &E : sd->objects) {
|
||||
ret.push_back(E.key);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user