mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 08:39:33 +02:00
372 lines
14 KiB
ObjectPascal
372 lines
14 KiB
ObjectPascal
unit xcms;
|
|
interface
|
|
uses
|
|
x,xlib;
|
|
|
|
{$LinkLib c}
|
|
{$LinkLib X11}
|
|
|
|
{
|
|
Automatically converted by H2Pas 0.99.15 from xcms.h
|
|
The following command line parameters were used:
|
|
-p
|
|
-T
|
|
-S
|
|
-d
|
|
-c
|
|
xcms.h
|
|
}
|
|
|
|
|
|
{$PACKRECORDS C}
|
|
|
|
|
|
const
|
|
XcmsFailure = 0;
|
|
XcmsSuccess = 1;
|
|
XcmsSuccessWithCompression = 2;
|
|
type
|
|
PXcmsColorFormat = ^TXcmsColorFormat;
|
|
TXcmsColorFormat = dword;
|
|
function XcmsUndefinedFormat : TXcmsColorFormat;
|
|
|
|
function XcmsCIEXYZFormat : TXcmsColorFormat;
|
|
|
|
function XcmsCIEuvYFormat : TXcmsColorFormat;
|
|
|
|
function XcmsCIExyYFormat : TXcmsColorFormat;
|
|
|
|
function XcmsCIELabFormat : TXcmsColorFormat;
|
|
|
|
function XcmsCIELuvFormat : TXcmsColorFormat;
|
|
|
|
function XcmsTekHVCFormat : TXcmsColorFormat;
|
|
|
|
function XcmsRGBFormat : TXcmsColorFormat;
|
|
|
|
function XcmsRGBiFormat : TXcmsColorFormat;
|
|
|
|
|
|
const
|
|
XcmsInitNone = $00;
|
|
XcmsInitSuccess = $01;
|
|
XcmsInitFailure = $ff;
|
|
{$ifdef MACROS}
|
|
function DisplayOfCCC(ccc : longint) : longint;
|
|
|
|
function ScreenNumberOfCCC(ccc : longint) : longint;
|
|
|
|
function VisualOfCCC(ccc : longint) : longint;
|
|
|
|
function ClientWhitePointOfCCC(ccc : longint) : longint;
|
|
|
|
function ScreenWhitePointOfCCC(ccc : longint) : longint;
|
|
|
|
function FunctionSetOfCCC(ccc : longint) : longint;
|
|
{$endif MACROS}
|
|
|
|
type
|
|
|
|
PXcmsFloat = ^TXcmsFloat;
|
|
TXcmsFloat = double;
|
|
|
|
PXcmsRGB = ^TXcmsRGB;
|
|
TXcmsRGB = record
|
|
red : word;
|
|
green : word;
|
|
blue : word;
|
|
end;
|
|
|
|
PXcmsRGBi = ^TXcmsRGBi;
|
|
TXcmsRGBi = record
|
|
red : TXcmsFloat;
|
|
green : TXcmsFloat;
|
|
blue : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsCIEXYZ = ^TXcmsCIEXYZ;
|
|
TXcmsCIEXYZ = record
|
|
X : TXcmsFloat;
|
|
Y : TXcmsFloat;
|
|
Z : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsCIEuvY = ^TXcmsCIEuvY;
|
|
TXcmsCIEuvY = record
|
|
u_prime : TXcmsFloat;
|
|
v_prime : TXcmsFloat;
|
|
Y : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsCIExyY = ^TXcmsCIExyY;
|
|
TXcmsCIExyY = record
|
|
x : TXcmsFloat;
|
|
y : TXcmsFloat;
|
|
_Y : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsCIELab = ^TXcmsCIELab;
|
|
TXcmsCIELab = record
|
|
L_star : TXcmsFloat;
|
|
a_star : TXcmsFloat;
|
|
b_star : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsCIELuv = ^TXcmsCIELuv;
|
|
TXcmsCIELuv = record
|
|
L_star : TXcmsFloat;
|
|
u_star : TXcmsFloat;
|
|
v_star : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsTekHVC = ^TXcmsTekHVC;
|
|
TXcmsTekHVC = record
|
|
H : TXcmsFloat;
|
|
V : TXcmsFloat;
|
|
C : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsPad = ^TXcmsPad;
|
|
TXcmsPad = record
|
|
pad0 : TXcmsFloat;
|
|
pad1 : TXcmsFloat;
|
|
pad2 : TXcmsFloat;
|
|
pad3 : TXcmsFloat;
|
|
end;
|
|
|
|
PXcmsColor = ^TXcmsColor;
|
|
TXcmsColor = record
|
|
spec : record
|
|
case longint of
|
|
0 : ( RGB : TXcmsRGB );
|
|
1 : ( RGBi : TXcmsRGBi );
|
|
2 : ( CIEXYZ : TXcmsCIEXYZ );
|
|
3 : ( CIEuvY : TXcmsCIEuvY );
|
|
4 : ( CIExyY : TXcmsCIExyY );
|
|
5 : ( CIELab : TXcmsCIELab );
|
|
6 : ( CIELuv : TXcmsCIELuv );
|
|
7 : ( TekHVC : TXcmsTekHVC );
|
|
8 : ( Pad : TXcmsPad );
|
|
end;
|
|
pixel : dword;
|
|
format : TXcmsColorFormat;
|
|
end;
|
|
|
|
PXcmsPerScrnInfo = ^TXcmsPerScrnInfo;
|
|
TXcmsPerScrnInfo = record
|
|
screenWhitePt : TXcmsColor;
|
|
functionSet : TXPointer;
|
|
screenData : TXPointer;
|
|
state : byte;
|
|
pad : array[0..2] of char;
|
|
end;
|
|
|
|
PXcmsCCC = ^TXcmsCCC;
|
|
|
|
TXcmsCompressionProc = function (para1:PXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;
|
|
|
|
TXcmsWhiteAdjustProc = function (para1:PXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
|
|
para6:dword; para7:PBool):TStatus;cdecl;
|
|
|
|
TXcmsCCC = record
|
|
dpy : PDisplay;
|
|
screenNumber : longint;
|
|
visual : PVisual;
|
|
clientWhitePt : TXcmsColor;
|
|
gamutCompProc : TXcmsCompressionProc;
|
|
gamutCompClientData : TXPointer;
|
|
whitePtAdjProc : TXcmsWhiteAdjustProc;
|
|
whitePtAdjClientData : TXPointer;
|
|
pPerScrnInfo : PXcmsPerScrnInfo;
|
|
end;
|
|
TXcmsCCCRec = TXcmsCCC;
|
|
PXcmsCCCRec = ^TXcmsCCCRec;
|
|
|
|
TXcmsScreenInitProc = function (para1:PDisplay; para2:longint; para3:PXcmsPerScrnInfo):TStatus;cdecl;
|
|
|
|
TXcmsScreenFreeProc = procedure (para1:TXPointer);cdecl;
|
|
|
|
TXcmsConversionProc = procedure;cdecl;
|
|
|
|
PXcmsFuncListPtr = ^TXcmsFuncListPtr;
|
|
TXcmsFuncListPtr = TXcmsConversionProc;
|
|
|
|
TXcmsParseStringProc = function (para1:Pchar; para2:PXcmsColor):longint;cdecl;
|
|
|
|
PXcmsColorSpace = ^TXcmsColorSpace;
|
|
TXcmsColorSpace = record
|
|
prefix : Pchar;
|
|
id : TXcmsColorFormat;
|
|
parseString : TXcmsParseStringProc;
|
|
to_CIEXYZ : TXcmsFuncListPtr;
|
|
from_CIEXYZ : TXcmsFuncListPtr;
|
|
inverse_flag : longint;
|
|
end;
|
|
|
|
PXcmsFunctionSet = ^TXcmsFunctionSet;
|
|
TXcmsFunctionSet = record
|
|
DDColorSpaces : ^PXcmsColorSpace;
|
|
screenInitProc : TXcmsScreenInitProc;
|
|
screenFreeProc : TXcmsScreenFreeProc;
|
|
end;
|
|
(* error
|
|
extern Status XcmsAddColorSpace (
|
|
in declaration at line 323 *)
|
|
|
|
function XcmsAddFunctionSet(para1:PXcmsFunctionSet):TStatus;cdecl;external;
|
|
function XcmsAllocColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:TXcmsColorFormat):TStatus;cdecl;external;
|
|
function XcmsAllocNamedColor(para1:PDisplay; para2:TColormap; para3:Pchar; para4:PXcmsColor; para5:PXcmsColor;
|
|
para6:TXcmsColorFormat):TStatus;cdecl;external;
|
|
function XcmsCCCOfColormap(para1:PDisplay; para2:TColormap):TXcmsCCC;cdecl;external;
|
|
function XcmsCIELabClipab(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELabClipL(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELabClipLab(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELabQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELabQueryMaxL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELabQueryMaxLC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELabQueryMinL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELabToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIELabWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
|
|
para6:dword; para7:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELuvClipL(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELuvClipLuv(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELuvClipuv(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCIELuvQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELuvQueryMaxL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELuvQueryMaxLC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELuvQueryMinL(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsCIELuvToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIELuvWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
|
|
para6:dword; para7:PBool):TStatus;cdecl;external;
|
|
function XcmsCIEXYZToCIELab(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIEXYZToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIEXYZToCIExyY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIEXYZToRGBi(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external;
|
|
function XcmsCIEuvYToCIELuv(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIEuvYToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIEuvYToTekHVC(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsCIExyYToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsClientWhitePointOfCCC(para1:TXcmsCCC):PXcmsColor;cdecl;external;
|
|
function XcmsConvertColors(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:TXcmsColorFormat; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsCreateCCC(para1:PDisplay; para2:longint; para3:PVisual; para4:PXcmsColor; para5:TXcmsCompressionProc;
|
|
para6:TXPointer; para7:TXcmsWhiteAdjustProc; para8:TXPointer):TXcmsCCC;cdecl;external;
|
|
function XcmsDefaultCCC(para1:PDisplay; para2:longint):TXcmsCCC;cdecl;external;
|
|
function XcmsDisplayOfCCC(para1:TXcmsCCC):PDisplay;cdecl;external;
|
|
function XcmsFormatOfPrefix(para1:Pchar):TXcmsColorFormat;cdecl;external;
|
|
procedure XcmsFreeCCC(para1:TXcmsCCC);cdecl;external;
|
|
function XcmsLookupColor(para1:PDisplay; para2:TColormap; para3:Pchar; para4:PXcmsColor; para5:PXcmsColor;
|
|
para6:TXcmsColorFormat):TStatus;cdecl;external;
|
|
function XcmsPrefixOfFormat(para1:TXcmsColorFormat):Pchar;cdecl;external;
|
|
function XcmsQueryBlack(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsQueryBlue(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsQueryColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:TXcmsColorFormat):TStatus;cdecl;external;
|
|
function XcmsQueryColors(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:dword; para5:TXcmsColorFormat):TStatus;cdecl;external;
|
|
function XcmsQueryGreen(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsQueryRed(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsQueryWhite(para1:TXcmsCCC; para2:TXcmsColorFormat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsRGBiToCIEXYZ(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external;
|
|
function XcmsRGBiToRGB(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external;
|
|
function XcmsRGBToRGBi(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:PBool):TStatus;cdecl;external;
|
|
function XcmsScreenNumberOfCCC(para1:TXcmsCCC):longint;cdecl;external;
|
|
function XcmsScreenWhitePointOfCCC(para1:TXcmsCCC):PXcmsColor;cdecl;external;
|
|
function XcmsSetCCCOfColormap(para1:PDisplay; para2:TColormap; para3:TXcmsCCC):TXcmsCCC;cdecl;external;
|
|
function XcmsSetCompressionProc(para1:TXcmsCCC; para2:TXcmsCompressionProc; para3:TXPointer):TXcmsCompressionProc;cdecl;external;
|
|
function XcmsSetWhiteAdjustProc(para1:TXcmsCCC; para2:TXcmsWhiteAdjustProc; para3:TXPointer):TXcmsWhiteAdjustProc;cdecl;external;
|
|
function XcmsSetWhitePoint(para1:TXcmsCCC; para2:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsStoreColor(para1:PDisplay; para2:TColormap; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsStoreColors(para1:PDisplay; para2:TColormap; para3:PXcmsColor; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsTekHVCClipC(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsTekHVCClipV(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsTekHVCClipVC(para1:TXcmsCCC; para2:PXcmsColor; para3:dword; para4:dword; para5:PBool):TStatus;cdecl;external;
|
|
function XcmsTekHVCQueryMaxC(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsTekHVCQueryMaxV(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsTekHVCQueryMaxVC(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsTekHVCQueryMaxVSamples(para1:TXcmsCCC; para2:TXcmsFloat; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsTekHVCQueryMinV(para1:TXcmsCCC; para2:TXcmsFloat; para3:TXcmsFloat; para4:PXcmsColor):TStatus;cdecl;external;
|
|
function XcmsTekHVCToCIEuvY(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:dword):TStatus;cdecl;external;
|
|
function XcmsTekHVCWhiteShiftColors(para1:TXcmsCCC; para2:PXcmsColor; para3:PXcmsColor; para4:TXcmsColorFormat; para5:PXcmsColor;
|
|
para6:dword; para7:PBool):TStatus;cdecl;external;
|
|
function XcmsVisualOfCCC(para1:TXcmsCCC):PVisual;cdecl;external;
|
|
|
|
|
|
implementation
|
|
|
|
function XcmsUndefinedFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsUndefinedFormat:=TXcmsColorFormat($00000000);
|
|
end;
|
|
|
|
function XcmsCIEXYZFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsCIEXYZFormat:=TXcmsColorFormat($00000001);
|
|
end;
|
|
|
|
function XcmsCIEuvYFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsCIEuvYFormat:=TXcmsColorFormat($00000002);
|
|
end;
|
|
|
|
function XcmsCIExyYFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsCIExyYFormat:=TXcmsColorFormat($00000003);
|
|
end;
|
|
|
|
function XcmsCIELabFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsCIELabFormat:=TXcmsColorFormat($00000004);
|
|
end;
|
|
|
|
function XcmsCIELuvFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsCIELuvFormat:=TXcmsColorFormat($00000005);
|
|
end;
|
|
|
|
function XcmsTekHVCFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsTekHVCFormat:=TXcmsColorFormat($00000006);
|
|
end;
|
|
|
|
function XcmsRGBFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsRGBFormat:=TXcmsColorFormat($80000000);
|
|
end;
|
|
|
|
function XcmsRGBiFormat : TXcmsColorFormat;
|
|
begin
|
|
XcmsRGBiFormat:=TXcmsColorFormat($80000001);
|
|
end;
|
|
|
|
{$ifdef MACROS}
|
|
function DisplayOfCCC(ccc : longint) : longint;
|
|
begin
|
|
DisplayOfCCC:=ccc^.dpy;
|
|
end;
|
|
|
|
function ScreenNumberOfCCC(ccc : longint) : longint;
|
|
begin
|
|
ScreenNumberOfCCC:=ccc^.screenNumber;
|
|
end;
|
|
|
|
function VisualOfCCC(ccc : longint) : longint;
|
|
begin
|
|
VisualOfCCC:=ccc^.visual;
|
|
end;
|
|
|
|
function ClientWhitePointOfCCC(ccc : longint) : longint;
|
|
begin
|
|
ClientWhitePointOfCCC:=@(ccc^.clientWhitePt);
|
|
end;
|
|
|
|
function ScreenWhitePointOfCCC(ccc : longint) : longint;
|
|
begin
|
|
ScreenWhitePointOfCCC:=@(ccc^.(pPerScrnInfo^.screenWhitePt));
|
|
end;
|
|
|
|
function FunctionSetOfCCC(ccc : longint) : longint;
|
|
begin
|
|
FunctionSetOfCCC:=ccc^.(pPerScrnInfo^.functionSet);
|
|
end;
|
|
{$endif MACROS}
|
|
|
|
end.
|