sdf-2d/src/graphics/graphics-library/helper/enable-extension.ts
2020-09-16 14:45:08 +02:00

41 lines
899 B
TypeScript

import { Insights } from '../../rendering/insights';
const extensions: Map<string, any> = new Map();
const logExtensions = () => {
const values = {};
for (const [k, v] of extensions.entries()) {
values[k] = v !== null;
}
Insights.setValue('extensions', values);
};
export const tryEnableExtension = (
gl: WebGL2RenderingContext,
name: string
): any | null => {
if (extensions.has(name)) {
return extensions.get(name);
}
let extension = null;
if (gl.getSupportedExtensions()!.indexOf(name) != -1) {
extension = gl.getExtension(name);
}
extensions.set(name, extension);
logExtensions();
return extension;
};
export const enableExtension = (gl: WebGL2RenderingContext, name: string): any => {
const extension = tryEnableExtension(gl, name);
if (extension === null) {
throw new Error(`Unsupported extension ${name}`);
}
return extension;
};