我正在使用Delphi和DirectX。我想要一个IDirect3DVertexBuffer9的动态数组。可能吗?如果是,那么如何?
我已经为它写了一个代码。但是,它似乎有问题。我的代码如下所示 -
totalBuffer := 4;
SetLength(g_pVB,totalBuffer);
for cnt := 0 to totalBuffer - 1 do begin
if FAILED(g_pd3dDevice.CreateVertexBuffer(1 * SizeOf(TD3DXVector3),
0, D3DFVF_XYZ,
D3DPOOL_DEFAULT, g_pVB[cnt], nil)) then begin
Result := E_FAIL;
Exit;
end;
if FAILED(g_pVB[cnt].Lock(0, 0, Pointer(pVert[cnt]), 0)) then begin
Result := E_FAIL;
Exit;
end;
pVert[cnt] := 0;
end;
这里,我遇到的问题是,一旦它进入for循环,它继续并且当cnt
值为4时不退出循环。如果我在for循环而不是totalBuffer中写静态值3当值为4时将退出循环。