Passer au contenu principal

CameraPipelineModule

les applications de caméra 8th Wall sont construites à l'aide d'un module de pipeline de caméra. Les applications installent des modules qui contrôlent ensuite le comportement de l'application au moment de l'exécution.

Reportez-vous à XR8.addCameraPipelineModule() pour en savoir plus sur l'ajout de modules de pipeline de caméras à votre application.

Un objet de module de pipeline de caméra doit avoir une chaîne .name qui est unique dans l'application. Il doit mettre en œuvre une ou plusieurs des méthodes de cycle de la caméra suivantes. Ces méthodes seront exécutées au moment approprié dans la boucle d'exécution.

Au cours de l'exécution principale d'une application, chaque image de la caméra suit le cycle suivant :

onBeforeRun -> onCameraStatusChange (requesting -> hasStream -> hasVideo | failed) -> onStart -> onAttach -> onProcessGpu -> onProcessCpu -> onUpdate -> onRender

Les modules de caméra doivent mettre en œuvre une ou plusieurs des méthodes de cycle de la caméra suivantes :

FonctionDescription
onAppResourcesLoadedAppelé lorsque nous avons reçu du serveur les ressources attachées à une application.
onAttachAppelé avant la première fois qu'un module reçoit des mises à jour de trames. Il est appelé sur les modules qui ont été ajoutés avant ou après l'exécution du pipeline.
onBeforeRunAppelé immédiatement après XR8.run(). Si des promesses sont renvoyées, XR attendra toutes les promesses avant de continuer.
onCameraStatusChangeAppelé lorsqu'un changement survient lors de la demande d'autorisation de la caméra.
onCanvasSizeChangeAppelé lorsque le support change de taille.
onDetachest appelé après la dernière fois qu'un module reçoit des mises à jour de trames. Cette opération a lieu soit après l'arrêt du moteur, soit après le retrait manuel du module de pipeline, selon ce qui se produit en premier.
onDeviceOrientationChangeAppelé lorsque l'appareil change d'orientation paysage/portrait.
onExceptionAppelé lorsqu'une erreur se produit dans le XR. Appelé avec l'objet d'erreur.
onPausedAppelé lorsque XR8.pause() est appelé.
onProcessCpuAppelé pour lire les résultats du traitement GPU et renvoyer des données utilisables.
onProcessGpuAppelé pour démarrer le traitement GPU.
onRemoveest appelée lorsqu'un module est retiré du pipeline.
onRenderAppelé après onUpdate. C'est le moment pour le moteur de rendu d'émettre des commandes de dessin WebGL. Si une application fournit sa propre boucle d'exécution et s'appuie sur XR8.runPreRender() et XR8.runPostRender(), cette méthode n'est pas appelée et tous les rendus doivent être coordonnés par la boucle d'exécution externe.
onResumeAppelé lorsque XR8.resume() est appelé.
onStartAppelé au démarrage du XR. Premier rappel après l'appel de XR8.run().
onUpdateAppelé pour mettre à jour la scène avant le rendu. Les données renvoyées par les modules dans onProcessGpu et onProcessCpu seront présentes en tant que processGpu.modulename et processCpu.modulename où le nom est donné par module.name = "modulename".
onVideoSizeChangeAppelé lorsque le support change de taille.
autorisations requisesLes modules peuvent indiquer les fonctionnalités du navigateur dont ils ont besoin et qui peuvent nécessiter des demandes d'autorisation. Elles peuvent être utilisées par le cadre pour demander les autorisations appropriées en cas d'absence, ou pour créer des composants qui demandent les autorisations appropriées avant d'exécuter XR.

Remarque : les modules de caméra qui implémentent onProcessGpu ou onProcessCpu peuvent fournir des données à des étapes ultérieures du pipeline. Cela se fait par le nom du module.