2362N/A * or visit www.oracle.com if you need additional information or have any
0N/A#include "lcms2_internal.h"
0N/A return (cmsUInt16Number) a;
0N/A// Unpacking routines (16 bits) ----------------------------------------------------------------------------------------
0N/A if (ExtraFirst) {
0N/A if (!ExtraFirst) {
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
if (ExtraFirst) {
for (i=0; i < nChan; i++) {
if (SwapEndian)
v = CHANGE_ENDIAN(v);
if (!ExtraFirst) {
return accum;
if (DoSwap) {
for (i=0; i < nChan; i++) {
if (SwapEndian)
v = CHANGE_ENDIAN(v);
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
return accum;
case PT_CMY:
case PT_CMYK:
case PT_MCH5:
case PT_MCH6:
case PT_MCH7:
case PT_MCH8:
case PT_MCH9:
case PT_MCH10:
case PT_MCH11:
case PT_MCH12:
case PT_MCH13:
case PT_MCH14:
default: return FALSE;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
if (Reverse)
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
if (Reverse)
//-------------------------------------------------------------------------------------------------------------------
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
v /= maximum;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
v /= maximum;
return accum;
return accum;
return accum;
return accum;
// Packing routines -----------------------------------------------------------------------------------------------------------
cmsUInt8Number v = 0;
if (ExtraFirst) {
for (i=0; i < nChan; i++) {
if (Reverse)
v = REVERSE_FLAVOR_8(v);
*output++ = v;
if (!ExtraFirst) {
*swap1 = v;
return output;
cmsUInt16Number v = 0;
if (ExtraFirst) {
for (i=0; i < nChan; i++) {
if (SwapEndian)
v = CHANGE_ENDIAN(v);
if (Reverse)
v = REVERSE_FLAVOR_16(v);
if (!ExtraFirst) {
*swap1 = v;
return output;
for (i=0; i < nChan; i++) {
if (DoSwap) {
for (i=0; i < nChan; i++) {
if (SwapEndian)
v = CHANGE_ENDIAN(v);
if (Reverse)
v = REVERSE_FLAVOR_16(v);
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
output++;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
output++;
return output;
return output;
return output;
return output;
return output;
return output;
return output;
output++;
return output;
output++;
return output;
return output;
return output;
return output;
return output;
return output;
cmsFloat64Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
*swap1 = v;
cmsFloat64Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
// --------------------------------------------------------------------------------------------------------
cmsFloat64Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
cmsFloat64Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
*swap1 = v;
return output + (sizeof(cmsFloat32Number)*3 + T_EXTRA(Info ->OutputFormat) * sizeof(cmsFloat32Number));
return output + (sizeof(cmsFloat64Number)*3 + T_EXTRA(Info ->OutputFormat) * sizeof(cmsFloat64Number));
return output + (sizeof(cmsFloat32Number)*3 + T_EXTRA(Info ->OutputFormat) * sizeof(cmsFloat32Number));
return output + (sizeof(cmsFloat64Number)*3 + T_EXTRA(Info ->OutputFormat) * sizeof(cmsFloat64Number));
// ----------------------------------------------------------------------------------------------------------------
#ifndef CMS_NO_HALF_SUPPORT
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Planar)
v /= maximum;
cmsFloat32Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
cmsFloat32Number v = 0;
if (ExtraFirst)
for (i=0; i < nChan; i++) {
if (Reverse)
v = maximum - v;
if (Planar)
if (!ExtraFirst) {
// ----------------------------------------------------------------------------------------------------------------
#ifndef CMS_NO_HALF_SUPPORT
{ BYTES_SH(2)|PLANAR_SH(1), ANYFLAVOR|ANYSWAP|ANYENDIAN|ANYEXTRA|ANYCHANNELS|ANYSPACE, UnrollPlanarWords},
{ BYTES_SH(2), ANYFLAVOR|ANYSWAPFIRST|ANYSWAP|ANYENDIAN|ANYEXTRA|ANYCHANNELS|ANYSPACE, UnrollAnyWords},
#ifndef CMS_NO_HALF_SUPPORT
switch (dwFlags) {
case CMS_PACK_FLAGS_16BITS: {
return fr;
case CMS_PACK_FLAGS_FLOAT: {
return fr;
return fr;
#ifndef CMS_NO_HALF_SUPPORT
{ BYTES_SH(1)|PLANAR_SH(1), ANYFLAVOR|ANYSWAPFIRST|ANYSWAP|ANYEXTRA|ANYCHANNELS|ANYSPACE, PackPlanarBytes},
{ BYTES_SH(2)|PLANAR_SH(1), ANYFLAVOR|ANYENDIAN|ANYSWAP|ANYEXTRA|ANYCHANNELS|ANYSPACE, PackPlanarWords},
{ BYTES_SH(2), ANYFLAVOR|ANYSWAPFIRST|ANYSWAP|ANYENDIAN|ANYEXTRA|ANYCHANNELS|ANYSPACE, PackAnyWords}
// ---------------------------- --------------------------------------------------- ----------------------------
#ifndef CMS_NO_HALF_SUPPORT
switch (dwFlags)
case CMS_PACK_FLAGS_16BITS: {
return fr;
case CMS_PACK_FLAGS_FLOAT: {
return fr;
return fr;
return TRUE;
return TRUE;
cmsUInt32Number CMSEXPORT cmsFormatterForColorspaceOfProfile(cmsHPROFILE hProfile, cmsUInt32Number nBytes, cmsBool lIsFloat)
return FLOAT_SH(Float) | COLORSPACE_SH(ColorSpaceBits) | BYTES_SH(nBytes) | CHANNELS_SH(nOutputChans);
cmsUInt32Number CMSEXPORT cmsFormatterForPCSOfProfile(cmsHPROFILE hProfile, cmsUInt32Number nBytes, cmsBool lIsFloat)
return FLOAT_SH(Float) | COLORSPACE_SH(ColorSpaceBits) | BYTES_SH(nBytes) | CHANNELS_SH(nOutputChans);