10b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 20b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener// Copyright 2006-2007 Adobe Systems Incorporated 30b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener// All Rights Reserved. 40b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener// 50b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener// NOTICE: Adobe permits you to use, modify, and distribute this file in 60b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener// accordance with the terms of the Adobe license agreement accompanying it. 70b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 80b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 90b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_bottlenecks.h#1 $ */ 100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/* $DateTime: 2012/05/30 13:28:51 $ */ 110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/* $Change: 832332 $ */ 120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/* $Author: tknoll $ */ 130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/** \file 150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener * Indirection mechanism for performance-critical routines that might be replaced 160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener * with hand-optimized or hardware-specific implementations. 170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener */ 180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener#ifndef __dng_bottlenecks__ 220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener#define __dng_bottlenecks__ 230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener#include "dng_classes.h" 270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener#include "dng_types.h" 280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ZeroBytesProc) 320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (void *dPtr, 330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count); 340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyBytesProc) 360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const void *sPtr, 370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener void *dPtr, 380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count); 390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (SwapBytes16Proc) 430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint16 *dPtr, 440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count); 450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (SwapBytes32Proc) 470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint32 *dPtr, 480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count); 490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (SetArea8Proc) 530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint8 *dPtr, 540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 value, 550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep); 610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (SetArea16Proc) 630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint16 *dPtr, 640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 value, 650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep); 710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (SetArea32Proc) 730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint32 *dPtr, 740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 value, 750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep); 810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea8Proc) 850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea16Proc) 980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 1000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea32Proc) 1110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint32 *sPtr, 1120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 1130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea8_16Proc) 1240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 1250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 1260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea8_S16Proc) 1370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 1380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 1390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea8_32Proc) 1500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 1510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 1520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea16_S16Proc) 1630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 1640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 1650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea16_32Proc) 1760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 1770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 1780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 1870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 1880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea8_R32Proc) 1890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 1900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 1910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 1920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 1930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 1940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 1950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 1960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 1970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 1980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 1990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyArea16_R32Proc) 2030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 2040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 2050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 2090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 2100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 2110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 2120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 2130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyAreaS16_R32Proc) 2170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const int16 *sPtr, 2180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 2190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 2230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 2240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 2250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 2260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 2270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyAreaR32_8Proc) 2310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 2320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 2330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 2370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 2380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 2390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 2400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 2410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyAreaR32_16Proc) 2450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 2460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 2470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 2510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 2520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 2530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 2540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 2550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (CopyAreaR32_S16Proc) 2590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 2600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 2610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 2650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 2660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 2670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 2680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 2690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 2700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 2710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 2730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (RepeatArea8Proc) 2750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 2760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 2770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 2810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 2820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 2830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 2840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 2850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 2860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH); 2870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 2880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (RepeatArea16Proc) 2890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 2900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 2910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 2920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 2930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 2940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 2950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 2960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 2970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 2980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 2990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 3000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH); 3010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (RepeatArea32Proc) 3030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint32 *sPtr, 3040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 3050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 3060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 3070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 3080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 3090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 3100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 3110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 3120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 3130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 3140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH); 3150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 3170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ShiftRight16Proc) 3190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint16 *dPtr, 3200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 3210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 3220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 3230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 3240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 3250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 3260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 shift); 3270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 3290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BilinearRow16Proc) 3310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 3320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 3330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 3340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patPhase, 3350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patCount, 3360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 * kernCounts, 3370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 * const * kernOffsets, 3380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 * const * kernWeights, 3390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sShift); 3400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BilinearRow32Proc) 3420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 3430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 3440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 3450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patPhase, 3460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patCount, 3470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 * kernCounts, 3480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 * const * kernOffsets, 3490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 * const * kernWeights, 3500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sShift); 3510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 3530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineABCtoRGBProc) 3550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrA, 3560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 3570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrC, 3580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 3590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 3600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 3610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 3620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_vector &cameraWhite, 3630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &cameraToRGB); 3640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineABCDtoRGBProc) 3660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrA, 3670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 3680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrC, 3690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrD, 3700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 3710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 3720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 3730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 3740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_vector &cameraWhite, 3750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &cameraToRGB); 3760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 3780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineHueSatMapProc) 3800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrR, 3810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 3820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 3830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 3840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 3850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 3860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 3870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_hue_sat_map &lut, 3880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table *encodeTable, 3890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table *decodeTable); 3900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 3920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 3930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineGrayToRGBProc) 3940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrR, 3950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 3960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 3970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 3980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 3990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &matrix); 4000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineRGBtoRGBProc) 4020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrR, 4030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 4040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 4050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 4060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 4070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 4080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 4090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &matrix); 4100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 4120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (Baseline1DTableProc) 4140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 4150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 4160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 4170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table &table); 4180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 4200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (BaselineRGBToneProc) 4220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtrR, 4230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 4240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 4250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 4260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 4270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 4280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 4290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table &table); 4300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 4320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ResampleDown16Proc) 4340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 4350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 4360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sCount, 4370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 4380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int16 *wPtr, 4390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 4400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 4410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ResampleDown32Proc) 4430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 4440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 4450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sCount, 4460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 4470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *wPtr, 4480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount); 4490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 4510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ResampleAcross16Proc) 4530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 4540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 4550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 dCount, 4560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 *coord, 4570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int16 *wPtr, 4580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 4590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wStep, 4600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange); 4610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (ResampleAcross32Proc) 4630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const real32 *sPtr, 4640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 4650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 dCount, 4660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 *coord, 4670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *wPtr, 4680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 4690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wStep); 4700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 4720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef bool (EqualBytesProc) 4740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const void *sPtr, 4750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const void *dPtr, 4760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count); 4770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef bool (EqualArea8Proc) 4790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint8 *sPtr, 4800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint8 *dPtr, 4810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 4820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 4830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 4840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 4850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 4860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 4870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 4880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 4890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 4900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 4910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef bool (EqualArea16Proc) 4920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint16 *sPtr, 4930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *dPtr, 4940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 4950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 4960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 4970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 4980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 4990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 5000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 5010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 5020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 5030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef bool (EqualArea32Proc) 5050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (const uint32 *sPtr, 5060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 *dPtr, 5070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 5080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 5090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 5100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 5110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 5120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 5130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 5140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 5150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep); 5160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 5180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (VignetteMask16Proc) 5200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint16 *mPtr, 5210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 5220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 5230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 5240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 offsetH, 5250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 offsetV, 5260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 stepH, 5270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 stepV, 5280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 tBits, 5290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *table); 5300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (Vignette16Proc) 5320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (int16 *sPtr, 5330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *mPtr, 5340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 5350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 5360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 5370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 5380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 5390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 mRowStep, 5400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 mBits); 5410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 5430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (Vignette32Proc) 5450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (real32 *sPtr, 5460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *mPtr, 5470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 5480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 5490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 5500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 5510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 5520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 mRowStep, 5530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 mBits); 5540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 5560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienertypedef void (MapArea16Proc) 5580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (uint16 *dPtr, 5590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count0, 5600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count1, 5610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count2, 5620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step0, 5630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step1, 5640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step2, 5650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *map); 5660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 5680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 5690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerstruct dng_suite 5700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 5710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ZeroBytesProc *ZeroBytes; 5720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyBytesProc *CopyBytes; 5730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener SwapBytes16Proc *SwapBytes16; 5740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener SwapBytes32Proc *SwapBytes32; 5750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener SetArea8Proc *SetArea8; 5760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener SetArea16Proc *SetArea16; 5770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener SetArea32Proc *SetArea32; 5780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea8Proc *CopyArea8; 5790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea16Proc *CopyArea16; 5800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea32Proc *CopyArea32; 5810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea8_16Proc *CopyArea8_16; 5820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea8_S16Proc *CopyArea8_S16; 5830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea8_32Proc *CopyArea8_32; 5840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea16_S16Proc *CopyArea16_S16; 5850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea16_32Proc *CopyArea16_32; 5860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea8_R32Proc *CopyArea8_R32; 5870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyArea16_R32Proc *CopyArea16_R32; 5880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyAreaS16_R32Proc *CopyAreaS16_R32; 5890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyAreaR32_8Proc *CopyAreaR32_8; 5900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyAreaR32_16Proc *CopyAreaR32_16; 5910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener CopyAreaR32_S16Proc *CopyAreaR32_S16; 5920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener RepeatArea8Proc *RepeatArea8; 5930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener RepeatArea16Proc *RepeatArea16; 5940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener RepeatArea32Proc *RepeatArea32; 5950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ShiftRight16Proc *ShiftRight16; 5960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BilinearRow16Proc *BilinearRow16; 5970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BilinearRow32Proc *BilinearRow32; 5980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineABCtoRGBProc *BaselineABCtoRGB; 5990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineABCDtoRGBProc *BaselineABCDtoRGB; 6000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineHueSatMapProc *BaselineHueSatMap; 6010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineGrayToRGBProc *BaselineRGBtoGray; 6020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineRGBtoRGBProc *BaselineRGBtoRGB; 6030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener Baseline1DTableProc *Baseline1DTable; 6040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener BaselineRGBToneProc *BaselineRGBTone; 6050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ResampleDown16Proc *ResampleDown16; 6060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ResampleDown32Proc *ResampleDown32; 6070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ResampleAcross16Proc *ResampleAcross16; 6080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener ResampleAcross32Proc *ResampleAcross32; 6090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener EqualBytesProc *EqualBytes; 6100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener EqualArea8Proc *EqualArea8; 6110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener EqualArea16Proc *EqualArea16; 6120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener EqualArea32Proc *EqualArea32; 6130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener VignetteMask16Proc *VignetteMask16; 6140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener Vignette16Proc *Vignette16; 6150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener Vignette32Proc *Vignette32; 6160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener MapArea16Proc *MapArea16; 6170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener }; 6180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 6200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerextern dng_suite gDNGSuite; 6220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 6240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoZeroBytes (void *dPtr, 6260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count) 6270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ZeroBytes) (dPtr, 6300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count); 6310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 6330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyBytes (const void *sPtr, 6350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener void *dPtr, 6360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count) 6370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyBytes) (sPtr, 6400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 6410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count); 6420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 6440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 6460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoSwapBytes16 (uint16 *dPtr, 6480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count) 6490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.SwapBytes16) (dPtr, 6520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count); 6530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 6550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoSwapBytes32 (uint32 *dPtr, 6570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count) 6580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.SwapBytes32) (dPtr, 6610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count); 6620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 6640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 6660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoSetArea8 (uint8 *dPtr, 6680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 value, 6690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 6700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 6710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 6720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 6730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 6740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep) 6750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.SetArea8) (dPtr, 6780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener value, 6790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 6800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 6810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 6820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 6830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 6840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep); 6850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 6870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoSetArea16 (uint16 *dPtr, 6890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 value, 6900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 6910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 6920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 6930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 6940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 6950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep) 6960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 6970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 6980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.SetArea16) (dPtr, 6990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener value, 7000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 7010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 7020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 7030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 7040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 7050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep); 7060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 7080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoSetArea32 (uint32 *dPtr, 7100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 value, 7110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 7120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 7130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 7140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 7150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 7160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep) 7170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 7180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.SetArea32) (dPtr, 7200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener value, 7210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 7220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 7230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 7240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 7250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 7260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep); 7270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 7290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 7310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea8 (const uint8 *sPtr, 7330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 7340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 7350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 7360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 7370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 7380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 7390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 7400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 7410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 7420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 7430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 7440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea8) (sPtr, 7460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 7470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 7480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 7490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 7500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 7510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 7520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 7530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 7540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 7550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 7560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 7580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea16 (const uint16 *sPtr, 7600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 7610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 7620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 7630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 7640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 7650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 7660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 7670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 7680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 7690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 7700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 7710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea16) (sPtr, 7730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 7740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 7750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 7760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 7770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 7780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 7790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 7800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 7810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 7820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 7830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 7850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea32 (const uint32 *sPtr, 7870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 7880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 7890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 7900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 7910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 7920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 7930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 7940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 7950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 7960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 7970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 7980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 7990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea32) (sPtr, 8000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 8010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 8020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 8030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 8040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 8050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 8060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 8070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 8080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 8090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 8100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 8120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea8_16 (const uint8 *sPtr, 8140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 8150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 8160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 8170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 8180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 8190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 8200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 8210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 8220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 8230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 8240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 8250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea8_16) (sPtr, 8270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 8280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 8290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 8300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 8310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 8320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 8330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 8340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 8350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 8360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 8370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 8390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea8_S16 (const uint8 *sPtr, 8410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 8420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 8430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 8440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 8450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 8460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 8470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 8480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 8490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 8500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 8510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 8520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea8_S16) (sPtr, 8540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 8550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 8560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 8570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 8580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 8590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 8600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 8610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 8620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 8630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 8640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 8660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea8_32 (const uint8 *sPtr, 8680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 8690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 8700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 8710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 8720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 8730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 8740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 8750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 8760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 8770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 8780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 8790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea8_32) (sPtr, 8810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 8820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 8830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 8840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 8850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 8860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 8870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 8880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 8890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 8900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 8910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 8930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 8940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea16_S16 (const uint16 *sPtr, 8950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 8960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 8970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 8980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 8990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 9000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 9010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 9020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 9030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 9040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 9050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 9060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea16_S16) (sPtr, 9080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 9090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 9100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 9110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 9120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 9130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 9140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 9150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 9160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 9170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 9180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 9200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea16_32 (const uint16 *sPtr, 9220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 9230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 9240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 9250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 9260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 9270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 9280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 9290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 9300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 9310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 9320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 9330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea16_32) (sPtr, 9350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 9360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 9370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 9380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 9390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 9400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 9410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 9420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 9430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 9440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 9450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 9470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea8_R32 (const uint8 *sPtr, 9490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 9500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 9510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 9520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 9530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 9540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 9550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 9560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 9570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 9580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 9590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 9600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 9610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea8_R32) (sPtr, 9630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 9640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 9650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 9660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 9670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 9680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 9690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 9700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 9710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 9720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 9730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 9740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 9760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyArea16_R32 (const uint16 *sPtr, 9780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 9790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 9800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 9810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 9820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 9830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 9840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 9850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 9860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 9870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 9880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 9890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 9900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 9910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyArea16_R32) (sPtr, 9920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 9930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 9940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 9950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 9960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 9970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 9980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 9990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 10000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 10010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 10020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 10030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 10050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyAreaS16_R32 (const int16 *sPtr, 10070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 10080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 10090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 10100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 10110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 10120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 10130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 10140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 10150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 10160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 10170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 10180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 10190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyAreaS16_R32) (sPtr, 10210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 10220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 10230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 10240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 10250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 10260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 10270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 10280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 10290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 10300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 10310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 10320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 10340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyAreaR32_8 (const real32 *sPtr, 10360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 10370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 10380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 10390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 10400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 10410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 10420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 10430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 10440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 10450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 10460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 10470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 10480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyAreaR32_8) (sPtr, 10500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 10510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 10520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 10530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 10540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 10550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 10560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 10570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 10580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 10590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 10600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 10610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 10630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyAreaR32_16 (const real32 *sPtr, 10650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 10660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 10670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 10680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 10690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 10700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 10710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 10720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 10730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 10740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 10750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 10760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 10770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyAreaR32_16) (sPtr, 10790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 10800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 10810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 10820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 10830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 10840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 10850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 10860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 10870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 10880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 10890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 10900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 10920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 10930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoCopyAreaR32_S16 (const real32 *sPtr, 10940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int16 *dPtr, 10950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 10960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 10970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 10980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 10990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 11000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 11010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 11020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 11030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep, 11040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 11050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 11060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.CopyAreaR32_S16) (sPtr, 11080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 11090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 11100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 11110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 11120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 11130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 11140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 11150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 11160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 11170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep, 11180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 11190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 11210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 11230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoRepeatArea8 (const uint8 *sPtr, 11250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint8 *dPtr, 11260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 11270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 11280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 11290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 11300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 11310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 11320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 11330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 11340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 11350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH) 11360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 11370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.RepeatArea8) (sPtr, 11390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 11400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 11410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 11420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 11430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 11440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 11450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep, 11460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatV, 11470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatH, 11480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseV, 11490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseH); 11500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 11520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoRepeatArea16 (const uint16 *sPtr, 11540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 11550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 11560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 11570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 11580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 11590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 11600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 11610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 11620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 11630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 11640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH) 11650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 11660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.RepeatArea16) (sPtr, 11680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 11690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 11700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 11710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 11720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 11730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 11740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep, 11750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatV, 11760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatH, 11770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseV, 11780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseH); 11790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 11810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoRepeatArea32 (const uint32 *sPtr, 11830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 *dPtr, 11840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 11850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 11860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 11870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 11880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 11890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 11900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatV, 11910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 repeatH, 11920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseV, 11930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 phaseH) 11940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 11950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 11960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.RepeatArea32) (sPtr, 11970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 11980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 11990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 12000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 12010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 12020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 12030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep, 12040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatV, 12050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener repeatH, 12060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseV, 12070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener phaseH); 12080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 12100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 12120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoShiftRight16 (uint16 *dPtr, 12140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 12150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 12160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 12170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 12180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 colStep, 12190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 planeStep, 12200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 shift) 12210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 12220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ShiftRight16) (dPtr, 12240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 12250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 12260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 12270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 12280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener colStep, 12290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planeStep, 12300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener shift); 12310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 12330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 12350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBilinearRow16 (const uint16 *sPtr, 12370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 12380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 12390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patPhase, 12400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patCount, 12410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 * kernCounts, 12420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 * const * kernOffsets, 12430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 * const * kernWeights, 12440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sShift) 12450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 12460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BilinearRow16) (sPtr, 12480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 12490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 12500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener patPhase, 12510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener patCount, 12520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernCounts, 12530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernOffsets, 12540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernWeights, 12550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sShift); 12560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 12580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBilinearRow32 (const real32 *sPtr, 12600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 12610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 12620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patPhase, 12630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 patCount, 12640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 * kernCounts, 12650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 * const * kernOffsets, 12660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 * const * kernWeights, 12670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sShift) 12680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 12690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BilinearRow32) (sPtr, 12710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 12720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 12730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener patPhase, 12740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener patCount, 12750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernCounts, 12760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernOffsets, 12770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener kernWeights, 12780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sShift); 12790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 12810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 12830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineABCtoRGB (const real32 *sPtrA, 12850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 12860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrC, 12870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 12880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 12890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 12900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 12910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_vector &cameraWhite, 12920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &cameraToRGB) 12930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 12940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 12950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineABCtoRGB) (sPtrA, 12960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 12970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrC, 12980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrR, 12990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 13000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrB, 13010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 13020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cameraWhite, 13030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cameraToRGB); 13040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 13060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineABCDtoRGB (const real32 *sPtrA, 13080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 13090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrC, 13100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrD, 13110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 13120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 13130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 13140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 13150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_vector &cameraWhite, 13160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &cameraToRGB) 13170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 13180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineABCDtoRGB) (sPtrA, 13200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 13210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrC, 13220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrD, 13230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrR, 13240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 13250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrB, 13260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 13270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cameraWhite, 13280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cameraToRGB); 13290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 13310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 13330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineHueSatMap (const real32 *sPtrR, 13350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 13360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 13370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 13380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 13390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 13400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 13410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_hue_sat_map &lut, 13420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table *encodeTable, 13430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table *decodeTable) 13440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 13450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineHueSatMap) (sPtrR, 13470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrG, 13480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 13490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrR, 13500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 13510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrB, 13520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 13530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener lut, 13540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener encodeTable, 13550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener decodeTable); 13560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 13580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 13600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineRGBtoGray (const real32 *sPtrR, 13620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 13630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 13640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 13650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 13660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &matrix) 13670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 13680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineRGBtoGray) (sPtrR, 13700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrG, 13710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 13720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 13730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 13740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener matrix); 13750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 13770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineRGBtoRGB (const real32 *sPtrR, 13790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 13800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 13810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 13820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 13830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 13840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 13850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_matrix &matrix) 13860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 13870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineRGBtoRGB) (sPtrR, 13890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrG, 13900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 13910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrR, 13920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 13930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrB, 13940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 13950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener matrix); 13960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 13980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 13990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 14000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaseline1DTable (const real32 *sPtr, 14020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 14030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 14040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table &table) 14050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 14060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.Baseline1DTable) (sPtr, 14080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 14090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 14100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener table); 14110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 14130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 14150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoBaselineRGBTone (const real32 *sPtrR, 14170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrG, 14180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *sPtrB, 14190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrR, 14200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrG, 14210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtrB, 14220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count, 14230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const dng_1d_table &table) 14240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 14250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.BaselineRGBTone) (sPtrR, 14270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrG, 14280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPtrB, 14290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrR, 14300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrG, 14310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtrB, 14320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count, 14330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener table); 14340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 14360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 14380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoResampleDown16 (const uint16 *sPtr, 14400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 14410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sCount, 14420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 14430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int16 *wPtr, 14440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 14450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 14460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 14470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ResampleDown16) (sPtr, 14490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 14500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sCount, 14510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 14520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wPtr, 14530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wCount, 14540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 14550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 14570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoResampleDown32 (const real32 *sPtr, 14590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 14600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 sCount, 14610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 14620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *wPtr, 14630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount) 14640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 14650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ResampleDown32) (sPtr, 14670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 14680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sCount, 14690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 14700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wPtr, 14710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wCount); 14720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 14740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 14760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoResampleAcross16 (const uint16 *sPtr, 14780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint16 *dPtr, 14790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 dCount, 14800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 *coord, 14810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int16 *wPtr, 14820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 14830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wStep, 14840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 pixelRange) 14850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 14860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ResampleAcross16) (sPtr, 14880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 14890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dCount, 14900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener coord, 14910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wPtr, 14920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wCount, 14930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wStep, 14940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener pixelRange); 14950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 14970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 14980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoResampleAcross32 (const real32 *sPtr, 14990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener real32 *dPtr, 15000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 dCount, 15010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const int32 *coord, 15020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const real32 *wPtr, 15030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wCount, 15040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 wStep) 15050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 15060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.ResampleAcross32) (sPtr, 15080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 15090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dCount, 15100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener coord, 15110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wPtr, 15120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wCount, 15130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener wStep); 15140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 15160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 15180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline bool DoEqualBytes (const void *sPtr, 15200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const void *dPtr, 15210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count) 15220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 15230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener return (gDNGSuite.EqualBytes) (sPtr, 15250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 15260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count); 15270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 15290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline bool DoEqualArea8 (const uint8 *sPtr, 15310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint8 *dPtr, 15320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 15330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 15340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 15350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 15360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 15370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 15380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 15390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 15400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 15410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 15420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener return (gDNGSuite.EqualArea8) (sPtr, 15440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 15450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 15460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 15470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 15480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 15490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 15500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 15510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 15520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 15530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 15540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 15560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline bool DoEqualArea16 (const uint16 *sPtr, 15580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *dPtr, 15590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 15600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 15610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 15620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 15630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 15640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 15650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 15660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 15670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 15680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 15690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener return (gDNGSuite.EqualArea16) (sPtr, 15710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 15720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 15730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 15740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 15750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 15760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 15770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 15780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 15790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 15800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 15810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 15830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline bool DoEqualArea32 (const uint32 *sPtr, 15850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint32 *dPtr, 15860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 15870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 15880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 15890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 15900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sColStep, 15910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 15920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dRowStep, 15930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dColStep, 15940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 dPlaneStep) 15950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 15960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 15970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener return (gDNGSuite.EqualArea32) (sPtr, 15980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPtr, 15990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 16000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 16010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 16020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 16030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sColStep, 16040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 16050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dRowStep, 16060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dColStep, 16070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener dPlaneStep); 16080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 16100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 16120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoVignetteMask16 (uint16 *mPtr, 16140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 16150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 16160b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 rowStep, 16170b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 offsetH, 16180b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 offsetV, 16190b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 stepH, 16200b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int64 stepV, 16210b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 tBits, 16220b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *table) 16230b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 16240b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16250b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.VignetteMask16) (mPtr, 16260b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 16270b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 16280b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rowStep, 16290b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener offsetH, 16300b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener offsetV, 16310b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener stepH, 16320b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener stepV, 16330b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener tBits, 16340b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener table); 16350b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16360b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 16370b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16380b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 16390b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16400b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoVignette16 (int16 *sPtr, 16410b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *mPtr, 16420b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 16430b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 16440b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 16450b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 16460b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 16470b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 mRowStep, 16480b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 mBits) 16490b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 16500b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16510b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.Vignette16) (sPtr, 16520b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mPtr, 16530b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 16540b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 16550b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 16560b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 16570b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 16580b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mRowStep, 16590b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mBits); 16600b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16610b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 16620b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16630b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 16640b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16650b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoVignette32 (real32 *sPtr, 16660b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *mPtr, 16670b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 rows, 16680b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 cols, 16690b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 planes, 16700b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sRowStep, 16710b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 sPlaneStep, 16720b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 mRowStep, 16730b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 mBits) 16740b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 16750b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16760b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.Vignette32) (sPtr, 16770b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mPtr, 16780b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener rows, 16790b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener cols, 16800b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener planes, 16810b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sRowStep, 16820b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener sPlaneStep, 16830b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mRowStep, 16840b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener mBits); 16850b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16860b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 16870b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16880b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 16890b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 16900b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Krienerinline void DoMapArea16 (uint16 *dPtr, 16910b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count0, 16920b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count1, 16930b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener uint32 count2, 16940b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step0, 16950b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step1, 16960b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener int32 step2, 16970b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener const uint16 *map) 16980b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener { 16990b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 17000b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener (gDNGSuite.MapArea16) (dPtr, 17010b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count0, 17020b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count1, 17030b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener count2, 17040b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener step0, 17050b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener step1, 17060b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener step2, 17070b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener map); 17080b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 17090b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener } 17100b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 17110b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 17120b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 17130b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener#endif 17140b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener 17150b098b759cf9a2a8659babaf8c3b74e1b48ca604Florian Kriener/*****************************************************************************/ 1716