libgte.pas 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. {$MODE OBJFPC}
  2. unit libgte;
  3. interface
  4. // Geometry Structures:
  5. const
  6. ONE = 4096; // GTE regards 4096 as 1.0
  7. TMPVTXNUM = 16; // Clip Function Header
  8. OUTVTXNUM = 10;
  9. type
  10. MATRIX = packed record
  11. m : array [0..2, 0..2] of smallint; // 3x3 rotation matrix
  12. t : array [0..2] of longint; // transfer vector
  13. end;
  14. PMATRIX = ^MATRIX;
  15. VECTOR = packed record // long word type 3D vector
  16. vx, vy : longint;
  17. vz, pad : longint;
  18. end;
  19. PVECTOR = ^VECTOR;
  20. SVECTOR = packed record // short word type 3D vector
  21. vx, vy : smallint;
  22. vz, pad : smallint;
  23. end;
  24. PSVECTOR = ^SVECTOR;
  25. CVECTOR = packed record // color type vector
  26. r, g, b, cd : byte;
  27. end;
  28. PCVECTOR = ^CVECTOR;
  29. DVECTOR = packed record // 2D short vector
  30. vx, vy : smallint;
  31. end;
  32. PDVECTOR = ^DVECTOR;
  33. EVECTOR = packed record
  34. v : SVECTOR; // Object(Local) 3D Vertex
  35. sxyz : VECTOR; // Screen 3D Vertex
  36. sxy : DVECTOR; // Screen 2D Vertex
  37. rgb : CVECTOR; // Vertex Color Data
  38. txuv, pad : smallint; // Texture Mapping Data
  39. chx, chy : longint; // Clip Window Data
  40. end;
  41. PEVECTOR = ^EVECTOR;
  42. PPEVECTOR = ^PEVECTOR;
  43. RVECTOR = packed record // division vertex data vector
  44. v : SVECTOR;
  45. uv : array [0..1] of byte;
  46. pad : word;
  47. c : CVECTOR;
  48. sxy : DVECTOR;
  49. sz : dword; // clip z-data
  50. end;
  51. PRVECTOR = ^RVECTOR;
  52. CRVECTOR3 = packed record // recursive vector for triangles
  53. r01, r12, r20 : RVECTOR;
  54. r0, r1, r2 : PRVECTOR;
  55. rtn : pdword;
  56. end;
  57. DIVPOLYGON3 = packed record // division buffer for triangles
  58. ndiv : dword; // number of divisions
  59. pih, piv : dword; // clipping area
  60. clut, tpage : word;
  61. rgbc : CVECTOR;
  62. ot : pdword;
  63. r0, r1, r2 : RVECTOR;
  64. cr : array [0..4] of CRVECTOR3;
  65. end;
  66. CRVECTOR4 = packed record // recursive vector for four-sided polygons
  67. r01, r02, r31, r32, rc : RVECTOR;
  68. r0, r1, r2, r3 : PRVECTOR;
  69. rtn : pdword;
  70. end;
  71. DIVPOLYGON4 = packed record // division buffer for four-sided polygons
  72. ndiv : dword; // number of divisions
  73. pih, piv : dword; // clipping area
  74. clut, tpage : word;
  75. rgbc : CVECTOR;
  76. ot : pdword;
  77. r0, r1, r2, r3 : RVECTOR;
  78. cr : array [0..4] of CRVECTOR4;
  79. end;
  80. SPOL = packed record
  81. xy : array [0..2] of smallint;
  82. uv : array [0..1] of smallint;
  83. rgb : array [0..2] of smallint;
  84. end;
  85. PSPOL = ^SPOL;
  86. POL4 = packed record // polygon: 41 bytes/1 polygon
  87. sxy : array [0..3, 0..1] of smallint; //0..7
  88. sz : array [0..3, 0..1] of smallint; // 8..15sz[][1] is dummy
  89. uv : array [0..3, 0..1] of smallint; // 16..23
  90. rgb : array [0..3, 0..2] of smallint; // 23..34
  91. code : smallint; // 35... F4:5, TF4:6, G4:7, TG4:8
  92. end;
  93. PPOL4 = ^POL4;
  94. POL3 = packed record
  95. sxy : array [0..2, 0..1] of smallint;
  96. sz : array [0..2, 0..1] of smallint; // sz[][1] is dummy
  97. uv : array [0..2, 0..1] of smallint;
  98. rgb : array [0..2, 0..2] of smallint;
  99. code : smallint; // F3:1, TF3:2, G3:3, TG3:4
  100. end;
  101. PPOL3 = ^POL3;
  102. TMESH = packed record
  103. v : PSVECTOR; // shared vertices
  104. n : PSVECTOR; // shared normals
  105. u : PSVECTOR; // shared texture addresses
  106. c : PCVECTOR; // shared colors
  107. len : dword; // mesh length(=#vertex)
  108. end;
  109. QMESH = packed record
  110. v : PSVECTOR; // shared vertices
  111. n : PSVECTOR; // shared normals
  112. u : PSVECTOR; // shared texture addresses
  113. c : PCVECTOR; // shared colors
  114. lenv : dword; // mesh length_V(=#vertex_V)
  115. lenh : dword; // mesh length_H(=#vertex_H)
  116. end;
  117. procedure InitGeom; stdcall; external;
  118. procedure EigenMatrix(m, t: PMATRIX); stdcall; external;
  119. function IsIdMatrix(m: PMATRIX): longint; stdcall; external;
  120. function MulMatrix0(m0, m1, m2: PMATRIX): PMATRIX; stdcall; external;
  121. function MulRotMatrix0(m0, m1: PMATRIX): PMATRIX; stdcall; external;
  122. function MulMatrix(m0, m1: PMATRIX): PMATRIX; stdcall; external;
  123. function MulMatrix2(m0, m1: PMATRIX): PMATRIX; stdcall; external;
  124. function MulRotMatrix(m0: PMATRIX): PMATRIX; stdcall; external;
  125. function SetMulMatrix(m0, m1: PMATRIX): PMATRIX; stdcall; external;
  126. function SetMulRotMatrix(m0: PMATRIX): PMATRIX; stdcall; external;
  127. function ApplyMatrix(m: PMATRIX; v0: PSVECTOR; v1: PVECTOR): PVECTOR; stdcall; external;
  128. function ApplyRotMatrix(v0: PSVECTOR; v1: PVECTOR): PVECTOR; stdcall; external;
  129. function ApplyRotMatrixLV(v0, v1: PVECTOR): PVECTOR; stdcall; external;
  130. function ApplyMatrixLV(m: PMATRIX; v0, v1: PVECTOR): PVECTOR; stdcall; external;
  131. function ApplyMatrixSV(m: PMATRIX; v0, v1: PSVECTOR): PSVECTOR; stdcall; external;
  132. function ApplyTransposeMatrixLV(m: PMATRIX; v0, v1: PVECTOR): PVECTOR; stdcall; external;
  133. function RotMatrix(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  134. function RotMatrixXZY(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  135. function RotMatrixYXZ(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  136. function RotMatrixYZX(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  137. function RotMatrixZXY(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  138. function RotMatrixZYX(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  139. function RotMatrix_gte(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  140. function RotMatrixYXZ_gte(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  141. function RotMatrixZYX_gte(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  142. function RotMatrixX(r: longint; m: PMATRIX): PMATRIX; stdcall; external;
  143. function RotMatrixY(r: longint; m: PMATRIX): PMATRIX; stdcall; external;
  144. function RotMatrixZ(r: longint; m: PMATRIX): PMATRIX; stdcall; external;
  145. function RotMatrixC(r: PSVECTOR; m: PMATRIX): PMATRIX; stdcall; external;
  146. function TransMatrix(m: PMATRIX; v: PVECTOR): PMATRIX; stdcall; external;
  147. function ScaleMatrix(m: PMATRIX; v: PVECTOR): PMATRIX; stdcall; external;
  148. function ScaleMatrixL(m: PMATRIX; v: PVECTOR): PMATRIX; stdcall; external;
  149. function TransposeMatrix(m0, m1: PMATRIX): PMATRIX; stdcall; external;
  150. function CompMatrix(m0, m1, m2: PMATRIX): PMATRIX; stdcall; external;
  151. function CompMatrixLV(m0, m1, m2: PMATRIX): PMATRIX; stdcall; external;
  152. procedure MatrixNormal(m, n: PMATRIX); stdcall; external;
  153. procedure MatrixNormal_0(m, n: PMATRIX); stdcall; external;
  154. procedure MatrixNormal_1(m, n: PMATRIX); stdcall; external;
  155. procedure MatrixNormal_2(m, n: PMATRIX); stdcall; external;
  156. procedure SetRotMatrix(m: PMATRIX); stdcall; external;
  157. procedure SetLightMatrix(m: PMATRIX); stdcall; external;
  158. procedure SetColorMatrix(m: PMATRIX); stdcall; external;
  159. procedure SetTransMatrix(m: PMATRIX); stdcall; external;
  160. procedure PushMatrix; stdcall; external;
  161. procedure PopMatrix; stdcall; external;
  162. procedure ReadRotMatrix(m: PMATRIX); stdcall; external;
  163. procedure ReadLightMatrix(m: PMATRIX); stdcall; external;
  164. procedure ReadColorMatrix(m: PMATRIX); stdcall; external;
  165. procedure SetRGBcd(v: PCVECTOR); stdcall; external;
  166. procedure SetBackColor(rbk, gbk, bbk: longint); stdcall; external;
  167. procedure SetFarColor(rfc, gfc, bfc: longint); stdcall; external;
  168. procedure SetGeomOffset(ofx, ofy: longint); stdcall; external;
  169. procedure SetGeomScreen(h: longint); stdcall; external;
  170. procedure ReadSZfifo3(sz0, sz1, sz2: plongint); stdcall; external;
  171. procedure ReadSZfifo4(szx, sz0, sz1, sz2: plongint); stdcall; external;
  172. procedure ReadSXSYfifo(sxy0, sxy1, sxy2: plongint); stdcall; external;
  173. procedure ReadRGBfifo(v0, v1, v2: PCVECTOR); stdcall; external;
  174. procedure ReadGeomOffset(ofx, ofy: plongint); stdcall; external;
  175. function ReadGeomScreen: longint; stdcall; external;
  176. procedure TransRot_32(v0, v1: PVECTOR; flag: plongint); stdcall; external;
  177. function TransRotPers(v0: PSVECTOR; sxy: plongint; p: plongint; flag: plongint): longint; stdcall; external;
  178. function TransRotPers3(v0, v1, v2: PSVECTOR; sxy0, sxy1, sxy2: plongint; p: plongint; flag: plongint): longint; stdcall; external;
  179. //procedure pers_map(abuf: longint; vertex: pointer; int tex[4][2], u_short *dtext); stdcall; external;
  180. procedure PhongLine(istart_x, iend_x: longint; p, q: longint; pixx: pointer; fs, ft, i4, det: longint); stdcall; external;
  181. function RotTransPers(v0: PSVECTOR; sxy, p, flag: plongint): longint; stdcall; external;
  182. function RotTransPers3(v0, v1, v2: PSVECTOR; sxy0, sxy1, sxy2: plongint; p: plongint; flag: plongint): longint; stdcall; external;
  183. procedure RotTrans(v0: PSVECTOR; v1: PVECTOR; flag: plongint); stdcall; external;
  184. procedure RotTransSV(v0, v1: PSVECTOR; flag: plongint); stdcall; external;
  185. procedure LocalLight(v0: PSVECTOR; v1: PVECTOR); stdcall; external;
  186. procedure LightColor(v0, v1: PVECTOR); stdcall; external;
  187. procedure DpqColorLight(v0: PVECTOR; v1: PCVECTOR; p: longint; v2: PCVECTOR); stdcall; external;
  188. procedure DpqColor(v0: PCVECTOR; p: longint; v1: PCVECTOR); stdcall; external;
  189. procedure DpqColor3(v0, v1, v2: PCVECTOR; p: longint; v3, v4, v5: PCVECTOR); stdcall; external;
  190. procedure Intpl(v0:PVECTOR; p: longint; v1: PCVECTOR); stdcall; external;
  191. function Square12(v0, v1: PVECTOR):PVECTOR; stdcall; external;
  192. function Square0(v0, v1: PVECTOR):PVECTOR; stdcall; external;
  193. function SquareSL12(v0: PSVECTOR; v1: PVECTOR): PVECTOR; stdcall; external;
  194. function SquareSL0(v0: PSVECTOR; v1: PVECTOR): PVECTOR; stdcall; external;
  195. function SquareSS12(v0, v1: PSVECTOR): PSVECTOR; stdcall; external;
  196. function SquareSS0(v0, v1: PSVECTOR): PSVECTOR; stdcall; external;
  197. procedure NormalColor(v0: PSVECTOR; v1: PCVECTOR); stdcall; external;
  198. procedure NormalColor3(v0, v1, v2: PSVECTOR; v3, v4, v5:PCVECTOR); stdcall; external;
  199. procedure NormalColorDpq(v0: PSVECTOR; v1: PCVECTOR; p: longint; v2: PCVECTOR); stdcall; external;
  200. procedure NormalColorDpq3(v0, v1, v2: PSVECTOR; v3: PCVECTOR; p: longint; v4, v5, v6: PCVECTOR); stdcall; external;
  201. procedure NormalColorCol(v0: PSVECTOR; v1, v2: PCVECTOR); stdcall; external;
  202. procedure NormalColorCol3(v0, v1, v2: PSVECTOR; v3, v4, v5, v6: PCVECTOR); stdcall; external;
  203. procedure ColorDpq(v0: PVECTOR; v1: PCVECTOR; p: longint; v2: PCVECTOR); stdcall; external;
  204. procedure ColorCol(v0: PVECTOR; v1, v2: PCVECTOR); stdcall; external;
  205. function NormalClip(sxy0, sxy1, sxy2: longint): longint; stdcall; external;
  206. function AverageZ3(sz0, sz1, sz2: longint): longint; stdcall; external;
  207. function AverageZ4(sz0, sz1, sz2, sz3: longint): longint; stdcall; external;
  208. procedure OuterProduct12(v0, v1, v2: PVECTOR); stdcall; external;
  209. procedure OuterProduct0(v0, v1, v2: PVECTOR); stdcall; external;
  210. function Lzc(data: longint): longint; stdcall; external;
  211. function RotTransPers4(v0, v1, v2, v3: PSVECTOR; sxy0, sxy1, sxy2, sxy3: plongint; p, flag: plongint): longint; stdcall; external;
  212. procedure RotTransPersN(v0: PSVECTOR; v1: PDVECTOR; sz: pword; p, flag: pword; n: longint); stdcall; external;
  213. procedure RotTransPers3N(v0: PSVECTOR; v1: PDVECTOR; sz: pword; flag: pword; n: longint); stdcall; external;
  214. procedure RotMeshH(Yheight: pword; Vo: PDVECTOR; sz: pword; flag: pword; Xoffset, Zoffset: smallint; m, n: smallint; base: PDVECTOR); stdcall; external;
  215. function RotAverage3(v0, v1, v2: PSVECTOR; sxy0, sxy1, sxy2: plongint; p, flag: plongint): longint; stdcall; external;
  216. function RotAverage4(v0, v1, v2, v3: PSVECTOR; sxy0, sxy1, sxy2, sxy3: plongint; p, flag: plongint): longint; stdcall; external;
  217. function RotNclip3(v0, v1, v2: PSVECTOR; sxy0, sxy1, sxy2: plongint; p, otz, flag: plongint): longint; stdcall; external;
  218. function RotNclip4(v0, v1, v2, v3: PSVECTOR; sxy0, sxy1, sxy2, sxy3: plongint; p, otz, flag: plongint): longint; stdcall; external;
  219. function RotAverageNclip3(v0, v1, v2: PSVECTOR; sxy0, sxy1, sxy2: plongint; p, otz, flag: plongint): longint; stdcall; external;
  220. function RotAverageNclip4(v0, v1, v2, v3: PSVECTOR; sxy0, sxy1, sxy2, sxy3: plongint; p, otz, flag: plongint): longint; stdcall; external;
  221. function RotColorDpq(v0, v1: PSVECTOR; v2: PCVECTOR; sxy: plongint; v3: PCVECTOR; flag: plongint): longint; stdcall; external;
  222. function RotColorDpq3(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR; sxy0, sxy1, sxy2: plongint; v7, v8, v9: PCVECTOR; flag: plongint): longint; stdcall; external;
  223. function RotAverageNclipColorDpq3(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR; sxy0, sxy1, sxy2: plongint; v7, v8, v9: PCVECTOR; otz, flag: plongint): longint; stdcall; external;
  224. function RotAverageNclipColorCol3(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR; sxy0, sxy1, sxy2: plongint; v7, v8, v9: PCVECTOR; otz, flag: plongint): longint; stdcall; external;
  225. function RotColorMatDpq(v0, v1: PSVECTOR; v2: PCVECTOR; sxy: plongint; v3: PCVECTOR; matc, flag: longint): longint; stdcall; external;
  226. procedure ColorMatDpq(v0: PSVECTOR; v1: PCVECTOR; p: longint; v2: PCVECTOR; matc: longint); stdcall; external;
  227. procedure ColorMatCol(v0: PSVECTOR; v1, v2: PCVECTOR; matc: longint); stdcall; external;
  228. procedure LoadAverage12(v0, v1: PVECTOR; p0, p1: longint; v2: PVECTOR); stdcall; external;
  229. procedure LoadAverageShort12(v0, v1: PSVECTOR; p0, p1: longint; v2: PSVECTOR); stdcall; external;
  230. procedure LoadAverage0(v0, v1: PVECTOR; p0, p1: longint; v2: PVECTOR); stdcall; external;
  231. procedure LoadAverageShort0(v0, v1: PSVECTOR; p0, p1: longint; v2: PSVECTOR); stdcall; external;
  232. procedure LoadAverageByte(v0, v1: pbyte; p0, p1: longint; v2: pbyte); stdcall; external;
  233. procedure LoadAverageCol(v0, v1: pbyte; p0, p1: longint; v2: pbyte); stdcall; external;
  234. function VectorNormal(v0, v1: PVECTOR): longint; stdcall; external;
  235. function VectorNormalS(v0: PVECTOR; v1: PSVECTOR): longint; stdcall; external;
  236. function VectorNormalSS(v0, v1: PSVECTOR): longint; stdcall; external;
  237. function SquareRoot0(a: longint): longint; stdcall; external;
  238. function SquareRoot12(a: longint): longint; stdcall; external;
  239. procedure InvSquareRoot(a: longint; b, c: plongint); stdcall; external;
  240. procedure gteMIMefunc(otp, dfp: PSVECTOR; n, p: plongint); stdcall; external;
  241. procedure SetFogFar(a, h: longint); stdcall; external;
  242. procedure SetFogNear(a, h: longint); stdcall; external;
  243. procedure SetFogNearFar(a, b, h: plongint); stdcall; external;
  244. procedure SubPol4(p: PPOL4; sp: PSPOL; ndiv: longint); stdcall; external;
  245. procedure SubPol3(p: PPOL3; sp: PSPOL; ndiv: longint); stdcall; external;
  246. function rcos(a: longint): longint; stdcall; external;
  247. function rsin(a: longint): longint; stdcall; external;
  248. function ccos(a: longint): longint; stdcall; external;
  249. function csin(a: longint): longint; stdcall; external;
  250. function cln(a: longint): longint; stdcall; external;
  251. function csqrt(a: longint): longint; stdcall; external;
  252. function catan(a: longint): longint; stdcall; external;
  253. function ratan2(y, x: longint): longint; stdcall; external;
  254. procedure RotPMD_F3(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  255. procedure RotPMD_G3(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  256. procedure RotPMD_FT3(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  257. procedure RotPMD_GT3(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  258. procedure RotPMD_F4(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  259. procedure RotPMD_G4(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  260. procedure RotPMD_FT4(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  261. procedure RotPMD_GT4(pa: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  262. procedure RotPMD_SV_F3(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  263. procedure RotPMD_SV_G3(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  264. procedure RotPMD_SV_FT3(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  265. procedure RotPMD_SV_GT3(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  266. procedure RotPMD_SV_F4(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  267. procedure RotPMD_SV_G4(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  268. procedure RotPMD_SV_FT4(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  269. procedure RotPMD_SV_GT4(pa, va: plongint; ot: pdword; otlen, id, backc: longint); stdcall; external;
  270. procedure InitClip(evbfad: PEVECTOR; hw, vw, h, _near, _far: longint); stdcall; external;
  271. function Clip3F(v0, v1, v2: PSVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  272. function Clip3FP(v0, v1, v2: PSVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  273. function Clip4F(v0, v1, v2, v3: PSVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  274. function Clip4FP(v0, v1, v2, v3: PSVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  275. function Clip3FT(v0, v1, v2: PSVECTOR; uv0, uv1, uv2: psmallint; evmx: PPEVECTOR): longint; stdcall; external;
  276. function Clip3FTP(v0, v1, v2: PSVECTOR; uv0, uv1, uv2: psmallint; evmx: PPEVECTOR): longint; stdcall; external;
  277. function Clip4FT(v0, v1, v2, v3: PSVECTOR; uv0, uv1, uv2, uv3: psmallint; evmx: PPEVECTOR): longint; stdcall; external;
  278. function Clip4FTP(v0, v1, v2, v3: PSVECTOR; uv0, uv1, uv2, uv3: psmallint; evmx: PPEVECTOR): longint; stdcall; external;
  279. function Clip3G(v0, v1, v2: PSVECTOR; rgb0, rgb1, rgb2: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  280. function Clip3GP(v0, v1, v2: PSVECTOR; rgb0, rgb1, rgb2: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  281. function Clip4G(v0, v1, v2, v3: PSVECTOR; rgb0, rgb1, rgb2, rgb3: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  282. function Clip4GP(v0, v1, v2, v3: PSVECTOR; rgb0, rgb1, rgb2, rgb3: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  283. function Clip3GT(v0, v1, v2: PSVECTOR; uv0, uv1, uv2: psmallint; rgb0, rgb1, rgb2: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  284. function Clip3GTP(v0, v1, v2: PSVECTOR; uv0, uv1, uv2: psmallint; rgb0, rgb1, rgb2: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  285. function Clip4GT(v0, v1, v2, v3: PSVECTOR; uv0, uv1, uv2, uv3: psmallint; rgb0, rgb1, rgb2, rgb3: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  286. function Clip4GTP(v0, v1, v2, v3: PSVECTOR; uv0, uv1, uv2, uv3: psmallint; rgb0, rgb1, rgb2, rgb3: PCVECTOR; evmx: PPEVECTOR): longint; stdcall; external;
  287. procedure RotTransPers_nom(v0: PSVECTOR); stdcall; external;
  288. procedure RotTransPers3_nom(v0, v1, v2: PSVECTOR); stdcall; external;
  289. procedure RotTransPers4_nom(v0, v1, v2, v3: PSVECTOR); stdcall; external;
  290. procedure RotTrans_nom(v0: PSVECTOR); stdcall; external;
  291. procedure RotAverage3_nom(v0, v1, v2: PSVECTOR); stdcall; external;
  292. procedure RotNclip3_nom(v0, v1, v2: PSVECTOR); stdcall; external;
  293. procedure RotAverageNclip3_nom(v0, v1, v2: PSVECTOR); stdcall; external;
  294. procedure RotAverageNclipColorDpq3_nom(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR); stdcall; external;
  295. procedure RotAverageNclipColorCol3_nom(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR); stdcall; external;
  296. procedure RotColorDpq_nom(v0, v1: PSVECTOR; v2: PCVECTOR); stdcall; external;
  297. function RotColorDpq3_nom(v0, v1, v2, v3, v4, v5: PSVECTOR; v6: PCVECTOR): longint; stdcall; external;
  298. procedure NormalColor_nom(v0: PSVECTOR); stdcall; external;
  299. procedure NormalColor3_nom(v0, v1, v2: PSVECTOR); stdcall; external;
  300. procedure NormalColorDpq_nom(v0: PSVECTOR; v1: PCVECTOR; p: longint); stdcall; external;
  301. procedure NormalColorDpq3_nom(v0, v1, v2: PSVECTOR; v3: PCVECTOR; p: longint); stdcall; external;
  302. procedure NormalColorCol_nom(v0: PSVECTOR; v1: PCVECTOR); stdcall; external;
  303. procedure NormalColorCol3_nom(v0, v1, v2: PSVECTOR; v3: PCVECTOR); stdcall; external;
  304. procedure RotSMD_F3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  305. procedure RotSMD_G3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  306. procedure RotSMD_FT3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  307. procedure RotSMD_GT3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  308. procedure RotSMD_F4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  309. procedure RotSMD_G4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  310. procedure RotSMD_FT4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  311. procedure RotSMD_GT4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  312. procedure RotSMD_SV_F3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  313. procedure RotSMD_SV_G3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  314. procedure RotSMD_SV_FT3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  315. procedure RotSMD_SV_GT3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  316. procedure RotSMD_SV_F4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  317. procedure RotSMD_SV_G4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  318. procedure RotSMD_SV_FT4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  319. procedure RotSMD_SV_GT4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  320. procedure RotRMD_F3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  321. procedure RotRMD_G3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  322. procedure RotRMD_FT3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  323. procedure RotRMD_GT3(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  324. procedure RotRMD_F4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  325. procedure RotRMD_G4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  326. procedure RotRMD_FT4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  327. procedure RotRMD_GT4(pa: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  328. procedure RotRMD_SV_F3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  329. procedure RotRMD_SV_G3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  330. procedure RotRMD_SV_FT3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  331. procedure RotRMD_SV_GT3(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  332. procedure RotRMD_SV_F4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  333. procedure RotRMD_SV_G4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  334. procedure RotRMD_SV_FT4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  335. procedure RotRMD_SV_GT4(pa: plongint; va: plongint; ot: pdword; otlen, id, sclip, hclip, vclip, nclipmode: longint); stdcall; external;
  336. function p2otz(p, projection: longint): longint; stdcall; external;
  337. function otz2p(otz, projection: longint): longint; stdcall; external;
  338. implementation
  339. begin
  340. end.