annotate SDL3/SDL_render.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 Simple DirectMedia Layer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 This software is provided 'as-is', without any express or implied
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 warranty. In no event will the authors be held liable for any damages
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 arising from the use of this software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 Permission is granted to anyone to use this software for any purpose,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 including commercial applications, and to alter it and redistribute it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 freely, subject to the following restrictions:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 1. The origin of this software must not be misrepresented; you must not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 claim that you wrote the original software. If you use this software
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 in a product, an acknowledgment in the product documentation would be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 appreciated but is not required.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 2. Altered source versions must be plainly marked as such, and must not be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 misrepresented as being the original software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 3. This notice may not be removed or altered from any source distribution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 * # CategoryRender
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 * Header file for SDL 2D rendering functions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 * This API supports the following features:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 * - single pixel points
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 * - single pixel lines
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 * - filled rectangles
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 * - texture images
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 * - 2D polygons
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 * The primitives may be drawn in opaque, blended, or additive modes.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 * The texture images may be drawn in opaque, blended, or additive modes. They
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 * can have an additional color tint or alpha modulation applied to them, and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 * may also be stretched with linear interpolation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 * This API is designed to accelerate simple 2D operations. You may want more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 * functionality such as 3D polygons and particle effects, and in that case
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 * you should use SDL's OpenGL/Direct3D support, the SDL3 GPU API, or one of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 * the many good 3D engines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 * These functions must be called from the main thread. See this bug for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 * details: https://github.com/libsdl-org/SDL/issues/986
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 #ifndef SDL_render_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 #define SDL_render_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 #include <SDL3/SDL_stdinc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 #include <SDL3/SDL_blendmode.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 #include <SDL3/SDL_error.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 #include <SDL3/SDL_events.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 #include <SDL3/SDL_pixels.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 #include <SDL3/SDL_properties.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 #include <SDL3/SDL_rect.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 #include <SDL3/SDL_surface.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 #include <SDL3/SDL_video.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 #include <SDL3/SDL_gpu.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 #include <SDL3/SDL_begin_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 /* Set up for C function definitions, even when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 extern "C" {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 * The name of the software renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 * \since This macro is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 #define SDL_SOFTWARE_RENDERER "software"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 * The name of the GPU renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 * \since This macro is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82 #define SDL_GPU_RENDERER "gpu"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 * Vertex structure.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 typedef struct SDL_Vertex
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 SDL_FPoint position; /**< Vertex position, in SDL_Renderer coordinates */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 SDL_FColor color; /**< Vertex color */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 SDL_FPoint tex_coord; /**< Normalized texture coordinates, if needed */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 } SDL_Vertex;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 * The access pattern allowed for a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 * \since This enum is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 typedef enum SDL_TextureAccess
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 } SDL_TextureAccess;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 * The addressing mode for a texture when used in SDL_RenderGeometry().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 * This affects how texture coordinates are interpreted outside of [0, 1]
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 * Texture wrapping is always supported for power of two texture sizes, and is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 * supported for other texture sizes if
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 * SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN is set to true.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 * \since This enum is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 typedef enum SDL_TextureAddressMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 SDL_TEXTURE_ADDRESS_INVALID = -1,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122 SDL_TEXTURE_ADDRESS_AUTO, /**< Wrapping is enabled if texture coordinates are outside [0, 1], this is the default */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 SDL_TEXTURE_ADDRESS_CLAMP, /**< Texture coordinates are clamped to the [0, 1] range */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 SDL_TEXTURE_ADDRESS_WRAP /**< The texture is repeated (tiled) */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 } SDL_TextureAddressMode;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 * How the logical size is mapped to the output.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 * \since This enum is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 typedef enum SDL_RendererLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 SDL_LOGICAL_PRESENTATION_DISABLED, /**< There is no logical size in effect */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 SDL_LOGICAL_PRESENTATION_STRETCH, /**< The rendered content is stretched to the output resolution */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 SDL_LOGICAL_PRESENTATION_LETTERBOX, /**< The rendered content is fit to the largest dimension and the other dimension is letterboxed with the clear color */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 SDL_LOGICAL_PRESENTATION_OVERSCAN, /**< The rendered content is fit to the smallest dimension and the other dimension extends beyond the output bounds */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 SDL_LOGICAL_PRESENTATION_INTEGER_SCALE /**< The rendered content is scaled up by integer multiples to fit the output resolution */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 } SDL_RendererLogicalPresentation;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 * A structure representing rendering state
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 typedef struct SDL_Renderer SDL_Renderer;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 #ifndef SDL_INTERNAL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 * An efficient driver-specific representation of pixel data
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 * \sa SDL_CreateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 * \sa SDL_CreateTextureFromSurface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 * \sa SDL_CreateTextureWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 * \sa SDL_DestroyTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 struct SDL_Texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 SDL_PixelFormat format; /**< The format of the texture, read-only */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 int w; /**< The width of the texture, read-only. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 int h; /**< The height of the texture, read-only. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 int refcount; /**< Application reference count, used when freeing texture */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 #endif /* !SDL_INTERNAL */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 typedef struct SDL_Texture SDL_Texture;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 /* Function prototypes */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175 * Get the number of 2D rendering drivers available for the current display.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 * A render driver is a set of code that handles rendering and texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 * management on a particular display. Normally there is only one, but some
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 * drivers may have several available with different capabilities.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 * There may be none if SDL was compiled without render support.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 * \returns the number of built in render drivers.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 * \sa SDL_GetRenderDriver
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 extern SDL_DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 * Use this function to get the name of a built in 2D rendering driver.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197 * The list of rendering drivers is given in the order that they are normally
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198 * initialized by default; the drivers that seem more reasonable to choose
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 * first (as far as the SDL developers believe) are earlier in the list.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 * The names of drivers are all simple, low-ASCII identifiers, like "opengl",
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 * "direct3d12" or "metal". These never have Unicode characters, and are not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 * meant to be proper names.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 * \param index the index of the rendering driver; the value ranges from 0 to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206 * SDL_GetNumRenderDrivers() - 1.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 * \returns the name of the rendering driver at the requested index, or NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208 * if an invalid index was specified.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
209 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
210 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
211 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
212 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
213 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
214 * \sa SDL_GetNumRenderDrivers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
215 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
216 extern SDL_DECLSPEC const char * SDLCALL SDL_GetRenderDriver(int index);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
217
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
218 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
219 * Create a window and default renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
220 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
221 * \param title the title of the window, in UTF-8 encoding.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
222 * \param width the width of the window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
223 * \param height the height of the window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
224 * \param window_flags the flags used to create the window (see
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
225 * SDL_CreateWindow()).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
226 * \param window a pointer filled with the window, or NULL on error.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
227 * \param renderer a pointer filled with the renderer, or NULL on error.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
228 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
229 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
230 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
231 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
232 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
233 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
234 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
235 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
236 * \sa SDL_CreateWindow
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
237 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
238 extern SDL_DECLSPEC bool SDLCALL SDL_CreateWindowAndRenderer(const char *title, int width, int height, SDL_WindowFlags window_flags, SDL_Window **window, SDL_Renderer **renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
239
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
240 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
241 * Create a 2D rendering context for a window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
242 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
243 * If you want a specific renderer, you can specify its name here. A list of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
244 * available renderers can be obtained by calling SDL_GetRenderDriver()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
245 * multiple times, with indices from 0 to SDL_GetNumRenderDrivers()-1. If you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
246 * don't need a specific renderer, specify NULL and SDL will attempt to choose
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
247 * the best option for you, based on what is available on the user's system.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
248 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
249 * If `name` is a comma-separated list, SDL will try each name, in the order
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
250 * listed, until one succeeds or all of them fail.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
251 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
252 * By default the rendering size matches the window size in pixels, but you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
253 * can call SDL_SetRenderLogicalPresentation() to change the content size and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
254 * scaling options.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
255 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
256 * \param window the window where rendering is displayed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
257 * \param name the name of the rendering driver to initialize, or NULL to let
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
258 * SDL choose one.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
259 * \returns a valid rendering context or NULL if there was an error; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
260 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
261 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
262 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
263 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
264 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
265 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
266 * \sa SDL_CreateRendererWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
267 * \sa SDL_CreateSoftwareRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
268 * \sa SDL_DestroyRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
269 * \sa SDL_GetNumRenderDrivers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
270 * \sa SDL_GetRenderDriver
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
271 * \sa SDL_GetRendererName
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
272 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
273 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window, const char *name);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
274
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
275 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
276 * Create a 2D rendering context for a window, with the specified properties.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
277 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
278 * These are the supported properties:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
279 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
280 * - `SDL_PROP_RENDERER_CREATE_NAME_STRING`: the name of the rendering driver
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
281 * to use, if a specific one is desired
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
282 * - `SDL_PROP_RENDERER_CREATE_WINDOW_POINTER`: the window where rendering is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
283 * displayed, required if this isn't a software renderer using a surface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
284 * - `SDL_PROP_RENDERER_CREATE_SURFACE_POINTER`: the surface where rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
285 * is displayed, if you want a software renderer without a window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
286 * - `SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER`: an SDL_Colorspace
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
287 * value describing the colorspace for output to the display, defaults to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
288 * SDL_COLORSPACE_SRGB. The direct3d11, direct3d12, and metal renderers
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
289 * support SDL_COLORSPACE_SRGB_LINEAR, which is a linear color space and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
290 * supports HDR output. If you select SDL_COLORSPACE_SRGB_LINEAR, drawing
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
291 * still uses the sRGB colorspace, but values can go beyond 1.0 and float
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
292 * (linear) format textures can be used for HDR content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
293 * - `SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER`: non-zero if you want
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
294 * present synchronized with the refresh rate. This property can take any
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
295 * value that is supported by SDL_SetRenderVSync() for the renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
296 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
297 * With the SDL GPU renderer (since SDL 3.4.0):
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
298 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
299 * - `SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER`: the device to use with the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
300 * renderer, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
301 * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN`: the app is able to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
302 * provide SPIR-V shaders to SDL_GPURenderState, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
303 * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN`: the app is able to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
304 * provide DXIL shaders to SDL_GPURenderState, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
305 * - `SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN`: the app is able to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
306 * provide MSL shaders to SDL_GPURenderState, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
307 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
308 * With the vulkan renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
309 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
310 * - `SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER`: the VkInstance to use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
311 * with the renderer, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
312 * - `SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER`: the VkSurfaceKHR to use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
313 * with the renderer, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
314 * - `SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER`: the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
315 * VkPhysicalDevice to use with the renderer, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
316 * - `SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER`: the VkDevice to use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
317 * with the renderer, optional.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
318 * - `SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER`: the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
319 * queue family index used for rendering.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
320 * - `SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER`: the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
321 * queue family index used for presentation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
322 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
323 * \param props the properties to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
324 * \returns a valid rendering context or NULL if there was an error; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
325 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
326 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
327 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
328 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
329 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
330 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
331 * \sa SDL_CreateProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
332 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
333 * \sa SDL_CreateSoftwareRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
334 * \sa SDL_DestroyRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
335 * \sa SDL_GetRendererName
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
336 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
337 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_PropertiesID props);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
338
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
339 #define SDL_PROP_RENDERER_CREATE_NAME_STRING "SDL.renderer.create.name"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
340 #define SDL_PROP_RENDERER_CREATE_WINDOW_POINTER "SDL.renderer.create.window"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
341 #define SDL_PROP_RENDERER_CREATE_SURFACE_POINTER "SDL.renderer.create.surface"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
342 #define SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER "SDL.renderer.create.output_colorspace"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
343 #define SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER "SDL.renderer.create.present_vsync"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
344 #define SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER "SDL.renderer.create.gpu.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
345 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN "SDL.renderer.create.gpu.shaders_spirv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
346 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN "SDL.renderer.create.gpu.shaders_dxil"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
347 #define SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN "SDL.renderer.create.gpu.shaders_msl"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
348 #define SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER "SDL.renderer.create.vulkan.instance"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
349 #define SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER "SDL.renderer.create.vulkan.surface"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
350 #define SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER "SDL.renderer.create.vulkan.physical_device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
351 #define SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER "SDL.renderer.create.vulkan.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
352 #define SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.create.vulkan.graphics_queue_family_index"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
353 #define SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.create.vulkan.present_queue_family_index"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
354
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
355 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
356 * Create a 2D GPU rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
357 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
358 * The GPU device to use is passed in as a parameter. If this is NULL, then a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
359 * device will be created normally and can be retrieved using
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
360 * SDL_GetGPURendererDevice().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
361 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
362 * The window to use is passed in as a parameter. If this is NULL, then this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
363 * will become an offscreen renderer. In that case, you should call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
364 * SDL_SetRenderTarget() to setup rendering to a texture, and then call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
365 * SDL_RenderPresent() normally to complete drawing a frame.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
366 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
367 * \param device the GPU device to use with the renderer, or NULL to create a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
368 * device.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
369 * \param window the window where rendering is displayed, or NULL to create an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
370 * offscreen renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
371 * \returns a valid rendering context or NULL if there was an error; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
372 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
373 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
374 * \threadsafety If this function is called with a valid GPU device, it should
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
375 * be called on the thread that created the device. If this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
376 * function is called with a valid window, it should be called
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
377 * on the thread that created the window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
378 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
379 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
380 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
381 * \sa SDL_CreateRendererWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
382 * \sa SDL_GetGPURendererDevice
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
383 * \sa SDL_CreateGPUShader
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
384 * \sa SDL_CreateGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
385 * \sa SDL_SetGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
386 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
387 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateGPURenderer(SDL_GPUDevice *device, SDL_Window *window);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
388
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
389 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
390 * Return the GPU device used by a renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
391 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
392 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
393 * \returns the GPU device used by the renderer, or NULL if the renderer is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
394 * not a GPU renderer; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
395 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
396 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
397 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
398 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
399 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
400 extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_GetGPURendererDevice(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
401
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
402 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
403 * Create a 2D software rendering context for a surface.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
404 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
405 * Two other API which can be used to create SDL_Renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
406 * SDL_CreateRenderer() and SDL_CreateWindowAndRenderer(). These can _also_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
407 * create a software renderer, but they are intended to be used with an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
408 * SDL_Window as the final destination and not an SDL_Surface.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
409 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
410 * \param surface the SDL_Surface structure representing the surface where
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
411 * rendering is done.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
412 * \returns a valid rendering context or NULL if there was an error; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
413 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
414 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
415 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
416 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
417 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
418 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
419 * \sa SDL_DestroyRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
420 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
421 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface *surface);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
422
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
423 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
424 * Get the renderer associated with a window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
425 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
426 * \param window the window to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
427 * \returns the rendering context on success or NULL on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
428 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
429 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
430 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
431 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
432 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
433 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
434 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window *window);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
435
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
436 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
437 * Get the window associated with a renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
438 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
439 * \param renderer the renderer to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
440 * \returns the window on success or NULL on failure; call SDL_GetError() for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
441 * more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
442 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
443 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
444 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
445 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
446 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
447 extern SDL_DECLSPEC SDL_Window * SDLCALL SDL_GetRenderWindow(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
448
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
449 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
450 * Get the name of a renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
451 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
452 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
453 * \returns the name of the selected renderer, or NULL on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
454 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
455 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
456 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
457 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
458 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
459 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
460 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
461 * \sa SDL_CreateRendererWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
462 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
463 extern SDL_DECLSPEC const char * SDLCALL SDL_GetRendererName(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
464
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
465 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
466 * Get the properties associated with a renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
467 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
468 * The following read-only properties are provided by SDL:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
469 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
470 * - `SDL_PROP_RENDERER_NAME_STRING`: the name of the rendering driver
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
471 * - `SDL_PROP_RENDERER_WINDOW_POINTER`: the window where rendering is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
472 * displayed, if any
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
473 * - `SDL_PROP_RENDERER_SURFACE_POINTER`: the surface where rendering is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
474 * displayed, if this is a software renderer without a window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
475 * - `SDL_PROP_RENDERER_VSYNC_NUMBER`: the current vsync setting
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
476 * - `SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER`: the maximum texture width
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
477 * and height
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
478 * - `SDL_PROP_RENDERER_TEXTURE_FORMATS_POINTER`: a (const SDL_PixelFormat *)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
479 * array of pixel formats, terminated with SDL_PIXELFORMAT_UNKNOWN,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
480 * representing the available texture formats for this renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
481 * - `SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN`: true if the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
482 * supports SDL_TEXTURE_ADDRESS_WRAP on non-power-of-two textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
483 * - `SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER`: an SDL_Colorspace value
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
484 * describing the colorspace for output to the display, defaults to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
485 * SDL_COLORSPACE_SRGB.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
486 * - `SDL_PROP_RENDERER_HDR_ENABLED_BOOLEAN`: true if the output colorspace is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
487 * SDL_COLORSPACE_SRGB_LINEAR and the renderer is showing on a display with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
488 * HDR enabled. This property can change dynamically when
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
489 * SDL_EVENT_WINDOW_HDR_STATE_CHANGED is sent.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
490 * - `SDL_PROP_RENDERER_SDR_WHITE_POINT_FLOAT`: the value of SDR white in the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
491 * SDL_COLORSPACE_SRGB_LINEAR colorspace. When HDR is enabled, this value is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
492 * automatically multiplied into the color scale. This property can change
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
493 * dynamically when SDL_EVENT_WINDOW_HDR_STATE_CHANGED is sent.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
494 * - `SDL_PROP_RENDERER_HDR_HEADROOM_FLOAT`: the additional high dynamic range
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
495 * that can be displayed, in terms of the SDR white point. When HDR is not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
496 * enabled, this will be 1.0. This property can change dynamically when
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
497 * SDL_EVENT_WINDOW_HDR_STATE_CHANGED is sent.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
498 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
499 * With the direct3d renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
500 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
501 * - `SDL_PROP_RENDERER_D3D9_DEVICE_POINTER`: the IDirect3DDevice9 associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
502 * with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
503 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
504 * With the direct3d11 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
505 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
506 * - `SDL_PROP_RENDERER_D3D11_DEVICE_POINTER`: the ID3D11Device associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
507 * with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
508 * - `SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER`: the IDXGISwapChain1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
509 * associated with the renderer. This may change when the window is resized.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
510 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
511 * With the direct3d12 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
512 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
513 * - `SDL_PROP_RENDERER_D3D12_DEVICE_POINTER`: the ID3D12Device associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
514 * with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
515 * - `SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER`: the IDXGISwapChain4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
516 * associated with the renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
517 * - `SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER`: the ID3D12CommandQueue
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
518 * associated with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
519 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
520 * With the vulkan renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
521 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
522 * - `SDL_PROP_RENDERER_VULKAN_INSTANCE_POINTER`: the VkInstance associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
523 * with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
524 * - `SDL_PROP_RENDERER_VULKAN_SURFACE_NUMBER`: the VkSurfaceKHR associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
525 * with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
526 * - `SDL_PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER`: the VkPhysicalDevice
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
527 * associated with the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
528 * - `SDL_PROP_RENDERER_VULKAN_DEVICE_POINTER`: the VkDevice associated with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
529 * the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
530 * - `SDL_PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER`: the queue
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
531 * family index used for rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
532 * - `SDL_PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER`: the queue
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
533 * family index used for presentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
534 * - `SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER`: the number of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
535 * swapchain images, or potential frames in flight, used by the Vulkan
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
536 * renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
537 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
538 * With the gpu renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
539 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
540 * - `SDL_PROP_RENDERER_GPU_DEVICE_POINTER`: the SDL_GPUDevice associated with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
541 * the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
542 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
543 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
544 * \returns a valid property ID on success or 0 on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
545 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
546 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
547 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
548 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
549 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
550 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
551 extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetRendererProperties(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
552
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
553 #define SDL_PROP_RENDERER_NAME_STRING "SDL.renderer.name"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
554 #define SDL_PROP_RENDERER_WINDOW_POINTER "SDL.renderer.window"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
555 #define SDL_PROP_RENDERER_SURFACE_POINTER "SDL.renderer.surface"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
556 #define SDL_PROP_RENDERER_VSYNC_NUMBER "SDL.renderer.vsync"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
557 #define SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER "SDL.renderer.max_texture_size"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
558 #define SDL_PROP_RENDERER_TEXTURE_FORMATS_POINTER "SDL.renderer.texture_formats"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
559 #define SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN "SDL.renderer.texture_wrapping"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
560 #define SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER "SDL.renderer.output_colorspace"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
561 #define SDL_PROP_RENDERER_HDR_ENABLED_BOOLEAN "SDL.renderer.HDR_enabled"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
562 #define SDL_PROP_RENDERER_SDR_WHITE_POINT_FLOAT "SDL.renderer.SDR_white_point"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
563 #define SDL_PROP_RENDERER_HDR_HEADROOM_FLOAT "SDL.renderer.HDR_headroom"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
564 #define SDL_PROP_RENDERER_D3D9_DEVICE_POINTER "SDL.renderer.d3d9.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
565 #define SDL_PROP_RENDERER_D3D11_DEVICE_POINTER "SDL.renderer.d3d11.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
566 #define SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER "SDL.renderer.d3d11.swap_chain"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
567 #define SDL_PROP_RENDERER_D3D12_DEVICE_POINTER "SDL.renderer.d3d12.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
568 #define SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER "SDL.renderer.d3d12.swap_chain"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
569 #define SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER "SDL.renderer.d3d12.command_queue"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
570 #define SDL_PROP_RENDERER_VULKAN_INSTANCE_POINTER "SDL.renderer.vulkan.instance"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
571 #define SDL_PROP_RENDERER_VULKAN_SURFACE_NUMBER "SDL.renderer.vulkan.surface"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
572 #define SDL_PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER "SDL.renderer.vulkan.physical_device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
573 #define SDL_PROP_RENDERER_VULKAN_DEVICE_POINTER "SDL.renderer.vulkan.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
574 #define SDL_PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.vulkan.graphics_queue_family_index"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
575 #define SDL_PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER "SDL.renderer.vulkan.present_queue_family_index"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
576 #define SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER "SDL.renderer.vulkan.swapchain_image_count"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
577 #define SDL_PROP_RENDERER_GPU_DEVICE_POINTER "SDL.renderer.gpu.device"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
578
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
579 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
580 * Get the output size in pixels of a rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
581 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
582 * This returns the true output size in pixels, ignoring any render targets or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
583 * logical size and presentation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
584 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
585 * For the output size of the current rendering target, with logical size
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
586 * adjustments, use SDL_GetCurrentRenderOutputSize() instead.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
587 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
588 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
589 * \param w a pointer filled in with the width in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
590 * \param h a pointer filled in with the height in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
591 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
592 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
593 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
594 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
595 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
596 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
597 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
598 * \sa SDL_GetCurrentRenderOutputSize
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
599 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
600 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderOutputSize(SDL_Renderer *renderer, int *w, int *h);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
601
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
602 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
603 * Get the current output size in pixels of a rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
604 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
605 * If a rendering target is active, this will return the size of the rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
606 * target in pixels, otherwise return the value of SDL_GetRenderOutputSize().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
607 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
608 * Rendering target or not, the output will be adjusted by the current logical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
609 * presentation state, dictated by SDL_SetRenderLogicalPresentation().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
610 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
611 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
612 * \param w a pointer filled in with the current width.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
613 * \param h a pointer filled in with the current height.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
614 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
615 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
616 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
617 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
618 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
619 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
620 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
621 * \sa SDL_GetRenderOutputSize
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
622 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
623 extern SDL_DECLSPEC bool SDLCALL SDL_GetCurrentRenderOutputSize(SDL_Renderer *renderer, int *w, int *h);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
624
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
625 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
626 * Create a texture for a rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
627 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
628 * The contents of a texture when first created are not defined.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
629 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
630 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
631 * \param format one of the enumerated values in SDL_PixelFormat.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
632 * \param access one of the enumerated values in SDL_TextureAccess.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
633 * \param w the width of the texture in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
634 * \param h the height of the texture in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
635 * \returns the created texture or NULL on failure; call SDL_GetError() for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
636 * more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
637 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
638 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
639 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
640 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
641 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
642 * \sa SDL_CreateTextureFromSurface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
643 * \sa SDL_CreateTextureWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
644 * \sa SDL_DestroyTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
645 * \sa SDL_GetTextureSize
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
646 * \sa SDL_UpdateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
647 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
648 extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer *renderer, SDL_PixelFormat format, SDL_TextureAccess access, int w, int h);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
649
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
650 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
651 * Create a texture from an existing surface.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
652 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
653 * The surface is not modified or freed by this function.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
654 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
655 * The SDL_TextureAccess hint for the created texture is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
656 * `SDL_TEXTUREACCESS_STATIC`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
657 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
658 * The pixel format of the created texture may be different from the pixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
659 * format of the surface, and can be queried using the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
660 * SDL_PROP_TEXTURE_FORMAT_NUMBER property.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
661 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
662 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
663 * \param surface the SDL_Surface structure containing pixel data used to fill
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
664 * the texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
665 * \returns the created texture or NULL on failure; call SDL_GetError() for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
666 * more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
667 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
668 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
669 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
670 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
671 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
672 * \sa SDL_CreateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
673 * \sa SDL_CreateTextureWithProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
674 * \sa SDL_DestroyTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
675 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
676 extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *surface);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
677
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
678 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
679 * Create a texture for a rendering context with the specified properties.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
680 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
681 * These are the supported properties:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
682 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
683 * - `SDL_PROP_TEXTURE_CREATE_COLORSPACE_NUMBER`: an SDL_Colorspace value
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
684 * describing the texture colorspace, defaults to SDL_COLORSPACE_SRGB_LINEAR
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
685 * for floating point textures, SDL_COLORSPACE_HDR10 for 10-bit textures,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
686 * SDL_COLORSPACE_SRGB for other RGB textures and SDL_COLORSPACE_JPEG for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
687 * YUV textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
688 * - `SDL_PROP_TEXTURE_CREATE_FORMAT_NUMBER`: one of the enumerated values in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
689 * SDL_PixelFormat, defaults to the best RGBA format for the renderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
690 * - `SDL_PROP_TEXTURE_CREATE_ACCESS_NUMBER`: one of the enumerated values in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
691 * SDL_TextureAccess, defaults to SDL_TEXTUREACCESS_STATIC
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
692 * - `SDL_PROP_TEXTURE_CREATE_WIDTH_NUMBER`: the width of the texture in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
693 * pixels, required
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
694 * - `SDL_PROP_TEXTURE_CREATE_HEIGHT_NUMBER`: the height of the texture in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
695 * pixels, required
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
696 * - `SDL_PROP_TEXTURE_CREATE_PALETTE_POINTER`: an SDL_Palette to use with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
697 * palettized texture formats. This can be set later with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
698 * SDL_SetTexturePalette()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
699 * - `SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT`: for HDR10 and floating
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
700 * point textures, this defines the value of 100% diffuse white, with higher
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
701 * values being displayed in the High Dynamic Range headroom. This defaults
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
702 * to 100 for HDR10 textures and 1.0 for floating point textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
703 * - `SDL_PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT`: for HDR10 and floating
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
704 * point textures, this defines the maximum dynamic range used by the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
705 * content, in terms of the SDR white point. This would be equivalent to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
706 * maxCLL / SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT for HDR10 content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
707 * If this is defined, any values outside the range supported by the display
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
708 * will be scaled into the available HDR headroom, otherwise they are
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
709 * clipped.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
710 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
711 * With the direct3d11 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
712 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
713 * - `SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER`: the ID3D11Texture2D
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
714 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
715 * - `SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER`: the ID3D11Texture2D
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
716 * associated with the U plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
717 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
718 * - `SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER`: the ID3D11Texture2D
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
719 * associated with the V plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
720 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
721 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
722 * With the direct3d12 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
723 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
724 * - `SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER`: the ID3D12Resource
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
725 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
726 * - `SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER`: the ID3D12Resource
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
727 * associated with the U plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
728 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
729 * - `SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER`: the ID3D12Resource
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
730 * associated with the V plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
731 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
732 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
733 * With the metal renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
734 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
735 * - `SDL_PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER`: the CVPixelBufferRef
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
736 * associated with the texture, if you want to create a texture from an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
737 * existing pixel buffer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
738 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
739 * With the opengl renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
740 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
741 * - `SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
742 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
743 * - `SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
744 * associated with the UV plane of an NV12 texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
745 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
746 * - `SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
747 * associated with the U plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
748 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
749 * - `SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
750 * associated with the V plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
751 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
752 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
753 * With the opengles2 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
754 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
755 * - `SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
756 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
757 * - `SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
758 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
759 * - `SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
760 * associated with the UV plane of an NV12 texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
761 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
762 * - `SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
763 * associated with the U plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
764 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
765 * - `SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
766 * associated with the V plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
767 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
768 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
769 * With the vulkan renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
770 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
771 * - `SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER`: the VkImage associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
772 * with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
773 * - `SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER`: the VkImageLayout for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
774 * VkImage, defaults to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
775 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
776 * With the GPU renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
777 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
778 * - `SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER`: the SDL_GPUTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
779 * associated with the texture, if you want to wrap an existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
780 * - `SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_NUMBER`: the SDL_GPUTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
781 * associated with the UV plane of an NV12 texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
782 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
783 * - `SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_U_NUMBER`: the SDL_GPUTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
784 * associated with the U plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
785 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
786 * - `SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_V_NUMBER`: the SDL_GPUTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
787 * associated with the V plane of a YUV texture, if you want to wrap an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
788 * existing texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
789 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
790 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
791 * \param props the properties to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
792 * \returns the created texture or NULL on failure; call SDL_GetError() for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
793 * more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
794 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
795 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
796 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
797 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
798 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
799 * \sa SDL_CreateProperties
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
800 * \sa SDL_CreateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
801 * \sa SDL_CreateTextureFromSurface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
802 * \sa SDL_DestroyTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
803 * \sa SDL_GetTextureSize
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
804 * \sa SDL_UpdateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
805 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
806 extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureWithProperties(SDL_Renderer *renderer, SDL_PropertiesID props);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
807
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
808 #define SDL_PROP_TEXTURE_CREATE_COLORSPACE_NUMBER "SDL.texture.create.colorspace"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
809 #define SDL_PROP_TEXTURE_CREATE_FORMAT_NUMBER "SDL.texture.create.format"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
810 #define SDL_PROP_TEXTURE_CREATE_ACCESS_NUMBER "SDL.texture.create.access"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
811 #define SDL_PROP_TEXTURE_CREATE_WIDTH_NUMBER "SDL.texture.create.width"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
812 #define SDL_PROP_TEXTURE_CREATE_HEIGHT_NUMBER "SDL.texture.create.height"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
813 #define SDL_PROP_TEXTURE_CREATE_PALETTE_POINTER "SDL.texture.create.palette"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
814 #define SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT "SDL.texture.create.SDR_white_point"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
815 #define SDL_PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT "SDL.texture.create.HDR_headroom"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
816 #define SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER "SDL.texture.create.d3d11.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
817 #define SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER "SDL.texture.create.d3d11.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
818 #define SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER "SDL.texture.create.d3d11.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
819 #define SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER "SDL.texture.create.d3d12.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
820 #define SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER "SDL.texture.create.d3d12.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
821 #define SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER "SDL.texture.create.d3d12.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
822 #define SDL_PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER "SDL.texture.create.metal.pixelbuffer"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
823 #define SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER "SDL.texture.create.opengl.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
824 #define SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER "SDL.texture.create.opengl.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
825 #define SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER "SDL.texture.create.opengl.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
826 #define SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER "SDL.texture.create.opengl.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
827 #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER "SDL.texture.create.opengles2.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
828 #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER "SDL.texture.create.opengles2.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
829 #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER "SDL.texture.create.opengles2.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
830 #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER "SDL.texture.create.opengles2.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
831 #define SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER "SDL.texture.create.vulkan.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
832 #define SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER "SDL.texture.create.vulkan.layout"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
833 #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER "SDL.texture.create.gpu.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
834 #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_POINTER "SDL.texture.create.gpu.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
835 #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_U_POINTER "SDL.texture.create.gpu.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
836 #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_V_POINTER "SDL.texture.create.gpu.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
837
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
838 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
839 * Get the properties associated with a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
840 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
841 * The following read-only properties are provided by SDL:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
842 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
843 * - `SDL_PROP_TEXTURE_COLORSPACE_NUMBER`: an SDL_Colorspace value describing
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
844 * the texture colorspace.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
845 * - `SDL_PROP_TEXTURE_FORMAT_NUMBER`: one of the enumerated values in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
846 * SDL_PixelFormat.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
847 * - `SDL_PROP_TEXTURE_ACCESS_NUMBER`: one of the enumerated values in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
848 * SDL_TextureAccess.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
849 * - `SDL_PROP_TEXTURE_WIDTH_NUMBER`: the width of the texture in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
850 * - `SDL_PROP_TEXTURE_HEIGHT_NUMBER`: the height of the texture in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
851 * - `SDL_PROP_TEXTURE_SDR_WHITE_POINT_FLOAT`: for HDR10 and floating point
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
852 * textures, this defines the value of 100% diffuse white, with higher
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
853 * values being displayed in the High Dynamic Range headroom. This defaults
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
854 * to 100 for HDR10 textures and 1.0 for other textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
855 * - `SDL_PROP_TEXTURE_HDR_HEADROOM_FLOAT`: for HDR10 and floating point
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
856 * textures, this defines the maximum dynamic range used by the content, in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
857 * terms of the SDR white point. If this is defined, any values outside the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
858 * range supported by the display will be scaled into the available HDR
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
859 * headroom, otherwise they are clipped. This defaults to 1.0 for SDR
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
860 * textures, 4.0 for HDR10 textures, and no default for floating point
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
861 * textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
862 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
863 * With the direct3d11 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
864 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
865 * - `SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER`: the ID3D11Texture2D associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
866 * with the texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
867 * - `SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER`: the ID3D11Texture2D
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
868 * associated with the U plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
869 * - `SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER`: the ID3D11Texture2D
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
870 * associated with the V plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
871 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
872 * With the direct3d12 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
873 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
874 * - `SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER`: the ID3D12Resource associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
875 * with the texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
876 * - `SDL_PROP_TEXTURE_D3D12_TEXTURE_U_POINTER`: the ID3D12Resource associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
877 * with the U plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
878 * - `SDL_PROP_TEXTURE_D3D12_TEXTURE_V_POINTER`: the ID3D12Resource associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
879 * with the V plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
880 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
881 * With the vulkan renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
882 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
883 * - `SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER`: the VkImage associated with the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
884 * texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
885 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
886 * With the opengl renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
887 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
888 * - `SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER`: the GLuint texture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
889 * with the texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
890 * - `SDL_PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
891 * associated with the UV plane of an NV12 texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
892 * - `SDL_PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER`: the GLuint texture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
893 * with the U plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
894 * - `SDL_PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER`: the GLuint texture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
895 * with the V plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
896 * - `SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER`: the GLenum for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
897 * texture target (`GL_TEXTURE_2D`, `GL_TEXTURE_RECTANGLE_ARB`, etc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
898 * - `SDL_PROP_TEXTURE_OPENGL_TEX_W_FLOAT`: the texture coordinate width of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
899 * the texture (0.0 - 1.0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
900 * - `SDL_PROP_TEXTURE_OPENGL_TEX_H_FLOAT`: the texture coordinate height of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
901 * the texture (0.0 - 1.0)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
902 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
903 * With the opengles2 renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
904 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
905 * - `SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
906 * associated with the texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
907 * - `SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
908 * associated with the UV plane of an NV12 texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
909 * - `SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
910 * associated with the U plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
911 * - `SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER`: the GLuint texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
912 * associated with the V plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
913 * - `SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER`: the GLenum for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
914 * texture target (`GL_TEXTURE_2D`, `GL_TEXTURE_EXTERNAL_OES`, etc)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
915 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
916 * With the gpu renderer:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
917 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
918 * - `SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER`: the SDL_GPUTexture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
919 * with the texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
920 * - `SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER`: the SDL_GPUTexture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
921 * with the UV plane of an NV12 texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
922 * - `SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER`: the SDL_GPUTexture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
923 * with the U plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
924 * - `SDL_PROP_TEXTURE_GPU_TEXTURE_V_POINTER`: the SDL_GPUTexture associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
925 * with the V plane of a YUV texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
926 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
927 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
928 * \returns a valid property ID on success or 0 on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
929 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
930 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
931 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
932 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
933 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
934 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
935 extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetTextureProperties(SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
936
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
937 #define SDL_PROP_TEXTURE_COLORSPACE_NUMBER "SDL.texture.colorspace"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
938 #define SDL_PROP_TEXTURE_FORMAT_NUMBER "SDL.texture.format"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
939 #define SDL_PROP_TEXTURE_ACCESS_NUMBER "SDL.texture.access"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
940 #define SDL_PROP_TEXTURE_WIDTH_NUMBER "SDL.texture.width"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
941 #define SDL_PROP_TEXTURE_HEIGHT_NUMBER "SDL.texture.height"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
942 #define SDL_PROP_TEXTURE_SDR_WHITE_POINT_FLOAT "SDL.texture.SDR_white_point"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
943 #define SDL_PROP_TEXTURE_HDR_HEADROOM_FLOAT "SDL.texture.HDR_headroom"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
944 #define SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER "SDL.texture.d3d11.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
945 #define SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER "SDL.texture.d3d11.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
946 #define SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER "SDL.texture.d3d11.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
947 #define SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER "SDL.texture.d3d12.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
948 #define SDL_PROP_TEXTURE_D3D12_TEXTURE_U_POINTER "SDL.texture.d3d12.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
949 #define SDL_PROP_TEXTURE_D3D12_TEXTURE_V_POINTER "SDL.texture.d3d12.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
950 #define SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER "SDL.texture.opengl.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
951 #define SDL_PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER "SDL.texture.opengl.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
952 #define SDL_PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER "SDL.texture.opengl.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
953 #define SDL_PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER "SDL.texture.opengl.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
954 #define SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER "SDL.texture.opengl.target"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
955 #define SDL_PROP_TEXTURE_OPENGL_TEX_W_FLOAT "SDL.texture.opengl.tex_w"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
956 #define SDL_PROP_TEXTURE_OPENGL_TEX_H_FLOAT "SDL.texture.opengl.tex_h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
957 #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER "SDL.texture.opengles2.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
958 #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER "SDL.texture.opengles2.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
959 #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER "SDL.texture.opengles2.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
960 #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER "SDL.texture.opengles2.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
961 #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER "SDL.texture.opengles2.target"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
962 #define SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER "SDL.texture.vulkan.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
963 #define SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER "SDL.texture.gpu.texture"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
964 #define SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER "SDL.texture.gpu.texture_uv"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
965 #define SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER "SDL.texture.gpu.texture_u"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
966 #define SDL_PROP_TEXTURE_GPU_TEXTURE_V_POINTER "SDL.texture.gpu.texture_v"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
967
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
968 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
969 * Get the renderer that created an SDL_Texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
970 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
971 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
972 * \returns a pointer to the SDL_Renderer that created the texture, or NULL on
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
973 * failure; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
974 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
975 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
976 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
977 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
978 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
979 extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_GetRendererFromTexture(SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
980
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
981 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
982 * Get the size of a texture, as floating point values.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
983 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
984 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
985 * \param w a pointer filled in with the width of the texture in pixels. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
986 * argument can be NULL if you don't need this information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
987 * \param h a pointer filled in with the height of the texture in pixels. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
988 * argument can be NULL if you don't need this information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
989 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
990 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
991 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
992 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
993 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
994 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
995 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
996 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureSize(SDL_Texture *texture, float *w, float *h);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
997
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
998 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
999 * Set the palette used by a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1000 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1001 * Setting the palette keeps an internal reference to the palette, which can
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1002 * be safely destroyed afterwards.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1003 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1004 * A single palette can be shared with many textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1005 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1006 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1007 * \param palette the SDL_Palette structure to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1008 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1009 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1010 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1011 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1012 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1013 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1014 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1015 * \sa SDL_CreatePalette
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1016 * \sa SDL_GetTexturePalette
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1017 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1018 extern SDL_DECLSPEC bool SDLCALL SDL_SetTexturePalette(SDL_Texture *texture, SDL_Palette *palette);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1019
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1020 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1021 * Get the palette used by a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1022 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1023 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1024 * \returns a pointer to the palette used by the texture, or NULL if there is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1025 * no palette used.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1026 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1027 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1028 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1029 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1030 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1031 * \sa SDL_SetTexturePalette
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1032 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1033 extern SDL_DECLSPEC SDL_Palette * SDLCALL SDL_GetTexturePalette(SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1034
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1035 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1036 * Set an additional color value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1037 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1038 * When this texture is rendered, during the copy operation each source color
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1039 * channel is modulated by the appropriate color value according to the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1040 * following formula:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1041 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1042 * `srcC = srcC * (color / 255)`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1043 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1044 * Color modulation is not always supported by the renderer; it will return
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1045 * false if color modulation is not supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1046 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1047 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1048 * \param r the red color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1049 * \param g the green color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1050 * \param b the blue color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1051 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1052 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1053 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1054 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1055 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1056 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1057 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1058 * \sa SDL_GetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1059 * \sa SDL_SetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1060 * \sa SDL_SetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1061 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1062 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureColorMod(SDL_Texture *texture, Uint8 r, Uint8 g, Uint8 b);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1063
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1064
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1065 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1066 * Set an additional color value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1067 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1068 * When this texture is rendered, during the copy operation each source color
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1069 * channel is modulated by the appropriate color value according to the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1070 * following formula:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1071 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1072 * `srcC = srcC * color`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1073 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1074 * Color modulation is not always supported by the renderer; it will return
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1075 * false if color modulation is not supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1076 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1077 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1078 * \param r the red color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1079 * \param g the green color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1080 * \param b the blue color value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1081 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1082 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1083 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1084 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1085 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1086 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1087 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1088 * \sa SDL_GetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1089 * \sa SDL_SetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1090 * \sa SDL_SetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1091 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1092 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureColorModFloat(SDL_Texture *texture, float r, float g, float b);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1093
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1094
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1095 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1096 * Get the additional color value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1097 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1098 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1099 * \param r a pointer filled in with the current red color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1100 * \param g a pointer filled in with the current green color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1101 * \param b a pointer filled in with the current blue color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1102 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1103 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1104 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1105 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1106 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1107 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1108 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1109 * \sa SDL_GetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1110 * \sa SDL_GetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1111 * \sa SDL_SetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1112 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1113 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureColorMod(SDL_Texture *texture, Uint8 *r, Uint8 *g, Uint8 *b);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1114
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1115 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1116 * Get the additional color value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1117 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1118 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1119 * \param r a pointer filled in with the current red color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1120 * \param g a pointer filled in with the current green color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1121 * \param b a pointer filled in with the current blue color value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1122 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1123 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1124 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1125 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1126 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1127 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1128 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1129 * \sa SDL_GetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1130 * \sa SDL_GetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1131 * \sa SDL_SetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1132 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1133 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureColorModFloat(SDL_Texture *texture, float *r, float *g, float *b);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1134
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1135 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1136 * Set an additional alpha value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1137 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1138 * When this texture is rendered, during the copy operation the source alpha
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1139 * value is modulated by this alpha value according to the following formula:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1140 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1141 * `srcA = srcA * (alpha / 255)`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1142 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1143 * Alpha modulation is not always supported by the renderer; it will return
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1144 * false if alpha modulation is not supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1145 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1146 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1147 * \param alpha the source alpha value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1148 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1149 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1150 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1151 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1152 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1153 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1154 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1155 * \sa SDL_GetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1156 * \sa SDL_SetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1157 * \sa SDL_SetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1158 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1159 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureAlphaMod(SDL_Texture *texture, Uint8 alpha);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1160
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1161 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1162 * Set an additional alpha value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1163 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1164 * When this texture is rendered, during the copy operation the source alpha
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1165 * value is modulated by this alpha value according to the following formula:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1166 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1167 * `srcA = srcA * alpha`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1168 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1169 * Alpha modulation is not always supported by the renderer; it will return
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1170 * false if alpha modulation is not supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1171 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1172 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1173 * \param alpha the source alpha value multiplied into copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1174 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1175 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1176 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1177 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1178 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1179 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1180 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1181 * \sa SDL_GetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1182 * \sa SDL_SetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1183 * \sa SDL_SetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1184 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1185 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureAlphaModFloat(SDL_Texture *texture, float alpha);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1187 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1188 * Get the additional alpha value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1189 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1190 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1191 * \param alpha a pointer filled in with the current alpha value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1192 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1193 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1194 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1195 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1196 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1197 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1198 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1199 * \sa SDL_GetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1200 * \sa SDL_GetTextureColorMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1201 * \sa SDL_SetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1202 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1203 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureAlphaMod(SDL_Texture *texture, Uint8 *alpha);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1204
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1205 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1206 * Get the additional alpha value multiplied into render copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1207 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1208 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1209 * \param alpha a pointer filled in with the current alpha value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1210 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1211 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1212 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1213 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1214 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1215 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1216 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1217 * \sa SDL_GetTextureAlphaMod
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1218 * \sa SDL_GetTextureColorModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1219 * \sa SDL_SetTextureAlphaModFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1220 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1221 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureAlphaModFloat(SDL_Texture *texture, float *alpha);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1222
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1223 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1224 * Set the blend mode for a texture, used by SDL_RenderTexture().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1225 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1226 * If the blend mode is not supported, the closest supported mode is chosen
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1227 * and this function returns false.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1228 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1229 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1230 * \param blendMode the SDL_BlendMode to use for texture blending.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1231 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1232 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1233 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1234 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1235 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1236 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1237 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1238 * \sa SDL_GetTextureBlendMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1239 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1240 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureBlendMode(SDL_Texture *texture, SDL_BlendMode blendMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1241
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1242 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1243 * Get the blend mode used for texture copy operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1244 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1245 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1246 * \param blendMode a pointer filled in with the current SDL_BlendMode.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1247 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1248 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1249 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1250 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1251 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1252 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1253 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1254 * \sa SDL_SetTextureBlendMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1255 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1256 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureBlendMode(SDL_Texture *texture, SDL_BlendMode *blendMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1257
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1258 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1259 * Set the scale mode used for texture scale operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1260 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1261 * The default texture scale mode is SDL_SCALEMODE_LINEAR.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1262 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1263 * If the scale mode is not supported, the closest supported mode is chosen.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1264 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1265 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1266 * \param scaleMode the SDL_ScaleMode to use for texture scaling.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1267 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1268 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1269 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1270 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1271 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1272 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1273 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1274 * \sa SDL_GetTextureScaleMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1275 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1276 extern SDL_DECLSPEC bool SDLCALL SDL_SetTextureScaleMode(SDL_Texture *texture, SDL_ScaleMode scaleMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1277
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1278 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1279 * Get the scale mode used for texture scale operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1280 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1281 * \param texture the texture to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1282 * \param scaleMode a pointer filled in with the current scale mode.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1283 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1284 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1285 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1286 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1287 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1288 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1289 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1290 * \sa SDL_SetTextureScaleMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1291 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1292 extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureScaleMode(SDL_Texture *texture, SDL_ScaleMode *scaleMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1293
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1294 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1295 * Update the given texture rectangle with new pixel data.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1296 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1297 * The pixel data must be in the pixel format of the texture, which can be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1298 * queried using the SDL_PROP_TEXTURE_FORMAT_NUMBER property.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1299 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1300 * This is a fairly slow function, intended for use with static textures that
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1301 * do not change often.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1302 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1303 * If the texture is intended to be updated often, it is preferred to create
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1304 * the texture as streaming and use the locking functions referenced below.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1305 * While this function will work with streaming textures, for optimization
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1306 * reasons you may not get the pixels back if you lock the texture afterward.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1307 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1308 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1309 * \param rect an SDL_Rect structure representing the area to update, or NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1310 * to update the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1311 * \param pixels the raw pixel data in the format of the texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1312 * \param pitch the number of bytes in a row of pixel data, including padding
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1313 * between lines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1314 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1315 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1316 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1317 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1318 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1319 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1320 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1321 * \sa SDL_LockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1322 * \sa SDL_UnlockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1323 * \sa SDL_UpdateNVTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1324 * \sa SDL_UpdateYUVTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1325 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1326 extern SDL_DECLSPEC bool SDLCALL SDL_UpdateTexture(SDL_Texture *texture, const SDL_Rect *rect, const void *pixels, int pitch);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1327
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1328 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1329 * Update a rectangle within a planar YV12 or IYUV texture with new pixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1330 * data.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1331 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1332 * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1333 * block of Y and U/V planes in the proper order, but this function is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1334 * available if your pixel data is not contiguous.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1335 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1336 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1337 * \param rect a pointer to the rectangle of pixels to update, or NULL to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1338 * update the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1339 * \param Yplane the raw pixel data for the Y plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1340 * \param Ypitch the number of bytes between rows of pixel data for the Y
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1341 * plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1342 * \param Uplane the raw pixel data for the U plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1343 * \param Upitch the number of bytes between rows of pixel data for the U
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1344 * plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1345 * \param Vplane the raw pixel data for the V plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1346 * \param Vpitch the number of bytes between rows of pixel data for the V
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1347 * plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1348 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1349 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1350 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1351 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1352 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1353 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1354 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1355 * \sa SDL_UpdateNVTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1356 * \sa SDL_UpdateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1357 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1358 extern SDL_DECLSPEC bool SDLCALL SDL_UpdateYUVTexture(SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1359 const SDL_Rect *rect,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1360 const Uint8 *Yplane, int Ypitch,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1361 const Uint8 *Uplane, int Upitch,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1362 const Uint8 *Vplane, int Vpitch);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1363
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1364 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1365 * Update a rectangle within a planar NV12 or NV21 texture with new pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1366 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1367 * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1368 * block of NV12/21 planes in the proper order, but this function is available
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1369 * if your pixel data is not contiguous.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1370 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1371 * \param texture the texture to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1372 * \param rect a pointer to the rectangle of pixels to update, or NULL to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1373 * update the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1374 * \param Yplane the raw pixel data for the Y plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1375 * \param Ypitch the number of bytes between rows of pixel data for the Y
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1376 * plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1377 * \param UVplane the raw pixel data for the UV plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1378 * \param UVpitch the number of bytes between rows of pixel data for the UV
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1379 * plane.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1380 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1381 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1382 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1383 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1384 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1385 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1386 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1387 * \sa SDL_UpdateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1388 * \sa SDL_UpdateYUVTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1389 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1390 extern SDL_DECLSPEC bool SDLCALL SDL_UpdateNVTexture(SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1391 const SDL_Rect *rect,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1392 const Uint8 *Yplane, int Ypitch,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1393 const Uint8 *UVplane, int UVpitch);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1394
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1395 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1396 * Lock a portion of the texture for **write-only** pixel access.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1397 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1398 * As an optimization, the pixels made available for editing don't necessarily
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1399 * contain the old texture data. This is a write-only operation, and if you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1400 * need to keep a copy of the texture data you should do that at the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1401 * application level.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1402 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1403 * You must use SDL_UnlockTexture() to unlock the pixels and apply any
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1404 * changes.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1405 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1406 * \param texture the texture to lock for access, which was created with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1407 * `SDL_TEXTUREACCESS_STREAMING`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1408 * \param rect an SDL_Rect structure representing the area to lock for access;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1409 * NULL to lock the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1410 * \param pixels this is filled in with a pointer to the locked pixels,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1411 * appropriately offset by the locked area.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1412 * \param pitch this is filled in with the pitch of the locked pixels; the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1413 * pitch is the length of one row in bytes.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1414 * \returns true on success or false if the texture is not valid or was not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1415 * created with `SDL_TEXTUREACCESS_STREAMING`; call SDL_GetError()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1416 * for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1417 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1418 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1419 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1420 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1421 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1422 * \sa SDL_LockTextureToSurface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1423 * \sa SDL_UnlockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1424 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1425 extern SDL_DECLSPEC bool SDLCALL SDL_LockTexture(SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1426 const SDL_Rect *rect,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1427 void **pixels, int *pitch);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1428
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1429 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1430 * Lock a portion of the texture for **write-only** pixel access, and expose
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1431 * it as a SDL surface.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1432 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1433 * Besides providing an SDL_Surface instead of raw pixel data, this function
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1434 * operates like SDL_LockTexture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1435 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1436 * As an optimization, the pixels made available for editing don't necessarily
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1437 * contain the old texture data. This is a write-only operation, and if you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1438 * need to keep a copy of the texture data you should do that at the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1439 * application level.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1440 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1441 * You must use SDL_UnlockTexture() to unlock the pixels and apply any
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1442 * changes.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1443 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1444 * The returned surface is freed internally after calling SDL_UnlockTexture()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1445 * or SDL_DestroyTexture(). The caller should not free it.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1446 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1447 * \param texture the texture to lock for access, which must be created with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1448 * `SDL_TEXTUREACCESS_STREAMING`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1449 * \param rect a pointer to the rectangle to lock for access. If the rect is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1450 * NULL, the entire texture will be locked.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1451 * \param surface a pointer to an SDL surface of size **rect**. Don't assume
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1452 * any specific pixel content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1453 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1454 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1455 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1456 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1457 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1458 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1459 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1460 * \sa SDL_LockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1461 * \sa SDL_UnlockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1462 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1463 extern SDL_DECLSPEC bool SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture, const SDL_Rect *rect, SDL_Surface **surface);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1464
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1465 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1466 * Unlock a texture, uploading the changes to video memory, if needed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1467 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1468 * **Warning**: Please note that SDL_LockTexture() is intended to be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1469 * write-only; it will not guarantee the previous contents of the texture will
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1470 * be provided. You must fully initialize any area of a texture that you lock
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1471 * before unlocking it, as the pixels might otherwise be uninitialized memory.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1472 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1473 * Which is to say: locking and immediately unlocking a texture can result in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1474 * corrupted textures, depending on the renderer in use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1475 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1476 * \param texture a texture locked by SDL_LockTexture().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1477 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1478 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1479 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1480 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1481 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1482 * \sa SDL_LockTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1483 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1484 extern SDL_DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1485
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1486 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1487 * Set a texture as the current rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1488 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1489 * The default render target is the window for which the renderer was created.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1490 * To stop rendering to a texture and render to the window again, call this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1491 * function with a NULL `texture`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1492 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1493 * Viewport, cliprect, scale, and logical presentation are unique to each
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1494 * render target. Get and set functions for these states apply to the current
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1495 * render target set by this function, and those states persist on each target
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1496 * when the current render target changes.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1497 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1498 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1499 * \param texture the targeted texture, which must be created with the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1500 * `SDL_TEXTUREACCESS_TARGET` flag, or NULL to render to the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1501 * window instead of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1502 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1503 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1504 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1505 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1506 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1507 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1508 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1509 * \sa SDL_GetRenderTarget
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1510 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1511 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1512
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1513 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1514 * Get the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1515 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1516 * The default render target is the window for which the renderer was created,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1517 * and is reported a NULL here.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1518 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1519 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1520 * \returns the current render target or NULL for the default render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1521 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1522 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1523 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1524 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1525 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1526 * \sa SDL_SetRenderTarget
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1527 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1528 extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1529
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1530 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1531 * Set a device-independent resolution and presentation mode for rendering.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1532 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1533 * This function sets the width and height of the logical rendering output.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1534 * The renderer will act as if the current render target is always the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1535 * requested dimensions, scaling to the actual resolution as necessary.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1536 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1537 * This can be useful for games that expect a fixed size, but would like to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1538 * scale the output to whatever is available, regardless of how a user resizes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1539 * a window, or if the display is high DPI.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1540 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1541 * Logical presentation can be used with both render target textures and the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1542 * renderer's window; the state is unique to each render target, and this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1543 * function sets the state for the current render target. It might be useful
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1544 * to draw to a texture that matches the window dimensions with logical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1545 * presentation enabled, and then draw that texture across the entire window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1546 * with logical presentation disabled. Be careful not to render both with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1547 * logical presentation enabled, however, as this could produce
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1548 * double-letterboxing, etc.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1549 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1550 * You can disable logical coordinates by setting the mode to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1551 * SDL_LOGICAL_PRESENTATION_DISABLED, and in that case you get the full pixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1552 * resolution of the render target; it is safe to toggle logical presentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1553 * during the rendering of a frame: perhaps most of the rendering is done to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1554 * specific dimensions but to make fonts look sharp, the app turns off logical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1555 * presentation while drawing text, for example.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1556 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1557 * You can convert coordinates in an event into rendering coordinates using
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1558 * SDL_ConvertEventToRenderCoordinates().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1559 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1560 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1561 * \param w the width of the logical resolution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1562 * \param h the height of the logical resolution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1563 * \param mode the presentation mode used.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1564 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1565 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1566 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1567 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1568 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1569 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1570 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1571 * \sa SDL_ConvertEventToRenderCoordinates
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1572 * \sa SDL_GetRenderLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1573 * \sa SDL_GetRenderLogicalPresentationRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1574 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1575 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderLogicalPresentation(SDL_Renderer *renderer, int w, int h, SDL_RendererLogicalPresentation mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1576
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1577 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1578 * Get device independent resolution and presentation mode for rendering.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1579 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1580 * This function gets the width and height of the logical rendering output, or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1581 * 0 if a logical resolution is not enabled.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1582 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1583 * Each render target has its own logical presentation state. This function
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1584 * gets the state for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1585 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1586 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1587 * \param w an int filled with the logical presentation width.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1588 * \param h an int filled with the logical presentation height.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1589 * \param mode a variable filled with the logical presentation mode being
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1590 * used.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1591 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1592 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1593 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1594 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1595 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1596 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1597 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1598 * \sa SDL_SetRenderLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1599 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1600 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderLogicalPresentation(SDL_Renderer *renderer, int *w, int *h, SDL_RendererLogicalPresentation *mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1601
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1602 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1603 * Get the final presentation rectangle for rendering.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1604 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1605 * This function returns the calculated rectangle used for logical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1606 * presentation, based on the presentation mode and output size. If logical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1607 * presentation is disabled, it will fill the rectangle with the output size,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1608 * in pixels.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1609 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1610 * Each render target has its own logical presentation state. This function
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1611 * gets the rectangle for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1612 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1613 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1614 * \param rect a pointer filled in with the final presentation rectangle, may
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1615 * be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1616 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1617 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1618 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1619 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1620 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1621 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1622 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1623 * \sa SDL_SetRenderLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1624 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1625 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderLogicalPresentationRect(SDL_Renderer *renderer, SDL_FRect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1626
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1627 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1628 * Get a point in render coordinates when given a point in window coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1629 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1630 * This takes into account several states:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1631 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1632 * - The window dimensions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1633 * - The logical presentation settings (SDL_SetRenderLogicalPresentation)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1634 * - The scale (SDL_SetRenderScale)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1635 * - The viewport (SDL_SetRenderViewport)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1636 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1637 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1638 * \param window_x the x coordinate in window coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1639 * \param window_y the y coordinate in window coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1640 * \param x a pointer filled with the x coordinate in render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1641 * \param y a pointer filled with the y coordinate in render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1642 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1643 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1644 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1645 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1646 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1647 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1648 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1649 * \sa SDL_SetRenderLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1650 * \sa SDL_SetRenderScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1651 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1652 extern SDL_DECLSPEC bool SDLCALL SDL_RenderCoordinatesFromWindow(SDL_Renderer *renderer, float window_x, float window_y, float *x, float *y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1653
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1654 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1655 * Get a point in window coordinates when given a point in render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1656 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1657 * This takes into account several states:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1658 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1659 * - The window dimensions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1660 * - The logical presentation settings (SDL_SetRenderLogicalPresentation)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1661 * - The scale (SDL_SetRenderScale)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1662 * - The viewport (SDL_SetRenderViewport)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1663 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1664 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1665 * \param x the x coordinate in render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1666 * \param y the y coordinate in render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1667 * \param window_x a pointer filled with the x coordinate in window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1668 * coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1669 * \param window_y a pointer filled with the y coordinate in window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1670 * coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1671 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1672 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1673 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1674 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1675 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1676 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1677 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1678 * \sa SDL_SetRenderLogicalPresentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1679 * \sa SDL_SetRenderScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1680 * \sa SDL_SetRenderViewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1681 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1682 extern SDL_DECLSPEC bool SDLCALL SDL_RenderCoordinatesToWindow(SDL_Renderer *renderer, float x, float y, float *window_x, float *window_y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1683
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1684 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1685 * Convert the coordinates in an event to render coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1686 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1687 * This takes into account several states:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1688 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1689 * - The window dimensions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1690 * - The logical presentation settings (SDL_SetRenderLogicalPresentation)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1691 * - The scale (SDL_SetRenderScale)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1692 * - The viewport (SDL_SetRenderViewport)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1693 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1694 * Various event types are converted with this function: mouse, touch, pen,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1695 * etc.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1696 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1697 * Touch coordinates are converted from normalized coordinates in the window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1698 * to non-normalized rendering coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1699 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1700 * Relative mouse coordinates (xrel and yrel event fields) are _also_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1701 * converted. Applications that do not want these fields converted should use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1702 * SDL_RenderCoordinatesFromWindow() on the specific event fields instead of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1703 * converting the entire event structure.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1704 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1705 * Once converted, coordinates may be outside the rendering area.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1706 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1707 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1708 * \param event the event to modify.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1709 * \returns true if the event is converted or doesn't need conversion, or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1710 * false on failure; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1711 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1712 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1713 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1714 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1715 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1716 * \sa SDL_RenderCoordinatesFromWindow
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1717 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1718 extern SDL_DECLSPEC bool SDLCALL SDL_ConvertEventToRenderCoordinates(SDL_Renderer *renderer, SDL_Event *event);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1719
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1720 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1721 * Set the drawing area for rendering on the current target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1722 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1723 * Drawing will clip to this area (separately from any clipping done with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1724 * SDL_SetRenderClipRect), and the top left of the area will become coordinate
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1725 * (0, 0) for future drawing commands.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1726 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1727 * The area's width and height must be >= 0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1728 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1729 * Each render target has its own viewport. This function sets the viewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1730 * for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1731 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1732 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1733 * \param rect the SDL_Rect structure representing the drawing area, or NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1734 * to set the viewport to the entire target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1735 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1736 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1737 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1738 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1739 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1740 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1741 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1742 * \sa SDL_GetRenderViewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1743 * \sa SDL_RenderViewportSet
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1744 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1745 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderViewport(SDL_Renderer *renderer, const SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1746
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1747 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1748 * Get the drawing area for the current target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1749 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1750 * Each render target has its own viewport. This function gets the viewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1751 * for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1752 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1753 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1754 * \param rect an SDL_Rect structure filled in with the current drawing area.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1755 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1756 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1757 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1758 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1759 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1760 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1761 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1762 * \sa SDL_RenderViewportSet
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1763 * \sa SDL_SetRenderViewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1764 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1765 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderViewport(SDL_Renderer *renderer, SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1766
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1767 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1768 * Return whether an explicit rectangle was set as the viewport.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1769 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1770 * This is useful if you're saving and restoring the viewport and want to know
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1771 * whether you should restore a specific rectangle or NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1772 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1773 * Each render target has its own viewport. This function checks the viewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1774 * for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1775 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1776 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1777 * \returns true if the viewport was set to a specific rectangle, or false if
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1778 * it was set to NULL (the entire target).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1779 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1780 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1781 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1782 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1783 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1784 * \sa SDL_GetRenderViewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1785 * \sa SDL_SetRenderViewport
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1786 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1787 extern SDL_DECLSPEC bool SDLCALL SDL_RenderViewportSet(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1788
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1789 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1790 * Get the safe area for rendering within the current viewport.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1791 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1792 * Some devices have portions of the screen which are partially obscured or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1793 * not interactive, possibly due to on-screen controls, curved edges, camera
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1794 * notches, TV overscan, etc. This function provides the area of the current
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1795 * viewport which is safe to have interactible content. You should continue
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1796 * rendering into the rest of the render target, but it should not contain
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1797 * visually important or interactible content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1798 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1799 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1800 * \param rect a pointer filled in with the area that is safe for interactive
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1801 * content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1802 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1803 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1804 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1805 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1806 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1807 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1808 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1809 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderSafeArea(SDL_Renderer *renderer, SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1810
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1811 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1812 * Set the clip rectangle for rendering on the specified target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1813 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1814 * Each render target has its own clip rectangle. This function sets the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1815 * cliprect for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1816 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1817 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1818 * \param rect an SDL_Rect structure representing the clip area, relative to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1819 * the viewport, or NULL to disable clipping.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1820 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1821 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1822 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1823 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1824 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1825 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1826 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1827 * \sa SDL_GetRenderClipRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1828 * \sa SDL_RenderClipEnabled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1829 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1830 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderClipRect(SDL_Renderer *renderer, const SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1831
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1832 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1833 * Get the clip rectangle for the current target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1834 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1835 * Each render target has its own clip rectangle. This function gets the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1836 * cliprect for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1837 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1838 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1839 * \param rect an SDL_Rect structure filled in with the current clipping area
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1840 * or an empty rectangle if clipping is disabled.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1841 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1842 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1843 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1844 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1845 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1846 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1847 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1848 * \sa SDL_RenderClipEnabled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1849 * \sa SDL_SetRenderClipRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1850 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1851 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderClipRect(SDL_Renderer *renderer, SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1852
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1853 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1854 * Get whether clipping is enabled on the given render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1855 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1856 * Each render target has its own clip rectangle. This function checks the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1857 * cliprect for the current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1858 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1859 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1860 * \returns true if clipping is enabled or false if not; call SDL_GetError()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1861 * for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1862 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1863 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1864 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1865 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1866 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1867 * \sa SDL_GetRenderClipRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1868 * \sa SDL_SetRenderClipRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1869 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1870 extern SDL_DECLSPEC bool SDLCALL SDL_RenderClipEnabled(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1871
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1872 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1873 * Set the drawing scale for rendering on the current target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1874 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1875 * The drawing coordinates are scaled by the x/y scaling factors before they
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1876 * are used by the renderer. This allows resolution independent drawing with a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1877 * single coordinate system.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1878 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1879 * If this results in scaling or subpixel drawing by the rendering backend, it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1880 * will be handled using the appropriate quality hints. For best results use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1881 * integer scaling factors.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1882 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1883 * Each render target has its own scale. This function sets the scale for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1884 * current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1885 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1886 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1887 * \param scaleX the horizontal scaling factor.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1888 * \param scaleY the vertical scaling factor.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1889 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1890 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1891 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1892 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1893 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1894 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1895 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1896 * \sa SDL_GetRenderScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1897 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1898 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderScale(SDL_Renderer *renderer, float scaleX, float scaleY);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1899
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1900 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1901 * Get the drawing scale for the current target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1902 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1903 * Each render target has its own scale. This function gets the scale for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1904 * current render target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1905 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1906 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1907 * \param scaleX a pointer filled in with the horizontal scaling factor.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1908 * \param scaleY a pointer filled in with the vertical scaling factor.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1909 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1910 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1911 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1912 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1913 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1914 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1915 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1916 * \sa SDL_SetRenderScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1917 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1918 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderScale(SDL_Renderer *renderer, float *scaleX, float *scaleY);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1919
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1920 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1921 * Set the color used for drawing operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1922 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1923 * Set the color for drawing or filling rectangles, lines, and points, and for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1924 * SDL_RenderClear().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1925 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1926 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1927 * \param r the red value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1928 * \param g the green value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1929 * \param b the blue value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1930 * \param a the alpha value used to draw on the rendering target; usually
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1931 * `SDL_ALPHA_OPAQUE` (255). Use SDL_SetRenderDrawBlendMode to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1932 * specify how the alpha channel is used.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1933 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1934 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1935 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1936 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1937 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1938 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1939 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1940 * \sa SDL_GetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1941 * \sa SDL_SetRenderDrawColorFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1942 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1943 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderDrawColor(SDL_Renderer *renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1944
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1945 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1946 * Set the color used for drawing operations (Rect, Line and Clear).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1947 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1948 * Set the color for drawing or filling rectangles, lines, and points, and for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1949 * SDL_RenderClear().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1950 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1951 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1952 * \param r the red value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1953 * \param g the green value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1954 * \param b the blue value used to draw on the rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1955 * \param a the alpha value used to draw on the rendering target. Use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1956 * SDL_SetRenderDrawBlendMode to specify how the alpha channel is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1957 * used.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1958 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1959 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1960 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1961 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1962 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1963 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1964 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1965 * \sa SDL_GetRenderDrawColorFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1966 * \sa SDL_SetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1967 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1968 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderDrawColorFloat(SDL_Renderer *renderer, float r, float g, float b, float a);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1969
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1970 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1971 * Get the color used for drawing operations (Rect, Line and Clear).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1972 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1973 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1974 * \param r a pointer filled in with the red value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1975 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1976 * \param g a pointer filled in with the green value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1977 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1978 * \param b a pointer filled in with the blue value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1979 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1980 * \param a a pointer filled in with the alpha value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1981 * rendering target; usually `SDL_ALPHA_OPAQUE` (255).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1982 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1983 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1984 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1985 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1986 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1987 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1988 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1989 * \sa SDL_GetRenderDrawColorFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1990 * \sa SDL_SetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1991 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1992 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderDrawColor(SDL_Renderer *renderer, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1993
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1994 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1995 * Get the color used for drawing operations (Rect, Line and Clear).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1996 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1997 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1998 * \param r a pointer filled in with the red value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1999 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2000 * \param g a pointer filled in with the green value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2001 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2002 * \param b a pointer filled in with the blue value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2003 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2004 * \param a a pointer filled in with the alpha value used to draw on the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2005 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2006 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2007 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2008 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2009 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2010 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2011 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2012 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2013 * \sa SDL_SetRenderDrawColorFloat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2014 * \sa SDL_GetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2015 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2016 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderDrawColorFloat(SDL_Renderer *renderer, float *r, float *g, float *b, float *a);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2017
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2018 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2019 * Set the color scale used for render operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2020 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2021 * The color scale is an additional scale multiplied into the pixel color
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2022 * value while rendering. This can be used to adjust the brightness of colors
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2023 * during HDR rendering, or changing HDR video brightness when playing on an
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2024 * SDR display.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2025 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2026 * The color scale does not affect the alpha channel, only the color
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2027 * brightness.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2028 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2029 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2030 * \param scale the color scale value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2031 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2032 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2033 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2034 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2035 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2036 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2037 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2038 * \sa SDL_GetRenderColorScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2039 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2040 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderColorScale(SDL_Renderer *renderer, float scale);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2041
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2042 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2043 * Get the color scale used for render operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2044 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2045 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2046 * \param scale a pointer filled in with the current color scale value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2047 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2048 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2049 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2050 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2051 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2052 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2053 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2054 * \sa SDL_SetRenderColorScale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2055 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2056 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderColorScale(SDL_Renderer *renderer, float *scale);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2057
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2058 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2059 * Set the blend mode used for drawing operations (Fill and Line).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2060 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2061 * If the blend mode is not supported, the closest supported mode is chosen.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2062 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2063 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2064 * \param blendMode the SDL_BlendMode to use for blending.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2065 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2066 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2067 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2068 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2069 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2070 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2071 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2072 * \sa SDL_GetRenderDrawBlendMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2073 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2074 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer *renderer, SDL_BlendMode blendMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2075
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2076 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2077 * Get the blend mode used for drawing operations.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2078 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2079 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2080 * \param blendMode a pointer filled in with the current SDL_BlendMode.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2081 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2082 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2083 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2084 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2085 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2086 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2087 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2088 * \sa SDL_SetRenderDrawBlendMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2089 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2090 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer *renderer, SDL_BlendMode *blendMode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2091
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2092 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2093 * Clear the current rendering target with the drawing color.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2094 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2095 * This function clears the entire rendering target, ignoring the viewport and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2096 * the clip rectangle. Note, that clearing will also set/fill all pixels of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2097 * the rendering target to current renderer draw color, so make sure to invoke
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2098 * SDL_SetRenderDrawColor() when needed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2099 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2100 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2101 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2102 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2103 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2104 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2105 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2106 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2107 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2108 * \sa SDL_SetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2109 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2110 extern SDL_DECLSPEC bool SDLCALL SDL_RenderClear(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2111
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2112 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2113 * Draw a point on the current rendering target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2114 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2115 * \param renderer the renderer which should draw a point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2116 * \param x the x coordinate of the point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2117 * \param y the y coordinate of the point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2118 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2119 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2120 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2121 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2122 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2123 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2124 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2125 * \sa SDL_RenderPoints
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2126 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2127 extern SDL_DECLSPEC bool SDLCALL SDL_RenderPoint(SDL_Renderer *renderer, float x, float y);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2128
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2129 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2130 * Draw multiple points on the current rendering target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2131 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2132 * \param renderer the renderer which should draw multiple points.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2133 * \param points the points to draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2134 * \param count the number of points to draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2135 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2136 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2137 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2138 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2139 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2140 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2141 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2142 * \sa SDL_RenderPoint
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2143 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2144 extern SDL_DECLSPEC bool SDLCALL SDL_RenderPoints(SDL_Renderer *renderer, const SDL_FPoint *points, int count);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2145
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2146 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2147 * Draw a line on the current rendering target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2148 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2149 * \param renderer the renderer which should draw a line.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2150 * \param x1 the x coordinate of the start point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2151 * \param y1 the y coordinate of the start point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2152 * \param x2 the x coordinate of the end point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2153 * \param y2 the y coordinate of the end point.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2154 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2155 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2156 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2157 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2158 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2159 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2160 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2161 * \sa SDL_RenderLines
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2162 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2163 extern SDL_DECLSPEC bool SDLCALL SDL_RenderLine(SDL_Renderer *renderer, float x1, float y1, float x2, float y2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2164
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2165 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2166 * Draw a series of connected lines on the current rendering target at
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2167 * subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2168 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2169 * \param renderer the renderer which should draw multiple lines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2170 * \param points the points along the lines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2171 * \param count the number of points, drawing count-1 lines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2172 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2173 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2174 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2175 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2176 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2177 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2178 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2179 * \sa SDL_RenderLine
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2180 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2181 extern SDL_DECLSPEC bool SDLCALL SDL_RenderLines(SDL_Renderer *renderer, const SDL_FPoint *points, int count);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2182
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2183 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2184 * Draw a rectangle on the current rendering target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2185 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2186 * \param renderer the renderer which should draw a rectangle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2187 * \param rect a pointer to the destination rectangle, or NULL to outline the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2188 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2189 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2190 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2191 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2192 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2193 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2194 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2195 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2196 * \sa SDL_RenderRects
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2197 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2198 extern SDL_DECLSPEC bool SDLCALL SDL_RenderRect(SDL_Renderer *renderer, const SDL_FRect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2199
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2200 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2201 * Draw some number of rectangles on the current rendering target at subpixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2202 * precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2203 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2204 * \param renderer the renderer which should draw multiple rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2205 * \param rects a pointer to an array of destination rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2206 * \param count the number of rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2207 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2208 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2209 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2210 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2211 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2212 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2213 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2214 * \sa SDL_RenderRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2215 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2216 extern SDL_DECLSPEC bool SDLCALL SDL_RenderRects(SDL_Renderer *renderer, const SDL_FRect *rects, int count);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2217
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2218 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2219 * Fill a rectangle on the current rendering target with the drawing color at
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2220 * subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2221 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2222 * \param renderer the renderer which should fill a rectangle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2223 * \param rect a pointer to the destination rectangle, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2224 * rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2225 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2226 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2227 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2228 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2229 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2230 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2231 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2232 * \sa SDL_RenderFillRects
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2233 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2234 extern SDL_DECLSPEC bool SDLCALL SDL_RenderFillRect(SDL_Renderer *renderer, const SDL_FRect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2235
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2236 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2237 * Fill some number of rectangles on the current rendering target with the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2238 * drawing color at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2239 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2240 * \param renderer the renderer which should fill multiple rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2241 * \param rects a pointer to an array of destination rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2242 * \param count the number of rectangles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2243 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2244 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2245 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2246 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2247 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2248 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2249 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2250 * \sa SDL_RenderFillRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2251 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2252 extern SDL_DECLSPEC bool SDLCALL SDL_RenderFillRects(SDL_Renderer *renderer, const SDL_FRect *rects, int count);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2253
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2254 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2255 * Copy a portion of the texture to the current rendering target at subpixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2256 * precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2257 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2258 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2259 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2260 * \param srcrect a pointer to the source rectangle, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2261 * texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2262 * \param dstrect a pointer to the destination rectangle, or NULL for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2263 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2264 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2265 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2266 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2267 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2268 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2269 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2270 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2271 * \sa SDL_RenderTextureRotated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2272 * \sa SDL_RenderTextureTiled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2273 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2274 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, const SDL_FRect *dstrect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2275
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2276 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2277 * Copy a portion of the source texture to the current rendering target, with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2278 * rotation and flipping, at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2279 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2280 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2281 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2282 * \param srcrect a pointer to the source rectangle, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2283 * texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2284 * \param dstrect a pointer to the destination rectangle, or NULL for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2285 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2286 * \param angle an angle in degrees that indicates the rotation that will be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2287 * applied to dstrect, rotating it in a clockwise direction.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2288 * \param center a pointer to a point indicating the point around which
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2289 * dstrect will be rotated (if NULL, rotation will be done
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2290 * around dstrect.w/2, dstrect.h/2).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2291 * \param flip an SDL_FlipMode value stating which flipping actions should be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2292 * performed on the texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2293 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2294 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2295 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2296 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2297 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2298 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2299 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2300 * \sa SDL_RenderTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2301 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2302 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTextureRotated(SDL_Renderer *renderer, SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2303 const SDL_FRect *srcrect, const SDL_FRect *dstrect,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2304 double angle, const SDL_FPoint *center,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2305 SDL_FlipMode flip);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2306
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2307 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2308 * Copy a portion of the source texture to the current rendering target, with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2309 * affine transform, at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2310 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2311 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2312 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2313 * \param srcrect a pointer to the source rectangle, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2314 * texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2315 * \param origin a pointer to a point indicating where the top-left corner of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2316 * srcrect should be mapped to, or NULL for the rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2317 * target's origin.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2318 * \param right a pointer to a point indicating where the top-right corner of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2319 * srcrect should be mapped to, or NULL for the rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2320 * target's top-right corner.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2321 * \param down a pointer to a point indicating where the bottom-left corner of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2322 * srcrect should be mapped to, or NULL for the rendering target's
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2323 * bottom-left corner.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2324 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2325 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2326 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2327 * \threadsafety You may only call this function from the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2328 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2329 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2330 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2331 * \sa SDL_RenderTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2332 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2333 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTextureAffine(SDL_Renderer *renderer, SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2334 const SDL_FRect *srcrect, const SDL_FPoint *origin,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2335 const SDL_FPoint *right, const SDL_FPoint *down);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2336
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2337 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2338 * Tile a portion of the texture to the current rendering target at subpixel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2339 * precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2340 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2341 * The pixels in `srcrect` will be repeated as many times as needed to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2342 * completely fill `dstrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2343 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2344 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2345 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2346 * \param srcrect a pointer to the source rectangle, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2347 * texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2348 * \param scale the scale used to transform srcrect into the destination
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2349 * rectangle, e.g. a 32x32 texture with a scale of 2 would fill
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2350 * 64x64 tiles.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2351 * \param dstrect a pointer to the destination rectangle, or NULL for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2352 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2353 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2354 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2355 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2356 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2357 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2358 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2359 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2360 * \sa SDL_RenderTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2361 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2362 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTextureTiled(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, float scale, const SDL_FRect *dstrect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2363
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2364 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2365 * Perform a scaled copy using the 9-grid algorithm to the current rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2366 * target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2367 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2368 * The pixels in the texture are split into a 3x3 grid, using the different
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2369 * corner sizes for each corner, and the sides and center making up the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2370 * remaining pixels. The corners are then scaled using `scale` and fit into
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2371 * the corners of the destination rectangle. The sides and center are then
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2372 * stretched into place to cover the remaining destination rectangle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2373 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2374 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2375 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2376 * \param srcrect the SDL_Rect structure representing the rectangle to be used
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2377 * for the 9-grid, or NULL to use the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2378 * \param left_width the width, in pixels, of the left corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2379 * \param right_width the width, in pixels, of the right corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2380 * \param top_height the height, in pixels, of the top corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2381 * \param bottom_height the height, in pixels, of the bottom corners in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2382 * `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2383 * \param scale the scale used to transform the corner of `srcrect` into the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2384 * corner of `dstrect`, or 0.0f for an unscaled copy.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2385 * \param dstrect a pointer to the destination rectangle, or NULL for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2386 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2387 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2388 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2389 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2390 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2391 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2392 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2393 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2394 * \sa SDL_RenderTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2395 * \sa SDL_RenderTexture9GridTiled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2396 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2397 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9Grid(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const SDL_FRect *dstrect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2398
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2399 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2400 * Perform a scaled copy using the 9-grid algorithm to the current rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2401 * target at subpixel precision.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2402 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2403 * The pixels in the texture are split into a 3x3 grid, using the different
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2404 * corner sizes for each corner, and the sides and center making up the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2405 * remaining pixels. The corners are then scaled using `scale` and fit into
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2406 * the corners of the destination rectangle. The sides and center are then
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2407 * tiled into place to cover the remaining destination rectangle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2408 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2409 * \param renderer the renderer which should copy parts of a texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2410 * \param texture the source texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2411 * \param srcrect the SDL_Rect structure representing the rectangle to be used
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2412 * for the 9-grid, or NULL to use the entire texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2413 * \param left_width the width, in pixels, of the left corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2414 * \param right_width the width, in pixels, of the right corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2415 * \param top_height the height, in pixels, of the top corners in `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2416 * \param bottom_height the height, in pixels, of the bottom corners in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2417 * `srcrect`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2418 * \param scale the scale used to transform the corner of `srcrect` into the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2419 * corner of `dstrect`, or 0.0f for an unscaled copy.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2420 * \param dstrect a pointer to the destination rectangle, or NULL for the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2421 * entire rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2422 * \param tileScale the scale used to transform the borders and center of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2423 * `srcrect` into the borders and middle of `dstrect`, or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2424 * 1.0f for an unscaled copy.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2425 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2426 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2427 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2428 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2429 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2430 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2431 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2432 * \sa SDL_RenderTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2433 * \sa SDL_RenderTexture9Grid
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2434 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2435 extern SDL_DECLSPEC bool SDLCALL SDL_RenderTexture9GridTiled(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const SDL_FRect *dstrect, float tileScale);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2436
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2437 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2438 * Render a list of triangles, optionally using a texture and indices into the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2439 * vertex array Color and alpha modulation is done per vertex
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2440 * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2441 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2442 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2443 * \param texture (optional) The SDL texture to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2444 * \param vertices vertices.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2445 * \param num_vertices number of vertices.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2446 * \param indices (optional) An array of integer indices into the 'vertices'
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2447 * array, if NULL all vertices will be rendered in sequential
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2448 * order.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2449 * \param num_indices number of indices.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2450 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2451 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2452 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2453 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2454 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2455 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2456 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2457 * \sa SDL_RenderGeometryRaw
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2458 * \sa SDL_SetRenderTextureAddressMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2459 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2460 extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2461 SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2462 const SDL_Vertex *vertices, int num_vertices,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2463 const int *indices, int num_indices);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2464
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2465 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2466 * Render a list of triangles, optionally using a texture and indices into the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2467 * vertex arrays Color and alpha modulation is done per vertex
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2468 * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2469 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2470 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2471 * \param texture (optional) The SDL texture to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2472 * \param xy vertex positions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2473 * \param xy_stride byte size to move from one element to the next element.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2474 * \param color vertex colors (as SDL_FColor).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2475 * \param color_stride byte size to move from one element to the next element.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2476 * \param uv vertex normalized texture coordinates.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2477 * \param uv_stride byte size to move from one element to the next element.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2478 * \param num_vertices number of vertices.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2479 * \param indices (optional) An array of indices into the 'vertices' arrays,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2480 * if NULL all vertices will be rendered in sequential order.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2481 * \param num_indices number of indices.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2482 * \param size_indices index size: 1 (byte), 2 (short), 4 (int).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2483 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2484 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2485 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2486 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2487 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2488 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2489 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2490 * \sa SDL_RenderGeometry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2491 * \sa SDL_SetRenderTextureAddressMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2492 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2493 extern SDL_DECLSPEC bool SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2494 SDL_Texture *texture,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2495 const float *xy, int xy_stride,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2496 const SDL_FColor *color, int color_stride,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2497 const float *uv, int uv_stride,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2498 int num_vertices,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2499 const void *indices, int num_indices, int size_indices);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2500
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2501 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2502 * Set the texture addressing mode used in SDL_RenderGeometry().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2503 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2504 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2505 * \param u_mode the SDL_TextureAddressMode to use for horizontal texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2506 * coordinates in SDL_RenderGeometry().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2507 * \param v_mode the SDL_TextureAddressMode to use for vertical texture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2508 * coordinates in SDL_RenderGeometry().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2509 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2510 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2511 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2512 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2513 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2514 * \sa SDL_RenderGeometry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2515 * \sa SDL_RenderGeometryRaw
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2516 * \sa SDL_GetRenderTextureAddressMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2517 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2518 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderTextureAddressMode(SDL_Renderer *renderer, SDL_TextureAddressMode u_mode, SDL_TextureAddressMode v_mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2519
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2520 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2521 * Get the texture addressing mode used in SDL_RenderGeometry().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2522 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2523 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2524 * \param u_mode a pointer filled in with the SDL_TextureAddressMode to use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2525 * for horizontal texture coordinates in SDL_RenderGeometry(),
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2526 * may be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2527 * \param v_mode a pointer filled in with the SDL_TextureAddressMode to use
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2528 * for vertical texture coordinates in SDL_RenderGeometry(), may
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2529 * be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2530 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2531 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2532 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2533 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2534 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2535 * \sa SDL_SetRenderTextureAddressMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2536 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2537 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderTextureAddressMode(SDL_Renderer *renderer, SDL_TextureAddressMode *u_mode, SDL_TextureAddressMode *v_mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2538
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2539 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2540 * Read pixels from the current rendering target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2541 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2542 * The returned surface contains pixels inside the desired area clipped to the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2543 * current viewport, and should be freed with SDL_DestroySurface().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2544 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2545 * Note that this returns the actual pixels on the screen, so if you are using
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2546 * logical presentation you should use SDL_GetRenderLogicalPresentationRect()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2547 * to get the area containing your content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2548 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2549 * **WARNING**: This is a very slow operation, and should not be used
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2550 * frequently. If you're using this on the main rendering target, it should be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2551 * called after rendering and before SDL_RenderPresent().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2552 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2553 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2554 * \param rect an SDL_Rect structure representing the area to read, which will
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2555 * be clipped to the current viewport, or NULL for the entire
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2556 * viewport.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2557 * \returns a new SDL_Surface on success or NULL on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2558 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2559 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2560 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2561 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2562 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2563 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2564 extern SDL_DECLSPEC SDL_Surface * SDLCALL SDL_RenderReadPixels(SDL_Renderer *renderer, const SDL_Rect *rect);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2565
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2566 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2567 * Update the screen with any rendering performed since the previous call.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2568 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2569 * SDL's rendering functions operate on a backbuffer; that is, calling a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2570 * rendering function such as SDL_RenderLine() does not directly put a line on
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2571 * the screen, but rather updates the backbuffer. As such, you compose your
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2572 * entire scene and *present* the composed backbuffer to the screen as a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2573 * complete picture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2574 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2575 * Therefore, when using SDL's rendering API, one does all drawing intended
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2576 * for the frame, and then calls this function once per frame to present the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2577 * final drawing to the user.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2578 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2579 * The backbuffer should be considered invalidated after each present; do not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2580 * assume that previous contents will exist between frames. You are strongly
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2581 * encouraged to call SDL_RenderClear() to initialize the backbuffer before
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2582 * starting each new frame's drawing, even if you plan to overwrite every
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2583 * pixel.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2584 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2585 * Please note, that in case of rendering to a texture - there is **no need**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2586 * to call `SDL_RenderPresent` after drawing needed objects to a texture, and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2587 * should not be done; you are only required to change back the rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2588 * target to default via `SDL_SetRenderTarget(renderer, NULL)` afterwards, as
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2589 * textures by themselves do not have a concept of backbuffers. Calling
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2590 * SDL_RenderPresent while rendering to a texture will fail.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2591 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2592 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2593 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2594 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2595 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2596 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2597 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2598 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2599 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2600 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2601 * \sa SDL_RenderClear
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2602 * \sa SDL_RenderFillRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2603 * \sa SDL_RenderFillRects
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2604 * \sa SDL_RenderLine
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2605 * \sa SDL_RenderLines
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2606 * \sa SDL_RenderPoint
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2607 * \sa SDL_RenderPoints
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2608 * \sa SDL_RenderRect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2609 * \sa SDL_RenderRects
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2610 * \sa SDL_SetRenderDrawBlendMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2611 * \sa SDL_SetRenderDrawColor
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2612 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2613 extern SDL_DECLSPEC bool SDLCALL SDL_RenderPresent(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2614
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2615 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2616 * Destroy the specified texture.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2617 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2618 * Passing NULL or an otherwise invalid texture will set the SDL error message
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2619 * to "Invalid texture".
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2620 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2621 * \param texture the texture to destroy.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2622 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2623 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2624 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2625 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2626 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2627 * \sa SDL_CreateTexture
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2628 * \sa SDL_CreateTextureFromSurface
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2629 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2630 extern SDL_DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture *texture);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2631
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2632 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2633 * Destroy the rendering context for a window and free all associated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2634 * textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2635 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2636 * This should be called before destroying the associated window.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2637 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2638 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2639 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2640 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2641 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2642 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2643 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2644 * \sa SDL_CreateRenderer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2645 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2646 extern SDL_DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2647
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2648 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2649 * Force the rendering context to flush any pending commands and state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2650 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2651 * You do not need to (and in fact, shouldn't) call this function unless you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2652 * are planning to call into OpenGL/Direct3D/Metal/whatever directly, in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2653 * addition to using an SDL_Renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2654 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2655 * This is for a very-specific case: if you are using SDL's render API, and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2656 * you plan to make OpenGL/D3D/whatever calls in addition to SDL render API
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2657 * calls. If this applies, you should call this function between calls to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2658 * SDL's render API and the low-level API you're using in cooperation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2659 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2660 * In all other cases, you can ignore this function.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2661 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2662 * This call makes SDL flush any pending rendering work it was queueing up to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2663 * do later in a single batch, and marks any internal cached state as invalid,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2664 * so it'll prepare all its state again later, from scratch.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2665 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2666 * This means you do not need to save state in your rendering code to protect
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2667 * the SDL renderer. However, there lots of arbitrary pieces of Direct3D and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2668 * OpenGL state that can confuse things; you should use your best judgment and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2669 * be prepared to make changes if specific state needs to be protected.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2670 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2671 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2672 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2673 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2674 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2675 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2676 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2677 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2678 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2679 extern SDL_DECLSPEC bool SDLCALL SDL_FlushRenderer(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2680
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2681 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2682 * Get the CAMetalLayer associated with the given Metal renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2683 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2684 * This function returns `void *`, so SDL doesn't have to include Metal's
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2685 * headers, but it can be safely cast to a `CAMetalLayer *`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2686 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2687 * \param renderer the renderer to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2688 * \returns a `CAMetalLayer *` on success, or NULL if the renderer isn't a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2689 * Metal renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2690 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2691 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2692 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2693 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2694 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2695 * \sa SDL_GetRenderMetalCommandEncoder
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2696 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2697 extern SDL_DECLSPEC void * SDLCALL SDL_GetRenderMetalLayer(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2698
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2699 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2700 * Get the Metal command encoder for the current frame.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2701 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2702 * This function returns `void *`, so SDL doesn't have to include Metal's
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2703 * headers, but it can be safely cast to an `id<MTLRenderCommandEncoder>`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2704 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2705 * This will return NULL if Metal refuses to give SDL a drawable to render to,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2706 * which might happen if the window is hidden/minimized/offscreen. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2707 * doesn't apply to command encoders for render targets, just the window's
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2708 * backbuffer. Check your return values!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2709 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2710 * \param renderer the renderer to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2711 * \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2712 * renderer isn't a Metal renderer or there was an error.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2713 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2714 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2715 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2716 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2717 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2718 * \sa SDL_GetRenderMetalLayer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2719 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2720 extern SDL_DECLSPEC void * SDLCALL SDL_GetRenderMetalCommandEncoder(SDL_Renderer *renderer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2721
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2722
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2723 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2724 * Add a set of synchronization semaphores for the current frame.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2725 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2726 * The Vulkan renderer will wait for `wait_semaphore` before submitting
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2727 * rendering commands and signal `signal_semaphore` after rendering commands
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2728 * are complete for this frame.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2729 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2730 * This should be called each frame that you want semaphore synchronization.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2731 * The Vulkan renderer may have multiple frames in flight on the GPU, so you
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2732 * should have multiple semaphores that are used for synchronization. Querying
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2733 * SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER will give you the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2734 * maximum number of semaphores you'll need.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2735 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2736 * \param renderer the rendering context.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2737 * \param wait_stage_mask the VkPipelineStageFlags for the wait.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2738 * \param wait_semaphore a VkSempahore to wait on before rendering the current
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2739 * frame, or 0 if not needed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2740 * \param signal_semaphore a VkSempahore that SDL will signal when rendering
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2741 * for the current frame is complete, or 0 if not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2742 * needed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2743 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2744 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2745 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2746 * \threadsafety It is **NOT** safe to call this function from two threads at
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2747 * once.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2748 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2749 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2750 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2751 extern SDL_DECLSPEC bool SDLCALL SDL_AddVulkanRenderSemaphores(SDL_Renderer *renderer, Uint32 wait_stage_mask, Sint64 wait_semaphore, Sint64 signal_semaphore);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2752
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2753 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2754 * Toggle VSync of the given renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2755 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2756 * When a renderer is created, vsync defaults to SDL_RENDERER_VSYNC_DISABLED.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2757 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2758 * The `vsync` parameter can be 1 to synchronize present with every vertical
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2759 * refresh, 2 to synchronize present with every second vertical refresh, etc.,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2760 * SDL_RENDERER_VSYNC_ADAPTIVE for late swap tearing (adaptive vsync), or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2761 * SDL_RENDERER_VSYNC_DISABLED to disable. Not every value is supported by
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2762 * every driver, so you should check the return value to see whether the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2763 * requested setting is supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2764 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2765 * \param renderer the renderer to toggle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2766 * \param vsync the vertical refresh sync interval.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2767 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2768 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2769 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2770 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2771 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2772 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2773 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2774 * \sa SDL_GetRenderVSync
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2775 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2776 extern SDL_DECLSPEC bool SDLCALL SDL_SetRenderVSync(SDL_Renderer *renderer, int vsync);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2777
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2778 #define SDL_RENDERER_VSYNC_DISABLED 0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2779 #define SDL_RENDERER_VSYNC_ADAPTIVE (-1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2780
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2781 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2782 * Get VSync of the given renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2783 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2784 * \param renderer the renderer to toggle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2785 * \param vsync an int filled with the current vertical refresh sync interval.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2786 * See SDL_SetRenderVSync() for the meaning of the value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2787 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2788 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2789 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2790 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2791 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2792 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2793 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2794 * \sa SDL_SetRenderVSync
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2795 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2796 extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderVSync(SDL_Renderer *renderer, int *vsync);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2797
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2798 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2799 * The size, in pixels, of a single SDL_RenderDebugText() character.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2800 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2801 * The font is monospaced and square, so this applies to all characters.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2802 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2803 * \since This macro is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2804 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2805 * \sa SDL_RenderDebugText
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2806 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2807 #define SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE 8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2808
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2809 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2810 * Draw debug text to an SDL_Renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2811 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2812 * This function will render a string of text to an SDL_Renderer. Note that
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2813 * this is a convenience function for debugging, with severe limitations, and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2814 * not intended to be used for production apps and games.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2815 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2816 * Among these limitations:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2817 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2818 * - It accepts UTF-8 strings, but will only renders ASCII characters.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2819 * - It has a single, tiny size (8x8 pixels). You can use logical presentation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2820 * or SDL_SetRenderScale() to adjust it.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2821 * - It uses a simple, hardcoded bitmap font. It does not allow different font
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2822 * selections and it does not support truetype, for proper scaling.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2823 * - It does no word-wrapping and does not treat newline characters as a line
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2824 * break. If the text goes out of the window, it's gone.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2825 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2826 * For serious text rendering, there are several good options, such as
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2827 * SDL_ttf, stb_truetype, or other external libraries.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2828 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2829 * On first use, this will create an internal texture for rendering glyphs.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2830 * This texture will live until the renderer is destroyed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2831 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2832 * The text is drawn in the color specified by SDL_SetRenderDrawColor().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2833 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2834 * \param renderer the renderer which should draw a line of text.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2835 * \param x the x coordinate where the top-left corner of the text will draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2836 * \param y the y coordinate where the top-left corner of the text will draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2837 * \param str the string to render.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2838 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2839 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2840 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2841 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2842 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2843 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2844 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2845 * \sa SDL_RenderDebugTextFormat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2846 * \sa SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2847 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2848 extern SDL_DECLSPEC bool SDLCALL SDL_RenderDebugText(SDL_Renderer *renderer, float x, float y, const char *str);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2849
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2850 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2851 * Draw debug text to an SDL_Renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2852 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2853 * This function will render a printf()-style format string to a renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2854 * Note that this is a convenience function for debugging, with severe
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2855 * limitations, and is not intended to be used for production apps and games.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2856 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2857 * For the full list of limitations and other useful information, see
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2858 * SDL_RenderDebugText.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2859 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2860 * \param renderer the renderer which should draw the text.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2861 * \param x the x coordinate where the top-left corner of the text will draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2862 * \param y the y coordinate where the top-left corner of the text will draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2863 * \param fmt the format string to draw.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2864 * \param ... additional parameters matching % tokens in the `fmt` string, if
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2865 * any.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2866 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2867 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2868 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2869 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2870 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2871 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2872 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2873 * \sa SDL_RenderDebugText
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2874 * \sa SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2875 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2876 extern SDL_DECLSPEC bool SDLCALL SDL_RenderDebugTextFormat(SDL_Renderer *renderer, float x, float y, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(4);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2877
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2878 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2879 * Set default scale mode for new textures for given renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2880 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2881 * When a renderer is created, scale_mode defaults to SDL_SCALEMODE_LINEAR.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2882 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2883 * \param renderer the renderer to update.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2884 * \param scale_mode the scale mode to change to for new textures.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2885 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2886 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2887 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2888 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2889 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2890 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2891 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2892 * \sa SDL_GetDefaultTextureScaleMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2893 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2894 extern SDL_DECLSPEC bool SDLCALL SDL_SetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode scale_mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2895
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2896 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2897 * Get default texture scale mode of the given renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2898 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2899 * \param renderer the renderer to get data from.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2900 * \param scale_mode a SDL_ScaleMode filled with current default scale mode.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2901 * See SDL_SetDefaultTextureScaleMode() for the meaning of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2902 * the value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2903 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2904 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2905 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2906 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2907 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2908 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2909 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2910 * \sa SDL_SetDefaultTextureScaleMode
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2911 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2912 extern SDL_DECLSPEC bool SDLCALL SDL_GetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode *scale_mode);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2913
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2914 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2915 * A structure specifying the parameters of a GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2916 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2917 * \since This struct is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2918 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2919 * \sa SDL_CreateGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2920 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2921 typedef struct SDL_GPURenderStateCreateInfo
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2922 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2923 SDL_GPUShader *fragment_shader; /**< The fragment shader to use when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2924
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2925 Sint32 num_sampler_bindings; /**< The number of additional fragment samplers to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2926 const SDL_GPUTextureSamplerBinding *sampler_bindings; /**< Additional fragment samplers to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2927
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2928 Sint32 num_storage_textures; /**< The number of storage textures to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2929 SDL_GPUTexture *const *storage_textures; /**< Storage textures to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2930
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2931 Sint32 num_storage_buffers; /**< The number of storage buffers to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2932 SDL_GPUBuffer *const *storage_buffers; /**< Storage buffers to bind when this render state is active */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2933
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2934 SDL_PropertiesID props; /**< A properties ID for extensions. Should be 0 if no extensions are needed. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2935 } SDL_GPURenderStateCreateInfo;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2936
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2937 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2938 * A custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2939 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2940 * \since This struct is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2941 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2942 * \sa SDL_CreateGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2943 * \sa SDL_SetGPURenderStateFragmentUniforms
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2944 * \sa SDL_SetGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2945 * \sa SDL_DestroyGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2946 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2947 typedef struct SDL_GPURenderState SDL_GPURenderState;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2948
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2949 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2950 * Create custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2951 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2952 * \param renderer the renderer to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2953 * \param createinfo a struct describing the GPU render state to create.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2954 * \returns a custom GPU render state or NULL on failure; call SDL_GetError()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2955 * for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2956 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2957 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2958 * renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2959 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2960 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2961 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2962 * \sa SDL_SetGPURenderStateFragmentUniforms
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2963 * \sa SDL_SetGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2964 * \sa SDL_DestroyGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2965 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2966 extern SDL_DECLSPEC SDL_GPURenderState * SDLCALL SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateCreateInfo *createinfo);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2967
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2968 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2969 * Set fragment shader uniform variables in a custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2970 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2971 * The data is copied and will be pushed using
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2972 * SDL_PushGPUFragmentUniformData() during draw call execution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2973 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2974 * \param state the state to modify.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2975 * \param slot_index the fragment uniform slot to push data to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2976 * \param data client data to write.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2977 * \param length the length of the data to write.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2978 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2979 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2980 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2981 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2982 * renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2983 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2984 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2985 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2986 extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderStateFragmentUniforms(SDL_GPURenderState *state, Uint32 slot_index, const void *data, Uint32 length);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2987
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2988 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2989 * Set custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2990 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2991 * This function sets custom GPU render state for subsequent draw calls. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2992 * allows using custom shaders with the GPU renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2993 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2994 * \param renderer the renderer to use.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2995 * \param state the state to to use, or NULL to clear custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2996 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2997 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2998 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2999 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3000 * renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3001 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3002 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3003 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3004 extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderState(SDL_Renderer *renderer, SDL_GPURenderState *state);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3005
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3006 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3007 * Destroy custom GPU render state.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3008 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3009 * \param state the state to destroy.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3010 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3011 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3012 * renderer.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3013 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3014 * \since This function is available since SDL 3.4.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3015 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3016 * \sa SDL_CreateGPURenderState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3017 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3018 extern SDL_DECLSPEC void SDLCALL SDL_DestroyGPURenderState(SDL_GPURenderState *state);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3019
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3020 /* Ends C function definitions when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3021 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3022 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3023 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3024 #include <SDL3/SDL_close_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3025
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3026 #endif /* SDL_render_h_ */