DISTRHO Plugin Framework
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.

112 lines
2.6KB

  1. /*
  2. * DISTRHO Plugin Framework (DPF)
  3. * Copyright (C) 2012-2014 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any purpose with
  6. * or without fee is hereby granted, provided that the above copyright notice and this
  7. * permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
  10. * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
  11. * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  12. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
  13. * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  14. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #ifndef DGL_BASE_HPP_INCLUDED
  17. #define DGL_BASE_HPP_INCLUDED
  18. #include "../distrho/extra/d_leakdetector.hpp"
  19. // -----------------------------------------------------------------------
  20. /* Define namespace */
  21. #ifndef DGL_NAMESPACE
  22. # define DGL_NAMESPACE DGL
  23. #endif
  24. #define START_NAMESPACE_DGL namespace DGL_NAMESPACE {
  25. #define END_NAMESPACE_DGL }
  26. #define USE_NAMESPACE_DGL using namespace DGL_NAMESPACE;
  27. /* GL includes */
  28. #ifdef DISTRHO_OS_MAC
  29. # include <OpenGL/gl.h>
  30. #else
  31. # include <GL/gl.h>
  32. #endif
  33. /* missing GL defines */
  34. #if defined(GL_BGR_EXT) && ! defined(GL_BGR)
  35. # define GL_BGR GL_BGR_EXT
  36. #endif
  37. #if defined(GL_BGRA_EXT) && ! defined(GL_BGRA)
  38. # define GL_BGRA GL_BGRA_EXT
  39. #endif
  40. #ifndef GL_CLAMP_TO_BORDER
  41. # define GL_CLAMP_TO_BORDER 0x812D
  42. #endif
  43. START_NAMESPACE_DGL
  44. // -----------------------------------------------------------------------
  45. /*
  46. * Convenience symbols for ASCII control characters.
  47. */
  48. enum Char {
  49. CHAR_BACKSPACE = 0x08,
  50. CHAR_ESCAPE = 0x1B,
  51. CHAR_DELETE = 0x7F
  52. };
  53. /*
  54. * Special (non-Unicode) keyboard keys.
  55. */
  56. enum Key {
  57. KEY_F1 = 1,
  58. KEY_F2,
  59. KEY_F3,
  60. KEY_F4,
  61. KEY_F5,
  62. KEY_F6,
  63. KEY_F7,
  64. KEY_F8,
  65. KEY_F9,
  66. KEY_F10,
  67. KEY_F11,
  68. KEY_F12,
  69. KEY_LEFT,
  70. KEY_UP,
  71. KEY_RIGHT,
  72. KEY_DOWN,
  73. KEY_PAGE_UP,
  74. KEY_PAGE_DOWN,
  75. KEY_HOME,
  76. KEY_END,
  77. KEY_INSERT,
  78. KEY_SHIFT,
  79. KEY_CTRL,
  80. KEY_ALT,
  81. KEY_SUPER
  82. };
  83. /*
  84. * Keyboard modifier flags.
  85. */
  86. enum Modifier {
  87. MODIFIER_SHIFT = 1 << 0, /**< Shift key */
  88. MODIFIER_CTRL = 1 << 1, /**< Control key */
  89. MODIFIER_ALT = 1 << 2, /**< Alt/Option key */
  90. MODIFIER_SUPER = 1 << 3 /**< Mod4/Command/Windows key */
  91. };
  92. // -----------------------------------------------------------------------
  93. END_NAMESPACE_DGL
  94. #endif // DGL_BASE_HPP_INCLUDED