xcms.pp 15 KB

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