Commit Graph

49 Commits

Author SHA1 Message Date
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
Vince
eb7511c721 Encapsulate canvas element in FrameRenderer
From this change set, the HTML canvas element, which is the frame view,
is encapsulated inside the FrameRenderer.
You won't need to give the view handle from the controller layer
anymore.
It will make view alteration implementations much easier (like grid for
instance)
2012-09-08 15:08:00 +02:00
Vince
9411b2e3ae Moving (rendering related) DPI into FrameRenderer domain object 2012-09-08 12:24:55 +02:00
juliandescottes
a567992a1d moved Frame and FrameSheet to model package 2012-09-04 22:40:54 +02:00
juliandescottes
69a03a3416 Previews are fixed. Removed drawing methods from piskel .js 2012-09-04 22:18:00 +02:00
juliandescottes
4c4faa88e6 Moved drawing logic outside of tools. Previews and animations are broken. Performance is somehow degraded 2012-09-04 14:10:16 +02:00
juliandescottes
561c35c882 Adding Frame Renderer utility 2012-09-04 08:35:58 +02:00