Wiki Page Content


Use this function to get the size of the window's underlying drawable dimensions in pixels. This is used for setting viewport sizes, scissor rectangles, and other places where the a VkExtent might show up in relation to the window.


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

Function Parameters


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

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(...);


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 in SDL 2.0.8

CategoryAPI, CategoryVulkan


None: SDL_Vulkan_GetDrawableSize (last edited 2020-03-23 18:33:15 by ChrisBush)

(Page Info.)
Please include your contact information if you'd like to receive a reply.