• Advertisement

skrug80sc

Member
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

106 Neutral

About skrug80sc

  • Rank
    Newbie
  1. Thanks Hodgman, that was exactly the issue. I made a ClientResize function for my Window class but copy pasted it from an older code file of mine that was incorrect. The copy pasta did it to me again ><
  2. Enabling the maximum multi-sampling my video card supports helped a little, but not much. I've rendered models from .X files in DirextX9 before and using device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); has never given me this issue before.
  3. I'm trying to learn how to render triangles with the DrawIndexedPrimitive function in DirectX9c. I currently have triangles rendering but they don't seem to be rendering just quite right. Here is a picture to show you what I mean: [img]http://i1208.photobucket.com/albums/cc372/skrug80sc/tri_wire.png[/img] See the pexelation? What am I doing wrong? I've attached the relative files from my project to allow further investigation: Here is the main code: WinMain.cpp [CODE] #include "WINlib.h" #include "GFXlib.h" int WINAPI WinMain(HINSTANCE cI, HINSTANCE pI, LPSTR cmd, int shw) { //instantiate window/directX9 WINPUT::Window window; GFX::Graphics graphics(window.GetHandle()); //Index/Vertex data typedef WORD Index; struct Vertex { D3DXVECTOR3 pos; D3DCOLOR color; }; D3DVERTEXELEMENT9 declaration[3] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 }, D3DDECL_END() }; //Bulid triangle Vertex vertices[] = { { D3DXVECTOR3(0, 0, 0), D3DCOLOR_XRGB(255, 0, 0) }, { D3DXVECTOR3(0, 1, 0), D3DCOLOR_XRGB(0, 255, 0) }, { D3DXVECTOR3(1, 0, 0), D3DCOLOR_XRGB(0, 0, 255) } }; Index indices[] = {0, 1, 2}; //Build Vertex Declaration and Index/Vertex buffers IDirect3DDevice9* dev = graphics.GetDevice(); IDirect3DVertexDeclaration9* dec = NULL; IDirect3DVertexBuffer9* vb = NULL; IDirect3DIndexBuffer9* ib = NULL; dev->CreateVertexDeclaration(declaration, &dec); dev->CreateVertexBuffer( sizeof(Vertex) * 3, D3DUSAGE_WRITEONLY, 0, D3DPOOL_MANAGED, &vb, NULL); dev->CreateIndexBuffer( sizeof(Index) * 3, D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &ib, NULL); //copy triangle data to Vertex/Index buffers Vertex* v = NULL; vb->Lock(0, 0, (void**)&v, 0); memcpy(v, vertices, sizeof(Vertex) * 3); vb->Unlock(); Index* i = NULL; ib->Lock(0, 0, (void**)&i, 0); memcpy(i, indices, sizeof(Index) * 3); ib->Unlock(); //set rendering properties dev->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); //dev->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); dev->SetRenderState(D3DRS_LIGHTING, FALSE); dev->SetVertexDeclaration(dec); dev->SetStreamSource(0, vb, 0, sizeof(Vertex)); dev->SetIndices(ib); //render loop while(!GetAsyncKeyState(VK_ESCAPE)) { window.Update(); dev->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(32, 32, 32), 1.0f, 0); dev->BeginScene(); dev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,0,3,0,1); dev->EndScene(); dev->Present(0, 0, 0, 0); } //cleanup vb->Release(); ib->Release(); dec->Release(); return 0; } [/CODE]
  • Advertisement