UNPKG

trtc-electron-sdk

Version:

trtc electron sdk

61 lines (60 loc) 2.75 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRenderer = exports.RenderType = void 0; const Canvas3DRenderer_1 = __importDefault(require("./Canvas3DRenderer")); const Canvas2DRenderer_1 = __importDefault(require("./Canvas2DRenderer")); const VideoRenderer_1 = __importDefault(require("./VideoRenderer")); const util_1 = require("./util"); const logger_1 = __importDefault(require("../logger")); const isWebGLSupported = (0, util_1.isSupportWebGL)(); var RenderType; (function (RenderType) { RenderType["WebGL"] = "WebGL"; RenderType["Canvas2D"] = "Canvas2D"; RenderType["Video"] = "Video"; })(RenderType = exports.RenderType || (exports.RenderType = {})); function createRenderer(pixelFormat, view, options) { if (options && !options.type) { options.type = RenderType.Video; } let renderer = null; if (window.VideoFrame && window.VideoDecoder && options.type === RenderType.Video) { // Electron 15+ 版本支持 WebCodec API renderer = new VideoRenderer_1.default(pixelFormat, view); logger_1.default.log('created Video render'); } else if (isWebGLSupported && (options.type === RenderType.Video || options.type === RenderType.WebGL)) { try { renderer = new Canvas3DRenderer_1.default(pixelFormat, view, { onContextLost: options.onContextLost || null, }); logger_1.default.log('created WebGL render'); } catch (err) { logger_1.default.warn('create WebGL renderer error.', err.message); renderer = new Canvas2DRenderer_1.default(pixelFormat, view); logger_1.default.log('created Canvas 2D render'); } } else { renderer = new Canvas2DRenderer_1.default(pixelFormat, view); logger_1.default.log('created Canvas 2D render'); } return renderer; } exports.createRenderer = createRenderer; __exportStar(require("./IRenderer"), exports); __exportStar(require("./types"), exports);