|
@@ -1023,58 +1023,58 @@ static void SW_DestroyRenderer(SDL_Renderer *renderer)
|
|
|
static void SW_SelectBestFormats(SDL_Renderer *renderer, SDL_PixelFormatEnum format)
|
|
|
{
|
|
|
/* Prefer the format used by the framebuffer by default. */
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = format;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, format);
|
|
|
|
|
|
switch (format) {
|
|
|
case SDL_PIXELFORMAT_XRGB4444:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ARGB4444;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB4444);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_XBGR4444:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ABGR4444;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR4444);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ARGB4444:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XRGB4444;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB4444);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ABGR4444:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XBGR4444;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR4444);
|
|
|
break;
|
|
|
|
|
|
case SDL_PIXELFORMAT_XRGB1555:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ARGB1555;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB1555);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_XBGR1555:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ABGR1555;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR1555);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ARGB1555:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XRGB1555;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB1555);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ABGR1555:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XBGR1555;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR1555);
|
|
|
break;
|
|
|
|
|
|
case SDL_PIXELFORMAT_XRGB8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ARGB8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_RGBX8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_RGBA8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_XBGR8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ABGR8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_BGRX8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_BGRA8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ARGB8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XRGB8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_RGBA8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_RGBX8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_ABGR8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XBGR8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR8888);
|
|
|
break;
|
|
|
case SDL_PIXELFORMAT_BGRA8888:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_BGRX8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX8888);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -1088,30 +1088,30 @@ static void SW_SelectBestFormats(SDL_Renderer *renderer, SDL_PixelFormatEnum for
|
|
|
switch (SDL_PIXELORDER(format)) {
|
|
|
case SDL_PACKEDORDER_BGRX:
|
|
|
case SDL_PACKEDORDER_BGRA:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_BGRX8888;
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_BGRA8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA8888);
|
|
|
break;
|
|
|
case SDL_PACKEDORDER_RGBX:
|
|
|
case SDL_PACKEDORDER_RGBA:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_RGBX8888;
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_RGBA8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA8888);
|
|
|
break;
|
|
|
case SDL_PACKEDORDER_XBGR:
|
|
|
case SDL_PACKEDORDER_ABGR:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XBGR8888;
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ABGR8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR8888);
|
|
|
break;
|
|
|
case SDL_PACKEDORDER_XRGB:
|
|
|
case SDL_PACKEDORDER_ARGB:
|
|
|
default:
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XRGB8888;
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ARGB8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_XRGB8888;
|
|
|
- renderer->info.texture_formats[renderer->info.num_texture_formats++] = SDL_PIXELFORMAT_ARGB8888;
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1155,10 +1155,11 @@ int SW_CreateRendererForSurface(SDL_Renderer *renderer, SDL_Surface *surface, SD
|
|
|
renderer->RenderPresent = SW_RenderPresent;
|
|
|
renderer->DestroyTexture = SW_DestroyTexture;
|
|
|
renderer->DestroyRenderer = SW_DestroyRenderer;
|
|
|
- renderer->info = SW_RenderDriver.info;
|
|
|
renderer->driverdata = data;
|
|
|
SW_InvalidateCachedState(renderer);
|
|
|
|
|
|
+ renderer->info.name = SW_RenderDriver.name;
|
|
|
+
|
|
|
SW_SelectBestFormats(renderer, surface->format->format);
|
|
|
|
|
|
SDL_SetupRendererColorspace(renderer, create_props);
|
|
@@ -1200,14 +1201,7 @@ static int SW_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pro
|
|
|
}
|
|
|
|
|
|
SDL_RenderDriver SW_RenderDriver = {
|
|
|
- SW_CreateRenderer,
|
|
|
- { SDL_SOFTWARE_RENDERER,
|
|
|
- SDL_RENDERER_PRESENTVSYNC,
|
|
|
- 0,
|
|
|
- { /* formats filled in later */
|
|
|
- SDL_PIXELFORMAT_UNKNOWN },
|
|
|
- 0,
|
|
|
- 0 }
|
|
|
+ SW_CreateRenderer, SDL_SOFTWARE_RENDERER
|
|
|
};
|
|
|
|
|
|
#endif /* SDL_VIDEO_RENDER_SW */
|