Commit Graph

125 Commits

Author SHA1 Message Date
Eric Rowell
b1038e99bf pulled Node config params and Shape config params into a textfile, and now using token replacement to auto fill Node and Shape config params throughout the code base. In this way, if I need to make changes to the Node or Shape configs, those changes are propagated to all of the other constructors 2013-01-26 20:42:19 -08:00
Eric Rowell
ed579e4843 added new destroy Node method which removes and destroys a node. remove() now simply removes a node from the stage. You can re add the node at a later time with add(). getDOM() changed to getContent(). stage.remove() now correctly removes content node 2013-01-12 22:01:12 -08:00
Eric Rowell
a283286803 fixed up clearBeforeDraw() documentation 2013-01-07 20:03:44 -08:00
Eric Rowell
bba5c7b101 really cool new feature that... wait, no, just more docmentation 2013-01-02 23:55:56 -08:00
Eric Rowell
66a7e2ac39 layer.toDataURL() now directly returns layer canvas data url if position and size are not specificed. updated unit tests and docs 2013-01-02 22:02:00 -08:00
Eric Rowell
31ad5fca88 updated docs 2013-01-02 21:35:51 -08:00
Eric Rowell
375c64a332 added counter pixel ratio method so that drawings aren't double scaled when using toDataUrl and toImage 2012-12-21 22:51:57 -08:00
Eric Rowell
cb8d36c393 fixed several bugs with toImage(). toImage() can now also accept x and y params. added extensive caching unit test. removed drawBuffer logic as it is no longer needed 2012-12-11 00:08:59 -08:00
Eric Rowell
291583148b moved all rendering logic into the Canvas renderer modules. Shape draw funcs are now passed a renderer object, not a canvas context. The context is accessible via canvas.getContext() 2012-12-09 09:52:33 -08:00
Eric Rowell
ab19b442a0 wrapped all modules with anonymous func. moved Canvas to root dir because it's now coupled to KineticJS logic. removed whitelisting arrays from Global. Did some prep work for AMD and Node support 2012-12-01 12:04:10 -08:00
Eric Rowell
48e014fe01 bug fix #29 bug fix #143 when node.remove() is called, parent property is unset. Also migrated remove tests from containerTests to nodeTests. 2012-11-24 23:19:16 -08:00
Eric Rowell
27d5031665 further decoupled scene, hit, and buffer graph drawing. To define a custom hit draw function, you now need to set the drawHitFunc attr. 2012-11-18 19:50:50 -08:00
Eric Rowell
2115920ab8 fixed up Canvas type bug. The Canvas constructor can now also take an optional isBuffer param. If not defined, default value is scene 2012-11-13 22:16:36 -08:00
Eric Rowell
5be1802729 fix #149 began decoupling scene graph draw and buffer graph draw logic. This will enable more flexibility for developers to define custom buffer draw functions, and it also improves draw performance for both the scene and buffer graphs, because each function can be optimized for its purpose. Also moved text drawing logic to the Text shape 2012-11-12 19:59:19 -08:00
Eric Rowell
3d0cb26e6d updated build file to also minify modules separately for custom builds. Started work on decoupling Animation and DragAndDrop logic from other modules 2012-10-14 18:46:04 -07:00
ericdrowell
f74955641a fixed multiple bugs related to toDataURL() when using hidden layers 2012-10-07 19:38:12 -07:00
ericdrowell
432533ae4a greatly improved the OO design for draw logic. removed unecessary _draw() and __draw() methods 2012-10-07 19:14:14 -07:00
ericdrowell
3f8801a494 setZIndex now correctly reorders layer canvases 2012-10-05 18:59:03 -07:00
ericdrowell
0eff286243 fix #93 rather than detecting if a layer is listening or visible, I think it's cleaner to hide and show the buffer canvas along with the scene canvas inside the setVisible method 2012-10-02 23:33:53 -07:00
ericdrowell
759ec116ce fixed up unit serialization tests. cleaned up constructor jsdoc comments. fixed Ellipse setRadius method 2012-09-26 20:28:20 -07:00
ericdrowell
f235ea032d improved OO design for remove() and add() 2012-09-26 19:26:53 -07:00
ericdrowell
d4734ba33a created _getFillType utility to help manage fill type objects. You can now dynamically switch between different fill types, including colors, linear gradients, radial gradients, and patterns 2012-09-25 15:57:57 -07:00
ericdrowell
d522b9d9d0 now that the attrs engine has been rewritten, we can cleanly hide and show the layer canvas whenever the layer is hidden or shown via instantiation or with setters. Also improved layer hide and show unit test 2012-09-25 12:22:22 -07:00
Eric Rowell
d0a1b2870e when calling layer.hide() or show(), the physical canvas element is hidden and shown rather than clearing and redrawing the layer. This greatly improves hide and show performance for layers 2012-09-18 09:25:16 -07:00
Eric Rowell
c01c08d557 now removing color key from shapes hash when a shape is removed from the stage 2012-08-26 18:25:51 -07:00
Eric Rowell
1ad2530889 removed john resig's Class class because it was really slowing down node instantiations. Created a custom solution that's much lighter weight, and about 50% faster 2012-08-22 23:35:21 -07:00
Eric Rowell
d48aa321f4 removed resig's Class dependency to test performance gain 2012-08-22 23:13:09 -07:00
Eric Rowell
15aeabacc1 added logic to correctly draw buffer paths for cases where a developer is creating an invisible mask for event detections 2012-08-20 22:11:13 -07:00
Eric Rowell
9093d9a512 refactored draw, _draw, and _drawChildren methods in such a way that isVisible and getListening logic resides in one place, therefore improving code quality 2012-08-19 20:44:45 -07:00
Eric Rowell
f53c43d4f7 added drawScene() method which only redraws the scene and not the buffer 2012-08-16 23:22:07 -07:00
Eric Rowell
6a58830df3 draw methods now draw on both the front and back buffer by default, unless a canvas is passed as an argument. continued fixing up unit tests. Image width and height are now synced whenever the image object changes. 2012-08-15 23:13:50 -07:00
Eric Rowell
02c6c7276f continued prep work for v4.0.0. removed detectionType property because new event engine uses one strategy. added new drawBuffer method so that you can redraw the buffer without redrawing the visible canvas. changed alpha to opacity. 2012-08-13 23:06:29 -07:00
Eric Rowell
468f8ef2d3 checking in first phase of new hit detection algo, which enables high performance event detections even if there are hundreds of thousands of shapes. This is a giant improvement over the previous algo, and is a fairly big architectural change. Since the Animation architecture and API is also changing, I feel that these changes are big enough to warrant a new major version, v4.0.0 2012-08-11 16:22:01 -07:00
Eric Rowell
0f1a424840 prototyping back buffer hit detection algo 2012-08-10 22:33:22 -07:00
Eric Rowell
eccd8b7e64 silky smooth animations. got rid of layer and event throttling, and instead created dragThrottling. The dynamic animation frame rates already handles optimized animation drawing, we just needed to add manual throttling to drag and drop. Animations are now very smooth, and drag and drop is still smooth 2012-07-26 23:26:58 -07:00
Eric Rowell
ce3b98ee9c added some performance tweaks and polished up code here and there 2012-07-26 22:58:38 -07:00
Eric Rowell
5f7b6018fa finally got around to documenting the Node, Group, Stage, Shape, Layer, and Container constructors 2012-07-23 22:39:55 -07:00
Eric Rowell
3617d8ef5f updated docs 2012-07-22 23:30:56 -07:00
Eric Rowell
781a2ebe60 fixed a few bugs discovered with integration testing. added some performance tweaks 2012-07-21 21:09:02 -07:00
Eric Rowell
f1cb695e1f you can now cache regions of a node outside of the stage viewport. added more unit tests 2012-07-21 15:38:25 -07:00
Eric Rowell
d74ec8ab06 fixed new bug with stage toDataURL that was introduced with the new Canvas class, and added new filter unit tests 2012-07-21 13:29:22 -07:00
Eric Rowell
d8bbbf6353 new Canvas class to decouple layer and canvas, providing more flexibility. drawing operations now require a canvas object rather than an optional layer which contained a canvas. fixed some transformation issues introduced with a pull request that I pulled in last week 2012-07-18 23:28:45 -07:00
Eric Rowell
4692c51c74 toDataURL() is now synchronous, and works with all nodes, including the stage, layers, groups, and shapes. This also sets things up nicely for node caching. You can now cache anything, including the whole stage, layers, groups, or shapes, manifested as Kinetic Images that were instantiated with data urls 2012-07-14 18:10:37 -07:00
Eric Rowell
d62df7ba5c setup filters. saveImageData can now work for any nodes, including shapes, groups, layers, and the stage. images can now take image data as a parameter. This enables shape caching. New beforeAttrChange event which fires before an attr is changed 2012-07-14 16:25:56 -07:00
Eric Rowell
780d5568db updated the documentation for all methods to reflect the new inhertiance changes. And yes, if you're curious, it took forever. 2012-07-08 21:56:52 -07:00
Eric Rowell
014d4f198f fixed mouseover / mouseout incorrectly firing when moving from one node to another node inside the same container 2012-07-06 00:27:55 -07:00
Eric Rowell
3d4d2d20c0 now utilizing John Resig's mashup of Base.js and protototype.js inheritiance Class so that it's easy for developers to extend KineticJS objects with extend() or to simply tack on new methods and properties that's available to all children classes. Moved getter and setter logic to Node. Moved transition class to root directory and created Tween class 2012-07-03 12:07:27 -07:00
Eric Rowell
c1a08d8073 created new addSettersGetters method, further enhanced dynamic getters and setters 2012-06-23 18:09:10 -07:00
Eric Rowell
80eb50a708 added new clearBeforeDraw Layer property which enables you to skip canvas clearing before each draw. Added new warn() method to test suite, and added error and warning colorings to the test counter 2012-06-23 16:11:58 -07:00
Eric Rowell
bf616d0d4d fixed mousemove event bug, and added a very rigorous functional test to test all of the basic shape events for both desktop and mobile 2012-06-18 17:56:12 -07:00