Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include "Panel.h"
  2.  
  3. Panel::Panel(QWidget *parent, Qt::WFlags flags, WINDOWTYPE type) : QMainWindow(parent, flags)
  4. {
  5.     if( type == WINDOW_CAMERA ||
  6.         type == WINDOW_FRONT ||
  7.         type == WINDOW_SIDE ||
  8.         type == WINDOW_TOP)
  9.     {
  10.         d3d = Direct3DCreate9(D3D_SDK_VERSION);
  11.         area = new QWidget(this);
  12.         stretch = new QHBoxLayout(this);
  13.         stretch->addWidget(area);
  14.         this->setLayout(stretch);
  15.  
  16.         d3ddev = NULL;
  17.         ResetPP();
  18.  
  19.         d3d->CreateDevice(  D3DADAPTER_DEFAULT,
  20.                             D3DDEVTYPE_HAL,
  21.                             area->winId(),
  22.                             D3DCREATE_SOFTWARE_VERTEXPROCESSING,
  23.                             &d3dpp,
  24.                             &d3ddev);
  25.         d3ddev->SetRenderState(D3DRS_ZENABLE, true);
  26.         d3ddev->SetRenderState(D3DRS_LIGHTING, false);
  27.         d3ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
  28.         tick = new QBasicTimer();
  29.         tick->start(100, this);
  30.     }
  31. }
  32.  
  33. Panel::~Panel(void)
  34. {
  35.     delete tick;
  36.     if(d3ddev)
  37.         d3ddev->Release();
  38.     d3ddev = NULL;
  39. }
  40.  
  41. void Panel::timerEvent(QTimerEvent *e)
  42. {
  43.     d3ddev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DXCOLOR(0.4f, 0.4f, 8.0f, 0.55f), 1.0f, 0);
  44.     d3ddev->BeginScene();
  45.     d3ddev->EndScene();
  46.     d3ddev->Present(NULL, NULL, NULL, NULL);
  47. }
  48.  
  49. void Panel::ResetPP(void)
  50. {
  51.         ZeroMemory(&d3dpp, sizeof(d3dpp));
  52.         d3dpp.Windowed = true;
  53.         d3dpp.BackBufferWidth = area->geometry().width();
  54.         d3dpp.BackBufferHeight = area->geometry().height();
  55.         d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  56.         d3dpp.hDeviceWindow = this->winId();
  57.         d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
  58.         d3dpp.EnableAutoDepthStencil = true;
  59.         d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
  60.         return;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement