From d8f4d61fcf275d09d51c6f5e492ea6471fb67f2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E6=88=98?= <40414978+PatriceJiang@users.noreply.github.com> Date: Thu, 16 Jul 2020 10:08:57 +0800 Subject: [PATCH] use canvas api (#6975) --- cocos2d/core/components/CCLabel.js | 4 +++- cocos2d/core/components/CCRichText.js | 1 + cocos2d/core/renderer/webgl/assemblers/label/index.js | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cocos2d/core/components/CCLabel.js b/cocos2d/core/components/CCLabel.js index 7afca90ed26..6d5b7553b3a 100644 --- a/cocos2d/core/components/CCLabel.js +++ b/cocos2d/core/components/CCLabel.js @@ -773,8 +773,10 @@ let Label = cc.Class({ BlendFunc.prototype._updateMaterial.call(this); }, + _forceUseCanvas: false, + _nativeTTF() { - return !!this._assembler && !!this._assembler._updateTTFMaterial + return !this._forceUseCanvas && !!this._assembler && !!this._assembler._updateTTFMaterial; }, _forceUpdateRenderData () { diff --git a/cocos2d/core/components/CCRichText.js b/cocos2d/core/components/CCRichText.js index 5c5db03596d..af99d657313 100644 --- a/cocos2d/core/components/CCRichText.js +++ b/cocos2d/core/components/CCRichText.js @@ -96,6 +96,7 @@ pool.get = function (string, richtext) { labelComponent.string = ""; labelComponent.horizontalAlign = HorizontalAlign.LEFT; labelComponent.verticalAlign = VerticalAlign.CENTER; + labelComponent._forceUseCanvas = true; return labelNode; }; diff --git a/cocos2d/core/renderer/webgl/assemblers/label/index.js b/cocos2d/core/renderer/webgl/assemblers/label/index.js index e9de7559a0f..5a76a41dff9 100644 --- a/cocos2d/core/renderer/webgl/assemblers/label/index.js +++ b/cocos2d/core/renderer/webgl/assemblers/label/index.js @@ -77,7 +77,7 @@ Assembler.register(cc.Label, { ctor = is3DNode ? Bmfont3D : Bmfont; } else if (label.cacheMode === Label.CacheMode.CHAR) { - if(CC_JSB && !is3DNode && !!jsb.LabelRenderer && label.font instanceof cc.TTFFont){ + if(CC_JSB && !is3DNode && !!jsb.LabelRenderer && label.font instanceof cc.TTFFont && !label._forceUseCanvas){ ctor = NativeTTF; } else if (cc.sys.platform === cc.sys.WECHAT_GAME_SUB) { cc.warn('sorry, subdomain does not support CHAR mode currently!');