yyzq |
2018-05-17 17:54 |
Direct3D导致QWebView使用百度地图出现怪异问题
开发环境:VS2012 + qt-opensource-windows-x86-msvc2012_opengl-5.4.0.exe + qt-vs-addin-1.2.5.exe 问题描述:使用QWebView基于百度地图的相关功能,在没有使用Direct3D之前功能一些正常,但是现在软件内另一个模块需要使用Direct3D渲染视频通话,结果地图这块就出问题了,加载异常缓慢,而且拖放等效果也慢的基本没法用,[backcolor= transparent][backcolor= transparent][backcolor= transparent]Direct3D我也不熟,照猫画虎,现在实在搞不清楚是什么问题,不知道有没有遇见过的给个指导。。。 [backcolor= transparent][backcolor= transparent][backcolor= transparent]
[backcolor= transparent][backcolor= transparent][backcolor= transparent]这是初始化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 ; }
|
|