1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Start to optimize rendering

This commit is contained in:
tobspr
2020-08-15 19:43:03 +02:00
parent b1fb0fca7e
commit 7b40292be3
34 changed files with 550 additions and 463 deletions

View File

@@ -42,17 +42,17 @@ export class BooleanItem extends BaseItem {
/**
* @param {number} x
* @param {number} y
* @param {number} size
* @param {number} diameter
* @param {DrawParameters} parameters
*/
draw(x, y, parameters, size = 12) {
drawCentered(x, y, parameters, diameter = 12) {
let sprite;
if (this.value) {
sprite = Loader.getSprite("sprites/wires/boolean_true.png");
} else {
sprite = Loader.getSprite("sprites/wires/boolean_false.png");
}
sprite.drawCachedCentered(parameters, x, y, size * 1.5);
sprite.drawCachedCentered(parameters, x, y, diameter);
}
}

View File

@@ -50,26 +50,26 @@ export class ColorItem extends BaseItem {
/**
* @param {number} x
* @param {number} y
* @param {number} size
* @param {number} diameter
* @param {DrawParameters} parameters
*/
draw(x, y, parameters, size = 12) {
drawCentered(x, y, parameters, diameter = 12) {
if (!this.bufferGenerator) {
this.bufferGenerator = this.internalGenerateColorBuffer.bind(this);
}
const dpi = smoothenDpi(globalConfig.shapesSharpness * parameters.zoomLevel);
const key = size + "/" + dpi;
const key = diameter + "/" + dpi;
const canvas = parameters.root.buffers.getForKey({
key,
subKey: this.color,
w: size,
h: size,
w: diameter,
h: diameter,
dpi,
redrawMethod: this.bufferGenerator,
});
parameters.context.drawImage(canvas, x - size / 2, y - size / 2, size, size);
parameters.context.drawImage(canvas, x - diameter / 2, y - diameter / 2, diameter, diameter);
}
/**
*

View File

@@ -52,9 +52,9 @@ export class ShapeItem extends BaseItem {
* @param {number} x
* @param {number} y
* @param {DrawParameters} parameters
* @param {number=} size
* @param {number=} diameter
*/
draw(x, y, parameters, size) {
this.definition.draw(x, y, parameters, size);
drawCentered(x, y, parameters, diameter) {
this.definition.drawCentered(x, y, parameters, diameter);
}
}