RenderbufferFormat.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import WebGLConstants from "../Core/WebGLConstants.js";
  2. /**
  3. * @private
  4. */
  5. const RenderbufferFormat = {
  6. RGBA4: WebGLConstants.RGBA4,
  7. RGBA8: WebGLConstants.RGBA8,
  8. RGBA16F: WebGLConstants.RGBA16F,
  9. RGBA32F: WebGLConstants.RGBA32F,
  10. RGB5_A1: WebGLConstants.RGB5_A1,
  11. RGB565: WebGLConstants.RGB565,
  12. DEPTH_COMPONENT16: WebGLConstants.DEPTH_COMPONENT16,
  13. STENCIL_INDEX8: WebGLConstants.STENCIL_INDEX8,
  14. DEPTH_STENCIL: WebGLConstants.DEPTH_STENCIL,
  15. DEPTH24_STENCIL8: WebGLConstants.DEPTH24_STENCIL8,
  16. validate: function (renderbufferFormat) {
  17. return (
  18. renderbufferFormat === RenderbufferFormat.RGBA4 ||
  19. renderbufferFormat === RenderbufferFormat.RGBA8 ||
  20. renderbufferFormat === RenderbufferFormat.RGBA16F ||
  21. renderbufferFormat === RenderbufferFormat.RGBA32F ||
  22. renderbufferFormat === RenderbufferFormat.RGB5_A1 ||
  23. renderbufferFormat === RenderbufferFormat.RGB565 ||
  24. renderbufferFormat === RenderbufferFormat.DEPTH_COMPONENT16 ||
  25. renderbufferFormat === RenderbufferFormat.STENCIL_INDEX8 ||
  26. renderbufferFormat === RenderbufferFormat.DEPTH_STENCIL ||
  27. renderbufferFormat === RenderbufferFormat.DEPTH24_STENCIL8
  28. );
  29. },
  30. getColorFormat: function (datatype) {
  31. if (datatype === WebGLConstants.FLOAT) {
  32. return RenderbufferFormat.RGBA32F;
  33. } else if (datatype === WebGLConstants.HALF_FLOAT_OES) {
  34. return RenderbufferFormat.RGBA16F;
  35. }
  36. return RenderbufferFormat.RGBA8;
  37. },
  38. };
  39. export default Object.freeze(RenderbufferFormat);