rubygl 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile.lock +2 -0
  3. data/README.md +1 -1
  4. data/Rakefile +17 -9
  5. data/bin/ffi_code_gen.rb +11 -3
  6. data/ext/macosx/RubyGL.so +0 -0
  7. data/ext/macosx/SDL2.framework/Headers/SDL.h +163 -0
  8. data/ext/macosx/SDL2.framework/Headers/SDL_assert.h +284 -0
  9. data/ext/macosx/SDL2.framework/Headers/SDL_atomic.h +260 -0
  10. data/ext/macosx/SDL2.framework/Headers/SDL_audio.h +506 -0
  11. data/ext/macosx/SDL2.framework/Headers/SDL_bits.h +97 -0
  12. data/ext/macosx/SDL2.framework/Headers/SDL_blendmode.h +63 -0
  13. data/ext/macosx/SDL2.framework/Headers/SDL_clipboard.h +71 -0
  14. data/ext/macosx/SDL2.framework/Headers/SDL_config.h +55 -0
  15. data/ext/macosx/SDL2.framework/Headers/SDL_config_macosx.h +184 -0
  16. data/ext/macosx/SDL2.framework/Headers/SDL_copying.h +20 -0
  17. data/ext/macosx/SDL2.framework/Headers/SDL_cpuinfo.h +156 -0
  18. data/ext/macosx/SDL2.framework/Headers/SDL_endian.h +239 -0
  19. data/ext/macosx/SDL2.framework/Headers/SDL_error.h +76 -0
  20. data/ext/macosx/SDL2.framework/Headers/SDL_events.h +723 -0
  21. data/ext/macosx/SDL2.framework/Headers/SDL_filesystem.h +136 -0
  22. data/ext/macosx/SDL2.framework/Headers/SDL_gamecontroller.h +316 -0
  23. data/ext/macosx/SDL2.framework/Headers/SDL_gesture.h +87 -0
  24. data/ext/macosx/SDL2.framework/Headers/SDL_haptic.h +1225 -0
  25. data/ext/macosx/SDL2.framework/Headers/SDL_hints.h +517 -0
  26. data/ext/macosx/SDL2.framework/Headers/SDL_joystick.h +253 -0
  27. data/ext/macosx/SDL2.framework/Headers/SDL_keyboard.h +217 -0
  28. data/ext/macosx/SDL2.framework/Headers/SDL_keycode.h +341 -0
  29. data/ext/macosx/SDL2.framework/Headers/SDL_loadso.h +81 -0
  30. data/ext/macosx/SDL2.framework/Headers/SDL_log.h +211 -0
  31. data/ext/macosx/SDL2.framework/Headers/SDL_main.h +155 -0
  32. data/ext/macosx/SDL2.framework/Headers/SDL_messagebox.h +144 -0
  33. data/ext/macosx/SDL2.framework/Headers/SDL_mouse.h +224 -0
  34. data/ext/macosx/SDL2.framework/Headers/SDL_mutex.h +251 -0
  35. data/ext/macosx/SDL2.framework/Headers/SDL_name.h +33 -0
  36. data/ext/macosx/SDL2.framework/Headers/SDL_opengl.h +11126 -0
  37. data/ext/macosx/SDL2.framework/Headers/SDL_opengles.h +38 -0
  38. data/ext/macosx/SDL2.framework/Headers/SDL_opengles2.h +2790 -0
  39. data/ext/macosx/SDL2.framework/Headers/SDL_pixels.h +429 -0
  40. data/ext/macosx/SDL2.framework/Headers/SDL_platform.h +164 -0
  41. data/ext/macosx/SDL2.framework/Headers/SDL_power.h +75 -0
  42. data/ext/macosx/SDL2.framework/Headers/SDL_quit.h +58 -0
  43. data/ext/macosx/SDL2.framework/Headers/SDL_rect.h +138 -0
  44. data/ext/macosx/SDL2.framework/Headers/SDL_render.h +870 -0
  45. data/ext/macosx/SDL2.framework/Headers/SDL_revision.h +2 -0
  46. data/ext/macosx/SDL2.framework/Headers/SDL_rwops.h +232 -0
  47. data/ext/macosx/SDL2.framework/Headers/SDL_scancode.h +401 -0
  48. data/ext/macosx/SDL2.framework/Headers/SDL_shape.h +143 -0
  49. data/ext/macosx/SDL2.framework/Headers/SDL_stdinc.h +405 -0
  50. data/ext/macosx/SDL2.framework/Headers/SDL_surface.h +503 -0
  51. data/ext/macosx/SDL2.framework/Headers/SDL_system.h +191 -0
  52. data/ext/macosx/SDL2.framework/Headers/SDL_syswm.h +272 -0
  53. data/ext/macosx/SDL2.framework/Headers/SDL_thread.h +287 -0
  54. data/ext/macosx/SDL2.framework/Headers/SDL_timer.h +115 -0
  55. data/ext/macosx/SDL2.framework/Headers/SDL_touch.h +86 -0
  56. data/ext/macosx/SDL2.framework/Headers/SDL_types.h +29 -0
  57. data/ext/macosx/SDL2.framework/Headers/SDL_version.h +162 -0
  58. data/ext/macosx/SDL2.framework/Headers/SDL_video.h +979 -0
  59. data/ext/macosx/SDL2.framework/Headers/begin_code.h +140 -0
  60. data/ext/macosx/SDL2.framework/Headers/close_code.h +37 -0
  61. data/ext/macosx/SDL2.framework/Resources/Info.plist +42 -0
  62. data/ext/macosx/SDL2.framework/SDL2 +0 -0
  63. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL.h +163 -0
  64. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_assert.h +284 -0
  65. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_atomic.h +260 -0
  66. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_audio.h +506 -0
  67. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_bits.h +97 -0
  68. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_blendmode.h +63 -0
  69. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_clipboard.h +71 -0
  70. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_config.h +55 -0
  71. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h +184 -0
  72. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_copying.h +20 -0
  73. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h +156 -0
  74. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_endian.h +239 -0
  75. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_error.h +76 -0
  76. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_events.h +723 -0
  77. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_filesystem.h +136 -0
  78. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h +316 -0
  79. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_gesture.h +87 -0
  80. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_haptic.h +1225 -0
  81. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_hints.h +517 -0
  82. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_joystick.h +253 -0
  83. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_keyboard.h +217 -0
  84. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_keycode.h +341 -0
  85. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_loadso.h +81 -0
  86. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_log.h +211 -0
  87. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_main.h +155 -0
  88. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_messagebox.h +144 -0
  89. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_mouse.h +224 -0
  90. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_mutex.h +251 -0
  91. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_name.h +33 -0
  92. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengl.h +11126 -0
  93. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengles.h +38 -0
  94. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengles2.h +2790 -0
  95. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_pixels.h +429 -0
  96. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_platform.h +164 -0
  97. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_power.h +75 -0
  98. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_quit.h +58 -0
  99. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_rect.h +138 -0
  100. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_render.h +870 -0
  101. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_revision.h +2 -0
  102. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_rwops.h +232 -0
  103. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_scancode.h +401 -0
  104. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_shape.h +143 -0
  105. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_stdinc.h +405 -0
  106. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_surface.h +503 -0
  107. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_system.h +191 -0
  108. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_syswm.h +272 -0
  109. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_thread.h +287 -0
  110. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_timer.h +115 -0
  111. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_touch.h +86 -0
  112. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_types.h +29 -0
  113. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_version.h +162 -0
  114. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_video.h +979 -0
  115. data/ext/macosx/SDL2.framework/Versions/A/Headers/begin_code.h +140 -0
  116. data/ext/macosx/SDL2.framework/Versions/A/Headers/close_code.h +37 -0
  117. data/ext/macosx/SDL2.framework/Versions/A/Resources/Info.plist +42 -0
  118. data/ext/macosx/SDL2.framework/Versions/A/SDL2 +0 -0
  119. data/ext/macosx/SDL2.framework/Versions/A/_CodeSignature/CodeResources +331 -0
  120. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL.h +163 -0
  121. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_assert.h +284 -0
  122. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_atomic.h +260 -0
  123. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_audio.h +506 -0
  124. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_bits.h +97 -0
  125. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_blendmode.h +63 -0
  126. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_clipboard.h +71 -0
  127. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_config.h +55 -0
  128. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_config_macosx.h +184 -0
  129. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_copying.h +20 -0
  130. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_cpuinfo.h +156 -0
  131. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_endian.h +239 -0
  132. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_error.h +76 -0
  133. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_events.h +723 -0
  134. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_filesystem.h +136 -0
  135. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_gamecontroller.h +316 -0
  136. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_gesture.h +87 -0
  137. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_haptic.h +1225 -0
  138. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_hints.h +517 -0
  139. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_joystick.h +253 -0
  140. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_keyboard.h +217 -0
  141. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_keycode.h +341 -0
  142. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_loadso.h +81 -0
  143. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_log.h +211 -0
  144. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_main.h +155 -0
  145. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_messagebox.h +144 -0
  146. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_mouse.h +224 -0
  147. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_mutex.h +251 -0
  148. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_name.h +33 -0
  149. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengl.h +11126 -0
  150. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengles.h +38 -0
  151. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengles2.h +2790 -0
  152. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_pixels.h +429 -0
  153. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_platform.h +164 -0
  154. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_power.h +75 -0
  155. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_quit.h +58 -0
  156. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_rect.h +138 -0
  157. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_render.h +870 -0
  158. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_revision.h +2 -0
  159. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_rwops.h +232 -0
  160. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_scancode.h +401 -0
  161. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_shape.h +143 -0
  162. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_stdinc.h +405 -0
  163. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_surface.h +503 -0
  164. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_system.h +191 -0
  165. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_syswm.h +272 -0
  166. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_thread.h +287 -0
  167. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_timer.h +115 -0
  168. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_touch.h +86 -0
  169. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_types.h +29 -0
  170. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_version.h +162 -0
  171. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_video.h +979 -0
  172. data/ext/macosx/SDL2.framework/Versions/Current/Headers/begin_code.h +140 -0
  173. data/ext/macosx/SDL2.framework/Versions/Current/Headers/close_code.h +37 -0
  174. data/ext/macosx/SDL2.framework/Versions/Current/Resources/Info.plist +42 -0
  175. data/ext/macosx/SDL2.framework/Versions/Current/SDL2 +0 -0
  176. data/ext/macosx/SDL2.framework/Versions/Current/_CodeSignature/CodeResources +331 -0
  177. data/ext/windows/RubyGL.so +0 -0
  178. data/lib/rubygl/native/opengl.rb +1052 -1044
  179. data/lib/rubygl/setup.rb +7 -4
  180. data/lib/rubygl.rb +12 -4
  181. data/rubygl.gemspec +3 -2
  182. metadata +174 -3
