render method
void
render(
- WebGLRenderer renderer,
- WebGLRenderTarget writeBuffer,
- WebGLRenderTarget readBuffer, {
- double? deltaTime,
- bool? maskActive,
override
Implementation
@override
void render(WebGLRenderer renderer, WebGLRenderTarget writeBuffer, WebGLRenderTarget readBuffer, {double? deltaTime, bool? maskActive}) {
final oldAutoClear = renderer.autoClear;
renderer.autoClear = false;
double? oldClearAlpha;
Material? oldOverrideMaterial;
if (overrideMaterial != null) {
oldOverrideMaterial = scene.overrideMaterial;
scene.overrideMaterial = overrideMaterial;
}
if (clearColor != null) {
renderer.getClearColor(_oldClearColor);
renderer.setClearColor(clearColor!, renderer.getClearAlpha());
}
if ( clearAlpha != null ) {
oldClearAlpha = renderer.getClearAlpha();
renderer.setClearAlpha( clearAlpha! );
}
if (clearDepth) {
renderer.clearDepth();
}
renderer.setRenderTarget(renderToScreen ? null : readBuffer);
// TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600
if (clear){
renderer.clear(renderer.autoClearColor, renderer.autoClearDepth,renderer.autoClearStencil);
}
renderer.render(scene, camera);
if (clearColor != null) {
renderer.setClearColor(_oldClearColor);
}
if ( clearAlpha != null ) {
renderer.setClearAlpha( oldClearAlpha! );
}
if (overrideMaterial != null) {
scene.overrideMaterial = oldOverrideMaterial;
}
renderer.autoClear = oldAutoClear;
}