RenderTarget.tests.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /* global QUnit */
  2. import { NearestFilter } from '../../../../src/constants.js';
  3. import { RenderTarget } from '../../../../src/core/RenderTarget.js';
  4. export default QUnit.module( 'Core', () => {
  5. QUnit.module( 'RenderTarget', () => {
  6. // Constructor options
  7. QUnit.test( 'Constructor', ( assert ) => {
  8. const empty = new RenderTarget();
  9. assert.ok( empty.width != null && empty.height != null && empty.textures.length === 1, 'Can instantiate a RenderTarget with no arguments.' );
  10. const sized = new RenderTarget( 1, 1 );
  11. assert.ok( sized.width === 1 && sized.height === 1 && sized.textures.length === 1, 'Can instantiate a RenderTarget with custom size.' );
  12. const mrt = new RenderTarget( 1, 1, { count: 2 } );
  13. assert.ok( mrt.width === 1 && mrt.height === 1 && mrt.textures.length === 2, 'Can instantiate a RenderTarget with custom count (MRT).' );
  14. const options = new RenderTarget( 1, 1, { magFilter: NearestFilter } );
  15. assert.ok( options.width === 1 && options.height === 1 && options.texture.magFilter === NearestFilter, 'Can instantiate a RenderTarget with texture options.' );
  16. } );
  17. // PROPERTIES
  18. QUnit.todo( 'texture', ( assert ) => {
  19. assert.ok( false, 'everything\'s gonna be alright' );
  20. } );
  21. QUnit.todo( 'depthTexture', ( assert ) => {
  22. assert.ok( false, 'everything\'s gonna be alright' );
  23. } );
  24. // PUBLIC
  25. QUnit.test( 'setSize', ( assert ) => {
  26. const renderTarget = new RenderTarget();
  27. renderTarget.setSize( 128, 128 );
  28. assert.ok( renderTarget.width === 128 && renderTarget.height === 128, 'Sets a size with width and height' );
  29. assert.ok( renderTarget.texture.image.width === 128 && renderTarget.texture.image.height === 128, 'Texture image is updated on resize' );
  30. assert.ok( renderTarget.viewport.width === 128 && renderTarget.viewport.height === 128, 'Viewport is updated on resize' );
  31. assert.ok( renderTarget.scissor.width === 128 && renderTarget.scissor.height === 128, 'Scissor is updated on resize' );
  32. const mrt = new RenderTarget( 0, 0, { count: 2 } );
  33. mrt.setSize( 128, 128 );
  34. assert.ok( mrt.width === 128 && mrt.height === 128, 'Sets a size with width and height' );
  35. assert.ok( mrt.textures[ 0 ].image.width === 128 && mrt.textures[ 0 ].image.height === 128 && mrt.textures[ 1 ].image.width === 128 && mrt.textures[ 1 ].image.height === 128, 'Texture images are updated on resize' );
  36. assert.ok( mrt.viewport.width === 128 && mrt.viewport.height === 128, 'Viewport is updated on resize' );
  37. assert.ok( mrt.scissor.width === 128 && mrt.scissor.height === 128, 'Scissor is updated on resize' );
  38. const renderTarget3D = new RenderTarget();
  39. renderTarget3D.setSize( 128, 128, 16 );
  40. assert.ok( renderTarget3D.width === 128 && renderTarget3D.height === 128 && renderTarget3D.depth === 16, 'Sets a size with width, height, and depth' );
  41. assert.ok( renderTarget3D.texture.image.width === 128 && renderTarget3D.texture.image.height === 128 && renderTarget3D.texture.image.depth === 16, 'Texture image is updated on resize' );
  42. assert.ok( renderTarget3D.viewport.width === 128 && renderTarget3D.viewport.height === 128, 'Viewport is updated on resize' );
  43. assert.ok( renderTarget3D.scissor.width === 128 && renderTarget3D.scissor.height === 128, 'Scissor is updated on resize' );
  44. } );
  45. } );
  46. } );
粤ICP备19079148号