LPLUT LCMSEXPORT cmsAlloc3DGrid(LPLUT NewLUT, int clutPoints, int inputChan, int outputChan) { DWORD nTabSize; NewLUT -> wFlags |= LUT_HAS3DGRID; NewLUT -> cLutPoints = clutPoints; NewLUT -> InputChan = inputChan; NewLUT -> OutputChan = outputChan; nTabSize = (NewLUT -> OutputChan * UIpow(NewLUT->cLutPoints, NewLUT->InputChan) * sizeof(WORD)); NewLUT -> T = (LPWORD) malloc(nTabSize); ZeroMemory(NewLUT -> T, nTabSize); NewLUT ->Tsize = nTabSize; cmsCalcCLUT16Params(NewLUT -> cLutPoints, NewLUT -> InputChan, NewLUT -> OutputChan, &NewLUT -> CLut16params); return NewLUT; }
LPLUT LCMSEXPORT cmsAlloc3DGrid(LPLUT NewLUT, int clutPoints, int inputChan, int outputChan) { DWORD nTabSize; NewLUT -> wFlags |= LUT_HAS3DGRID; NewLUT -> cLutPoints = clutPoints; NewLUT -> InputChan = inputChan; NewLUT -> OutputChan = outputChan; if (!_cmsValidateLUT(NewLUT)) { return NULL; } nTabSize = NewLUT -> OutputChan * UIpow(NewLUT->cLutPoints, NewLUT->InputChan); NewLUT -> T = (LPWORD) _cmsCalloc(sizeof(WORD), nTabSize); nTabSize *= sizeof(WORD); if (NewLUT -> T == NULL) return NULL; ZeroMemory(NewLUT -> T, nTabSize); NewLUT ->Tsize = nTabSize; cmsCalcCLUT16Params(NewLUT -> cLutPoints, NewLUT -> InputChan, NewLUT -> OutputChan, &NewLUT -> CLut16params); return NewLUT; }