Padding calculation
This commit is contained in:
parent
96a35c133f
commit
635ece9755
|
@ -105,19 +105,24 @@ export default class Node
|
||||||
let width = drawableAreaWidth - (this.padding.right + this.padding.left);
|
let width = drawableAreaWidth - (this.padding.right + this.padding.left);
|
||||||
let height = drawableAreaHeight - (this.padding.bottom + this.padding.top);
|
let height = drawableAreaHeight - (this.padding.bottom + this.padding.top);
|
||||||
|
|
||||||
this.context.resize(width, height);
|
|
||||||
|
|
||||||
this.buffered = true;
|
this.buffered = true;
|
||||||
|
|
||||||
|
let offscreen = new CanvasBuffer(width, height);
|
||||||
for (const node of this.ChildNodes)
|
for (const node of this.ChildNodes)
|
||||||
{
|
{
|
||||||
this.DrawChild(
|
this.DrawChild(
|
||||||
this.context,
|
offscreen,
|
||||||
node,
|
node,
|
||||||
width,
|
width, height
|
||||||
height
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
offscreen.writeTo(
|
||||||
|
this.context,
|
||||||
|
0, 0,
|
||||||
|
offscreen.width, offscreen.height,
|
||||||
|
this.padding.left, this.padding.top,
|
||||||
|
offscreen.width, offscreen.height
|
||||||
|
);
|
||||||
return this.context;
|
return this.context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,8 +171,7 @@ export default class Node
|
||||||
|
|
||||||
x += node.x;
|
x += node.x;
|
||||||
y += node.y;
|
y += node.y;
|
||||||
x += this.padding.left;
|
|
||||||
y += this.padding.top;
|
|
||||||
|
|
||||||
let frame : CanvasBuffer;
|
let frame : CanvasBuffer;
|
||||||
if(!node.buffered)
|
if(!node.buffered)
|
||||||
|
@ -209,8 +213,8 @@ export default class Node
|
||||||
frame.offscreen.height,
|
frame.offscreen.height,
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
frame.offscreen.width * node.scale,
|
canvasWidth * node.scale,
|
||||||
frame.offscreen.height * node.scale
|
canvasHeight * node.scale
|
||||||
)
|
)
|
||||||
node.requiredRedraw = false;
|
node.requiredRedraw = false;
|
||||||
context.restore();
|
context.restore();
|
||||||
|
|
35
index.js
35
index.js
|
@ -579,17 +579,15 @@ var _node = require("./Compositor/Node");
|
||||||
var _nodeDefault = parcelHelpers.interopDefault(_node);
|
var _nodeDefault = parcelHelpers.interopDefault(_node);
|
||||||
var _canvas = require("./Compositor/Canvas");
|
var _canvas = require("./Compositor/Canvas");
|
||||||
var _canvasDefault = parcelHelpers.interopDefault(_canvas);
|
var _canvasDefault = parcelHelpers.interopDefault(_canvas);
|
||||||
var _canvasBuffer = require("./Compositor/CanvasBuffer");
|
|
||||||
var _canvasBufferDefault = parcelHelpers.interopDefault(_canvasBuffer);
|
|
||||||
let container = new (0, _nodeDefault.default)("Box");
|
let container = new (0, _nodeDefault.default)("Box");
|
||||||
container.handleDrawBefore(function() {
|
container.handleDrawBefore(function() {
|
||||||
this.width = 400;
|
this.width = 400;
|
||||||
this.height = 400;
|
this.height = 400;
|
||||||
this.padding = {
|
this.padding = {
|
||||||
left: 2,
|
left: 10,
|
||||||
right: 2,
|
right: 10,
|
||||||
top: 2,
|
top: 10,
|
||||||
bottom: 2
|
bottom: 10
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
let scroll = 2;
|
let scroll = 2;
|
||||||
|
@ -601,9 +599,17 @@ container.handleDraw(function(canvasBuffer, area) {
|
||||||
ctx.rect(2, 2, area.width - 2, area.height - 2);
|
ctx.rect(2, 2, area.width - 2, area.height - 2);
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
ctx.closePath();
|
ctx.closePath();
|
||||||
let offscreen = new (0, _canvasBufferDefault.default)(area.width - 8, area.height - 8);
|
/*
|
||||||
for (const child of this.ChildNodes)this.DrawChild(offscreen, child, offscreen.width - 8, offscreen.height - 8);
|
let offscreen = new CanvasBuffer(area.width - 8, area.height - 8);
|
||||||
offscreen.writeTo(ctx, 0, 0, area.width, area.height, 4, 4, area.width, area.height);
|
for (const child of this.ChildNodes)
|
||||||
|
{
|
||||||
|
this.DrawChild(offscreen, child, offscreen.width - 8, offscreen.height - 8);
|
||||||
|
};
|
||||||
|
offscreen.writeTo(
|
||||||
|
ctx,
|
||||||
|
0,0, area.width, area.height,
|
||||||
|
4,4, area.width, area.height
|
||||||
|
)*/ return true;
|
||||||
});
|
});
|
||||||
class Button extends (0, _nodeDefault.default) {
|
class Button extends (0, _nodeDefault.default) {
|
||||||
constructor(x, y, name){
|
constructor(x, y, name){
|
||||||
|
@ -685,7 +691,7 @@ t.canvas.addEventListener("wheel", function(event) {
|
||||||
container.update();
|
container.update();
|
||||||
});
|
});
|
||||||
|
|
||||||
},{"./Compositor/Node":"a8tDl","./Compositor/Canvas":"lKBnk","./Compositor/CanvasBuffer":"jI6Ug","@parcel/transformer-js/src/esmodule-helpers.js":"7Rzro"}],"a8tDl":[function(require,module,exports) {
|
},{"./Compositor/Node":"a8tDl","./Compositor/Canvas":"lKBnk","@parcel/transformer-js/src/esmodule-helpers.js":"7Rzro"}],"a8tDl":[function(require,module,exports) {
|
||||||
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
|
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
|
||||||
parcelHelpers.defineInteropFlag(exports);
|
parcelHelpers.defineInteropFlag(exports);
|
||||||
var _canvasBuffer = require("./CanvasBuffer");
|
var _canvasBuffer = require("./CanvasBuffer");
|
||||||
|
@ -757,9 +763,10 @@ class Node {
|
||||||
}
|
}
|
||||||
let width = drawableAreaWidth - (this.padding.right + this.padding.left);
|
let width = drawableAreaWidth - (this.padding.right + this.padding.left);
|
||||||
let height = drawableAreaHeight - (this.padding.bottom + this.padding.top);
|
let height = drawableAreaHeight - (this.padding.bottom + this.padding.top);
|
||||||
this.context.resize(width, height);
|
|
||||||
this.buffered = true;
|
this.buffered = true;
|
||||||
for (const node of this.ChildNodes)this.DrawChild(this.context, node, width, height);
|
let offscreen = new (0, _canvasBufferDefault.default)(width, height);
|
||||||
|
for (const node of this.ChildNodes)this.DrawChild(offscreen, node, width, height);
|
||||||
|
offscreen.writeTo(this.context, 0, 0, offscreen.width, offscreen.height, this.padding.left, this.padding.top, offscreen.width, offscreen.height);
|
||||||
return this.context;
|
return this.context;
|
||||||
}
|
}
|
||||||
getContextArea() {
|
getContextArea() {
|
||||||
|
@ -784,8 +791,6 @@ class Node {
|
||||||
canvasHeight = Math.min(node.height, maxHeight);
|
canvasHeight = Math.min(node.height, maxHeight);
|
||||||
x += node.x;
|
x += node.x;
|
||||||
y += node.y;
|
y += node.y;
|
||||||
x += this.padding.left;
|
|
||||||
y += this.padding.top;
|
|
||||||
let frame;
|
let frame;
|
||||||
if (!node.buffered) frame = node.draw(canvasWidth, canvasHeight);
|
if (!node.buffered) frame = node.draw(canvasWidth, canvasHeight);
|
||||||
else if (node.requiredRedraw) frame = node.draw(canvasWidth, canvasHeight);
|
else if (node.requiredRedraw) frame = node.draw(canvasWidth, canvasHeight);
|
||||||
|
@ -801,7 +806,7 @@ class Node {
|
||||||
context.rotate(node.rotate);
|
context.rotate(node.rotate);
|
||||||
context.translate(-translateX, -translateY);
|
context.translate(-translateX, -translateY);
|
||||||
}
|
}
|
||||||
canvas.writeFrom(frame.offscreen, 0, 0, frame.offscreen.width, frame.offscreen.height, x, y, frame.offscreen.width * node.scale, frame.offscreen.height * node.scale);
|
canvas.writeFrom(frame.offscreen, 0, 0, frame.offscreen.width, frame.offscreen.height, x, y, canvasWidth * node.scale, canvasHeight * node.scale);
|
||||||
node.requiredRedraw = false;
|
node.requiredRedraw = false;
|
||||||
context.restore();
|
context.restore();
|
||||||
node.handleEvent("draw:after", (callback)=>{
|
node.handleEvent("draw:after", (callback)=>{
|
||||||
|
|
File diff suppressed because one or more lines are too long
12
index.ts
12
index.ts
|
@ -7,10 +7,10 @@ container.handleDrawBefore(function(){
|
||||||
this.width = 400;
|
this.width = 400;
|
||||||
this.height = 400;
|
this.height = 400;
|
||||||
this.padding = {
|
this.padding = {
|
||||||
left: 2,
|
left: 10,
|
||||||
right: 2,
|
right: 10,
|
||||||
top: 2,
|
top: 10,
|
||||||
bottom: 2
|
bottom: 10
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ container.handleDraw(function(canvasBuffer,area){
|
||||||
ctx.rect(2,2,area.width - 2,area.height - 2);
|
ctx.rect(2,2,area.width - 2,area.height - 2);
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
ctx.closePath();
|
ctx.closePath();
|
||||||
|
/*
|
||||||
let offscreen = new CanvasBuffer(area.width - 8, area.height - 8);
|
let offscreen = new CanvasBuffer(area.width - 8, area.height - 8);
|
||||||
for (const child of this.ChildNodes)
|
for (const child of this.ChildNodes)
|
||||||
{
|
{
|
||||||
|
@ -32,7 +33,8 @@ container.handleDraw(function(canvasBuffer,area){
|
||||||
ctx,
|
ctx,
|
||||||
0,0, area.width, area.height,
|
0,0, area.width, area.height,
|
||||||
4,4, area.width, area.height
|
4,4, area.width, area.height
|
||||||
);
|
)*/
|
||||||
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
class Button extends Node
|
class Button extends Node
|
||||||
|
|
Loading…
Reference in New Issue