MCPcopy
hub / github.com/sparkjsdev/spark / renderReadback

Method renderReadback

src/Readback.ts:303–334  ·  view source on GitHub ↗
({
    reader,
    count,
    renderer,
    readback,
  }: {
    reader: Rgba8Readback;
    count: number;
    renderer?: THREE.WebGLRenderer;
    readback: B;
  })

Source from the content-addressed store, hash-verified

301 // Perform a render and readback operation for the given Rgba8Readback,
302 // and readback buffer (call ensureBuffer first).
303 async renderReadback<B extends ReadbackBuffer>({
304 reader,
305 count,
306 renderer,
307 readback,
308 }: {
309 reader: Rgba8Readback;
310 count: number;
311 renderer?: THREE.WebGLRenderer;
312 readback: B;
313 }): Promise<B> {
314 this.renderer = renderer || this.renderer;
315 if (!this.renderer) {
316 throw new Error("No renderer");
317 }
318
319 this.ensureCapacity(count);
320
321 const { program, material } = this.prepareProgramMaterial(reader);
322 program.update();
323
324 const renderState = this.saveRenderState(this.renderer);
325
326 // Generate output
327 this.process({ count, material });
328
329 // Initiate readback
330 const promise = this.read({ readback });
331
332 this.resetRenderState(this.renderer, renderState);
333 return promise;
334 }
335
336 getTexture(): THREE.DataArrayTexture | undefined {
337 return this.target?.texture;

Callers 2

sortUpdateMethod · 0.80
prepareGenerateMethod · 0.80

Calls 7

ensureCapacityMethod · 0.95
saveRenderStateMethod · 0.95
processMethod · 0.95
readMethod · 0.95
resetRenderStateMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected