1716 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			1716 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			C
		
	
	
	
/*****************************************************************************/
 | 
						|
// Copyright 2006-2007 Adobe Systems Incorporated
 | 
						|
// All Rights Reserved.
 | 
						|
//
 | 
						|
// NOTICE:  Adobe permits you to use, modify, and distribute this file in
 | 
						|
// accordance with the terms of the Adobe license agreement accompanying it.
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_bottlenecks.h#1 $ */ 
 | 
						|
/* $DateTime: 2012/05/30 13:28:51 $ */
 | 
						|
/* $Change: 832332 $ */
 | 
						|
/* $Author: tknoll $ */
 | 
						|
 | 
						|
/** \file
 | 
						|
 * Indirection mechanism for performance-critical routines that might be replaced
 | 
						|
 * with hand-optimized or hardware-specific implementations.
 | 
						|
 */
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
#ifndef __dng_bottlenecks__
 | 
						|
#define __dng_bottlenecks__
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
#include "dng_classes.h"
 | 
						|
#include "dng_types.h"
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (ZeroBytesProc)
 | 
						|
			 (void *dPtr,
 | 
						|
			  uint32 count);
 | 
						|
 | 
						|
typedef void (CopyBytesProc)
 | 
						|
			 (const void *sPtr,
 | 
						|
			  void *dPtr,
 | 
						|
			  uint32 count);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (SwapBytes16Proc)
 | 
						|
			 (uint16 *dPtr,
 | 
						|
			  uint32 count);
 | 
						|
 | 
						|
typedef void (SwapBytes32Proc)
 | 
						|
			 (uint32 *dPtr,
 | 
						|
			  uint32 count);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (SetArea8Proc)
 | 
						|
			 (uint8 *dPtr,
 | 
						|
			  uint8 value,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep);
 | 
						|
 | 
						|
typedef void (SetArea16Proc)
 | 
						|
			 (uint16 *dPtr,
 | 
						|
			  uint16 value,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep);
 | 
						|
 | 
						|
typedef void (SetArea32Proc)
 | 
						|
			 (uint32 *dPtr,
 | 
						|
			  uint32 value,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (CopyArea8Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  uint8 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea32Proc)
 | 
						|
			 (const uint32 *sPtr,
 | 
						|
			  uint32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea8_16Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea8_S16Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  int16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea8_32Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  uint32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea16_S16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  int16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea16_32Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef void (CopyArea8_R32Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (CopyArea16_R32Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (CopyAreaS16_R32Proc)
 | 
						|
			 (const int16 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (CopyAreaR32_8Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  uint8 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (CopyAreaR32_16Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (CopyAreaR32_S16Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  int16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (RepeatArea8Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  uint8 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep,
 | 
						|
			  uint32 repeatV,
 | 
						|
			  uint32 repeatH,
 | 
						|
			  uint32 phaseV,
 | 
						|
			  uint32 phaseH);
 | 
						|
 | 
						|
typedef void (RepeatArea16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep,
 | 
						|
			  uint32 repeatV,
 | 
						|
			  uint32 repeatH,
 | 
						|
			  uint32 phaseV,
 | 
						|
			  uint32 phaseH);
 | 
						|
 | 
						|
typedef void (RepeatArea32Proc)
 | 
						|
			 (const uint32 *sPtr,
 | 
						|
			  uint32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep,
 | 
						|
			  uint32 repeatV,
 | 
						|
			  uint32 repeatH,
 | 
						|
			  uint32 phaseV,
 | 
						|
			  uint32 phaseH);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (ShiftRight16Proc)
 | 
						|
			 (uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int32 colStep,
 | 
						|
			  int32 planeStep,
 | 
						|
			  uint32 shift);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (BilinearRow16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 patPhase,
 | 
						|
			  uint32 patCount,
 | 
						|
			  const uint32 * kernCounts,
 | 
						|
			  const int32  * const * kernOffsets,
 | 
						|
			  const uint16 * const * kernWeights,
 | 
						|
			  uint32 sShift);
 | 
						|
 | 
						|
typedef void (BilinearRow32Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 patPhase,
 | 
						|
			  uint32 patCount,
 | 
						|
			  const uint32 * kernCounts,
 | 
						|
			  const int32  * const * kernOffsets,
 | 
						|
			  const real32 * const * kernWeights,
 | 
						|
			  uint32 sShift);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (BaselineABCtoRGBProc)
 | 
						|
			 (const real32 *sPtrA,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  const real32 *sPtrC,
 | 
						|
			  real32 *dPtrR,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  real32 *dPtrB,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_vector &cameraWhite,
 | 
						|
			  const dng_matrix &cameraToRGB);
 | 
						|
 | 
						|
typedef void (BaselineABCDtoRGBProc)
 | 
						|
			 (const real32 *sPtrA,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  const real32 *sPtrC,
 | 
						|
			  const real32 *sPtrD,
 | 
						|
			  real32 *dPtrR,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  real32 *dPtrB,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_vector &cameraWhite,
 | 
						|
			  const dng_matrix &cameraToRGB);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (BaselineHueSatMapProc)
 | 
						|
			 (const real32 *sPtrR,
 | 
						|
			  const real32 *sPtrG,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  real32 *dPtrR,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  real32 *dPtrB,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_hue_sat_map &lut,
 | 
						|
			  const dng_1d_table *encodeTable,
 | 
						|
			  const dng_1d_table *decodeTable);
 | 
						|
			 
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (BaselineGrayToRGBProc)
 | 
						|
			 (const real32 *sPtrR,
 | 
						|
			  const real32 *sPtrG,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_matrix &matrix);
 | 
						|
 | 
						|
typedef void (BaselineRGBtoRGBProc)
 | 
						|
			 (const real32 *sPtrR,
 | 
						|
			  const real32 *sPtrG,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  real32 *dPtrR,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  real32 *dPtrB,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_matrix &matrix);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (Baseline1DTableProc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_1d_table &table);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (BaselineRGBToneProc)
 | 
						|
			 (const real32 *sPtrR,
 | 
						|
			  const real32 *sPtrG,
 | 
						|
			  const real32 *sPtrB,
 | 
						|
			  real32 *dPtrR,
 | 
						|
			  real32 *dPtrG,
 | 
						|
			  real32 *dPtrB,
 | 
						|
			  uint32 count,
 | 
						|
			  const dng_1d_table &table);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (ResampleDown16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 sCount,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  const int16 *wPtr,
 | 
						|
			  uint32 wCount,
 | 
						|
			  uint32 pixelRange);
 | 
						|
 | 
						|
typedef void (ResampleDown32Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 sCount,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  const real32 *wPtr,
 | 
						|
			  uint32 wCount);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (ResampleAcross16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  uint16 *dPtr,
 | 
						|
			  uint32 dCount,
 | 
						|
			  const int32 *coord,
 | 
						|
			  const int16 *wPtr,
 | 
						|
			  uint32 wCount,
 | 
						|
			  uint32 wStep,
 | 
						|
			  uint32 pixelRange);
 | 
						|
						
 | 
						|
typedef void (ResampleAcross32Proc)
 | 
						|
			 (const real32 *sPtr,
 | 
						|
			  real32 *dPtr,
 | 
						|
			  uint32 dCount,
 | 
						|
			  const int32 *coord,
 | 
						|
			  const real32 *wPtr,
 | 
						|
			  uint32 wCount,
 | 
						|
			  uint32 wStep);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef bool (EqualBytesProc)
 | 
						|
			 (const void *sPtr,
 | 
						|
			  const void *dPtr,
 | 
						|
			  uint32 count);
 | 
						|
 | 
						|
typedef bool (EqualArea8Proc)
 | 
						|
			 (const uint8 *sPtr,
 | 
						|
			  const uint8 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef bool (EqualArea16Proc)
 | 
						|
			 (const uint16 *sPtr,
 | 
						|
			  const uint16 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
typedef bool (EqualArea32Proc)
 | 
						|
			 (const uint32 *sPtr,
 | 
						|
			  const uint32 *dPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sColStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 dRowStep,
 | 
						|
			  int32 dColStep,
 | 
						|
			  int32 dPlaneStep);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (VignetteMask16Proc)
 | 
						|
			 (uint16 *mPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  int32 rowStep,
 | 
						|
			  int64 offsetH,
 | 
						|
			  int64 offsetV,
 | 
						|
			  int64 stepH,
 | 
						|
			  int64 stepV,
 | 
						|
			  uint32 tBits,
 | 
						|
			  const uint16 *table);
 | 
						|
 | 
						|
typedef void (Vignette16Proc)
 | 
						|
			 (int16 *sPtr,
 | 
						|
			  const uint16 *mPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 mRowStep,
 | 
						|
			  uint32 mBits);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (Vignette32Proc)
 | 
						|
			 (real32 *sPtr,
 | 
						|
			  const uint16 *mPtr,
 | 
						|
			  uint32 rows,
 | 
						|
			  uint32 cols,
 | 
						|
			  uint32 planes,
 | 
						|
			  int32 sRowStep,
 | 
						|
			  int32 sPlaneStep,
 | 
						|
			  int32 mRowStep,
 | 
						|
			  uint32 mBits);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
typedef void (MapArea16Proc)
 | 
						|
			 (uint16 *dPtr,
 | 
						|
			  uint32 count0,
 | 
						|
			  uint32 count1,
 | 
						|
			  uint32 count2,
 | 
						|
			  int32 step0,
 | 
						|
			  int32 step1,
 | 
						|
			  int32 step2,
 | 
						|
			  const uint16 *map);
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
struct dng_suite	
 | 
						|
	{
 | 
						|
	ZeroBytesProc			*ZeroBytes;
 | 
						|
	CopyBytesProc			*CopyBytes;
 | 
						|
	SwapBytes16Proc			*SwapBytes16;
 | 
						|
	SwapBytes32Proc			*SwapBytes32;
 | 
						|
	SetArea8Proc			*SetArea8;
 | 
						|
	SetArea16Proc			*SetArea16;
 | 
						|
	SetArea32Proc			*SetArea32;
 | 
						|
	CopyArea8Proc			*CopyArea8;
 | 
						|
	CopyArea16Proc			*CopyArea16;
 | 
						|
	CopyArea32Proc			*CopyArea32;
 | 
						|
	CopyArea8_16Proc		*CopyArea8_16;
 | 
						|
	CopyArea8_S16Proc		*CopyArea8_S16;
 | 
						|
	CopyArea8_32Proc		*CopyArea8_32;
 | 
						|
	CopyArea16_S16Proc		*CopyArea16_S16;
 | 
						|
	CopyArea16_32Proc		*CopyArea16_32;
 | 
						|
	CopyArea8_R32Proc		*CopyArea8_R32;
 | 
						|
	CopyArea16_R32Proc		*CopyArea16_R32;
 | 
						|
	CopyAreaS16_R32Proc		*CopyAreaS16_R32;
 | 
						|
	CopyAreaR32_8Proc		*CopyAreaR32_8;		
 | 
						|
	CopyAreaR32_16Proc		*CopyAreaR32_16;
 | 
						|
	CopyAreaR32_S16Proc		*CopyAreaR32_S16;
 | 
						|
	RepeatArea8Proc			*RepeatArea8;
 | 
						|
	RepeatArea16Proc		*RepeatArea16;
 | 
						|
	RepeatArea32Proc		*RepeatArea32;
 | 
						|
	ShiftRight16Proc		*ShiftRight16;
 | 
						|
	BilinearRow16Proc		*BilinearRow16;
 | 
						|
	BilinearRow32Proc		*BilinearRow32;
 | 
						|
	BaselineABCtoRGBProc	*BaselineABCtoRGB;
 | 
						|
	BaselineABCDtoRGBProc	*BaselineABCDtoRGB;
 | 
						|
	BaselineHueSatMapProc	*BaselineHueSatMap;
 | 
						|
	BaselineGrayToRGBProc	*BaselineRGBtoGray;
 | 
						|
	BaselineRGBtoRGBProc	*BaselineRGBtoRGB;
 | 
						|
	Baseline1DTableProc		*Baseline1DTable;
 | 
						|
	BaselineRGBToneProc		*BaselineRGBTone;
 | 
						|
	ResampleDown16Proc		*ResampleDown16;
 | 
						|
	ResampleDown32Proc		*ResampleDown32;
 | 
						|
	ResampleAcross16Proc	*ResampleAcross16;
 | 
						|
	ResampleAcross32Proc	*ResampleAcross32;
 | 
						|
	EqualBytesProc			*EqualBytes;
 | 
						|
	EqualArea8Proc			*EqualArea8;
 | 
						|
	EqualArea16Proc			*EqualArea16;
 | 
						|
	EqualArea32Proc			*EqualArea32;
 | 
						|
	VignetteMask16Proc		*VignetteMask16;
 | 
						|
	Vignette16Proc			*Vignette16;
 | 
						|
	Vignette32Proc			*Vignette32;
 | 
						|
	MapArea16Proc			*MapArea16;
 | 
						|
	};
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
extern dng_suite gDNGSuite;
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoZeroBytes (void *dPtr,
 | 
						|
						 uint32 count)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ZeroBytes) (dPtr,
 | 
						|
						   count);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyBytes (const void *sPtr,
 | 
						|
						 void *dPtr,
 | 
						|
						 uint32 count)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyBytes) (sPtr,
 | 
						|
						   dPtr,
 | 
						|
						   count);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoSwapBytes16 (uint16 *dPtr,
 | 
						|
						   uint32 count)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.SwapBytes16) (dPtr,
 | 
						|
						     count);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoSwapBytes32 (uint32 *dPtr,
 | 
						|
						   uint32 count)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.SwapBytes32) (dPtr,
 | 
						|
						     count);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoSetArea8 (uint8 *dPtr,
 | 
						|
					    uint8 value,
 | 
						|
						uint32 rows,
 | 
						|
						uint32 cols,
 | 
						|
						uint32 planes,
 | 
						|
						int32 rowStep,
 | 
						|
						int32 colStep,
 | 
						|
						int32 planeStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.SetArea8) (dPtr,
 | 
						|
						  value,
 | 
						|
						  rows,
 | 
						|
						  cols,
 | 
						|
						  planes,
 | 
						|
						  rowStep,
 | 
						|
						  colStep,
 | 
						|
						  planeStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoSetArea16 (uint16 *dPtr,
 | 
						|
						 uint16 value,
 | 
						|
						 uint32 rows,
 | 
						|
						 uint32 cols,
 | 
						|
						 uint32 planes,
 | 
						|
						 int32 rowStep,
 | 
						|
						 int32 colStep,
 | 
						|
						 int32 planeStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.SetArea16) (dPtr,
 | 
						|
						   value,
 | 
						|
						   rows,
 | 
						|
						   cols,
 | 
						|
						   planes,
 | 
						|
						   rowStep,
 | 
						|
						   colStep,
 | 
						|
						   planeStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoSetArea32 (uint32 *dPtr,
 | 
						|
						 uint32 value,
 | 
						|
						 uint32 rows,
 | 
						|
						 uint32 cols,
 | 
						|
						 uint32 planes,
 | 
						|
						 int32 rowStep,
 | 
						|
						 int32 colStep,
 | 
						|
						 int32 planeStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.SetArea32) (dPtr,
 | 
						|
						   value,
 | 
						|
						   rows,
 | 
						|
						   cols,
 | 
						|
						   planes,
 | 
						|
						   rowStep,
 | 
						|
						   colStep,
 | 
						|
						   planeStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoCopyArea8 (const uint8 *sPtr,
 | 
						|
						 uint8 *dPtr,
 | 
						|
						 uint32 rows,
 | 
						|
						 uint32 cols,
 | 
						|
						 uint32 planes,
 | 
						|
						 int32 sRowStep,
 | 
						|
						 int32 sColStep,
 | 
						|
						 int32 sPlaneStep,
 | 
						|
						 int32 dRowStep,
 | 
						|
						 int32 dColStep,
 | 
						|
						 int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea8) (sPtr,
 | 
						|
						   dPtr,
 | 
						|
						   rows,
 | 
						|
						   cols,
 | 
						|
						   planes,
 | 
						|
						   sRowStep,
 | 
						|
						   sColStep,
 | 
						|
						   sPlaneStep,
 | 
						|
						   dRowStep,
 | 
						|
						   dColStep,
 | 
						|
						   dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea16 (const uint16 *sPtr,
 | 
						|
						  uint16 *dPtr,
 | 
						|
						  uint32 rows,
 | 
						|
						  uint32 cols,
 | 
						|
						  uint32 planes,
 | 
						|
						  int32 sRowStep,
 | 
						|
						  int32 sColStep,
 | 
						|
						  int32 sPlaneStep,
 | 
						|
						  int32 dRowStep,
 | 
						|
						  int32 dColStep,
 | 
						|
						  int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea16) (sPtr,
 | 
						|
							dPtr,
 | 
						|
							rows,
 | 
						|
							cols,
 | 
						|
							planes,
 | 
						|
							sRowStep,
 | 
						|
							sColStep,
 | 
						|
							sPlaneStep,
 | 
						|
							dRowStep,
 | 
						|
							dColStep,
 | 
						|
							dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea32 (const uint32 *sPtr,
 | 
						|
						  uint32 *dPtr,
 | 
						|
						  uint32 rows,
 | 
						|
						  uint32 cols,
 | 
						|
						  uint32 planes,
 | 
						|
						  int32 sRowStep,
 | 
						|
						  int32 sColStep,
 | 
						|
						  int32 sPlaneStep,
 | 
						|
						  int32 dRowStep,
 | 
						|
						  int32 dColStep,
 | 
						|
						  int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea32) (sPtr,
 | 
						|
							dPtr,
 | 
						|
							rows,
 | 
						|
							cols,
 | 
						|
							planes,
 | 
						|
							sRowStep,
 | 
						|
							sColStep,
 | 
						|
							sPlaneStep,
 | 
						|
							dRowStep,
 | 
						|
							dColStep,
 | 
						|
							dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea8_16 (const uint8 *sPtr,
 | 
						|
						    uint16 *dPtr,
 | 
						|
						    uint32 rows,
 | 
						|
						    uint32 cols,
 | 
						|
						    uint32 planes,
 | 
						|
						    int32 sRowStep,
 | 
						|
						    int32 sColStep,
 | 
						|
						    int32 sPlaneStep,
 | 
						|
						    int32 dRowStep,
 | 
						|
						    int32 dColStep,
 | 
						|
						    int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea8_16) (sPtr,
 | 
						|
							  dPtr,
 | 
						|
							  rows,
 | 
						|
							  cols,
 | 
						|
							  planes,
 | 
						|
							  sRowStep,
 | 
						|
							  sColStep,
 | 
						|
							  sPlaneStep,
 | 
						|
							  dRowStep,
 | 
						|
							  dColStep,
 | 
						|
							  dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea8_S16 (const uint8 *sPtr,
 | 
						|
						     int16 *dPtr,
 | 
						|
						     uint32 rows,
 | 
						|
						     uint32 cols,
 | 
						|
						     uint32 planes,
 | 
						|
						     int32 sRowStep,
 | 
						|
						     int32 sColStep,
 | 
						|
						     int32 sPlaneStep,
 | 
						|
						     int32 dRowStep,
 | 
						|
						     int32 dColStep,
 | 
						|
						     int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea8_S16) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   rows,
 | 
						|
							   cols,
 | 
						|
							   planes,
 | 
						|
							   sRowStep,
 | 
						|
							   sColStep,
 | 
						|
							   sPlaneStep,
 | 
						|
							   dRowStep,
 | 
						|
							   dColStep,
 | 
						|
							   dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea8_32 (const uint8 *sPtr,
 | 
						|
						    uint32 *dPtr,
 | 
						|
						    uint32 rows,
 | 
						|
						    uint32 cols,
 | 
						|
						    uint32 planes,
 | 
						|
						    int32 sRowStep,
 | 
						|
						    int32 sColStep,
 | 
						|
						    int32 sPlaneStep,
 | 
						|
						    int32 dRowStep,
 | 
						|
						    int32 dColStep,
 | 
						|
						    int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea8_32) (sPtr,
 | 
						|
							  dPtr,
 | 
						|
							  rows,
 | 
						|
							  cols,
 | 
						|
							  planes,
 | 
						|
							  sRowStep,
 | 
						|
							  sColStep,
 | 
						|
							  sPlaneStep,
 | 
						|
							  dRowStep,
 | 
						|
							  dColStep,
 | 
						|
							  dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea16_S16 (const uint16 *sPtr,
 | 
						|
						      int16 *dPtr,
 | 
						|
						      uint32 rows,
 | 
						|
						      uint32 cols,
 | 
						|
						      uint32 planes,
 | 
						|
						      int32 sRowStep,
 | 
						|
						      int32 sColStep,
 | 
						|
						      int32 sPlaneStep,
 | 
						|
						      int32 dRowStep,
 | 
						|
						      int32 dColStep,
 | 
						|
						      int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea16_S16) (sPtr,
 | 
						|
							    dPtr,
 | 
						|
							    rows,
 | 
						|
							    cols,
 | 
						|
							    planes,
 | 
						|
							    sRowStep,
 | 
						|
							    sColStep,
 | 
						|
							    sPlaneStep,
 | 
						|
							    dRowStep,
 | 
						|
							    dColStep,
 | 
						|
							    dPlaneStep);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea16_32 (const uint16 *sPtr,
 | 
						|
						     uint32 *dPtr,
 | 
						|
						     uint32 rows,
 | 
						|
						     uint32 cols,
 | 
						|
						     uint32 planes,
 | 
						|
						     int32 sRowStep,
 | 
						|
						     int32 sColStep,
 | 
						|
						     int32 sPlaneStep,
 | 
						|
						     int32 dRowStep,
 | 
						|
						     int32 dColStep,
 | 
						|
						     int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea16_32) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   rows,
 | 
						|
							   cols,
 | 
						|
							   planes,
 | 
						|
							   sRowStep,
 | 
						|
							   sColStep,
 | 
						|
							   sPlaneStep,
 | 
						|
							   dRowStep,
 | 
						|
							   dColStep,
 | 
						|
							   dPlaneStep);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea8_R32 (const uint8 *sPtr,
 | 
						|
							 real32 *dPtr,
 | 
						|
							 uint32 rows,
 | 
						|
							 uint32 cols,
 | 
						|
							 uint32 planes,
 | 
						|
							 int32 sRowStep,
 | 
						|
							 int32 sColStep,
 | 
						|
							 int32 sPlaneStep,
 | 
						|
							 int32 dRowStep,
 | 
						|
							 int32 dColStep,
 | 
						|
							 int32 dPlaneStep,
 | 
						|
							 uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea8_R32) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   rows,
 | 
						|
							   cols,
 | 
						|
							   planes,
 | 
						|
							   sRowStep,
 | 
						|
							   sColStep,
 | 
						|
							   sPlaneStep,
 | 
						|
							   dRowStep,
 | 
						|
							   dColStep,
 | 
						|
							   dPlaneStep,
 | 
						|
							   pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyArea16_R32 (const uint16 *sPtr,
 | 
						|
							  real32 *dPtr,
 | 
						|
							  uint32 rows,
 | 
						|
							  uint32 cols,
 | 
						|
							  uint32 planes,
 | 
						|
							  int32 sRowStep,
 | 
						|
							  int32 sColStep,
 | 
						|
							  int32 sPlaneStep,
 | 
						|
							  int32 dRowStep,
 | 
						|
							  int32 dColStep,
 | 
						|
							  int32 dPlaneStep,
 | 
						|
							  uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyArea16_R32) (sPtr,
 | 
						|
							    dPtr,
 | 
						|
							    rows,
 | 
						|
							    cols,
 | 
						|
							    planes,
 | 
						|
							    sRowStep,
 | 
						|
							    sColStep,
 | 
						|
							    sPlaneStep,
 | 
						|
							    dRowStep,
 | 
						|
							    dColStep,
 | 
						|
							    dPlaneStep,
 | 
						|
							    pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyAreaS16_R32 (const int16 *sPtr,
 | 
						|
							   real32 *dPtr,
 | 
						|
							   uint32 rows,
 | 
						|
							   uint32 cols,
 | 
						|
							   uint32 planes,
 | 
						|
							   int32 sRowStep,
 | 
						|
							   int32 sColStep,
 | 
						|
							   int32 sPlaneStep,
 | 
						|
							   int32 dRowStep,
 | 
						|
							   int32 dColStep,
 | 
						|
							   int32 dPlaneStep,
 | 
						|
							   uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyAreaS16_R32) (sPtr,
 | 
						|
							     dPtr,
 | 
						|
							     rows,
 | 
						|
							     cols,
 | 
						|
							     planes,
 | 
						|
							     sRowStep,
 | 
						|
							     sColStep,
 | 
						|
							     sPlaneStep,
 | 
						|
							     dRowStep,
 | 
						|
							     dColStep,
 | 
						|
							     dPlaneStep,
 | 
						|
							     pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyAreaR32_8 (const real32 *sPtr,
 | 
						|
							 uint8 *dPtr,
 | 
						|
							 uint32 rows,
 | 
						|
							 uint32 cols,
 | 
						|
							 uint32 planes,
 | 
						|
							 int32 sRowStep,
 | 
						|
							 int32 sColStep,
 | 
						|
							 int32 sPlaneStep,
 | 
						|
							 int32 dRowStep,
 | 
						|
							 int32 dColStep,
 | 
						|
							 int32 dPlaneStep,
 | 
						|
							 uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyAreaR32_8) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   rows,
 | 
						|
							   cols,
 | 
						|
							   planes,
 | 
						|
							   sRowStep,
 | 
						|
							   sColStep,
 | 
						|
							   sPlaneStep,
 | 
						|
							   dRowStep,
 | 
						|
							   dColStep,
 | 
						|
							   dPlaneStep,
 | 
						|
							   pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyAreaR32_16 (const real32 *sPtr,
 | 
						|
							  uint16 *dPtr,
 | 
						|
							  uint32 rows,
 | 
						|
							  uint32 cols,
 | 
						|
							  uint32 planes,
 | 
						|
							  int32 sRowStep,
 | 
						|
							  int32 sColStep,
 | 
						|
							  int32 sPlaneStep,
 | 
						|
							  int32 dRowStep,
 | 
						|
							  int32 dColStep,
 | 
						|
							  int32 dPlaneStep,
 | 
						|
							  uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyAreaR32_16) (sPtr,
 | 
						|
							    dPtr,
 | 
						|
							    rows,
 | 
						|
							    cols,
 | 
						|
							    planes,
 | 
						|
							    sRowStep,
 | 
						|
							    sColStep,
 | 
						|
							    sPlaneStep,
 | 
						|
							    dRowStep,
 | 
						|
							    dColStep,
 | 
						|
							    dPlaneStep,
 | 
						|
							    pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoCopyAreaR32_S16 (const real32 *sPtr,
 | 
						|
							   int16 *dPtr,
 | 
						|
							   uint32 rows,
 | 
						|
							   uint32 cols,
 | 
						|
							   uint32 planes,
 | 
						|
							   int32 sRowStep,
 | 
						|
							   int32 sColStep,
 | 
						|
							   int32 sPlaneStep,
 | 
						|
							   int32 dRowStep,
 | 
						|
							   int32 dColStep,
 | 
						|
							   int32 dPlaneStep,
 | 
						|
							   uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.CopyAreaR32_S16) (sPtr,
 | 
						|
							     dPtr,
 | 
						|
							     rows,
 | 
						|
							     cols,
 | 
						|
							     planes,
 | 
						|
							     sRowStep,
 | 
						|
							     sColStep,
 | 
						|
							     sPlaneStep,
 | 
						|
							     dRowStep,
 | 
						|
							     dColStep,
 | 
						|
							     dPlaneStep,
 | 
						|
							     pixelRange);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoRepeatArea8 (const uint8 *sPtr,
 | 
						|
						   uint8 *dPtr,
 | 
						|
						   uint32 rows,
 | 
						|
						   uint32 cols,
 | 
						|
						   uint32 planes,
 | 
						|
						   int32 rowStep,
 | 
						|
						   int32 colStep,
 | 
						|
						   int32 planeStep,
 | 
						|
						   uint32 repeatV,
 | 
						|
						   uint32 repeatH,
 | 
						|
						   uint32 phaseV,
 | 
						|
						   uint32 phaseH)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.RepeatArea8) (sPtr,
 | 
						|
						     dPtr,
 | 
						|
						     rows,
 | 
						|
						     cols,
 | 
						|
						     planes,
 | 
						|
						     rowStep,
 | 
						|
						     colStep,
 | 
						|
						     planeStep,
 | 
						|
						     repeatV,
 | 
						|
						     repeatH,
 | 
						|
						     phaseV,
 | 
						|
						     phaseH);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoRepeatArea16 (const uint16 *sPtr,
 | 
						|
							uint16 *dPtr,
 | 
						|
							uint32 rows,
 | 
						|
							uint32 cols,
 | 
						|
							uint32 planes,
 | 
						|
							int32 rowStep,
 | 
						|
							int32 colStep,
 | 
						|
							int32 planeStep,
 | 
						|
							uint32 repeatV,
 | 
						|
							uint32 repeatH,
 | 
						|
							uint32 phaseV,
 | 
						|
							uint32 phaseH)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.RepeatArea16) (sPtr,
 | 
						|
						      dPtr,
 | 
						|
						      rows,
 | 
						|
						      cols,
 | 
						|
						      planes,
 | 
						|
						      rowStep,
 | 
						|
						      colStep,
 | 
						|
						      planeStep,
 | 
						|
						      repeatV,
 | 
						|
						      repeatH,
 | 
						|
						      phaseV,
 | 
						|
						      phaseH);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoRepeatArea32 (const uint32 *sPtr,
 | 
						|
							uint32 *dPtr,
 | 
						|
							uint32 rows,
 | 
						|
							uint32 cols,
 | 
						|
							uint32 planes,
 | 
						|
							int32 rowStep,
 | 
						|
							int32 colStep,
 | 
						|
							int32 planeStep,
 | 
						|
							uint32 repeatV,
 | 
						|
							uint32 repeatH,
 | 
						|
							uint32 phaseV,
 | 
						|
							uint32 phaseH)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.RepeatArea32) (sPtr,
 | 
						|
						      dPtr,
 | 
						|
						      rows,
 | 
						|
						      cols,
 | 
						|
						      planes,
 | 
						|
						      rowStep,
 | 
						|
						      colStep,
 | 
						|
						      planeStep,
 | 
						|
						      repeatV,
 | 
						|
						      repeatH,
 | 
						|
						      phaseV,
 | 
						|
						      phaseH);
 | 
						|
 | 
						|
	}
 | 
						|
		
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoShiftRight16 (uint16 *dPtr,
 | 
						|
						    uint32 rows,
 | 
						|
						    uint32 cols,
 | 
						|
						    uint32 planes,
 | 
						|
						    int32 rowStep,
 | 
						|
						    int32 colStep,
 | 
						|
						    int32 planeStep,
 | 
						|
						    uint32 shift)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ShiftRight16) (dPtr,
 | 
						|
							  rows,
 | 
						|
							  cols,
 | 
						|
							  planes,
 | 
						|
							  rowStep,
 | 
						|
							  colStep,
 | 
						|
							  planeStep,
 | 
						|
							  shift);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBilinearRow16 (const uint16 *sPtr,
 | 
						|
							 uint16 *dPtr,
 | 
						|
							 uint32 cols,
 | 
						|
							 uint32 patPhase,
 | 
						|
							 uint32 patCount,
 | 
						|
							 const uint32 * kernCounts,
 | 
						|
							 const int32  * const * kernOffsets,
 | 
						|
							 const uint16 * const * kernWeights,
 | 
						|
							 uint32 sShift)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BilinearRow16) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   cols,
 | 
						|
							   patPhase,
 | 
						|
							   patCount,
 | 
						|
							   kernCounts,
 | 
						|
							   kernOffsets,
 | 
						|
							   kernWeights,
 | 
						|
							   sShift);
 | 
						|
	
 | 
						|
	}
 | 
						|
	
 | 
						|
inline void DoBilinearRow32 (const real32 *sPtr,
 | 
						|
							 real32 *dPtr,
 | 
						|
							 uint32 cols,
 | 
						|
							 uint32 patPhase,
 | 
						|
							 uint32 patCount,
 | 
						|
							 const uint32 * kernCounts,
 | 
						|
							 const int32  * const * kernOffsets,
 | 
						|
							 const real32 * const * kernWeights,
 | 
						|
							 uint32 sShift)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BilinearRow32) (sPtr,
 | 
						|
							   dPtr,
 | 
						|
							   cols,
 | 
						|
							   patPhase,
 | 
						|
							   patCount,
 | 
						|
							   kernCounts,
 | 
						|
							   kernOffsets,
 | 
						|
							   kernWeights,
 | 
						|
							   sShift);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBaselineABCtoRGB (const real32 *sPtrA,
 | 
						|
								const real32 *sPtrB,
 | 
						|
								const real32 *sPtrC,
 | 
						|
								real32 *dPtrR,
 | 
						|
								real32 *dPtrG,
 | 
						|
								real32 *dPtrB,
 | 
						|
								uint32 count,
 | 
						|
								const dng_vector &cameraWhite,
 | 
						|
								const dng_matrix &cameraToRGB)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineABCtoRGB) (sPtrA,
 | 
						|
								  sPtrB,
 | 
						|
								  sPtrC,
 | 
						|
								  dPtrR,
 | 
						|
								  dPtrG,
 | 
						|
								  dPtrB,
 | 
						|
								  count,
 | 
						|
								  cameraWhite,
 | 
						|
								  cameraToRGB);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoBaselineABCDtoRGB (const real32 *sPtrA,
 | 
						|
								 const real32 *sPtrB,
 | 
						|
								 const real32 *sPtrC,
 | 
						|
								 const real32 *sPtrD,
 | 
						|
								 real32 *dPtrR,
 | 
						|
								 real32 *dPtrG,
 | 
						|
								 real32 *dPtrB,
 | 
						|
								 uint32 count,
 | 
						|
								 const dng_vector &cameraWhite,
 | 
						|
								 const dng_matrix &cameraToRGB)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineABCDtoRGB) (sPtrA,
 | 
						|
								   sPtrB,
 | 
						|
								   sPtrC,
 | 
						|
								   sPtrD,
 | 
						|
								   dPtrR,
 | 
						|
								   dPtrG,
 | 
						|
								   dPtrB,
 | 
						|
								   count,
 | 
						|
								   cameraWhite,
 | 
						|
								   cameraToRGB);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBaselineHueSatMap (const real32 *sPtrR,
 | 
						|
								 const real32 *sPtrG,
 | 
						|
								 const real32 *sPtrB,
 | 
						|
								 real32 *dPtrR,
 | 
						|
								 real32 *dPtrG,
 | 
						|
								 real32 *dPtrB,
 | 
						|
								 uint32 count,
 | 
						|
								 const dng_hue_sat_map &lut,
 | 
						|
								 const dng_1d_table *encodeTable,
 | 
						|
								 const dng_1d_table *decodeTable)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineHueSatMap) (sPtrR,
 | 
						|
								   sPtrG,
 | 
						|
								   sPtrB,
 | 
						|
								   dPtrR,
 | 
						|
								   dPtrG,
 | 
						|
								   dPtrB,
 | 
						|
								   count,
 | 
						|
								   lut,
 | 
						|
								   encodeTable,
 | 
						|
								   decodeTable);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBaselineRGBtoGray (const real32 *sPtrR,
 | 
						|
								 const real32 *sPtrG,
 | 
						|
								 const real32 *sPtrB,
 | 
						|
								 real32 *dPtrG,
 | 
						|
								 uint32 count,
 | 
						|
								 const dng_matrix &matrix)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineRGBtoGray) (sPtrR,
 | 
						|
								   sPtrG,
 | 
						|
								   sPtrB,
 | 
						|
								   dPtrG,
 | 
						|
								   count,
 | 
						|
								   matrix);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoBaselineRGBtoRGB (const real32 *sPtrR,
 | 
						|
								const real32 *sPtrG,
 | 
						|
								const real32 *sPtrB,
 | 
						|
								real32 *dPtrR,
 | 
						|
								real32 *dPtrG,
 | 
						|
								real32 *dPtrB,
 | 
						|
								uint32 count,
 | 
						|
								const dng_matrix &matrix)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineRGBtoRGB) (sPtrR,
 | 
						|
								  sPtrG,
 | 
						|
								  sPtrB,
 | 
						|
								  dPtrR,
 | 
						|
								  dPtrG,
 | 
						|
								  dPtrB,
 | 
						|
								  count,
 | 
						|
								  matrix);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBaseline1DTable (const real32 *sPtr,
 | 
						|
							   real32 *dPtr,
 | 
						|
							   uint32 count,
 | 
						|
							   const dng_1d_table &table)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.Baseline1DTable) (sPtr,
 | 
						|
								 dPtr,
 | 
						|
								 count,
 | 
						|
								 table);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoBaselineRGBTone (const real32 *sPtrR,
 | 
						|
							   const real32 *sPtrG,
 | 
						|
							   const real32 *sPtrB,
 | 
						|
							   real32 *dPtrR,
 | 
						|
							   real32 *dPtrG,
 | 
						|
							   real32 *dPtrB,
 | 
						|
							   uint32 count,
 | 
						|
							   const dng_1d_table &table)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.BaselineRGBTone) (sPtrR,
 | 
						|
								 sPtrG,
 | 
						|
								 sPtrB,
 | 
						|
								 dPtrR,
 | 
						|
								 dPtrG,
 | 
						|
								 dPtrB,
 | 
						|
								 count,
 | 
						|
								 table);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoResampleDown16 (const uint16 *sPtr,
 | 
						|
							  uint16 *dPtr,
 | 
						|
							  uint32 sCount,
 | 
						|
							  int32 sRowStep,
 | 
						|
							  const int16 *wPtr,
 | 
						|
							  uint32 wCount,
 | 
						|
							  uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ResampleDown16) (sPtr,
 | 
						|
								dPtr,
 | 
						|
								sCount,
 | 
						|
								sRowStep,
 | 
						|
								wPtr,
 | 
						|
								wCount,
 | 
						|
								pixelRange);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline void DoResampleDown32 (const real32 *sPtr,
 | 
						|
							  real32 *dPtr,
 | 
						|
							  uint32 sCount,
 | 
						|
							  int32 sRowStep,
 | 
						|
							  const real32 *wPtr,
 | 
						|
							  uint32 wCount)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ResampleDown32) (sPtr,
 | 
						|
								dPtr,
 | 
						|
								sCount,
 | 
						|
								sRowStep,
 | 
						|
								wPtr,
 | 
						|
								wCount);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoResampleAcross16 (const uint16 *sPtr,
 | 
						|
								uint16 *dPtr,
 | 
						|
								uint32 dCount,
 | 
						|
								const int32 *coord,
 | 
						|
								const int16 *wPtr,
 | 
						|
								uint32 wCount,
 | 
						|
								uint32 wStep,
 | 
						|
								uint32 pixelRange)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ResampleAcross16) (sPtr,
 | 
						|
								  dPtr,
 | 
						|
								  dCount,
 | 
						|
								  coord,
 | 
						|
								  wPtr,
 | 
						|
								  wCount,
 | 
						|
								  wStep,
 | 
						|
								  pixelRange);
 | 
						|
	
 | 
						|
	}
 | 
						|
						
 | 
						|
