1 /** 2 * GLFW3 types. 3 * See_Also: 4 * $(LINK http://www.glfw.org/docs/latest/modules.html) 5 */ 6 module glfw3d.glfw3.type; 7 8 enum { 9 GLFW_VERSION_MAJOR = 3, 10 GLFW_VERSION_MINOR = 2, 11 GLFW_VERSION_RELEASE = 1 12 } 13 14 enum { 15 GLFW_TRUE = 1, 16 GLFW_FALSE = 0 17 } 18 19 enum { 20 GLFW_RELEASE = 0, 21 GLFW_PRESS = 1, 22 GLFW_REPEAT = 2 23 } 24 25 enum { 26 /* The unknown key */ 27 GLFW_KEY_UNKNOWN = -1, 28 /* Printable keys */ 29 GLFW_KEY_SPACE = 32, 30 GLFW_KEY_APOSTROPHE = 39, /* ' */ 31 GLFW_KEY_COMMA = 44, /* , */ 32 GLFW_KEY_MINUS = 45, /* - */ 33 GLFW_KEY_PERIOD = 46, /* . */ 34 GLFW_KEY_SLASH = 47, /* / */ 35 GLFW_KEY_0 = 48, 36 GLFW_KEY_1 = 49, 37 GLFW_KEY_2 = 50, 38 GLFW_KEY_3 = 51, 39 GLFW_KEY_4 = 52, 40 GLFW_KEY_5 = 53, 41 GLFW_KEY_6 = 54, 42 GLFW_KEY_7 = 55, 43 GLFW_KEY_8 = 56, 44 GLFW_KEY_9 = 57, 45 GLFW_KEY_SEMICOLON = 59, /* ; */ 46 GLFW_KEY_EQUAL = 61, /* = */ 47 GLFW_KEY_A = 65, 48 GLFW_KEY_B = 66, 49 GLFW_KEY_C = 67, 50 GLFW_KEY_D = 68, 51 GLFW_KEY_E = 69, 52 GLFW_KEY_F = 70, 53 GLFW_KEY_G = 71, 54 GLFW_KEY_H = 72, 55 GLFW_KEY_I = 73, 56 GLFW_KEY_J = 74, 57 GLFW_KEY_K = 75, 58 GLFW_KEY_L = 76, 59 GLFW_KEY_M = 77, 60 GLFW_KEY_N = 78, 61 GLFW_KEY_O = 79, 62 GLFW_KEY_P = 80, 63 GLFW_KEY_Q = 81, 64 GLFW_KEY_R = 82, 65 GLFW_KEY_S = 83, 66 GLFW_KEY_T = 84, 67 GLFW_KEY_U = 85, 68 GLFW_KEY_V = 86, 69 GLFW_KEY_W = 87, 70 GLFW_KEY_X = 88, 71 GLFW_KEY_Y = 89, 72 GLFW_KEY_Z = 90, 73 GLFW_KEY_LEFT_BRACKET = 91, /* [ */ 74 GLFW_KEY_BACKSLASH = 92, /* \ */ 75 GLFW_KEY_RIGHT_BRACKET = 93, /* ] */ 76 GLFW_KEY_GRAVE_ACCENT = 96, /* ` */ 77 GLFW_KEY_WORLD_1 = 161, /* non-US #1 */ 78 GLFW_KEY_WORLD_2 = 162, /* non-US #2 */ 79 80 /* Function keys */ 81 GLFW_KEY_ESCAPE = 256, 82 GLFW_KEY_ENTER = 257, 83 GLFW_KEY_TAB = 258, 84 GLFW_KEY_BACKSPACE = 259, 85 GLFW_KEY_INSERT = 260, 86 GLFW_KEY_DELETE = 261, 87 GLFW_KEY_RIGHT = 262, 88 GLFW_KEY_LEFT = 263, 89 GLFW_KEY_DOWN = 264, 90 GLFW_KEY_UP = 265, 91 GLFW_KEY_PAGE_UP = 266, 92 GLFW_KEY_PAGE_DOWN = 267, 93 GLFW_KEY_HOME = 268, 94 GLFW_KEY_END = 269, 95 GLFW_KEY_CAPS_LOCK = 280, 96 GLFW_KEY_SCROLL_LOCK = 281, 97 GLFW_KEY_NUM_LOCK = 282, 98 GLFW_KEY_PRINT_SCREEN = 283, 99 GLFW_KEY_PAUSE = 284, 100 GLFW_KEY_F1 = 290, 101 GLFW_KEY_F2 = 291, 102 GLFW_KEY_F3 = 292, 103 GLFW_KEY_F4 = 293, 104 GLFW_KEY_F5 = 294, 105 GLFW_KEY_F6 = 295, 106 GLFW_KEY_F7 = 296, 107 GLFW_KEY_F8 = 297, 108 GLFW_KEY_F9 = 298, 109 GLFW_KEY_F10 = 299, 110 GLFW_KEY_F11 = 300, 111 GLFW_KEY_F12 = 301, 112 GLFW_KEY_F13 = 302, 113 GLFW_KEY_F14 = 303, 114 GLFW_KEY_F15 = 304, 115 GLFW_KEY_F16 = 305, 116 GLFW_KEY_F17 = 306, 117 GLFW_KEY_F18 = 307, 118 GLFW_KEY_F19 = 308, 119 GLFW_KEY_F20 = 309, 120 GLFW_KEY_F21 = 310, 121 GLFW_KEY_F22 = 311, 122 GLFW_KEY_F23 = 312, 123 GLFW_KEY_F24 = 313, 124 GLFW_KEY_F25 = 314, 125 GLFW_KEY_KP_0 = 320, 126 GLFW_KEY_KP_1 = 321, 127 GLFW_KEY_KP_2 = 322, 128 GLFW_KEY_KP_3 = 323, 129 GLFW_KEY_KP_4 = 324, 130 GLFW_KEY_KP_5 = 325, 131 GLFW_KEY_KP_6 = 326, 132 GLFW_KEY_KP_7 = 327, 133 GLFW_KEY_KP_8 = 328, 134 GLFW_KEY_KP_9 = 329, 135 GLFW_KEY_KP_DECIMAL = 330, 136 GLFW_KEY_KP_DIVIDE = 331, 137 GLFW_KEY_KP_MULTIPLY = 332, 138 GLFW_KEY_KP_SUBTRACT = 333, 139 GLFW_KEY_KP_ADD = 334, 140 GLFW_KEY_KP_ENTER = 335, 141 GLFW_KEY_KP_EQUAL = 336, 142 GLFW_KEY_LEFT_SHIFT = 340, 143 GLFW_KEY_LEFT_CONTROL = 341, 144 GLFW_KEY_LEFT_ALT = 342, 145 GLFW_KEY_LEFT_SUPER = 343, 146 GLFW_KEY_RIGHT_SHIFT = 344, 147 GLFW_KEY_RIGHT_CONTROL = 345, 148 GLFW_KEY_RIGHT_ALT = 346, 149 GLFW_KEY_RIGHT_SUPER = 347, 150 GLFW_KEY_MENU = 348, 151 GLFW_KEY_LAST = GLFW_KEY_MENU 152 } 153 154 enum { 155 GLFW_MOD_SHIFT = 0x0001, 156 GLFW_MOD_CONTROL = 0x0002, 157 GLFW_MOD_ALT = 0x0004, 158 GLFW_MOD_SUPER = 0x0008, 159 } 160 161 enum { 162 GLFW_MOUSE_BUTTON_1 = 0, 163 GLFW_MOUSE_BUTTON_2 = 1, 164 GLFW_MOUSE_BUTTON_3 = 2, 165 GLFW_MOUSE_BUTTON_4 = 3, 166 GLFW_MOUSE_BUTTON_5 = 4, 167 GLFW_MOUSE_BUTTON_6 = 5, 168 GLFW_MOUSE_BUTTON_7 = 6, 169 GLFW_MOUSE_BUTTON_8 = 7, 170 GLFW_MOUSE_BUTTON_LAST = GLFW_MOUSE_BUTTON_8, 171 GLFW_MOUSE_BUTTON_LEFT = GLFW_MOUSE_BUTTON_1, 172 GLFW_MOUSE_BUTTON_RIGHT = GLFW_MOUSE_BUTTON_2, 173 GLFW_MOUSE_BUTTON_MIDDLE = GLFW_MOUSE_BUTTON_3 174 } 175 176 enum { 177 GLFW_JOYSTICK_1 = 0, 178 GLFW_JOYSTICK_2 = 1, 179 GLFW_JOYSTICK_3 = 2, 180 GLFW_JOYSTICK_4 = 3, 181 GLFW_JOYSTICK_5 = 4, 182 GLFW_JOYSTICK_6 = 5, 183 GLFW_JOYSTICK_7 = 6, 184 GLFW_JOYSTICK_8 = 7, 185 GLFW_JOYSTICK_9 = 8, 186 GLFW_JOYSTICK_10 = 9, 187 GLFW_JOYSTICK_11 = 10, 188 GLFW_JOYSTICK_12 = 11, 189 GLFW_JOYSTICK_13 = 12, 190 GLFW_JOYSTICK_14 = 13, 191 GLFW_JOYSTICK_15 = 14, 192 GLFW_JOYSTICK_16 = 15, 193 GLFW_JOYSTICK_LAST = GLFW_JOYSTICK_16 194 } 195 196 enum { 197 GLFW_NOT_INITIALIZED = 0x00010001, 198 GLFW_NO_CURRENT_CONTEXT = 0x00010002, 199 GLFW_INVALID_ENUM = 0x00010003, 200 GLFW_INVALID_VALUE = 0x00010004, 201 GLFW_OUT_OF_MEMORY = 0x00010005, 202 GLFW_API_UNAVAILABLE = 0x00010006, 203 GLFW_VERSION_UNAVAILABLE = 0x00010007, 204 GLFW_PLATFORM_ERROR = 0x00010008, 205 GLFW_FORMAT_UNAVAILABLE = 0x00010009, 206 GLFW_NO_WINDOW_CONTEXT = 0x0001000A 207 } 208 209 enum { 210 GLFW_FOCUSED = 0x00020001, 211 GLFW_ICONIFIED = 0x00020002, 212 GLFW_RESIZABLE = 0x00020003, 213 GLFW_VISIBLE = 0x00020004, 214 GLFW_DECORATED = 0x00020005, 215 GLFW_AUTO_ICONIFY = 0x00020006, 216 GLFW_FLOATING = 0x00020007, 217 GLFW_MAXIMIZED = 0x00020008, 218 } 219 220 enum { 221 GLFW_RED_BITS = 0x00021001, 222 GLFW_GREEN_BITS = 0x00021002, 223 GLFW_BLUE_BITS = 0x00021003, 224 GLFW_ALPHA_BITS = 0x00021004, 225 GLFW_DEPTH_BITS = 0x00021005, 226 GLFW_STENCIL_BITS = 0x00021006, 227 GLFW_ACCUM_RED_BITS = 0x00021007, 228 GLFW_ACCUM_GREEN_BITS = 0x00021008, 229 GLFW_ACCUM_BLUE_BITS = 0x00021009, 230 GLFW_ACCUM_ALPHA_BITS = 0x0002100A, 231 GLFW_AUX_BUFFERS = 0x0002100B, 232 GLFW_STEREO = 0x0002100C, 233 GLFW_SAMPLES = 0x0002100D, 234 GLFW_SRGB_CAPABLE = 0x0002100E, 235 GLFW_REFRESH_RATE = 0x0002100F, 236 GLFW_DOUBLEBUFFER = 0x00021010, 237 } 238 239 enum { 240 GLFW_CLIENT_API = 0x00022001, 241 GLFW_CONTEXT_VERSION_MAJOR = 0x00022002, 242 GLFW_CONTEXT_VERSION_MINOR = 0x00022003, 243 GLFW_CONTEXT_REVISION = 0x00022004, 244 GLFW_CONTEXT_ROBUSTNESS = 0x00022005, 245 GLFW_OPENGL_FORWARD_COMPAT = 0x00022006, 246 GLFW_OPENGL_DEBUG_CONTEXT = 0x00022007, 247 GLFW_OPENGL_PROFILE = 0x00022008, 248 GLFW_CONTEXT_RELEASE_BEHAVIOR = 0x00022009, 249 GLFW_CONTEXT_NO_ERROR = 0x0002200A, 250 GLFW_CONTEXT_CREATION_API = 0x0002200B, 251 } 252 253 enum { 254 GLFW_NO_API = 0, 255 GLFW_OPENGL_API = 0x00030001, 256 GLFW_OPENGL_ES_API = 0x00030002, 257 } 258 259 enum { 260 GLFW_NO_ROBUSTNESS = 0, 261 GLFW_NO_RESET_NOTIFICATION = 0x00031001, 262 GLFW_LOSE_CONTEXT_ON_RESET = 0x00031002, 263 } 264 265 enum { 266 GLFW_OPENGL_ANY_PROFILE = 0, 267 GLFW_OPENGL_CORE_PROFILE = 0x00032001, 268 GLFW_OPENGL_COMPAT_PROFILE = 0x00032002, 269 } 270 271 enum { 272 GLFW_CURSOR = 0x00033001, 273 GLFW_STICKY_KEYS = 0x00033002, 274 GLFW_STICKY_MOUSE_BUTTONS = 0x00033003, 275 } 276 277 enum { 278 GLFW_CURSOR_NORMAL = 0x00034001, 279 GLFW_CURSOR_HIDDEN = 0x00034002, 280 GLFW_CURSOR_DISABLED = 0x00034003, 281 } 282 283 enum { 284 GLFW_ANY_RELEASE_BEHAVIOR = 0, 285 GLFW_RELEASE_BEHAVIOR_FLUSH = 0x00035001, 286 GLFW_RELEASE_BEHAVIOR_NONE = 0x00035002, 287 } 288 289 enum { 290 GLFW_NATIVE_CONTEXT_API = 0x00036001, 291 GLFW_EGL_CONTEXT_API = 0x00036002 292 } 293 294 enum { 295 GLFW_ARROW_CURSOR = 0x00036001, 296 GLFW_IBEAM_CURSOR = 0x00036002, 297 GLFW_CROSSHAIR_CURSOR = 0x00036003, 298 GLFW_HAND_CURSOR = 0x00036004, 299 GLFW_HRESIZE_CURSOR = 0x00036005, 300 GLFW_VRESIZE_CURSOR = 0x00036006 301 } 302 303 enum { 304 GLFW_CONNECTED = 0x00040001, 305 GLFW_DISCONNECTED = 0x00040002, 306 GLFW_DONT_CARE = -1 307 } 308 309 extern(C) nothrow { 310 alias GLFWglproc = void function(); 311 alias GLFWvkproc = void function(); 312 } 313 314 struct GLFWmonitor; 315 struct GLFWwindow; 316 struct GLFWcursor; 317 318 extern(C) nothrow { 319 alias GLFWerrorfun = void function(int, const(char)*); 320 alias GLFWwindowposfun = void function(GLFWwindow*, int, int); 321 alias GLFWwindowsizefun = void function(GLFWwindow*, int, int); 322 alias GLFWwindowclosefun = void function(GLFWwindow*); 323 alias GLFWwindowrefreshfun = void function(GLFWwindow*); 324 alias GLFWwindowfocusfun = void function(GLFWwindow*, int); 325 alias GLFWwindowiconifyfun = void function(GLFWwindow*, int); 326 alias GLFWframebuffersizefun = void function(GLFWwindow*, int, int); 327 alias GLFWmousebuttonfun = 328 void function(GLFWwindow*,int, int, int); 329 alias GLFWcursorposfun = void function(GLFWwindow*, double, double); 330 alias GLFWcursorenterfun = void function(GLFWwindow*, int); 331 alias GLFWscrollfun = void function(GLFWwindow*, double, double); 332 alias GLFWkeyfun = 333 void function(GLFWwindow*, int, int, int, int); 334 alias GLFWcharfun = void function(GLFWwindow*, uint); 335 alias GLFWcharmodsfun = void function(GLFWwindow*, uint, int); 336 alias GLFWdropfun = void function(GLFWwindow*, int, const(char*)*); 337 alias GLFWmonitorfun = void function(GLFWmonitor*, int); 338 alias GLFWjoystickfun = void function(int, int); 339 } 340 341 struct GLFWvidmode { 342 int width; 343 int height; 344 int redBits; 345 int greenBits; 346 int blueBits; 347 int refreshRate; 348 } 349 350 struct GLFWgammaramp { 351 ushort* red; 352 ushort* green; 353 ushort* blue; 354 uint size; 355 } 356 357 struct GLFWimage { 358 int width; 359 int height; 360 ubyte* pixels; 361 } 362