diff options
author | Dylan Baker <[email protected]> | 2018-09-10 10:22:42 -0700 |
---|---|---|
committer | Dylan Baker <[email protected]> | 2020-04-21 11:09:03 -0700 |
commit | 53c36dfcfe3eb3749a53267f054870280afb0d71 (patch) | |
tree | 7d178170b8324ce2ec4fed64e66a146c173edf97 | |
parent | df3ce8fb77e718ee4371fe7ca9f4a7c889319efb (diff) |
replace IROUND with util functions
This adds two new util functions to rounding.h, _mesa_iroundf and
mesa_lround, which are just wrappers around roundf and round, that cast
to int and long int respectively. This is possible since mesa recently
dropped support for VC2013, since 2015 and 2017 support roundf.
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Kristian H. Kristensen <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3024>
-rw-r--r-- | src/mesa/main/drawpix.c | 24 | ||||
-rw-r--r-- | src/mesa/main/eval.c | 21 | ||||
-rw-r--r-- | src/mesa/main/get.c | 44 | ||||
-rw-r--r-- | src/mesa/main/light.c | 27 | ||||
-rw-r--r-- | src/mesa/main/pixel.c | 3 | ||||
-rw-r--r-- | src/mesa/main/pixelstore.c | 5 | ||||
-rw-r--r-- | src/mesa/main/samplerobj.c | 14 | ||||
-rw-r--r-- | src/mesa/main/texparam.c | 10 | ||||
-rw-r--r-- | src/mesa/swrast/s_blit.c | 6 | ||||
-rw-r--r-- | src/mesa/swrast/s_context.h | 3 | ||||
-rw-r--r-- | src/util/imports.h | 17 | ||||
-rw-r--r-- | src/util/rounding.h | 1 |
12 files changed, 80 insertions, 95 deletions
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index 45896c15552..828199ea5dd 100644 --- a/src/mesa/main/drawpix.c +++ b/src/mesa/main/drawpix.c @@ -23,7 +23,6 @@ */ #include "glheader.h" -#include "util/imports.h" #include "draw_validate.h" #include "bufferobj.h" #include "context.h" @@ -37,6 +36,7 @@ #include "glformats.h" #include "fbobject.h" #include "util/u_math.h" +#include "util/rounding.h" /* @@ -52,14 +52,14 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, FLUSH_VERTICES(ctx, 0); if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glDrawPixels(%d, %d, %s, %s, %p) // to %s at %d, %d\n", + _mesa_debug(ctx, "glDrawPixels(%d, %d, %s, %s, %p) // to %s at %ld, %ld\n", width, height, _mesa_enum_to_string(format), _mesa_enum_to_string(type), pixels, _mesa_enum_to_string(ctx->DrawBuffer->ColorDrawBuffer[0]), - IROUND(ctx->Current.RasterPos[0]), - IROUND(ctx->Current.RasterPos[1])); + lroundf(ctx->Current.RasterPos[0]), + lroundf(ctx->Current.RasterPos[1])); if (width < 0 || height < 0) { @@ -141,8 +141,8 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, if (ctx->RenderMode == GL_RENDER) { if (width > 0 && height > 0) { /* Round, to satisfy conformance tests (matches SGI's OpenGL) */ - GLint x = IROUND(ctx->Current.RasterPos[0]); - GLint y = IROUND(ctx->Current.RasterPos[1]); + GLint x = lroundf(ctx->Current.RasterPos[0]); + GLint y = lroundf(ctx->Current.RasterPos[1]); if (ctx->Unpack.BufferObj) { /* unpack from PBO */ @@ -197,13 +197,13 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, - "glCopyPixels(%d, %d, %d, %d, %s) // from %s to %s at %d, %d\n", + "glCopyPixels(%d, %d, %d, %d, %s) // from %s to %s at %ld, %ld\n", srcx, srcy, width, height, _mesa_enum_to_string(type), _mesa_enum_to_string(ctx->ReadBuffer->ColorReadBuffer), _mesa_enum_to_string(ctx->DrawBuffer->ColorDrawBuffer[0]), - IROUND(ctx->Current.RasterPos[0]), - IROUND(ctx->Current.RasterPos[1])); + lroundf(ctx->Current.RasterPos[0]), + lroundf(ctx->Current.RasterPos[1])); if (width < 0 || height < 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyPixels(width or height < 0)"); @@ -265,8 +265,8 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, if (ctx->RenderMode == GL_RENDER) { /* Round to satisfy conformance tests (matches SGI's OpenGL) */ if (width > 0 && height > 0) { - GLint destx = IROUND(ctx->Current.RasterPos[0]); - GLint desty = IROUND(ctx->Current.RasterPos[1]); + GLint destx = lroundf(ctx->Current.RasterPos[0]); + GLint desty = lroundf(ctx->Current.RasterPos[1]); ctx->Driver.CopyPixels( ctx, srcx, srcy, width, height, destx, desty, type ); } @@ -274,7 +274,7 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, else if (ctx->RenderMode == GL_FEEDBACK) { FLUSH_CURRENT( ctx, 0 ); _mesa_feedback_token( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN ); - _mesa_feedback_vertex( ctx, + _mesa_feedback_vertex( ctx, ctx->Current.RasterPos, ctx->Current.RasterColor, ctx->Current.RasterTexCoords[0] ); diff --git a/src/mesa/main/eval.c b/src/mesa/main/eval.c index e970265e2c3..f6bdc29a89c 100644 --- a/src/mesa/main/eval.c +++ b/src/mesa/main/eval.c @@ -38,7 +38,6 @@ #include "glheader.h" -#include "util/imports.h" #include "context.h" #include "eval.h" #include "macros.h" @@ -480,7 +479,7 @@ _mesa_Map2d( GLenum target, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points ) { - map2(target, (GLfloat) u1, (GLfloat) u2, ustride, uorder, + map2(target, (GLfloat) u1, (GLfloat) u2, ustride, uorder, (GLfloat) v1, (GLfloat) v2, vstride, vorder, points, GL_DOUBLE); } @@ -704,7 +703,7 @@ _mesa_GetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v ) if (bufSize < numBytes) goto overflow; for (i=0;i<n;i++) { - v[i] = IROUND(data[i]); + v[i] = lroundf(data[i]); } } break; @@ -728,17 +727,17 @@ _mesa_GetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v ) numBytes = 2 * sizeof *v; if (bufSize < numBytes) goto overflow; - v[0] = IROUND(map1d->u1); - v[1] = IROUND(map1d->u2); + v[0] = lroundf(map1d->u1); + v[1] = lroundf(map1d->u2); } else { numBytes = 4 * sizeof *v; if (bufSize < numBytes) goto overflow; - v[0] = IROUND(map2d->u1); - v[1] = IROUND(map2d->u2); - v[2] = IROUND(map2d->v1); - v[3] = IROUND(map2d->v2); + v[0] = lroundf(map2d->u1); + v[1] = lroundf(map2d->u2); + v[2] = lroundf(map2d->v1); + v[3] = lroundf(map2d->v2); } break; default: @@ -815,7 +814,7 @@ void GLAPIENTRY _mesa_MapGrid2d( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ) { - _mesa_MapGrid2f( un, (GLfloat) u1, (GLfloat) u2, + _mesa_MapGrid2f( un, (GLfloat) u1, (GLfloat) u2, vn, (GLfloat) v1, (GLfloat) v2 ); } @@ -856,7 +855,7 @@ init_1d_map( struct gl_1d_map *map, int n, const float *initial ) /** - * Initialize a 2-D evaluator map + * Initialize a 2-D evaluator map */ static void init_2d_map( struct gl_2d_map *map, int n, const float *initial ) diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 48f43cb55f3..f03685f33ac 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1959,18 +1959,18 @@ _mesa_GetIntegerv(GLenum pname, GLint *params) break; case TYPE_FLOAT_8: - params[7] = IROUND(((GLfloat *) p)[7]); - params[6] = IROUND(((GLfloat *) p)[6]); - params[5] = IROUND(((GLfloat *) p)[5]); - params[4] = IROUND(((GLfloat *) p)[4]); + params[7] = lroundf(((GLfloat *) p)[7]); + params[6] = lroundf(((GLfloat *) p)[6]); + params[5] = lroundf(((GLfloat *) p)[5]); + params[4] = lroundf(((GLfloat *) p)[4]); case TYPE_FLOAT_4: - params[3] = IROUND(((GLfloat *) p)[3]); + params[3] = lroundf(((GLfloat *) p)[3]); case TYPE_FLOAT_3: - params[2] = IROUND(((GLfloat *) p)[2]); + params[2] = lroundf(((GLfloat *) p)[2]); case TYPE_FLOAT_2: - params[1] = IROUND(((GLfloat *) p)[1]); + params[1] = lroundf(((GLfloat *) p)[1]); case TYPE_FLOAT: - params[0] = IROUND(((GLfloat *) p)[0]); + params[0] = lroundf(((GLfloat *) p)[0]); break; case TYPE_FLOATN_4: @@ -2074,18 +2074,18 @@ _mesa_GetInteger64v(GLenum pname, GLint64 *params) break; case TYPE_FLOAT_8: - params[7] = IROUND64(((GLfloat *) p)[7]); - params[6] = IROUND64(((GLfloat *) p)[6]); - params[5] = IROUND64(((GLfloat *) p)[5]); - params[4] = IROUND64(((GLfloat *) p)[4]); + params[7] = llround(((GLfloat *) p)[7]); + params[6] = llround(((GLfloat *) p)[6]); + params[5] = llround(((GLfloat *) p)[5]); + params[4] = llround(((GLfloat *) p)[4]); case TYPE_FLOAT_4: - params[3] = IROUND64(((GLfloat *) p)[3]); + params[3] = llround(((GLfloat *) p)[3]); case TYPE_FLOAT_3: - params[2] = IROUND64(((GLfloat *) p)[2]); + params[2] = llround(((GLfloat *) p)[2]); case TYPE_FLOAT_2: - params[1] = IROUND64(((GLfloat *) p)[1]); + params[1] = llround(((GLfloat *) p)[1]); case TYPE_FLOAT: - params[0] = IROUND64(((GLfloat *) p)[0]); + params[0] = llround(((GLfloat *) p)[0]); break; case TYPE_FLOATN_4: @@ -2922,22 +2922,22 @@ _mesa_GetIntegeri_v( GLenum pname, GLuint index, GLint *params ) switch (type) { case TYPE_FLOAT_4: case TYPE_FLOATN_4: - params[3] = IROUND(v.value_float_4[3]); + params[3] = lroundf(v.value_float_4[3]); case TYPE_FLOAT_3: case TYPE_FLOATN_3: - params[2] = IROUND(v.value_float_4[2]); + params[2] = lroundf(v.value_float_4[2]); case TYPE_FLOAT_2: case TYPE_FLOATN_2: - params[1] = IROUND(v.value_float_4[1]); + params[1] = lroundf(v.value_float_4[1]); case TYPE_FLOAT: case TYPE_FLOATN: - params[0] = IROUND(v.value_float_4[0]); + params[0] = lroundf(v.value_float_4[0]); break; case TYPE_DOUBLEN_2: - params[1] = IROUND(v.value_double_2[1]); + params[1] = lroundf(v.value_double_2[1]); case TYPE_DOUBLEN: - params[0] = IROUND(v.value_double_2[0]); + params[0] = lroundf(v.value_double_2[0]); break; case TYPE_INT: diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c index bae17c76f60..0883832dbd6 100644 --- a/src/mesa/main/light.c +++ b/src/mesa/main/light.c @@ -26,7 +26,6 @@ #include "c99_math.h" #include "glheader.h" -#include "util/imports.h" #include "context.h" #include "enums.h" #include "light.h" @@ -613,7 +612,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) { GLfloat (*mat)[4] = ctx->Light.Material.Attrib; - if (MESA_VERBOSE & VERBOSE_MATERIAL) + if (MESA_VERBOSE & VERBOSE_MATERIAL) _mesa_debug(ctx, "_mesa_update_material, mask 0x%x\n", bitmask); if (!bitmask) @@ -625,7 +624,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) while (mask) { const int i = u_bit_scan(&mask); struct gl_light *light = &ctx->Light.Light[i]; - SCALE_3V( light->_MatAmbient[0], light->Ambient, + SCALE_3V( light->_MatAmbient[0], light->Ambient, mat[MAT_ATTRIB_FRONT_AMBIENT]); } } @@ -635,7 +634,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) while (mask) { const int i = u_bit_scan(&mask); struct gl_light *light = &ctx->Light.Light[i]; - SCALE_3V( light->_MatAmbient[1], light->Ambient, + SCALE_3V( light->_MatAmbient[1], light->Ambient, mat[MAT_ATTRIB_BACK_AMBIENT]); } } @@ -659,7 +658,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) while (mask) { const int i = u_bit_scan(&mask); struct gl_light *light = &ctx->Light.Light[i]; - SCALE_3V( light->_MatDiffuse[0], light->Diffuse, + SCALE_3V( light->_MatDiffuse[0], light->Diffuse, mat[MAT_ATTRIB_FRONT_DIFFUSE] ); } } @@ -669,7 +668,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) while (mask) { const int i = u_bit_scan(&mask); struct gl_light *light = &ctx->Light.Light[i]; - SCALE_3V( light->_MatDiffuse[1], light->Diffuse, + SCALE_3V( light->_MatDiffuse[1], light->Diffuse, mat[MAT_ATTRIB_BACK_DIFFUSE] ); } } @@ -680,7 +679,7 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) while (mask) { const int i = u_bit_scan(&mask); struct gl_light *light = &ctx->Light.Light[i]; - SCALE_3V( light->_MatSpecular[0], light->Specular, + SCALE_3V( light->_MatSpecular[0], light->Specular, mat[MAT_ATTRIB_FRONT_SPECULAR]); } } @@ -857,12 +856,12 @@ _mesa_GetMaterialiv( GLenum face, GLenum pname, GLint *params ) params[3] = FLOAT_TO_INT( mat[MAT_ATTRIB_EMISSION(f)][3] ); break; case GL_SHININESS: - *params = IROUND( mat[MAT_ATTRIB_SHININESS(f)][0] ); + *params = lroundf( mat[MAT_ATTRIB_SHININESS(f)][0] ); break; case GL_COLOR_INDEXES: - params[0] = IROUND( mat[MAT_ATTRIB_INDEXES(f)][0] ); - params[1] = IROUND( mat[MAT_ATTRIB_INDEXES(f)][1] ); - params[2] = IROUND( mat[MAT_ATTRIB_INDEXES(f)][2] ); + params[0] = lroundf( mat[MAT_ATTRIB_INDEXES(f)][0] ); + params[1] = lroundf( mat[MAT_ATTRIB_INDEXES(f)][1] ); + params[2] = lroundf( mat[MAT_ATTRIB_INDEXES(f)][2] ); break; default: _mesa_error( ctx, GL_INVALID_ENUM, "glGetMaterialfv(pname)" ); @@ -1117,7 +1116,7 @@ _mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ) * Initialize the n-th light data structure. * * \param l pointer to the gl_light structure to be initialized. - * \param n number of the light. + * \param n number of the light. * \note The defaults for light 0 are different than the other lights. */ static void @@ -1161,7 +1160,7 @@ init_lightmodel( struct gl_lightmodel *lm ) /** * Initialize the material data structure. - * + * * \param m pointer to the gl_material structure to be initialized. */ static void @@ -1173,7 +1172,7 @@ init_material( struct gl_material *m ) ASSIGN_4V( m->Attrib[MAT_ATTRIB_FRONT_EMISSION], 0.0F, 0.0F, 0.0F, 1.0F ); ASSIGN_4V( m->Attrib[MAT_ATTRIB_FRONT_SHININESS], 0.0F, 0.0F, 0.0F, 0.0F ); ASSIGN_4V( m->Attrib[MAT_ATTRIB_FRONT_INDEXES], 0.0F, 1.0F, 1.0F, 0.0F ); - + ASSIGN_4V( m->Attrib[MAT_ATTRIB_BACK_AMBIENT], 0.2F, 0.2F, 0.2F, 1.0F ); ASSIGN_4V( m->Attrib[MAT_ATTRIB_BACK_DIFFUSE], 0.8F, 0.8F, 0.8F, 1.0F ); ASSIGN_4V( m->Attrib[MAT_ATTRIB_BACK_SPECULAR], 0.0F, 0.0F, 0.0F, 1.0F ); diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c index 3623030071f..a5cb6d85ef5 100644 --- a/src/mesa/main/pixel.c +++ b/src/mesa/main/pixel.c @@ -28,6 +28,7 @@ * Pixel transfer functions (glPixelZoom, glPixelMap, glPixelTransfer) */ +#include "c99_math.h" #include "glheader.h" #include "bufferobj.h" #include "context.h" @@ -113,7 +114,7 @@ store_pixelmap(struct gl_context *ctx, GLenum map, GLsizei mapsize, /* special case */ ctx->PixelMaps.StoS.Size = mapsize; for (i = 0; i < mapsize; i++) { - ctx->PixelMaps.StoS.Map[i] = (GLfloat)IROUND(values[i]); + ctx->PixelMaps.StoS.Map[i] = roundf(values[i]); } break; case GL_PIXEL_MAP_I_TO_I: diff --git a/src/mesa/main/pixelstore.c b/src/mesa/main/pixelstore.c index a7c3492b604..f190c0b2bc1 100644 --- a/src/mesa/main/pixelstore.c +++ b/src/mesa/main/pixelstore.c @@ -33,6 +33,7 @@ #include "context.h" #include "pixelstore.h" #include "mtypes.h" +#include "util/rounding.h" static ALWAYS_INLINE void @@ -234,7 +235,7 @@ _mesa_PixelStorei(GLenum pname, GLint param) void GLAPIENTRY _mesa_PixelStoref(GLenum pname, GLfloat param) { - _mesa_PixelStorei(pname, IROUND(param)); + _mesa_PixelStorei(pname, lroundf(param)); } @@ -248,7 +249,7 @@ _mesa_PixelStorei_no_error(GLenum pname, GLint param) void GLAPIENTRY _mesa_PixelStoref_no_error(GLenum pname, GLfloat param) { - _mesa_PixelStorei_no_error(pname, IROUND(param)); + _mesa_PixelStorei_no_error(pname, lroundf(param)); } diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c index 6656cf5022a..449695dbac7 100644 --- a/src/mesa/main/samplerobj.c +++ b/src/mesa/main/samplerobj.c @@ -242,7 +242,7 @@ delete_samplers(struct gl_context *ctx, GLsizei count, const GLuint *samplers) GLuint j; struct gl_sampler_object *sampObj = lookup_samplerobj_locked(ctx, samplers[i]); - + if (sampObj) { /* If the sampler is currently bound, unbind it. */ for (j = 0; j < ctx->Const.MaxCombinedTextureImageUnits; j++) { @@ -326,7 +326,7 @@ bind_sampler(struct gl_context *ctx, GLuint unit, GLuint sampler, bool no_error) return; } } - + /* bind new sampler */ _mesa_bind_sampler(ctx, unit, sampObj); } @@ -472,7 +472,7 @@ _mesa_BindSamplers(GLuint first, GLsizei count, const GLuint *samplers) * Check if a coordinate wrap mode is legal. * \return GL_TRUE if legal, GL_FALSE otherwise */ -static GLboolean +static GLboolean validate_texture_wrap_mode(struct gl_context *ctx, GLenum wrap) { const struct gl_extensions * const e = &ctx->Extensions; @@ -1421,19 +1421,19 @@ _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params) /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(sampObj->MinLod); + *params = lroundf(sampObj->MinLod); break; case GL_TEXTURE_MAX_LOD: /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(sampObj->MaxLod); + *params = lroundf(sampObj->MaxLod); break; case GL_TEXTURE_LOD_BIAS: /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(sampObj->LodBias); + *params = lroundf(sampObj->LodBias); break; case GL_TEXTURE_COMPARE_MODE: *params = sampObj->CompareMode; @@ -1445,7 +1445,7 @@ _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params) /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(sampObj->MaxAnisotropy); + *params = lroundf(sampObj->MaxAnisotropy); break; case GL_TEXTURE_BORDER_COLOR: params[0] = FLOAT_TO_INT(sampObj->BorderColor.f[0]); diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index ced2da8496c..7e062403bb9 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -1649,7 +1649,7 @@ get_tex_level_parameter_image(struct gl_context *ctx, } if (*params == 0 && pname == GL_TEXTURE_INTENSITY_SIZE) { /* Gallium may store intensity as LA */ - *params = _mesa_get_format_bits(texFormat, + *params = _mesa_get_format_bits(texFormat, GL_TEXTURE_ALPHA_SIZE); } } @@ -2424,7 +2424,7 @@ get_tex_parameteriv(struct gl_context *ctx, /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(obj->Sampler.MinLod); + *params = lroundf(obj->Sampler.MinLod); break; case GL_TEXTURE_MAX_LOD: if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) @@ -2432,7 +2432,7 @@ get_tex_parameteriv(struct gl_context *ctx, /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(obj->Sampler.MaxLod); + *params = lroundf(obj->Sampler.MaxLod); break; case GL_TEXTURE_BASE_LEVEL: if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) @@ -2449,7 +2449,7 @@ get_tex_parameteriv(struct gl_context *ctx, /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(obj->Sampler.MaxAnisotropy); + *params = lroundf(obj->Sampler.MaxAnisotropy); break; case GL_GENERATE_MIPMAP_SGIS: if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES) @@ -2487,7 +2487,7 @@ get_tex_parameteriv(struct gl_context *ctx, /* GL spec 'Data Conversions' section specifies that floating-point * value in integer Get function is rounded to nearest integer */ - *params = IROUND(obj->Sampler.LodBias); + *params = lroundf(obj->Sampler.LodBias); break; case GL_TEXTURE_CROP_RECT_OES: if (ctx->API != API_OPENGLES || !ctx->Extensions.OES_draw_texture) diff --git a/src/mesa/swrast/s_blit.c b/src/mesa/swrast/s_blit.c index 362d4daad17..6b7e5e45333 100644 --- a/src/mesa/swrast/s_blit.c +++ b/src/mesa/swrast/s_blit.c @@ -298,7 +298,7 @@ blit_nearest(struct gl_context *ctx, for (dstRow = 0; dstRow < dstHeight; dstRow++) { GLfloat srcRowF = (dstRow + 0.5F) / dstHeight * srcHeight - 0.5F; - GLint srcRow = IROUND(srcRowF); + GLint srcRow = lroundf(srcRowF); GLubyte *dstRowStart = dstMap + dstRowStride * dstRow; assert(srcRow >= 0); @@ -440,7 +440,7 @@ resample_linear_row_ub(GLint srcWidth, GLint dstWidth, alpha = lerp_2d(colWeight, rowWeight, srcColor0[srcCol0][ACOMP], srcColor0[srcCol1][ACOMP], srcColor1[srcCol0][ACOMP], srcColor1[srcCol1][ACOMP]); - + dstColor[dstCol][RCOMP] = util_ifloor(red); dstColor[dstCol][GCOMP] = util_ifloor(green); dstColor[dstCol][BCOMP] = util_ifloor(blue); @@ -495,7 +495,7 @@ resample_linear_row_float(GLint srcWidth, GLint dstWidth, alpha = lerp_2d(colWeight, rowWeight, srcColor0[srcCol0][ACOMP], srcColor0[srcCol1][ACOMP], srcColor1[srcCol0][ACOMP], srcColor1[srcCol1][ACOMP]); - + dstColor[dstCol][RCOMP] = red; dstColor[dstCol][GCOMP] = green; dstColor[dstCol][BCOMP] = blue; diff --git a/src/mesa/swrast/s_context.h b/src/mesa/swrast/s_context.h index dd700183c88..9ccba6b2276 100644 --- a/src/mesa/swrast/s_context.h +++ b/src/mesa/swrast/s_context.h @@ -49,6 +49,7 @@ #include "swrast.h" #include "s_fragprog.h" #include "s_span.h" +#include "util/rounding.h" typedef void (*texture_sample_func)(struct gl_context *ctx, @@ -433,7 +434,7 @@ _swrast_unmap_renderbuffers(struct gl_context *ctx); #define FIXED_EPSILON 1 #define FIXED_SCALE ((float) FIXED_ONE) #define FIXED_DBL_SCALE ((double) FIXED_ONE) -#define FloatToFixed(X) (IROUND((X) * FIXED_SCALE)) +#define FloatToFixed(X) (lroundf((X) * FIXED_SCALE)) #define FixedToDouble(X) ((X) * (1.0 / FIXED_DBL_SCALE)) #define IntToFixed(I) ((I) << FIXED_SHIFT) #define FixedToInt(X) ((X) >> FIXED_SHIFT) diff --git a/src/util/imports.h b/src/util/imports.h index 3a73275ffd6..149bb225ad4 100644 --- a/src/util/imports.h +++ b/src/util/imports.h @@ -95,23 +95,6 @@ typedef union { float f; int i; unsigned u; } fi_type; #endif -/** - * Convert float to int by rounding to nearest integer, away from zero. - */ -static inline int IROUND(float f) -{ - return (int) ((f >= 0.0F) ? (f + 0.5F) : (f - 0.5F)); -} - -/** - * Convert float to int64 by rounding to nearest integer. - */ -static inline int64_t IROUND64(float f) -{ - return (int64_t) ((f >= 0.0F) ? (f + 0.5F) : (f - 0.5F)); -} - - /********************************************************************** * Functions */ diff --git a/src/util/rounding.h b/src/util/rounding.h index d3fe8edb7f8..e329d438244 100644 --- a/src/util/rounding.h +++ b/src/util/rounding.h @@ -108,6 +108,7 @@ _mesa_lroundevenf(float x) #endif } + /** * \brief Rounds \c x to the nearest integer, with ties to the even integer, * and returns the value as a long int. |