OSDN Git Service

SDL_Vulkan_GetDrawableSize サンプルコードを追加 https://wiki.libsdl.org/SDL_Vulkan_GetDrawableS...
[sdl2referencejp/sdl2referencejp.git] / SDL_Vulkan_GetDrawableSize.html
index 1a701cd..bc529bc 100644 (file)
 <p>
 <code>
 <pre>
+// C++17\82È\82ç\82Îstd::clamp()\82ð\8eg\82¤
+#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 = ...;
+
+// ...
+
+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);
 </pre>
 </code>
 <h2>\8fÚ\8d×</h2>