Extra "ports" of juce-based plugins using the distrho build system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.3KB

  1. --- A simple colour class.
  2. -- Is converted to a [JUCE Colour](http://www.juce.com/api/classColour.html)
  3. -- @classmod juce.Colour
  4. --- Constuctor with classical arguments.
  5. -- @param r red
  6. -- @param g green
  7. -- @param b blue
  8. -- @param[opt] a alpha
  9. -- @within Constructors
  10. -- @constructor
  11. -- @function Colour
  12. --- Constuctor with named arguments.
  13. -- Every field is optional.
  14. -- @tparam table args
  15. -- @param args.r red
  16. -- @param args.g green
  17. -- @param args.b blue,
  18. -- @param args.a alpha
  19. -- @within Constructors
  20. -- @constructor
  21. -- @function Colour
  22. local Colour = setmetatable({}, {
  23. __call = function (self, ...)
  24. local c = {}
  25. c.r, c.g, c.b, c.a = ...
  26. if type(c.r)=="table" then c = c.r end
  27. c.a = c.a or 0xff
  28. return ffi.new("Colour",c)
  29. end
  30. })
  31. local Colour_mt = {
  32. -- operator '=='
  33. __eq = function(self, rhs)
  34. return self.argb == rhs.argb
  35. end;
  36. }
  37. ffi.metatype("Colour", Colour_mt);
  38. Colour.black = Colour()
  39. Colour.white = Colour(255,255,255)
  40. Colour.red = Colour(255,0,0)
  41. Colour.green = Colour(0,255,0)
  42. Colour.blue = Colour(0,0,255)
  43. --- Red (0-255)
  44. -- @simplefield r
  45. --- Green (0-255)
  46. -- @simplefield g
  47. --- Blue (0-255)
  48. -- @simplefield b
  49. --- Alpha (0-255)
  50. -- @simplefield a
  51. --- @predefined black
  52. --- @predefined white
  53. --- @predefined red
  54. --- @predefined green
  55. --- @predefined blue
  56. return Colour