render method

dynamic render(
  1. dynamic deltaTime
)

Implementation

render(deltaTime) {
  // deltaTime value is in seconds

  deltaTime ??= clock.getDelta();

  var currentRenderTarget = renderer.getRenderTarget();

  var maskActive = false;

  var pass, i, il = passes.length;

  for (i = 0; i < il; i++) {
    pass = passes[i];

    if (pass.enabled == false) continue;

    pass.renderToScreen = (renderToScreen && isLastEnabledPass(i));
    pass.render(renderer, writeBuffer, readBuffer, deltaTime: deltaTime, maskActive: maskActive);

    if (pass.needsSwap) {
      if (maskActive) {
        var context = renderer.getContext();
        var stencil = renderer.state.buffers["stencil"];

        //context.stencilFunc( context.NOTEQUAL, 1, 0xffffffff );
        stencil.setFunc(context.NOTEQUAL, 1, 0xffffffff);

        copyPass.render(renderer, writeBuffer, readBuffer, deltaTime: deltaTime);

        //context.stencilFunc( context.EQUAL, 1, 0xffffffff );
        stencil.setFunc(context.EQUAL, 1, 0xffffffff);
      }

      swapBuffers();
    }

    if (pass.runtimeType.toString() == "MaskPass") {
      maskActive = true;
    } else if (pass.runtimeType.toString() == "ClearMaskPass") {
      maskActive = false;
    }
  }

  renderer.setRenderTarget(currentRenderTarget);
}