メインコンテンツへスキップ

onProcessGpu()

onProcessGpu: ({ framework, frameStartResult })

概要

onProcessGpu()は、GPU処理を開始するために呼び出されます。

パラメータ

パラメータ説明
framework{ dispatchEvent(eventName, detail) } : 指定されたdetailに名前付きイベントを発行します。
frameStartResult{ cameraTexture, computeTexture, GLctx, computeCtx, textureWidth, textureHeight, orientation, videoTime, repeatFrame }

frameStartResult パラメータは、以下のプロパティを持ちます。

プロパティ説明
cameraTextureカメラフィードデータを含む描画キャンバスの WebGLTexture です。
computeTexture計算canvasの WebGLTexture カメラフィードデータを含んでいます。
GLctx描画キャンバスの WebGLRenderingContext または WebGL2RenderingContext
computeCtx計算canvasの WebGLRenderingContext または WebGL2RenderingContext
textureWidthカメラフィードテクスチャの幅 (ピクセル単位) です。
textureHeightカメラフィードテクスチャの高さ (ピクセル単位) です。
orientation縦向き(-90, 0, 90, 180)のUIの回転。
videoTimeビデオフレームのタイムスタンプ。
repeatFrame前回の呼び出しからカメラフィードが更新されていない場合は true です。

戻り値

onProcessCpu および onUpdate に提供したいデータを返す必要があります。 これらのメソッドには、 processGpuResult.modulename として提供されます。

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])
// ここでGPU関連処理をする
...
XR8.GlTextureRenderer.setGLctxParameters(GLctx, restoreParams)

// これらのフィールドは onProcessCpu と onUpdate に提供されます
return {gpuDataA, gpuDataB}
},
})