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}
},
})