mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-20 11:48:29 +00:00
Removed the limit on the number of supported renderer texture formats
Fixes https://github.com/libsdl-org/SDL/issues/9056
This commit is contained in:
parent
f3d79ad75f
commit
598b4e0a1f
14 changed files with 162 additions and 206 deletions
|
@ -137,6 +137,17 @@ char SDL_renderer_magic;
|
|||
char SDL_texture_magic;
|
||||
|
||||
|
||||
int SDL_AddSupportedTextureFormat(SDL_Renderer *renderer, SDL_PixelFormatEnum format)
|
||||
{
|
||||
SDL_PixelFormatEnum *texture_formats = (SDL_PixelFormatEnum *)SDL_realloc((void *)renderer->info.texture_formats, (renderer->info.num_texture_formats + 1) * sizeof(SDL_PixelFormatEnum));
|
||||
if (!texture_formats) {
|
||||
return -1;
|
||||
}
|
||||
texture_formats[renderer->info.num_texture_formats++] = format;
|
||||
renderer->info.texture_formats = texture_formats;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SDL_SetupRendererColorspace(SDL_Renderer *renderer, SDL_PropertiesID props)
|
||||
{
|
||||
renderer->output_colorspace = (SDL_Colorspace)SDL_GetNumberProperty(props, SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER, SDL_COLORSPACE_SRGB);
|
||||
|
@ -780,7 +791,7 @@ const char *SDL_GetRenderDriver(int index)
|
|||
SDL_GetNumRenderDrivers() - 1);
|
||||
return NULL;
|
||||
}
|
||||
return render_drivers[index]->info.name;
|
||||
return render_drivers[index]->name;
|
||||
#else
|
||||
SDL_SetError("SDL not built with rendering support");
|
||||
return NULL;
|
||||
|
@ -979,7 +990,7 @@ SDL_Renderer *SDL_CreateRendererWithProperties(SDL_PropertiesID props)
|
|||
if (name) {
|
||||
for (i = 0; i < n; i++) {
|
||||
const SDL_RenderDriver *driver = render_drivers[i];
|
||||
if (SDL_strcasecmp(name, driver->info.name) == 0) {
|
||||
if (SDL_strcasecmp(name, driver->name) == 0) {
|
||||
// Create a new renderer instance
|
||||
++attempted;
|
||||
rc = driver->CreateRenderer(renderer, window, props);
|
||||
|
@ -1104,6 +1115,7 @@ error:
|
|||
#ifdef SDL_PLATFORM_ANDROID
|
||||
Android_ActivityMutex_Unlock();
|
||||
#endif
|
||||
SDL_free((void *)renderer->info.texture_formats);
|
||||
SDL_free(renderer);
|
||||
return NULL;
|
||||
|
||||
|
@ -4588,6 +4600,7 @@ void SDL_DestroyRenderer(SDL_Renderer *renderer)
|
|||
renderer->magic = NULL; // It's no longer magical...
|
||||
}
|
||||
|
||||
SDL_free((void *)renderer->info.texture_formats);
|
||||
SDL_free(renderer);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue