Source: renderer/renderer.js

goog.provide('lime.Renderer');


/**
 * Renderer logic object. This object defines lower level
 * technologies that are used to draw Node instaces on screen.
 * @constructor
 */
lime.Renderer = function() {};

/**
 * Draw the object using the renderer
 */
lime.Renderer.prototype.draw = goog.nullFunction;

/**
 * Return base object of the subrenderer
 * @return {lime.Renderer} base renderer.
 */
lime.Renderer.prototype.getType = function() {
    return this.base ? this.base : this;
};

/**
 * Make and return subrenderer object.
 * @param {Object|lime.Renderer} sub Cloned empty instance.
 * @return {Object|lime.Renderer} Subrenderer.
 */
lime.Renderer.prototype.makeSubRenderer = function(sub) {
    goog.object.extend( /** @lends {this} */ sub, this);
    sub.base = this.getType();
    return sub;
};