D3DIM trouble

Started by
0 comments, last by SteveBrown 23 years, 9 months ago
I have been trying to learn to use d3d im. I made a quick sample, that should render a square on the screen, but I can''t seem to get it to work. Could someone tell me if there is something I am not doing right, or not doing at all? The following is the most important parts of the program: D3DVERTEX Square[12]; Square[0].dvX = 0.0; Square[0].dvY = 0.0; Square[0].dvZ = 0.0; Square[0].dvNX = 0.0; Square[0].dvNY = 0.0; Square[0].dvNZ = 0.0; Square[1].dvX = 0.0; Square[1].dvY = 1.0; Square[1].dvZ = 0.0; Square[1].dvNX = 0.0; Square[1].dvNY = 0.0; Square[1].dvNZ = 0.0; Square[2].dvX = 1.0; Square[2].dvY = 1.0; Square[2].dvZ = 0.0; Square[2].dvNX = 0.0; Square[2].dvNY = 0.0; Square[2].dvNZ = 0.0; Square[3].dvX = 0.0; Square[3].dvY = 0.0; Square[3].dvZ = 0.0; Square[3].dvNX = 0.0; Square[3].dvNY = 0.0; Square[3].dvNZ = 0.0; Square[4].dvX = 1.0; Square[4].dvY = 0.0; Square[4].dvZ = 0.0; Square[4].dvNX = 0.0; Square[4].dvNY = 0.0; Square[4].dvNZ = 0.0; Square[5].dvX = 1.0; Square[5].dvY = 1.0; Square[5].dvZ = 0.0; Square[5].dvNX = 0.0; Square[5].dvNY = 0.0; Square[5].dvNZ = 0.0; Square[6].dvX = 0.0; Square[6].dvY = 0.0; Square[6].dvZ = 0.0; Square[6].dvNX = 0.0; Square[6].dvNY = 0.0; Square[6].dvNZ = 0.0; Square[8].dvX = 0.0; Square[8].dvY = 1.0; Square[8].dvZ = 0.0; Square[8].dvNX = 0.0; Square[8].dvNY = 0.0; Square[8].dvNZ = 0.0; Square[7].dvX = 1.0; Square[7].dvY = 1.0; Square[7].dvZ = 0.0; Square[7].dvNX = 0.0; Square[7].dvNY = 0.0; Square[7].dvNZ = 0.0; Square[9].dvX = 0.0; Square[9].dvY = 0.0; Square[9].dvZ = 0.0; Square[9].dvNX = 0.0; Square[9].dvNY = 0.0; Square[9].dvNZ = 0.0; Square[11].dvX = 1.0; Square[11].dvY = 0.0; Square[11].dvZ = 0.0; Square[11].dvNX = 0.0; Square[11].dvNY = 0.0; Square[11].dvNZ = 0.0; Square[10].dvX = 1.0; Square[10].dvY = 1.0; Square[10].dvZ = 0.0; Square[10].dvNX = 0.0; Square[10].dvNY = 0.0; Square[10].dvNZ = 0.0; D3DMATRIX matWorld, matView, matProjection; matWorld._11 = matWorld._22 = matWorld._33 = matWorld._44 = 1.0; D3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorld); matView = matWorld; matView._42 = 10.0; D3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &matView); float w, h, q; w = 0.75 * (cosf(0.375) * sinf(0.375)); h = 1.0 * (cosf(0.375) * sinf(0.375)); q = 1000.0 / (999.0); matProjection._11 = w; matProjection._22 = h; matProjection._33 = q; matProjection._34 = 1.0; matProjection._43 = -q * 1.0; D3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &matProjection); D3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, false); HRESULT hRet; RECT copyrect; copyrect.left = 0; copyrect.top = 0; copyrect.right = 640; copyrect.bottom = 480; while (!(KeyboardBuffer[DIK_ESCAPE] & 0x80)) { hRet = DIDKeyboard->GetDeviceState(sizeof(KeyboardBuffer), (LPVOID)&KeyboardBuffer); if (hRet != DI_OK) DIDKeyboard->Acquire(); D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, 0x00000000, 1.0, 0); hRet = D3DDevice->BeginScene(); if (hRet == D3D_OK) { D3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_VERTEX, &Square, 12, 0); D3DDevice->EndScene(); } hRet = DDSBack->BltFast(0, 0, DDSRender, &copyrect, 0); if (hRet != DD_OK) { DDSBack->Restore(); DDSPrimary->Restore(); DDSRender->Restore(); } hRet = DDSPrimary->Flip(NULL, 0); if (hRet != DD_OK) { DDSBack->Restore(); DDSPrimary->Restore(); DDSRender->Restore(); } } Thanks for any help!
Advertisement
You must use non zero normals for correct shading and your triangle vertexes must follow in clockwise order.

This topic is closed to new replies.

Advertisement