IvanJ147
25-11-2011 14:08:17
Hi all,
I have to extract data from index and vertex buffers in vb.net.
Now, I have found for example this function in C#:
..but there's a problem.. in vb.net there aren't pointers!!
Is there another way to access the buffers?
I have to extract data from index and vertex buffers in vb.net.
Now, I have found for example this function in C#:
private unsafe uint ReadVertexData(uint vertexOffset, VertexData vertexData)
{
VertexElement posElem = vertexData.vertexDeclaration.FindElementBySemantic(VertexElementSemantic.VES_POSITION);
HardwareVertexBufferSharedPtr vertexBuffer = vertexData.vertexBufferBinding.GetBuffer(posElem.Source);
byte* vertexMemory = (byte*)vertexBuffer.Lock(HardwareBuffer.LockOptions.HBL_READ_ONLY);
float* pElem;
for (uint i = 0; i < vertexData.vertexCount; i++)
{
posElem.BaseVertexPointerToElement(vertexMemory, &pElem);
Vector3 point = new Vector3(pElem[0], pElem[1], pElem[2]);
vertices[vertexOffset] = point * this.scale;
vertexMemory += vertexBuffer.VertexSize;
vertexOffset++;
}
vertexBuffer.Unlock();
return vertexOffset;
}
..but there's a problem.. in vb.net there aren't pointers!!
Is there another way to access the buffers?