mirror of
https://github.com/konvajs/konva.git
synced 2025-09-19 10:47:59 +08:00
now we may use cache
before adding to layer
This commit is contained in:
12
kinetic.js
12
kinetic.js
@@ -4,7 +4,7 @@
|
||||
* http://www.kineticjs.com/
|
||||
* Copyright 2013, Eric Rowell
|
||||
* Licensed under the MIT or GPL Version 2 licenses.
|
||||
* Date: 2014-04-26
|
||||
* Date: 2014-04-27
|
||||
*
|
||||
* Copyright (C) 2011 - 2013 by Eric Rowell
|
||||
*
|
||||
@@ -7870,7 +7870,10 @@ var Kinetic = {};
|
||||
bufferContext.clear();
|
||||
bufferContext.save();
|
||||
bufferContext._applyLineJoin(this);
|
||||
layer._applyTransform(this, bufferContext, top);
|
||||
// layer might be undefined if we are using cache before adding to layer
|
||||
if (layer) {
|
||||
layer._applyTransform(this, bufferContext, top);
|
||||
}
|
||||
|
||||
drawFunc.call(this, bufferContext);
|
||||
bufferContext.restore();
|
||||
@@ -7888,7 +7891,10 @@ var Kinetic = {};
|
||||
// if buffer canvas is not needed
|
||||
else {
|
||||
context._applyLineJoin(this);
|
||||
layer._applyTransform(this, context, top);
|
||||
// layer might be undefined if we are using cache before adding to layer
|
||||
if (layer) {
|
||||
layer._applyTransform(this, context, top);
|
||||
}
|
||||
|
||||
if (hasShadow) {
|
||||
context.save();
|
||||
|
4
kinetic.min.js
vendored
4
kinetic.min.js
vendored
File diff suppressed because one or more lines are too long
10
src/Shape.js
10
src/Shape.js
@@ -152,7 +152,10 @@
|
||||
bufferContext.clear();
|
||||
bufferContext.save();
|
||||
bufferContext._applyLineJoin(this);
|
||||
layer._applyTransform(this, bufferContext, top);
|
||||
// layer might be undefined if we are using cache before adding to layer
|
||||
if (layer) {
|
||||
layer._applyTransform(this, bufferContext, top);
|
||||
}
|
||||
|
||||
drawFunc.call(this, bufferContext);
|
||||
bufferContext.restore();
|
||||
@@ -170,7 +173,10 @@
|
||||
// if buffer canvas is not needed
|
||||
else {
|
||||
context._applyLineJoin(this);
|
||||
layer._applyTransform(this, context, top);
|
||||
// layer might be undefined if we are using cache before adding to layer
|
||||
if (layer) {
|
||||
layer._applyTransform(this, context, top);
|
||||
}
|
||||
|
||||
if (hasShadow) {
|
||||
context.save();
|
||||
|
@@ -2813,6 +2813,41 @@ suite('Node', function() {
|
||||
//assert.equal(circle._cache.canvas.scene.getContext().getTrace(), 'save();translate(74,74);beginPath();arc(0,0,70,0,6.283,false);closePath();fillStyle=green;fill();lineWidth=4;strokeStyle=black;stroke();restore();');
|
||||
});
|
||||
|
||||
test('cache shape before adding to layer', function(){
|
||||
var stage = addStage();
|
||||
var layer = new Kinetic.Layer();
|
||||
var circle = new Kinetic.Circle({
|
||||
x: 74,
|
||||
y: 74,
|
||||
radius: 70,
|
||||
fill: 'green',
|
||||
stroke: 'black',
|
||||
strokeWidth: 4,
|
||||
name: 'myCircle',
|
||||
draggable: true
|
||||
});
|
||||
assert.equal(circle._cache.canvas, undefined);
|
||||
circle.cache({
|
||||
x: -74,
|
||||
y: -74,
|
||||
width: 148,
|
||||
height: 148
|
||||
}).offset({
|
||||
x: 74,
|
||||
y: 74
|
||||
});
|
||||
|
||||
stage.add(layer);
|
||||
|
||||
|
||||
assert(circle._cache.canvas.scene);
|
||||
assert(circle._cache.canvas.hit);
|
||||
|
||||
layer.add(circle);
|
||||
layer.draw();
|
||||
assert.equal(layer.canvas.getContext().getTrace(), 'clearRect(0,0,578,200);clearRect(0,0,578,200);save();transform(1,0,0,1,0,0);drawImage([object HTMLCanvasElement],0,0);restore();');
|
||||
});
|
||||
|
||||
|
||||
test('cache shape inside transformed group', function(){
|
||||
var stage = addStage();
|
||||
|
Reference in New Issue
Block a user