diff options
author | Marti Maria <info@littlecms.com> | 2012-07-02 17:58:16 +0200 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2012-07-02 17:58:16 +0200 |
commit | dfd9a95708640ad1033e2ae3422e8412728d8223 (patch) | |
tree | e781584b89db636af293991d4148296415da3141 /src/cmsxform.c | |
parent | 88af283a5fe8051c7a6ae5328a80b15cb78cda41 (diff) | |
download | lcms2-dfd9a95708640ad1033e2ae3422e8412728d8223.tar.gz |
Trimmed files
Diffstat (limited to 'src/cmsxform.c')
-rw-r--r-- | src/cmsxform.c | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/src/cmsxform.c b/src/cmsxform.c index e5a3c52..9f677ce 100644 --- a/src/cmsxform.c +++ b/src/cmsxform.c @@ -3,22 +3,22 @@ // Little Color Management System // Copyright (c) 1998-2011 Marti Maria Saguer // -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the Software +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the Software // is furnished to do so, subject to the following conditions: // -// The above copyright notice and this permission notice shall be included in +// The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO -// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //--------------------------------------------------------------------------------- @@ -39,10 +39,10 @@ cmsFloat64Number CMSEXPORT cmsSetAdaptationState(cmsFloat64Number d) { cmsFloat64Number OldVal = GlobalAdaptationState; - if (d >= 0) + if (d >= 0) GlobalAdaptationState = d; - return OldVal; + return OldVal; } // Alarm codes are always global @@ -52,7 +52,7 @@ void CMSEXPORT cmsSetAlarmCodes(cmsUInt16Number NewAlarm[cmsMAXCHANNELS]) _cmsAssert(NewAlarm != NULL); - for (i=0; i < cmsMAXCHANNELS; i++) + for (i=0; i < cmsMAXCHANNELS; i++) Alarm[i] = NewAlarm[i]; } @@ -63,7 +63,7 @@ void CMSEXPORT cmsGetAlarmCodes(cmsUInt16Number OldAlarm[cmsMAXCHANNELS]) _cmsAssert(OldAlarm != NULL); - for (i=0; i < cmsMAXCHANNELS; i++) + for (i=0; i < cmsMAXCHANNELS; i++) OldAlarm[i] = Alarm[i]; } @@ -95,28 +95,28 @@ void CMSEXPORT cmsDeleteTransform(cmsHTRANSFORM hTransform) _cmsFree(p ->ContextID, (void *) p); } -// Apply transform. +// Apply transform. void CMSEXPORT cmsDoTransform(cmsHTRANSFORM Transform, const void* InputBuffer, - void* OutputBuffer, + void* OutputBuffer, cmsUInt32Number Size) { _cmsTRANSFORM* p = (_cmsTRANSFORM*) Transform; - + p -> xform(p, InputBuffer, OutputBuffer, Size, Size); } -// Apply transform. +// Apply transform. void CMSEXPORT cmsDoTransformStride(cmsHTRANSFORM Transform, const void* InputBuffer, - void* OutputBuffer, + void* OutputBuffer, cmsUInt32Number Size, cmsUInt32Number Stride) { _cmsTRANSFORM* p = (_cmsTRANSFORM*) Transform; - + p -> xform(p, InputBuffer, OutputBuffer, Size, Stride); } @@ -126,7 +126,7 @@ void CMSEXPORT cmsDoTransformStride(cmsHTRANSFORM Transform, // Float xform converts floats. Since there are no performance issues, one routine does all job, including gamut check. // Note that because extended range, we can use a -1.0 value for out of gamut in this case. static -void FloatXFORM(_cmsTRANSFORM* p, +void FloatXFORM(_cmsTRANSFORM* p, const void* in, void* out, cmsUInt32Number Size, cmsUInt32Number Stride) { @@ -141,7 +141,7 @@ void FloatXFORM(_cmsTRANSFORM* p, for (i=0; i < Size; i++) { - accum = p -> FromInputFloat(p, fIn, accum, Stride); + accum = p -> FromInputFloat(p, fIn, accum, Stride); // Any gamut chack to do? if (p ->GamutCheck != NULL) { @@ -159,13 +159,13 @@ void FloatXFORM(_cmsTRANSFORM* p, } else { // No, proceed normally - cmsPipelineEvalFloat(fIn, fOut, p -> Lut); + cmsPipelineEvalFloat(fIn, fOut, p -> Lut); } } else { // No gamut check at all - cmsPipelineEvalFloat(fIn, fOut, p -> Lut); + cmsPipelineEvalFloat(fIn, fOut, p -> Lut); } // Back to asked representation @@ -179,7 +179,7 @@ void FloatXFORM(_cmsTRANSFORM* p, static void NullXFORM(_cmsTRANSFORM* p, const void* in, - void* out, cmsUInt32Number Size, + void* out, cmsUInt32Number Size, cmsUInt32Number Stride) { cmsUInt8Number* accum; @@ -212,12 +212,12 @@ void PrecalculatedXFORM(_cmsTRANSFORM* p, accum = (cmsUInt8Number*) in; output = (cmsUInt8Number*) out; - n = Size; + n = Size; for (i=0; i < n; i++) { - accum = p -> FromInput(p, wIn, accum, Stride); - p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); + accum = p -> FromInput(p, wIn, accum, Stride); + p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); output = p -> ToOutput(p, wOut, output, Stride); } } @@ -225,22 +225,22 @@ void PrecalculatedXFORM(_cmsTRANSFORM* p, // Auxiliar: Handle precalculated gamut check static -void TransformOnePixelWithGamutCheck(_cmsTRANSFORM* p, - const cmsUInt16Number wIn[], +void TransformOnePixelWithGamutCheck(_cmsTRANSFORM* p, + const cmsUInt16Number wIn[], cmsUInt16Number wOut[]) { cmsUInt16Number wOutOfGamut; - p ->GamutCheck ->Eval16Fn(wIn, &wOutOfGamut, p ->GamutCheck ->Data); + p ->GamutCheck ->Eval16Fn(wIn, &wOutOfGamut, p ->GamutCheck ->Data); if (wOutOfGamut >= 1) { cmsUInt16Number i; for (i=0; i < p ->Lut->OutputChannels; i++) - wOut[i] = Alarm[i]; + wOut[i] = Alarm[i]; } else - p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); + p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); } // Gamut check, No caché, 16 bits. @@ -267,7 +267,7 @@ void PrecalculatedXFORMGamutCheck(_cmsTRANSFORM* p, } -// No gamut check, Caché, 16 bits, +// No gamut check, Caché, 16 bits, static void CachedXFORM(_cmsTRANSFORM* p, const void* in, @@ -298,17 +298,17 @@ void CachedXFORM(_cmsTRANSFORM* p, memcpy(wOut, Cache.CacheOut, sizeof(Cache.CacheOut)); } - else { + else { - p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); + p ->Lut ->Eval16Fn(wIn, wOut, p -> Lut->Data); memcpy(Cache.CacheIn, wIn, sizeof(Cache.CacheIn)); memcpy(Cache.CacheOut, wOut, sizeof(Cache.CacheOut)); } - output = p -> ToOutput(p, wOut, output, Stride); + output = p -> ToOutput(p, wOut, output, Stride); } - + } @@ -338,11 +338,11 @@ void CachedXFORMGamutCheck(_cmsTRANSFORM* p, for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum, Stride); - + if (memcmp(wIn, Cache.CacheIn, sizeof(Cache.CacheIn)) == 0) { memcpy(wOut, Cache.CacheOut, sizeof(Cache.CacheOut)); } - else { + else { TransformOnePixelWithGamutCheck(p, wIn, wOut); memcpy(Cache.CacheIn, wIn, sizeof(Cache.CacheIn)); memcpy(Cache.CacheOut, wOut, sizeof(Cache.CacheOut)); @@ -350,15 +350,15 @@ void CachedXFORMGamutCheck(_cmsTRANSFORM* p, output = p -> ToOutput(p, wOut, output, Stride); } - + } // ------------------------------------------------------------------------------------------------------------- // List of used-defined transform factories typedef struct _cmsTransformCollection_st { - - _cmsTranformFactory Factory; + + _cmsTranformFactory Factory; struct _cmsTransformCollection_st *Next; } _cmsTransformCollection; @@ -375,10 +375,10 @@ cmsBool _cmsRegisterTransformPlugin(cmsPluginBase* Data) if (Data == NULL) { // Free the chain. Memory is safely freed at exit - TransformCollection = NULL; + TransformCollection = NULL; return TRUE; } - + // Factory callback is required if (Plugin ->Factory == NULL) return FALSE; @@ -388,7 +388,7 @@ cmsBool _cmsRegisterTransformPlugin(cmsPluginBase* Data) // Copy the parameters fl ->Factory = Plugin ->Factory; - + // Keep linked list fl ->Next = TransformCollection; TransformCollection = fl; @@ -406,9 +406,9 @@ void * CMSEXPORT _cmsGetTransformUserData(struct _cmstransform_struct *CMMcargo) } // Allocate transform struct and set it to defaults. Ask the optimization plug-in about if those formats are proper -// for separated transforms. If this is the case, +// for separated transforms. If this is the case, static -_cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, +_cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, cmsUInt32Number Intent, cmsUInt32Number* InputFormat, cmsUInt32Number* OutputFormat, cmsUInt32Number* dwFlags) { _cmsTransformCollection* Plugin; @@ -427,11 +427,11 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, if (Plugin ->Factory(&p->xform, &p->UserData, &p ->FreeUserData, &p ->Lut, InputFormat, OutputFormat, dwFlags)) { - // Last plugin in the declaration order takes control. We just keep + // Last plugin in the declaration order takes control. We just keep // the original parameters as a logging p ->InputFormat = *InputFormat; p ->OutputFormat = *OutputFormat; - p ->dwOriginalFlags = *dwFlags; + p ->dwOriginalFlags = *dwFlags; p ->ContextID = ContextID; return p; } @@ -439,7 +439,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, // Not suitable for the transform plug-in, let's check the pipeline plug-in if (p ->Lut != NULL) - _cmsOptimizePipeline(&p->Lut, Intent, InputFormat, OutputFormat, dwFlags); + _cmsOptimizePipeline(&p->Lut, Intent, InputFormat, OutputFormat, dwFlags); // Check whatever this is a true floating point transform if (_cmsFormatterIsFloat(*InputFormat) && _cmsFormatterIsFloat(*OutputFormat)) { @@ -450,7 +450,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, *dwFlags |= cmsFLAGS_CAN_CHANGE_FORMATTER; if (p ->FromInputFloat == NULL || p ->ToOutputFloat == NULL) { - + cmsSignalError(ContextID, cmsERROR_UNKNOWN_EXTENSION, "Unsupported raster format"); _cmsFree(ContextID, p); return NULL; @@ -480,7 +480,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, } BytesPerPixelInput = T_BYTES(p ->InputFormat); - if (BytesPerPixelInput == 0 || BytesPerPixelInput >= 2) + if (BytesPerPixelInput == 0 || BytesPerPixelInput >= 2) *dwFlags |= cmsFLAGS_CAN_CHANGE_FORMATTER; } @@ -492,14 +492,14 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, else { if (*dwFlags & cmsFLAGS_NOCACHE) { - if (*dwFlags & cmsFLAGS_GAMUTCHECK) + if (*dwFlags & cmsFLAGS_GAMUTCHECK) p ->xform = PrecalculatedXFORMGamutCheck; // Gamut check, no caché else p ->xform = PrecalculatedXFORM; // No caché, no gamut check } else { - if (*dwFlags & cmsFLAGS_GAMUTCHECK) + if (*dwFlags & cmsFLAGS_GAMUTCHECK) p ->xform = CachedXFORMGamutCheck; // Gamut check, caché else p ->xform = CachedXFORM; // No gamut check, caché @@ -507,7 +507,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, } } } - + p ->InputFormat = *InputFormat; p ->OutputFormat = *OutputFormat; p ->dwOriginalFlags = *dwFlags; @@ -517,10 +517,10 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, } static -cmsBool GetXFormColorSpaces(int nProfiles, cmsHPROFILE hProfiles[], cmsColorSpaceSignature* Input, cmsColorSpaceSignature* Output) -{ - cmsColorSpaceSignature ColorSpaceIn, ColorSpaceOut; - cmsColorSpaceSignature PostColorSpace; +cmsBool GetXFormColorSpaces(int nProfiles, cmsHPROFILE hProfiles[], cmsColorSpaceSignature* Input, cmsColorSpaceSignature* Output) +{ + cmsColorSpaceSignature ColorSpaceIn, ColorSpaceOut; + cmsColorSpaceSignature PostColorSpace; int i; if (nProfiles <= 0) return FALSE; @@ -535,14 +535,14 @@ cmsBool GetXFormColorSpaces(int nProfiles, cmsHPROFILE hProfiles[], cmsColorSpac int lIsInput = (PostColorSpace != cmsSigXYZData) && (PostColorSpace != cmsSigLabData); - + if (hProfile == NULL) return FALSE; - cls = cmsGetDeviceClass(hProfile); - + cls = cmsGetDeviceClass(hProfile); + if (cls == cmsSigNamedColorClass) { - ColorSpaceIn = cmsSig1colorData; + ColorSpaceIn = cmsSig1colorData; ColorSpaceOut = (nProfiles > 1) ? cmsGetPCS(hProfile) : cmsGetColorSpace(hProfile); } else @@ -550,18 +550,18 @@ cmsBool GetXFormColorSpaces(int nProfiles, cmsHPROFILE hProfiles[], cmsColorSpac ColorSpaceIn = cmsGetColorSpace(hProfile); ColorSpaceOut = cmsGetPCS(hProfile); - } + } else { ColorSpaceIn = cmsGetPCS(hProfile); ColorSpaceOut = cmsGetColorSpace(hProfile); } - if (i==0) + if (i==0) *Input = ColorSpaceIn; - PostColorSpace = ColorSpaceOut; - } + PostColorSpace = ColorSpaceOut; + } *Output = PostColorSpace; @@ -588,12 +588,12 @@ cmsBool IsProperColorSpace(cmsColorSpaceSignature Check, cmsUInt32Number dwForm // New to lcms 2.0 -- have all parameters available. cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, - cmsUInt32Number nProfiles, cmsHPROFILE hProfiles[], - cmsBool BPC[], - cmsUInt32Number Intents[], + cmsUInt32Number nProfiles, cmsHPROFILE hProfiles[], + cmsBool BPC[], + cmsUInt32Number Intents[], cmsFloat64Number AdaptationStates[], cmsHPROFILE hGamutProfile, - cmsUInt32Number nGamutPCSposition, + cmsUInt32Number nGamutPCSposition, cmsUInt32Number InputFormat, cmsUInt32Number OutputFormat, cmsUInt32Number dwFlags) @@ -616,7 +616,7 @@ cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, if (hGamutProfile == NULL) dwFlags &= ~cmsFLAGS_GAMUTCHECK; } - // On floating point transforms, inhibit optimizations + // On floating point transforms, inhibit optimizations FloatTransform = (_cmsFormatterIsFloat(InputFormat) && _cmsFormatterIsFloat(OutputFormat)); if (_cmsFormatterIsFloat(InputFormat) || _cmsFormatterIsFloat(OutputFormat)) @@ -624,36 +624,36 @@ cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, // Mark entry/exit spaces if (!GetXFormColorSpaces(nProfiles, hProfiles, &EntryColorSpace, &ExitColorSpace)) { - cmsSignalError(ContextID, cmsERROR_NULL, "NULL input profiles on transform"); + cmsSignalError(ContextID, cmsERROR_NULL, "NULL input profiles on transform"); return NULL; } // Check if proper colorspaces - if (!IsProperColorSpace(EntryColorSpace, InputFormat)) { - cmsSignalError(ContextID, cmsERROR_COLORSPACE_CHECK, "Wrong input color space on transform"); + if (!IsProperColorSpace(EntryColorSpace, InputFormat)) { + cmsSignalError(ContextID, cmsERROR_COLORSPACE_CHECK, "Wrong input color space on transform"); return NULL; } if (!IsProperColorSpace(ExitColorSpace, OutputFormat)) { - cmsSignalError(ContextID, cmsERROR_COLORSPACE_CHECK, "Wrong output color space on transform"); + cmsSignalError(ContextID, cmsERROR_COLORSPACE_CHECK, "Wrong output color space on transform"); return NULL; } // Create a pipeline with all transformations Lut = _cmsLinkProfiles(ContextID, nProfiles, Intents, hProfiles, BPC, AdaptationStates, dwFlags); if (Lut == NULL) { - cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Couldn't link the profiles"); + cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Couldn't link the profiles"); return NULL; } // Check channel count if ((cmsChannelsOf(EntryColorSpace) != cmsPipelineInputChannels(Lut)) || (cmsChannelsOf(ExitColorSpace) != cmsPipelineOutputChannels(Lut))) { - cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Channel count doesn't match. Profile is corrupted"); - return NULL; + cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Channel count doesn't match. Profile is corrupted"); + return NULL; } - + // All seems ok xform = AllocEmptyTransform(ContextID, Lut, LastIntent, &InputFormat, &OutputFormat, &dwFlags); if (xform == NULL) { @@ -664,28 +664,28 @@ cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, xform ->EntryColorSpace = EntryColorSpace; xform ->ExitColorSpace = ExitColorSpace; xform ->RenderingIntent = Intents[nProfiles-1]; - - + + // Create a gamut check LUT if requested - if (hGamutProfile != NULL && (dwFlags & cmsFLAGS_GAMUTCHECK)) - xform ->GamutCheck = _cmsCreateGamutCheckPipeline(ContextID, hProfiles, - BPC, Intents, - AdaptationStates, - nGamutPCSposition, + if (hGamutProfile != NULL && (dwFlags & cmsFLAGS_GAMUTCHECK)) + xform ->GamutCheck = _cmsCreateGamutCheckPipeline(ContextID, hProfiles, + BPC, Intents, + AdaptationStates, + nGamutPCSposition, hGamutProfile); // Try to read input and output colorant table if (cmsIsTag(hProfiles[0], cmsSigColorantTableTag)) { - // Input table can only come in this way. + // Input table can only come in this way. xform ->InputColorant = cmsDupNamedColorList((cmsNAMEDCOLORLIST*) cmsReadTag(hProfiles[0], cmsSigColorantTableTag)); } - // Output is a little bit more complex. + // Output is a little bit more complex. if (cmsGetDeviceClass(hProfiles[nProfiles-1]) == cmsSigLinkClass) { - // This tag may exist only on devicelink profiles. + // This tag may exist only on devicelink profiles. if (cmsIsTag(hProfiles[nProfiles-1], cmsSigColorantTableOutTag)) { // It may be NULL if error @@ -697,14 +697,14 @@ cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, if (cmsIsTag(hProfiles[nProfiles-1], cmsSigColorantTableTag)) { xform -> OutputColorant = cmsDupNamedColorList((cmsNAMEDCOLORLIST*) cmsReadTag(hProfiles[nProfiles-1], cmsSigColorantTableTag)); - } + } } // Store the sequence of profiles if (dwFlags & cmsFLAGS_KEEP_SEQUENCE) { xform ->Sequence = _cmsCompileProfileSequence(ContextID, nProfiles, hProfiles); } - else + else xform ->Sequence = NULL; // If this is a cached transform, init first value, which is zero (16 bits only) @@ -717,12 +717,12 @@ cmsHTRANSFORM CMSEXPORT cmsCreateExtendedTransform(cmsContext ContextID, } else { - xform ->Lut ->Eval16Fn(xform ->Cache.CacheIn, xform->Cache.CacheOut, xform -> Lut->Data); + xform ->Lut ->Eval16Fn(xform ->Cache.CacheIn, xform->Cache.CacheOut, xform -> Lut->Data); } } - return (cmsHTRANSFORM) xform; + return (cmsHTRANSFORM) xform; } // Multiprofile transforms: Gamut check is not available here, as it is unclear from which profile the gamut comes. @@ -788,7 +788,7 @@ cmsHTRANSFORM CMSEXPORT cmsCreateTransformTHR(cmsContext ContextID, { cmsHPROFILE hArray[2]; - + hArray[0] = Input; hArray[1] = Output; @@ -815,7 +815,7 @@ cmsHTRANSFORM CMSEXPORT cmsCreateProofingTransformTHR(cmsContext ContextID, cmsUInt32Number nIntent, cmsUInt32Number ProofingIntent, cmsUInt32Number dwFlags) -{ +{ cmsHPROFILE hArray[4]; cmsUInt32Number Intents[4]; cmsBool BPC[4]; @@ -826,13 +826,13 @@ cmsHTRANSFORM CMSEXPORT cmsCreateProofingTransformTHR(cmsContext ContextID, hArray[0] = InputProfile; hArray[1] = ProofingProfile; hArray[2] = ProofingProfile; hArray[3] = OutputProfile; Intents[0] = nIntent; Intents[1] = nIntent; Intents[2] = INTENT_RELATIVE_COLORIMETRIC; Intents[3] = ProofingIntent; BPC[0] = DoBPC; BPC[1] = DoBPC; BPC[2] = 0; BPC[3] = 0; - + Adaptation[0] = Adaptation[1] = Adaptation[2] = Adaptation[3] = GlobalAdaptationState; - if (!(dwFlags & (cmsFLAGS_SOFTPROOFING|cmsFLAGS_GAMUTCHECK))) + if (!(dwFlags & (cmsFLAGS_SOFTPROOFING|cmsFLAGS_GAMUTCHECK))) return cmsCreateTransformTHR(ContextID, InputProfile, InputFormat, OutputProfile, OutputFormat, nIntent, dwFlags); - - return cmsCreateExtendedTransform(ContextID, 4, hArray, BPC, Intents, Adaptation, + + return cmsCreateExtendedTransform(ContextID, 4, hArray, BPC, Intents, Adaptation, ProofingProfile, 1, InputFormat, OutputFormat, dwFlags); } @@ -847,7 +847,7 @@ cmsHTRANSFORM CMSEXPORT cmsCreateProofingTransform(cmsHPROFILE InputProfile, cmsUInt32Number ProofingIntent, cmsUInt32Number dwFlags) { - return cmsCreateProofingTransformTHR(cmsGetProfileContextID(InputProfile), + return cmsCreateProofingTransformTHR(cmsGetProfileContextID(InputProfile), InputProfile, InputFormat, OutputProfile, @@ -886,16 +886,16 @@ cmsUInt32Number CMSEXPORT cmsGetTransformOutputFormat(cmsHTRANSFORM hTransform) } // For backwards compatibility -cmsBool CMSEXPORT cmsChangeBuffersFormat(cmsHTRANSFORM hTransform, - cmsUInt32Number InputFormat, +cmsBool CMSEXPORT cmsChangeBuffersFormat(cmsHTRANSFORM hTransform, + cmsUInt32Number InputFormat, cmsUInt32Number OutputFormat) { _cmsTRANSFORM* xform = (_cmsTRANSFORM*) hTransform; cmsFormatter16 FromInput, ToOutput; - - // We only can afford to change formatters if previous transform is at least 16 bits + + // We only can afford to change formatters if previous transform is at least 16 bits if (!(xform ->dwOriginalFlags & cmsFLAGS_CAN_CHANGE_FORMATTER)) { cmsSignalError(xform ->ContextID, cmsERROR_NOT_SUITABLE, "cmsChangeBuffersFormat works only on transforms created originally with at least 16 bits of precision"); |