1unit xcms;
2interface
3uses
4  x,xlib;
5
6{$ifndef os2}
7  {$LinkLib c}
8  {$LinkLib X11}
9const
10  libX11='X11';
11{$else}
12const
13  libX11='X11';
14{$endif}
15
16{
17  Automatically converted by H2Pas 0.99.15 from xcms.h
18  The following command line parameters were used:
19    -p
20    -T
21    -S
22    -d
23    -c
24    xcms.h
25}
26
27
28{$PACKRECORDS C}
29
30
31const
32   XcmsFailure = 0;
33   XcmsSuccess = 1;
34   XcmsSuccessWithCompression = 2;
35type
36   PXcmsColorFormat = ^TXcmsColorFormat;
37   TXcmsColorFormat = dword;
38function XcmsUndefinedFormat : TXcmsColorFormat;
39
40function XcmsCIEXYZFormat : TXcmsColorFormat;
41
42function XcmsCIEuvYFormat : TXcmsColorFormat;
43
44function XcmsCIExyYFormat : TXcmsColorFormat;
45
46function XcmsCIELabFormat : TXcmsColorFormat;
47
48function XcmsCIELuvFormat : TXcmsColorFormat;
49
50function XcmsTekHVCFormat : TXcmsColorFormat;
51
52function XcmsRGBFormat : TXcmsColorFormat;
53
54function XcmsRGBiFormat : TXcmsColorFormat;
55
56
57const
58   XcmsInitNone = $00;
59   XcmsInitSuccess = $01;
60   XcmsInitFailure = $ff;
61{$ifdef MACROS}
62function DisplayOfCCC(ccc : longint) : longint;
63
64function ScreenNumberOfCCC(ccc : longint) : longint;
65
66function VisualOfCCC(ccc : longint) : longint;
67
68function ClientWhitePointOfCCC(ccc : longint) : longint;
69
70function ScreenWhitePointOfCCC(ccc : longint) : longint;
71
72function FunctionSetOfCCC(ccc : longint) : longint;
73{$endif MACROS}
74
75type
76
77   PXcmsFloat = ^TXcmsFloat;
78   TXcmsFloat = double;
79
80   PXcmsRGB = ^TXcmsRGB;
81   TXcmsRGB = record
82        red : word;
83        green : word;
84        blue : word;
85     end;
86
87   PXcmsRGBi = ^TXcmsRGBi;
88   TXcmsRGBi = record
89        red : TXcmsFloat;
90        green : TXcmsFloat;
91        blue : TXcmsFloat;
92     end;
93
94   PXcmsCIEXYZ = ^TXcmsCIEXYZ;
95   TXcmsCIEXYZ = record
96        X : TXcmsFloat;
97        Y : TXcmsFloat;
98        Z : TXcmsFloat;
99     end;
100
101   PXcmsCIEuvY = ^TXcmsCIEuvY;
102   TXcmsCIEuvY = record
103        u_prime : TXcmsFloat;
104        v_prime : TXcmsFloat;
105        Y : TXcmsFloat;
106     end;
107
108   PXcmsCIExyY = ^TXcmsCIExyY;
109   TXcmsCIExyY = record
110        x : TXcmsFloat;
111        y : TXcmsFloat;
112        _Y : TXcmsFloat;
113     end;
114
115   PXcmsCIELab = ^TXcmsCIELab;
116   TXcmsCIELab = record
117        L_star : TXcmsFloat;
118        a_star : TXcmsFloat;
119        b_star : TXcmsFloat;
120     end;
121
122   PXcmsCIELuv = ^TXcmsCIELuv;
123   TXcmsCIELuv = record
124        L_star : TXcmsFloat;
125        u_star : TXcmsFloat;
126        v_star : TXcmsFloat;
127     end;
128
129   PXcmsTekHVC = ^TXcmsTekHVC;
130   TXcmsTekHVC = record
131        H : TXcmsFloat;
132        V : TXcmsFloat;
133        C : TXcmsFloat;
134     end;
135
136   PXcmsPad = ^TXcmsPad;
137   TXcmsPad = record
138        pad0 : TXcmsFloat;
139        pad1 : TXcmsFloat;
140        pad2 : TXcmsFloat;
141        pad3 : TXcmsFloat;
142     end;
143
144   PXcmsColor = ^TXcmsColor;
145   TXcmsColor = record
146        spec : record
147            case longint of
148               0 : ( RGB : TXcmsRGB );
149               1 : ( RGBi : TXcmsRGBi );
150               2 : ( CIEXYZ : TXcmsCIEXYZ );
151               3 : ( CIEuvY : TXcmsCIEuvY );
152               4 : ( CIExyY : TXcmsCIExyY );
153               5 : ( CIELab : TXcmsCIELab );
154               6 : ( CIELuv : TXcmsCIELuv );
155               7 : ( TekHVC : TXcmsTekHVC );
156               8 : ( Pad : TXcmsPad );
157            end;
158        pixel : dword;
159        format : TXcmsColorFormat;
160     end;
161
162   PXcmsPerScrnInfo = ^TXcmsPerScrnInfo;
163   TXcmsPerScrnInfo = record
164        screenWhitePt : TXcmsColor;
165        functionSet : TXPointer;
166        screenData : TXPointer;
167        state : byte;
168        pad : array[0..2] of char;
169     end;
170
171   PXcmsCCC = ^TXcmsCCC;
172
173   TXcmsCompressionProc = function (para1:PXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;
174
175   TXcmsWhiteAdjustProc = function (para1:PXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
176                para6:dword; para7:PBool):TStatus;cdecl;
177
178   TXcmsCCC = record
179        dpy : PDisplay;
180        screenNumber : longint;
181        visual : PVisual;
182        clientWhitePt : TXcmsColor;
183        gamutCompProc : TXcmsCompressionProc;
184        gamutCompClientData : TXPointer;
185        whitePtAdjProc : TXcmsWhiteAdjustProc;
186        whitePtAdjClientData : TXPointer;
187        pPerScrnInfo : PXcmsPerScrnInfo;
188     end;
189   TXcmsCCCRec = TXcmsCCC;
190   PXcmsCCCRec = ^TXcmsCCCRec;
191
192   TXcmsScreenInitProc = function (para1:PDisplay; para2:longint; para3:PXcmsPerScrnInfo):TStatus;cdecl;
193
194   TXcmsScreenFreeProc = procedure (para1:TXPointer);cdecl;
195
196   TXcmsConversionProc = procedure;cdecl;
197
198       PXcmsFuncListPtr = ^TXcmsFuncListPtr;
199       TXcmsFuncListPtr = TXcmsConversionProc;
200
201       TXcmsParseStringProc = function (para1:Pchar; para2:PXcmsColor):longint;cdecl;
202
203       PXcmsColorSpace = ^TXcmsColorSpace;
204       TXcmsColorSpace = record
205            prefix : Pchar;
206            id : TXcmsColorFormat;
207            parseString : TXcmsParseStringProc;
208            to_CIEXYZ : TXcmsFuncListPtr;
209            from_CIEXYZ : TXcmsFuncListPtr;
210            inverse_flag : longint;
211         end;
212
213       PXcmsFunctionSet = ^TXcmsFunctionSet;
214       TXcmsFunctionSet = record
215            DDColorSpaces : ^PXcmsColorSpace;
216            screenInitProc : TXcmsScreenInitProc;
217            screenFreeProc : TXcmsScreenFreeProc;
218         end;
219(* error
220extern Status XcmsAddColorSpace (
221in declaration at line 323 *)
222
223function XcmsAddFunctionSet(para1:PXcmsFunctionSet):TStatus;cdecl;external libX11;
224function XcmsAllocColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:TXcmsColorFormat):TStatus;cdecl;external libX11;
225function XcmsAllocNamedColor(para1:PDisplay; para2:TColormap; para3:Pchar; para4:PXcmsColor; para5:PXcmsColor;
226               para6:TXcmsColorFormat):TStatus;cdecl;external libX11;
227function XcmsCCCOfColormap(para1:PDisplay; para2:TColormap):TXcmsCCC;cdecl;external libX11;
228function XcmsCIELabClipab(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
229function XcmsCIELabClipL(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
230function XcmsCIELabClipLab(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
231function XcmsCIELabQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
232function XcmsCIELabQueryMaxL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
233function XcmsCIELabQueryMaxLC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external libX11;
234function XcmsCIELabQueryMinL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
235function XcmsCIELabToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
236function XcmsCIELabWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
237               para6:dword; para7:PBool):TStatus;cdecl;external libX11;
238function XcmsCIELuvClipL(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
239function XcmsCIELuvClipLuv(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
240function XcmsCIELuvClipuv(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
241function XcmsCIELuvQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
242function XcmsCIELuvQueryMaxL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
243function XcmsCIELuvQueryMaxLC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external libX11;
244function XcmsCIELuvQueryMinL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
245function XcmsCIELuvToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
246function XcmsCIELuvWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
247               para6:dword; para7:PBool):TStatus;cdecl;external libX11;
248function XcmsCIEXYZToCIELab(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
249function XcmsCIEXYZToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
250function XcmsCIEXYZToCIExyY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
251function XcmsCIEXYZToRGBi(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external libX11;
252function XcmsCIEuvYToCIELuv(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
253function XcmsCIEuvYToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
254function XcmsCIEuvYToTekHVC(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
255function XcmsCIExyYToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
256function XcmsClientWhitePointOfCCC(para1:TXcmsCCC):PXcmsColor;cdecl;external libX11;
257function XcmsConvertColors(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:TXcmsColorFormat; para5:PBool):TStatus;cdecl;external libX11;
258function XcmsCreateCCC(para1:PDisplay; para2:longint; para3:PVisual; para4:PXcmsColor; para5:TXcmsCompressionProc;
259               para6:TXPointer; para7:TXcmsWhiteAdjustProc; para8:TXPointer):TXcmsCCC;cdecl;external libX11;
260function XcmsDefaultCCC(para1:PDisplay; para2:longint):TXcmsCCC;cdecl;external libX11;
261function XcmsDisplayOfCCC(para1:TXcmsCCC):PDisplay;cdecl;external libX11;
262function XcmsFormatOfPrefix(para1:Pchar):TXcmsColorFormat;cdecl;external libX11;
263procedure XcmsFreeCCC(para1:TXcmsCCC);cdecl;external libX11;
264function XcmsLookupColor(para1:PDisplay; para2:TColormap; para3:Pchar; para4:PXcmsColor; para5:PXcmsColor;
265               para6:TXcmsColorFormat):TStatus;cdecl;external libX11;
266function XcmsPrefixOfFormat(para1:TXcmsColorFormat):Pchar;cdecl;external libX11;
267function XcmsQueryBlack(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external libX11;
268function XcmsQueryBlue(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external libX11;
269function XcmsQueryColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:TXcmsColorFormat):TStatus;cdecl;external libX11;
270function XcmsQueryColors(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:dword; para5:TXcmsColorFormat):TStatus;cdecl;external libX11;
271function XcmsQueryGreen(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external libX11;
272function XcmsQueryRed(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external libX11;
273function XcmsQueryWhite(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external libX11;
274function XcmsRGBiToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external libX11;
275function XcmsRGBiToRGB(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external libX11;
276function XcmsRGBToRGBi(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external libX11;
277function XcmsScreenNumberOfCCC(para1:TXcmsCCC):longint;cdecl;external libX11;
278function XcmsScreenWhitePointOfCCC(para1:TXcmsCCC):PXcmsColor;cdecl;external libX11;
279function XcmsSetCCCOfColormap(para1:PDisplay; para2:TColormap; para3:TXcmsCCC):TXcmsCCC;cdecl;external libX11;
280function XcmsSetCompressionProc(para1:TXcmsCCC; para2:TXcmsCompressionProc; para3:TXPointer):TXcmsCompressionProc;cdecl;external libX11;
281function XcmsSetWhiteAdjustProc(para1:TXcmsCCC; para2:TXcmsWhiteAdjustProc; para3:TXPointer):TXcmsWhiteAdjustProc;cdecl;external libX11;
282function XcmsSetWhitePoint(para1:TXcmsCCC; para2:PXcmsColor):TStatus;cdecl;external libX11;
283function XcmsStoreColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor):TStatus;cdecl;external libX11;
284function XcmsStoreColors(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
285function XcmsTekHVCClipC(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
286function XcmsTekHVCClipV(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
287function XcmsTekHVCClipVC(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external libX11;
288function XcmsTekHVCQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
289function XcmsTekHVCQueryMaxV(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
290function XcmsTekHVCQueryMaxVC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external libX11;
291function XcmsTekHVCQueryMaxVSamples(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
292function XcmsTekHVCQueryMinV(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external libX11;
293function XcmsTekHVCToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external libX11;
294function XcmsTekHVCWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
295               para6:dword; para7:PBool):TStatus;cdecl;external libX11;
296function XcmsVisualOfCCC(para1:TXcmsCCC):PVisual;cdecl;external libX11;
297
298
299implementation
300
301function XcmsUndefinedFormat : TXcmsColorFormat;
302  begin
303     XcmsUndefinedFormat:=TXcmsColorFormat($00000000);
304  end;
305
306function XcmsCIEXYZFormat : TXcmsColorFormat;
307  begin
308     XcmsCIEXYZFormat:=TXcmsColorFormat($00000001);
309  end;
310
311function XcmsCIEuvYFormat : TXcmsColorFormat;
312  begin
313     XcmsCIEuvYFormat:=TXcmsColorFormat($00000002);
314  end;
315
316function XcmsCIExyYFormat : TXcmsColorFormat;
317  begin
318     XcmsCIExyYFormat:=TXcmsColorFormat($00000003);
319  end;
320
321function XcmsCIELabFormat : TXcmsColorFormat;
322  begin
323     XcmsCIELabFormat:=TXcmsColorFormat($00000004);
324  end;
325
326function XcmsCIELuvFormat : TXcmsColorFormat;
327  begin
328     XcmsCIELuvFormat:=TXcmsColorFormat($00000005);
329  end;
330
331function XcmsTekHVCFormat : TXcmsColorFormat;
332  begin
333     XcmsTekHVCFormat:=TXcmsColorFormat($00000006);
334  end;
335
336function XcmsRGBFormat : TXcmsColorFormat;
337  begin
338     XcmsRGBFormat:=TXcmsColorFormat($80000000);
339  end;
340
341function XcmsRGBiFormat : TXcmsColorFormat;
342  begin
343     XcmsRGBiFormat:=TXcmsColorFormat($80000001);
344  end;
345
346{$ifdef MACROS}
347function DisplayOfCCC(ccc : longint) : longint;
348begin
349   DisplayOfCCC:=ccc^.dpy;
350end;
351
352function ScreenNumberOfCCC(ccc : longint) : longint;
353begin
354   ScreenNumberOfCCC:=ccc^.screenNumber;
355end;
356
357function VisualOfCCC(ccc : longint) : longint;
358begin
359   VisualOfCCC:=ccc^.visual;
360end;
361
362function ClientWhitePointOfCCC(ccc : longint) : longint;
363begin
364   ClientWhitePointOfCCC:=@(ccc^.clientWhitePt);
365end;
366
367function ScreenWhitePointOfCCC(ccc : longint) : longint;
368begin
369   ScreenWhitePointOfCCC:=@(ccc^.(pPerScrnInfo^.screenWhitePt));
370end;
371
372function FunctionSetOfCCC(ccc : longint) : longint;
373begin
374   FunctionSetOfCCC:=ccc^.(pPerScrnInfo^.functionSet);
375end;
376{$endif MACROS}
377
378end.
379