Hi all,
here's an example rendering an tri using DX vertexbuffers. It runs without errors (good) but without a rendered tri (bad). The data copied to the buffer should be ok cause using them in a DrawPrimitive works well.
Any clue what's going wrong here?
Happy Eve and a good new year to everyone!
Jake
here's an example rendering an tri using DX vertexbuffers. It runs without errors (good) but without a rendered tri (bad). The data copied to the buffer should be ok cause using them in a DrawPrimitive works well.
Any clue what's going wrong here?
Graphics 800,600,0,0 'Type D3DVERTEXBUFFERDESC ' Field dwSize ' Field dwCaps ' Field dwFVF ' Field dwNumVertices 'End Type Global result:Int Global verts:Float[12] Global pverts:Byte Ptr Global d3dVertexBuffer:IDirect3DVertexBuffer7 Global desc:D3DVERTEXBUFFERDESC = New D3DVERTEXBUFFERDESC pVerts = verts global vi:Int Ptr=Int Ptr(pverts) verts[0]=100 verts[1]=100 verts[2]=0 vi[3]=$FFFFFFFF verts[4]=200 verts[5]=100 verts[6]=0 vi[7]=$FFFFFFFF verts[8]=150 verts[9]=150 verts[10]=0 vi[11]=$FFFFFFFF desc.dwSize =SizeOf(desc) desc.dwNumVertices = 3 desc.dwFVF = D3DFVF_XYZ | D3DFVF_DIFFUSE desc.dwCaps = D3DVBCAPS_WRITEONLY result=9999 result=D3D7GraphicsDriver().Direct3D7().CreateVertexBuffer(desc,varptr(d3dVertexBuffer),0) Print "Create = "+result result=9999 global bufsize% global pbuf:Int ptr=varptr(bufsize) result=d3dVertexBuffer.lock(DDLOCK_WAIT|DDLOCK_WRITEONLY,pverts,pbuf) Print "Lock = "+result+" => buffersize: "+bufsize print "copying "+sizeof(verts)+" bytes to buffer" verts[0]=100 verts[1]=100 verts[2]=0 vi[3]=$FFFFFFFF verts[4]=300 verts[5]=100 verts[6]=0 vi[7]=$FFFFFFFF verts[8]=200 verts[9]=200 verts[10]=0 vi[11]=$FFFFFFFF MemCopy(pverts,verts,sizeof(verts)) MemCopy(verts,pverts,sizeof(verts)) result=9999 result=d3dVertexBuffer.Unlock() Print "Unlock = "+result result=9999 result=D3D7GraphicsDriver().Direct3DDevice7().DrawPrimitiveVB(D3DPT_TRIANGLELIST,d3dVertexBuffer,0,3,0) print "Draw = "+result 'This is working: 'D3D7GraphicsDriver().Direct3DDevice7().DrawPrimitive (D3DPT_TRIANGLELIST, D3DFVF_XYZ | D3DFVF_DIFFUSE, pverts,3,0) Flip waitkey() end
Happy Eve and a good new year to everyone!
Jake