mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-06-02 01:47:41 +00:00
Removed SDL_RendererFlags
The flags parameter has been removed from SDL_CreateRenderer() and SDL_RENDERER_PRESENTVSYNC has been replaced with SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER during window creation and SDL_PROP_RENDERER_VSYNC_NUMBER after renderer creation. SDL_SetRenderVSync() now takes additional values besides 0 and 1. The maximum texture size has been removed from SDL_RendererInfo, replaced with SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER.
This commit is contained in:
parent
678cfd23c0
commit
17520c2e6e
41 changed files with 265 additions and 394 deletions
|
@ -293,6 +293,7 @@ typedef struct
|
|||
VkSurfaceCapabilitiesKHR surfaceCapabilities;
|
||||
VkSurfaceFormatKHR *surfaceFormats;
|
||||
SDL_bool recreateSwapchain;
|
||||
int vsync;
|
||||
|
||||
VkFramebuffer *framebuffers;
|
||||
VkRenderPass renderPasses[SDL_VULKAN_NUM_RENDERPASSES];
|
||||
|
@ -2091,7 +2092,7 @@ static VkResult VULKAN_CreateSwapChain(SDL_Renderer *renderer, int w, int h)
|
|||
|
||||
/* Choose a present mode. If vsync is requested, then use VK_PRESENT_MODE_FIFO_KHR which is guaranteed to be supported */
|
||||
VkPresentModeKHR presentMode = VK_PRESENT_MODE_FIFO_KHR;
|
||||
if (!(renderer->info.flags & SDL_RENDERER_PRESENTVSYNC)) {
|
||||
if (!rendererData->vsync) {
|
||||
uint32_t presentModeCount = 0;
|
||||
result = vkGetPhysicalDeviceSurfacePresentModesKHR(rendererData->physicalDevice, rendererData->surface, &presentModeCount, NULL);
|
||||
if (result != VK_SUCCESS) {
|
||||
|
@ -4024,13 +4025,16 @@ static int VULKAN_SetVSync(SDL_Renderer *renderer, const int vsync)
|
|||
{
|
||||
VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->driverdata;
|
||||
|
||||
Uint32 prevFlags = renderer->info.flags;
|
||||
if (vsync) {
|
||||
renderer->info.flags |= SDL_RENDERER_PRESENTVSYNC;
|
||||
} else {
|
||||
renderer->info.flags &= ~SDL_RENDERER_PRESENTVSYNC;
|
||||
switch (vsync) {
|
||||
case 0:
|
||||
case 1:
|
||||
/* Supported */
|
||||
break;
|
||||
default:
|
||||
return SDL_Unsupported();
|
||||
}
|
||||
if (prevFlags != renderer->info.flags) {
|
||||
if (vsync != rendererData->vsync) {
|
||||
rendererData->vsync = vsync;
|
||||
rendererData->recreateSwapchain = SDL_TRUE;
|
||||
}
|
||||
return 0;
|
||||
|
@ -4083,6 +4087,7 @@ static int VULKAN_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
|
|||
renderer->RenderPresent = VULKAN_RenderPresent;
|
||||
renderer->DestroyTexture = VULKAN_DestroyTexture;
|
||||
renderer->DestroyRenderer = VULKAN_DestroyRenderer;
|
||||
renderer->SetVSync = VULKAN_SetVSync;
|
||||
renderer->driverdata = rendererData;
|
||||
VULKAN_InvalidateCachedState(renderer);
|
||||
|
||||
|
@ -4091,13 +4096,7 @@ static int VULKAN_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
|
|||
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
|
||||
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR2101010);
|
||||
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA64_FLOAT);
|
||||
renderer->info.max_texture_width = 16384;
|
||||
renderer->info.max_texture_height = 16384;
|
||||
|
||||
if (SDL_GetBooleanProperty(create_props, SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_BOOLEAN, SDL_FALSE)) {
|
||||
renderer->info.flags |= SDL_RENDERER_PRESENTVSYNC;
|
||||
}
|
||||
renderer->SetVSync = VULKAN_SetVSync;
|
||||
SDL_SetNumberProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER, 16384);
|
||||
|
||||
/* HACK: make sure the SDL_Renderer references the SDL_Window data now, in
|
||||
* order to give init functions access to the underlying window handle:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue