查看完整版本: [-- Direct3D导致QWebView使用百度地图出现怪异问题 --]

QTCN开发网 -> 《C++ GUI Qt 4编程》(第2版)专栏 -> Direct3D导致QWebView使用百度地图出现怪异问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

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的代码
  1. 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 ;
        }



weinkym 2018-06-05 14:21
5.7.1遇到过,跟webengine冲突了

yyzq 2018-06-15 09:05
weinkym:5.7.1遇到过,跟webengine冲突了 (2018-06-05 14:21) 

请问你们最后是如何解决的,我打算把浏览器换成cef,现在还没时间搞。。。


查看完整版本: [-- Direct3D导致QWebView使用百度地图出现怪异问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled