Forum huvudsida -> Programmering -> DirectX hjälp
Sidor: 1
GalenBanan | 09:54 - 26:e Maj 2006 | Post #1 | |
Medlem Inlägg: 10 Skicka PM |
Jag försöker lära mig lite DirectX. Jag håller på med en tutorial från: http://www.two-kings.de/tutorials/dxgraphics/ Jag har modifierat om koden så att man inte behöver göra alla de där valen, utan bara behöver trycka på: Start eller cancel. Nu till problemet... Jag har börjat att försöka göra trianglar och sånt... Koden blir kompilerad och allt verkar stå rätt till, men triangeln och kvadraten syns inte! Jag tror felet ligger i main.cpp: //includes #include "main.h" //globals CApplication g_App; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MSG Message; LPDIRECT3DVERTEXBUFFER9 pTriangleVB = NULL; LPDIRECT3DVERTEXBUFFER9 pQuadVB = NULL; VOID* pData; D3DVERTEX aTriangle[] = {{-2.0f, 1.0f,10.0f,0xffff0000}, {-3.0f,-1.0f,10.0f,0xff00ff00}, {-1.0f,-1.0f,10.0f,0xff0000ff}}; D3DVERTEX aQuad[] = {{1.0f,-1.0f,10.0f,0xffffff00}, {3.0f,-1.0f,10.0f,0xffffff00}, {1.0f, 1.0f,10.0f,0xffffff00}, {3.0f, 1.0f,10.0f,0xffffff00}}; while(g_App.GetWindowStatus()) { if(GetMessage(&Message, NULL, 0, 0)) { if(!IsDialogMessage(g_App.GetWindowHandle(), &Message)) { TranslateMessage(&Message); DispatchMessage(&Message); } } } if(!g_App.GetD3DStatus()) return Message.wParam; g_App.GetDevice()->CreateVertexBuffer(sizeof(aTriangle), D3DUSAGE_WRITEONLY, D3DFVF_CUSTOMVERTEX, D3DPOOL_MANAGED, &pTriangleVB, NULL); g_App.GetDevice()->CreateVertexBuffer(sizeof(aQuad), D3DUSAGE_WRITEONLY, D3DFVF_CUSTOMVERTEX, D3DPOOL_MANAGED, &pQuadVB, NULL); pTriangleVB->Lock(0,sizeof(pData),(void**)&pData,0); memcpy(pData,aTriangle,sizeof(aTriangle)); pTriangleVB->Unlock(); pQuadVB->Lock(0,sizeof(pData),(void**)&pData,0); memcpy(pData,aQuad,sizeof(aQuad)); pQuadVB->Unlock(); while(g_App.GetD3DStatus()) { if(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&Message); DispatchMessage(&Message); } if(g_App.CheckDevice()) { g_App.GetDevice()->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); g_App.GetDevice()->BeginScene(); g_App.GetDevice()->SetStreamSource(0, pTriangleVB, 0, sizeof(D3DVERTEX)); g_App.GetDevice()->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); g_App.GetDevice()->SetStreamSource(0, pQuadVB, 0, sizeof(D3DVERTEX)); g_App.GetDevice()->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 2); g_App.GetDevice()->EndScene(); g_App.GetDevice()->Present(NULL,NULL,NULL,NULL); } } return 0; } Uppskattar om någon kunnig kanske vet vad felet är... Det är inte säkert att felet ligger här, det är bara vad jag tror... ------------------------- C++!!! |
Sidor: 1
Forum huvudsida -> Programmering -> DirectX hjälp
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-07 10:50
Vecka: 19
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.