xcms.pp 15 KB

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