@@ -0,0 +1,143 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ #ifndef _SDL_shape_h
23
+ #define _SDL_shape_h
24
+
25
+ #include "SDL_stdinc.h"
26
+ #include "SDL_pixels.h"
27
+ #include "SDL_rect.h"
28
+ #include "SDL_surface.h"
29
+ #include "SDL_video.h"
30
+
31
+ #include "begin_code.h"
32
+ /* Set up for C function definitions, even when using C++ */
33
+ #ifdef __cplusplus
34
+ extern "C" {
35
+ #endif
36
+
37
+ /** \file SDL_shape.h
38
+ *
39
+ * Header file for the shaped window API.
40
+ */
41
+
42
+ #define SDL_NONSHAPEABLE_WINDOW -1
43
+ #define SDL_INVALID_SHAPE_ARGUMENT -2
44
+ #define SDL_WINDOW_LACKS_SHAPE -3
45
+
46
+ /**
47
+ * \brief Create a window that can be shaped with the specified position, dimensions, and flags.
48
+ *
49
+ * \param title The title of the window, in UTF-8 encoding.
50
+ * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or
51
+ * ::SDL_WINDOWPOS_UNDEFINED.
52
+ * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or
53
+ * ::SDL_WINDOWPOS_UNDEFINED.
54
+ * \param w The width of the window.
55
+ * \param h The height of the window.
56
+ * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following:
57
+ * ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,
58
+ * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE,
59
+ * ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,
60
+ * ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset.
61
+ *
62
+ * \return The window created, or NULL if window creation failed.
63
+ *
64
+ * \sa SDL_DestroyWindow()
65
+ */
66
+ extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags);
67
+
68
+ /**
69
+ * \brief Return whether the given window is a shaped window.
70
+ *
71
+ * \param window The window to query for being shaped.
72
+ *
73
+ * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL.
74
+ * \sa SDL_CreateShapedWindow
75
+ */
76
+ extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window);
77
+
78
+ /** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */
79
+ typedef enum {
80
+ /** \brief The default mode, a binarized alpha cutoff of 1. */
81
+ ShapeModeDefault,
82
+ /** \brief A binarized alpha cutoff with a given integer value. */
83
+ ShapeModeBinarizeAlpha,
84
+ /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */
85
+ ShapeModeReverseBinarizeAlpha,
86
+ /** \brief A color key is applied. */
87
+ ShapeModeColorKey
88
+ } WindowShapeMode;
89
+
90
+ #define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha)
91
+
92
+ /** \brief A union containing parameters for shaped windows. */
93
+ typedef union {
94
+ /** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */
95
+ Uint8 binarizationCutoff;
96
+ SDL_Color colorKey;
97
+ } SDL_WindowShapeParams;
98
+
99
+ /** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */
100
+ typedef struct SDL_WindowShapeMode {
101
+ /** \brief The mode of these window-shape parameters. */
102
+ WindowShapeMode mode;
103
+ /** \brief Window-shape parameters. */
104
+ SDL_WindowShapeParams parameters;
105
+ } SDL_WindowShapeMode;
106
+
107
+ /**
108
+ * \brief Set the shape and parameters of a shaped window.
109
+ *
110
+ * \param window The shaped window whose parameters should be set.
111
+ * \param shape A surface encoding the desired shape for the window.
112
+ * \param shape_mode The parameters to set for the shaped window.
113
+ *
114
+ * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW
115
+ * if the SDL_Window* given does not reference a valid shaped window.
116
+ *
117
+ * \sa SDL_WindowShapeMode
118
+ * \sa SDL_GetShapedWindowMode.
119
+ */
120
+ extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode);
121
+
122
+ /**
123
+ * \brief Get the shape parameters of a shaped window.
124
+ *
125
+ * \param window The shaped window whose parameters should be retrieved.
126
+ * \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape.
127
+ *
128
+ * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode
129
+ * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if
130
+ * the SDL_Window* given is a shapeable window currently lacking a shape.
131
+ *
132
+ * \sa SDL_WindowShapeMode
133
+ * \sa SDL_SetWindowShape
134
+ */
135
+ extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode);
136
+
137
+ /* Ends C function definitions when using C++ */
138
+ #ifdef __cplusplus
139
+ }
140
+ #endif
141
+ #include "close_code.h"
142
+
143
+ #endif /* _SDL_shape_h */
@@ -0,0 +1,405 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ /**
23
+ * \file SDL_stdinc.h
24
+ *
25
+ * This is a general header that includes C language support.
26
+ */
27
+
28
+ #ifndef _SDL_stdinc_h
29
+ #define _SDL_stdinc_h
30
+
31
+ #include "SDL_config.h"
32
+
33
+ #ifdef HAVE_SYS_TYPES_H
34
+ #include <sys/types.h>
35
+ #endif
36
+ #ifdef HAVE_STDIO_H
37
+ #include <stdio.h>
38
+ #endif
39
+ #if defined(STDC_HEADERS)
40
+ # include <stdlib.h>
41
+ # include <stddef.h>
42
+ # include <stdarg.h>
43
+ #else
44
+ # if defined(HAVE_STDLIB_H)
45
+ # include <stdlib.h>
46
+ # elif defined(HAVE_MALLOC_H)
47
+ # include <malloc.h>
48
+ # endif
49
+ # if defined(HAVE_STDDEF_H)
50
+ # include <stddef.h>
51
+ # endif
52
+ # if defined(HAVE_STDARG_H)
53
+ # include <stdarg.h>
54
+ # endif
55
+ #endif
56
+ #ifdef HAVE_STRING_H
57
+ # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
58
+ # include <memory.h>
59
+ # endif
60
+ # include <string.h>
61
+ #endif
62
+ #ifdef HAVE_STRINGS_H
63
+ # include <strings.h>
64
+ #endif
65
+ #if defined(HAVE_INTTYPES_H)
66
+ # include <inttypes.h>
67
+ #elif defined(HAVE_STDINT_H)
68
+ # include <stdint.h>
69
+ #endif
70
+ #ifdef HAVE_CTYPE_H
71
+ # include <ctype.h>
72
+ #endif
73
+ #ifdef HAVE_MATH_H
74
+ # if defined(__WINRT__)
75
+ /* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on
76
+ WinRT. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
77
+ for more information.
78
+ */
79
+ # define _USE_MATH_DEFINES
80
+ # endif
81
+ # include <math.h>
82
+ #endif
83
+ #ifdef HAVE_FLOAT_H
84
+ # include <float.h>
85
+ #endif
86
+ #if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
87
+ # include <iconv.h>
88
+ #endif
89
+
90
+ /**
91
+ * The number of elements in an array.
92
+ */
93
+ #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
94
+ #define SDL_TABLESIZE(table) SDL_arraysize(table)
95
+
96
+ /**
97
+ * \name Cast operators
98
+ *
99
+ * Use proper C++ casts when compiled as C++ to be compatible with the option
100
+ * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above).
101
+ */
102
+ /* @{ */
103
+ #ifdef __cplusplus
104
+ #define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
105
+ #define SDL_static_cast(type, expression) static_cast<type>(expression)
106
+ #define SDL_const_cast(type, expression) const_cast<type>(expression)
107
+ #else
108
+ #define SDL_reinterpret_cast(type, expression) ((type)(expression))
109
+ #define SDL_static_cast(type, expression) ((type)(expression))
110
+ #define SDL_const_cast(type, expression) ((type)(expression))
111
+ #endif
112
+ /* @} *//* Cast operators */
113
+
114
+ /* Define a four character code as a Uint32 */
115
+ #define SDL_FOURCC(A, B, C, D) \
116
+ ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
117
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
118
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
119
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
120
+
121
+ /**
122
+ * \name Basic data types
123
+ */
124
+ /* @{ */
125
+
126
+ typedef enum
127
+ {
128
+ SDL_FALSE = 0,
129
+ SDL_TRUE = 1
130
+ } SDL_bool;
131
+
132
+ /**
133
+ * \brief A signed 8-bit integer type.
134
+ */
135
+ typedef int8_t Sint8;
136
+ /**
137
+ * \brief An unsigned 8-bit integer type.
138
+ */
139
+ typedef uint8_t Uint8;
140
+ /**
141
+ * \brief A signed 16-bit integer type.
142
+ */
143
+ typedef int16_t Sint16;
144
+ /**
145
+ * \brief An unsigned 16-bit integer type.
146
+ */
147
+ typedef uint16_t Uint16;
148
+ /**
149
+ * \brief A signed 32-bit integer type.
150
+ */
151
+ typedef int32_t Sint32;
152
+ /**
153
+ * \brief An unsigned 32-bit integer type.
154
+ */
155
+ typedef uint32_t Uint32;
156
+
157
+ /**
158
+ * \brief A signed 64-bit integer type.
159
+ */
160
+ typedef int64_t Sint64;
161
+ /**
162
+ * \brief An unsigned 64-bit integer type.
163
+ */
164
+ typedef uint64_t Uint64;
165
+
166
+ /* @} *//* Basic data types */
167
+
168
+
169
+ #define SDL_COMPILE_TIME_ASSERT(name, x) \
170
+ typedef int SDL_dummy_ ## name[(x) * 2 - 1]
171
+ /** \cond */
172
+ #ifndef DOXYGEN_SHOULD_IGNORE_THIS
173
+ SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
174
+ SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
175
+ SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
176
+ SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
177
+ SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
178
+ SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
179
+ SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
180
+ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
181
+ #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
182
+ /** \endcond */
183
+
184
+ /* Check to make sure enums are the size of ints, for structure packing.
185
+ For both Watcom C/C++ and Borland C/C++ the compiler option that makes
186
+ enums having the size of an int must be enabled.
187
+ This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11).
188
+ */
189
+
190
+ /** \cond */
191
+ #ifndef DOXYGEN_SHOULD_IGNORE_THIS
192
+ #if !defined(__ANDROID__)
193
+ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
194
+ typedef enum
195
+ {
196
+ DUMMY_ENUM_VALUE
197
+ } SDL_DUMMY_ENUM;
198
+
199
+ SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
200
+ #endif
201
+ #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
202
+ /** \endcond */
203
+
204
+ #include "begin_code.h"
205
+ /* Set up for C function definitions, even when using C++ */
206
+ #ifdef __cplusplus
207
+ extern "C" {
208
+ #endif
209
+
210
+ #if defined(HAVE_ALLOCA) && !defined(alloca)
211
+ # if defined(HAVE_ALLOCA_H)
212
+ # include <alloca.h>
213
+ # elif defined(__GNUC__)
214
+ # define alloca __builtin_alloca
215
+ # elif defined(_MSC_VER)
216
+ # include <malloc.h>
217
+ # define alloca _alloca
218
+ # elif defined(__WATCOMC__)
219
+ # include <malloc.h>
220
+ # elif defined(__BORLANDC__)
221
+ # include <malloc.h>
222
+ # elif defined(__DMC__)
223
+ # include <stdlib.h>
224
+ # elif defined(__AIX__)
225
+ #pragma alloca
226
+ # elif defined(__MRC__)
227
+ void *alloca(unsigned);
228
+ # else
229
+ char *alloca();
230
+ # endif
231
+ #endif
232
+ #ifdef HAVE_ALLOCA
233
+ #define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
234
+ #define SDL_stack_free(data)
235
+ #else
236
+ #define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count))
237
+ #define SDL_stack_free(data) SDL_free(data)
238
+ #endif
239
+
240
+ extern DECLSPEC void *SDLCALL SDL_malloc(size_t size);
241
+ extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
242
+ extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
243
+ extern DECLSPEC void SDLCALL SDL_free(void *mem);
244
+
245
+ extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
246
+ extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
247
+
248
+ extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
249
+
250
+ extern DECLSPEC int SDLCALL SDL_abs(int x);
251
+
252
+ /* !!! FIXME: these have side effects. You probably shouldn't use them. */
253
+ /* !!! FIXME: Maybe we do forceinline functions of SDL_mini, SDL_minf, etc? */
254
+ #define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
255
+ #define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
256
+
257
+ extern DECLSPEC int SDLCALL SDL_isdigit(int x);
258
+ extern DECLSPEC int SDLCALL SDL_isspace(int x);
259
+ extern DECLSPEC int SDLCALL SDL_toupper(int x);
260
+ extern DECLSPEC int SDLCALL SDL_tolower(int x);
261
+
262
+ extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
263
+
264
+ #define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
265
+ #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
266
+
267
+ /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
268
+ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
269
+ {
270
+ #if defined(__GNUC__) && defined(i386)
271
+ int u0, u1, u2;
272
+ __asm__ __volatile__ (
273
+ "cld \n\t"
274
+ "rep ; stosl \n\t"
275
+ : "=&D" (u0), "=&a" (u1), "=&c" (u2)
276
+ : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords))
277
+ : "memory"
278
+ );
279
+ #else
280
+ size_t _n = (dwords + 3) / 4;
281
+ Uint32 *_p = SDL_static_cast(Uint32 *, dst);
282
+ Uint32 _val = (val);
283
+ if (dwords == 0)
284
+ return;
285
+ switch (dwords % 4)
286
+ {
287
+ case 0: do { *_p++ = _val;
288
+ case 3: *_p++ = _val;
289
+ case 2: *_p++ = _val;
290
+ case 1: *_p++ = _val;
291
+ } while ( --_n );
292
+ }
293
+ #endif
294
+ }
295
+
296
+
297
+ extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
298
+
299
+ SDL_FORCE_INLINE void *SDL_memcpy4(void *dst, const void *src, size_t dwords)
300
+ {
301
+ return SDL_memcpy(dst, src, dwords * 4);
302
+ }
303
+
304
+ extern DECLSPEC void *SDLCALL SDL_memmove(void *dst, const void *src, size_t len);
305
+ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
306
+
307
+ extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
308
+ extern DECLSPEC size_t SDLCALL SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen);
309
+ extern DECLSPEC size_t SDLCALL SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen);
310
+
311
+ extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
312
+ extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
313
+ extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(char *dst, const char *src, size_t dst_bytes);
314
+ extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
315
+ extern DECLSPEC char *SDLCALL SDL_strdup(const char *str);
316
+ extern DECLSPEC char *SDLCALL SDL_strrev(char *str);
317
+ extern DECLSPEC char *SDLCALL SDL_strupr(char *str);
318
+ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
319
+ extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
320
+ extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
321
+ extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
322
+
323
+ extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
324
+ extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix);
325
+ extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix);
326
+ extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix);
327
+ extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix);
328
+ extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix);
329
+
330
+ extern DECLSPEC int SDLCALL SDL_atoi(const char *str);
331
+ extern DECLSPEC double SDLCALL SDL_atof(const char *str);
332
+ extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base);
333
+ extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base);
334
+ extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base);
335
+ extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base);
336
+ extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp);
337
+
338
+ extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
339
+ extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
340
+ extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
341
+ extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len);
342
+
343
+ extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
344
+ extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap);
345
+ extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
346
+ extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);
347
+
348
+ #ifndef HAVE_M_PI
349
+ #ifndef M_PI
350
+ #define M_PI 3.14159265358979323846264338327950288 /* pi */
351
+ #endif
352
+ #endif
353
+
354
+ extern DECLSPEC double SDLCALL SDL_acos(double x);
355
+ extern DECLSPEC double SDLCALL SDL_asin(double x);
356
+ extern DECLSPEC double SDLCALL SDL_atan(double x);
357
+ extern DECLSPEC double SDLCALL SDL_atan2(double x, double y);
358
+ extern DECLSPEC double SDLCALL SDL_ceil(double x);
359
+ extern DECLSPEC double SDLCALL SDL_copysign(double x, double y);
360
+ extern DECLSPEC double SDLCALL SDL_cos(double x);
361
+ extern DECLSPEC float SDLCALL SDL_cosf(float x);
362
+ extern DECLSPEC double SDLCALL SDL_fabs(double x);
363
+ extern DECLSPEC double SDLCALL SDL_floor(double x);
364
+ extern DECLSPEC double SDLCALL SDL_log(double x);
365
+ extern DECLSPEC double SDLCALL SDL_pow(double x, double y);
366
+ extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n);
367
+ extern DECLSPEC double SDLCALL SDL_sin(double x);
368
+ extern DECLSPEC float SDLCALL SDL_sinf(float x);
369
+ extern DECLSPEC double SDLCALL SDL_sqrt(double x);
370
+
371
+ /* The SDL implementation of iconv() returns these error codes */
372
+ #define SDL_ICONV_ERROR (size_t)-1
373
+ #define SDL_ICONV_E2BIG (size_t)-2
374
+ #define SDL_ICONV_EILSEQ (size_t)-3
375
+ #define SDL_ICONV_EINVAL (size_t)-4
376
+
377
+ /* SDL_iconv_* are now always real symbols/types, not macros or inlined. */
378
+ typedef struct _SDL_iconv_t *SDL_iconv_t;
379
+ extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
380
+ const char *fromcode);
381
+ extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
382
+ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
383
+ size_t * inbytesleft, char **outbuf,
384
+ size_t * outbytesleft);
385
+ /**
386
+ * This function converts a string between encodings in one pass, returning a
387
+ * string that must be freed with SDL_free() or NULL on error.
388
+ */
389
+ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
390
+ const char *fromcode,
391
+ const char *inbuf,
392
+ size_t inbytesleft);
393
+ #define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
394
+ #define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
395
+ #define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
396
+
397
+ /* Ends C function definitions when using C++ */
398
+ #ifdef __cplusplus
399
+ }
400
+ #endif
401
+ #include "close_code.h"
402
+
403
+ #endif /* _SDL_stdinc_h */
404
+
405
+ /* vi: set ts=4 sw=4 expandtab: */