From ab2406247ce97ca62f44adb31aa5bd146a179b9e Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Sat, 27 Jan 2018 21:27:48 +1300 Subject: [PATCH] Removed the cursor layer --- sources/links/main.css | 2 -- sources/scripts/core/cursor.js | 30 ++---------------------------- sources/scripts/modules/brush.js | 15 +++++++++++---- sources/scripts/modules/frame.js | 1 - sources/scripts/ronin.js | 10 ++++------ 5 files changed, 17 insertions(+), 41 deletions(-) diff --git a/sources/links/main.css b/sources/links/main.css index cbeb3bb..62ca598 100644 --- a/sources/links/main.css +++ b/sources/links/main.css @@ -1,8 +1,6 @@ body { margin:0px; padding:0px; overflow:hidden; font-family:"input_mono_medium",courier,monospace; background:000;} *:focus {outline: none; } -canvas { cursor: none } - yu { display:block; } #cursor { z-index:899; position: absolute; } diff --git a/sources/scripts/core/cursor.js b/sources/scripts/core/cursor.js index 7e3e292..63553c8 100644 --- a/sources/scripts/core/cursor.js +++ b/sources/scripts/core/cursor.js @@ -1,8 +1,5 @@ function Cursor(rune) { - Layer.call(this); - - this.el.id = "cursor"; this.line = {origin:null,from:null,to:null,destination:null}; this.is_down = false; this.query = null; @@ -15,26 +12,6 @@ function Cursor(rune) this.target = null; - this.draw_cursor = function(pos,touch = false) - { - this.clear(); - - if(!pos){ return; } - - var ctx = this.context(); - var radius = ronin.cursor.size * ronin.frame.zoom.scale; - - ctx.beginPath(); - ctx.arc(pos.x * 2, pos.y * 2, radius, 0, 2 * Math.PI, false); - ctx.strokeStyle = "#000"; - ctx.lineWidth = 4.5; - ctx.stroke(); - ctx.strokeStyle = touch ? "#000" : "#fff"; - ctx.lineWidth = 1.5; - ctx.stroke(); - ctx.closePath(); - } - this.mouse_pos = function(e) { var pos = {x:e.clientX,y:e.clientY}; @@ -65,8 +42,6 @@ function Cursor(rune) return; } - ronin.cursor.draw_cursor({x:e.clientX,y:e.clientY},true); - ronin.cursor.line.origin = {x:pos.x,y:pos.y}; ronin.cursor.line.from = {x:pos.x,y:pos.y}; @@ -75,7 +50,7 @@ function Cursor(rune) if(ronin.commander.active_module()){ } else if(e.altKey && e.shiftKey){ ronin.brush.methods.pick.run(pos); } - else if(e.shiftKey){ } + else if(e.altKey){ ronin.brush.erase(ronin.cursor.line); } else{ ronin.brush.stroke(ronin.cursor.line); } if(e.shiftKey){ ronin.cursor.mode = "rect"; } @@ -89,7 +64,6 @@ function Cursor(rune) var pos = ronin.cursor.mouse_pos(e); ronin.cursor.pos = pos; - ronin.cursor.draw_cursor({x:pos.x,y:pos.y}); if(!ronin.cursor.line.from){ return; } @@ -97,6 +71,7 @@ function Cursor(rune) if(e.altKey && e.shiftKey){ ronin.brush.methods.pick.run(pos); } else if(e.shiftKey){ ronin.cursor.drag(ronin.cursor.line); } + else if(e.altKey){ ronin.brush.erase(ronin.cursor.line); } else{ ronin.brush.stroke(ronin.cursor.line); } ronin.cursor.inject_query(); @@ -110,7 +85,6 @@ function Cursor(rune) var pos = ronin.cursor.mouse_pos(e); ronin.cursor.pos = pos; - ronin.cursor.draw_cursor({x:pos.x,y:pos.y}); ronin.cursor.line.destination = {x:pos.x,y:pos.y}; diff --git a/sources/scripts/modules/brush.js b/sources/scripts/modules/brush.js index 53aa0a2..23be80f 100644 --- a/sources/scripts/modules/brush.js +++ b/sources/scripts/modules/brush.js @@ -49,6 +49,15 @@ function Brush() } } + this.erase = function(line) + { + this.speed = distance_between(line.from,line.to); + + for(pointer_id in this.pointers){ + this.pointers[pointer_id].stroke(line,true); + } + } + this.pick = function(line) { if(!line.to){ @@ -88,7 +97,7 @@ function Pointer(options) return ronin.cursor.color; } - this.stroke = function(line) + this.stroke = function(line,erase = false) { var ctx = ronin.cursor.target.context(); @@ -101,10 +110,8 @@ function Pointer(options) line.to = line.from } - var ratio = clamp((ronin.brush.speed/20),0,1) - ctx.beginPath(); - ctx.globalCompositeOperation = ronin.keyboard.is_down["Alt"] ? "destination-out" : "source-over"; + ctx.globalCompositeOperation = erase ? "destination-out" : "source-over"; ctx.moveTo((line.from.x * 2) + this.options.offset.x,(line.from.y * 2) + this.options.offset.y); ctx.lineTo((line.to.x * 2) + this.options.offset.x,(line.to.y * 2) + this.options.offset.y); ctx.lineCap="round"; diff --git a/sources/scripts/modules/frame.js b/sources/scripts/modules/frame.js index 78dafec..69749f4 100644 --- a/sources/scripts/modules/frame.js +++ b/sources/scripts/modules/frame.js @@ -90,6 +90,5 @@ function Frame() ronin.layers.above.resize_to(size); ronin.layers.below.resize_to(size); ronin.guide.resize_to(size); - ronin.cursor.resize_to(size); } } \ No newline at end of file diff --git a/sources/scripts/ronin.js b/sources/scripts/ronin.js index 8093e0d..9ccd9cf 100644 --- a/sources/scripts/ronin.js +++ b/sources/scripts/ronin.js @@ -54,7 +54,6 @@ function Ronin() // this.guide.install(); this.above.install(); this.below.install(); - this.cursor.install(); this.guide.install(); this.guide.update(); @@ -102,10 +101,10 @@ function Ronin() window.addEventListener('dragover', ronin.io.drag_over); window.addEventListener('drop', ronin.io.drop); - ronin.cursor.el.addEventListener('mousedown', ronin.cursor.mouse_down); - ronin.cursor.el.addEventListener('mousemove', ronin.cursor.mouse_move); - ronin.cursor.el.addEventListener('mouseup', ronin.cursor.mouse_up); - ronin.cursor.el.addEventListener('contextmenu', ronin.cursor.mouse_alt); + ronin.frame.el.addEventListener('mousedown', ronin.cursor.mouse_down); + ronin.frame.el.addEventListener('mousemove', ronin.cursor.mouse_move); + ronin.frame.el.addEventListener('mouseup', ronin.cursor.mouse_up); + ronin.frame.el.addEventListener('contextmenu', ronin.cursor.mouse_alt); window.addEventListener('keydown', ronin.keyboard.key_down); window.addEventListener('keyup', ronin.keyboard.key_up); ronin.commander.input_el.addEventListener('input', ronin.commander.on_input); @@ -114,7 +113,6 @@ function Ronin() this.above.update(); this.below.update(); this.guide.update(); - this.cursor.update(); this.commander.update(); this.frame.resize_to({width:930,height:540});