light-chart
Version:
Charts for mobile visualization.
58 lines (42 loc) • 1.82 kB
JavaScript
import GCanvas from './env/canvas';
import GImage from './env/image';
import GWebGLRenderingContext from './context-webgl/RenderingContext';
import GContext2D from './context-2d/RenderingContext';
import GBridgeWeex from './bridge/bridge-weex';
import GBridgeReactNative from './bridge/bridge-reactnative';
import MiniappBridge from './bridge/bridge-miniapp';
export let Image = GImage;
export let WeexBridge = GBridgeWeex;
export let ReactNativeBridge = GBridgeReactNative;
export function enable(el, { bridge, debug, disableAutoSwap, disableComboCommands } = {}) {
const GBridge = GImage.GBridge = GCanvas.GBridge = GWebGLRenderingContext.GBridge = GContext2D.GBridge = bridge;
GBridge.callEnable(el.ref, [
0, // renderMode: 0--RENDERMODE_WHEN_DIRTY, 1--RENDERMODE_CONTINUOUSLY
-1, // hybridLayerType: 0--LAYER_TYPE_NONE 1--LAYER_TYPE_SOFTWARE 2--LAYER_TYPE_HARDWARE
false, // supportScroll
false, // newCanvasMode
1, // compatible
'white',// clearColor
false // sameLevel: newCanvasMode = true && true => GCanvasView and Webview is same level
]);
if (debug === true) {
GBridge.callEnableDebug();
}
if (disableComboCommands) {
GBridge.callEnableDisableCombo();
}
var canvas = new GCanvas(el.ref || el._uid, { disableAutoSwap });
canvas.width = el.style.width;
canvas.height = el.style.height;
canvas.el = el;
return canvas;
};
export function getContext(el) {
if(process.env.RUNTIME==="native"){
return enable(el, {bridge: WeexBridge}).getContext('2d');
}else if(process.env.RUNTIME==="miniapp"){
return enable(el, {bridge: MiniappBridge}).getContext('2d');
}else if(process.env.RUNTIME==="web"){
return el.getContext('2d')
}
}