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