Files
esengine/source/src/Graphics/Renderers/Renderer.ts
T

41 lines
1.0 KiB
TypeScript
Raw Normal View History

/**
* 渲染器被添加到场景中并处理所有对RenderableComponent的实际调用
*/
abstract class Renderer {
/**
* 渲染器用于渲染的摄像机(实际上是用于剔除的变换矩阵和边界)
* 不是必须的
* Renderer子类可以选择调用beginRender时使用的摄像头
*/
public camera: Camera;
/**
* 当渲染器被添加到场景时调用
* @param scene
*/
public onAddedToScene(scene: Scene){}
2020-06-19 00:38:37 +08:00
protected beginRender(cam: Camera){
cam.transform.updateTransform();
2020-06-21 10:27:15 +08:00
let entities = SceneManager.scene.entities;
2020-06-19 00:38:37 +08:00
for (let i = 0; i < entities.buffer.length; i ++){
entities.buffer[i].transform.updateTransform();
}
}
/**
*
* @param scene
*/
public abstract render(scene: Scene);
/**
*
* @param renderable
* @param cam
*/
protected renderAfterStateCheck(renderable: IRenderable, cam: Camera){
renderable.render(cam);
}
}