This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Sep 8th, 2013  |  syntax: None  |  size: 3.74 KB  |  views: 48  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. //Init all things related to direct X
  2. void initD3D(HWND hWnd)
  3. {
  4.         d3d = Direct3DCreate9(D3D_SDK_VERSION);
  5.  
  6.         D3DPRESENT_PARAMETERS d3dpp;
  7.         ZeroMemory(&d3dpp, sizeof(d3dpp));
  8.         d3dpp.Windowed = true;
  9.         d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  10.         d3dpp.hDeviceWindow = hWnd;
  11.  
  12.         d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &d3dDev);
  13.         d3dDev->SetFVF(D3DFVF_TLVERTEX);
  14.  
  15.         //Init the other direct X stuff
  16.         initGraphics();
  17. }
  18.  
  19. void initGraphics()
  20. {
  21.         //If culling is off things work as planned but why?
  22.         d3dDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
  23.  
  24.         d3dDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
  25.         d3dDev->SetRenderState(D3DRS_SRCBLENDALPHA, D3DRS_DESTBLENDALPHA);
  26.  
  27.         //Create a vertex buffer for 4 trinagles
  28.         d3dDev->CreateVertexBuffer(4 * 3 * sizeof(TLVERTEX), 0, D3DFVF_TLVERTEX, D3DPOOL_MANAGED, &vertexBuffer, NULL);
  29. }
  30.  
  31. void renderFrame()
  32. {
  33.         //Load the vertex
  34.         TLVERTEX *verts;
  35.         vertexBuffer->Lock(0, 0, (void **)&verts, NULL);
  36.        
  37.         //vert 0
  38.         verts[0].color = D3DCOLOR_ARGB(255, 50, 255, 255);
  39.         verts[0].x = 50;
  40.         verts[0].y = 50;
  41.         verts[0].z = 0.0f;
  42.         verts[0].rhw = 1.0f;
  43.         verts[0].u = 0.0f;
  44.         verts[0].v = 0.0f;
  45.  
  46.         verts[1].color = D3DCOLOR_ARGB(255, 255, 50, 255);
  47.         verts[1].x = 400;
  48.         verts[1].y = 50;
  49.         verts[1].z = 0.0f;
  50.         verts[1].rhw = 1.0f;
  51.         verts[1].u = 0.0f;
  52.         verts[1].v = 0.0f;
  53.  
  54.         verts[2].color = D3DCOLOR_ARGB(255, 255, 255, 50);
  55.         verts[2].x = 50;
  56.         verts[2].y = 400;
  57.         verts[2].z = 0.0f;
  58.         verts[2].rhw = 1.0f;
  59.         verts[2].u = 0.0f;
  60.         verts[2].v = 0.0f;
  61.  
  62.         verts[3].color = D3DCOLOR_ARGB(255, 50, 255, 255);
  63.         verts[3].x = 50;
  64.         verts[3].y = 400;
  65.         verts[3].z = 0.0f;
  66.         verts[3].rhw = 1.0f;
  67.         verts[3].u = 0.0f;
  68.         verts[3].v = 0.0f;
  69.  
  70.         verts[4].color = D3DCOLOR_ARGB(255, 255, 50, 255);
  71.         verts[4].x = 400;
  72.         verts[4].y = 50;
  73.         verts[4].z = 0.0f;
  74.         verts[4].rhw = 1.0f;
  75.         verts[4].u = 0.0f;
  76.         verts[4].v = 0.0f;
  77.  
  78.         verts[5].color = D3DCOLOR_ARGB(255, 255, 255, 50);
  79.         verts[5].x = 400;
  80.         verts[5].y = 400;
  81.         verts[5].z = 0.0f;
  82.         verts[5].rhw = 1.0f;
  83.         verts[5].u = 0.0f;
  84.         verts[5].v = 0.0f;
  85.  
  86.         // [- SECOND QUAD -]
  87.         //==================================================================================================
  88.  
  89.         //vert 0
  90.         verts[6].color = D3DCOLOR_ARGB(255, 50, 255, 255);
  91.         verts[6].x = 500;
  92.         verts[6].y = 500;
  93.         verts[6].z = 0.0f;
  94.         verts[6].rhw = 1.0f;
  95.         verts[6].u = 0.0f;
  96.         verts[6].v = 0.0f;
  97.  
  98.         verts[7].color = D3DCOLOR_ARGB(255, 255, 50, 255);
  99.         verts[7].x = 500;
  100.         verts[7].y = 600;
  101.         verts[7].z = 0.0f;
  102.         verts[7].rhw = 1.0f;
  103.         verts[7].u = 0.0f;
  104.         verts[7].v = 0.0f;
  105.  
  106.         verts[8].color = D3DCOLOR_ARGB(255, 255, 255, 50);
  107.         verts[8].x = 600;
  108.         verts[8].y = 500;
  109.         verts[8].z = 0.0f;
  110.         verts[8].rhw = 1.0f;
  111.         verts[8].u = 0.0f;
  112.         verts[8].v = 0.0f;
  113.  
  114.         //----
  115.  
  116.         verts[9].color = D3DCOLOR_ARGB(255, 50, 255, 255);
  117.         verts[9].x = 600;
  118.         verts[9].y = 500;
  119.         verts[9].z = 0.0f;
  120.         verts[9].rhw = 1.0f;
  121.         verts[9].u = 0.0f;
  122.         verts[9].v = 0.0f;
  123.  
  124.         verts[10].color = D3DCOLOR_ARGB(255, 255, 50, 255);
  125.         verts[10].x = 500;
  126.         verts[10].y = 600;
  127.         verts[10].z = 0.0f;
  128.         verts[10].rhw = 1.0f;
  129.         verts[10].u = 0.0f;
  130.         verts[10].v = 0.0f;
  131.  
  132.         verts[11].color = D3DCOLOR_ARGB(255, 255, 255, 50);
  133.         verts[11].x = 600;
  134.         verts[11].y = 600;
  135.         verts[11].z = 0.0f;
  136.         verts[11].rhw = 1.0f;
  137.         verts[11].u = 0.0f;
  138.         verts[11].v = 0.0f;
  139.  
  140.         vertexBuffer->Unlock();
  141.  
  142.         //Clear, begin the scene, and draw
  143.         d3dDev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(40, 150, 255), 1.0f, 0);
  144.         d3dDev->BeginScene();
  145.  
  146.         //Set the source of what to draw
  147.         d3dDev->SetStreamSource(0, vertexBuffer, 0, sizeof(TLVERTEX));
  148.  
  149.         //Draw it, start at index 0 and go for 4 primatives
  150.         d3dDev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 4);
  151.  
  152.         d3dDev->EndScene();
  153.         d3dDev->Present(NULL, NULL, NULL, NULL);
  154. }
clone this paste RAW Paste Data