Add gnome-colorscheme.
GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is useful for web creation as well as room painting. It supports 6 various types of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous, and Monochromatic. The user can lighten/darken the whole colorscheme or increase/decrease its saturation. WWW: http://home.gna.org/colorscheme/ PR: ports/85458 Submitted by: Piotr Smyrak <piotr.smyrak@heron.pl>
This commit is contained in:
parent
0e1ef5c9cc
commit
9f56c0e245
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=141512
@ -156,6 +156,7 @@
|
||||
SUBDIR += gltt
|
||||
SUBDIR += gmt
|
||||
SUBDIR += gnofract4d
|
||||
SUBDIR += gnome-colorscheme
|
||||
SUBDIR += gnomecanvas
|
||||
SUBDIR += gnomeiconedit
|
||||
SUBDIR += gnustep-slideshow
|
||||
|
34
graphics/agave/Makefile
Normal file
34
graphics/agave/Makefile
Normal file
@ -0,0 +1,34 @@
|
||||
# New ports collection makefile for: gnome-colorscheme
|
||||
# Date created: 30 August 2005
|
||||
# Whom: Piotr Smyrak <smyru@heron.pl>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= colorscheme
|
||||
PORTVERSION= 0.2.1
|
||||
CATEGORIES= graphics gnome
|
||||
MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/
|
||||
PKGNAMEPREFIX= gnome-
|
||||
|
||||
MAINTAINER= smyru@heron.pl
|
||||
COMMENT= A color scheme builder for the GNOME desktop
|
||||
|
||||
LIB_DEPENDS= gtkmm-2.4.1:${PORTSDIR}/x11-toolkits/gtkmm24 \
|
||||
cppunit-1.10:${PORTSDIR}/devel/cppunit
|
||||
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_X_PREFIX= yes
|
||||
USE_GNOME= gnomeprefix gnomehack intlhack libgnomeui
|
||||
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>
|
2
graphics/agave/distinfo
Normal file
2
graphics/agave/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee
|
||||
SIZE (colorscheme-0.2.1.tar.bz2) = 149287
|
10
graphics/agave/files/patch-src_main.cc
Normal file
10
graphics/agave/files/patch-src_main.cc
Normal file
@ -0,0 +1,10 @@
|
||||
--- 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
|
||||
{
|
310
graphics/agave/files/roundpatch
Normal file
310
graphics/agave/files/roundpatch
Normal file
@ -0,0 +1,310 @@
|
||||
--- 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)
|
||||
{
|
9
graphics/agave/pkg-descr
Normal file
9
graphics/agave/pkg-descr
Normal file
@ -0,0 +1,9 @@
|
||||
GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is
|
||||
useful for web creation as well as room painting. It supports 6 various types
|
||||
of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous,
|
||||
and Monochromatic.
|
||||
|
||||
The user can lighten/darken the whole colorscheme or increase/decrease its
|
||||
saturation.
|
||||
|
||||
WWW: http://home.gna.org/colorscheme/
|
11
graphics/agave/pkg-plist
Normal file
11
graphics/agave/pkg-plist
Normal file
@ -0,0 +1,11 @@
|
||||
bin/colorscheme
|
||||
share/gnome/applications/colorscheme.desktop
|
||||
share/gnome/colorscheme/ui/colorscheme.ui
|
||||
share/gnome/pixmaps/colorscheme-icon.png
|
||||
share/gnome/pixmaps/colorscheme-logo.png
|
||||
share/gnome/pixmaps/darken.png
|
||||
share/gnome/pixmaps/desaturate.png
|
||||
share/gnome/pixmaps/lighten.png
|
||||
share/gnome/pixmaps/saturate.png
|
||||
@dirrm share/gnome/colorscheme/ui
|
||||
@dirrm share/gnome/colorscheme
|
34
graphics/gnome-colorscheme/Makefile
Normal file
34
graphics/gnome-colorscheme/Makefile
Normal file
@ -0,0 +1,34 @@
|
||||
# New ports collection makefile for: gnome-colorscheme
|
||||
# Date created: 30 August 2005
|
||||
# Whom: Piotr Smyrak <smyru@heron.pl>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= colorscheme
|
||||
PORTVERSION= 0.2.1
|
||||
CATEGORIES= graphics gnome
|
||||
MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/
|
||||
PKGNAMEPREFIX= gnome-
|
||||
|
||||
MAINTAINER= smyru@heron.pl
|
||||
COMMENT= A color scheme builder for the GNOME desktop
|
||||
|
||||
LIB_DEPENDS= gtkmm-2.4.1:${PORTSDIR}/x11-toolkits/gtkmm24 \
|
||||
cppunit-1.10:${PORTSDIR}/devel/cppunit
|
||||
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_X_PREFIX= yes
|
||||
USE_GNOME= gnomeprefix gnomehack intlhack libgnomeui
|
||||
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>
|
2
graphics/gnome-colorscheme/distinfo
Normal file
2
graphics/gnome-colorscheme/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee
|
||||
SIZE (colorscheme-0.2.1.tar.bz2) = 149287
|
10
graphics/gnome-colorscheme/files/patch-src_main.cc
Normal file
10
graphics/gnome-colorscheme/files/patch-src_main.cc
Normal file
@ -0,0 +1,10 @@
|
||||
--- 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
|
||||
{
|
310
graphics/gnome-colorscheme/files/roundpatch
Normal file
310
graphics/gnome-colorscheme/files/roundpatch
Normal file
@ -0,0 +1,310 @@
|
||||
--- 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)
|
||||
{
|
9
graphics/gnome-colorscheme/pkg-descr
Normal file
9
graphics/gnome-colorscheme/pkg-descr
Normal file
@ -0,0 +1,9 @@
|
||||
GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is
|
||||
useful for web creation as well as room painting. It supports 6 various types
|
||||
of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous,
|
||||
and Monochromatic.
|
||||
|
||||
The user can lighten/darken the whole colorscheme or increase/decrease its
|
||||
saturation.
|
||||
|
||||
WWW: http://home.gna.org/colorscheme/
|
11
graphics/gnome-colorscheme/pkg-plist
Normal file
11
graphics/gnome-colorscheme/pkg-plist
Normal file
@ -0,0 +1,11 @@
|
||||
bin/colorscheme
|
||||
share/gnome/applications/colorscheme.desktop
|
||||
share/gnome/colorscheme/ui/colorscheme.ui
|
||||
share/gnome/pixmaps/colorscheme-icon.png
|
||||
share/gnome/pixmaps/colorscheme-logo.png
|
||||
share/gnome/pixmaps/darken.png
|
||||
share/gnome/pixmaps/desaturate.png
|
||||
share/gnome/pixmaps/lighten.png
|
||||
share/gnome/pixmaps/saturate.png
|
||||
@dirrm share/gnome/colorscheme/ui
|
||||
@dirrm share/gnome/colorscheme
|
Loading…
Reference in New Issue
Block a user