Commit Graph

362 Commits

Author SHA1 Message Date
jdescottes
781abb735b fix : reduce piskel model size
- added backward compatible implementation for v1 models
2013-11-13 22:57:07 +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
c8a8d470a7 renamed all references to dpi to zoom for consistency (also wtf dpi anyway !) 2013-11-05 22:11:47 +01:00
jdescottes
bd030fdf1f Merge branch 'master' into zoom-level 2013-11-05 00:15:08 +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
2248f41e68 feature : zoom-level
- Fixed bug with layer rendering when moving drawing offset (bad
  redraw-flag checking)
2013-11-02 13:45:41 +01:00
jdescottes
44722ab88e feature : zoom-level
- Fixed bug with layer rendering when moving drawing offset (bad
  redraw-flag checking)
2013-11-02 11:39:35 +01:00
jdescottes
cd4952cc7b feature : zoom-level
- Minimap usability : mouseup and mousemove events are now plugged on
  document.body instead of the minimap's controller. This way the user can
  move his mouse outside the container to keep moving the map's frame.
  Also the mouseup information is no longer lost if it occurs outside for
  the minimap.
2013-11-02 11:24:02 +01:00
jdescottes
eb559eee0c fix : import-picture-panel
- When imported 1 picture and then importing another one, the picture
  preview was not cleaned and was displaying the two images side by side.
  Fixed in ImportController.js
- Switched all double-quoted strings in ImportController to single-quoted
  strings. Should enforce this using jshint
- Aligned all inputs in the import picture panel
- Renamed 'Preview :' import section to 'Info :'. Mostly it's to make it
  shorter, but also I'd like to display additional information to the
  right of the preview in the future.
2013-11-02 11:02:03 +01:00
jdescottes
e0d63bf295 fix : renderer resize on window resize 2013-11-02 00:00:38 +01:00
jdescottes
8a380b6c78 merged from master 2013-11-01 23:37:09 +01:00
jdescottes
5693f34fb9 fix : LocalStorageService deserialization 2013-11-01 23:30:33 +01:00
jdescottes
bd99027852 feature : zoom
- Added MinimapController that displays a frame on the animated preview
  when zoomed in
- Added bounds for the offset to make sure it doesn't go crazy
- Added new utility Math.js with a minmax function
- TODO : the minimap controller has a lot of dependencies, see if could be
  cleaned up
- TODO : DrawingController knows the size of the picture it has to render
  only indirectly, which makes it hard in some cases (such as boundary
  checking performed during setOffset)
2013-11-01 23:11:11 +01:00
jdescottes
68edbe62c7 Forgot 2 files ! 2013-11-01 17:17:41 +01:00
jdescottes
472906957a feature : zoom :
- Extracted layers rendering logic from DrawingController to dedicated
  class
- Turned RendererManager into Composite renderer (extends
  AbstractRenderer)
- AbstractRenderer no longer contains a render(frame) method, implementing
  the render differs too much between my current renderers to impose a
  single signature, but I should improve this later if too much time on ma
  hands
2013-11-01 17:12:59 +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
51f86afe6e feature : zoom
- Created AbstractRenderer in rendering package
- Created CachedRenderer and CachedFrameRenderer to extract basic frame
  caching logic from DrawingController
- Created RendererManager to synchronize updates made to several Renderer
  settings
- Moved FrameRenderer from pskl.rendering to pskl.rendering.frame
- Fixed the resize of the drawing area when the window is resized
2013-11-01 15:39:42 +01:00
jdescottes
3ce9aaa843 Added utilities for alpha-composition in FrameUtils, for future usage ... maybe 2013-11-01 11:17:50 +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
2f6f0d14e1 Merge branch 'master' into import-picture-panel 2013-10-28 21:58:28 +01:00
jdescottes
a69b83e9bd Fix : layer : duplicateFrame bug 2013-10-28 21:57:59 +01:00
jdescottes
a0a1fa7bdf Added preview picture. Added a flow : start with only file input enabled 2013-10-23 23:34:09 +02:00
jdescottes
3dde3504d1 Synchronize resize fields, resize image when importing 2013-10-23 01:01:35 +02:00
jdescottes
6c0f54032d Import panel 2013-10-22 07:40:08 +02:00
jdescottes
61419f0bba import panel : before removal of import from URL option 2013-10-21 23:08:12 +02:00
jdescottes
2509ba80a4 intermediary 2013-10-18 08:01:25 +02:00
jdescottes
07cb37f2bf Merge branch 'master' into import-picture-panel 2013-10-16 23:15:09 +02:00
jdescottes
1156008213 Import from file 2013-10-16 23:14:41 +02:00
jdescottes
f549174424 Import panel:
- added pskl.controller.settings.ImportController (empty atm)
- moved SettingsController under settings namespace
- move settings templates in a dedicated folder
- created import icon (svg is in the resources folder)
- added import button in right-layer
2013-10-11 00:04:40 +02:00
Julian Descottes
4527846ad6 PR138#commitcomment-4293036 use full namespace when specifying a classtype
See https://github.com/juliandescottes/piskel/pull/138#commitcomment-4293036
2013-10-10 13:35:18 +02:00
jdescottes
55e3607ecc Cleanup of saving/loading process 2013-10-10 00:06:11 +02:00
jdescottes
564f74265a Piskel website adaptations :
M CanvasRenderer : can set the color used to represent transparency
M app.js : modified code responsible for saving when in website mode
M PiskelController.js : just some argument renaming
2013-10-08 23:44:06 +02:00
grosbouddha
913a50cb28 Merge pull request #129 from juliandescottes/cleanup-cheap-templates
Refactor : moved cheap-templates.js to lib. Added documentation
2013-10-04 15:07:01 -07:00
jdescottes
17a147c880 grrmml 2013-10-04 23:55:45 +02:00
jdescottes
1e99a051e6 Rollback of initialization sequence 2013-10-04 23:46:19 +02:00
jdescottes
894486fba6 Review : fixes 2013-10-04 23:26:53 +02:00
jdescottes
5502d75ca5 Layers:Added backward compatibility for previous models 2013-10-04 22:59:42 +02:00
jdescottes
a87b09908d Refactor : moved cheap-templates.js to lib. Added documentation 2013-10-04 22:25:47 +02:00
jdescottes
2686a2e944 Layers:Review:Removed grid drawing routine : was never drawn 2013-09-30 22:44:02 +02:00
jdescottes
f514b6cd10 Layers:Review:Cleanup of GifExportController 2013-09-30 22:00:31 +02:00
jdescottes
7aa407970f Layers:Review:Rename LayersController to LayersListController 2013-09-30 21:22:58 +02:00
jdescottes
90f2fac2d3 Layers:Minor style changes 2013-09-29 23:33:40 +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
jdescottes
76511058d1 Layers:Review:Rename renderers frame up/down to above/below 2013-09-29 23:16:32 +02:00
jdescottes
4f754c6af2 Layers:Review:Changed FrameRenderer className property to classes (array) 2013-09-29 23:14:10 +02:00
jdescottes
17ba93cc9f Layers:Review:Renamed layers canvases css classes to layers-above/below-canvas 2013-09-29 23:05:24 +02:00
Julian Descottes
87ba28372c Layers : Deleted js/model/Framesheet.js
No longer used
2013-09-29 00:02:21 +02:00
Julian Descottes
be9238c9b1 Layers : FRAMESHEET_RESET -> PISKEL_RESET
Framesheet no longer exists.
2013-09-29 00:01:18 +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
Julian Descottes
b254c582b9 Merge branch 'master' into feature-gif-export-panel 2013-09-28 23:37:12 +02:00
Vince
38dc1dc9fe Closure Compiler: Fix All The things !
- Adding some small fixes to pass compile step (mostly /** instead of
/*).
  - Adding some closure externs
2013-09-28 21:10:12 +02:00
jdescottes
1bc73125dc Fix jscolor : add jscolor.install to Palette Controller init sequence. Fix layer canvas update on DPI change 2013-09-26 22:43:45 +02:00
jdescottes
50ca22d91a Clear layers canvas before redraw 2013-09-26 21:53:37 +02:00
jdescottes
3a8d96f840 Arrow icons update 2013-09-26 07:47:11 +02:00
jdescottes
9395be3034 Layers : add layer icon. Position buttons on top of list. Fix name generation issue 2013-09-25 22:43:21 +02:00
jdescottes
80a9fe3396 First layer UI. Just functional, UX far from ideal 2013-09-25 00:11:12 +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
4f6863eb8a Gif export panel first draft 2013-09-07 17:50:43 +02:00
jdescottes
069ccb0735 Merge branch 'master' into feature-gif-export-panel 2013-09-07 13:29:57 +02:00
jdescottes
e91f1fc74b Adding loadFramesheet entrypoint for importing pictures 2013-08-15 20:47:50 +02:00
jdescottes
73b98850db Added cheap lazy templates + logic to switch between setting controllers 2013-08-12 07:31:09 +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
e6080c781b Preload worker in a blob to avoid any subsequent call to server 2013-08-10 18:06:57 +02:00
jdescottes
39287e3400 Switched to gif.js library. It's awesome 1 2013-08-10 17:35:36 +02:00
jdescottes
c23de31e07 Merge from master + bugfixing on b64 2013-08-10 14:47:26 +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
dc557bdba8 Fixed png preview orientation when saving 2013-08-06 23:38:56 +02:00
jdescottes
2deaf00911 Additional fix to be inline with what APP Engine expects 2013-08-05 23:57:51 +02:00
jdescottes
21172249a3 Added fix for PreviewFilmController for very big piskels : limit DPI to 1 2013-08-05 23:55:19 +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
jdescottes
b42f896584 Adaptations for APP Engine compatibility 2013-08-04 22:15:45 +02:00
jdescottes
a16e1bab09 added Function.prototype.bind polyfill for PhantomJS. Make Casper happy. 2013-08-04 21:20:25 +02:00
jdescottes
91bacd1dd9 Added concat and uglify tasks to grunt. Piskel on master will only be able to work in debug mode, by passing ?debug in URL. The minified version is built in /build, which has been added to .gitignore 2013-08-04 18:27:32 +02:00
jdescottes
218dbbc8b9 put appEngineToken on pskl namespace, fix private convention 2013-07-19 00:37:47 +02:00
jdescottes
032c8c4485 Added logic to switch behavior between appengine and static mode. Removed piskel on window in favor of pskl.app 2013-07-14 23:04:42 +02:00
Julian Descottes
66d19cf9ca Merge pull request #112 from juliandescottes/fix-canvas-size-with-grid
Fix canvas size when grid display is active
2013-06-19 22:23:55 -07:00
jdescottes
a01afe2cfd Changed sortable items selector to a more robust one 2013-06-20 00:32:53 +02:00
jdescottes
07ced5a3b2 Exclude add-frame-button from sortable items in preview-film 2013-06-20 00:05:23 +02:00
Vince
4618cb643a Fix canvas size when grid display is active
- Dynamic resizing of canvas when display_grid is activated/deactivated
 - Adding a main-wrapper to get a perfect alignement at the top and
bottom the application screen
 - fix DPI update on page load (independent of grid option).
 - fix available width for DPI calculation (using margin-box, was using
only content before)
2013-06-19 19:01:12 +02:00
jdescottes
6cb145ae34 Merge branch 'master' into user-settings 2013-06-19 07:38:13 +02:00
Vince
7bbcbe1861 Review comments 2013-06-19 01:51:53 +02:00
jdescottes
0fe2e981b0 Reverted back to onchange due to lack of support of input range in firefox 21 2013-06-19 00:29:07 +02:00
Vince
73aae69425 Fix Travis: convert tabs to spaces 2013-06-17 23:22:30 +02:00
Vince
5913b19641 Plug canvas background settings on UserSettings storage
Canvas background class are now manager at the FrameRenderer level
instead of CSS classes at the top of the DOM.
2013-06-17 23:10:35 +02:00
Vince
9eac3414a3 Clean grid code: semantic names and tiny refactor using UserSettings 2013-06-17 23:06:17 +02:00
Vince
2691b23c09 Fix cache typo in UserSettings 2013-06-17 21:23:21 +02:00
Vince
9a3a87bd57 Fix travis 2013-06-17 21:03:22 +02:00
Vince
1d4ff1d2de Create an event based UserSettings and use it for the grid diplay state. 2013-06-17 20:24:27 +02:00
Vince
889d5c0d53 Add basic UserSettings persistence static utility.
Based on localStorage for now.
2013-06-17 19:54:43 +02:00
Vince
403105aae4 Adding TODOs related to namespace cleaning 2013-06-17 11:42:53 +02:00
Vince
97ddc6ecc1 Adding simple backgorund picker (without persistence) 2013-06-17 11:36:56 +02:00
Vince
453f77cdd6 Nit: fix indentation 2013-06-17 10:37:08 +02:00
Vince
458f56f1ec Move toggling code to settingscontroller 2013-06-16 10:36:26 +02:00
Vince
3ac2c5e922 Remove bad/deprecated TODOs 2013-06-16 10:18:22 +02:00
Vince
955a49d2dd Adding SettingsController 2013-06-16 10:17:50 +02:00
Vince
765f75f255 Fix preview frames scrollers
They were not properly updated when content was re-becoming smaller
than the scroller.
2013-06-16 09:38:31 +02:00
Patrick Brosset
f6f02c7c1f correct slider init value and better FX slider event handling 2013-06-15 21:27:08 +02:00
Vince
4208e40c24 Adding drawer prototype 2013-06-15 19:35:55 +02:00