diff options
author | Nivesh Rajbhandari | 2012-02-29 11:58:28 -0800 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-02-29 11:58:28 -0800 |
commit | a89e30ab834a48be32b6122e0c8ac1e0c3ed43e8 (patch) | |
tree | ca0b67572b59ef24adc53c8b17b6efac6a5c7870 /js/controllers | |
parent | eb27ed35bf282262843de13b00af89a2bceac53f (diff) | |
download | ninja-a89e30ab834a48be32b6122e0c8ac1e0c3ed43e8.tar.gz |
Fix for performance issue when moving shapes. We don't need to call render except if the geometry and materials change.
This is more easy to see with shapes like the brush tool.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index e0bff70c..749a1dd9 100755 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -19,43 +19,51 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
19 | this.setShapeProperty(el, "strokeSize", value); | 19 | this.setShapeProperty(el, "strokeSize", value); |
20 | el.elementModel.shapeModel.GLGeomObj.setStrokeWidth(val); | 20 | el.elementModel.shapeModel.GLGeomObj.setStrokeWidth(val); |
21 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 21 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
22 | el.elementModel.shapeModel.GLWorld.render(); | ||
22 | break; | 23 | break; |
23 | case "innerRadius": | 24 | case "innerRadius": |
24 | this.setShapeProperty(el, "innerRadius", value); | 25 | this.setShapeProperty(el, "innerRadius", value); |
25 | el.elementModel.shapeModel.GLGeomObj.setInnerRadius(val/100); | 26 | el.elementModel.shapeModel.GLGeomObj.setInnerRadius(val/100); |
26 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 27 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
28 | el.elementModel.shapeModel.GLWorld.render(); | ||
27 | break; | 29 | break; |
28 | case "tlRadius": | 30 | case "tlRadius": |
29 | this.setShapeProperty(el, "tlRadius", value); | 31 | this.setShapeProperty(el, "tlRadius", value); |
30 | el.elementModel.shapeModel.GLGeomObj.setTLRadius(val); | 32 | el.elementModel.shapeModel.GLGeomObj.setTLRadius(val); |
31 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 33 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
34 | el.elementModel.shapeModel.GLWorld.render(); | ||
32 | break; | 35 | break; |
33 | case "trRadius": | 36 | case "trRadius": |
34 | this.setShapeProperty(el, "trRadius", value); | 37 | this.setShapeProperty(el, "trRadius", value); |
35 | el.elementModel.shapeModel.GLGeomObj.setTRRadius(val); | 38 | el.elementModel.shapeModel.GLGeomObj.setTRRadius(val); |
36 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 39 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
40 | el.elementModel.shapeModel.GLWorld.render(); | ||
37 | break; | 41 | break; |
38 | case "blRadius": | 42 | case "blRadius": |
39 | this.setShapeProperty(el, "blRadius", value); | 43 | this.setShapeProperty(el, "blRadius", value); |
40 | el.elementModel.shapeModel.GLGeomObj.setBLRadius(val); | 44 | el.elementModel.shapeModel.GLGeomObj.setBLRadius(val); |
41 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 45 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
46 | el.elementModel.shapeModel.GLWorld.render(); | ||
42 | break; | 47 | break; |
43 | case "brRadius": | 48 | case "brRadius": |
44 | this.setShapeProperty(el, "brRadius", value); | 49 | this.setShapeProperty(el, "brRadius", value); |
45 | el.elementModel.shapeModel.GLGeomObj.setBRRadius(val); | 50 | el.elementModel.shapeModel.GLGeomObj.setBRRadius(val); |
46 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 51 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
52 | el.elementModel.shapeModel.GLWorld.render(); | ||
47 | break; | 53 | break; |
48 | case "width": | 54 | case "width": |
49 | el.elementModel.shapeModel.GLGeomObj.setWidth(val); | 55 | el.elementModel.shapeModel.GLGeomObj.setWidth(val); |
50 | CanvasController.setProperty(el, p, value); | 56 | CanvasController.setProperty(el, p, value); |
51 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); | 57 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); |
52 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 58 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
59 | el.elementModel.shapeModel.GLWorld.render(); | ||
53 | break; | 60 | break; |
54 | case "height": | 61 | case "height": |
55 | el.elementModel.shapeModel.GLGeomObj.setHeight(val); | 62 | el.elementModel.shapeModel.GLGeomObj.setHeight(val); |
56 | CanvasController.setProperty(el, p, value); | 63 | CanvasController.setProperty(el, p, value); |
57 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); | 64 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); |
58 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 65 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
66 | el.elementModel.shapeModel.GLWorld.render(); | ||
59 | break; | 67 | break; |
60 | case "useWebGl": | 68 | case "useWebGl": |
61 | var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); | 69 | var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); |
@@ -76,6 +84,7 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
76 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); | 84 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); |
77 | el.elementModel.shapeModel.strokeMaterial = sm; | 85 | el.elementModel.shapeModel.strokeMaterial = sm; |
78 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 86 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
87 | el.elementModel.shapeModel.GLWorld.render(); | ||
79 | } | 88 | } |
80 | break; | 89 | break; |
81 | case "fillMaterial": | 90 | case "fillMaterial": |
@@ -85,12 +94,12 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
85 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); | 94 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); |
86 | el.elementModel.shapeModel.fillMaterial = fm; | 95 | el.elementModel.shapeModel.fillMaterial = fm; |
87 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 96 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
97 | el.elementModel.shapeModel.GLWorld.render(); | ||
88 | } | 98 | } |
89 | break; | 99 | break; |
90 | default: | 100 | default: |
91 | CanvasController.setProperty(el, p, value); | 101 | CanvasController.setProperty(el, p, value); |
92 | } | 102 | } |
93 | el.elementModel.shapeModel.GLWorld.render(); | ||
94 | } | 103 | } |
95 | }, | 104 | }, |
96 | 105 | ||