MCPcopy
hub / github.com/midrender/revideo / render

Method render

packages/core/src/app/Renderer.ts:143–171  ·  view source on GitHub ↗

* Render the animation using the provided settings. * * @param settings - The rendering settings.

(settings: RendererSettings)

Source from the content-addressed store, hash-verified

141 * @param settings - The rendering settings.
142 */
143 public async render(settings: RendererSettings) {
144 if (this.state.current !== RendererState.Initial) return;
145 await this.lock.acquire();
146 this.estimator.reset();
147 this.state.current = RendererState.Working;
148 let result: RendererResult;
149 try {
150 this.abortController = new AbortController();
151 result = await this.run(settings, this.abortController.signal);
152 } catch (e: any) {
153 this.project.logger.error(e);
154 result = RendererResult.Error;
155 if (this.exporter) {
156 try {
157 await this.exporter.stop?.(result);
158 } catch (_) {
159 throw Error(e.message);
160 }
161 this.exporter = null;
162 throw Error(e.message);
163 }
164 }
165
166 this.estimator.update(1);
167 this.state.current = RendererState.Initial;
168 this.finished.dispatch(result);
169 this.sharedWebGLContext.dispose();
170 this.lock.release();
171 }
172
173 /**
174 * Abort the ongoing render process.

Callers 1

renderFunction · 0.95

Calls 9

runMethod · 0.95
acquireMethod · 0.80
releaseMethod · 0.80
resetMethod · 0.65
stopMethod · 0.65
errorMethod · 0.45
updateMethod · 0.45
dispatchMethod · 0.45
disposeMethod · 0.45

Tested by

no test coverage detected