MCPcopy Create free account
hub / github.com/CapSoftware/Cap / doInit

Function doInit

apps/desktop/src/utils/frame-worker.ts:891–969  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

889 isInitializing = true;
890
891 const doInit = async () => {
892 offscreenCanvas = canvas;
893
894 const webgpuSupported = await isWebGPUSupported();
895
896 if (webgpuSupported) {
897 try {
898 webgpuRenderer = await initWebGPU(canvas);
899 renderMode = "webgpu";
900 self.postMessage({
901 type: "renderer-mode",
902 mode: "webgpu",
903 } satisfies RendererModeMessage);
904 } catch (e) {
905 console.error("[frame-worker] WebGPU init failed:", e);
906 renderMode = "canvas2d";
907 offscreenCtx = canvas.getContext("2d", {
908 alpha: false,
909 desynchronized: true,
910 });
911 self.postMessage({
912 type: "renderer-mode",
913 mode: "canvas2d",
914 } satisfies RendererModeMessage);
915 }
916 } else {
917 renderMode = "canvas2d";
918 offscreenCtx = canvas.getContext("2d", {
919 alpha: false,
920 desynchronized: true,
921 });
922 self.postMessage({
923 type: "renderer-mode",
924 mode: "canvas2d",
925 } satisfies RendererModeMessage);
926 }
927
928 let frameRendered = false;
929 if (
930 renderMode === "webgpu" &&
931 webgpuRenderer &&
932 lastRawFrameData &&
933 lastRawFrameWidth > 0 &&
934 lastRawFrameHeight > 0
935 ) {
936 renderFrameWebGPU(
937 webgpuRenderer,
938 lastRawFrameData,
939 lastRawFrameWidth,
940 lastRawFrameHeight,
941 lastRawFrameWidth * 4,
942 );
943 self.postMessage({
944 type: "frame-rendered",
945 width: lastRawFrameWidth,
946 height: lastRawFrameHeight,
947 } satisfies FrameRenderedMessage);
948 frameRendered = true;

Callers 1

initCanvasFunction · 0.85

Calls 4

isWebGPUSupportedFunction · 0.90
initWebGPUFunction · 0.90
renderFrameWebGPUFunction · 0.90
startRenderLoopFunction · 0.85

Tested by

no test coverage detected