- Update to 0.2.2

PR:		ports/86955
Submitted by:	Piotr Smyrak <piotr.smyrak@heron.pl> (maintainer)
This commit is contained in:
Pav Lucistnik 2005-10-05 22:26:29 +00:00
parent b25bc7ad32
commit 6c27226188
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=144348
10 changed files with 36 additions and 660 deletions

View File

@ -6,7 +6,7 @@
#
PORTNAME= colorscheme
PORTVERSION= 0.2.1
PORTVERSION= 0.2.2
CATEGORIES= graphics gnome
MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/
PKGNAMEPREFIX= gnome-
@ -25,10 +25,4 @@ GNU_CONFIGURE= yes
USE_GCC= 3.4+
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 503001
EXTRA_PATCHES+= ${FILESDIR}/roundpatch
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee
SIZE (colorscheme-0.2.1.tar.bz2) = 149287
MD5 (colorscheme-0.2.2.tar.bz2) = 0106bd04856d89181984ea8fa1c4647c
SIZE (colorscheme-0.2.2.tar.bz2) = 151991

View File

@ -0,0 +1,14 @@
--- src/core/compat-round.cc.orig Wed Oct 5 21:18:30 2005
+++ src/core/compat-round.cc Wed Oct 5 21:19:28 2005
@@ -43,7 +43,11 @@
#define COMPAT_FP_SUBNORMAL 0x08
#define COMPAT_FP_ZERO 0x10
+#ifdef Linux
#include <endian.h>
+#elif defined(__FreeBSD__)
+#include <machine/endian.h>
+#endif
#define compat_fpclassify(x) \
((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \
: (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \

View File

@ -1,10 +0,0 @@
--- src/main.cc.orig Tue Aug 30 02:25:47 2005
+++ src/main.cc Tue Aug 30 02:26:18 2005
@@ -33,6 +33,7 @@
#include <libgnomeui/gnome-ui-init.h>
#include "gcs-mainwindow.h"
+#include "gcs-i18n.h"
namespace gcs
{

View File

@ -1,310 +0,0 @@
--- src/core/gcs-color.cc.orig Wed Aug 31 02:18:48 2005
+++ src/core/gcs-color.cc Wed Aug 31 02:26:33 2005
@@ -28,7 +28,262 @@
#include <iomanip> // for hex, setw, setfill, uppercase
#include <algorithm> // for transform
#include <stdexcept> // for invalid_argument exception
-#include <math.h> // for round, floor
+
+/* ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * Copyright (c) 2003, Steven G. Kargl
+ * Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org>
+ * Copyright (c) 2002, 2003 David Schultz <dschultz@uclink.Berkeley.EDU>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <math.h>
+
+/* Symbolic constants to classify floating point numbers. */
+#define COMPAT_FP_INFINITE 0x01
+#define COMPAT_FP_NAN 0x02
+#define COMPAT_FP_NORMAL 0x04
+#define COMPAT_FP_SUBNORMAL 0x08
+#define COMPAT_FP_ZERO 0x10
+
+#include <sys/endian.h>
+#define compat_fpclassify(x) \
+ ((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \
+ : (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \
+ : compat___fpclassifyl(x))
+
+union compat_IEEEf2bits {
+ float f;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int man :23;
+ unsigned int exp :8;
+ unsigned int sign :1;
+#else /* _BIG_ENDIAN */
+ unsigned int sign :1;
+ unsigned int exp :8;
+ unsigned int man :23;
+#endif
+ } bits;
+};
+
+union compat_IEEEd2bits {
+ double d;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int manl :32;
+ unsigned int manh :20;
+ unsigned int exp :11;
+ unsigned int sign :1;
+#else /* _BIG_ENDIAN */
+ unsigned int sign :1;
+ unsigned int exp :11;
+ unsigned int manh :20;
+ unsigned int manl :32;
+#endif
+ } bits;
+};
+
+#ifdef __alpha__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :20;
+ unsigned int exp :11;
+ unsigned int sign :1;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#elif __amd64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junkl :16;
+ unsigned int junkh :32;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __arm__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junk :16;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __i386__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junk :16;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __ia64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned long junk :48;
+#else /* _BIG_ENDIAN */
+ unsigned long junk :48;
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned int manh :32;
+ unsigned int manl :32;
+#endif
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __powerpc__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned long long manh :48;
+ unsigned long long manl :64;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#elif __sparc64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned long manh :48;
+ unsigned long manl :64;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#endif
+
+static int
+compat___fpclassifyf(float f)
+{
+ union compat_IEEEf2bits u;
+
+ u.f = f;
+ if (u.bits.exp == 0) {
+ if (u.bits.man == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ if (u.bits.exp == 255) {
+ if (u.bits.man == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static int
+compat___fpclassifyd(double d)
+{
+ union compat_IEEEd2bits u;
+
+ u.d = d;
+ if (u.bits.exp == 0) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ if (u.bits.exp == 2047) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static int
+compat___fpclassifyl(long double e)
+{
+ union compat_IEEEl2bits u;
+
+ u.e = e;
+ if (u.bits.exp == 0) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ compat_mask_nbit_l(u); /* Mask normalization bit if applicable. */
+ if (u.bits.exp == 32767) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static double
+compat_round(double x)
+{
+ double t;
+ int i;
+
+ i = compat_fpclassify(x);
+ if (i == COMPAT_FP_INFINITE || i == COMPAT_FP_NAN)
+ return (x);
+
+ if (x >= 0.0) {
+ t = ceil(x);
+ if (t - x > 0.5)
+ t -= 1.0;
+ return (t);
+ } else {
+ t = ceil(-x);
+ if (t + x > 0.5)
+ t -= 1.0;
+ return (-t);
+ }
+}
namespace gcs
{
@@ -166,9 +421,9 @@
}
tempHue *= maxHueValue / 6; // degrees
- tempHue = round(tempHue);
- out.saturation = static_cast<int>(round(tempSat));
- out.value = static_cast<int>(round(tempVal));
+ tempHue = compat_round(tempHue);
+ out.saturation = static_cast<int>(compat_round(tempSat));
+ out.value = static_cast<int>(compat_round(tempVal));
if(tempHue < 0)
{
out.hue += maxHueValue;
@@ -201,7 +456,7 @@
hueSector = static_cast<int>(floor(scaledHue));
remainder = scaledHue - hueSector; // factorial part of scaledHue
p = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue *
(
((float) hsv.value / 100.0) *
@@ -210,18 +465,18 @@
)
);
q = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue * ((float) hsv.value / 100.0 *
(1.0 - ((float) hsv.saturation / 100.0 * remainder)))
)
);
t = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue * ((float) hsv.value / 100.0) *
(1.0 - ((float) hsv.saturation / 100.0) * (1.0 - remainder))
)
);
- val = static_cast<int>(round(maxRgbValue * hsv.value / 100));
+ val = static_cast<int>(compat_round(maxRgbValue * hsv.value / 100));
switch(hueSector)
{

View File

@ -6,7 +6,7 @@
#
PORTNAME= colorscheme
PORTVERSION= 0.2.1
PORTVERSION= 0.2.2
CATEGORIES= graphics gnome
MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/
PKGNAMEPREFIX= gnome-
@ -25,10 +25,4 @@ GNU_CONFIGURE= yes
USE_GCC= 3.4+
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 503001
EXTRA_PATCHES+= ${FILESDIR}/roundpatch
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee
SIZE (colorscheme-0.2.1.tar.bz2) = 149287
MD5 (colorscheme-0.2.2.tar.bz2) = 0106bd04856d89181984ea8fa1c4647c
SIZE (colorscheme-0.2.2.tar.bz2) = 151991

View File

@ -0,0 +1,14 @@
--- src/core/compat-round.cc.orig Wed Oct 5 21:18:30 2005
+++ src/core/compat-round.cc Wed Oct 5 21:19:28 2005
@@ -43,7 +43,11 @@
#define COMPAT_FP_SUBNORMAL 0x08
#define COMPAT_FP_ZERO 0x10
+#ifdef Linux
#include <endian.h>
+#elif defined(__FreeBSD__)
+#include <machine/endian.h>
+#endif
#define compat_fpclassify(x) \
((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \
: (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \

View File

@ -1,10 +0,0 @@
--- src/main.cc.orig Tue Aug 30 02:25:47 2005
+++ src/main.cc Tue Aug 30 02:26:18 2005
@@ -33,6 +33,7 @@
#include <libgnomeui/gnome-ui-init.h>
#include "gcs-mainwindow.h"
+#include "gcs-i18n.h"
namespace gcs
{

View File

@ -1,310 +0,0 @@
--- src/core/gcs-color.cc.orig Wed Aug 31 02:18:48 2005
+++ src/core/gcs-color.cc Wed Aug 31 02:26:33 2005
@@ -28,7 +28,262 @@
#include <iomanip> // for hex, setw, setfill, uppercase
#include <algorithm> // for transform
#include <stdexcept> // for invalid_argument exception
-#include <math.h> // for round, floor
+
+/* ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * Copyright (c) 2003, Steven G. Kargl
+ * Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org>
+ * Copyright (c) 2002, 2003 David Schultz <dschultz@uclink.Berkeley.EDU>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <math.h>
+
+/* Symbolic constants to classify floating point numbers. */
+#define COMPAT_FP_INFINITE 0x01
+#define COMPAT_FP_NAN 0x02
+#define COMPAT_FP_NORMAL 0x04
+#define COMPAT_FP_SUBNORMAL 0x08
+#define COMPAT_FP_ZERO 0x10
+
+#include <sys/endian.h>
+#define compat_fpclassify(x) \
+ ((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \
+ : (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \
+ : compat___fpclassifyl(x))
+
+union compat_IEEEf2bits {
+ float f;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int man :23;
+ unsigned int exp :8;
+ unsigned int sign :1;
+#else /* _BIG_ENDIAN */
+ unsigned int sign :1;
+ unsigned int exp :8;
+ unsigned int man :23;
+#endif
+ } bits;
+};
+
+union compat_IEEEd2bits {
+ double d;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int manl :32;
+ unsigned int manh :20;
+ unsigned int exp :11;
+ unsigned int sign :1;
+#else /* _BIG_ENDIAN */
+ unsigned int sign :1;
+ unsigned int exp :11;
+ unsigned int manh :20;
+ unsigned int manl :32;
+#endif
+ } bits;
+};
+
+#ifdef __alpha__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :20;
+ unsigned int exp :11;
+ unsigned int sign :1;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#elif __amd64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junkl :16;
+ unsigned int junkh :32;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __arm__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junk :16;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __i386__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned int junk :16;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __ia64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int manl :32;
+ unsigned int manh :32;
+ unsigned int exp :15;
+ unsigned int sign :1;
+ unsigned long junk :48;
+#else /* _BIG_ENDIAN */
+ unsigned long junk :48;
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned int manh :32;
+ unsigned int manl :32;
+#endif
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
+#elif __powerpc__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned long long manh :48;
+ unsigned long long manl :64;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#elif __sparc64__
+union compat_IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned long manh :48;
+ unsigned long manl :64;
+ } bits;
+};
+#define compat_mask_nbit_l(u) ((void)0)
+#endif
+
+static int
+compat___fpclassifyf(float f)
+{
+ union compat_IEEEf2bits u;
+
+ u.f = f;
+ if (u.bits.exp == 0) {
+ if (u.bits.man == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ if (u.bits.exp == 255) {
+ if (u.bits.man == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static int
+compat___fpclassifyd(double d)
+{
+ union compat_IEEEd2bits u;
+
+ u.d = d;
+ if (u.bits.exp == 0) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ if (u.bits.exp == 2047) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static int
+compat___fpclassifyl(long double e)
+{
+ union compat_IEEEl2bits u;
+
+ u.e = e;
+ if (u.bits.exp == 0) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_ZERO);
+ return (COMPAT_FP_SUBNORMAL);
+ }
+ compat_mask_nbit_l(u); /* Mask normalization bit if applicable. */
+ if (u.bits.exp == 32767) {
+ if ((u.bits.manl | u.bits.manh) == 0)
+ return (COMPAT_FP_INFINITE);
+ return (COMPAT_FP_NAN);
+ }
+ return (COMPAT_FP_NORMAL);
+}
+
+static double
+compat_round(double x)
+{
+ double t;
+ int i;
+
+ i = compat_fpclassify(x);
+ if (i == COMPAT_FP_INFINITE || i == COMPAT_FP_NAN)
+ return (x);
+
+ if (x >= 0.0) {
+ t = ceil(x);
+ if (t - x > 0.5)
+ t -= 1.0;
+ return (t);
+ } else {
+ t = ceil(-x);
+ if (t + x > 0.5)
+ t -= 1.0;
+ return (-t);
+ }
+}
namespace gcs
{
@@ -166,9 +421,9 @@
}
tempHue *= maxHueValue / 6; // degrees
- tempHue = round(tempHue);
- out.saturation = static_cast<int>(round(tempSat));
- out.value = static_cast<int>(round(tempVal));
+ tempHue = compat_round(tempHue);
+ out.saturation = static_cast<int>(compat_round(tempSat));
+ out.value = static_cast<int>(compat_round(tempVal));
if(tempHue < 0)
{
out.hue += maxHueValue;
@@ -201,7 +456,7 @@
hueSector = static_cast<int>(floor(scaledHue));
remainder = scaledHue - hueSector; // factorial part of scaledHue
p = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue *
(
((float) hsv.value / 100.0) *
@@ -210,18 +465,18 @@
)
);
q = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue * ((float) hsv.value / 100.0 *
(1.0 - ((float) hsv.saturation / 100.0 * remainder)))
)
);
t = static_cast<int>(
- round(
+ compat_round(
(float) maxRgbValue * ((float) hsv.value / 100.0) *
(1.0 - ((float) hsv.saturation / 100.0) * (1.0 - remainder))
)
);
- val = static_cast<int>(round(maxRgbValue * hsv.value / 100));
+ val = static_cast<int>(compat_round(maxRgbValue * hsv.value / 100));
switch(hueSector)
{