diff --git a/packages/board/__tests__/__snapshots__/index.test.ts.snap b/packages/board/__tests__/__snapshots__/index.test.ts.snap
index 49f584a..82f09ed 100644
--- a/packages/board/__tests__/__snapshots__/index.test.ts.snap
+++ b/packages/board/__tests__/__snapshots__/index.test.ts.snap
@@ -170,13 +170,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 3600,
+ "dWidth": 4000,
"dx": 0,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 3600,
+ "sWidth": 4000,
"sx": 0,
"sy": 0,
},
diff --git a/packages/board/__tests__/__snapshots__/other-api.test.ts.snap b/packages/board/__tests__/__snapshots__/other-api.test.ts.snap
index ff9ac7e..7a032cb 100644
--- a/packages/board/__tests__/__snapshots__/other-api.test.ts.snap
+++ b/packages/board/__tests__/__snapshots__/other-api.test.ts.snap
@@ -170,13 +170,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": -2400,
"dy": -1600,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
diff --git a/packages/board/__tests__/__snapshots__/scale.test.ts.snap b/packages/board/__tests__/__snapshots__/scale.test.ts.snap
index bd59c39..b931f2d 100644
--- a/packages/board/__tests__/__snapshots__/scale.test.ts.snap
+++ b/packages/board/__tests__/__snapshots__/scale.test.ts.snap
@@ -170,13 +170,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 3600,
+ "dWidth": 4000,
"dx": 200,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 3600,
+ "sWidth": 4000,
"sx": 0,
"sy": 0,
},
@@ -363,13 +366,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 2400,
+ "dWidth": 4800,
"dx": 0,
"dy": 200,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 2400,
+ "sWidth": 4800,
"sx": 0,
"sy": 0,
},
@@ -556,13 +562,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 2400,
+ "dWidth": 4000,
"dx": 0,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 2400,
+ "sWidth": 4000,
"sx": 0,
"sy": 0,
},
@@ -749,13 +758,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": 600,
"dy": 400,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
diff --git a/packages/board/__tests__/__snapshots__/scroll.test.ts.snap b/packages/board/__tests__/__snapshots__/scroll.test.ts.snap
index 47ad42e..31ee226 100644
--- a/packages/board/__tests__/__snapshots__/scroll.test.ts.snap
+++ b/packages/board/__tests__/__snapshots__/scroll.test.ts.snap
@@ -170,13 +170,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": -2400,
"dy": -1600,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
diff --git a/packages/board/__tests__/__snapshots__/wheel.test.ts.snap b/packages/board/__tests__/__snapshots__/wheel.test.ts.snap
index 8da0ae8..0b49daf 100644
--- a/packages/board/__tests__/__snapshots__/wheel.test.ts.snap
+++ b/packages/board/__tests__/__snapshots__/wheel.test.ts.snap
@@ -170,13 +170,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": -2400,
"dy": -1600,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
diff --git a/packages/board/examples/features/lib/action.js b/packages/board/examples/features/lib/action.js
index fe4ce3d..f6cb461 100644
--- a/packages/board/examples/features/lib/action.js
+++ b/packages/board/examples/features/lib/action.js
@@ -33,7 +33,7 @@ function moveElement(board, idx, moveX, moveY) {
data.elements[idx].x += (moveX / scale);
data.elements[idx].y += (moveY / scale);
}
- drawData(board)
+ drawData(board, idx)
}
const cursor = document.querySelector('#cursor');
diff --git a/packages/board/examples/features/lib/draw.js b/packages/board/examples/features/lib/draw.js
index 28e2b70..7a817ff 100644
--- a/packages/board/examples/features/lib/draw.js
+++ b/packages/board/examples/features/lib/draw.js
@@ -1,16 +1,37 @@
import opts from './opts.js';
import { getData } from './data.js';
-export function drawData(board) {
+export function drawData(board, idx) {
const ctx = board.getContext();
+ const helperCtx = board.getHelperContext();
const data = getData();
board.clear();
ctx.clearRect(0, 0, opts.width, opts.height);
+ helperCtx.clearRect(0, 0, opts.width, opts.height);
+
// ctx.setFillStyle('#ffffff');
// ctx.fillRect(0, 0, opts.width, opts.height);
- data.elements.forEach(ele => {
+
+ data.elements.forEach((ele, i) => {
ctx.setFillStyle(ele.desc.color);
ctx.fillRect(ele.x, ele.y, ele.w, ele.h);
+
+ // helperCtx.setFillStyle('#2196f3');
+ // helperCtx.fillRect(ele.x, ele.y, ele.w, ele.h);
+
+ if (i === idx) {
+ helperCtx.beginPath();
+ helperCtx.setLineDash([4, 4]);
+ helperCtx.setLineWidth(2);
+ helperCtx.setStrokeStyle('#2196f3');
+ helperCtx.moveTo(ele.x, ele.y);
+ helperCtx.lineTo(ele.x + ele.w, ele.y);
+ helperCtx.lineTo(ele.x + ele.w, ele.y + ele.h);
+ helperCtx.lineTo(ele.x, ele.y + ele.h);
+ helperCtx.lineTo(ele.x, ele.y);
+ helperCtx.stroke();
+ helperCtx.closePath();
+ }
});
board.draw();
}
\ No newline at end of file
diff --git a/packages/board/src/index.ts b/packages/board/src/index.ts
index 67cadd9..8c18bcf 100644
--- a/packages/board/src/index.ts
+++ b/packages/board/src/index.ts
@@ -49,16 +49,17 @@ class Board {
this[_displayCanvas] = document.createElement('canvas');
this[_mount].appendChild(this[_displayCanvas]);
this[_opts] = this[_parsePrivateOptions](opts);
- const originCtx = this[_canvas].getContext('2d') as CanvasRenderingContext2D;
- const displayCtx = this[_displayCanvas].getContext('2d') as CanvasRenderingContext2D;
- const helperCtx = this[_displayCanvas].getContext('2d') as CanvasRenderingContext2D;
- this[_ctx] = new Context(originCtx, this[_opts]);
- this[_helperCtx] = new Context(helperCtx, this[_opts]);
+
+ const originCtx2d = this[_canvas].getContext('2d') as CanvasRenderingContext2D;
+ const displayCtx2d = this[_displayCanvas].getContext('2d') as CanvasRenderingContext2D;
+ const helperCtx2d = this[_helperCanvas].getContext('2d') as CanvasRenderingContext2D;
+ this[_ctx] = new Context(originCtx2d, this[_opts]);
+ this[_helperCtx] = new Context(helperCtx2d, this[_opts]);
this[_screen] = new Screen(this[_ctx], this[_opts]);
// this[_watcher] = new Watcher(this[_displayCanvas]);
this[_watcher] = new ScreenWatcher(this[_displayCanvas], this[_ctx]);
this[_scroller] = new Scroller(
- displayCtx, {
+ displayCtx2d, {
width: opts.width,
height: opts.height,
devicePixelRatio: opts.devicePixelRatio || 1,
@@ -245,6 +246,9 @@ class Board {
this[_canvas].width = contextWidth * devicePixelRatio;
this[_canvas].height = contextHeight * devicePixelRatio;
+ this[_helperCanvas].width = contextWidth * devicePixelRatio;
+ this[_helperCanvas].height = contextHeight * devicePixelRatio;
+
this[_displayCanvas].width = width * devicePixelRatio;
this[_displayCanvas].height = height * devicePixelRatio;
diff --git a/packages/core/__tests__/__snapshots__/index.test.ts.snap b/packages/core/__tests__/__snapshots__/index.test.ts.snap
index c9ebfdb..10bcf8f 100644
--- a/packages/core/__tests__/__snapshots__/index.test.ts.snap
+++ b/packages/core/__tests__/__snapshots__/index.test.ts.snap
@@ -591,13 +591,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": 0,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
diff --git a/packages/core/__tests__/__snapshots__/move.test.ts.snap b/packages/core/__tests__/__snapshots__/move.test.ts.snap
index f4e1987..98062eb 100644
--- a/packages/core/__tests__/__snapshots__/move.test.ts.snap
+++ b/packages/core/__tests__/__snapshots__/move.test.ts.snap
@@ -591,13 +591,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": 0,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},
@@ -1205,13 +1208,16 @@ Array [
},
Object {
"props": Object {
- "dHeight": 150,
- "dWidth": 300,
+ "dHeight": 1600,
+ "dWidth": 2400,
"dx": 0,
"dy": 0,
- "img": ,
- "sHeight": 150,
- "sWidth": 300,
+ "img": ,
+ "sHeight": 1600,
+ "sWidth": 2400,
"sx": 0,
"sy": 0,
},