pixelformat.monkey2 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. Namespace std.graphics
  2. #rem monkeydoc Pixel formats supported by pixmaps.
  3. | PixelFormat | Description
  4. |:--------------|:-----------
  5. | `Unknown` | Unknown pixel format.
  6. | `I8` | 8 bit intensity.
  7. | `A8` | 8 bit alpha.
  8. | `IA8` | 8 bit intensity, alpha.
  9. | `RGB8` | 8 bit red, green, blue.
  10. | `RGBA8` | 8 bit red, green, blue, alpha.
  11. Note: The `IA16`, `RGB24` and `RGBA32` formats have been deprecated in favor of `IA8`, `RGB8` and `RGBA8`.
  12. #end
  13. Enum PixelFormat
  14. Unknown
  15. I8
  16. A8
  17. IA8
  18. RGB8
  19. RGBA8
  20. I16F
  21. A16F
  22. IA16F
  23. RGB16F
  24. RGBA16F
  25. I32F
  26. A32F
  27. IA32F
  28. RGB32F
  29. RGBA32F
  30. Depth16
  31. Depth24
  32. Depth32
  33. RGBE8
  34. 'deprecated
  35. IA16=IA8
  36. RGB24=RGB8
  37. RGBA32=RGBA8
  38. End
  39. Function IsAlphaPixelFormat:Bool( format:PixelFormat )
  40. Select format
  41. Case PixelFormat.A8,PixelFormat.IA8,PixelFormat.RGBA8 Return True
  42. Case PixelFormat.A16F,PixelFormat.IA16F,PixelFormat.RGBA16F Return True
  43. Case PixelFormat.A32F,PixelFormat.IA32F,PixelFormat.RGBA32F Return True
  44. End
  45. Return False
  46. End
  47. Function IsDepthPixelFormat:Bool( format:PixelFormat )
  48. Return Int( format )>=Int( PixelFormat.Depth16 ) And Int( format )<=Int( PixelFormat.Depth32 )
  49. End
  50. Function IsFloatPixelFormat:Bool( format:PixelFormat )
  51. Return Int( format )>=Int( PixelFormat.I16F ) And Int( format )<=Int( PixelFormat.RGBA32F )
  52. End
  53. #rem monkeydoc Gets the number of bytes per pixel for a particular pixel format.
  54. #end
  55. Function PixelFormatDepth:Int( format:PixelFormat )
  56. Select format
  57. Case PixelFormat.I8 Return 1
  58. Case PixelFormat.A8 Return 1
  59. Case PixelFormat.IA8 Return 2
  60. Case PixelFormat.RGB8 Return 3
  61. Case PixelFormat.RGBA8 Return 4
  62. Case PixelFormat.I16F Return 2
  63. Case PixelFormat.A16F Return 2
  64. Case PixelFormat.IA16F Return 4
  65. Case PixelFormat.RGB16F Return 6
  66. Case PixelFormat.RGBA16F Return 8
  67. Case PixelFormat.I32F Return 4
  68. Case PixelFormat.A32F Return 4
  69. Case PixelFormat.IA32F Return 8
  70. Case PixelFormat.RGB32F Return 12
  71. Case PixelFormat.RGBA32F Return 16
  72. Case PixelFormat.Depth16 Return 2
  73. Case PixelFormat.Depth24 Return 4
  74. Case PixelFormat.Depth32 Return 4
  75. Case PixelFormat.RGBE8 Return 4
  76. End
  77. Return 0
  78. End