On Thursday 05 August 2010 03:29:28 am Richard Hughes wrote: > On 2 August 2010 18:53, Hal V. Engel <hven...@gmail.com> wrote: > > In fact I would like to migrate LProf to lcms2 for a number of reasons. > > Currently LProf has an embedded modified version of lcms 1.17. This was > > needed to extend lcms to support the creation of VCGT tags since there > > was no way to do this short of modifying the lcms code (lcms1 did not > > have plugins). With lcms2 the is no need for a customized version as at > > most it will only need a plugin to handle this functionality (I have not > > looked - does lcms2 have VCGT support?). > > Yes, we're using it already in GCM. :-) > > > By migrating to lcms2 (and creating a VCGT plugin if needed) it > > would be possible to remove the embedded version of lcms and this would > > make things easier to maintain. > > Great. > > > The calls to lcms in LProf are fairly isolated in specific parts of the > > code (most - 98% - are in liblprof) and this should make migrating to > > lcms2 fairly straight forward. But LProf does use some lcms calls that > > are not part of the public interface of lcms (IE. internal calls) and > > this might cause some issues for the migration. Patches are welcome. > > Also what part of liblprof are you using (or planning to use)? > > I'm planning to convert an it8 file to an icc file for trivial on the > fly calibration, so really quite a lot of liblprof... > > > Also currently liblprof is statically linked in the current LProf builds. > > Should this be changed so that it is a shared library (easy to do)? I > > know that the digikam project also uses some code from an earlier version > > of liblprof and perhaps having this as a shared library would make things > > easier for everyone. But at least some of the functionality that digikam > > is using is now embedded in a Qt4 designer plugin that is no longer part > > of liblprof so making liblprof shared may not help them. > > I think the best idea would be: > > 1. either merge lcmsprf back into lcms2 > 2. have lcmsprf as a seporate add-on library that compliments lcms2 > > Then it would be trivial to use lcmsprof as a shared library in lprof. > > Point 1 would require Marti to accept a huge patch to lcms2 (which he > might not be able/want to do) and point 2 would require splitting out > the library to somewhere like github where we can all contribute to a > shared version. If we did option 1 or 2, I would very much like to > help converting it to use lcms2. > > Comments welcome, > > Richard. >
I don't think #1 is very practical or very likely for that matter. In addition I believe that Marti has an agreement with his employer that he will not work on LProf so this is another reason that it is unlikely that this will end up being part of lcms2. In addition this library is specifically there to support LProf and the project needs to maintain some degree of control over it. #2 might be workable but I think that a better solution would be manage the library as part of LProf but in it's own source tree (with it's own build and so on) as a separate shared library sub-project. There are other parts of LProf that perhaps should be placed in separate libraries as well since this may be useful to other projects. LProf now has a nice Qt4 designer plug-in for the CIE diagram that might be useful to other Qt/KDE based apps like digikam or krita that could be perhaps placed in a separate library. Right now digikam is using an older forked version of the CIE diagram which used to be part of liblprof but this is now part of libqtlcmswidgets. There are a number of Qt designer widget plug-ins in this library that might be useful to other projects that do color related stuff such as a profile selector, a reference file selector and the CIE diagram although the reference file selector and the lprofgauge plug-in are likely LProf centric and not too useful for other projects. Some of these could use updating. For example I would like to replace the 2D CIE diagram with the 3D gamut view that is part of iccexamin when that is generalized to make is usable by other projects (that is create a Qt designer plug-in that uses the iccexamin gamut view functionality and use this to replace the CIE diagram). And the last possible library that could be separated out is the videoLUTutils library. This is a C++ cross platform library for getting and setting the video card gamma tables. The X11 code probably needs some updates for XRandR since I don't have access to a machine that supports XRandR. But it does have working code for non-XRandR X11, Windows and OS/X and adding XRandR support should not be too difficult. As a side note. LProf has it's own IT8 library that is located in liblprof. Marti added full IT8 support to LCMS later on so this code is now redundant. A while back I migrated some parts of the LProf code to use the lcms IT8 calls but it is only partly done. At some point I would like to migrate over to the lcms IT8 calls and remove the IT8 code from liblprof and I think this should be done as part of the lcms2 migration. Hal ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user