SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


Get the size of the window's underlying drawable dimensions in pixels.


void SDL_Vulkan_GetDrawableSize(SDL_Window * window,
                                int *w, int *h);

Function Parameters


an SDL_Window for which the size is to be queried


Pointer to the variable to write the width to or NULL


Pointer to the variable to write the height to or NULL


This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with high-DPI support (Apple calls this "Retina"), and not disabled by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint.


This function is available since SDL 3.0.0.

Code Examples

// may instead choose to use std::clamp() in C++17
#define CLAMP(x, lo, hi)    ((x) < (lo) ? (lo) : (x) > (hi) ? (hi) : (x))

SDL_Window *window;
VkSurfaceKHR surface;
VkPhysicalDevice physicalDevice;

// window = SDL_CreateWindow(...);
if (!SDL_Vulkan_CreateSurface(window, instance, &surface)) {
    // handle error
// physicalDevice = ...;

// ...

// Create Swapchain

VkSurfaceCapabilitiesKHR capabilities;
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, &capabilities);

int width;
int height;
SDL_Vulkan_GetDrawableSize(window, &width, &height);

width = CLAMP(width, capabilities.minImageExtent.width, capabilities.maxImageExtent.width);
height = CLAMP(height, capabilities.minImageExtent.height, capabilities.maxImageExtent.height);

// ...

// vkCreateSwapchainKHR(...);

CategoryAPI, CategoryVulkan

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.