Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccDefs.h
Go to the documentation of this file.
1/** @file
2 File: IccDefs.h
3
4 Contains: Access ICC profile definitions and structures including
5 Version 4 extensions
6
7 Copyright: (c) see ICC Software License
8 */
9
10/*
11 * The ICC Software License, Version 0.2
12 *
13 *
14 * Copyright (c) 2003-2012 The International Color Consortium. All rights
15 * reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions
19 * are met:
20 *
21 * 1. Redistributions of source code must retain the above copyright
22 * notice, this list of conditions and the following disclaimer.
23 *
24 * 2. Redistributions in binary form must reproduce the above copyright
25 * notice, this list of conditions and the following disclaimer in
26 * the documentation and/or other materials provided with the
27 * distribution.
28 *
29 * 3. In the absence of prior written permission, the names "ICC" and "The
30 * International Color Consortium" must not be used to imply that the
31 * ICC organization endorses or promotes products derived from this
32 * software.
33 *
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
39 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the The International Color Consortium.
51 *
52 *
53 * Membership in the ICC is encouraged when this software is used for
54 * commercial purposes.
55 *
56 *
57 * For more information on The International Color Consortium, please
58 * see <http://www.color.org/>.
59 *
60 *
61 */
62
63#include <stddef.h>
64
65/* Header file guard bands */
66#ifndef _ICCDEFS_H
67#define _ICCDEFS_H
68
69#pragma pack(4)
70
71//Get any platform specific prototypes
72#include "IccProfLibConf.h"
73
74#ifdef USEREFICCMAXNAMESPACE
75namespace refIccMAX {
76#endif
77
78//Include the standard icProfileHeader definition file
79#include "icProfileHeader.h"
80
81//Definitions used for conversion of fixed floating point numbers
84
85/**
86* Additional convenience color space signatures to distinguish between device
87* encoding and PCS encoding.
88*
89* Device encoding of these color spaces is left to the device to define.
90*/
91#define icSigDevLabData ((icColorSpaceSignature) 0x644C6162) /* 'dLab' */
92#define icSigDevXYZData ((icColorSpaceSignature) 0x6458595A) /* 'dXYZ' */
93
94
95/**
96* All floating point operations/variables in IccProfLib use the icFloatNumber data type.
97* It was found that using float instead of double increased performance. Changing
98* the definition to double will add greater precision at the cost of performance.
99*/
100typedef float icFloatNumber;
101
102/** String formating macros need to match precision of icFloatNumber
103*If precision is double change the "f" below to "lf"
104*/
105#define ICFLOATSFX "f"
106#define ICFLOATFMT "%f"
107
108/* For string operations */
109typedef char icChar;
110typedef unsigned char icUChar; /*For Utf8 encoding*/
111typedef unsigned short icUChar16; /*For Utf16 encoding*/
112
113#ifdef WIN32
114typedef wchar_t icWChar;
115#endif
116
117/* Validation Status values */
118typedef enum {
119 icValidateOK, /*Profile is valid and conforms to specification*/
120 icValidateWarning, /*Profile conforms to specification with concerns*/
121 icValidateNonCompliant, /*Profile does not conform to specification, but may still be useable*/
122 icValidateCriticalError, /*Profile does not conform to specification and is not useable*/
124
125
126#pragma pack()
127
128#ifdef USEREFICCMAXNAMESPACE
129} //namespace refIccMAX
130#endif
131
132#endif /* _ICCDEFS_H */
133
134
135
unsigned char icUChar
Definition IccDefs.h:110
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
icUInt16Number icU1Fixed15Number
Definition IccDefs.h:82
icUInt16Number icU8Fixed8Number
Definition IccDefs.h:83
char icChar
Definition IccDefs.h:109
unsigned short icUChar16
Definition IccDefs.h:111
icValidateStatus
Definition IccDefs.h:118
@ icValidateOK
Definition IccDefs.h:119
@ icValidateWarning
Definition IccDefs.h:120
@ icValidateCriticalError
Definition IccDefs.h:122
@ icValidateNonCompliant
Definition IccDefs.h:121
File: IccProfLibConf.h.
File: icProfileHeader.h.
unsigned short icUInt16Number