2
0

Scene.hx 764 B

12345678910111213141516171819202122232425262728293031323334
  1. package h3d.scene;
  2. class Scene extends Layers, implements h3d.IDrawable {
  3. public var camera : h3d.Camera;
  4. var extraPasses : Array<{ function render( engine : h3d.Engine ) : Void; }>;
  5. public function new() {
  6. super(null);
  7. camera = new h3d.Camera();
  8. extraPasses = [];
  9. }
  10. public function addPass(p) {
  11. extraPasses.push(p);
  12. }
  13. public function removePass(p) {
  14. extraPasses.remove(p);
  15. }
  16. // make it public
  17. public override function render( engine : h3d.Engine ) {
  18. camera.ratio = engine.width / engine.height;
  19. camera.update();
  20. var oldProj = engine.curProjMatrix;
  21. engine.curProjMatrix = camera.m;
  22. super.render(engine);
  23. for( p in extraPasses )
  24. p.render(engine);
  25. engine.curProjMatrix = oldProj;
  26. }
  27. }