[16 Jul 2018] - new Drawception palette [03 Jun 2018] - new Drawception palette [09 Apr 2018] - touchscreen fixes for adding/removing palette color and other doubled clicking issues [29 Mar 2018] - touchscreen fixes [20 Mar 2018] - fix for Firefox 59+ without breaking Opera 12 - changed palette sharing to always give palette link - doubled palette sharing image size; removed the need for double clicking [03 Mar 2018] - new Drawception palette [01 May 2017] - new Drawception palette [23 Jan 2017] - new Drawception palette [23 Aug 2016] - Fixed loading from URL in Firefox with referer enabled - new Drawception palette [10 Jul 2016] - two new palettes by Arne: http://androidarts.com/palette/16pal.htm - new Drawception palette [20 Feb 2016] - custom palette editing and sharing feature - improved imgur sharing [21 Dec 2015] - added options in index.html, "C" now toggles cursor hiding - autodetect wacom tablet plugin [12 Dec 2015] - apparently previous change broke Opera 12... fixing [08 Dec 2015] - added polyfill for the damn modern SVG2 pathSegList feature removal [12 Sep 2015] - try fix "straight line to corner" bug like http://grompe.org.ru/drawit/#kCGSRWO [09 Sep 2015] - fixed bug with replay causing fill to be applied forever [29 Aug 2015] - fixed resetting snap value to 0 - added palette "Freedom" as per request [18 Aug 2015] - fixed error when Shift+clicking on empty canvas - added shortcuts for brush opacity: halves primary color opacity, this can be repeated down to 1/16 Shift+Alt+click - eyedropper with preserved current brush opacity [31 Jan 2015] - fixed wrong size of background when exporting a custom-sized PNG in some cases [11 Jan 2015] - added a hint which color is under the cursor WHAT TO DO ========== Features: - remove first rect - show loading indicator on import and export, requires async saving/loading - when window is resized and canvas is empty, use window.devicePixelRatio to increase 600x500 canvas - show touchscreen hint for undo/redo/zoom/scroll for the first time - or "help" button that shows where's what and keyboard shortcuts - speed up binary saving/loading - make rewind cache independent of current position, remember cache position instead - visual feedback when pressing shortcut for colors Standalone Features: - separate code - replace colors function - allow saving and loading static SVG, animated SVG - basic layers (3 of them), drawing in middle by default - greatly complicates playback process - instead, use history insertion (and modify undo accordingly) - pixel art mode - if recording time, record it in a way it relates only to each stroke: milliseconds from begin to end - brush of size 1 - integrate multiplayer Ideas: - when colorpicking, show zoomed in preview near cursor? - make knob's title "position/maxpos" - save drawing backup in localstorage (might lag) - when redrawing vector image onto smaller canvas, try to snap coordinates and stroke sizes to pixels - export depth map for http://depthy.me/ ?! Bugs: - regression since eraser update: firefox 24 displaying thin outline when painting on transparent canvas - mobile firefox closes menus instantly, without a chance to click - buggy playback, saving and loading in android browser (is it worth to fix?) - later firefox exports canvas as picture instead of picking color on alt+rightclick Caveats: - Firefox stutters if you begin drawing right after loading page; . waiting for a few seconds will prevent that - Most functions don't work in IE 9. + I don't care! - On Android Firefox drawing scrolls the page + Workaround: go to "about:config", change "browser.chrome.dynamictoolbar" to "false" - there's a problem with setting background color globally: if artist starts drawing black on white and then switches to black background much later, in recording it won't be visible. + But it's easily watchable if background color is switched manually during the playback. Making this not such a big problem. - Firefox 24 displays thin outline when painting on transparent canvas + Workaround: go to "about:config", change "gfx.canvas.azure.accelerated" to "false" No longer relevant or unfixable: - Opera makes canvas tainted when drawImage(svg) is used. + Workaround is to draw SVG elements manually - Opera fails to update the whole drawing area when there is before
with SVG. + Reordered and fixed. - Opera eats keyboard events when SVG is clicked. + Setting svg style="position: absolute" and "pointer-events" to "none" seems to fix that. - Eraser is not compatible with SVG. + Dynamically changing color solves it. - Canvg draws a border around the canvas when it shouldn't if its context had lineWidth previously set. + setting ctx.lineWidth = 0.001 solves it, but better to get rid of canvg. - Tight bezier curves produce artifacts on Chrome & Firefox + changed smoothening algorithm - Opera fails to display cross cursor on canvas after Alt key and no click. . no good way to solve it - Opera cannot hide cursor . no way to solve it - In non-Presto browser, SVG stroke redraws whole, and as such the longer the stroke is, the jaggier the input will be on slower computers. + Using canvas instead of SVG for showing strokes Old === [Early version] - (done) make svg to canvas rendering - (done) decode end of png to insert chunk - (done) store sequence of curves in that chunk - (done) playback that - (done) keyboard shortcuts - (done) fix "undoing" background rectangle - (done) first try overlay svg drawing, if doesn't help, then flatten svg to canvas for performance - (done) use draw history for undo - (done) icons - (done) make replay work on |> || buttons - (done) make seek bar respond to touch events - (done) palette chooser - (done) cut everything before last filled rectangle when exporting - (done) when exporting and position is < max, ask if user wants to discard everything after current position - (done) fix negative stroke-width of first stroke when loading in binary format - (done) fix palette chooser columns in Opera 12.x (spanning over 2 columns) - (done) merge and refactor knob mouse/touch events - (done) fix pause button not changing to play when playback is paused by clicking on seekbar - (done) load background color when loading an image - (done) shaped drawing cursor - (done) eyedropper - (done) make cursor hide when Alt is pressed - (done) fixed bug: setting background visually erases last stroke - (done) small fix: eraser not displaying "eraser" - (done) pause replay when attempting to draw and ignore first stroke - (done) implemented crc32 calculation, renamed chunk to svGa; makes Android devices happy displaying saved PNG images [25 Jul] - (done) produce downloadable png on export for blob-supporting browsers - (done) smooth knob transition CSS (but turned off when setting position to 0) - (done) display eyedropper cursor - (done) fixed eyedropper picking the eraser - (done) get rid of canvg - (done) place brush cursor on top - (done) hide brush cursor when outside of container [27 Jul] - (done) fix eyedropper cursor being stuck after Alt+Tab - (done) smoothen lines with bezier curves - (done) fixed firefox 24 displaying thin outline when painting on transparent canvas - (done) show "loading" picture in background until JS is loaded - (done) space key for play/stop - (done) make undo/rewind cache up to 10 steps before current position - (done) fix blots not being loaded from binary file in Chrome (pathSegList doesn't have length but numberOfItems) - (done) show error - (done) tablet support for eraser - (done) fix import requiring double clicking on Chrome - (done) saving as file code style fix [28 Jul] - (done) replaced svg 1.2 tiny with svg 1.1 - (done) removed duplicate DrawSVGElement function - (done) better strokes: reduce excessive number of points, better smoothing - (done) revise binary format, add compression and switch to it - (done) change to persistent link - (done) register imgur app - (done) fixed blot not having orig points bug - (done) upload to imgur - (done) download from imgur via hash change - (done) request imgur image via https to prevent recompression [02 Aug] - (done) fix unerasable lines on touch screen - (done) touch screen: two finger undo and redo, like back and forward in Opera gestures - (done) make smooth replay (mid-stroke) [03 Aug] - (done) make smoother seekbar too [08 Aug] - (experimental) patterns as per http://drawception.com/forums/suggestions/19057/manga-theme/ - (done) fixed right + left click making permanent visual bug [09 Aug] - (done) rewrote line smoothening algorithm fixes: in Chrome and Firefox some highly bent bezier curves leave non-round corners [10 Aug] - (done) fix focus change making wacom plugin reload - (done) fix inconsistent seekbar position - (done) fix changing background color redrawing the whole image from beginning till end, even if current position is beginning (empty canvas) [20 Aug] - (done) small fixes for imgur uploading [21 Aug] - (done) when uploading to imgur, change URL in address bar for easy sharing - (done) confirm when leaving an unfinished drawing [22 Aug] - (done) fix right-clicking the knob causing error - (done) internal: simplify dynamic palette adding - (done) internal: playback delay is now a variable - (done) added March palette - (done) added a favicon [23 Aug] - (done) menu - (done) allow saving custom resolution PNG - (done) random caption generator! - (done) fixed width on mobile view [24 Aug] - (done) fixed menu on Firefox - (done) merged experimental patterns, adjusted one and added two - (done) usage tips in menu - (done) fix eraser strokes not saving correctly - (done) eraser now works by changing globalCompositeOperation - (done) setting background works faster - (done) set transparent background in menu [27 Aug] - (done) fixed fill not saving correctly [29 Aug] - (done) erase button resets the timer (sandbox mode only) [08 Sep] - (done) revise saving and loading, normalize array/string/arraybuffer/dataview access - (done) new format version (4), fixes UTF-8 strings in the playback data, now 8% more compact and faster [11 Sep] - (experimental) line drawing with Shift key (to be in standalone app only) [13 Sep] - (done) fix disappearing dots when drawing while zoomed in - (done) drawing with Shift key now appends the line to the previous one [17 Sep] - (done) small fixes for touch input - (experimental) export drawing process as WebM [26 Sep] - (done) prevent context menu when drawing with right mouse button [29 Sep] - (done) fix play button not switching its state properly [19 Oct] - (done) replace in-progress stroke drawing SVG with canvas in non-Presto browsers, improves performance and fixes pattern display [27 Oct] - (done) added <,> and <.> keys and Ctrl+1,2,3,4 for changing brush size - (done) clicking "Set background" or also cancels choosing a background [29 Oct] - (done) added ability to change brush size while drawing - (done) in play mode, eyedropper picks nearest palette color - (experimental) menu item to display color transitions [15 Nov] - (done) prevent accidentally selecting the canvas and other elements [23 Nov] - (done) change menu symbol to three lines to be look obvious these days [10 Dec] - (done) fixed background being always transparent when exporting with custom size - (experimental) added option to set an image as background (to draw over) - (experimental) added option to disable stroke smoothening - (experimental) added option to snap to grid (6 is fun for quasi-pixelart)