inline void DoResampleAcross32 (const real32 *sPtr,
 | 
						|
								real32 *dPtr,
 | 
						|
								uint32 dCount,
 | 
						|
								const int32 *coord,
 | 
						|
								const real32 *wPtr,
 | 
						|
								uint32 wCount,
 | 
						|
								uint32 wStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.ResampleAcross32) (sPtr,
 | 
						|
								  dPtr,
 | 
						|
								  dCount,
 | 
						|
								  coord,
 | 
						|
								  wPtr,
 | 
						|
								  wCount,
 | 
						|
								  wStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline bool DoEqualBytes (const void *sPtr,
 | 
						|
						  const void *dPtr,
 | 
						|
						  uint32 count)
 | 
						|
	{
 | 
						|
	
 | 
						|
	return (gDNGSuite.EqualBytes) (sPtr,
 | 
						|
								   dPtr,
 | 
						|
								   count);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline bool DoEqualArea8 (const uint8 *sPtr,
 | 
						|
						  const uint8 *dPtr,
 | 
						|
						  uint32 rows,
 | 
						|
						  uint32 cols,
 | 
						|
						  uint32 planes,
 | 
						|
						  int32 sRowStep,
 | 
						|
						  int32 sColStep,
 | 
						|
						  int32 sPlaneStep,
 | 
						|
						  int32 dRowStep,
 | 
						|
						  int32 dColStep,
 | 
						|
						  int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	return (gDNGSuite.EqualArea8) (sPtr,
 | 
						|
								   dPtr,
 | 
						|
								   rows,
 | 
						|
								   cols,
 | 
						|
								   planes,
 | 
						|
								   sRowStep,
 | 
						|
								   sColStep,
 | 
						|
								   sPlaneStep,
 | 
						|
								   dRowStep,
 | 
						|
								   dColStep,
 | 
						|
								   dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline bool DoEqualArea16 (const uint16 *sPtr,
 | 
						|
						   const uint16 *dPtr,
 | 
						|
						   uint32 rows,
 | 
						|
						   uint32 cols,
 | 
						|
						   uint32 planes,
 | 
						|
						   int32 sRowStep,
 | 
						|
						   int32 sColStep,
 | 
						|
						   int32 sPlaneStep,
 | 
						|
						   int32 dRowStep,
 | 
						|
						   int32 dColStep,
 | 
						|
						   int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	return (gDNGSuite.EqualArea16) (sPtr,
 | 
						|
									dPtr,
 | 
						|
									rows,
 | 
						|
									cols,
 | 
						|
									planes,
 | 
						|
									sRowStep,
 | 
						|
									sColStep,
 | 
						|
									sPlaneStep,
 | 
						|
									dRowStep,
 | 
						|
									dColStep,
 | 
						|
									dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
inline bool DoEqualArea32 (const uint32 *sPtr,
 | 
						|
						   const uint32 *dPtr,
 | 
						|
						   uint32 rows,
 | 
						|
						   uint32 cols,
 | 
						|
						   uint32 planes,
 | 
						|
						   int32 sRowStep,
 | 
						|
						   int32 sColStep,
 | 
						|
						   int32 sPlaneStep,
 | 
						|
						   int32 dRowStep,
 | 
						|
						   int32 dColStep,
 | 
						|
						   int32 dPlaneStep)
 | 
						|
	{
 | 
						|
	
 | 
						|
	return (gDNGSuite.EqualArea32) (sPtr,
 | 
						|
									dPtr,
 | 
						|
									rows,
 | 
						|
									cols,
 | 
						|
									planes,
 | 
						|
									sRowStep,
 | 
						|
									sColStep,
 | 
						|
									sPlaneStep,
 | 
						|
									dRowStep,
 | 
						|
									dColStep,
 | 
						|
									dPlaneStep);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoVignetteMask16 (uint16 *mPtr,
 | 
						|
							  uint32 rows,
 | 
						|
							  uint32 cols,
 | 
						|
							  int32 rowStep,
 | 
						|
							  int64 offsetH,
 | 
						|
							  int64 offsetV,
 | 
						|
							  int64 stepH,
 | 
						|
							  int64 stepV,
 | 
						|
							  uint32 tBits,
 | 
						|
							  const uint16 *table)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.VignetteMask16) (mPtr,
 | 
						|
								rows,
 | 
						|
								cols,
 | 
						|
								rowStep,
 | 
						|
								offsetH,
 | 
						|
								offsetV,
 | 
						|
								stepH,
 | 
						|
								stepV,
 | 
						|
								tBits,
 | 
						|
								table);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoVignette16 (int16 *sPtr,
 | 
						|
						  const uint16 *mPtr,
 | 
						|
						  uint32 rows,
 | 
						|
						  uint32 cols,
 | 
						|
						  uint32 planes,
 | 
						|
						  int32 sRowStep,
 | 
						|
						  int32 sPlaneStep,
 | 
						|
						  int32 mRowStep,
 | 
						|
						  uint32 mBits)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.Vignette16) (sPtr,
 | 
						|
							mPtr,
 | 
						|
							rows,
 | 
						|
							cols,
 | 
						|
							planes,
 | 
						|
							sRowStep,
 | 
						|
							sPlaneStep,
 | 
						|
							mRowStep,
 | 
						|
							mBits);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoVignette32 (real32 *sPtr,
 | 
						|
						  const uint16 *mPtr,
 | 
						|
						  uint32 rows,
 | 
						|
						  uint32 cols,
 | 
						|
						  uint32 planes,
 | 
						|
						  int32 sRowStep,
 | 
						|
						  int32 sPlaneStep,
 | 
						|
						  int32 mRowStep,
 | 
						|
						  uint32 mBits)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.Vignette32) (sPtr,
 | 
						|
							mPtr,
 | 
						|
							rows,
 | 
						|
							cols,
 | 
						|
							planes,
 | 
						|
							sRowStep,
 | 
						|
							sPlaneStep,
 | 
						|
							mRowStep,
 | 
						|
							mBits);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
inline void DoMapArea16 (uint16 *dPtr,
 | 
						|
						 uint32 count0,
 | 
						|
						 uint32 count1,
 | 
						|
						 uint32 count2,
 | 
						|
						 int32 step0,
 | 
						|
						 int32 step1,
 | 
						|
						 int32 step2,
 | 
						|
						 const uint16 *map)
 | 
						|
	{
 | 
						|
	
 | 
						|
	(gDNGSuite.MapArea16) (dPtr,
 | 
						|
						   count0,
 | 
						|
						   count1,
 | 
						|
						   count2,
 | 
						|
						   step0,
 | 
						|
						   step1,
 | 
						|
						   step2,
 | 
						|
						   map);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
/*****************************************************************************/
 | 
						|
 | 
						|
#endif
 | 
						|
	
 | 
						|
/*****************************************************************************/
 |