我可以拥有IDirect3DVertexBuffer9的动态数组吗?

时间:2010-08-19 09:28:48

标签: delphi directx

我正在使用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时将退出循环。

1 个答案:

答案 0 :(得分:1)

您可以找到样本here。在 Cull样本,他们使用了“IDirect3DVertexBuffer数组”。