Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:EKrava
kdegraphics3
kdegraphics3-trinity-support-libcms2.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kdegraphics3-trinity-support-libcms2.diff of Package kdegraphics3
commit b34c4d8c337aba6d7d44dfd58087ebd6e2d143e3 Author: Slávek Banko <slavek.banko@axis.cz> Date: 1412881696 +0200 Add support for lcms2 diff --git a/ksvg/configure.in.in b/ksvg/configure.in.in index 5643818..7a19195 100644 --- a/ksvg/configure.in.in +++ b/ksvg/configure.in.in @@ -113,52 +113,56 @@ fi # Check for lcms have_lcms_header='no' -KDE_CHECK_HEADER(lcms/lcms.h,have_lcms_header='yes',,) -if test "$have_lcms_header" = 'yes' -then - LCMS_LIBS='-llcms' - AC_DEFINE(LCMS_HEADER, <lcms/lcms.h>, [The correct header]) +KDE_CHECK_HEADER(lcms2.h,have_lcms2_header='yes',,) +if test "$have_lcms2_header" = 'yes'; then + AC_DEFINE(LCMS_HEADER, <lcms2.h>, [LCMS header]) else - # Alternative! Debian does it this way... - KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,) - if test "$have_lcms_header" = 'yes' - then - LCMS_LIBS='-llcms' - AC_DEFINE(LCMS_HEADER, <lcms.h>, [The correct header]) - - # Try to find the full path of lcms.h - for a in $includedir $prefix/include /usr/include /usr/local/include $kde_extra_includes; do - for b in lcms.h lcms/lcms.h ; do - if test -d "$a" && test -f "$a/$b" ; then - LCMSHDR="$a/$b" - fi - done - done - # Check if lcms.h was found. If not then it means that we didn't search - # the right dirs since the kde check already found a usable lcms.h - if test -n "$LCMSHDR" ; then - # Get lcms version - lcms_ver_line=`cat $LCMSHDR | grep '^// Version' ` - if test -z "$lcms_ver_line" ; then - # Some versions of lcms have the version in /* */ - lcms_ver_line=`cat $LCMSHDR | grep '^/\* Version' ` - fi - lcms_ver=`echo "$lcms_ver_line" | head -n 1 | cut -d ' ' -f 3 ` - - # Get major and minor version numbers - lcms_var_maj=`echo $lcms_ver | cut -d . -f 1` - - # Some versions have a character attached to the end of minor version - lcms_var_min=`echo $lcms_ver | cut -d . -f 2 | sed 's,[^0-9],,g'` - - if test "$lcms_var_maj" -gt 1 || test "$lcms_var_min" -lt 9 ; then - LCMS_LIBS='' - fi - fi - else - LCMS_LIBS='' - fi + KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,) + if test "$have_lcms_header" = 'yes'; then + AC_DEFINE(LCMS_HEADER, <lcms.h>, [LCMS header]) else KDE_CHECK_HEADER(lcms/lcms.h,have_lcms_header='yes',,) + if test "$have_lcms_header" = 'yes'; then + AC_DEFINE(LCMS_HEADER, <lcms/lcms.h>, [LCMS header]) + fi + fi +fi + +LCMS_LIBS='' +have_lcms='no' +saved_libs=$LIBS +saved_cflags="$CFLAGS" +saved_ldflags="$LDFLAGS" +CFLAGS="$CFLAGS $all_includes -I/usr/include/qt" +LDFLAGS="$LDFLAGS $all_libraries" +if test "$have_lcms2_header" = 'yes'; then + LIBS="$LIBS -llcms2" + AC_TRY_LINK([ +#define inline __inline /* gcc is in ansi mode */ +#include LCMS_HEADER +#if LCMS_VERSION < 112 +choke! +#endif +], [ +cmsOpenProfileFromFile("foo", "r"); +], + [LCMS_LIBS='-llcms2'; have_lcms='yes']) +else + if test "$have_lcms_header" = 'yes'; then + LIBS="$LIBS -llcms" + AC_TRY_LINK([ +#define inline __inline /* gcc is in ansi mode */ +#include LCMS_HEADER +#if LCMS_VERSION < 112 +choke! +#endif +], [ +cmsOpenProfileFromFile("foo", "r"); +], + [LCMS_LIBS='-llcms'; have_lcms='yes']) + fi fi +LIBS=$saved_libs +CFLAGS=$saved_cflags +LDFLAGS=$saved_ldflags if test -z "$LCMS_LIBS"; then DO_NOT_COMPILE="$DO_NOT_COMPILE ksvg" diff --git a/ksvg/impl/SVGColorProfileElementImpl.cc b/ksvg/impl/SVGColorProfileElementImpl.cc index 0aa91e5..f59e7c2 100644 --- a/ksvg/impl/SVGColorProfileElementImpl.cc +++ b/ksvg/impl/SVGColorProfileElementImpl.cc @@ -205,13 +205,13 @@ bool SVGColorProfileElementImpl::loadColorProfile() m_hInput = cmsOpenProfileFromFile(open.latin1(), "r"); m_hOutput = cmsCreate_sRGBProfile(); - unsigned int dwIn = BYTES_SH(2) | CHANNELS_SH(_cmsChannelsOf(m_inputColorSpace)); - unsigned int dwOut = BYTES_SH(2) | CHANNELS_SH(_cmsChannelsOf(m_outputColorSpace)); + unsigned int dwIn = BYTES_SH(2) | CHANNELS_SH(cmsChannelsOf(m_inputColorSpace)); + unsigned int dwOut = BYTES_SH(2) | CHANNELS_SH(cmsChannelsOf(m_outputColorSpace)); if(m_renderingIntent != RENDERING_INTENT_AUTO) - m_hTrans = cmsCreateTransform(m_hInput, dwIn, m_hOutput, dwOut, m_renderingIntent - 2, cmsFLAGS_NOTPRECALC); + m_hTrans = cmsCreateTransform(m_hInput, dwIn, m_hOutput, dwOut, m_renderingIntent - 2, cmsFLAGS_NOOPTIMIZE); else - m_hTrans = cmsCreateTransform(m_hInput, dwIn, m_hOutput, dwOut, cmsTakeRenderingIntent(m_hInput), cmsFLAGS_NOTPRECALC); + m_hTrans = cmsCreateTransform(m_hInput, dwIn, m_hOutput, dwOut, cmsGetHeaderRenderingIntent(m_hInput), cmsFLAGS_NOOPTIMIZE); m_inputColorSpace = cmsGetColorSpace(m_hInput); m_outputColorSpace = cmsGetColorSpace(m_hOutput); @@ -237,7 +237,7 @@ QRgb SVGColorProfileElementImpl::correctPixel(float r, float g, float b) return qRgb(0, 0, 0); } - unsigned short input[MAXCHANNELS], output[MAXCHANNELS]; + unsigned short input[cmsMAXCHANNELS], output[cmsMAXCHANNELS]; input[0] = ((unsigned int) r) * 257; input[1] = ((unsigned int) g) * 257; @@ -245,7 +245,7 @@ QRgb SVGColorProfileElementImpl::correctPixel(float r, float g, float b) cmsDoTransform(m_hTrans, input, output, 1); - if(m_outputColorSpace == icSigRgbData) + if(m_outputColorSpace == cmsSigRgbData) return qRgb(output[0] / 257, output[1] / 257, output[2] / 257); return qRgb(0, 0, 0); diff --git a/ksvg/impl/SVGColorProfileElementImpl.h b/ksvg/impl/SVGColorProfileElementImpl.h index db4f322..7c4f884 100644 --- a/ksvg/impl/SVGColorProfileElementImpl.h +++ b/ksvg/impl/SVGColorProfileElementImpl.h @@ -28,6 +28,15 @@ #undef QT_VERSION // Needed for 1.08 *grml* #include LCMS_HEADER +#if LCMS_VERSION < 2000 +#define cmsColorSpaceSignature icColorSpaceSignature +#define cmsChannelsOf _cmsChannelsOf +#define cmsFLAGS_NOOPTIMIZE cmsFLAGS_NOTPRECALC +#define cmsGetHeaderRenderingIntent cmsTakeRenderingIntent +#define cmsMAXCHANNELS MAXCHANNELS +#define cmsSigRgbData icSigRgbData +#endif + #include "SVGElementImpl.h" #include "SVGURIReferenceImpl.h" @@ -74,7 +83,7 @@ private: cmsHTRANSFORM m_hTrans; int m_intent; - icColorSpaceSignature m_inputColorSpace, m_outputColorSpace; + cmsColorSpaceSignature m_inputColorSpace, m_outputColorSpace; public: KSVG_GET
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor