Commit Graph

75 Commits

Author SHA1 Message Date
Louis Jolibois
5ca21992de Added a shared cached dummy canvas context that may be used by Kinetic.Text methods.
This greatly improves performances when creating lots of Kinetic.Text nodes, especially on mobile devices.
2013-03-14 19:34:35 +01:00
Eric Rowell
5d3180aee5 added text metric caching to improve text drawing performance a bit 2013-02-10 17:36:47 -08:00
Eric Rowell
c9b99a9131 Kinetic.Text code cleanup 2013-02-10 15:42:48 -08:00
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
c2e5f4c1b3 refactored stroke and fill logic to eliminate duplicated logic 2013-01-24 22:44:00 -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
31ad5fca88 updated docs 2013-01-02 21:35:51 -08:00
Eric Rowell
522607695f Text fontSize unit is now in pixels (used to be points). Default text lineHeight attr is now 1 (used to be 1.2) 2013-01-01 19:36:13 -08:00
Eric Rowell
e9d56dafba added new Blob shape. removed double quotes from all shapes. made it easier for shapes to extend other shapes 2013-01-01 00:41:13 -08:00
Eric Rowell
7cb4c4269f huge changes to Text shape. Skinnied it up by removing rectangle rendering component. textFill is now fill, textStroke is now stroke, textShadow is now shadow, and textStrokeWidth is now strokeWidth 2012-12-31 12:45:32 -08:00
Eric Rowell
36584a3ce2 cleaned up docs, and beefed up individual shape docs. moved corner radius attr to Rect shape 2012-12-22 23:08:03 -08:00
Eric Rowell
f18bf604de added pixel ratio optimization to sharpen renderings for devices with a pixel ratio > 1 2012-12-13 21:53:39 -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
047e26382e added new wedge shape. cleaned up shape comments. added degToRad and radToDeg helper in Type utility 2012-11-29 20:15:01 -08:00
Eric Rowell
0e6eb3ffe4 fixed up some text shadow issues 2012-11-24 09:15:02 -08:00
Eric Rowell
b67cc4b589 Text shape now depends on Rect for rect drawing func 2012-11-23 22:21:19 -08:00
Eric Rowell
318d03feb7 finished up new Scene and Hit Renderers. added new textShadow attrs for more flexibility. Added new fillStroke() method which encapsulates shadow application logic 2012-11-23 14:54:32 -08:00
Eric Rowell
144e95ad42 preparation work for new Renderer inheritance pattern 2012-11-20 23:03:24 -08:00
Eric Rowell
c121e4b941 you can now pass in custom drawFuncs and drawHitFuncs via shape constructors 2012-11-18 20:28:55 -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
d636afb6fe text.getWidth() and getHeight() now return calculated width and height. Removed getBoxWidth() and getBoxHeight() methods 2012-10-11 20:00:13 -07:00
Eric Rowell
0ae50ba523 merge trunk 2012-10-10 19:25:50 -07:00
Eric Rowell
2426c2bd2c moved width and height attrs to node level. This enables us to get and set shape dimensions via width and height. For example, if you have a circle with radius 50, getWidth() will return 100. Not all shapes width and height methods have been implemented yet 2012-10-10 18:48:08 -07:00
ericdrowell
b025767a27 updated jsdocs. TextPath setText() now calls Text setText(). Polygon setPoints() method now has data conversion logic similar to Line 2012-10-07 21:12:45 -07:00
ericdrowell
82bfd9c15a text shadows now work correctly again 2012-10-06 15:19:33 -07:00
ericdrowell
0353214fb6 first pass at rewriting the setAttrs logic in Node. In order to have a cleaner OO design, the data type logic needs to exist within each respective module, such that the setter methods are the source of truth.
the setAttrs method now simply calls setter methods.  Also added _clone
and _merge utility methods in Type.  The refactor greatly improves
decoupling and will enable much cleaner OO design in the near future.
2012-09-24 20:34:23 -07:00
Eric Rowell
1de5bce6e5 multi line text now correctly supports shadows 2012-08-26 18:49:05 -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
ed8c5ab6b8 changing the font size now correctly updates the text data 2012-07-31 21:13:25 -07:00
Eric Rowell
9631d6e1bb split up methods from the PathHelper class and moved them to Path and Geometry. Path specific methods went to Path, and general purpose geometric utility methods went to the Geometry utility class. TextPath now inherits methods from Path 2012-07-28 16:08:14 -07:00
Eric Rowell
c4a359cd48 moved drawFunc definition out of the shape initializers as a method to improve space performance 2012-07-28 10:46:16 -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
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
d0f37f7c88 rewrote text array algo in Text. added newline support. now handling edge case in which the text box width is smaller than a character width. if a line is not able to wrap via space or dash, the word itself is wrapped. 2012-07-08 13:59:43 -07:00
Eric Rowell
a8ab9a2533 implemented clone method (inspired by matteo78) and added thorough unit tests 2012-07-07 14:43:12 -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
3e0ed1c2fb fixed up logical error in Text shape 2012-07-01 17:14:15 -07:00
Eric Rowell
66f29c602e added padding attr change event binding to Text 2012-07-01 17:08:59 -07:00
Eric Rowell
6e3bae6b2d fixed typo introduced with search/replace 2012-07-01 16:29:15 -07:00
Eric Rowell
4c521317ff Text shape is no longer a group made up of a Rect and Shape. The complexity overhead out-weighs the inelgance of duplicating a dozen lines of the Rect shape. 2012-07-01 16:25:02 -07:00
Eric Rowell
aa4b0955c0 added horizontal align logic back into the Text draw func 2012-06-30 20:05:27 -07:00
Eric Rowell
e279ea30b9 fixed up new Text wrap edge cases. Will add a bunch of unit tests soon 2012-06-30 19:43:52 -07:00
Eric Rowell
6663b9e612 first pass at implementing auto word wrap. Still have a few edge cases to cover. Removed vertical align property as it is no longer relevant 2012-06-30 00:40:54 -07:00
Eric Rowell
07ef653441 completely rewrote the Text shape. Kinetic.Text is now a Group that's composed of a Rect and a custom shape that draws text. align and vertical align now apply to the text alignment inside the text box. box rounded corners are now possible since Text uses Rect. Shadow logic improved. Beefed up the text getter and setter unit tests 2012-06-27 19:50:32 -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
19750782c7 improved drawing speed by 7% by optimizing stroke(), fill(), and several other methods 2012-06-22 19:36:37 -07:00
Eric Rowell
9b76f650f7 exposed content event bindings so that we can simulate mouse and touch events for the purpose of internal and external functional tests 2012-06-14 23:46:52 -07:00
Eric Rowell
73ad904de6 updated jsdocs 2012-06-14 02:19:51 -07:00
Eric Rowell
6d4738cd2b all simple getters and setters are now dynamically created. This is the first step towards creating a code base that can unpack at run time to reduce file size 2012-06-10 13:07:09 -07:00