WebGLInfo.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * @author Mugen87 / https://github.com/Mugen87
  3. */
  4. function WebGLInfo( gl ) {
  5. var memory = {
  6. geometries: 0,
  7. textures: 0
  8. };
  9. var render = {
  10. frame: 0,
  11. calls: 0,
  12. triangles: 0,
  13. points: 0,
  14. lines: 0
  15. };
  16. function update( count, mode, instanceCount ) {
  17. instanceCount = instanceCount || 1;
  18. render.calls ++;
  19. switch ( mode ) {
  20. case gl.TRIANGLES:
  21. render.triangles += instanceCount * ( count / 3 );
  22. break;
  23. case gl.LINES:
  24. render.lines += instanceCount * ( count / 2 );
  25. break;
  26. case gl.LINE_STRIP:
  27. render.lines += instanceCount * ( count - 1 );
  28. break;
  29. case gl.LINE_LOOP:
  30. render.lines += instanceCount * count;
  31. break;
  32. case gl.POINTS:
  33. render.points += instanceCount * count;
  34. break;
  35. default:
  36. console.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );
  37. break;
  38. }
  39. }
  40. function reset() {
  41. render.frame ++;
  42. render.calls = 0;
  43. render.triangles = 0;
  44. render.points = 0;
  45. render.lines = 0;
  46. }
  47. return {
  48. memory: memory,
  49. render: render,
  50. programs: null,
  51. autoReset: true,
  52. reset: reset,
  53. update: update
  54. };
  55. }
  56. export { WebGLInfo };
粤ICP备19079148号