Merge pull request #709 from ryuukk/rounding

Round layout widget position to nearest 0
This commit is contained in:
Rob Loach 2024-09-29 01:59:01 -04:00 committed by GitHub
commit 2156b95a5d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 1 deletions

View File

@ -118,6 +118,7 @@ NK_LIB int nk_ifloord(double x);
NK_LIB int nk_ifloorf(float x); NK_LIB int nk_ifloorf(float x);
NK_LIB int nk_iceilf(float x); NK_LIB int nk_iceilf(float x);
NK_LIB int nk_log10(double n); NK_LIB int nk_log10(double n);
NK_LIB float nk_roundf(float x);
/* util */ /* util */
enum {NK_DO_NOT_STOP_ON_NEW_LINE, NK_STOP_ON_NEW_LINE}; enum {NK_DO_NOT_STOP_ON_NEW_LINE, NK_STOP_ON_NEW_LINE};

View File

@ -601,7 +601,7 @@ nk_layout_widget_space(struct nk_rect *bounds, const struct nk_context *ctx,
panel_space = nk_layout_row_calculate_usable_space(&ctx->style, layout->type, panel_space = nk_layout_row_calculate_usable_space(&ctx->style, layout->type,
layout->bounds.w, layout->row.columns); layout->bounds.w, layout->row.columns);
#define NK_FRAC(x) (x - (float)(int)x) /* will be used to remove fookin gaps */ #define NK_FRAC(x) (x - (float)(int)nk_roundf(x)) /* will be used to remove fookin gaps */
/* calculate the width of one item inside the current layout space */ /* calculate the width of one item inside the current layout space */
switch (layout->row.type) { switch (layout->row.type) {
case NK_LAYOUT_DYNAMIC_FIXED: { case NK_LAYOUT_DYNAMIC_FIXED: {

View File

@ -197,6 +197,11 @@ nk_log10(double n)
if (neg) exp = -exp; if (neg) exp = -exp;
return exp; return exp;
} }
NK_LIB float
nk_roundf(float x)
{
return (x >= 0.0) ? nk_ifloorf(x + 0.5) : nk_iceilf(x - 0.5);
}
NK_API struct nk_rect NK_API struct nk_rect
nk_get_null_rect(void) nk_get_null_rect(void)
{ {