12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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;
- has.add("vml", function(global, document, element){
- element.innerHTML = "<v:shape adj=\"1\"/>";
- var supported = ("adj" in element.firstChild);
- element.innerHTML = "";
- return supported;
- });
- 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("vml")){
- 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();
- }
- }
- };
- });
|