You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
A.Olokhtonov 6f78c0ae21 AoS -> SoA for point coordinates 8 months ago
client AoS -> SoA for point coordinates 8 months ago
server Fix wrong wasm allocation, remove unused js LOD code, take radius of stroke into account when doing LOD, reduce EPS for LOD 8 months ago
.gitignore Redraw HTML on canvas move, first draft of wasm LOD core 10 months ago
Caddyfile Do not upload buffers each frame (DUH!), re-introduce dynamic data, set headers in caddy to enable precise timings 1 year ago
LICENSE Added LICENSE (unlicense) 1 year ago
README.md Fix strokes being added to storage even when skipped by SN logic 10 months ago

README.md

Release: * Engine + Benchmark harness + Reuse points, pack "nodraw" in high bit of stroke id (probably have at least one more bit, so up to 4 flag configurations) + Draw dynamic data (strokes in progress) + Webassembly for core LOD generation + Webassembly for final buffers + Do not copy memory to wasm, instead use wasm memory to store data in the first place - Z-prepass fringe bug (also, when do we enable the prepass?) - Textured quads (pictures, code already written in older version) - Resize and move pictures (draw handles) + Bugs + GC stalls!!! + Stroke previews get connected when drawn without panning on touch devices + Redraw HTML (cursors) on local canvas moves + New strokes dissapear on the HMH desk - Debug - Restore ability to limit event range * Listeners/events/multiplayer + Fix multiplayer LUL + Fix blinking own stroke inbetween SYN->server and SYN->client + Drag with mouse button 3 + Investigate skipped inputs on mobile (panning, zooming) [Events were not actually getting skipped. The stroke previews were just not being drawn] - Do NOT use session id as player id LUL - Save events to indexeddb (as some kind of a blob), restore on reconnect and page reload - Local prediction for tools! - Be able to have multiple "current" strokes per player. In case of bad internet this can happen! * Missing features I do not consider bonus + Player pointers + Pretty player pointers + Player list + Follow player + Color picker (or at the very least an Open Color color pallete) - EYE DROPPER! - Dynamic svg cursor to represent the brush - Eraser - Line drawing - Undo/redo * Polish + Use typedvector where appropriate - Show what's happening while the desk is loading (downloading, processing, uploading to gpu) - Settings panel for config values (including the setting for "offline mode") - Set up VAOs - We are calling "geometry_prepare_stroke" twice for some reason - Presentation / "marketing" - Title - Icon - Product page (github readme, demo videos)

Bonus: * Handle pressure + Add pressure data to quads + Account for pressure in quad/bbox calc + Adjust curve simplification to include pressure info - Migrate old non-pressure desks - Check out e.pressure on touch devices - Send pressure in PREDRAW event - Curve modification - Select curves (with a lasso?) - Move whole curve - Move single point - Move multiple points - Customizable background - Color, textures, procedural - Further optimization - Draw LOD size histogram for various cases (maybe we see that in our worst case 90% of strokes are down to 3-4 points) - If we see lots of very low detail strokes, precompute zoom level for 3,4,... points left

Bonus-bonus: - Actually infinite canvas (replace floats with something, some kind of fixed point scheme? chunks? multilevel scheme?)