Passer au contenu principal

onProcessGpu()

onProcessGpu : ({ framework, frameStartResult })

Description

onProcessGpu() est appelé pour démarrer le traitement par le GPU.

Paramètres

ParamètresDescription
cadre{ dispatchEvent(eventName, detail) } : Emet un événement nommé avec les détails fournis.
frameStartResult{ cameraTexture, computeTexture, GLctx, computeCtx, textureWidth, textureHeight, orientation, videoTime, repeatFrame }

Le paramètre frameStartResult a les propriétés suivantes :

PropriétéDescription
cameraTextureLa texture WebGLTexture du support de dessin contenant les données d'alimentation de la caméra.
calculerTextureLe support de calcul WebGLTexture contenant les données de la caméra.
GLctxWebGLRenderingContext ou WebGL2RenderingContext.
calculerCtxLe contexte de rendu du support de calcul WebGLRenderingContext ou WebGL2RenderingContext.
largeur de la textureLargeur (en pixels) de la texture du flux de la caméra.
hauteur de la textureHauteur (en pixels) de la texture du flux de la caméra.
l'orientationLa rotation de l'interface utilisateur par rapport au portrait, en degrés (-90, 0, 90, 180).
durée de la vidéoL'horodatage de cette image vidéo.
repeatFrameVrai si le flux de la caméra n'a pas été mis à jour depuis le dernier appel.

Retours

Toutes les données que vous souhaitez fournir à onProcessCpu et onUpdate doivent être renvoyées. Il sera fourni à ces méthodes en tant que processGpuResult.modulename

Exemple

XR8.addCameraPipelineModule({
name : 'mycamerapipelinemodule',
onProcessGpu : ({frameStartResult}) => {
const {cameraTexture, GLctx, textureWidth, textureHeight} = frameStartResult

if(!cameraTexture.name){
console.error("[index] Camera texture does not have a name")
}

const restoreParams = XR8.GlTextureRenderer.getGLctxParameters(GLctx, [GLctx.TEXTURE0])
// Effectuez ici le traitement GPU approprié
...
XR8.GlTextureRenderer.setGLctxParameters(GLctx, restoreParams)

// Ces champs seront fournis à onProcessCpu et onUpdate
return {gpuDataA, gpuDataB}
},
})