MCPcopy Index your code
hub / github.com/CapSoftware/Cap / ensureStrideWorker

Function ensureStrideWorker

apps/desktop/src/utils/socket.ts:649–686  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

647 }
648
649 function ensureStrideWorker(): Worker {
650 if (strideWorker) return strideWorker;
651 strideWorker = new StrideCorrectionWorker();
652 strideWorker.onmessage = (e: MessageEvent<StrideCorrectionResponse>) => {
653 if (e.data.type !== "corrected" || !directCanvas || !directCtx) return;
654
655 const { buffer, width, height } = e.data;
656 const renderStart = performance.now();
657 if (directCanvas.width !== width || directCanvas.height !== height) {
658 directCanvas.width = width;
659 directCanvas.height = height;
660 }
661
662 const frameData = new Uint8ClampedArray(buffer);
663 if (
664 !cachedStrideImageData ||
665 cachedStrideWidth !== width ||
666 cachedStrideHeight !== height
667 ) {
668 cachedStrideImageData = new ImageData(width, height);
669 cachedStrideWidth = width;
670 cachedStrideHeight = height;
671 }
672 cachedStrideImageData.data.set(frameData);
673 directCtx.putImageData(cachedStrideImageData, 0, 0);
674
675 storeRenderedFrame(
676 cachedStrideImageData.data,
677 width,
678 height,
679 width * 4,
680 false,
681 );
682 recordRender(performance.now() - renderStart, "canvas2d");
683 onmessage({ width, height });
684 };
685 return strideWorker;
686 }
687
688 function renderRgbaFrameCanvas2D(buffer: ArrayBuffer, receivedAt: number) {
689 if (!directCanvas || !directCtx) return;

Callers 1

renderRgbaFrameCanvas2DFunction · 0.85

Calls 2

storeRenderedFrameFunction · 0.85
recordRenderFunction · 0.85

Tested by

no test coverage detected