Commit Graph

56 Commits

Author SHA1 Message Date
jdescottes
e68ae7f31d feature : zoom level : code review
+ Switched from BITWISE OR 0 (x | 0) to Math.floor for readability
2013-11-15 00:39:43 +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
c8a8d470a7 renamed all references to dpi to zoom for consistency (also wtf dpi anyway !) 2013-11-05 22:11:47 +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
e0d63bf295 fix : renderer resize on window resize 2013-11-02 00:00:38 +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
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
jdescottes
2686a2e944 Layers:Review:Removed grid drawing routine : was never drawn 2013-09-30 22:44:02 +02:00
jdescottes
4f754c6af2 Layers:Review:Changed FrameRenderer className property to classes (array) 2013-09-29 23:14:10 +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
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
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
39287e3400 Switched to gif.js library. It's awesome 1 2013-08-10 17:35:36 +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
7bbcbe1861 Review comments 2013-06-19 01:51:53 +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
1d4ff1d2de Create an event based UserSettings and use it for the grid diplay state. 2013-06-17 20:24:27 +02:00
Vince
9f940c5b26 Fix Travis 2 2013-06-13 18:00:16 +02:00
Vince
93da547cb1 Fix Travis 2013-06-13 17:56:44 +02:00
Vince
d1f292bd69 Fix save/upload buttons UX
- new look and feel
- upload for png spritesheet & animated gif
- remove host code (window.open) from spritesheetRenderer
2013-06-13 17:39:59 +02:00
grosbouddha
fba6693426 Make jshint quiet now 2013-05-27 23:42:53 +02:00
jdescottes
7c25c54d2c Export to GIF 2013-04-07 20:16:47 +02:00
juliandescottes
9aba931b0a Cleanup of SpritesheetRenderer 2012-09-20 01:10:13 +02:00
juliandescottes
562d669ae1 Basic export - opening new window with concatenated spritesheet in PNG format 2012-09-20 00:43:39 +02:00
juliandescottes
0d1775b24c Dynamic size for frame 2012-09-16 18:48:32 +02:00
juliandescottes
7b90873324 Fixed initialization bug + performance issue with jquery pub sub 2012-09-10 19:53:34 +02:00
juliandescottes
d18c3cd5f7 Cleaned FrameRenderer.js FrameRenderer should also keep a reference on the frame it is updating - initially I wanted the renderer to be frame independant, but it doesnt bring much 2012-09-09 02:34:54 +02:00
juliandescottes
2fa95fa1bc Added DrawingLoop.js and plugged basic rendering on each controller 2012-09-09 00:40:05 +02:00
Vince
df945e10dd Add grid checkbox 2012-09-08 23:43:16 +02:00
juliandescottes
e4373ad133 Small updates to FrameRenderer for fun 2012-09-08 23:10:05 +02:00
Vince
82da78abf1 Adding grid 2012-09-08 22:26:17 +02:00
Vince
9dc7afee61 Moving drawing canvas code from piskel.js to drawingController.js 2012-09-08 18:44:06 +02:00
Vince
ba5500b4b0 Dynamic DPIs ! 2012-09-08 16:32:28 +02:00
Vince
bca16a3964 Creating renderingOptions object for FrameRenderer
Contains dpi, grid info, etc
2012-09-08 15:34:13 +02:00