|
@@ -31,14 +31,18 @@ procedure DoTesselate(Vertexes: TGLAffineVectorList; Mesh: TGLBaseMesh;
|
|
|
implementation
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
+{$IFDEF USE_MULTITHREAD}
|
|
|
+threadvar
|
|
|
+{$ELSE}
|
|
|
var
|
|
|
+{$ENDIF}
|
|
|
TessMesh: TGLMeshObject;
|
|
|
TessFace: TFGIndexTexCoordList;
|
|
|
TessVerticesCount, TessExtraVertices: Integer;
|
|
|
TessVertices: PAffineVectorArray;
|
|
|
|
|
|
procedure DoTessBegin(mode: Cardinal);
|
|
|
-{$IFDEF Win32} stdcall;{$ENDIF}{$IFDEF UNIX} cdecl;{$ENDIF}
|
|
|
+{$IFDEF MSWINDOWS} stdcall;{$ELSE} cdecl;{$ENDIF}
|
|
|
begin
|
|
|
TessFace := TFGIndexTexCoordList.CreateOwned(TessMesh.FaceGroups);
|
|
|
case mode of
|
|
@@ -49,18 +53,18 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure DoTessVertex3fv(v: PAffineVector);
|
|
|
-{$IFDEF Win32} stdcall;{$ENDIF}{$IFDEF UNIX} cdecl;{$ENDIF}
|
|
|
+{$IFDEF MSWINDOWS} stdcall;{$ELSE} cdecl;{$ENDIF}
|
|
|
begin
|
|
|
TessFace.Add(TessMesh.Vertices.Add(v^), 0, 0);
|
|
|
end;
|
|
|
|
|
|
procedure DoTessEnd;
|
|
|
-{$IFDEF Win32} stdcall;{$ENDIF}{$IFDEF UNIX} cdecl;{$ENDIF}
|
|
|
+{$IFDEF MSWINDOWS} stdcall;{$ELSE} cdecl;{$ENDIF}
|
|
|
begin
|
|
|
end;
|
|
|
|
|
|
procedure DoTessError(errno: Cardinal);
|
|
|
-{$IFDEF Win32} stdcall;{$ENDIF}{$IFDEF UNIX} cdecl;{$ENDIF}
|
|
|
+{$IFDEF MSWINDOWS} stdcall;{$ELSE} cdecl;{$ENDIF}
|
|
|
begin
|
|
|
Assert(False, IntToStr(errno) + ': ' + string(gluErrorString(errno)));
|
|
|
end;
|
|
@@ -80,7 +84,7 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure DoTessCombine(coords: PDoubleVector; vertex_data: Pointer; weight: PGLFloat; var outData: Pointer);
|
|
|
-{$IFDEF Win32} stdcall;{$ENDIF}{$IFDEF UNIX} cdecl;{$ENDIF}
|
|
|
+{$IFDEF MSWINDOWS} stdcall;{$ELSE} cdecl;{$ENDIF}
|
|
|
begin
|
|
|
outData := AllocNewVertex;
|
|
|
SetVector(PAffineVector(outData)^, coords[0], coords[1], coords[2]);
|