babylon.postProcess.tests.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * Describes the test suite.
  3. */
  4. describe('Babylon Scene Loader', function() {
  5. let subject: BABYLON.Engine;
  6. this.timeout(10000);
  7. /**
  8. * Loads the dependencies.
  9. */
  10. before(function(done) {
  11. this.timeout(180000);
  12. (BABYLONDEVTOOLS).Loader
  13. .useDist()
  14. .testMode()
  15. .load(function() {
  16. // Force apply promise polyfill for consistent behavior between PhantomJS, IE11, and other browsers.
  17. BABYLON.PromisePolyfill.Apply(true);
  18. done();
  19. });
  20. });
  21. /**
  22. * Create a new engine subject before each test.
  23. */
  24. beforeEach(function() {
  25. subject = new BABYLON.NullEngine({
  26. renderHeight: 256,
  27. renderWidth: 256,
  28. textureSize: 256,
  29. deterministicLockstep: false,
  30. lockstepMaxSteps: 1
  31. });
  32. });
  33. /**
  34. * Integration tests for post processes.
  35. */
  36. describe('#postProcesses', () => {
  37. it('Add default pipeline', () => {
  38. const scene = new BABYLON.Scene(subject);
  39. var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 100, new BABYLON.Vector3(0, 0, 0), scene);
  40. // Set caps so that HDR will be set when creating default pipeline
  41. var caps = subject.getCaps();
  42. caps.textureFloatRender = true;
  43. var promise = new Promise<void>((res, rej) => {
  44. scene.whenReadyAsync().then(() => {
  45. let createShaderProgramSpy = sinon.spy(subject, "createShaderProgram");
  46. var defaultPipeline = new BABYLON.DefaultRenderingPipeline("default", true, scene, [camera]);
  47. // wait for all shaders to be compiled if needed
  48. setTimeout(() => {
  49. expect(createShaderProgramSpy.callCount, "number of shaders compiled").to.equal(1); // Image process shader is compiled by default
  50. createShaderProgramSpy.restore();
  51. caps.textureFloatRender = false;
  52. res();
  53. }, 500);
  54. });
  55. });
  56. return promise;
  57. });
  58. });
  59. });