1 /**
  2  * Hilo
  3  * Copyright 2015 alibaba.com
  4  * Licensed under the MIT License
  5  */
  6 
  7 /**
  8  * @language=zh
  9  * @class 渲染器抽象基类。
 10  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
 11  * @module hilo/renderer/Renderer
 12  * @requires hilo/core/Hilo
 13  * @requires hilo/core/Class
 14  * @property {Object} canvas 渲染器对应的画布。它可能是一个普通的DOM元素,比如div,也可以是一个canvas画布元素。只读属性。
 15  * @property {Object} stage 渲染器对应的舞台。只读属性。
 16  * @property {String} renderType 渲染方式。只读属性。
 17  */
 18 var Renderer = Class.create(/** @lends Renderer.prototype */{
 19     constructor: function(properties){
 20         properties = properties || {};
 21         Hilo.copy(this, properties, true);
 22     },
 23 
 24     renderType:null,
 25     canvas: null,
 26     stage: null,
 27 
 28     /**
 29      * @language=zh
 30      * 为开始绘制可视对象做准备。需要子类来实现。
 31      * @param {View} target 要绘制的可视对象。
 32      */
 33     startDraw: function(target){ },
 34 
 35     /**
 36      * @language=zh
 37      * 绘制可视对象。需要子类来实现。
 38      * @param {View} target 要绘制的可视对象。
 39      */
 40     draw: function(target){ },
 41 
 42     /**
 43      * @language=zh
 44      * 结束绘制可视对象后的后续处理方法。需要子类来实现。
 45      * @param {View} target 要绘制的可视对象。
 46      */
 47     endDraw: function(target){ },
 48 
 49     /**
 50      * @language=zh
 51      * 对可视对象进行变换。需要子类来实现。
 52      */
 53     transform: function(){ },
 54 
 55     /**
 56      * @language=zh
 57      * 隐藏可视对象。需要子类来实现。
 58      */
 59     hide: function(){ },
 60 
 61     /**
 62      * @language=zh
 63      * 从画布中删除可视对象。注意:不是从stage中删除对象。需要子类来实现。
 64      * @param {View} target 要删除的可视对象。
 65      */
 66     remove: function(target){ },
 67 
 68     /**
 69      * @language=zh
 70      * 清除画布指定区域。需要子类来实现。
 71      * @param {Number} x 指定区域的x轴坐标。
 72      * @param {Number} y 指定区域的y轴坐标。
 73      * @param {Number} width 指定区域的宽度。
 74      * @param {Number} height 指定区域的高度。
 75      */
 76     clear: function(x, y, width, height){ },
 77 
 78     /**
 79      * @language=zh
 80      * 改变渲染器的画布大小。
 81      * @param {Number} width 指定渲染画布新的宽度。
 82      * @param {Number} height 指定渲染画布新的高度。
 83      */
 84     resize: function(width, height){ }
 85 
 86 });