mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 18:15:10 +00:00
Add shared min and max functions for int
This commit is contained in:
parent
9cc252a406
commit
3ee5031fd7
10
src/init.c
10
src/init.c
@ -179,6 +179,16 @@ char* _glfw_strdup(const char* source)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int _glfw_min(int a, int b)
|
||||||
|
{
|
||||||
|
return a < b ? a : b;
|
||||||
|
}
|
||||||
|
|
||||||
|
int _glfw_max(int a, int b)
|
||||||
|
{
|
||||||
|
return a > b ? a : b;
|
||||||
|
}
|
||||||
|
|
||||||
float _glfw_fminf(float a, float b)
|
float _glfw_fminf(float a, float b)
|
||||||
{
|
{
|
||||||
if (a != a)
|
if (a != a)
|
||||||
|
@ -998,6 +998,8 @@ const char* _glfwGetVulkanResultString(VkResult result);
|
|||||||
size_t _glfwEncodeUTF8(char* s, uint32_t codepoint);
|
size_t _glfwEncodeUTF8(char* s, uint32_t codepoint);
|
||||||
|
|
||||||
char* _glfw_strdup(const char* source);
|
char* _glfw_strdup(const char* source);
|
||||||
|
int _glfw_min(int a, int b);
|
||||||
|
int _glfw_max(int a, int b);
|
||||||
float _glfw_fminf(float a, float b);
|
float _glfw_fminf(float a, float b);
|
||||||
float _glfw_fmaxf(float a, float b);
|
float _glfw_fmaxf(float a, float b);
|
||||||
|
|
||||||
|
@ -39,15 +39,15 @@ static void applySizeLimits(_GLFWwindow* window, int* width, int* height)
|
|||||||
*height = (int) (*width / ratio);
|
*height = (int) (*width / ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window->minwidth != GLFW_DONT_CARE && *width < window->minwidth)
|
if (window->minwidth != GLFW_DONT_CARE)
|
||||||
*width = window->minwidth;
|
*width = _glfw_max(*width, window->minwidth);
|
||||||
else if (window->maxwidth != GLFW_DONT_CARE && *width > window->maxwidth)
|
else if (window->maxwidth != GLFW_DONT_CARE)
|
||||||
*width = window->maxwidth;
|
*width = _glfw_min(*width, window->maxwidth);
|
||||||
|
|
||||||
if (window->minheight != GLFW_DONT_CARE && *height < window->minheight)
|
if (window->minheight != GLFW_DONT_CARE)
|
||||||
*height = window->minheight;
|
*height = _glfw_min(*height, window->minheight);
|
||||||
else if (window->maxheight != GLFW_DONT_CARE && *height > window->maxheight)
|
else if (window->maxheight != GLFW_DONT_CARE)
|
||||||
*height = window->maxheight;
|
*height = _glfw_max(*height, window->maxheight);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fitToMonitor(_GLFWwindow* window)
|
static void fitToMonitor(_GLFWwindow* window)
|
||||||
|
@ -498,10 +498,8 @@ static void maximizeWindowManually(_GLFWwindow* window)
|
|||||||
|
|
||||||
if (window->maxwidth != GLFW_DONT_CARE && window->maxheight != GLFW_DONT_CARE)
|
if (window->maxwidth != GLFW_DONT_CARE && window->maxheight != GLFW_DONT_CARE)
|
||||||
{
|
{
|
||||||
if (rect.right - rect.left > window->maxwidth)
|
rect.right = _glfw_min(rect.right, rect.left + window->maxwidth);
|
||||||
rect.right = rect.left + window->maxwidth;
|
rect.bottom = _glfw_min(rect.bottom, rect.top + window->maxheight);
|
||||||
if (rect.bottom - rect.top > window->maxheight)
|
|
||||||
rect.bottom = rect.top + window->maxheight;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
style = GetWindowLongW(window->win32.handle, GWL_STYLE);
|
style = GetWindowLongW(window->win32.handle, GWL_STYLE);
|
||||||
@ -524,8 +522,7 @@ static void maximizeWindowManually(_GLFWwindow* window)
|
|||||||
OffsetRect(&rect, 0, GetSystemMetrics(SM_CYCAPTION));
|
OffsetRect(&rect, 0, GetSystemMetrics(SM_CYCAPTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rect.bottom > mi.rcWork.bottom)
|
rect.bottom = _glfw_min(rect.bottom, mi.rcWork.bottom);
|
||||||
rect.bottom = mi.rcWork.bottom;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SetWindowPos(window->win32.handle, HWND_TOP,
|
SetWindowPos(window->win32.handle, HWND_TOP,
|
||||||
|
@ -57,11 +57,6 @@
|
|||||||
#include "wayland-idle-inhibit-unstable-v1-client-protocol-code.h"
|
#include "wayland-idle-inhibit-unstable-v1-client-protocol-code.h"
|
||||||
|
|
||||||
|
|
||||||
static inline int min(int n1, int n2)
|
|
||||||
{
|
|
||||||
return n1 < n2 ? n1 : n2;
|
|
||||||
}
|
|
||||||
|
|
||||||
static _GLFWwindow* findWindowFromDecorationSurface(struct wl_surface* surface,
|
static _GLFWwindow* findWindowFromDecorationSurface(struct wl_surface* surface,
|
||||||
int* which)
|
int* which)
|
||||||
{
|
{
|
||||||
@ -788,7 +783,7 @@ static void registryHandleGlobal(void* data,
|
|||||||
{
|
{
|
||||||
if (strcmp(interface, "wl_compositor") == 0)
|
if (strcmp(interface, "wl_compositor") == 0)
|
||||||
{
|
{
|
||||||
_glfw.wl.compositorVersion = min(3, version);
|
_glfw.wl.compositorVersion = _glfw_min(3, version);
|
||||||
_glfw.wl.compositor =
|
_glfw.wl.compositor =
|
||||||
wl_registry_bind(registry, name, &wl_compositor_interface,
|
wl_registry_bind(registry, name, &wl_compositor_interface,
|
||||||
_glfw.wl.compositorVersion);
|
_glfw.wl.compositorVersion);
|
||||||
@ -811,7 +806,7 @@ static void registryHandleGlobal(void* data,
|
|||||||
{
|
{
|
||||||
if (!_glfw.wl.seat)
|
if (!_glfw.wl.seat)
|
||||||
{
|
{
|
||||||
_glfw.wl.seatVersion = min(4, version);
|
_glfw.wl.seatVersion = _glfw_min(4, version);
|
||||||
_glfw.wl.seat =
|
_glfw.wl.seat =
|
||||||
wl_registry_bind(registry, name, &wl_seat_interface,
|
wl_registry_bind(registry, name, &wl_seat_interface,
|
||||||
_glfw.wl.seatVersion);
|
_glfw.wl.seatVersion);
|
||||||
|
@ -353,11 +353,7 @@ static void checkScaleChange(_GLFWwindow* window)
|
|||||||
int maxScale = 1;
|
int maxScale = 1;
|
||||||
|
|
||||||
for (int i = 0; i < window->wl.monitorsCount; i++)
|
for (int i = 0; i < window->wl.monitorsCount; i++)
|
||||||
{
|
maxScale = _glfw_max(window->wl.monitors[i]->wl.scale, maxScale);
|
||||||
const int scale = window->wl.monitors[i]->wl.scale;
|
|
||||||
if (maxScale < scale)
|
|
||||||
maxScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only change the framebuffer size if the scale changed.
|
// Only change the framebuffer size if the scale changed.
|
||||||
if (window->wl.scale != maxScale)
|
if (window->wl.scale != maxScale)
|
||||||
|
Loading…
Reference in New Issue
Block a user