aperture.d 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. module aperture;
  2. struct Color {
  3. float r;
  4. float g;
  5. float b;
  6. float a;
  7. }
  8. struct Texture {
  9. uint id;
  10. uint list_id;
  11. int width;
  12. int height;
  13. int channels;
  14. }
  15. enum Colors {
  16. WHITE = Color(255, 255, 255, 255),
  17. BLACK = Color(0, 0, 0, 255),
  18. RED = Color(255, 0, 0, 255),
  19. GREEN = Color(0, 255, 0, 255),
  20. BLUE = Color(0, 0, 255, 255)
  21. }
  22. enum KeyboardKey
  23. {
  24. KEY_NULL = 0, // Key: NULL, used for no key pressed
  25. // Alphanumeric keys
  26. KEY_APOSTROPHE = 39, // Key: '
  27. KEY_COMMA = 44, // Key: ,
  28. KEY_MINUS = 45, // Key: -
  29. KEY_PERIOD = 46, // Key: .
  30. KEY_SLASH = 47, // Key: /
  31. KEY_ZERO = 48, // Key: 0
  32. KEY_ONE = 49, // Key: 1
  33. KEY_TWO = 50, // Key: 2
  34. KEY_THREE = 51, // Key: 3
  35. KEY_FOUR = 52, // Key: 4
  36. KEY_FIVE = 53, // Key: 5
  37. KEY_SIX = 54, // Key: 6
  38. KEY_SEVEN = 55, // Key: 7
  39. KEY_EIGHT = 56, // Key: 8
  40. KEY_NINE = 57, // Key: 9
  41. KEY_SEMICOLON = 59, // Key: ;
  42. KEY_EQUAL = 61, // Key: =
  43. KEY_A = 65, // Key: A | a
  44. KEY_B = 66, // Key: B | b
  45. KEY_C = 67, // Key: C | c
  46. KEY_D = 68, // Key: D | d
  47. KEY_E = 69, // Key: E | e
  48. KEY_F = 70, // Key: F | f
  49. KEY_G = 71, // Key: G | g
  50. KEY_H = 72, // Key: H | h
  51. KEY_I = 73, // Key: I | i
  52. KEY_J = 74, // Key: J | j
  53. KEY_K = 75, // Key: K | k
  54. KEY_L = 76, // Key: L | l
  55. KEY_M = 77, // Key: M | m
  56. KEY_N = 78, // Key: N | n
  57. KEY_O = 79, // Key: O | o
  58. KEY_P = 80, // Key: P | p
  59. KEY_Q = 81, // Key: Q | q
  60. KEY_R = 82, // Key: R | r
  61. KEY_S = 83, // Key: S | s
  62. KEY_T = 84, // Key: T | t
  63. KEY_U = 85, // Key: U | u
  64. KEY_V = 86, // Key: V | v
  65. KEY_W = 87, // Key: W | w
  66. KEY_X = 88, // Key: X | x
  67. KEY_Y = 89, // Key: Y | y
  68. KEY_Z = 90, // Key: Z | z
  69. KEY_LEFT_BRACKET = 91, // Key: [
  70. KEY_BACKSLASH = 92, // Key: '\'
  71. KEY_RIGHT_BRACKET = 93, // Key: ]
  72. KEY_GRAVE = 96, // Key: `
  73. // Function keys
  74. KEY_SPACE = 32, // Key: Space
  75. KEY_ESCAPE = 256, // Key: Esc
  76. KEY_ENTER = 257, // Key: Enter
  77. KEY_TAB = 258, // Key: Tab
  78. KEY_BACKSPACE = 259, // Key: Backspace
  79. KEY_INSERT = 260, // Key: Ins
  80. KEY_DELETE = 261, // Key: Del
  81. KEY_RIGHT = 262, // Key: Cursor right
  82. KEY_LEFT = 263, // Key: Cursor left
  83. KEY_DOWN = 264, // Key: Cursor down
  84. KEY_UP = 265, // Key: Cursor up
  85. KEY_PAGE_UP = 266, // Key: Page up
  86. KEY_PAGE_DOWN = 267, // Key: Page down
  87. KEY_HOME = 268, // Key: Home
  88. KEY_END = 269, // Key: End
  89. KEY_CAPS_LOCK = 280, // Key: Caps lock
  90. KEY_SCROLL_LOCK = 281, // Key: Scroll down
  91. KEY_NUM_LOCK = 282, // Key: Num lock
  92. KEY_PRINT_SCREEN = 283, // Key: Print screen
  93. KEY_PAUSE = 284, // Key: Pause
  94. KEY_F1 = 290, // Key: F1
  95. KEY_F2 = 291, // Key: F2
  96. KEY_F3 = 292, // Key: F3
  97. KEY_F4 = 293, // Key: F4
  98. KEY_F5 = 294, // Key: F5
  99. KEY_F6 = 295, // Key: F6
  100. KEY_F7 = 296, // Key: F7
  101. KEY_F8 = 297, // Key: F8
  102. KEY_F9 = 298, // Key: F9
  103. KEY_F10 = 299, // Key: F10
  104. KEY_F11 = 300, // Key: F11
  105. KEY_F12 = 301, // Key: F12
  106. KEY_LEFT_SHIFT = 340, // Key: Shift left
  107. KEY_LEFT_CONTROL = 341, // Key: Control left
  108. KEY_LEFT_ALT = 342, // Key: Alt left
  109. KEY_LEFT_SUPER = 343, // Key: Super left
  110. KEY_RIGHT_SHIFT = 344, // Key: Shift right
  111. KEY_RIGHT_CONTROL = 345, // Key: Control right
  112. KEY_RIGHT_ALT = 346, // Key: Alt right
  113. KEY_RIGHT_SUPER = 347, // Key: Super right
  114. KEY_KB_MENU = 348, // Key: KB menu
  115. // Keypad keys
  116. KEY_KP_0 = 320, // Key: Keypad 0
  117. KEY_KP_1 = 321, // Key: Keypad 1
  118. KEY_KP_2 = 322, // Key: Keypad 2
  119. KEY_KP_3 = 323, // Key: Keypad 3
  120. KEY_KP_4 = 324, // Key: Keypad 4
  121. KEY_KP_5 = 325, // Key: Keypad 5
  122. KEY_KP_6 = 326, // Key: Keypad 6
  123. KEY_KP_7 = 327, // Key: Keypad 7
  124. KEY_KP_8 = 328, // Key: Keypad 8
  125. KEY_KP_9 = 329, // Key: Keypad 9
  126. KEY_KP_DECIMAL = 330, // Key: Keypad .
  127. KEY_KP_DIVIDE = 331, // Key: Keypad /
  128. KEY_KP_MULTIPLY = 332, // Key: Keypad *
  129. KEY_KP_SUBTRACT = 333, // Key: Keypad -
  130. KEY_KP_ADD = 334, // Key: Keypad +
  131. KEY_KP_ENTER = 335, // Key: Keypad Enter
  132. KEY_KP_EQUAL = 336, // Key: Keypad =
  133. // Android key buttons
  134. KEY_BACK = 4, // Key: Android back button
  135. KEY_MENU = 5, // Key: Android menu button
  136. KEY_VOLUME_UP = 24, // Key: Android volume up button
  137. KEY_VOLUME_DOWN = 25 // Key: Android volume down button
  138. }
  139. struct Vector2 {
  140. float x;
  141. float y;
  142. }
  143. struct Rectangle {
  144. float x;
  145. float y;
  146. float width;
  147. float height;
  148. }
  149. extern (C) @nogc {
  150. nothrow {
  151. void SetTargetFPS(int fps);
  152. void DrawText(const char* text, float x, float y, float scale, Color color = Color(255, 255, 255, 255));
  153. float GetScreenWidth();
  154. float GetScreenHeight();
  155. void BeginDrawing();
  156. void EndDrawing();
  157. void ClearBackground(Color color);
  158. void InitWindow(int argc, char** argv, int width, int height, const char* title);
  159. void DrawRectangle(float x, float y, float width, float height, Color color = Color(255, 255, 255, 255));
  160. Texture LoadTexture(const char* filename);
  161. void DrawTexture(Texture texture, float x, float y, float scale, Color tint = Color(255, 255, 255, 255));
  162. void DrawTexturePro(Texture texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint = Color(255, 255, 255, 255));
  163. void UnloadTexture(Texture texture);
  164. int WindowShouldClose();
  165. void CloseWindow();
  166. void PollWindowEvents();
  167. float GetFrameTime();
  168. float GetTime();
  169. int IsKeyPressed(int key);
  170. int IsKeyDown(int key);
  171. void UpdateInput();
  172. }
  173. }