environment.nim 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # author: Ethosa
  2. import core/color
  3. {.used.}
  4. type
  5. EnvironmentObj* = object
  6. delay*: int ## window delay.
  7. color*: ColorRef ## background environment color.
  8. brightness*: float
  9. EnvironmentRef* = ref EnvironmentObj
  10. proc newEnvironment*(color: ColorRef, brightness: float): EnvironmentRef =
  11. ## Creates a new EnvironmentRef object.
  12. ##
  13. ## Arguments:
  14. ## - `color`: ColorRef object for background environment color.
  15. ## - `brightness` - window brightness with value in range `0..1`
  16. EnvironmentRef(color: color, delay: 17, brightness: brightness)
  17. proc newEnvironment*(): EnvironmentRef {.inline.} =
  18. ## Creates a new EnvironmentRef object.
  19. newEnvironment(Color(0x313131ff), 1.0)
  20. proc setBackgroundColor*(env: EnvironmentRef, color: ColorRef) =
  21. ## Changes background environment color.
  22. ##
  23. ## Arguments:
  24. ## - `color`: ColorRef object.
  25. env.color = color
  26. proc setBackgroundColor*(env: EnvironmentRef, color: uint32) =
  27. ## Changes background environment color.
  28. ##
  29. ## Arguments:
  30. ## - `color`: uint32 color, e.g.: 0xFF64FF
  31. env.color = Color(color)
  32. proc setBrightness*(env: EnvironmentRef, brightness: float) =
  33. ## Changes window brightness.
  34. ##
  35. ## Arguments:
  36. ## - `brightness` - window brightness with value in range `0..1`
  37. env.brightness = brightness
  38. proc setDelay*(env: EnvironmentRef, delay: int) =
  39. ## Changes window delay.
  40. ##
  41. ## Arguments:
  42. ## - `delay`: should be ``1000 div FPS``, e.g.: ``1000 div 60 for 60`` frames per second.
  43. env.delay = delay