So, after a while reading tutorials n'stuff I deceided to update my engine so it will support shadow mapping.

But now I'm a little stuck

This code is NOT from me, but I want it to work with my engine
[pascal]constructor TD3DMeshShadow.Create(C:IDirect3DDevice9; _mesh:TD3DXMesh; _light:TD3DXVector3);
var i:integer;

begin
Canvas:=C;
Mesh:=_Mesh;
light:=_Light;

mesh.Mesh.LockVertexBuffer(0, Pointer(pVertices));
mesh.Mesh.LockIndexBuffer(0, Pointer(pIndices));
numFaces:=mesh.Mesh.GetNumFaces;

etLength(pEdges, NumFaces*3);
NumEdges:=0;

loclight:=light;

for i:=0 to NumFaces-1 do begin

wFace0:=pIndices[3*i+0];
wFace1:=pIndices[3*i+1];
wFace2:=pIndices[3*i+2];

v0:=pVertices[wFace0].position;
v1:=pVertices[wFace1].position;
v2:=pVertices[wFace2].position;

D3DXVec3Subtract(vCross1,v2,v1);
D3DXVec3Subtract(vCross2,v1,v0);
D3DXVec3Cross(vNormal,vCross1,vCross2);

if D3DXVec3Dot(vNormal,loclight)>=0.0 then begin
AddEdge(pEdges,NumEdges,wFace0,wFace1);
AddEdge(pEdges,NumEdges,wFace1,wFace2);
AddEdge(pEdges,NumEdges,wFace2,wFace0);
end;
end;

NumVertices:=0;
D3DXVec3Scale(v001,loclight,10);
for i:=0 to NumEdges-1 do begin
v1:=pVertices[pEdges[2*i+0]].position;
v2:=pVertices[pEdges[2*i+1]].position;

D3DXVec3Subtract(v3,v1,v001);
D3DXVec3Subtract(v4,v2,v001);

m_pVertices[NumVertices]:=v1; inc(NumVertices);
m_pVertices[NumVertices]:=v2; inc(NumVertices);
m_pVertices[NumVertices]:=v3; inc(NumVertices);

m_pVertices[NumVertices]:=v2; inc(NumVertices);
m_pVertices[NumVertices]:=v4; inc(NumVertices);
m_pVertices[NumVertices]:=v3; inc(NumVertices);
end;

vb.Lock(0, NumVertices, zeiger, D3DLoCK_DISCARD);
Move(m_pVertices, zeiger^, NumVertices*SizeOf(TD3DXVector3));
vb.Unlock;

setLength(pEdges, 0);

mesh.Mesh.UnlockVertexBuffer;
mesh.Mesh.UnlockIndexBuffer;
end; [/pascal]

This piece of code uses Lock/Unlock an Index buffer within a TD3DXMesh. My engine supports only my own mesh formats, so how can I adapt this code to work only with vertex buffers or where do the indices come from?

Here are the resources I got it from:
Delphi Code:
http://www.delphidev.de/phpBB2/viewt...er=asc&start=0

c++ code:
http://www.codesampler.com/dx9src/dx..._shadow_volume