# Autoclear = true not working after re-registering canvas

**URL:** <https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381>\
**Category:** Questions\
**Tags:** canvas, rendering, transparency\
**Created:** [December 13, 2023, 7:46am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381 "2023-12-13T07:46:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![reimund](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/reimund/32/7309_2.png) [@reimund](https://forum.babylonjs.com/u/reimund)\
**Post date:** [December 13, 2023, 7:46am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381/1 "2023-12-13T07:46:35Z")

</div>

In my application the canvas element can be removed and re-added to the dom.

This has worked fine until I enabled a transparent clear color. With a transparent clear color I get the effect that is demonstrated by this playground: [Babylon.js Playground](https://playground.babylonjs.com/#ABA3UY).

I tried setting myScene.autoClear = true but it does not seem to have an effect.

I suspect something happens when I’ve registered the new canvas element:

```auto
updateCanvas(canvas) {
	const engine = this._scene.getEngine();
	const camera = this.get('camera');

	engine.inputElement = canvas;

	camera.detachControl();
	engine.unRegisterView(engine.getRenderingCanvas());
	engine.registerView(canvas, camera);
	camera.attachControl();
}

```

I guess I need to change some property somewhere after I’ve re-registered the new canvas element but I’m not sure what.

---

<div class="post-metadata">

**Author:** ![MeshSlayer](https://avatars.discourse-cdn.com/v4/letter/m/9f8e36/32.png) [@MeshSlayer](https://forum.babylonjs.com/u/MeshSlayer)\
**Post date:** [December 13, 2023, 7:59am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381/2 "2023-12-13T07:59:44Z")

</div>

try setting clearBeforeCopy to true when registering a view  
`engine.registerView(canvas, camera, true);`

[https://doc.babylonjs.com/typedoc/classes/BABYLON.Engine#registerView](https://doc.babylonjs.com/typedoc/classes/BABYLON.Engine#registerView)

---

<div class="post-metadata">

**Author:** ![reimund](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/reimund/32/7309_2.png) [@reimund](https://forum.babylonjs.com/u/reimund)\
**Post date:** [December 13, 2023, 8:04am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381/3 "2023-12-13T08:04:59Z")

</div>

That did the trick! Thank you!

I tried to re-create the issue in an updated playground but for some reason I could not reproduce it. I wonder if it’s due to a later Babylonjs version used in the playground?

> **[Babylon.js Playground](https://playground.babylonjs.com/#ABA3UY%231)**
>
> Babylon.js playground is a live editor for Babylon.js WebGL 3D scenes

---

<div class="post-metadata">

**Author:** ![MeshSlayer](https://avatars.discourse-cdn.com/v4/letter/m/9f8e36/32.png) [@MeshSlayer](https://forum.babylonjs.com/u/MeshSlayer)\
**Post date:** [December 13, 2023, 9:29am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381/4 "2023-12-13T09:29:23Z")

</div>

you’re welcome, I struggled with this same issue a few months ago 😛

in your playground, if you set the scene clearColor to a transparent color you’ll reproduce the same behaviour you described.

---

<div class="post-metadata">

**Author:** ![reimund](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/reimund/32/7309_2.png) [@reimund](https://forum.babylonjs.com/u/reimund)\
**Post date:** [December 13, 2023, 9:34am UTC](https://forum.babylonjs.com/t/autoclear-true-not-working-after-re-registering-canvas/46381/5 "2023-12-13T09:34:00Z")

</div>

Gotcha (doh!). Thanks again!
