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,870 @@
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_render.h
24
+ *
25
+ * Header file for SDL 2D rendering functions.
26
+ *
27
+ * This API supports the following features:
28
+ * * single pixel points
29
+ * * single pixel lines
30
+ * * filled rectangles
31
+ * * texture images
32
+ *
33
+ * The primitives may be drawn in opaque, blended, or additive modes.
34
+ *
35
+ * The texture images may be drawn in opaque, blended, or additive modes.
36
+ * They can have an additional color tint or alpha modulation applied to
37
+ * them, and may also be stretched with linear interpolation.
38
+ *
39
+ * This API is designed to accelerate simple 2D operations. You may
40
+ * want more functionality such as polygons and particle effects and
41
+ * in that case you should use SDL's OpenGL/Direct3D support or one
42
+ * of the many good 3D engines.
43
+ *
44
+ * These functions must be called from the main thread.
45
+ * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995
46
+ */
47
+
48
+ #ifndef _SDL_render_h
49
+ #define _SDL_render_h
50
+
51
+ #include "SDL_stdinc.h"
52
+ #include "SDL_rect.h"
53
+ #include "SDL_video.h"
54
+
55
+ #include "begin_code.h"
56
+ /* Set up for C function definitions, even when using C++ */
57
+ #ifdef __cplusplus
58
+ extern "C" {
59
+ #endif
60
+
61
+ /**
62
+ * \brief Flags used when creating a rendering context
63
+ */
64
+ typedef enum
65
+ {
66
+ SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */
67
+ SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware
68
+ acceleration */
69
+ SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized
70
+ with the refresh rate */
71
+ SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports
72
+ rendering to texture */
73
+ } SDL_RendererFlags;
74
+
75
+ /**
76
+ * \brief Information on the capabilities of a render driver or context.
77
+ */
78
+ typedef struct SDL_RendererInfo
79
+ {
80
+ const char *name; /**< The name of the renderer */
81
+ Uint32 flags; /**< Supported ::SDL_RendererFlags */
82
+ Uint32 num_texture_formats; /**< The number of available texture formats */
83
+ Uint32 texture_formats[16]; /**< The available texture formats */
84
+ int max_texture_width; /**< The maximimum texture width */
85
+ int max_texture_height; /**< The maximimum texture height */
86
+ } SDL_RendererInfo;
87
+
88
+ /**
89
+ * \brief The access pattern allowed for a texture.
90
+ */
91
+ typedef enum
92
+ {
93
+ SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */
94
+ SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */
95
+ SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */
96
+ } SDL_TextureAccess;
97
+
98
+ /**
99
+ * \brief The texture channel modulation used in SDL_RenderCopy().
100
+ */
101
+ typedef enum
102
+ {
103
+ SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */
104
+ SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */
105
+ SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */
106
+ } SDL_TextureModulate;
107
+
108
+ /**
109
+ * \brief Flip constants for SDL_RenderCopyEx
110
+ */
111
+ typedef enum
112
+ {
113
+ SDL_FLIP_NONE = 0x00000000, /**< Do not flip */
114
+ SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */
115
+ SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */
116
+ } SDL_RendererFlip;
117
+
118
+ /**
119
+ * \brief A structure representing rendering state
120
+ */
121
+ struct SDL_Renderer;
122
+ typedef struct SDL_Renderer SDL_Renderer;
123
+
124
+ /**
125
+ * \brief An efficient driver-specific representation of pixel data
126
+ */
127
+ struct SDL_Texture;
128
+ typedef struct SDL_Texture SDL_Texture;
129
+
130
+
131
+ /* Function prototypes */
132
+
133
+ /**
134
+ * \brief Get the number of 2D rendering drivers available for the current
135
+ * display.
136
+ *
137
+ * A render driver is a set of code that handles rendering and texture
138
+ * management on a particular display. Normally there is only one, but
139
+ * some drivers may have several available with different capabilities.
140
+ *
141
+ * \sa SDL_GetRenderDriverInfo()
142
+ * \sa SDL_CreateRenderer()
143
+ */
144
+ extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void);
145
+
146
+ /**
147
+ * \brief Get information about a specific 2D rendering driver for the current
148
+ * display.
149
+ *
150
+ * \param index The index of the driver to query information about.
151
+ * \param info A pointer to an SDL_RendererInfo struct to be filled with
152
+ * information on the rendering driver.
153
+ *
154
+ * \return 0 on success, -1 if the index was out of range.
155
+ *
156
+ * \sa SDL_CreateRenderer()
157
+ */
158
+ extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index,
159
+ SDL_RendererInfo * info);
160
+
161
+ /**
162
+ * \brief Create a window and default renderer
163
+ *
164
+ * \param width The width of the window
165
+ * \param height The height of the window
166
+ * \param window_flags The flags used to create the window
167
+ * \param window A pointer filled with the window, or NULL on error
168
+ * \param renderer A pointer filled with the renderer, or NULL on error
169
+ *
170
+ * \return 0 on success, or -1 on error
171
+ */
172
+ extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer(
173
+ int width, int height, Uint32 window_flags,
174
+ SDL_Window **window, SDL_Renderer **renderer);
175
+
176
+
177
+ /**
178
+ * \brief Create a 2D rendering context for a window.
179
+ *
180
+ * \param window The window where rendering is displayed.
181
+ * \param index The index of the rendering driver to initialize, or -1 to
182
+ * initialize the first one supporting the requested flags.
183
+ * \param flags ::SDL_RendererFlags.
184
+ *
185
+ * \return A valid rendering context or NULL if there was an error.
186
+ *
187
+ * \sa SDL_CreateSoftwareRenderer()
188
+ * \sa SDL_GetRendererInfo()
189
+ * \sa SDL_DestroyRenderer()
190
+ */
191
+ extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window,
192
+ int index, Uint32 flags);
193
+
194
+ /**
195
+ * \brief Create a 2D software rendering context for a surface.
196
+ *
197
+ * \param surface The surface where rendering is done.
198
+ *
199
+ * \return A valid rendering context or NULL if there was an error.
200
+ *
201
+ * \sa SDL_CreateRenderer()
202
+ * \sa SDL_DestroyRenderer()
203
+ */
204
+ extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface);
205
+
206
+ /**
207
+ * \brief Get the renderer associated with a window.
208
+ */
209
+ extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window);
210
+
211
+ /**
212
+ * \brief Get information about a rendering context.
213
+ */
214
+ extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer,
215
+ SDL_RendererInfo * info);
216
+
217
+ /**
218
+ * \brief Get the output size of a rendering context.
219
+ */
220
+ extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer,
221
+ int *w, int *h);
222
+
223
+ /**
224
+ * \brief Create a texture for a rendering context.
225
+ *
226
+ * \param renderer The renderer.
227
+ * \param format The format of the texture.
228
+ * \param access One of the enumerated values in ::SDL_TextureAccess.
229
+ * \param w The width of the texture in pixels.
230
+ * \param h The height of the texture in pixels.
231
+ *
232
+ * \return The created texture is returned, or 0 if no rendering context was
233
+ * active, the format was unsupported, or the width or height were out
234
+ * of range.
235
+ *
236
+ * \sa SDL_QueryTexture()
237
+ * \sa SDL_UpdateTexture()
238
+ * \sa SDL_DestroyTexture()
239
+ */
240
+ extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer,
241
+ Uint32 format,
242
+ int access, int w,
243
+ int h);
244
+
245
+ /**
246
+ * \brief Create a texture from an existing surface.
247
+ *
248
+ * \param renderer The renderer.
249
+ * \param surface The surface containing pixel data used to fill the texture.
250
+ *
251
+ * \return The created texture is returned, or 0 on error.
252
+ *
253
+ * \note The surface is not modified or freed by this function.
254
+ *
255
+ * \sa SDL_QueryTexture()
256
+ * \sa SDL_DestroyTexture()
257
+ */
258
+ extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface);
259
+
260
+ /**
261
+ * \brief Query the attributes of a texture
262
+ *
263
+ * \param texture A texture to be queried.
264
+ * \param format A pointer filled in with the raw format of the texture. The
265
+ * actual format may differ, but pixel transfers will use this
266
+ * format.
267
+ * \param access A pointer filled in with the actual access to the texture.
268
+ * \param w A pointer filled in with the width of the texture in pixels.
269
+ * \param h A pointer filled in with the height of the texture in pixels.
270
+ *
271
+ * \return 0 on success, or -1 if the texture is not valid.
272
+ */
273
+ extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture,
274
+ Uint32 * format, int *access,
275
+ int *w, int *h);
276
+
277
+ /**
278
+ * \brief Set an additional color value used in render copy operations.
279
+ *
280
+ * \param texture The texture to update.
281
+ * \param r The red color value multiplied into copy operations.
282
+ * \param g The green color value multiplied into copy operations.
283
+ * \param b The blue color value multiplied into copy operations.
284
+ *
285
+ * \return 0 on success, or -1 if the texture is not valid or color modulation
286
+ * is not supported.
287
+ *
288
+ * \sa SDL_GetTextureColorMod()
289
+ */
290
+ extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture,
291
+ Uint8 r, Uint8 g, Uint8 b);
292
+
293
+
294
+ /**
295
+ * \brief Get the additional color value used in render copy operations.
296
+ *
297
+ * \param texture The texture to query.
298
+ * \param r A pointer filled in with the current red color value.
299
+ * \param g A pointer filled in with the current green color value.
300
+ * \param b A pointer filled in with the current blue color value.
301
+ *
302
+ * \return 0 on success, or -1 if the texture is not valid.
303
+ *
304
+ * \sa SDL_SetTextureColorMod()
305
+ */
306
+ extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture,
307
+ Uint8 * r, Uint8 * g,
308
+ Uint8 * b);
309
+
310
+ /**
311
+ * \brief Set an additional alpha value used in render copy operations.
312
+ *
313
+ * \param texture The texture to update.
314
+ * \param alpha The alpha value multiplied into copy operations.
315
+ *
316
+ * \return 0 on success, or -1 if the texture is not valid or alpha modulation
317
+ * is not supported.
318
+ *
319
+ * \sa SDL_GetTextureAlphaMod()
320
+ */
321
+ extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture,
322
+ Uint8 alpha);
323
+
324
+ /**
325
+ * \brief Get the additional alpha value used in render copy operations.
326
+ *
327
+ * \param texture The texture to query.
328
+ * \param alpha A pointer filled in with the current alpha value.
329
+ *
330
+ * \return 0 on success, or -1 if the texture is not valid.
331
+ *
332
+ * \sa SDL_SetTextureAlphaMod()
333
+ */
334
+ extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture,
335
+ Uint8 * alpha);
336
+
337
+ /**
338
+ * \brief Set the blend mode used for texture copy operations.
339
+ *
340
+ * \param texture The texture to update.
341
+ * \param blendMode ::SDL_BlendMode to use for texture blending.
342
+ *
343
+ * \return 0 on success, or -1 if the texture is not valid or the blend mode is
344
+ * not supported.
345
+ *
346
+ * \note If the blend mode is not supported, the closest supported mode is
347
+ * chosen.
348
+ *
349
+ * \sa SDL_GetTextureBlendMode()
350
+ */
351
+ extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture,
352
+ SDL_BlendMode blendMode);
353
+
354
+ /**
355
+ * \brief Get the blend mode used for texture copy operations.
356
+ *
357
+ * \param texture The texture to query.
358
+ * \param blendMode A pointer filled in with the current blend mode.
359
+ *
360
+ * \return 0 on success, or -1 if the texture is not valid.
361
+ *
362
+ * \sa SDL_SetTextureBlendMode()
363
+ */
364
+ extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture,
365
+ SDL_BlendMode *blendMode);
366
+
367
+ /**
368
+ * \brief Update the given texture rectangle with new pixel data.
369
+ *
370
+ * \param texture The texture to update
371
+ * \param rect A pointer to the rectangle of pixels to update, or NULL to
372
+ * update the entire texture.
373
+ * \param pixels The raw pixel data.
374
+ * \param pitch The number of bytes between rows of pixel data.
375
+ *
376
+ * \return 0 on success, or -1 if the texture is not valid.
377
+ *
378
+ * \note This is a fairly slow function.
379
+ */
380
+ extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture,
381
+ const SDL_Rect * rect,
382
+ const void *pixels, int pitch);
383
+
384
+ /**
385
+ * \brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data.
386
+ *
387
+ * \param texture The texture to update
388
+ * \param rect A pointer to the rectangle of pixels to update, or NULL to
389
+ * update the entire texture.
390
+ * \param Yplane The raw pixel data for the Y plane.
391
+ * \param Ypitch The number of bytes between rows of pixel data for the Y plane.
392
+ * \param Uplane The raw pixel data for the U plane.
393
+ * \param Upitch The number of bytes between rows of pixel data for the U plane.
394
+ * \param Vplane The raw pixel data for the V plane.
395
+ * \param Vpitch The number of bytes between rows of pixel data for the V plane.
396
+ *
397
+ * \return 0 on success, or -1 if the texture is not valid.
398
+ *
399
+ * \note You can use SDL_UpdateTexture() as long as your pixel data is
400
+ * a contiguous block of Y and U/V planes in the proper order, but
401
+ * this function is available if your pixel data is not contiguous.
402
+ */
403
+ extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture,
404
+ const SDL_Rect * rect,
405
+ const Uint8 *Yplane, int Ypitch,
406
+ const Uint8 *Uplane, int Upitch,
407
+ const Uint8 *Vplane, int Vpitch);
408
+
409
+ /**
410
+ * \brief Lock a portion of the texture for write-only pixel access.
411
+ *
412
+ * \param texture The texture to lock for access, which was created with
413
+ * ::SDL_TEXTUREACCESS_STREAMING.
414
+ * \param rect A pointer to the rectangle to lock for access. If the rect
415
+ * is NULL, the entire texture will be locked.
416
+ * \param pixels This is filled in with a pointer to the locked pixels,
417
+ * appropriately offset by the locked area.
418
+ * \param pitch This is filled in with the pitch of the locked pixels.
419
+ *
420
+ * \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.
421
+ *
422
+ * \sa SDL_UnlockTexture()
423
+ */
424
+ extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture,
425
+ const SDL_Rect * rect,
426
+ void **pixels, int *pitch);
427
+
428
+ /**
429
+ * \brief Unlock a texture, uploading the changes to video memory, if needed.
430
+ *
431
+ * \sa SDL_LockTexture()
432
+ */
433
+ extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture);
434
+
435
+ /**
436
+ * \brief Determines whether a window supports the use of render targets
437
+ *
438
+ * \param renderer The renderer that will be checked
439
+ *
440
+ * \return SDL_TRUE if supported, SDL_FALSE if not.
441
+ */
442
+ extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer);
443
+
444
+ /**
445
+ * \brief Set a texture as the current rendering target.
446
+ *
447
+ * \param renderer The renderer.
448
+ * \param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target
449
+ *
450
+ * \return 0 on success, or -1 on error
451
+ *
452
+ * \sa SDL_GetRenderTarget()
453
+ */
454
+ extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer,
455
+ SDL_Texture *texture);
456
+
457
+ /**
458
+ * \brief Get the current render target or NULL for the default render target.
459
+ *
460
+ * \return The current render target
461
+ *
462
+ * \sa SDL_SetRenderTarget()
463
+ */
464
+ extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer);
465
+
466
+ /**
467
+ * \brief Set device independent resolution for rendering
468
+ *
469
+ * \param renderer The renderer for which resolution should be set.
470
+ * \param w The width of the logical resolution
471
+ * \param h The height of the logical resolution
472
+ *
473
+ * This function uses the viewport and scaling functionality to allow a fixed logical
474
+ * resolution for rendering, regardless of the actual output resolution. If the actual
475
+ * output resolution doesn't have the same aspect ratio the output rendering will be
476
+ * centered within the output display.
477
+ *
478
+ * If the output display is a window, mouse events in the window will be filtered
479
+ * and scaled so they seem to arrive within the logical resolution.
480
+ *
481
+ * \note If this function results in scaling or subpixel drawing by the
482
+ * rendering backend, it will be handled using the appropriate
483
+ * quality hints.
484
+ *
485
+ * \sa SDL_RenderGetLogicalSize()
486
+ * \sa SDL_RenderSetScale()
487
+ * \sa SDL_RenderSetViewport()
488
+ */
489
+ extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h);
490
+
491
+ /**
492
+ * \brief Get device independent resolution for rendering
493
+ *
494
+ * \param renderer The renderer from which resolution should be queried.
495
+ * \param w A pointer filled with the width of the logical resolution
496
+ * \param h A pointer filled with the height of the logical resolution
497
+ *
498
+ * \sa SDL_RenderSetLogicalSize()
499
+ */
500
+ extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h);
501
+
502
+ /**
503
+ * \brief Set the drawing area for rendering on the current target.
504
+ *
505
+ * \param renderer The renderer for which the drawing area should be set.
506
+ * \param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target.
507
+ *
508
+ * The x,y of the viewport rect represents the origin for rendering.
509
+ *
510
+ * \return 0 on success, or -1 on error
511
+ *
512
+ * \note If the window associated with the renderer is resized, the viewport is automatically reset.
513
+ *
514
+ * \sa SDL_RenderGetViewport()
515
+ * \sa SDL_RenderSetLogicalSize()
516
+ */
517
+ extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer,
518
+ const SDL_Rect * rect);
519
+
520
+ /**
521
+ * \brief Get the drawing area for the current target.
522
+ *
523
+ * \sa SDL_RenderSetViewport()
524
+ */
525
+ extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer,
526
+ SDL_Rect * rect);
527
+
528
+ /**
529
+ * \brief Set the clip rectangle for the current target.
530
+ *
531
+ * \param renderer The renderer for which clip rectangle should be set.
532
+ * \param rect A pointer to the rectangle to set as the clip rectangle, or
533
+ * NULL to disable clipping.
534
+ *
535
+ * \return 0 on success, or -1 on error
536
+ *
537
+ * \sa SDL_RenderGetClipRect()
538
+ */
539
+ extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer,
540
+ const SDL_Rect * rect);
541
+
542
+ /**
543
+ * \brief Get the clip rectangle for the current target.
544
+ *
545
+ * \param renderer The renderer from which clip rectangle should be queried.
546
+ * \param rect A pointer filled in with the current clip rectangle, or
547
+ * an empty rectangle if clipping is disabled.
548
+ *
549
+ * \sa SDL_RenderSetClipRect()
550
+ */
551
+ extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer,
552
+ SDL_Rect * rect);
553
+
554
+ /**
555
+ * \brief Set the drawing scale for rendering on the current target.
556
+ *
557
+ * \param renderer The renderer for which the drawing scale should be set.
558
+ * \param scaleX The horizontal scaling factor
559
+ * \param scaleY The vertical scaling factor
560
+ *
561
+ * The drawing coordinates are scaled by the x/y scaling factors
562
+ * before they are used by the renderer. This allows resolution
563
+ * independent drawing with a single coordinate system.
564
+ *
565
+ * \note If this results in scaling or subpixel drawing by the
566
+ * rendering backend, it will be handled using the appropriate
567
+ * quality hints. For best results use integer scaling factors.
568
+ *
569
+ * \sa SDL_RenderGetScale()
570
+ * \sa SDL_RenderSetLogicalSize()
571
+ */
572
+ extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer,
573
+ float scaleX, float scaleY);
574
+
575
+ /**
576
+ * \brief Get the drawing scale for the current target.
577
+ *
578
+ * \param renderer The renderer from which drawing scale should be queried.
579
+ * \param scaleX A pointer filled in with the horizontal scaling factor
580
+ * \param scaleY A pointer filled in with the vertical scaling factor
581
+ *
582
+ * \sa SDL_RenderSetScale()
583
+ */
584
+ extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer,
585
+ float *scaleX, float *scaleY);
586
+
587
+ /**
588
+ * \brief Set the color used for drawing operations (Rect, Line and Clear).
589
+ *
590
+ * \param renderer The renderer for which drawing color should be set.
591
+ * \param r The red value used to draw on the rendering target.
592
+ * \param g The green value used to draw on the rendering target.
593
+ * \param b The blue value used to draw on the rendering target.
594
+ * \param a The alpha value used to draw on the rendering target, usually
595
+ * ::SDL_ALPHA_OPAQUE (255).
596
+ *
597
+ * \return 0 on success, or -1 on error
598
+ */
599
+ extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer,
600
+ Uint8 r, Uint8 g, Uint8 b,
601
+ Uint8 a);
602
+
603
+ /**
604
+ * \brief Get the color used for drawing operations (Rect, Line and Clear).
605
+ *
606
+ * \param renderer The renderer from which drawing color should be queried.
607
+ * \param r A pointer to the red value used to draw on the rendering target.
608
+ * \param g A pointer to the green value used to draw on the rendering target.
609
+ * \param b A pointer to the blue value used to draw on the rendering target.
610
+ * \param a A pointer to the alpha value used to draw on the rendering target,
611
+ * usually ::SDL_ALPHA_OPAQUE (255).
612
+ *
613
+ * \return 0 on success, or -1 on error
614
+ */
615
+ extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer,
616
+ Uint8 * r, Uint8 * g, Uint8 * b,
617
+ Uint8 * a);
618
+
619
+ /**
620
+ * \brief Set the blend mode used for drawing operations (Fill and Line).
621
+ *
622
+ * \param renderer The renderer for which blend mode should be set.
623
+ * \param blendMode ::SDL_BlendMode to use for blending.
624
+ *
625
+ * \return 0 on success, or -1 on error
626
+ *
627
+ * \note If the blend mode is not supported, the closest supported mode is
628
+ * chosen.
629
+ *
630
+ * \sa SDL_GetRenderDrawBlendMode()
631
+ */
632
+ extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer,
633
+ SDL_BlendMode blendMode);
634
+
635
+ /**
636
+ * \brief Get the blend mode used for drawing operations.
637
+ *
638
+ * \param renderer The renderer from which blend mode should be queried.
639
+ * \param blendMode A pointer filled in with the current blend mode.
640
+ *
641
+ * \return 0 on success, or -1 on error
642
+ *
643
+ * \sa SDL_SetRenderDrawBlendMode()
644
+ */
645
+ extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer,
646
+ SDL_BlendMode *blendMode);
647
+
648
+ /**
649
+ * \brief Clear the current rendering target with the drawing color
650
+ *
651
+ * This function clears the entire rendering target, ignoring the viewport.
652
+ *
653
+ * \return 0 on success, or -1 on error
654
+ */
655
+ extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer);
656
+
657
+ /**
658
+ * \brief Draw a point on the current rendering target.
659
+ *
660
+ * \param renderer The renderer which should draw a point.
661
+ * \param x The x coordinate of the point.
662
+ * \param y The y coordinate of the point.
663
+ *
664
+ * \return 0 on success, or -1 on error
665
+ */
666
+ extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer,
667
+ int x, int y);
668
+
669
+ /**
670
+ * \brief Draw multiple points on the current rendering target.
671
+ *
672
+ * \param renderer The renderer which should draw multiple points.
673
+ * \param points The points to draw
674
+ * \param count The number of points to draw
675
+ *
676
+ * \return 0 on success, or -1 on error
677
+ */
678
+ extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer,
679
+ const SDL_Point * points,
680
+ int count);
681
+
682
+ /**
683
+ * \brief Draw a line on the current rendering target.
684
+ *
685
+ * \param renderer The renderer which should draw a line.
686
+ * \param x1 The x coordinate of the start point.
687
+ * \param y1 The y coordinate of the start point.
688
+ * \param x2 The x coordinate of the end point.
689
+ * \param y2 The y coordinate of the end point.
690
+ *
691
+ * \return 0 on success, or -1 on error
692
+ */
693
+ extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer,
694
+ int x1, int y1, int x2, int y2);
695
+
696
+ /**
697
+ * \brief Draw a series of connected lines on the current rendering target.
698
+ *
699
+ * \param renderer The renderer which should draw multiple lines.
700
+ * \param points The points along the lines
701
+ * \param count The number of points, drawing count-1 lines
702
+ *
703
+ * \return 0 on success, or -1 on error
704
+ */
705
+ extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer,
706
+ const SDL_Point * points,
707
+ int count);
708
+
709
+ /**
710
+ * \brief Draw a rectangle on the current rendering target.
711
+ *
712
+ * \param renderer The renderer which should draw a rectangle.
713
+ * \param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target.
714
+ *
715
+ * \return 0 on success, or -1 on error
716
+ */
717
+ extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer,
718
+ const SDL_Rect * rect);
719
+
720
+ /**
721
+ * \brief Draw some number of rectangles on the current rendering target.
722
+ *
723
+ * \param renderer The renderer which should draw multiple rectangles.
724
+ * \param rects A pointer to an array of destination rectangles.
725
+ * \param count The number of rectangles.
726
+ *
727
+ * \return 0 on success, or -1 on error
728
+ */
729
+ extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer,
730
+ const SDL_Rect * rects,
731
+ int count);
732
+
733
+ /**
734
+ * \brief Fill a rectangle on the current rendering target with the drawing color.
735
+ *
736
+ * \param renderer The renderer which should fill a rectangle.
737
+ * \param rect A pointer to the destination rectangle, or NULL for the entire
738
+ * rendering target.
739
+ *
740
+ * \return 0 on success, or -1 on error
741
+ */
742
+ extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer,
743
+ const SDL_Rect * rect);
744
+
745
+ /**
746
+ * \brief Fill some number of rectangles on the current rendering target with the drawing color.
747
+ *
748
+ * \param renderer The renderer which should fill multiple rectangles.
749
+ * \param rects A pointer to an array of destination rectangles.
750
+ * \param count The number of rectangles.
751
+ *
752
+ * \return 0 on success, or -1 on error
753
+ */
754
+ extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer,
755
+ const SDL_Rect * rects,
756
+ int count);
757
+
758
+ /**
759
+ * \brief Copy a portion of the texture to the current rendering target.
760
+ *
761
+ * \param renderer The renderer which should copy parts of a texture.
762
+ * \param texture The source texture.
763
+ * \param srcrect A pointer to the source rectangle, or NULL for the entire
764
+ * texture.
765
+ * \param dstrect A pointer to the destination rectangle, or NULL for the
766
+ * entire rendering target.
767
+ *
768
+ * \return 0 on success, or -1 on error
769
+ */
770
+ extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer,
771
+ SDL_Texture * texture,
772
+ const SDL_Rect * srcrect,
773
+ const SDL_Rect * dstrect);
774
+
775
+ /**
776
+ * \brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center
777
+ *
778
+ * \param renderer The renderer which should copy parts of a texture.
779
+ * \param texture The source texture.
780
+ * \param srcrect A pointer to the source rectangle, or NULL for the entire
781
+ * texture.
782
+ * \param dstrect A pointer to the destination rectangle, or NULL for the
783
+ * entire rendering target.
784
+ * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect
785
+ * \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done aroud dstrect.w/2, dstrect.h/2)
786
+ * \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture
787
+ *
788
+ * \return 0 on success, or -1 on error
789
+ */
790
+ extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer,
791
+ SDL_Texture * texture,
792
+ const SDL_Rect * srcrect,
793
+ const SDL_Rect * dstrect,
794
+ const double angle,
795
+ const SDL_Point *center,
796
+ const SDL_RendererFlip flip);
797
+
798
+ /**
799
+ * \brief Read pixels from the current rendering target.
800
+ *
801
+ * \param renderer The renderer from which pixels should be read.
802
+ * \param rect A pointer to the rectangle to read, or NULL for the entire
803
+ * render target.
804
+ * \param format The desired format of the pixel data, or 0 to use the format
805
+ * of the rendering target
806
+ * \param pixels A pointer to be filled in with the pixel data
807
+ * \param pitch The pitch of the pixels parameter.
808
+ *
809
+ * \return 0 on success, or -1 if pixel reading is not supported.
810
+ *
811
+ * \warning This is a very slow operation, and should not be used frequently.
812
+ */
813
+ extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer,
814
+ const SDL_Rect * rect,
815
+ Uint32 format,
816
+ void *pixels, int pitch);
817
+
818
+ /**
819
+ * \brief Update the screen with rendering performed.
820
+ */
821
+ extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer);
822
+
823
+ /**
824
+ * \brief Destroy the specified texture.
825
+ *
826
+ * \sa SDL_CreateTexture()
827
+ * \sa SDL_CreateTextureFromSurface()
828
+ */
829
+ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
830
+
831
+ /**
832
+ * \brief Destroy the rendering context for a window and free associated
833
+ * textures.
834
+ *
835
+ * \sa SDL_CreateRenderer()
836
+ */
837
+ extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer);
838
+
839
+
840
+ /**
841
+ * \brief Bind the texture to the current OpenGL/ES/ES2 context for use with
842
+ * OpenGL instructions.
843
+ *
844
+ * \param texture The SDL texture to bind
845
+ * \param texw A pointer to a float that will be filled with the texture width
846
+ * \param texh A pointer to a float that will be filled with the texture height
847
+ *
848
+ * \return 0 on success, or -1 if the operation is not supported
849
+ */
850
+ extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh);
851
+
852
+ /**
853
+ * \brief Unbind a texture from the current OpenGL/ES/ES2 context.
854
+ *
855
+ * \param texture The SDL texture to unbind
856
+ *
857
+ * \return 0 on success, or -1 if the operation is not supported
858
+ */
859
+ extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture);
860
+
861
+
862
+ /* Ends C function definitions when using C++ */
863
+ #ifdef __cplusplus
864
+ }
865
+ #endif
866
+ #include "close_code.h"
867
+
868
+ #endif /* _SDL_render_h */
869
+
870
+ /* vi: set ts=4 sw=4 expandtab: */