Skip to content

Commit 34e8f55

Browse files
committed
Merge branch 'master' into webgl
2 parents 0e6caf2 + 74979f5 commit 34e8f55

File tree

3 files changed

+97
-57
lines changed

3 files changed

+97
-57
lines changed

build/egret/egret.js

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15457,7 +15457,6 @@ var egret;
1545715457
node.needRedraw = true;
1545815458
}
1545915459
if (node.needRedraw) {
15460-
drawCalls++;
1546115460
var renderAlpha;
1546215461
var m;
1546315462
if (root) {
@@ -15474,7 +15473,7 @@ var egret;
1547415473
context.setTransform(m.a, m.b, m.c, m.d, m.tx + matrix.tx, m.ty + matrix.ty);
1547515474
}
1547615475
context.globalAlpha = renderAlpha;
15477-
this.renderNode(node, context);
15476+
drawCalls += this.renderNode(node, context);
1547815477
node.needRedraw = false;
1547915478
}
1548015479
}
@@ -15490,7 +15489,7 @@ var egret;
1549015489
continue;
1549115490
}
1549215491
if ((child.$blendMode !== 0 ||
15493-
(child.$mask && child.$mask.$parentDisplayList))) {
15492+
(child.$mask && (child.$mask.$parentDisplayList || root)))) {
1549415493
drawCalls += this.drawWithClip(child, context, dirtyList, matrix, clipRegion, root);
1549515494
}
1549615495
else if (child.$scrollRect || child.$maskRect) {
@@ -15522,17 +15521,19 @@ var egret;
1552215521
}
1552315522
var scrollRect = displayObject.$scrollRect ? displayObject.$scrollRect : displayObject.$maskRect;
1552415523
var mask = displayObject.$mask;
15525-
if (mask && !mask.$parentDisplayList) {
15526-
mask = null; //如果遮罩不在显示列表中,放弃绘制遮罩。
15527-
}
15524+
//if (mask && !mask.$parentDisplayList) {
15525+
// mask = null; //如果遮罩不在显示列表中,放弃绘制遮罩。
15526+
//}
1552815527
//计算scrollRect和mask的clip区域是否需要绘制,不需要就直接返回,跳过所有子项的遍历。
1552915528
var maskRegion;
1553015529
var displayMatrix = egret.Matrix.create();
1553115530
displayMatrix.copyFrom(displayObject.$getConcatenatedMatrix());
15532-
var displayRoot = displayObject.$parentDisplayList.root;
15533-
var invertedMatrix;
15534-
if (displayRoot !== displayObject.$stage) {
15535-
displayObject.$getConcatenatedMatrixAt(displayRoot, displayMatrix);
15531+
if (displayObject.$parentDisplayList) {
15532+
var displayRoot = displayObject.$parentDisplayList.root;
15533+
var invertedMatrix;
15534+
if (displayRoot !== displayObject.$stage) {
15535+
displayObject.$getConcatenatedMatrixAt(displayRoot, displayMatrix);
15536+
}
1553615537
}
1553715538
if (mask) {
1553815539
var bounds = mask.$getOriginalBounds();
@@ -15570,11 +15571,16 @@ var egret;
1557015571
region.updateRegion(bounds, displayMatrix);
1557115572
}
1557215573
var found = false;
15573-
var l = dirtyList.length;
15574-
for (var j = 0; j < l; j++) {
15575-
if (region.intersects(dirtyList[j])) {
15576-
found = true;
15577-
break;
15574+
if (!dirtyList) {
15575+
found = true;
15576+
}
15577+
else {
15578+
var l = dirtyList.length;
15579+
for (var j = 0; j < l; j++) {
15580+
if (region.intersects(dirtyList[j])) {
15581+
found = true;
15582+
break;
15583+
}
1557815584
}
1557915585
}
1558015586
if (!found) {
@@ -15663,9 +15669,11 @@ var egret;
1566315669
}
1566415670
var m = egret.Matrix.create();
1566515671
m.copyFrom(displayObject.$getConcatenatedMatrix());
15666-
var displayRoot = displayObject.$parentDisplayList.root;
15667-
if (displayRoot !== displayObject.$stage) {
15668-
displayObject.$getConcatenatedMatrixAt(displayRoot, m);
15672+
if (displayObject.$parentDisplayList) {
15673+
var displayRoot = displayObject.$parentDisplayList.root;
15674+
if (displayRoot !== displayObject.$stage) {
15675+
displayObject.$getConcatenatedMatrixAt(displayRoot, m);
15676+
}
1566915677
}
1567015678
var region = egret.sys.Region.create();
1567115679
if (!scrollRect.isEmpty()) {
@@ -15677,11 +15685,16 @@ var egret;
1567715685
return drawCalls;
1567815686
}
1567915687
var found = false;
15680-
var l = dirtyList.length;
15681-
for (var j = 0; j < l; j++) {
15682-
if (region.intersects(dirtyList[j])) {
15683-
found = true;
15684-
break;
15688+
if (!dirtyList) {
15689+
found = true;
15690+
}
15691+
else {
15692+
var l = dirtyList.length;
15693+
for (var j = 0; j < l; j++) {
15694+
if (region.intersects(dirtyList[j])) {
15695+
found = true;
15696+
break;
15697+
}
1568515698
}
1568615699
}
1568715700
if (!found) {
@@ -15717,9 +15730,10 @@ var egret;
1571715730
* @private
1571815731
*/
1571915732
p.renderNode = function (node, context, forHitTest) {
15733+
var drawCalls = 1;
1572015734
switch (node.type) {
1572115735
case 1 /* BitmapNode */:
15722-
this.renderBitmap(node, context);
15736+
drawCalls = this.renderBitmap(node, context);
1572315737
break;
1572415738
case 2 /* TextNode */:
1572515739
this.renderText(node, context);
@@ -15728,7 +15742,7 @@ var egret;
1572815742
this.renderGraphics(node, context, forHitTest);
1572915743
break;
1573015744
case 4 /* GroupNode */:
15731-
this.renderGroup(node, context);
15745+
drawCalls = this.renderGroup(node, context);
1573215746
break;
1573315747
case 5 /* SetTransformNode */:
1573415748
context.setTransform(node.drawData[0], node.drawData[1], node.drawData[2], node.drawData[3], node.drawData[4], node.drawData[5]);
@@ -15737,6 +15751,7 @@ var egret;
1573715751
context.globalAlpha = node.drawData[0];
1573815752
break;
1573915753
}
15754+
return drawCalls;
1574015755
};
1574115756
/**
1574215757
* @private
@@ -15755,12 +15770,15 @@ var egret;
1575515770
context.save();
1575615771
context.transform(m.a, m.b, m.c, m.d, m.tx, m.ty);
1575715772
}
15773+
var drawCalls = 0;
1575815774
while (pos < length) {
15775+
drawCalls++;
1575915776
context.drawImage(image, data[pos++], data[pos++], data[pos++], data[pos++], data[pos++], data[pos++], data[pos++], data[pos++]);
1576015777
}
1576115778
if (m) {
1576215779
context.restore();
1576315780
}
15781+
return drawCalls;
1576415782
};
1576515783
/**
1576615784
* @private
@@ -15863,12 +15881,14 @@ var egret;
1586315881
}
1586415882
};
1586515883
p.renderGroup = function (groupNode, context) {
15884+
var drawCalls = 0;
1586615885
var children = groupNode.drawData;
1586715886
var length = children.length;
1586815887
for (var i = 0; i < length; i++) {
1586915888
var node = children[i];
15870-
this.renderNode(node, context);
15889+
drawCalls += this.renderNode(node, context);
1587115890
}
15891+
return drawCalls;
1587215892
};
1587315893
/**
1587415894
* @private

0 commit comments

Comments
 (0)