C++程序  |  122行  |  2.91 KB

/*****************************************************************************/
// Copyright 2006 Adobe Systems Incorporated
// All Rights Reserved.
//
// NOTICE:  Adobe permits you to use, modify, and distribute this file in
// accordance with the terms of the Adobe license agreement accompanying it.
/*****************************************************************************/

/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_types.h#1 $ */ 
/* $DateTime: 2012/05/30 13:28:51 $ */
/* $Change: 832332 $ */
/* $Author: tknoll $ */

/*****************************************************************************/

#ifndef __dng_types__
#define __dng_types__

/*****************************************************************************/

#include "dng_flags.h"

/*****************************************************************************/

// Standard integer types.

#ifdef _MSC_VER
#include <stddef.h>
#endif

#include <stdint.h>

/*****************************************************************************/

#if qDNGUseCustomIntegralTypes

#include "dng_custom_integral_types.h"

#elif qDNGUseStdInt || 1

typedef int8_t  int8;
typedef int16_t int16;
typedef int32_t int32;
typedef int64_t int64;

typedef uint8_t  uint8;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;

#else

typedef signed char		 int8;
typedef signed short	 int16;
#if __LP64__
typedef signed int		 int32;
#else
typedef signed long		 int32;
#endif
typedef signed long long int64;

typedef unsigned char      uint8;
typedef unsigned short	   uint16;
/*Some Mac OS X 10.5 SDK headers already define uint32.*/
#ifndef _UINT32
#if __LP64__
typedef unsigned int	   uint32;
#else
typedef unsigned long	   uint32;
#endif
#define _UINT32
#endif
typedef unsigned long long uint64;

#endif

typedef uintptr_t uintptr;

/*****************************************************************************/

typedef float  real32;
typedef double real64;

/*****************************************************************************/

/// \def Build a Macintosh style four-character constant in a compiler safe way.

#define DNG_CHAR4(a,b,c,d)	((((uint32) a) << 24) |\
							 (((uint32) b) << 16) |\
							 (((uint32) c) <<  8) |\
							 (((uint32) d)      ))

/*****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>

/*****************************************************************************/

// Visual Studio now prefers _hypot to hypot
// Note: since Visual Studio 2010, there is a definition of hypot (in math.h),
// we only define hypot here for the older Visual Studio versions.

#if defined(_MSC_VER) && _MSC_VER < 1600

#ifdef hypot
#undef hypot
#endif

#define hypot _hypot

#endif

/*****************************************************************************/

#endif
	
/*****************************************************************************/