flag-cloth

Integración avanzada

Proporciona un canvas o contexto WebGL2 existente y controla el bucle de animación.

La API normal crea su propio canvas y bucle. Las aplicaciones avanzadas pueden proporcionar primitivas del navegador sin exponer la configuración del renderizador a los usuarios normales.

const flag = createFlagCloth({
  container,
  texture,
  advanced: {
    canvas: existingCanvas,
    context: existingCanvas.getContext('webgl2')!,
    externalAnimationLoop: true,
  },
});

let previous = performance.now();
function frame(now: number) {
  const deltaSeconds = (now - previous) / 1000;
  previous = now;
  flag.update(deltaSeconds);
  requestAnimationFrame(frame);
}
requestAnimationFrame(frame);

update() recibe el delta del frame en segundos, no el timestamp absoluto de requestAnimationFrame. Mantén autoStart con su valor predeterminado true o llama a flag.start() antes de la primera actualización externa. externalAnimationLoop evita que la biblioteca programe su propio frame; no ignora el estado de pausa ni de visibilidad.

La instancia sigue siendo propietaria de su geometría y simulación. Si compartes un contexto, coordina el orden de limpieza y el estado del viewport con el resto de tu renderizador.