diff --git a/packages/graphics/src/traits/primitive.js b/packages/graphics/src/traits/primitive.js index 6e208f7..f404429 100644 --- a/packages/graphics/src/traits/primitive.js +++ b/packages/graphics/src/traits/primitive.js @@ -7,6 +7,8 @@ export default () => class Primitive extends Trait { #primitives; + #scheduledDraw = true; + static defaultParams() { return { primitives: [], @@ -68,22 +70,29 @@ export default () => class Primitive extends Trait { return { blueChanged: () => { - this.drawPrimitives(); + this.#scheduledDraw = true; }, greenChanged: () => { - this.drawPrimitives(); + this.#scheduledDraw = true; }, redChanged: () => { - this.drawPrimitives(); + this.#scheduledDraw = true; }, traitAdded: () => { - this.drawPrimitives(); + this.#scheduledDraw = true; }, }; } + renderTick() { + if (this.#scheduledDraw) { + this.#scheduledDraw = false; + this.drawPrimitives(); + } + } + };