Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Init all things related to direct X
- void initD3D(HWND hWnd)
- {
- d3d = Direct3DCreate9(D3D_SDK_VERSION);
- D3DPRESENT_PARAMETERS d3dpp;
- ZeroMemory(&d3dpp, sizeof(d3dpp));
- d3dpp.Windowed = true;
- d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
- d3dpp.hDeviceWindow = hWnd;
- d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &d3dDev);
- d3dDev->SetFVF(D3DFVF_TLVERTEX);
- //Init the other direct X stuff
- initGraphics();
- }
- void initGraphics()
- {
- //If culling is off things work as planned but why?
- d3dDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
- d3dDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
- d3dDev->SetRenderState(D3DRS_SRCBLENDALPHA, D3DRS_DESTBLENDALPHA);
- //Create a vertex buffer for 4 trinagles
- d3dDev->CreateVertexBuffer(4 * 3 * sizeof(TLVERTEX), 0, D3DFVF_TLVERTEX, D3DPOOL_MANAGED, &vertexBuffer, NULL);
- }
- void renderFrame()
- {
- //Load the vertex
- TLVERTEX *verts;
- vertexBuffer->Lock(0, 0, (void **)&verts, NULL);
- //vert 0
- verts[0].color = D3DCOLOR_ARGB(255, 50, 255, 255);
- verts[0].x = 50;
- verts[0].y = 50;
- verts[0].z = 0.0f;
- verts[0].rhw = 1.0f;
- verts[0].u = 0.0f;
- verts[0].v = 0.0f;
- verts[1].color = D3DCOLOR_ARGB(255, 255, 50, 255);
- verts[1].x = 400;
- verts[1].y = 50;
- verts[1].z = 0.0f;
- verts[1].rhw = 1.0f;
- verts[1].u = 0.0f;
- verts[1].v = 0.0f;
- verts[2].color = D3DCOLOR_ARGB(255, 255, 255, 50);
- verts[2].x = 50;
- verts[2].y = 400;
- verts[2].z = 0.0f;
- verts[2].rhw = 1.0f;
- verts[2].u = 0.0f;
- verts[2].v = 0.0f;
- verts[3].color = D3DCOLOR_ARGB(255, 50, 255, 255);
- verts[3].x = 50;
- verts[3].y = 400;
- verts[3].z = 0.0f;
- verts[3].rhw = 1.0f;
- verts[3].u = 0.0f;
- verts[3].v = 0.0f;
- verts[4].color = D3DCOLOR_ARGB(255, 255, 50, 255);
- verts[4].x = 400;
- verts[4].y = 50;
- verts[4].z = 0.0f;
- verts[4].rhw = 1.0f;
- verts[4].u = 0.0f;
- verts[4].v = 0.0f;
- verts[5].color = D3DCOLOR_ARGB(255, 255, 255, 50);
- verts[5].x = 400;
- verts[5].y = 400;
- verts[5].z = 0.0f;
- verts[5].rhw = 1.0f;
- verts[5].u = 0.0f;
- verts[5].v = 0.0f;
- // [- SECOND QUAD -]
- //==================================================================================================
- //vert 0
- verts[6].color = D3DCOLOR_ARGB(255, 50, 255, 255);
- verts[6].x = 500;
- verts[6].y = 500;
- verts[6].z = 0.0f;
- verts[6].rhw = 1.0f;
- verts[6].u = 0.0f;
- verts[6].v = 0.0f;
- verts[7].color = D3DCOLOR_ARGB(255, 255, 50, 255);
- verts[7].x = 500;
- verts[7].y = 600;
- verts[7].z = 0.0f;
- verts[7].rhw = 1.0f;
- verts[7].u = 0.0f;
- verts[7].v = 0.0f;
- verts[8].color = D3DCOLOR_ARGB(255, 255, 255, 50);
- verts[8].x = 600;
- verts[8].y = 500;
- verts[8].z = 0.0f;
- verts[8].rhw = 1.0f;
- verts[8].u = 0.0f;
- verts[8].v = 0.0f;
- //----
- verts[9].color = D3DCOLOR_ARGB(255, 50, 255, 255);
- verts[9].x = 600;
- verts[9].y = 500;
- verts[9].z = 0.0f;
- verts[9].rhw = 1.0f;
- verts[9].u = 0.0f;
- verts[9].v = 0.0f;
- verts[10].color = D3DCOLOR_ARGB(255, 255, 50, 255);
- verts[10].x = 500;
- verts[10].y = 600;
- verts[10].z = 0.0f;
- verts[10].rhw = 1.0f;
- verts[10].u = 0.0f;
- verts[10].v = 0.0f;
- verts[11].color = D3DCOLOR_ARGB(255, 255, 255, 50);
- verts[11].x = 600;
- verts[11].y = 600;
- verts[11].z = 0.0f;
- verts[11].rhw = 1.0f;
- verts[11].u = 0.0f;
- verts[11].v = 0.0f;
- vertexBuffer->Unlock();
- //Clear, begin the scene, and draw
- d3dDev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(40, 150, 255), 1.0f, 0);
- d3dDev->BeginScene();
- //Set the source of what to draw
- d3dDev->SetStreamSource(0, vertexBuffer, 0, sizeof(TLVERTEX));
- //Draw it, start at index 0 and go for 4 primatives
- d3dDev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 4);
- d3dDev->EndScene();
- d3dDev->Present(NULL, NULL, NULL, NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement