|
100Qter豆
开发环境:VS2012 + qt-opensource-windows-x86-msvc2012_opengl-5.4.0.exe + qt-vs-addin-1.2.5.exe
问题描述:使用QWebView基于百度地图的相关功能,在没有使用Direct3D之前功能一些正常,但是现在软件内另一个模块需要使用Direct3D渲染视频通话,结果地图这块就出问题了,加载异常缓慢,而且拖放等效果也慢的基本没法用,Direct3D我也不熟,照猫画虎,现在实在搞不清楚是什么问题,不知道有没有遇见过的给个指导。。。
这是初始化Direct3D的代码
- IDirect3D9 *_d3d = Direct3DCreate9(D3D_SDK_VERSION);
- if (_d3d == NULL)
- {
- return ;
- }
- D3DCAPS9 caps;
- _d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
- int vp = 0;
- if (caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
- {
- vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
- }
- else
- {
- vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
- }
- D3DPRESENT_PARAMETERS d3dpp; //D3DPRESENT_PARAMETERS设置,设置IDirect3DDevice的特性
- ::ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
- d3dpp.BackBufferWidth = 1920;
- d3dpp.BackBufferHeight = 1080;
- d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
- d3dpp.BackBufferCount = 1;
- d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
- d3dpp.MultiSampleQuality = 0;
- d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
- d3dpp.hDeviceWindow = (HWND)AppHelper.mainWindow()->winId();
- d3dpp.Windowed = TRUE;
- d3dpp.EnableAutoDepthStencil = true;
- d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
- d3dpp.Flags = 0;
- d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
- d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
- IDirect3DDevice9* d3d_device;
- if (_d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (HWND)AppHelper.mainWindow()->winId(), vp, &d3dpp, &d3d_device) != D3D_OK)
- {
- int i = 0;
- return ;
- }
复制代码
|
|