| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- * Tencent is pleased to support the open source community by making vap available.
- *
- * Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
- *
- * Licensed under the MIT License (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://opensource.org/licenses/MIT
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import { VapConfig } from './type';
- import WebglRenderVap from './webgl-render-vap';
- let isCanWebGL: boolean;
- /**
- * @param options
- * @constructor
- * @return {null}
- */
- export default function (options?: VapConfig) {
- if (canWebGL()) {
- return new WebglRenderVap(options);
- } else {
- throw new Error('your browser not support webgl');
- }
- }
- export function canWebGL(): boolean {
- if (typeof isCanWebGL !== 'undefined') {
- return isCanWebGL;
- }
- try {
- // @ts-ignore
- if (!window.WebGLRenderingContext) {
- return false;
- }
- const canvas = document.createElement('canvas');
- let context = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
- isCanWebGL = !!context;
- context = null;
- } catch (err) {
- isCanWebGL = false;
- }
- return isCanWebGL;
- }
|