移动部分类模块至es

优化框架
This commit is contained in:
YHH
2020-07-22 23:30:31 +08:00
parent 5b8f414a45
commit 15c0844e29
18 changed files with 1245 additions and 674 deletions

View File

@@ -1,7 +1,47 @@
interface IRenderable {
bounds: Rectangle;
enabled: boolean;
isVisible: boolean;
isVisibleFromCamera(camera: Camera);
render(camera: Camera);
}
module es {
/**
* 当该接口应用到组件时,它将注册组件以场景渲染器显示
* 该接口请谨慎实现
*/
export interface IRenderable {
/**
* 对象的AABB用于相机剔除
*/
bounds: Rectangle;
/**
* 这个组件是否应该被渲染
*/
enabled: boolean;
/**
* 较低的渲染层在前面,较高的在后面
*/
renderLayer: number;
/**
* 可渲染的可见性。状态的改变会调用onBecameVisible/onBecameInvisible方法
*/
isVisible: boolean;
/**
* 如果renderableComponent的边界与camera.bounds相交 返回true
* 用于处理isVisible标志的状态开关
* 在渲染方法中使用这个方法来决定是否渲染
* @param camera
*/
isVisibleFromCamera(camera: Camera);
/**
* 由渲染器调用。可以使用摄像机进行剔除
* @param camera
*/
render(camera: Camera);
}
/**
* 用于排序IRenderables的比较器
*/
export class RenderableComparer {
public compare(self: IRenderable, other: IRenderable){
return other.renderLayer - self.renderLayer;
}
}
}