Skip to content

Instantly share code, notes, and snippets.

@bryanforbes
Created May 14, 2011 19:24
Show Gist options
  • Save bryanforbes/972535 to your computer and use it in GitHub Desktop.
Save bryanforbes/972535 to your computer and use it in GitHub Desktop.
GFX module potentially
define(["dojo/_base/config", "./" + (function(){
var renderer, sl, flag, match;
while(!renderer){
// Have a way to force a GFX renderer, if so desired.
// Useful for being able to serialize GFX data in a particular format.
if(dojo.config.forceGfxRenderer){
renderer = dojo.config.forceGfxRenderer;
break;
}
var renderers = (typeof dojo.config.gfxRenderer === "string" ?
dojo.config.gfxRenderer : "svg,vml,canvas,silverlight").split(",");
var i = 0;
for(i = 0; i < renderers.length; ++i){
switch(renderers[i]){
case "svg":
// the next test is from https://github.com/phiggins42/has.js
if("SVGAngle" in dojo.global){
renderer = "svg";
}
break;
case "vml":
if(dojo.isIE){
renderer = "vml";
}
break;
case "silverlight":
try{
if(dojo.isIE){
sl = new ActiveXObject("AgControl.AgControl");
if(sl && sl.IsVersionSupported("1.0")){
flag = true;
}
}else{
if(navigator.plugins["Silverlight Plug-In"]){
flag = true;
}
}
}catch(e){
flag = false;
}finally{
sl = null;
}
if(flag){
renderer = "silverlight";
}
break;
case "canvas":
if(dojo.global.CanvasRenderingContext2D){
renderer = "canvas";
}
break;
}
if(renderer){
break;
}
}
break;
}
if (renderer === 'canvas' && dojo.config.canvasEvent !== false){
renderer = "canvasWithEvents";
}
if(dojo.config.isDebug){
console.debug("gfxRenderer to load: " + renderer);
}
return renderer;
})()], function (config, renderer){
var gfx = dojo.getObject("dojox.gfx", true);
gfx.switchTo(renderer); // this would simply be a mixin
return gfx;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment