91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
//>>built
|
|
define("dojox/gfx/renderer", ["./_base","dojo/_base/lang", "dojo/_base/sniff", "dojo/_base/window", "dojo/_base/config"],
|
|
function(g, lang, has, win, config){
|
|
//>> noBuildResolver
|
|
/*=====
|
|
dojox.gfx.renderer = {
|
|
// summary:
|
|
// This module is an AMD loader plugin that loads the appropriate graphics renderer
|
|
// implementation based on detected environment and current configuration settings.
|
|
};
|
|
=====*/
|
|
var currentRenderer = null;
|
|
return {
|
|
load: function(id, require, load){
|
|
if(currentRenderer && id != "force"){
|
|
load(currentRenderer);
|
|
return;
|
|
}
|
|
var renderer = config.forceGfxRenderer,
|
|
renderers = !renderer && (lang.isString(config.gfxRenderer) ?
|
|
config.gfxRenderer : "svg,vml,canvas,silverlight").split(","),
|
|
silverlightObject, silverlightFlag;
|
|
|
|
while(!renderer && renderers.length){
|
|
switch(renderers.shift()){
|
|
case "svg":
|
|
// the next test is from https://github.com/phiggins42/has.js
|
|
if("SVGAngle" in win.global){
|
|
renderer = "svg";
|
|
}
|
|
break;
|
|
case "vml":
|
|
if(has("ie")){
|
|
renderer = "vml";
|
|
}
|
|
break;
|
|
case "silverlight":
|
|
try{
|
|
if(has("ie")){
|
|
silverlightObject = new ActiveXObject("AgControl.AgControl");
|
|
if(silverlightObject && silverlightObject.IsVersionSupported("1.0")){
|
|
silverlightFlag = true;
|
|
}
|
|
}else{
|
|
if(navigator.plugins["Silverlight Plug-In"]){
|
|
silverlightFlag = true;
|
|
}
|
|
}
|
|
}catch(e){
|
|
silverlightFlag = false;
|
|
}finally{
|
|
silverlightObject = null;
|
|
}
|
|
if(silverlightFlag){
|
|
renderer = "silverlight";
|
|
}
|
|
break;
|
|
case "canvas":
|
|
if(win.global.CanvasRenderingContext2D){
|
|
renderer = "canvas";
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (renderer === 'canvas' && config.canvasEvents !== false) {
|
|
renderer = "canvasWithEvents";
|
|
}
|
|
|
|
if(config.isDebug){
|
|
console.log("gfx renderer = " + renderer);
|
|
}
|
|
|
|
function loadRenderer(){
|
|
require(["dojox/gfx/" + renderer], function(module){
|
|
g.renderer = renderer;
|
|
// memorize the renderer module
|
|
currentRenderer = module;
|
|
// now load it
|
|
load(module);
|
|
});
|
|
}
|
|
if(renderer == "svg" && typeof window.svgweb != "undefined"){
|
|
window.svgweb.addOnLoad(loadRenderer);
|
|
}else{
|
|
loadRenderer();
|
|
}
|
|
}
|
|
};
|
|
});
|