MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / uploadEntryLut

Function uploadEntryLut

packages/core/src/runtime/colorGrading.ts:477–519  ·  view source on GitHub ↗
(
  entry: ColorGradingEntry,
  src: string,
  lut: CubeLut3D,
)

Source from the content-addressed store, hash-verified

475}
476
477function uploadEntryLut(
478 entry: ColorGradingEntry,
479 src: string,
480 lut: CubeLut3D,
481): RuntimeLutTexture | null {
482 if (entry.lut?.src === src) return entry.lut;
483 const packed = packCubeLutToRgba8(lut);
484 const { gl, program } = entry;
485 try {
486 gl.activeTexture(gl.TEXTURE1);
487 gl.bindTexture(gl.TEXTURE_2D, program.lutTexture);
488 gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
489 gl.texImage2D(
490 gl.TEXTURE_2D,
491 0,
492 gl.RGBA,
493 packed.width,
494 packed.height,
495 0,
496 gl.RGBA,
497 gl.UNSIGNED_BYTE,
498 packed.data,
499 );
500 entry.lut = {
501 src,
502 title: lut.title,
503 size: lut.size,
504 domainMin: lut.domainMin,
505 domainMax: lut.domainMax,
506 textureWidth: packed.width,
507 textureHeight: packed.height,
508 };
509 entry.lutError = null;
510 entry.lutLoadingSrc = null;
511 return entry.lut;
512 } catch (err) {
513 entry.lut = null;
514 entry.lutError = errorMessage(err);
515 entry.lutLoadingSrc = null;
516 swallow("runtime.colorGrading.uploadLut", err);
517 return null;
518 }
519}
520
521// fallow-ignore-next-line complexity
522function ensureEntryLut(entry: ColorGradingEntry): RuntimeLutTexture | null {

Callers 1

ensureEntryLutFunction · 0.85

Calls 4

packCubeLutToRgba8Function · 0.90
swallowFunction · 0.90
errorMessageFunction · 0.85
texImage2DMethod · 0.80

Tested by

no test coverage detected