1 goog.provide('lime.Renderer'); 2 3 4 /** 5 * Renderer logic object. This object defines lower level 6 * technologies that are used to draw Node instaces on screen. 7 * @constructor 8 */ 9 lime.Renderer = function() {}; 10 11 /** 12 * Draw the object using the renderer 13 */ 14 lime.Renderer.prototype.draw = goog.nullFunction; 15 16 /** 17 * Return base object of the subrenderer 18 * @return {lime.Renderer} base renderer. 19 */ 20 lime.Renderer.prototype.getType = function() { 21 return this.base ? this.base : this; 22 }; 23 24 /** 25 * Make and return subrenderer object. 26 * @param {Object|lime.Renderer} sub Cloned empty instance. 27 * @return {Object|lime.Renderer} Subrenderer. 28 */ 29 lime.Renderer.prototype.makeSubRenderer = function(sub) { 30 goog.object.extend(sub, this); 31 sub.base = this.getType(); 32 return sub; 33 }; 34