Commit Graph

31 Commits

Author SHA1 Message Date
juliandescottes
ce111be5c8 Merging from master after PR zoom level 2013-11-23 19:25:51 +01:00
jdescottes
3af64d3f45 feature : zoom level : code review
+ added explanatory comment for CanvasUtils.disableImageSmoothing
+ detect browser for chosing wheel/mousewheel event in DrawingController
+ create ABSTRACT_FUNCTION constant to be reused forabstract methods
2013-11-15 00:32:18 +01:00
jdescottes
4f54715f70 fix : reduce piskel model size
- Initial implementation : working but ...
- MODEL_VERSION has been bumped to 2
- The loading process is now theoretically asynchronous (loading images to
  read the content of the layers), but for now, the asynchronous behaviour
  is hidden behind a nasty hack, which is somehow similar to lazy loading.
  When loading the piskel, a Piskel is created synchronously, with fake
  empty frames, and as the images will get loaded, the fake frames will be
  replaced by the actual frames.

  I really don't like this, and the asynchronous nature of the loading
  should be clearly expressed
- There is no backward compatible deserializer for the previous version of
  the model (1)
- The Serializer utils is just badly designed. Serialization and
  deserialization should be splitted into two different classes
- Saving & loading are still done in app.js and should be moved to
  services

BUT : the size of the piskels is now pretty small. A piskel which was
using 890kB previously is now using only 10kB. Although it should be
noted, that after gzip there is no significant difference between this
version and the existing one. The only gains we can really expect with
this are : less disk space used on appengine, ability to reuse the
layers' pngs directly on piskel-website (but to be honest I can't see any
valid use case for this)
2013-11-08 00:44:24 +01:00
jdescottes
6e1ce724cb feature : zoom level
- fix : removed duplicated code between ImageResizer and CanvasUtils
  (disabledImageSmoothing utility method)
- added pskl.utils.UserAgent, basic user agent sniffer. I need it to sniff
  out IE10 for frame rendering (and it's not possible to feature detect
  here). Can check isChrome, isFirefox, isIE and get the version for each
  of them
- added resizeNearestNeighbour in ImageResizer. Readapted from piskel
  website, this allows us to 1 - resize without AA on IE10, and 2 - add a
  pixel gap to reenable the GRID
- finally : added back support for GRID !
- also extracted the 'zoomed out background color' as a constant in
  Constant.js
2013-11-05 00:05:49 +01:00
jdescottes
b7e8310b61 feature : zoom : continued
- simplified Renderer(s) architecture (removed decorator,
  CachedFrameRenderer simply inherits from FrameRenderer now)
- keeping AbstractRenderer to act as interface
- fixed issue with layers : forgot to clone the first frame while merging
  and therefore was modifying the original frame when I just wanted to
  create a tmp frame (FrameUtils.js)
- extracted the mousemove throttling delay used in DrawingController to
  Constants.js and reduced it from 40ms to 10ms
2013-11-01 16:27:23 +01:00
jdescottes
7490651f83 Zoom initial implementation. No UI, only bound to mousewheel. Everything is broken, to amend ! 2013-10-29 22:16:39 +01:00
jdescottes
55e3607ecc Cleanup of saving/loading process 2013-10-10 00:06:11 +02:00
jdescottes
2686a2e944 Layers:Review:Removed grid drawing routine : was never drawn 2013-09-30 22:44:02 +02:00
jdescottes
4eebff804b Layers:Review:Renamed layers-container to layers-list-container. Extracted URLs to Constant.js 2013-09-29 23:26:09 +02:00
Julian Descottes
ca427e0853 Dev environment : closure compiler + jshint update
Fixed error raised by closure compiler
Added es3 option to jshint (detect trailing commas)
Added curly option to jshint (missing curly braces for if/for blocks)
Removed trailing whitespaces (not enforced through jshint though)
2013-09-28 23:52:51 +02:00
jdescottes
6528c7724b Issue 24 : Layers
!! NOT STABLE !!
Initial implementation. No UI update yet.
Check js/model/Piskel.js and js/model/Layer.js for an overview of the new
API.

Piskels can be saved on the existing service.

Previous piskels cannot be loaded. This should be fixed soon.
2013-09-22 21:02:43 +02:00
jdescottes
9ef22f646e removed renamed script-load-list.js and rolled back useless change in js/Constants.js 2013-08-11 10:04:35 +02:00
jdescottes
36c247cb04 Worker blob loader is not working on IE ... 2013-08-11 01:25:18 +02:00
jdescottes
f468790baa Merge from master + added more jshint checks (undef and latedef). Very helpful to catch post merge issues. 2013-08-10 14:28:10 +02:00
jdescottes
87a68bfe21 Dev environment:force indentation to 2 spaces. Added new grunt module, grunt-leading-indent to check space consistency, and modified jshint options to enforce 2 spaces 2013-08-10 12:11:16 +02:00
jdescottes
1977141076 Fixed size related issues. Selection Manager no longer depends on the frameoverlay which is now only manipulated by the tools 2013-08-05 23:34:11 +02:00
Vince
403105aae4 Adding TODOs related to namespace cleaning 2013-06-17 11:42:53 +02:00
jdescottes
bba1bb202b extra comma 2013-04-09 07:26:37 +02:00
jdescottes
9b40b11703 Support secondary color for color picker 2013-04-09 07:24:07 +02:00
juliandescottes
c7a8233adc Saving and reading FPS from model 2012-09-20 23:57:26 +02:00
juliandescottes
8bee1fe4f3 Merge branch 'master' into add-dynamicsize 2012-09-16 23:27:00 +02:00
juliandescottes
0d1775b24c Dynamic size for frame 2012-09-16 18:48:32 +02:00
Vince
6369fb4656 adding comments 2012-09-16 15:47:39 +02:00
Vince
31d2f90bfe highlight target tool pixel - intial commit 2012-09-16 15:35:30 +02:00
juliandescottes
a8394d22b1 fixed jshint complaints 2012-09-11 00:52:09 +02:00
Vince
df945e10dd Add grid checkbox 2012-09-08 23:43:16 +02:00
Vince
2a20cc90ea Integration (with myself) fixes
- Adding default value in empty frames to avoid artifact when paint
bucketing (you may have issues with previously stored model before this
commit, no migration plan for papybrossette :D)
 - Fix issue: Model does not show up when loading a remote GAE model
 - Removing FRAMESHEET_UPDATED events (remains of history manager
implementation)
2012-09-03 20:45:25 +02:00
Vince
35736949d8 Shit merge 2012-09-03 01:34:11 +02:00
Vince
d7044dc44d Cleanup of piskel.js
Partial cleanup of piskel:
  new events and constant
  move palette and color picker in ToolSelector
  create Notifcation.js and move user message in it
  create LocalStorageService and move LS stuff in it
2012-09-03 01:24:55 +02:00
Vince
4622cf67a7 Adding support for transparent color 2012-09-02 01:41:49 +02:00
Vince
ca04f8db4d Tool plugin architecture with eraser/pen/paintbucket tools. 2012-09-01 01:21:58 +02:00