Skip to content

Commit 285df94

Browse files
committed
Renamed SDL_GPURenderStateDesc to SDL_GPURenderStateCreateInfo for consistency with GPU API conventions
Fixes #12817
1 parent 0a6b807 commit 285df94

File tree

5 files changed

+36
-55
lines changed

5 files changed

+36
-55
lines changed

include/SDL3/SDL_render.h

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2809,18 +2809,14 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetDefaultTextureScaleMode(SDL_Renderer *re
28092809
extern SDL_DECLSPEC bool SDLCALL SDL_GetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode *scale_mode);
28102810

28112811
/**
2812-
* GPU render state description.
2813-
*
2814-
* This structure should be initialized using SDL_INIT_INTERFACE().
2812+
* A structure specifying the parameters of a GPU render state.
28152813
*
28162814
* \since This struct is available since SDL 3.4.0.
28172815
*
28182816
* \sa SDL_CreateGPURenderState
28192817
*/
2820-
typedef struct SDL_GPURenderStateDesc
2818+
typedef struct SDL_GPURenderStateCreateInfo
28212819
{
2822-
Uint32 version; /**< the version of this interface */
2823-
28242820
SDL_GPUShader *fragment_shader; /**< The fragment shader to use when this render state is active */
28252821

28262822
Sint32 num_sampler_bindings; /**< The number of additional fragment samplers to bind when this render state is active */
@@ -2829,19 +2825,11 @@ typedef struct SDL_GPURenderStateDesc
28292825
Sint32 num_storage_textures; /**< The number of storage textures to bind when this render state is active */
28302826
SDL_GPUTexture *const *storage_textures; /**< Storage textures to bind when this render state is active */
28312827

2832-
Sint32 num_storage_buffers; /**< The number of storage buffers to bind when this render state is active */
2828+
Sint32 num_storage_buffers; /**< The number of storage buffers to bind when this render state is active */
28332829
SDL_GPUBuffer *const *storage_buffers; /**< Storage buffers to bind when this render state is active */
2834-
} SDL_GPURenderStateDesc;
28352830

2836-
/* Check the size of SDL_GPURenderStateDesc
2837-
*
2838-
* If this assert fails, either the compiler is padding to an unexpected size,
2839-
* or the interface has been updated and this should be updated to match and
2840-
* the code using this interface should be updated to handle the old version.
2841-
*/
2842-
SDL_COMPILE_TIME_ASSERT(SDL_GPURenderStateDesc_SIZE,
2843-
(sizeof(void *) == 4 && sizeof(SDL_GPURenderStateDesc) == 32) ||
2844-
(sizeof(void *) == 8 && sizeof(SDL_GPURenderStateDesc) == 64));
2831+
SDL_PropertiesID props; /**< A properties ID for extensions. Should be 0 if no extensions are needed. */
2832+
} SDL_GPURenderStateCreateInfo;
28452833

28462834
/**
28472835
* A custom GPU render state.
@@ -2859,8 +2847,7 @@ typedef struct SDL_GPURenderState SDL_GPURenderState;
28592847
* Create custom GPU render state.
28602848
*
28612849
* \param renderer the renderer to use.
2862-
* \param desc GPU render state description, initialized using
2863-
* SDL_INIT_INTERFACE().
2850+
* \param createinfo a struct describing the GPU render state to create.
28642851
* \returns a custom GPU render state or NULL on failure; call SDL_GetError()
28652852
* for more information.
28662853
*
@@ -2873,7 +2860,7 @@ typedef struct SDL_GPURenderState SDL_GPURenderState;
28732860
* \sa SDL_SetRenderGPUState
28742861
* \sa SDL_DestroyGPURenderState
28752862
*/
2876-
extern SDL_DECLSPEC SDL_GPURenderState * SDLCALL SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateDesc *desc);
2863+
extern SDL_DECLSPEC SDL_GPURenderState * SDLCALL SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateCreateInfo *createinfo);
28772864

28782865
/**
28792866
* Set fragment shader uniform variables in a custom GPU render state.

src/dynapi/SDL_dynapi_procs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,7 @@ SDL_DYNAPI_PROC(bool,SDL_SetRelativeMouseTransform,(SDL_MouseMotionTransformCall
12711271
SDL_DYNAPI_PROC(bool,SDL_RenderTexture9GridTiled,(SDL_Renderer *a,SDL_Texture *b,const SDL_FRect *c,float d,float e,float f,float g,float h,const SDL_FRect *i,float j),(a,b,c,d,e,f,g,h,i,j),return)
12721272
SDL_DYNAPI_PROC(bool,SDL_SetDefaultTextureScaleMode,(SDL_Renderer *a,SDL_ScaleMode b),(a,b),return)
12731273
SDL_DYNAPI_PROC(bool,SDL_GetDefaultTextureScaleMode,(SDL_Renderer *a,SDL_ScaleMode *b),(a,b),return)
1274-
SDL_DYNAPI_PROC(SDL_GPURenderState*,SDL_CreateGPURenderState,(SDL_Renderer *a,SDL_GPURenderStateDesc *b),(a,b),return)
1274+
SDL_DYNAPI_PROC(SDL_GPURenderState*,SDL_CreateGPURenderState,(SDL_Renderer *a,SDL_GPURenderStateCreateInfo *b),(a,b),return)
12751275
SDL_DYNAPI_PROC(bool,SDL_SetGPURenderStateFragmentUniforms,(SDL_GPURenderState *a,Uint32 b,const void *c,Uint32 d),(a,b,c,d),return)
12761276
SDL_DYNAPI_PROC(bool,SDL_SetRenderGPUState,(SDL_Renderer *a,SDL_GPURenderState *b),(a,b),return)
12771277
SDL_DYNAPI_PROC(void,SDL_DestroyGPURenderState,(SDL_GPURenderState *a),(a),)

src/render/SDL_render.c

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5948,23 +5948,17 @@ bool SDL_GetDefaultTextureScaleMode(SDL_Renderer *renderer, SDL_ScaleMode *scale
59485948
return true;
59495949
}
59505950

5951-
SDL_GPURenderState *SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateDesc *desc)
5951+
SDL_GPURenderState *SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURenderStateCreateInfo *createinfo)
59525952
{
59535953
CHECK_RENDERER_MAGIC(renderer, NULL);
59545954

5955-
if (!desc) {
5956-
SDL_InvalidParamError("desc");
5955+
if (!createinfo) {
5956+
SDL_InvalidParamError("createinfo");
59575957
return NULL;
59585958
}
59595959

5960-
if (desc->version < sizeof(*desc)) {
5961-
// Update this to handle older versions of this interface
5962-
SDL_SetError("Invalid desc, should be initialized with SDL_INIT_INTERFACE()");
5963-
return NULL;
5964-
}
5965-
5966-
if (!desc->fragment_shader) {
5967-
SDL_SetError("desc->fragment_shader is required");
5960+
if (!createinfo->fragment_shader) {
5961+
SDL_SetError("A fragment_shader is required");
59685962
return NULL;
59695963
}
59705964

@@ -5980,36 +5974,36 @@ SDL_GPURenderState *SDL_CreateGPURenderState(SDL_Renderer *renderer, SDL_GPURend
59805974
}
59815975

59825976
state->renderer = renderer;
5983-
state->fragment_shader = desc->fragment_shader;
5977+
state->fragment_shader = createinfo->fragment_shader;
59845978

5985-
if (desc->num_sampler_bindings > 0) {
5986-
state->sampler_bindings = (SDL_GPUTextureSamplerBinding *)SDL_calloc(desc->num_sampler_bindings, sizeof(*state->sampler_bindings));
5979+
if (createinfo->num_sampler_bindings > 0) {
5980+
state->sampler_bindings = (SDL_GPUTextureSamplerBinding *)SDL_calloc(createinfo->num_sampler_bindings, sizeof(*state->sampler_bindings));
59875981
if (!state->sampler_bindings) {
59885982
SDL_DestroyGPURenderState(state);
59895983
return NULL;
59905984
}
5991-
SDL_memcpy(state->sampler_bindings, desc->sampler_bindings, desc->num_sampler_bindings * sizeof(*state->sampler_bindings));
5992-
state->num_sampler_bindings = desc->num_sampler_bindings;
5985+
SDL_memcpy(state->sampler_bindings, createinfo->sampler_bindings, createinfo->num_sampler_bindings * sizeof(*state->sampler_bindings));
5986+
state->num_sampler_bindings = createinfo->num_sampler_bindings;
59935987
}
59945988

5995-
if (desc->num_storage_textures > 0) {
5996-
state->storage_textures = (SDL_GPUTexture **)SDL_calloc(desc->num_storage_textures, sizeof(*state->storage_textures));
5989+
if (createinfo->num_storage_textures > 0) {
5990+
state->storage_textures = (SDL_GPUTexture **)SDL_calloc(createinfo->num_storage_textures, sizeof(*state->storage_textures));
59975991
if (!state->storage_textures) {
59985992
SDL_DestroyGPURenderState(state);
59995993
return NULL;
60005994
}
6001-
SDL_memcpy(state->storage_textures, desc->storage_textures, desc->num_storage_textures * sizeof(*state->storage_textures));
6002-
state->num_storage_textures = desc->num_storage_textures;
5995+
SDL_memcpy(state->storage_textures, createinfo->storage_textures, createinfo->num_storage_textures * sizeof(*state->storage_textures));
5996+
state->num_storage_textures = createinfo->num_storage_textures;
60035997
}
60045998

6005-
if (desc->num_storage_buffers > 0) {
6006-
state->storage_buffers = (SDL_GPUBuffer **)SDL_calloc(desc->num_storage_buffers, sizeof(*state->storage_buffers));
5999+
if (createinfo->num_storage_buffers > 0) {
6000+
state->storage_buffers = (SDL_GPUBuffer **)SDL_calloc(createinfo->num_storage_buffers, sizeof(*state->storage_buffers));
60076001
if (!state->storage_buffers) {
60086002
SDL_DestroyGPURenderState(state);
60096003
return NULL;
60106004
}
6011-
SDL_memcpy(state->storage_buffers, desc->storage_buffers, desc->num_storage_buffers * sizeof(*state->storage_buffers));
6012-
state->num_storage_buffers = desc->num_storage_buffers;
6005+
SDL_memcpy(state->storage_buffers, createinfo->storage_buffers, createinfo->num_storage_buffers * sizeof(*state->storage_buffers));
6006+
state->num_storage_buffers = createinfo->num_storage_buffers;
60136007
}
60146008

60156009
return state;

test/testgpurender_effects.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ typedef enum
4646
NUM_EFFECTS
4747
} FullscreenEffect;
4848

49-
typedef struct
49+
typedef struct
5050
{
5151
const char *name;
5252
const unsigned char *dxil_shader_source;
@@ -61,7 +61,7 @@ typedef struct
6161
SDL_GPURenderState *state;
6262
} FullscreenEffectData;
6363

64-
typedef struct
64+
typedef struct
6565
{
6666
float texture_width;
6767
float texture_height;
@@ -145,7 +145,7 @@ static bool InitGPURenderState(void)
145145
{
146146
SDL_GPUShaderFormat formats;
147147
SDL_GPUShaderCreateInfo info;
148-
SDL_GPURenderStateDesc desc;
148+
SDL_GPURenderStateCreateInfo createinfo;
149149
int i;
150150

151151
formats = SDL_GetGPUShaderFormats(device);
@@ -187,9 +187,9 @@ static bool InitGPURenderState(void)
187187
return false;
188188
}
189189

190-
SDL_INIT_INTERFACE(&desc);
191-
desc.fragment_shader = data->shader;
192-
data->state = SDL_CreateGPURenderState(renderer, &desc);
190+
SDL_zero(createinfo);
191+
createinfo.fragment_shader = data->shader;
192+
data->state = SDL_CreateGPURenderState(renderer, &createinfo);
193193
if (!data->state) {
194194
SDL_Log("Couldn't create render state: %s", SDL_GetError());
195195
return false;

test/testgpurender_msdf.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ static bool InitGPURenderState(void)
164164
{
165165
SDL_GPUShaderFormat formats;
166166
SDL_GPUShaderCreateInfo info;
167-
SDL_GPURenderStateDesc desc;
167+
SDL_GPURenderStateCreateInfo createinfo;
168168
MSDFShaderUniforms uniforms;
169169

170170
device = (SDL_GPUDevice *)SDL_GetPointerProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_GPU_DEVICE_POINTER, NULL);
@@ -205,9 +205,9 @@ static bool InitGPURenderState(void)
205205
return false;
206206
}
207207

208-
SDL_INIT_INTERFACE(&desc);
209-
desc.fragment_shader = shader;
210-
render_state = SDL_CreateGPURenderState(renderer, &desc);
208+
SDL_zero(createinfo);
209+
createinfo.fragment_shader = shader;
210+
render_state = SDL_CreateGPURenderState(renderer, &createinfo);
211211
if (!render_state) {
212212
SDL_Log("Couldn't create render state: %s", SDL_GetError());
213213
return false;

0 commit comments

Comments
 (0)