From 40dd53f5171073f087d92ca6c5764c6f7f12ebb2 Mon Sep 17 00:00:00 2001 From: tidy Date: Tue, 2 Aug 2022 18:06:23 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dfont=E7=A9=BA=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=AF=BC=E8=87=B4fontsize=E5=BC=82=E5=B8=B8=E7=9A=84b?= =?UTF-8?q?ug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cocos/ui/UIRichText.cpp | 162 ++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 82 deletions(-) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index 72e604eb2ed0..8c25520581c0 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -639,105 +639,103 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch auto result = tagBehavior.handleVisitEnter(tagAttrValueMap); ValueMap& attrValueMap = result.first; RichElement* richElement = result.second; - if (!attrValueMap.empty()) { - Attributes attributes; - - if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { - attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); + Attributes attributes; + + if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { + attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); + } + if (attrValueMap.find(RichText::KEY_FONT_SMALL) != attrValueMap.end()) { + attributes.fontSize = getFontSize() * 0.8f; + } + if (attrValueMap.find(RichText::KEY_FONT_BIG) != attrValueMap.end()) { + attributes.fontSize = getFontSize() * 1.25f; + } + if (attrValueMap.find(RichText::KEY_FONT_COLOR_STRING) != attrValueMap.end()) { + attributes.setColor(_richText->color3BWithString(attrValueMap.at(RichText::KEY_FONT_COLOR_STRING).asString())); + } + if (attrValueMap.find(RichText::KEY_FONT_FACE) != attrValueMap.end()) { + attributes.face = attrValueMap.at(RichText::KEY_FONT_FACE).asString(); + } + if (attrValueMap.find(RichText::KEY_TEXT_BOLD) != attrValueMap.end()) { + attributes.bold = true; + } + if (attrValueMap.find(RichText::KEY_TEXT_ITALIC) != attrValueMap.end()) { + attributes.italics = true; + } + if (attrValueMap.find(RichText::KEY_TEXT_LINE) != attrValueMap.end()) { + auto keyTextLine = attrValueMap.at(RichText::KEY_TEXT_LINE).asString(); + if (keyTextLine == RichText::VALUE_TEXT_LINE_DEL) { + attributes.line = StyleLine::STRIKETHROUGH; } - if (attrValueMap.find(RichText::KEY_FONT_SMALL) != attrValueMap.end()) { - attributes.fontSize = getFontSize() * 0.8f; + else if (keyTextLine == RichText::VALUE_TEXT_LINE_UNDER) { + attributes.line = StyleLine::UNDERLINE; } - if (attrValueMap.find(RichText::KEY_FONT_BIG) != attrValueMap.end()) { - attributes.fontSize = getFontSize() * 1.25f; + } + if (attrValueMap.find(RichText::KEY_URL) != attrValueMap.end()) { + attributes.url = attrValueMap.at(RichText::KEY_URL).asString(); + attributes.setColor(_richText->getAnchorFontColor3B()); + if (_richText->isAnchorTextBoldEnabled()) { + attributes.bold = true; } - if (attrValueMap.find(RichText::KEY_FONT_COLOR_STRING) != attrValueMap.end()) { - attributes.setColor(_richText->color3BWithString(attrValueMap.at(RichText::KEY_FONT_COLOR_STRING).asString())); + if (_richText->isAnchorTextItalicEnabled()) { + attributes.italics = true; } - if (attrValueMap.find(RichText::KEY_FONT_FACE) != attrValueMap.end()) { - attributes.face = attrValueMap.at(RichText::KEY_FONT_FACE).asString(); + if (_richText->isAnchorTextUnderlineEnabled()) { + attributes.line = StyleLine::UNDERLINE; } - if (attrValueMap.find(RichText::KEY_TEXT_BOLD) != attrValueMap.end()) { - attributes.bold = true; + if (_richText->isAnchorTextDelEnabled()) { + attributes.line = StyleLine::STRIKETHROUGH; } - if (attrValueMap.find(RichText::KEY_TEXT_ITALIC) != attrValueMap.end()) { - attributes.italics = true; + if (_richText->isAnchorTextOutlineEnabled()) { + attributes.effect = StyleEffect::OUTLINE; + attributes.outlineColor = _richText->getAnchorTextOutlineColor3B(); + attributes.outlineSize = _richText->getAnchorTextOutlineSize(); } - if (attrValueMap.find(RichText::KEY_TEXT_LINE) != attrValueMap.end()) { - auto keyTextLine = attrValueMap.at(RichText::KEY_TEXT_LINE).asString(); - if (keyTextLine == RichText::VALUE_TEXT_LINE_DEL) { - attributes.line = StyleLine::STRIKETHROUGH; - } - else if (keyTextLine == RichText::VALUE_TEXT_LINE_UNDER) { - attributes.line = StyleLine::UNDERLINE; - } + if (_richText->isAnchorTextShadowEnabled()) { + attributes.effect = StyleEffect::SHADOW; + attributes.shadowColor = _richText->getAnchorTextShadowColor3B(); + attributes.shadowOffset = _richText->getAnchorTextShadowOffset(); + attributes.shadowBlurRadius = _richText->getAnchorTextShadowBlurRadius(); } - if (attrValueMap.find(RichText::KEY_URL) != attrValueMap.end()) { - attributes.url = attrValueMap.at(RichText::KEY_URL).asString(); - attributes.setColor(_richText->getAnchorFontColor3B()); - if (_richText->isAnchorTextBoldEnabled()) { - attributes.bold = true; - } - if (_richText->isAnchorTextItalicEnabled()) { - attributes.italics = true; - } - if (_richText->isAnchorTextUnderlineEnabled()) { - attributes.line = StyleLine::UNDERLINE; + if (_richText->isAnchorTextGlowEnabled()) { + attributes.effect = StyleEffect::GLOW; + attributes.glowColor = _richText->getAnchorTextGlowColor3B(); + } + } + if (attrValueMap.find(RichText::KEY_TEXT_STYLE) != attrValueMap.end()) { + auto keyTextStyle = attrValueMap.at(RichText::KEY_TEXT_STYLE).asString(); + if (keyTextStyle == RichText::VALUE_TEXT_STYLE_OUTLINE) { + attributes.effect = StyleEffect::OUTLINE; + if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_COLOR) != attrValueMap.end()) { + attributes.outlineColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_OUTLINE_COLOR).asString()); } - if (_richText->isAnchorTextDelEnabled()) { - attributes.line = StyleLine::STRIKETHROUGH; + if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_SIZE) != attrValueMap.end()) { + attributes.outlineSize = attrValueMap.at(RichText::KEY_TEXT_OUTLINE_SIZE).asInt(); } - if (_richText->isAnchorTextOutlineEnabled()) { - attributes.effect = StyleEffect::OUTLINE; - attributes.outlineColor = _richText->getAnchorTextOutlineColor3B(); - attributes.outlineSize = _richText->getAnchorTextOutlineSize(); + } + else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_SHADOW) { + attributes.effect = StyleEffect::SHADOW; + if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_COLOR) != attrValueMap.end()) { + attributes.shadowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_SHADOW_COLOR).asString()); } - if (_richText->isAnchorTextShadowEnabled()) { - attributes.effect = StyleEffect::SHADOW; - attributes.shadowColor = _richText->getAnchorTextShadowColor3B(); - attributes.shadowOffset = _richText->getAnchorTextShadowOffset(); - attributes.shadowBlurRadius = _richText->getAnchorTextShadowBlurRadius(); + if ((attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH) != attrValueMap.end()) + && (attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT) != attrValueMap.end())) { + attributes.shadowOffset = Size(attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH).asFloat(), + attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); } - if (_richText->isAnchorTextGlowEnabled()) { - attributes.effect = StyleEffect::GLOW; - attributes.glowColor = _richText->getAnchorTextGlowColor3B(); + if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS) != attrValueMap.end()) { + attributes.shadowBlurRadius = attrValueMap.at(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS).asInt(); } } - if (attrValueMap.find(RichText::KEY_TEXT_STYLE) != attrValueMap.end()) { - auto keyTextStyle = attrValueMap.at(RichText::KEY_TEXT_STYLE).asString(); - if (keyTextStyle == RichText::VALUE_TEXT_STYLE_OUTLINE) { - attributes.effect = StyleEffect::OUTLINE; - if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_COLOR) != attrValueMap.end()) { - attributes.outlineColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_OUTLINE_COLOR).asString()); - } - if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_SIZE) != attrValueMap.end()) { - attributes.outlineSize = attrValueMap.at(RichText::KEY_TEXT_OUTLINE_SIZE).asInt(); - } - } - else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_SHADOW) { - attributes.effect = StyleEffect::SHADOW; - if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_COLOR) != attrValueMap.end()) { - attributes.shadowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_SHADOW_COLOR).asString()); - } - if ((attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH) != attrValueMap.end()) - && (attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT) != attrValueMap.end())) { - attributes.shadowOffset = Size(attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH).asFloat(), - attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); - } - if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS) != attrValueMap.end()) { - attributes.shadowBlurRadius = attrValueMap.at(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS).asInt(); - } - } - else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_GLOW) { - attributes.effect = StyleEffect::GLOW; - if (attrValueMap.find(RichText::KEY_TEXT_GLOW_COLOR) != attrValueMap.end()) { - attributes.glowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_GLOW_COLOR).asString()); - } + else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_GLOW) { + attributes.effect = StyleEffect::GLOW; + if (attrValueMap.find(RichText::KEY_TEXT_GLOW_COLOR) != attrValueMap.end()) { + attributes.glowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_GLOW_COLOR).asString()); } } - - pushBackFontElement(attributes); } + + pushBackFontElement(attributes); if (richElement) { if (richElement->equalType(RichElement::Type::IMAGE)) { richElement->setColor(getColor()); From b585a641ff4ee30652a2ffbb59f110970408b7ed Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 3 Aug 2022 10:04:58 +0800 Subject: [PATCH 2/7] bugfix --- cocos/ui/UIRichText.cpp | 160 ++++++++++++++++++++-------------------- 1 file changed, 81 insertions(+), 79 deletions(-) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index 8c25520581c0..affa808e61e6 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -640,102 +640,104 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch ValueMap& attrValueMap = result.first; RichElement* richElement = result.second; Attributes attributes; - - if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { - attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); - } - if (attrValueMap.find(RichText::KEY_FONT_SMALL) != attrValueMap.end()) { - attributes.fontSize = getFontSize() * 0.8f; - } - if (attrValueMap.find(RichText::KEY_FONT_BIG) != attrValueMap.end()) { - attributes.fontSize = getFontSize() * 1.25f; - } - if (attrValueMap.find(RichText::KEY_FONT_COLOR_STRING) != attrValueMap.end()) { - attributes.setColor(_richText->color3BWithString(attrValueMap.at(RichText::KEY_FONT_COLOR_STRING).asString())); - } - if (attrValueMap.find(RichText::KEY_FONT_FACE) != attrValueMap.end()) { - attributes.face = attrValueMap.at(RichText::KEY_FONT_FACE).asString(); - } - if (attrValueMap.find(RichText::KEY_TEXT_BOLD) != attrValueMap.end()) { - attributes.bold = true; - } - if (attrValueMap.find(RichText::KEY_TEXT_ITALIC) != attrValueMap.end()) { - attributes.italics = true; - } - if (attrValueMap.find(RichText::KEY_TEXT_LINE) != attrValueMap.end()) { - auto keyTextLine = attrValueMap.at(RichText::KEY_TEXT_LINE).asString(); - if (keyTextLine == RichText::VALUE_TEXT_LINE_DEL) { - attributes.line = StyleLine::STRIKETHROUGH; - } - else if (keyTextLine == RichText::VALUE_TEXT_LINE_UNDER) { - attributes.line = StyleLine::UNDERLINE; - } - } - if (attrValueMap.find(RichText::KEY_URL) != attrValueMap.end()) { - attributes.url = attrValueMap.at(RichText::KEY_URL).asString(); - attributes.setColor(_richText->getAnchorFontColor3B()); - if (_richText->isAnchorTextBoldEnabled()) { - attributes.bold = true; + if (tagBehavior.isFontElement) + { + if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { + attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); } - if (_richText->isAnchorTextItalicEnabled()) { - attributes.italics = true; + if (attrValueMap.find(RichText::KEY_FONT_SMALL) != attrValueMap.end()) { + attributes.fontSize = getFontSize() * 0.8f; } - if (_richText->isAnchorTextUnderlineEnabled()) { - attributes.line = StyleLine::UNDERLINE; + if (attrValueMap.find(RichText::KEY_FONT_BIG) != attrValueMap.end()) { + attributes.fontSize = getFontSize() * 1.25f; } - if (_richText->isAnchorTextDelEnabled()) { - attributes.line = StyleLine::STRIKETHROUGH; + if (attrValueMap.find(RichText::KEY_FONT_COLOR_STRING) != attrValueMap.end()) { + attributes.setColor(_richText->color3BWithString(attrValueMap.at(RichText::KEY_FONT_COLOR_STRING).asString())); } - if (_richText->isAnchorTextOutlineEnabled()) { - attributes.effect = StyleEffect::OUTLINE; - attributes.outlineColor = _richText->getAnchorTextOutlineColor3B(); - attributes.outlineSize = _richText->getAnchorTextOutlineSize(); + if (attrValueMap.find(RichText::KEY_FONT_FACE) != attrValueMap.end()) { + attributes.face = attrValueMap.at(RichText::KEY_FONT_FACE).asString(); } - if (_richText->isAnchorTextShadowEnabled()) { - attributes.effect = StyleEffect::SHADOW; - attributes.shadowColor = _richText->getAnchorTextShadowColor3B(); - attributes.shadowOffset = _richText->getAnchorTextShadowOffset(); - attributes.shadowBlurRadius = _richText->getAnchorTextShadowBlurRadius(); + if (attrValueMap.find(RichText::KEY_TEXT_BOLD) != attrValueMap.end()) { + attributes.bold = true; } - if (_richText->isAnchorTextGlowEnabled()) { - attributes.effect = StyleEffect::GLOW; - attributes.glowColor = _richText->getAnchorTextGlowColor3B(); + if (attrValueMap.find(RichText::KEY_TEXT_ITALIC) != attrValueMap.end()) { + attributes.italics = true; } - } - if (attrValueMap.find(RichText::KEY_TEXT_STYLE) != attrValueMap.end()) { - auto keyTextStyle = attrValueMap.at(RichText::KEY_TEXT_STYLE).asString(); - if (keyTextStyle == RichText::VALUE_TEXT_STYLE_OUTLINE) { - attributes.effect = StyleEffect::OUTLINE; - if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_COLOR) != attrValueMap.end()) { - attributes.outlineColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_OUTLINE_COLOR).asString()); + if (attrValueMap.find(RichText::KEY_TEXT_LINE) != attrValueMap.end()) { + auto keyTextLine = attrValueMap.at(RichText::KEY_TEXT_LINE).asString(); + if (keyTextLine == RichText::VALUE_TEXT_LINE_DEL) { + attributes.line = StyleLine::STRIKETHROUGH; } - if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_SIZE) != attrValueMap.end()) { - attributes.outlineSize = attrValueMap.at(RichText::KEY_TEXT_OUTLINE_SIZE).asInt(); + else if (keyTextLine == RichText::VALUE_TEXT_LINE_UNDER) { + attributes.line = StyleLine::UNDERLINE; } } - else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_SHADOW) { - attributes.effect = StyleEffect::SHADOW; - if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_COLOR) != attrValueMap.end()) { - attributes.shadowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_SHADOW_COLOR).asString()); + if (attrValueMap.find(RichText::KEY_URL) != attrValueMap.end()) { + attributes.url = attrValueMap.at(RichText::KEY_URL).asString(); + attributes.setColor(_richText->getAnchorFontColor3B()); + if (_richText->isAnchorTextBoldEnabled()) { + attributes.bold = true; + } + if (_richText->isAnchorTextItalicEnabled()) { + attributes.italics = true; + } + if (_richText->isAnchorTextUnderlineEnabled()) { + attributes.line = StyleLine::UNDERLINE; } - if ((attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH) != attrValueMap.end()) - && (attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT) != attrValueMap.end())) { - attributes.shadowOffset = Size(attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH).asFloat(), - attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); + if (_richText->isAnchorTextDelEnabled()) { + attributes.line = StyleLine::STRIKETHROUGH; } - if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS) != attrValueMap.end()) { - attributes.shadowBlurRadius = attrValueMap.at(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS).asInt(); + if (_richText->isAnchorTextOutlineEnabled()) { + attributes.effect = StyleEffect::OUTLINE; + attributes.outlineColor = _richText->getAnchorTextOutlineColor3B(); + attributes.outlineSize = _richText->getAnchorTextOutlineSize(); + } + if (_richText->isAnchorTextShadowEnabled()) { + attributes.effect = StyleEffect::SHADOW; + attributes.shadowColor = _richText->getAnchorTextShadowColor3B(); + attributes.shadowOffset = _richText->getAnchorTextShadowOffset(); + attributes.shadowBlurRadius = _richText->getAnchorTextShadowBlurRadius(); + } + if (_richText->isAnchorTextGlowEnabled()) { + attributes.effect = StyleEffect::GLOW; + attributes.glowColor = _richText->getAnchorTextGlowColor3B(); } } - else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_GLOW) { - attributes.effect = StyleEffect::GLOW; - if (attrValueMap.find(RichText::KEY_TEXT_GLOW_COLOR) != attrValueMap.end()) { - attributes.glowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_GLOW_COLOR).asString()); + if (attrValueMap.find(RichText::KEY_TEXT_STYLE) != attrValueMap.end()) { + auto keyTextStyle = attrValueMap.at(RichText::KEY_TEXT_STYLE).asString(); + if (keyTextStyle == RichText::VALUE_TEXT_STYLE_OUTLINE) { + attributes.effect = StyleEffect::OUTLINE; + if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_COLOR) != attrValueMap.end()) { + attributes.outlineColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_OUTLINE_COLOR).asString()); + } + if (attrValueMap.find(RichText::KEY_TEXT_OUTLINE_SIZE) != attrValueMap.end()) { + attributes.outlineSize = attrValueMap.at(RichText::KEY_TEXT_OUTLINE_SIZE).asInt(); + } + } + else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_SHADOW) { + attributes.effect = StyleEffect::SHADOW; + if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_COLOR) != attrValueMap.end()) { + attributes.shadowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_SHADOW_COLOR).asString()); + } + if ((attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH) != attrValueMap.end()) + && (attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT) != attrValueMap.end())) { + attributes.shadowOffset = Size(attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH).asFloat(), + attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); + } + if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS) != attrValueMap.end()) { + attributes.shadowBlurRadius = attrValueMap.at(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS).asInt(); + } + } + else if (keyTextStyle == RichText::VALUE_TEXT_STYLE_GLOW) { + attributes.effect = StyleEffect::GLOW; + if (attrValueMap.find(RichText::KEY_TEXT_GLOW_COLOR) != attrValueMap.end()) { + attributes.glowColor = _richText->color3BWithString(attrValueMap.at(RichText::KEY_TEXT_GLOW_COLOR).asString()); + } } } + + pushBackFontElement(attributes); } - - pushBackFontElement(attributes); if (richElement) { if (richElement->equalType(RichElement::Type::IMAGE)) { richElement->setColor(getColor()); From 48c53047497fa868b25df1181a5cf9f25d84559d Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 3 Aug 2022 10:05:54 +0800 Subject: [PATCH 3/7] format --- cocos/ui/UIRichText.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index affa808e61e6..af296d34749d 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -639,9 +639,9 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch auto result = tagBehavior.handleVisitEnter(tagAttrValueMap); ValueMap& attrValueMap = result.first; RichElement* richElement = result.second; - Attributes attributes; if (tagBehavior.isFontElement) { + Attributes attributes; if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); } From 4a53bb02fe868950cc849bf4661e5d944c6356f3 Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 3 Aug 2022 10:07:35 +0800 Subject: [PATCH 4/7] format --- cocos/ui/UIRichText.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index af296d34749d..fab2e8ac0248 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -642,6 +642,7 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch if (tagBehavior.isFontElement) { Attributes attributes; + if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { attributes.fontSize = attrValueMap.at(RichText::KEY_FONT_SIZE).asFloat(); } From cbaa0fdbdcf48e71a95376710f1c8077aab15171 Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 3 Aug 2022 10:08:02 +0800 Subject: [PATCH 5/7] 1 --- cocos/ui/UIRichText.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index fab2e8ac0248..7912de5862b9 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -639,8 +639,7 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch auto result = tagBehavior.handleVisitEnter(tagAttrValueMap); ValueMap& attrValueMap = result.first; RichElement* richElement = result.second; - if (tagBehavior.isFontElement) - { + if (tagBehavior.isFontElement){ Attributes attributes; if (attrValueMap.find(RichText::KEY_FONT_SIZE) != attrValueMap.end()) { From 3adc0268eb7b8352ec042aa1c29c4af3776329f4 Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 3 Aug 2022 10:09:49 +0800 Subject: [PATCH 6/7] 1 --- cocos/ui/UIRichText.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cocos/ui/UIRichText.cpp b/cocos/ui/UIRichText.cpp index 7912de5862b9..460c7ab461b3 100755 --- a/cocos/ui/UIRichText.cpp +++ b/cocos/ui/UIRichText.cpp @@ -722,7 +722,7 @@ void MyXMLVisitor::startElement(void* /*ctx*/, const char *elementName, const ch if ((attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH) != attrValueMap.end()) && (attrValueMap.find(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT) != attrValueMap.end())) { attributes.shadowOffset = Size(attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_WIDTH).asFloat(), - attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); + attrValueMap.at(RichText::KEY_TEXT_SHADOW_OFFSET_HEIGHT).asFloat()); } if (attrValueMap.find(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS) != attrValueMap.end()) { attributes.shadowBlurRadius = attrValueMap.at(RichText::KEY_TEXT_SHADOW_BLUR_RADIUS).asInt(); From 38460b28c94f31bde76bd0966e11fe6d4b23a983 Mon Sep 17 00:00:00 2001 From: tidy Date: Wed, 5 Jul 2023 09:52:45 +0800 Subject: [PATCH 7/7] fix particle memory leak --- cocos/renderer/CCTextureCache.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cocos/renderer/CCTextureCache.cpp b/cocos/renderer/CCTextureCache.cpp index 8160c4a338af..905f1122baec 100644 --- a/cocos/renderer/CCTextureCache.cpp +++ b/cocos/renderer/CCTextureCache.cpp @@ -750,6 +750,7 @@ void VolatileTextureMgr::addImage(Texture2D *tt, Image *image) VolatileTexture *vt = findVolotileTexture(tt); image->retain(); + CC_SAFE_RELEASE_NULL(vt->_uiImage); vt->_uiImage = image; vt->_cashedImageType = VolatileTexture::kImage; vt->_pixelFormat = tt->getPixelFormat();